From 1e5b677b1c19053dfc4366c37bf37d4fff2f9a92 Mon Sep 17 00:00:00 2001 From: Yeung Yiu Hung Date: Mon, 16 Nov 2015 17:42:23 +0800 Subject: [PATCH 1/4] +GBK encoding support --- OrigamiEngine/Plugins/CueSheet.m | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/OrigamiEngine/Plugins/CueSheet.m b/OrigamiEngine/Plugins/CueSheet.m index f829a5d..06a1fbc 100644 --- a/OrigamiEngine/Plugins/CueSheet.m +++ b/OrigamiEngine/Plugins/CueSheet.m @@ -51,9 +51,19 @@ - (void)dealloc { - (void)parseFileWithUrl:(NSURL *)url { NSStringEncoding encoding; NSError *error = nil; + + NSStringEncoding gbkEncoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000); + NSString *contents = [NSString stringWithContentsOfURL:url usedEncoding:&encoding error:&error]; + if (error) { + error = nil; + contents = [NSString stringWithContentsOfURL:url + encoding:gbkEncoding + error:&error]; + } + if (error) { error = nil; contents = [NSString stringWithContentsOfURL:url From 1e7e5f2c7f52d516dd00183fd3c37f7e67ceccf2 Mon Sep 17 00:00:00 2001 From: Yeung Yiu Hung Date: Mon, 16 Nov 2015 21:01:34 +0800 Subject: [PATCH 2/4] bump --- OrigamiEngine.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OrigamiEngine.podspec b/OrigamiEngine.podspec index 3e8f31e..9448dd4 100644 --- a/OrigamiEngine.podspec +++ b/OrigamiEngine.podspec @@ -5,7 +5,7 @@ Pod::Spec.new do |s| s.homepage = "https://github.com/ap4y/OrigamiEngine.git" s.license = 'MIT' s.author = { "ap4y" => "lod@pisem.net" } - s.source = { :git => "https://github.com/ap4y/OrigamiEngine.git", :tag => "1.0.14", :submodules => true } + s.source = { :git => "https://github.com/darkcl/OrigamiEngine.git", :tag => "1.0.14", :submodules => true } s.default_subspec = 'Core' s.requires_arc = false s.ios.deployment_target = '5.0' From e305d37fc4f038a0bb51e461fbf51c08f4dc49ce Mon Sep 17 00:00:00 2001 From: Yeung Yiu Hung Date: Mon, 16 Nov 2015 21:15:33 +0800 Subject: [PATCH 3/4] try add audio framework --- .gitmodules | 3 --- 1 file changed, 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 7679010..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "Audio-Frameworks"] - path = Audio-Frameworks - url = https://github.com/ap4y/Audio-Frameworks.git From 1633d5a53bf18493696ce9a78477d5119fcc4059 Mon Sep 17 00:00:00 2001 From: Yeung Yiu Hung Date: Mon, 16 Nov 2015 21:17:49 +0800 Subject: [PATCH 4/4] try add framework, cocoa pods not support submodule --- Audio-Frameworks | 1 - .../CyberLink.xcodeproj/project.pbxproj | 1311 ++++++++++ .../CyberLink/CyberLink/CyberLink-Info.plist | 28 + .../CyberLink/CyberLink/CyberLink-Prefix.pch | 7 + .../FLAC/FLAC.xcodeproj/project.pbxproj | 836 +++++++ Audio-Frameworks/FLAC/FLAC/FLAC-Info.plist | 28 + Audio-Frameworks/FLAC/config.h | 145 ++ .../Ogg/Ogg.xcodeproj/project.pbxproj | 573 +++++ Audio-Frameworks/Ogg/Ogg/Ogg-Info.plist | 30 + .../Ogg/Ogg_ios/Ogg_ios-Info.plist | 28 + .../Opus/Opus.xcodeproj/project.pbxproj | 1976 +++++++++++++++ Audio-Frameworks/Opus/Opus/Opus-Info.plist | 30 + Audio-Frameworks/Opus/Opus/config.h | 137 ++ .../Opus/Opus_ios/Opus_ios-Info.plist | 28 + .../OpusFile.xcodeproj/project.pbxproj | 828 +++++++ .../OpusFile/OpusFile/OpusFile-Info.plist | 30 + .../OpusFile_ios/OpusFile_ios-Info.plist | 28 + Audio-Frameworks/README.md | 33 + .../TagLib/TagLib.xcodeproj/project.pbxproj | 1536 ++++++++++++ .../TagLib/TagLib/TagLib-Info.plist | 28 + .../TagLib/TagLib/TagLib-Prefix.pch | 7 + Audio-Frameworks/TagLib/TagLib/config.h | 77 + .../TagLib/TagLib/taglib_config.h | 4 + .../cyberlink/CyberLink.framework/CyberLink | 1 + .../bin/cyberlink/CyberLink.framework/Headers | 1 + .../cyberlink/CyberLink.framework/Resources | 1 + .../CyberLink.framework/Versions/A/CyberLink | Bin 0 -> 562136 bytes .../Versions/A/Headers/caction.h | 369 +++ .../Versions/A/Headers/cargument.h | 362 +++ .../Versions/A/Headers/ccond.h | 110 + .../Versions/A/Headers/ccontrol.h | 785 ++++++ .../Versions/A/Headers/ccontrolpoint.h | 716 ++++++ .../Versions/A/Headers/cdevice.h | 1539 ++++++++++++ .../Versions/A/Headers/cdictionary.h | 188 ++ .../Versions/A/Headers/cevent.h | 563 +++++ .../Versions/A/Headers/cfile.h | 189 ++ .../Versions/A/Headers/chttp.h | 615 +++++ .../Versions/A/Headers/cicon.h | 247 ++ .../Versions/A/Headers/cinterface.h | 155 ++ .../Versions/A/Headers/clist.h | 171 ++ .../Versions/A/Headers/clog.h | 174 ++ .../Versions/A/Headers/cmutex.h | 131 + .../Versions/A/Headers/cnotify.h | 238 ++ .../Versions/A/Headers/cproperty.h | 196 ++ .../Versions/A/Headers/cservice.h | 819 +++++++ .../Versions/A/Headers/csoap.h | 148 ++ .../Versions/A/Headers/csocket.h | 233 ++ .../Versions/A/Headers/cssdp.h | 220 ++ .../Versions/A/Headers/cssdp_server.h | 247 ++ .../Versions/A/Headers/cstatevariable.h | 473 ++++ .../Versions/A/Headers/cstring.h | 172 ++ .../Versions/A/Headers/csubscriber.h | 311 +++ .../Versions/A/Headers/csubscription.h | 166 ++ .../Versions/A/Headers/cthread.h | 298 +++ .../Versions/A/Headers/ctime.h | 62 + .../Versions/A/Headers/cupnp.h | 47 + .../Versions/A/Headers/cupnp_function.h | 84 + .../Versions/A/Headers/cupnp_limit.h | 50 + .../Versions/A/Headers/cupnp_status.h | 120 + .../Versions/A/Headers/curi.h | 146 ++ .../Versions/A/Headers/curl.h | 106 + .../Versions/A/Headers/cxml.h | 208 ++ .../Versions/A/Headers/typedef.h | 102 + .../Versions/A/Resources/Info.plist | Bin 0 -> 744 bytes .../Versions/A/Resources/cupnp.h.in | 47 + .../CyberLink.framework/Versions/Current | 1 + .../headers/cybergarage/http/chttp.h | 615 +++++ .../cyberlink/headers/cybergarage/io/cfile.h | 189 ++ .../headers/cybergarage/net/cinterface.h | 155 ++ .../headers/cybergarage/net/csocket.h | 233 ++ .../cyberlink/headers/cybergarage/net/curi.h | 146 ++ .../cyberlink/headers/cybergarage/net/curl.h | 106 + .../headers/cybergarage/soap/csoap.h | 148 ++ .../cyberlink/headers/cybergarage/typedef.h | 102 + .../headers/cybergarage/upnp/caction.h | 369 +++ .../headers/cybergarage/upnp/cargument.h | 362 +++ .../headers/cybergarage/upnp/ccontrolpoint.h | 716 ++++++ .../headers/cybergarage/upnp/cdevice.h | 1539 ++++++++++++ .../headers/cybergarage/upnp/cicon.h | 247 ++ .../cybergarage/upnp/control/ccontrol.h | 785 ++++++ .../headers/cybergarage/upnp/cservice.h | 819 +++++++ .../headers/cybergarage/upnp/cstatevariable.h | 473 ++++ .../headers/cybergarage/upnp/cupnp.h | 47 + .../headers/cybergarage/upnp/cupnp.h.in | 47 + .../headers/cybergarage/upnp/cupnp_function.h | 84 + .../headers/cybergarage/upnp/cupnp_limit.h | 50 + .../headers/cybergarage/upnp/cupnp_status.h | 120 + .../headers/cybergarage/upnp/event/cevent.h | 563 +++++ .../headers/cybergarage/upnp/event/cnotify.h | 238 ++ .../cybergarage/upnp/event/cproperty.h | 196 ++ .../cybergarage/upnp/event/csubscriber.h | 311 +++ .../cybergarage/upnp/event/csubscription.h | 166 ++ .../headers/cybergarage/upnp/ssdp/cssdp.h | 220 ++ .../cybergarage/upnp/ssdp/cssdp_server.h | 247 ++ .../headers/cybergarage/util/ccond.h | 110 + .../headers/cybergarage/util/cdictionary.h | 188 ++ .../headers/cybergarage/util/clist.h | 171 ++ .../cyberlink/headers/cybergarage/util/clog.h | 174 ++ .../headers/cybergarage/util/cmutex.h | 131 + .../headers/cybergarage/util/cstring.h | 172 ++ .../headers/cybergarage/util/cthread.h | 298 +++ .../headers/cybergarage/util/ctime.h | 62 + .../cyberlink/headers/cybergarage/xml/cxml.h | 208 ++ Audio-Frameworks/bin/cyberlink/libCyberLink.a | Bin 0 -> 1087752 bytes Audio-Frameworks/bin/flac/FLAC.framework/FLAC | 1 + .../bin/flac/FLAC.framework/Headers | 1 + .../bin/flac/FLAC.framework/Resources | 1 + .../bin/flac/FLAC.framework/Versions/A/FLAC | Bin 0 -> 1370132 bytes .../FLAC.framework/Versions/A/Headers/all.h | 370 +++ .../Versions/A/Headers/assert.h | 45 + .../Versions/A/Headers/callback.h | 184 ++ .../Versions/A/Headers/export.h | 91 + .../Versions/A/Headers/format.h | 1010 ++++++++ .../Versions/A/Headers/metadata.h | 2181 +++++++++++++++++ .../Versions/A/Headers/ordinals.h | 80 + .../Versions/A/Headers/stream_decoder.h | 1559 ++++++++++++ .../Versions/A/Headers/stream_encoder.h | 1768 +++++++++++++ .../Versions/A/Resources/Info.plist | Bin 0 -> 736 bytes .../bin/flac/FLAC.framework/Versions/Current | 1 + .../bin/flac/FLAC_OSX/FLAC.framework/FLAC | 1 + .../bin/flac/FLAC_OSX/FLAC.framework/Headers | 1 + .../flac/FLAC_OSX/FLAC.framework/Resources | 1 + .../FLAC_OSX/FLAC.framework/Versions/A/FLAC | Bin 0 -> 260436 bytes .../FLAC.framework/Versions/A/Headers/all.h | 370 +++ .../Versions/A/Headers/assert.h | 45 + .../Versions/A/Headers/callback.h | 184 ++ .../Versions/A/Headers/export.h | 91 + .../Versions/A/Headers/format.h | 1010 ++++++++ .../Versions/A/Headers/metadata.h | 2181 +++++++++++++++++ .../Versions/A/Headers/ordinals.h | 80 + .../Versions/A/Headers/stream_decoder.h | 1559 ++++++++++++ .../Versions/A/Headers/stream_encoder.h | 1768 +++++++++++++ .../Versions/A/Resources/Info.plist | 40 + .../A/Resources/en.lproj/InfoPlist.strings | Bin 0 -> 92 bytes .../FLAC_OSX/FLAC.framework/Versions/Current | 1 + Audio-Frameworks/bin/flac/headers/FLAC/all.h | 370 +++ .../bin/flac/headers/FLAC/assert.h | 45 + .../bin/flac/headers/FLAC/callback.h | 184 ++ .../bin/flac/headers/FLAC/export.h | 91 + .../bin/flac/headers/FLAC/format.h | 1010 ++++++++ .../bin/flac/headers/FLAC/metadata.h | 2181 +++++++++++++++++ .../bin/flac/headers/FLAC/ordinals.h | 80 + .../bin/flac/headers/FLAC/stream_decoder.h | 1559 ++++++++++++ .../bin/flac/headers/FLAC/stream_encoder.h | 1768 +++++++++++++ Audio-Frameworks/bin/flac/headers/ogg/ogg.h | 210 ++ .../bin/flac/headers/ogg/os_types.h | 147 ++ Audio-Frameworks/bin/flac/libFLAC.a | Bin 0 -> 763240 bytes .../bin/ogg/MacOS/Ogg.framework/Headers | 1 + .../bin/ogg/MacOS/Ogg.framework/Ogg | 1 + .../bin/ogg/MacOS/Ogg.framework/Resources | 1 + .../Ogg.framework/Versions/A/Headers/ogg.h | 210 ++ .../Versions/A/Headers/os_types.h | 147 ++ .../ogg/MacOS/Ogg.framework/Versions/A/Ogg | Bin 0 -> 31728 bytes .../Versions/A/Resources/Info.plist | 42 + .../ogg/MacOS/Ogg.framework/Versions/Current | 1 + .../bin/ogg/Ogg.framework/Headers | 1 + Audio-Frameworks/bin/ogg/Ogg.framework/Ogg | 1 + .../bin/ogg/Ogg.framework/Resources | 1 + .../Ogg.framework/Versions/A/Headers/ogg.h | 210 ++ .../Versions/A/Headers/os_types.h | 147 ++ .../bin/ogg/Ogg.framework/Versions/A/Ogg | Bin 0 -> 117796 bytes .../Versions/A/Resources/Info.plist | Bin 0 -> 732 bytes .../bin/ogg/Ogg.framework/Versions/Current | 1 + Audio-Frameworks/bin/ogg/include/ogg/ogg.h | 210 ++ .../bin/ogg/include/ogg/os_types.h | 147 ++ Audio-Frameworks/bin/ogg/libogg.a | Bin 0 -> 156044 bytes .../bin/opus/MacOS/Opus.framework/Headers | 1 + .../bin/opus/MacOS/Opus.framework/Opus | 1 + .../bin/opus/MacOS/Opus.framework/Resources | 1 + .../Opus.framework/Versions/A/Headers/opus.h | 906 +++++++ .../Versions/A/Headers/opus_defines.h | 655 +++++ .../Versions/A/Headers/opus_multistream.h | 660 +++++ .../Versions/A/Headers/opus_types.h | 159 ++ .../opus/MacOS/Opus.framework/Versions/A/Opus | Bin 0 -> 326384 bytes .../Versions/A/Resources/Info.plist | 42 + .../MacOS/Opus.framework/Versions/Current | 1 + .../bin/opus/Opus.framework/Headers | 1 + Audio-Frameworks/bin/opus/Opus.framework/Opus | 1 + .../bin/opus/Opus.framework/Resources | 1 + .../Opus.framework/Versions/A/Headers/opus.h | 906 +++++++ .../Versions/A/Headers/opus_defines.h | 655 +++++ .../Versions/A/Headers/opus_multistream.h | 660 +++++ .../Versions/A/Headers/opus_types.h | 159 ++ .../bin/opus/Opus.framework/Versions/A/Opus | Bin 0 -> 1555636 bytes .../Versions/A/Resources/Info.plist | Bin 0 -> 735 bytes .../bin/opus/Opus.framework/Versions/Current | 1 + Audio-Frameworks/bin/opus/include/opus.h | 906 +++++++ .../bin/opus/include/opus_defines.h | 655 +++++ .../bin/opus/include/opus_multistream.h | 660 +++++ .../bin/opus/include/opus_types.h | 159 ++ Audio-Frameworks/bin/opus/libopus.a | Bin 0 -> 3939524 bytes .../opusfile/MacOS/OpusFile.framework/Headers | 1 + .../MacOS/OpusFile.framework/OpusFile | 1 + .../MacOS/OpusFile.framework/Resources | 1 + .../Versions/A/Headers/opusfile.h | 1866 ++++++++++++++ .../OpusFile.framework/Versions/A/OpusFile | Bin 0 -> 57032 bytes .../Versions/A/Resources/Info.plist | 42 + .../MacOS/OpusFile.framework/Versions/Current | 1 + .../bin/opusfile/OpusFile.framework/Headers | 1 + .../bin/opusfile/OpusFile.framework/OpusFile | 1 + .../bin/opusfile/OpusFile.framework/Resources | 1 + .../Versions/A/Headers/opusfile.h | 1866 ++++++++++++++ .../OpusFile.framework/Versions/A/OpusFile | Bin 0 -> 249252 bytes .../Versions/A/Resources/Info.plist | Bin 0 -> 749 bytes .../OpusFile.framework/Versions/Current | 1 + .../bin/opusfile/include/opusfile/opusfile.h | 1866 ++++++++++++++ Audio-Frameworks/bin/opusfile/libopusfile.a | Bin 0 -> 192936 bytes .../bin/taglib/TagLib.framework/Headers | 1 + .../bin/taglib/TagLib.framework/Resources | 1 + .../bin/taglib/TagLib.framework/TagLib | 1 + .../Versions/A/Headers/aifffile.h | 122 + .../Versions/A/Headers/aiffproperties.h | 83 + .../Versions/A/Headers/apefile.h | 198 ++ .../Versions/A/Headers/apefooter.h | 173 ++ .../Versions/A/Headers/apeitem.h | 217 ++ .../Versions/A/Headers/apeproperties.h | 99 + .../Versions/A/Headers/apetag.h | 201 ++ .../Versions/A/Headers/asfattribute.h | 203 ++ .../Versions/A/Headers/asffile.h | 130 + .../Versions/A/Headers/asfpicture.h | 217 ++ .../Versions/A/Headers/asfproperties.h | 76 + .../Versions/A/Headers/asftag.h | 186 ++ .../Versions/A/Headers/attachedpictureframe.h | 230 ++ .../Versions/A/Headers/audioproperties.h | 110 + .../Versions/A/Headers/commentsframe.h | 179 ++ .../Versions/A/Headers/fileref.h | 263 ++ .../Versions/A/Headers/flacfile.h | 258 ++ .../Versions/A/Headers/flacmetadatablock.h | 75 + .../Versions/A/Headers/flacpicture.h | 208 ++ .../Versions/A/Headers/flacproperties.h | 103 + .../A/Headers/flacunknownmetadatablock.h | 81 + .../Headers/generalencapsulatedobjectframe.h | 178 ++ .../Versions/A/Headers/id3v1genres.h | 66 + .../Versions/A/Headers/id3v1tag.h | 182 ++ .../Versions/A/Headers/id3v2extendedheader.h | 93 + .../Versions/A/Headers/id3v2footer.h | 82 + .../Versions/A/Headers/id3v2frame.h | 509 ++++ .../Versions/A/Headers/id3v2framefactory.h | 167 ++ .../Versions/A/Headers/id3v2header.h | 175 ++ .../Versions/A/Headers/id3v2synchdata.h | 70 + .../Versions/A/Headers/id3v2tag.h | 361 +++ .../Versions/A/Headers/mp4atom.h | 111 + .../Versions/A/Headers/mp4coverart.h | 74 + .../Versions/A/Headers/mp4file.h | 113 + .../Versions/A/Headers/mp4item.h | 83 + .../Versions/A/Headers/mp4properties.h | 62 + .../Versions/A/Headers/mp4tag.h | 112 + .../Versions/A/Headers/mpcfile.h | 201 ++ .../Versions/A/Headers/mpcproperties.h | 122 + .../Versions/A/Headers/mpegfile.h | 323 +++ .../Versions/A/Headers/mpegheader.h | 166 ++ .../Versions/A/Headers/mpegproperties.h | 118 + .../Versions/A/Headers/oggfile.h | 123 + .../Versions/A/Headers/oggflacfile.h | 126 + .../Versions/A/Headers/oggpage.h | 211 ++ .../Versions/A/Headers/oggpageheader.h | 232 ++ .../Versions/A/Headers/popularimeterframe.h | 132 + .../Versions/A/Headers/privateframe.h | 111 + .../Versions/A/Headers/relativevolumeframe.h | 274 +++ .../Versions/A/Headers/rifffile.h | 122 + .../Versions/A/Headers/speexfile.h | 107 + .../Versions/A/Headers/speexproperties.h | 89 + .../TagLib.framework/Versions/A/Headers/tag.h | 201 ++ .../Versions/A/Headers/taglib.h | 226 ++ .../Versions/A/Headers/taglib_export.h | 47 + .../Versions/A/Headers/tagunion.h | 95 + .../Versions/A/Headers/tbytevector.h | 425 ++++ .../Versions/A/Headers/tbytevectorlist.h | 91 + .../Versions/A/Headers/tbytevectorstream.h | 145 ++ .../Versions/A/Headers/tdebug.h | 71 + .../A/Headers/textidentificationframe.h | 313 +++ .../Versions/A/Headers/tfile.h | 295 +++ .../Versions/A/Headers/tfilestream.h | 154 ++ .../Versions/A/Headers/tiostream.h | 160 ++ .../Versions/A/Headers/tlist.h | 257 ++ .../Versions/A/Headers/tlist.tcc | 322 +++ .../Versions/A/Headers/tmap.h | 199 ++ .../Versions/A/Headers/tmap.tcc | 196 ++ .../Versions/A/Headers/tpropertymap.h | 184 ++ .../Versions/A/Headers/trueaudiofile.h | 212 ++ .../Versions/A/Headers/trueaudioproperties.h | 98 + .../Versions/A/Headers/tstring.h | 496 ++++ .../Versions/A/Headers/tstringlist.h | 115 + .../Versions/A/Headers/unicode.h | 149 ++ .../A/Headers/uniquefileidentifierframe.h | 113 + .../Versions/A/Headers/unknownframe.h | 79 + .../A/Headers/unsynchronizedlyricsframe.h | 179 ++ .../Versions/A/Headers/urllinkframe.h | 189 ++ .../Versions/A/Headers/vorbisfile.h | 139 ++ .../Versions/A/Headers/vorbisproperties.h | 125 + .../Versions/A/Headers/wavfile.h | 122 + .../Versions/A/Headers/wavpackfile.h | 186 ++ .../Versions/A/Headers/wavpackproperties.h | 105 + .../Versions/A/Headers/wavproperties.h | 92 + .../Versions/A/Headers/xingheader.h | 100 + .../Versions/A/Headers/xiphcomment.h | 217 ++ .../Versions/A/Resources/Info.plist | Bin 0 -> 735 bytes .../Versions/A/Resources/id3v2.2.0.txt | 1660 +++++++++++++ .../Versions/A/Resources/id3v2.3.0.txt | 2022 +++++++++++++++ .../Versions/A/Resources/id3v2.4.0-frames.txt | 1734 +++++++++++++ .../A/Resources/id3v2.4.0-structure.txt | 733 ++++++ .../taglib/TagLib.framework/Versions/A/TagLib | Bin 0 -> 2822384 bytes .../taglib/TagLib.framework/Versions/Current | 1 + .../bin/taglib/headers/ape/apefile.h | 198 ++ .../bin/taglib/headers/ape/apefooter.h | 173 ++ .../bin/taglib/headers/ape/apeitem.h | 217 ++ .../bin/taglib/headers/ape/apeproperties.h | 99 + .../bin/taglib/headers/ape/apetag.h | 201 ++ .../bin/taglib/headers/asf/asfattribute.h | 203 ++ .../bin/taglib/headers/asf/asffile.h | 130 + .../bin/taglib/headers/asf/asfpicture.h | 217 ++ .../bin/taglib/headers/asf/asfproperties.h | 76 + .../bin/taglib/headers/asf/asftag.h | 186 ++ .../bin/taglib/headers/audioproperties.h | 110 + Audio-Frameworks/bin/taglib/headers/fileref.h | 263 ++ .../bin/taglib/headers/flac/flacfile.h | 258 ++ .../taglib/headers/flac/flacmetadatablock.h | 75 + .../bin/taglib/headers/flac/flacpicture.h | 208 ++ .../bin/taglib/headers/flac/flacproperties.h | 103 + .../headers/flac/flacunknownmetadatablock.h | 81 + .../bin/taglib/headers/it/itfile.h | 102 + .../bin/taglib/headers/it/itproperties.h | 101 + .../bin/taglib/headers/mod/modfile.h | 103 + .../bin/taglib/headers/mod/modfilebase.h | 62 + .../bin/taglib/headers/mod/modfileprivate.h | 67 + .../bin/taglib/headers/mod/modproperties.h | 65 + .../bin/taglib/headers/mod/modtag.h | 190 ++ .../bin/taglib/headers/mp4/mp4atom.h | 111 + .../bin/taglib/headers/mp4/mp4coverart.h | 74 + .../bin/taglib/headers/mp4/mp4file.h | 113 + .../bin/taglib/headers/mp4/mp4item.h | 83 + .../bin/taglib/headers/mp4/mp4properties.h | 62 + .../bin/taglib/headers/mp4/mp4tag.h | 112 + .../bin/taglib/headers/mpc/mpcfile.h | 201 ++ .../bin/taglib/headers/mpc/mpcproperties.h | 122 + .../taglib/headers/mpeg/id3v1/id3v1genres.h | 66 + .../bin/taglib/headers/mpeg/id3v1/id3v1tag.h | 182 ++ .../mpeg/id3v2/frames/attachedpictureframe.h | 230 ++ .../headers/mpeg/id3v2/frames/commentsframe.h | 179 ++ .../frames/generalencapsulatedobjectframe.h | 178 ++ .../mpeg/id3v2/frames/popularimeterframe.h | 132 + .../headers/mpeg/id3v2/frames/privateframe.h | 111 + .../mpeg/id3v2/frames/relativevolumeframe.h | 274 +++ .../id3v2/frames/textidentificationframe.h | 313 +++ .../id3v2/frames/uniquefileidentifierframe.h | 113 + .../headers/mpeg/id3v2/frames/unknownframe.h | 79 + .../id3v2/frames/unsynchronizedlyricsframe.h | 179 ++ .../headers/mpeg/id3v2/frames/urllinkframe.h | 189 ++ .../headers/mpeg/id3v2/id3v2extendedheader.h | 93 + .../taglib/headers/mpeg/id3v2/id3v2footer.h | 82 + .../taglib/headers/mpeg/id3v2/id3v2frame.h | 509 ++++ .../headers/mpeg/id3v2/id3v2framefactory.h | 167 ++ .../taglib/headers/mpeg/id3v2/id3v2header.h | 175 ++ .../headers/mpeg/id3v2/id3v2synchdata.h | 70 + .../bin/taglib/headers/mpeg/id3v2/id3v2tag.h | 361 +++ .../bin/taglib/headers/mpeg/mpegfile.h | 323 +++ .../bin/taglib/headers/mpeg/mpegheader.h | 166 ++ .../bin/taglib/headers/mpeg/mpegproperties.h | 118 + .../bin/taglib/headers/mpeg/xingheader.h | 100 + .../bin/taglib/headers/ogg/flac/oggflacfile.h | 126 + .../bin/taglib/headers/ogg/oggfile.h | 123 + .../bin/taglib/headers/ogg/oggpage.h | 211 ++ .../bin/taglib/headers/ogg/oggpageheader.h | 232 ++ .../bin/taglib/headers/ogg/speex/speexfile.h | 107 + .../headers/ogg/speex/speexproperties.h | 89 + .../taglib/headers/ogg/vorbis/vorbisfile.h | 139 ++ .../headers/ogg/vorbis/vorbisproperties.h | 125 + .../bin/taglib/headers/ogg/xiphcomment.h | 217 ++ .../bin/taglib/headers/riff/aiff/aifffile.h | 122 + .../taglib/headers/riff/aiff/aiffproperties.h | 83 + .../bin/taglib/headers/riff/rifffile.h | 122 + .../bin/taglib/headers/riff/wav/wavfile.h | 122 + .../taglib/headers/riff/wav/wavproperties.h | 92 + .../bin/taglib/headers/s3m/s3mfile.h | 101 + .../bin/taglib/headers/s3m/s3mproperties.h | 88 + Audio-Frameworks/bin/taglib/headers/tag.h | 201 ++ .../bin/taglib/headers/taglib_export.h | 47 + .../bin/taglib/headers/tagunion.h | 95 + .../bin/taglib/headers/toolkit/taglib.h | 226 ++ .../bin/taglib/headers/toolkit/tbytevector.h | 425 ++++ .../taglib/headers/toolkit/tbytevectorlist.h | 91 + .../headers/toolkit/tbytevectorstream.h | 145 ++ .../bin/taglib/headers/toolkit/tdebug.h | 71 + .../bin/taglib/headers/toolkit/tfile.h | 295 +++ .../bin/taglib/headers/toolkit/tfilestream.h | 154 ++ .../bin/taglib/headers/toolkit/tiostream.h | 160 ++ .../bin/taglib/headers/toolkit/tlist.h | 257 ++ .../bin/taglib/headers/toolkit/tlist.tcc | 322 +++ .../bin/taglib/headers/toolkit/tmap.h | 199 ++ .../bin/taglib/headers/toolkit/tmap.tcc | 196 ++ .../bin/taglib/headers/toolkit/tpropertymap.h | 184 ++ .../bin/taglib/headers/toolkit/tstring.h | 496 ++++ .../bin/taglib/headers/toolkit/tstringlist.h | 115 + .../bin/taglib/headers/toolkit/unicode.h | 149 ++ .../taglib/headers/trueaudio/trueaudiofile.h | 212 ++ .../headers/trueaudio/trueaudioproperties.h | 98 + .../bin/taglib/headers/wavpack/wavpackfile.h | 186 ++ .../headers/wavpack/wavpackproperties.h | 105 + .../bin/taglib/headers/xm/xmfile.h | 101 + .../bin/taglib/headers/xm/xmproperties.h | 79 + Audio-Frameworks/bin/taglib/libTagLib.a | Bin 0 -> 11161112 bytes Audio-Frameworks/flac-src/put_sources_here | 0 Audio-Frameworks/libogg-src/put_sources_here | 0 Audio-Frameworks/libopus-src/put_sources_here | 0 .../libopusfile-src/put_sources_here | 0 405 files changed, 101594 insertions(+), 1 deletion(-) delete mode 160000 Audio-Frameworks create mode 100644 Audio-Frameworks/CyberLink/CyberLink.xcodeproj/project.pbxproj create mode 100644 Audio-Frameworks/CyberLink/CyberLink/CyberLink-Info.plist create mode 100644 Audio-Frameworks/CyberLink/CyberLink/CyberLink-Prefix.pch create mode 100644 Audio-Frameworks/FLAC/FLAC.xcodeproj/project.pbxproj create mode 100644 Audio-Frameworks/FLAC/FLAC/FLAC-Info.plist create mode 100755 Audio-Frameworks/FLAC/config.h create mode 100644 Audio-Frameworks/Ogg/Ogg.xcodeproj/project.pbxproj create mode 100644 Audio-Frameworks/Ogg/Ogg/Ogg-Info.plist create mode 100644 Audio-Frameworks/Ogg/Ogg_ios/Ogg_ios-Info.plist create mode 100644 Audio-Frameworks/Opus/Opus.xcodeproj/project.pbxproj create mode 100644 Audio-Frameworks/Opus/Opus/Opus-Info.plist create mode 100644 Audio-Frameworks/Opus/Opus/config.h create mode 100644 Audio-Frameworks/Opus/Opus_ios/Opus_ios-Info.plist create mode 100644 Audio-Frameworks/OpusFile/OpusFile.xcodeproj/project.pbxproj create mode 100644 Audio-Frameworks/OpusFile/OpusFile/OpusFile-Info.plist create mode 100644 Audio-Frameworks/OpusFile/OpusFile_ios/OpusFile_ios-Info.plist create mode 100755 Audio-Frameworks/README.md create mode 100644 Audio-Frameworks/TagLib/TagLib.xcodeproj/project.pbxproj create mode 100644 Audio-Frameworks/TagLib/TagLib/TagLib-Info.plist create mode 100644 Audio-Frameworks/TagLib/TagLib/TagLib-Prefix.pch create mode 100755 Audio-Frameworks/TagLib/TagLib/config.h create mode 100755 Audio-Frameworks/TagLib/TagLib/taglib_config.h create mode 120000 Audio-Frameworks/bin/cyberlink/CyberLink.framework/CyberLink create mode 120000 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Headers create mode 120000 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Resources create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/CyberLink create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/caction.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cargument.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/ccond.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/ccontrol.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/ccontrolpoint.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cdevice.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cdictionary.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cevent.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cfile.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/chttp.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cicon.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cinterface.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/clist.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/clog.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cmutex.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cnotify.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cproperty.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cservice.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/csoap.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/csocket.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cssdp.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cssdp_server.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cstatevariable.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cstring.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/csubscriber.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/csubscription.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cthread.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/ctime.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cupnp.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cupnp_function.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cupnp_limit.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cupnp_status.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/curi.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/curl.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cxml.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/typedef.h create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Resources/Info.plist create mode 100644 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Resources/cupnp.h.in create mode 120000 Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/Current create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/http/chttp.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/io/cfile.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/net/cinterface.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/net/csocket.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/net/curi.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/net/curl.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/soap/csoap.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/typedef.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/caction.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cargument.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/ccontrolpoint.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cdevice.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cicon.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/control/ccontrol.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cservice.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cstatevariable.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cupnp.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cupnp.h.in create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cupnp_function.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cupnp_limit.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cupnp_status.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/event/cevent.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/event/cnotify.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/event/cproperty.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/event/csubscriber.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/event/csubscription.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/ssdp/cssdp.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/ssdp/cssdp_server.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/ccond.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/cdictionary.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/clist.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/clog.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/cmutex.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/cstring.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/cthread.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/ctime.h create mode 100644 Audio-Frameworks/bin/cyberlink/headers/cybergarage/xml/cxml.h create mode 100644 Audio-Frameworks/bin/cyberlink/libCyberLink.a create mode 120000 Audio-Frameworks/bin/flac/FLAC.framework/FLAC create mode 120000 Audio-Frameworks/bin/flac/FLAC.framework/Headers create mode 120000 Audio-Frameworks/bin/flac/FLAC.framework/Resources create mode 100644 Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/FLAC create mode 100644 Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/all.h create mode 100644 Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/assert.h create mode 100644 Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/callback.h create mode 100644 Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/export.h create mode 100644 Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/format.h create mode 100644 Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/metadata.h create mode 100644 Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/ordinals.h create mode 100644 Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/stream_decoder.h create mode 100644 Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/stream_encoder.h create mode 100644 Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Resources/Info.plist create mode 120000 Audio-Frameworks/bin/flac/FLAC.framework/Versions/Current create mode 120000 Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/FLAC create mode 120000 Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Headers create mode 120000 Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Resources create mode 100755 Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/FLAC create mode 100644 Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/all.h create mode 100644 Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/assert.h create mode 100644 Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/callback.h create mode 100644 Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/export.h create mode 100644 Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/format.h create mode 100644 Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/metadata.h create mode 100644 Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/ordinals.h create mode 100644 Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/stream_decoder.h create mode 100644 Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/stream_encoder.h create mode 100644 Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Resources/Info.plist create mode 100644 Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Resources/en.lproj/InfoPlist.strings create mode 120000 Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/Current create mode 100644 Audio-Frameworks/bin/flac/headers/FLAC/all.h create mode 100644 Audio-Frameworks/bin/flac/headers/FLAC/assert.h create mode 100644 Audio-Frameworks/bin/flac/headers/FLAC/callback.h create mode 100644 Audio-Frameworks/bin/flac/headers/FLAC/export.h create mode 100644 Audio-Frameworks/bin/flac/headers/FLAC/format.h create mode 100644 Audio-Frameworks/bin/flac/headers/FLAC/metadata.h create mode 100644 Audio-Frameworks/bin/flac/headers/FLAC/ordinals.h create mode 100644 Audio-Frameworks/bin/flac/headers/FLAC/stream_decoder.h create mode 100644 Audio-Frameworks/bin/flac/headers/FLAC/stream_encoder.h create mode 100644 Audio-Frameworks/bin/flac/headers/ogg/ogg.h create mode 100644 Audio-Frameworks/bin/flac/headers/ogg/os_types.h create mode 100644 Audio-Frameworks/bin/flac/libFLAC.a create mode 120000 Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Headers create mode 120000 Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Ogg create mode 120000 Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Resources create mode 100644 Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Versions/A/Headers/ogg.h create mode 100644 Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Versions/A/Headers/os_types.h create mode 100755 Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Versions/A/Ogg create mode 100644 Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Versions/A/Resources/Info.plist create mode 120000 Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Versions/Current create mode 120000 Audio-Frameworks/bin/ogg/Ogg.framework/Headers create mode 120000 Audio-Frameworks/bin/ogg/Ogg.framework/Ogg create mode 120000 Audio-Frameworks/bin/ogg/Ogg.framework/Resources create mode 100644 Audio-Frameworks/bin/ogg/Ogg.framework/Versions/A/Headers/ogg.h create mode 100644 Audio-Frameworks/bin/ogg/Ogg.framework/Versions/A/Headers/os_types.h create mode 100644 Audio-Frameworks/bin/ogg/Ogg.framework/Versions/A/Ogg create mode 100644 Audio-Frameworks/bin/ogg/Ogg.framework/Versions/A/Resources/Info.plist create mode 120000 Audio-Frameworks/bin/ogg/Ogg.framework/Versions/Current create mode 100644 Audio-Frameworks/bin/ogg/include/ogg/ogg.h create mode 100644 Audio-Frameworks/bin/ogg/include/ogg/os_types.h create mode 100644 Audio-Frameworks/bin/ogg/libogg.a create mode 120000 Audio-Frameworks/bin/opus/MacOS/Opus.framework/Headers create mode 120000 Audio-Frameworks/bin/opus/MacOS/Opus.framework/Opus create mode 120000 Audio-Frameworks/bin/opus/MacOS/Opus.framework/Resources create mode 100644 Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/A/Headers/opus.h create mode 100644 Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/A/Headers/opus_defines.h create mode 100644 Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/A/Headers/opus_multistream.h create mode 100644 Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/A/Headers/opus_types.h create mode 100755 Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/A/Opus create mode 100644 Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/A/Resources/Info.plist create mode 120000 Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/Current create mode 120000 Audio-Frameworks/bin/opus/Opus.framework/Headers create mode 120000 Audio-Frameworks/bin/opus/Opus.framework/Opus create mode 120000 Audio-Frameworks/bin/opus/Opus.framework/Resources create mode 100644 Audio-Frameworks/bin/opus/Opus.framework/Versions/A/Headers/opus.h create mode 100644 Audio-Frameworks/bin/opus/Opus.framework/Versions/A/Headers/opus_defines.h create mode 100644 Audio-Frameworks/bin/opus/Opus.framework/Versions/A/Headers/opus_multistream.h create mode 100644 Audio-Frameworks/bin/opus/Opus.framework/Versions/A/Headers/opus_types.h create mode 100644 Audio-Frameworks/bin/opus/Opus.framework/Versions/A/Opus create mode 100644 Audio-Frameworks/bin/opus/Opus.framework/Versions/A/Resources/Info.plist create mode 120000 Audio-Frameworks/bin/opus/Opus.framework/Versions/Current create mode 100644 Audio-Frameworks/bin/opus/include/opus.h create mode 100644 Audio-Frameworks/bin/opus/include/opus_defines.h create mode 100644 Audio-Frameworks/bin/opus/include/opus_multistream.h create mode 100644 Audio-Frameworks/bin/opus/include/opus_types.h create mode 100644 Audio-Frameworks/bin/opus/libopus.a create mode 120000 Audio-Frameworks/bin/opusfile/MacOS/OpusFile.framework/Headers create mode 120000 Audio-Frameworks/bin/opusfile/MacOS/OpusFile.framework/OpusFile create mode 120000 Audio-Frameworks/bin/opusfile/MacOS/OpusFile.framework/Resources create mode 100644 Audio-Frameworks/bin/opusfile/MacOS/OpusFile.framework/Versions/A/Headers/opusfile.h create mode 100755 Audio-Frameworks/bin/opusfile/MacOS/OpusFile.framework/Versions/A/OpusFile create mode 100644 Audio-Frameworks/bin/opusfile/MacOS/OpusFile.framework/Versions/A/Resources/Info.plist create mode 120000 Audio-Frameworks/bin/opusfile/MacOS/OpusFile.framework/Versions/Current create mode 120000 Audio-Frameworks/bin/opusfile/OpusFile.framework/Headers create mode 120000 Audio-Frameworks/bin/opusfile/OpusFile.framework/OpusFile create mode 120000 Audio-Frameworks/bin/opusfile/OpusFile.framework/Resources create mode 100644 Audio-Frameworks/bin/opusfile/OpusFile.framework/Versions/A/Headers/opusfile.h create mode 100644 Audio-Frameworks/bin/opusfile/OpusFile.framework/Versions/A/OpusFile create mode 100644 Audio-Frameworks/bin/opusfile/OpusFile.framework/Versions/A/Resources/Info.plist create mode 120000 Audio-Frameworks/bin/opusfile/OpusFile.framework/Versions/Current create mode 100644 Audio-Frameworks/bin/opusfile/include/opusfile/opusfile.h create mode 100644 Audio-Frameworks/bin/opusfile/libopusfile.a create mode 120000 Audio-Frameworks/bin/taglib/TagLib.framework/Headers create mode 120000 Audio-Frameworks/bin/taglib/TagLib.framework/Resources create mode 120000 Audio-Frameworks/bin/taglib/TagLib.framework/TagLib create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/aifffile.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/aiffproperties.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/apefile.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/apefooter.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/apeitem.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/apeproperties.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/apetag.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/asfattribute.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/asffile.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/asfpicture.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/asfproperties.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/asftag.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/attachedpictureframe.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/audioproperties.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/commentsframe.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/fileref.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/flacfile.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/flacmetadatablock.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/flacpicture.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/flacproperties.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/flacunknownmetadatablock.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/generalencapsulatedobjectframe.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v1genres.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v1tag.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2extendedheader.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2footer.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2frame.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2framefactory.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2header.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2synchdata.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2tag.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4atom.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4coverart.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4file.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4item.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4properties.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4tag.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mpcfile.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mpcproperties.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mpegfile.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mpegheader.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mpegproperties.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/oggfile.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/oggflacfile.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/oggpage.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/oggpageheader.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/popularimeterframe.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/privateframe.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/relativevolumeframe.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/rifffile.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/speexfile.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/speexproperties.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tag.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/taglib.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/taglib_export.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tagunion.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tbytevector.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tbytevectorlist.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tbytevectorstream.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tdebug.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/textidentificationframe.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tfile.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tfilestream.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tiostream.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tlist.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tlist.tcc create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tmap.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tmap.tcc create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tpropertymap.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/trueaudiofile.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/trueaudioproperties.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tstring.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tstringlist.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/unicode.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/uniquefileidentifierframe.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/unknownframe.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/unsynchronizedlyricsframe.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/urllinkframe.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/vorbisfile.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/vorbisproperties.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/wavfile.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/wavpackfile.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/wavpackproperties.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/wavproperties.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/xingheader.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/xiphcomment.h create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Resources/Info.plist create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Resources/id3v2.2.0.txt create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Resources/id3v2.3.0.txt create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Resources/id3v2.4.0-frames.txt create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Resources/id3v2.4.0-structure.txt create mode 100644 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/TagLib create mode 120000 Audio-Frameworks/bin/taglib/TagLib.framework/Versions/Current create mode 100644 Audio-Frameworks/bin/taglib/headers/ape/apefile.h create mode 100644 Audio-Frameworks/bin/taglib/headers/ape/apefooter.h create mode 100644 Audio-Frameworks/bin/taglib/headers/ape/apeitem.h create mode 100644 Audio-Frameworks/bin/taglib/headers/ape/apeproperties.h create mode 100644 Audio-Frameworks/bin/taglib/headers/ape/apetag.h create mode 100644 Audio-Frameworks/bin/taglib/headers/asf/asfattribute.h create mode 100644 Audio-Frameworks/bin/taglib/headers/asf/asffile.h create mode 100644 Audio-Frameworks/bin/taglib/headers/asf/asfpicture.h create mode 100644 Audio-Frameworks/bin/taglib/headers/asf/asfproperties.h create mode 100644 Audio-Frameworks/bin/taglib/headers/asf/asftag.h create mode 100644 Audio-Frameworks/bin/taglib/headers/audioproperties.h create mode 100644 Audio-Frameworks/bin/taglib/headers/fileref.h create mode 100644 Audio-Frameworks/bin/taglib/headers/flac/flacfile.h create mode 100644 Audio-Frameworks/bin/taglib/headers/flac/flacmetadatablock.h create mode 100644 Audio-Frameworks/bin/taglib/headers/flac/flacpicture.h create mode 100644 Audio-Frameworks/bin/taglib/headers/flac/flacproperties.h create mode 100644 Audio-Frameworks/bin/taglib/headers/flac/flacunknownmetadatablock.h create mode 100644 Audio-Frameworks/bin/taglib/headers/it/itfile.h create mode 100644 Audio-Frameworks/bin/taglib/headers/it/itproperties.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mod/modfile.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mod/modfilebase.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mod/modfileprivate.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mod/modproperties.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mod/modtag.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mp4/mp4atom.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mp4/mp4coverart.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mp4/mp4file.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mp4/mp4item.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mp4/mp4properties.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mp4/mp4tag.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpc/mpcfile.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpc/mpcproperties.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/id3v1/id3v1genres.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/id3v1/id3v1tag.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/attachedpictureframe.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/commentsframe.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/generalencapsulatedobjectframe.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/popularimeterframe.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/privateframe.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/relativevolumeframe.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/textidentificationframe.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/uniquefileidentifierframe.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/unknownframe.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/unsynchronizedlyricsframe.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/urllinkframe.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2extendedheader.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2footer.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2frame.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2framefactory.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2header.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2synchdata.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2tag.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/mpegfile.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/mpegheader.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/mpegproperties.h create mode 100644 Audio-Frameworks/bin/taglib/headers/mpeg/xingheader.h create mode 100644 Audio-Frameworks/bin/taglib/headers/ogg/flac/oggflacfile.h create mode 100644 Audio-Frameworks/bin/taglib/headers/ogg/oggfile.h create mode 100644 Audio-Frameworks/bin/taglib/headers/ogg/oggpage.h create mode 100644 Audio-Frameworks/bin/taglib/headers/ogg/oggpageheader.h create mode 100644 Audio-Frameworks/bin/taglib/headers/ogg/speex/speexfile.h create mode 100644 Audio-Frameworks/bin/taglib/headers/ogg/speex/speexproperties.h create mode 100644 Audio-Frameworks/bin/taglib/headers/ogg/vorbis/vorbisfile.h create mode 100644 Audio-Frameworks/bin/taglib/headers/ogg/vorbis/vorbisproperties.h create mode 100644 Audio-Frameworks/bin/taglib/headers/ogg/xiphcomment.h create mode 100644 Audio-Frameworks/bin/taglib/headers/riff/aiff/aifffile.h create mode 100644 Audio-Frameworks/bin/taglib/headers/riff/aiff/aiffproperties.h create mode 100644 Audio-Frameworks/bin/taglib/headers/riff/rifffile.h create mode 100644 Audio-Frameworks/bin/taglib/headers/riff/wav/wavfile.h create mode 100644 Audio-Frameworks/bin/taglib/headers/riff/wav/wavproperties.h create mode 100644 Audio-Frameworks/bin/taglib/headers/s3m/s3mfile.h create mode 100644 Audio-Frameworks/bin/taglib/headers/s3m/s3mproperties.h create mode 100644 Audio-Frameworks/bin/taglib/headers/tag.h create mode 100644 Audio-Frameworks/bin/taglib/headers/taglib_export.h create mode 100644 Audio-Frameworks/bin/taglib/headers/tagunion.h create mode 100644 Audio-Frameworks/bin/taglib/headers/toolkit/taglib.h create mode 100644 Audio-Frameworks/bin/taglib/headers/toolkit/tbytevector.h create mode 100644 Audio-Frameworks/bin/taglib/headers/toolkit/tbytevectorlist.h create mode 100644 Audio-Frameworks/bin/taglib/headers/toolkit/tbytevectorstream.h create mode 100644 Audio-Frameworks/bin/taglib/headers/toolkit/tdebug.h create mode 100644 Audio-Frameworks/bin/taglib/headers/toolkit/tfile.h create mode 100644 Audio-Frameworks/bin/taglib/headers/toolkit/tfilestream.h create mode 100644 Audio-Frameworks/bin/taglib/headers/toolkit/tiostream.h create mode 100644 Audio-Frameworks/bin/taglib/headers/toolkit/tlist.h create mode 100644 Audio-Frameworks/bin/taglib/headers/toolkit/tlist.tcc create mode 100644 Audio-Frameworks/bin/taglib/headers/toolkit/tmap.h create mode 100644 Audio-Frameworks/bin/taglib/headers/toolkit/tmap.tcc create mode 100644 Audio-Frameworks/bin/taglib/headers/toolkit/tpropertymap.h create mode 100644 Audio-Frameworks/bin/taglib/headers/toolkit/tstring.h create mode 100644 Audio-Frameworks/bin/taglib/headers/toolkit/tstringlist.h create mode 100644 Audio-Frameworks/bin/taglib/headers/toolkit/unicode.h create mode 100644 Audio-Frameworks/bin/taglib/headers/trueaudio/trueaudiofile.h create mode 100644 Audio-Frameworks/bin/taglib/headers/trueaudio/trueaudioproperties.h create mode 100644 Audio-Frameworks/bin/taglib/headers/wavpack/wavpackfile.h create mode 100644 Audio-Frameworks/bin/taglib/headers/wavpack/wavpackproperties.h create mode 100644 Audio-Frameworks/bin/taglib/headers/xm/xmfile.h create mode 100644 Audio-Frameworks/bin/taglib/headers/xm/xmproperties.h create mode 100644 Audio-Frameworks/bin/taglib/libTagLib.a create mode 100644 Audio-Frameworks/flac-src/put_sources_here create mode 100644 Audio-Frameworks/libogg-src/put_sources_here create mode 100644 Audio-Frameworks/libopus-src/put_sources_here create mode 100644 Audio-Frameworks/libopusfile-src/put_sources_here diff --git a/Audio-Frameworks b/Audio-Frameworks deleted file mode 160000 index 92acf6a..0000000 --- a/Audio-Frameworks +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 92acf6a3efe8398aeb273080efff2e78365b4e02 diff --git a/Audio-Frameworks/CyberLink/CyberLink.xcodeproj/project.pbxproj b/Audio-Frameworks/CyberLink/CyberLink.xcodeproj/project.pbxproj new file mode 100644 index 0000000..e247f41 --- /dev/null +++ b/Audio-Frameworks/CyberLink/CyberLink.xcodeproj/project.pbxproj @@ -0,0 +1,1311 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 9529EFD115DBF908000303A6 /* chttp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF6915DBF907000303A6 /* chttp.c */; }; + 9529EFD215DBF908000303A6 /* chttp_date.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF6A15DBF907000303A6 /* chttp_date.c */; }; + 9529EFD315DBF908000303A6 /* chttp_header.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF6B15DBF907000303A6 /* chttp_header.c */; }; + 9529EFD415DBF908000303A6 /* chttp_header_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF6C15DBF907000303A6 /* chttp_header_list.c */; }; + 9529EFD515DBF908000303A6 /* chttp_packet.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF6D15DBF907000303A6 /* chttp_packet.c */; }; + 9529EFD615DBF908000303A6 /* chttp_persistent_connection.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF6E15DBF907000303A6 /* chttp_persistent_connection.c */; }; + 9529EFD715DBF908000303A6 /* chttp_request.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF6F15DBF907000303A6 /* chttp_request.c */; }; + 9529EFD815DBF908000303A6 /* chttp_response.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7015DBF907000303A6 /* chttp_response.c */; }; + 9529EFD915DBF908000303A6 /* chttp_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7115DBF907000303A6 /* chttp_server.c */; }; + 9529EFDA15DBF908000303A6 /* chttp_server_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7215DBF907000303A6 /* chttp_server_list.c */; }; + 9529EFDB15DBF908000303A6 /* cfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7415DBF907000303A6 /* cfile.c */; }; + 9529EFDC15DBF908000303A6 /* cfile_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7515DBF907000303A6 /* cfile_list.c */; }; + 9529EFDD15DBF908000303A6 /* cdatagram_packet.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7715DBF907000303A6 /* cdatagram_packet.c */; }; + 9529EFDE15DBF908000303A6 /* cinterface.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7815DBF907000303A6 /* cinterface.c */; }; + 9529EFDF15DBF908000303A6 /* cinterface_function.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7915DBF907000303A6 /* cinterface_function.c */; }; + 9529EFE015DBF908000303A6 /* cinterface_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7A15DBF907000303A6 /* cinterface_list.c */; }; + 9529EFE115DBF908000303A6 /* cnet_function.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7B15DBF907000303A6 /* cnet_function.c */; }; + 9529EFE215DBF908000303A6 /* csocket.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7C15DBF907000303A6 /* csocket.c */; }; + 9529EFE315DBF908000303A6 /* csocket_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7D15DBF907000303A6 /* csocket_list.c */; }; + 9529EFE415DBF908000303A6 /* curi.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7E15DBF907000303A6 /* curi.c */; }; + 9529EFE515DBF908000303A6 /* curl.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7F15DBF907000303A6 /* curl.c */; }; + 9529EFE615DBF908000303A6 /* csoap.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8115DBF907000303A6 /* csoap.c */; }; + 9529EFE715DBF908000303A6 /* csoap_request.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8215DBF907000303A6 /* csoap_request.c */; }; + 9529EFE815DBF908000303A6 /* csoap_response.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8315DBF907000303A6 /* csoap_response.c */; }; + 9529EFE915DBF908000303A6 /* caction.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8515DBF907000303A6 /* caction.c */; }; + 9529EFEA15DBF908000303A6 /* caction_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8615DBF907000303A6 /* caction_list.c */; }; + 9529EFEB15DBF908000303A6 /* cargument.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8715DBF907000303A6 /* cargument.c */; }; + 9529EFEC15DBF908000303A6 /* cargument_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8815DBF907000303A6 /* cargument_list.c */; }; + 9529EFED15DBF908000303A6 /* ccontrolpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8915DBF907000303A6 /* ccontrolpoint.c */; }; + 9529EFEE15DBF908000303A6 /* ccontrolpoint_event.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8A15DBF907000303A6 /* ccontrolpoint_event.c */; }; + 9529EFEF15DBF908000303A6 /* ccontrolpoint_http_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8B15DBF907000303A6 /* ccontrolpoint_http_server.c */; }; + 9529EFF015DBF908000303A6 /* cdevice.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8C15DBF907000303A6 /* cdevice.c */; }; + 9529EFF115DBF908000303A6 /* cdevice_advertiser.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8D15DBF907000303A6 /* cdevice_advertiser.c */; }; + 9529EFF215DBF908000303A6 /* cdevice_http_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8E15DBF907000303A6 /* cdevice_http_server.c */; }; + 9529EFF315DBF908000303A6 /* cdevice_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8F15DBF907000303A6 /* cdevice_list.c */; }; + 9529EFF415DBF908000303A6 /* cdevice_ssdp_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9015DBF907000303A6 /* cdevice_ssdp_server.c */; }; + 9529EFF515DBF908000303A6 /* cicon.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9115DBF907000303A6 /* cicon.c */; }; + 9529EFF615DBF908000303A6 /* cicon_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9215DBF907000303A6 /* cicon_list.c */; }; + 9529EFF715DBF908000303A6 /* caction_ctrl.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9415DBF908000303A6 /* caction_ctrl.c */; }; + 9529EFF815DBF908000303A6 /* caction_request.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9515DBF908000303A6 /* caction_request.c */; }; + 9529EFF915DBF908000303A6 /* caction_response.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9615DBF908000303A6 /* caction_response.c */; }; + 9529EFFA15DBF908000303A6 /* ccontrol_function.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9715DBF908000303A6 /* ccontrol_function.c */; }; + 9529EFFB15DBF908000303A6 /* cquery_ctrl.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9815DBF908000303A6 /* cquery_ctrl.c */; }; + 9529EFFC15DBF908000303A6 /* cquery_request.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9915DBF908000303A6 /* cquery_request.c */; }; + 9529EFFD15DBF908000303A6 /* cquery_response.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9A15DBF908000303A6 /* cquery_response.c */; }; + 9529EFFE15DBF908000303A6 /* cservice.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9B15DBF908000303A6 /* cservice.c */; }; + 9529EFFF15DBF908000303A6 /* cservice_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9C15DBF908000303A6 /* cservice_list.c */; }; + 9529F00015DBF908000303A6 /* cservice_notify.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9D15DBF908000303A6 /* cservice_notify.c */; }; + 9529F00115DBF908000303A6 /* cservice_ssdp_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9E15DBF908000303A6 /* cservice_ssdp_server.c */; }; + 9529F00215DBF908000303A6 /* cservice_std_dcp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9F15DBF908000303A6 /* cservice_std_dcp.c */; }; + 9529F00315DBF908000303A6 /* cservicestate_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFA015DBF908000303A6 /* cservicestate_table.c */; }; + 9529F00415DBF908000303A6 /* cstatevariable.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFA115DBF908000303A6 /* cstatevariable.c */; }; + 9529F00515DBF908000303A6 /* cupnp_function.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFA215DBF908000303A6 /* cupnp_function.c */; }; + 9529F00615DBF908000303A6 /* cupnp_status.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFA315DBF908000303A6 /* cupnp_status.c */; }; + 9529F00715DBF908000303A6 /* ceventlistener_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFA515DBF908000303A6 /* ceventlistener_list.c */; }; + 9529F00815DBF908000303A6 /* cnotify_request.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFA615DBF908000303A6 /* cnotify_request.c */; }; + 9529F00915DBF908000303A6 /* cproperty.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFA715DBF908000303A6 /* cproperty.c */; }; + 9529F00A15DBF908000303A6 /* cproperty_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFA815DBF908000303A6 /* cproperty_list.c */; }; + 9529F00B15DBF908000303A6 /* csubscriber.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFA915DBF908000303A6 /* csubscriber.c */; }; + 9529F00C15DBF908000303A6 /* csubscriber_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFAA15DBF908000303A6 /* csubscriber_list.c */; }; + 9529F00D15DBF908000303A6 /* csubscription.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFAB15DBF908000303A6 /* csubscription.c */; }; + 9529F00E15DBF908000303A6 /* csubscription_request.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFAC15DBF908000303A6 /* csubscription_request.c */; }; + 9529F00F15DBF908000303A6 /* csubscription_response.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFAD15DBF908000303A6 /* csubscription_response.c */; }; + 9529F01015DBF908000303A6 /* chttpmu_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFAF15DBF908000303A6 /* chttpmu_socket.c */; }; + 9529F01115DBF908000303A6 /* chttpu_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFB015DBF908000303A6 /* chttpu_socket.c */; }; + 9529F01215DBF908000303A6 /* cssdp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFB115DBF908000303A6 /* cssdp.c */; }; + 9529F01315DBF908000303A6 /* cssdp_packet.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFB215DBF908000303A6 /* cssdp_packet.c */; }; + 9529F01415DBF908000303A6 /* cssdp_request.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFB315DBF908000303A6 /* cssdp_request.c */; }; + 9529F01515DBF908000303A6 /* cssdp_response.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFB415DBF908000303A6 /* cssdp_response.c */; }; + 9529F01615DBF908000303A6 /* cssdp_response_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFB515DBF908000303A6 /* cssdp_response_server.c */; }; + 9529F01715DBF908000303A6 /* cssdp_response_server_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFB615DBF908000303A6 /* cssdp_response_server_list.c */; }; + 9529F01815DBF908000303A6 /* cssdp_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFB715DBF908000303A6 /* cssdp_server.c */; }; + 9529F01915DBF908000303A6 /* cssdp_server_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFB815DBF908000303A6 /* cssdp_server_list.c */; }; + 9529F01A15DBF908000303A6 /* cssdp_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFB915DBF908000303A6 /* cssdp_socket.c */; }; + 9529F01B15DBF908000303A6 /* ccond.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFBB15DBF908000303A6 /* ccond.c */; }; + 9529F01C15DBF908000303A6 /* cdictionary.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFBC15DBF908000303A6 /* cdictionary.c */; }; + 9529F01D15DBF908000303A6 /* cdictionary_elem.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFBD15DBF908000303A6 /* cdictionary_elem.c */; }; + 9529F01E15DBF908000303A6 /* clist.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFBE15DBF908000303A6 /* clist.c */; }; + 9529F01F15DBF908000303A6 /* clog.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFBF15DBF908000303A6 /* clog.c */; }; + 9529F02015DBF908000303A6 /* cmutex.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFC015DBF908000303A6 /* cmutex.c */; }; + 9529F02115DBF908000303A6 /* cstring.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFC115DBF908000303A6 /* cstring.c */; }; + 9529F02215DBF908000303A6 /* cstring_function.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFC215DBF908000303A6 /* cstring_function.c */; }; + 9529F02315DBF908000303A6 /* cstring_tokenizer.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFC315DBF908000303A6 /* cstring_tokenizer.c */; }; + 9529F02415DBF908000303A6 /* cthread.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFC415DBF908000303A6 /* cthread.c */; }; + 9529F02515DBF908000303A6 /* cthread_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFC515DBF908000303A6 /* cthread_list.c */; }; + 9529F02615DBF908000303A6 /* ctime.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFC615DBF908000303A6 /* ctime.c */; }; + 9529F02715DBF908000303A6 /* ctime_wince.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFC715DBF908000303A6 /* ctime_wince.c */; }; + 9529F02815DBF908000303A6 /* cxml_attribute.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFC915DBF908000303A6 /* cxml_attribute.c */; }; + 9529F02915DBF908000303A6 /* cxml_attribute_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFCA15DBF908000303A6 /* cxml_attribute_list.c */; }; + 9529F02A15DBF908000303A6 /* cxml_function.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFCB15DBF908000303A6 /* cxml_function.c */; }; + 9529F02B15DBF908000303A6 /* cxml_node.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFCC15DBF908000303A6 /* cxml_node.c */; }; + 9529F02C15DBF908000303A6 /* cxml_node_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFCD15DBF908000303A6 /* cxml_node_list.c */; }; + 9529F02D15DBF908000303A6 /* cxml_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFCE15DBF908000303A6 /* cxml_parser.c */; }; + 9529F02E15DBF908000303A6 /* cxml_parser_expat.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFCF15DBF908000303A6 /* cxml_parser_expat.c */; }; + 9529F02F15DBF908000303A6 /* cxml_parser_libxml2.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFD015DBF908000303A6 /* cxml_parser_libxml2.c */; }; + 9529F05F15DBF916000303A6 /* chttp.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F03115DBF916000303A6 /* chttp.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F06015DBF916000303A6 /* cfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F03315DBF916000303A6 /* cfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F06115DBF916000303A6 /* cinterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F03515DBF916000303A6 /* cinterface.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F06215DBF916000303A6 /* csocket.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F03615DBF916000303A6 /* csocket.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F06315DBF916000303A6 /* curi.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F03715DBF916000303A6 /* curi.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F06415DBF916000303A6 /* curl.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F03815DBF916000303A6 /* curl.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F06515DBF916000303A6 /* csoap.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F03A15DBF916000303A6 /* csoap.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F06615DBF916000303A6 /* typedef.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F03B15DBF916000303A6 /* typedef.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F06715DBF916000303A6 /* caction.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F03D15DBF916000303A6 /* caction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F06815DBF916000303A6 /* cargument.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F03E15DBF916000303A6 /* cargument.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F06915DBF916000303A6 /* ccontrolpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F03F15DBF916000303A6 /* ccontrolpoint.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F06A15DBF916000303A6 /* cdevice.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F04015DBF916000303A6 /* cdevice.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F06B15DBF916000303A6 /* cicon.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F04115DBF916000303A6 /* cicon.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F06C15DBF916000303A6 /* ccontrol.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F04315DBF916000303A6 /* ccontrol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F06D15DBF916000303A6 /* cservice.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F04415DBF916000303A6 /* cservice.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F06E15DBF916000303A6 /* cstatevariable.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F04515DBF916000303A6 /* cstatevariable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F06F15DBF916000303A6 /* cupnp.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F04615DBF916000303A6 /* cupnp.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F07015DBF916000303A6 /* cupnp.h.in in Resources */ = {isa = PBXBuildFile; fileRef = 9529F04715DBF916000303A6 /* cupnp.h.in */; }; + 9529F07115DBF916000303A6 /* cupnp_function.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F04815DBF916000303A6 /* cupnp_function.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F07215DBF916000303A6 /* cupnp_limit.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F04915DBF916000303A6 /* cupnp_limit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F07315DBF916000303A6 /* cupnp_status.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F04A15DBF916000303A6 /* cupnp_status.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F07415DBF916000303A6 /* cevent.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F04C15DBF916000303A6 /* cevent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F07515DBF916000303A6 /* cnotify.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F04D15DBF916000303A6 /* cnotify.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F07615DBF916000303A6 /* cproperty.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F04E15DBF916000303A6 /* cproperty.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F07715DBF916000303A6 /* csubscriber.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F04F15DBF916000303A6 /* csubscriber.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F07815DBF916000303A6 /* csubscription.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F05015DBF916000303A6 /* csubscription.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F07915DBF916000303A6 /* cssdp.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F05215DBF916000303A6 /* cssdp.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F07A15DBF916000303A6 /* cssdp_server.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F05315DBF916000303A6 /* cssdp_server.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F07B15DBF916000303A6 /* ccond.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F05515DBF916000303A6 /* ccond.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F07C15DBF916000303A6 /* cdictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F05615DBF916000303A6 /* cdictionary.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F07D15DBF916000303A6 /* clist.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F05715DBF916000303A6 /* clist.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F07E15DBF916000303A6 /* clog.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F05815DBF916000303A6 /* clog.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F07F15DBF916000303A6 /* cmutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F05915DBF916000303A6 /* cmutex.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F08015DBF916000303A6 /* cstring.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F05A15DBF916000303A6 /* cstring.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F08115DBF916000303A6 /* cthread.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F05B15DBF916000303A6 /* cthread.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F08215DBF916000303A6 /* ctime.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F05C15DBF916000303A6 /* ctime.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F08315DBF916000303A6 /* cxml.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F05E15DBF916000303A6 /* cxml.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F08815DBFAFC000303A6 /* libxml2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9529F08715DBFAFC000303A6 /* libxml2.dylib */; }; + 9529F09B15DBFBB8000303A6 /* libxml2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9529F08715DBFAFC000303A6 /* libxml2.dylib */; }; + 9529F09C15DBFBDC000303A6 /* chttp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF6915DBF907000303A6 /* chttp.c */; }; + 9529F09D15DBFBDC000303A6 /* chttp_date.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF6A15DBF907000303A6 /* chttp_date.c */; }; + 9529F09E15DBFBDC000303A6 /* chttp_header.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF6B15DBF907000303A6 /* chttp_header.c */; }; + 9529F09F15DBFBDC000303A6 /* chttp_header_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF6C15DBF907000303A6 /* chttp_header_list.c */; }; + 9529F0A015DBFBDC000303A6 /* chttp_packet.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF6D15DBF907000303A6 /* chttp_packet.c */; }; + 9529F0A115DBFBDC000303A6 /* chttp_persistent_connection.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF6E15DBF907000303A6 /* chttp_persistent_connection.c */; }; + 9529F0A215DBFBDC000303A6 /* chttp_request.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF6F15DBF907000303A6 /* chttp_request.c */; }; + 9529F0A315DBFBDC000303A6 /* chttp_response.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7015DBF907000303A6 /* chttp_response.c */; }; + 9529F0A415DBFBDC000303A6 /* chttp_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7115DBF907000303A6 /* chttp_server.c */; }; + 9529F0A515DBFBDC000303A6 /* chttp_server_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7215DBF907000303A6 /* chttp_server_list.c */; }; + 9529F0A615DBFBDC000303A6 /* cfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7415DBF907000303A6 /* cfile.c */; }; + 9529F0A715DBFBDC000303A6 /* cfile_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7515DBF907000303A6 /* cfile_list.c */; }; + 9529F0A815DBFBDC000303A6 /* cdatagram_packet.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7715DBF907000303A6 /* cdatagram_packet.c */; }; + 9529F0A915DBFBDC000303A6 /* cinterface.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7815DBF907000303A6 /* cinterface.c */; }; + 9529F0AA15DBFBDC000303A6 /* cinterface_function.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7915DBF907000303A6 /* cinterface_function.c */; }; + 9529F0AB15DBFBDC000303A6 /* cinterface_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7A15DBF907000303A6 /* cinterface_list.c */; }; + 9529F0AC15DBFBDC000303A6 /* cnet_function.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7B15DBF907000303A6 /* cnet_function.c */; }; + 9529F0AD15DBFBDC000303A6 /* csocket.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7C15DBF907000303A6 /* csocket.c */; }; + 9529F0AE15DBFBDC000303A6 /* csocket_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7D15DBF907000303A6 /* csocket_list.c */; }; + 9529F0AF15DBFBDC000303A6 /* curi.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7E15DBF907000303A6 /* curi.c */; }; + 9529F0B015DBFBDC000303A6 /* curl.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF7F15DBF907000303A6 /* curl.c */; }; + 9529F0B115DBFBDC000303A6 /* csoap.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8115DBF907000303A6 /* csoap.c */; }; + 9529F0B215DBFBDC000303A6 /* csoap_request.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8215DBF907000303A6 /* csoap_request.c */; }; + 9529F0B315DBFBDC000303A6 /* csoap_response.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8315DBF907000303A6 /* csoap_response.c */; }; + 9529F0B415DBFBDC000303A6 /* caction.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8515DBF907000303A6 /* caction.c */; }; + 9529F0B515DBFBDC000303A6 /* caction_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8615DBF907000303A6 /* caction_list.c */; }; + 9529F0B615DBFBDC000303A6 /* cargument.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8715DBF907000303A6 /* cargument.c */; }; + 9529F0B715DBFBDC000303A6 /* cargument_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8815DBF907000303A6 /* cargument_list.c */; }; + 9529F0B815DBFBDC000303A6 /* ccontrolpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8915DBF907000303A6 /* ccontrolpoint.c */; }; + 9529F0B915DBFBDC000303A6 /* ccontrolpoint_event.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8A15DBF907000303A6 /* ccontrolpoint_event.c */; }; + 9529F0BA15DBFBDC000303A6 /* ccontrolpoint_http_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8B15DBF907000303A6 /* ccontrolpoint_http_server.c */; }; + 9529F0BB15DBFBDC000303A6 /* cdevice.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8C15DBF907000303A6 /* cdevice.c */; }; + 9529F0BC15DBFBDC000303A6 /* cdevice_advertiser.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8D15DBF907000303A6 /* cdevice_advertiser.c */; }; + 9529F0BD15DBFBDC000303A6 /* cdevice_http_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8E15DBF907000303A6 /* cdevice_http_server.c */; }; + 9529F0BE15DBFBDC000303A6 /* cdevice_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF8F15DBF907000303A6 /* cdevice_list.c */; }; + 9529F0BF15DBFBDC000303A6 /* cdevice_ssdp_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9015DBF907000303A6 /* cdevice_ssdp_server.c */; }; + 9529F0C015DBFBDC000303A6 /* cicon.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9115DBF907000303A6 /* cicon.c */; }; + 9529F0C115DBFBDC000303A6 /* cicon_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9215DBF907000303A6 /* cicon_list.c */; }; + 9529F0C215DBFBDC000303A6 /* caction_ctrl.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9415DBF908000303A6 /* caction_ctrl.c */; }; + 9529F0C315DBFBDC000303A6 /* caction_request.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9515DBF908000303A6 /* caction_request.c */; }; + 9529F0C415DBFBDC000303A6 /* caction_response.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9615DBF908000303A6 /* caction_response.c */; }; + 9529F0C515DBFBDC000303A6 /* ccontrol_function.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9715DBF908000303A6 /* ccontrol_function.c */; }; + 9529F0C615DBFBDC000303A6 /* cquery_ctrl.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9815DBF908000303A6 /* cquery_ctrl.c */; }; + 9529F0C715DBFBDC000303A6 /* cquery_request.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9915DBF908000303A6 /* cquery_request.c */; }; + 9529F0C815DBFBDC000303A6 /* cquery_response.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9A15DBF908000303A6 /* cquery_response.c */; }; + 9529F0C915DBFBDC000303A6 /* cservice.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9B15DBF908000303A6 /* cservice.c */; }; + 9529F0CA15DBFBDC000303A6 /* cservice_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9C15DBF908000303A6 /* cservice_list.c */; }; + 9529F0CB15DBFBDC000303A6 /* cservice_notify.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9D15DBF908000303A6 /* cservice_notify.c */; }; + 9529F0CC15DBFBDC000303A6 /* cservice_ssdp_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9E15DBF908000303A6 /* cservice_ssdp_server.c */; }; + 9529F0CD15DBFBDC000303A6 /* cservice_std_dcp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EF9F15DBF908000303A6 /* cservice_std_dcp.c */; }; + 9529F0CE15DBFBDC000303A6 /* cservicestate_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFA015DBF908000303A6 /* cservicestate_table.c */; }; + 9529F0CF15DBFBDC000303A6 /* cstatevariable.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFA115DBF908000303A6 /* cstatevariable.c */; }; + 9529F0D015DBFBDC000303A6 /* cupnp_function.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFA215DBF908000303A6 /* cupnp_function.c */; }; + 9529F0D115DBFBDC000303A6 /* cupnp_status.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFA315DBF908000303A6 /* cupnp_status.c */; }; + 9529F0D215DBFBDC000303A6 /* ceventlistener_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFA515DBF908000303A6 /* ceventlistener_list.c */; }; + 9529F0D315DBFBDC000303A6 /* cnotify_request.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFA615DBF908000303A6 /* cnotify_request.c */; }; + 9529F0D415DBFBDC000303A6 /* cproperty.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFA715DBF908000303A6 /* cproperty.c */; }; + 9529F0D515DBFBDC000303A6 /* cproperty_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFA815DBF908000303A6 /* cproperty_list.c */; }; + 9529F0D615DBFBDC000303A6 /* csubscriber.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFA915DBF908000303A6 /* csubscriber.c */; }; + 9529F0D715DBFBDC000303A6 /* csubscriber_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFAA15DBF908000303A6 /* csubscriber_list.c */; }; + 9529F0D815DBFBDC000303A6 /* csubscription.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFAB15DBF908000303A6 /* csubscription.c */; }; + 9529F0D915DBFBDC000303A6 /* csubscription_request.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFAC15DBF908000303A6 /* csubscription_request.c */; }; + 9529F0DA15DBFBDC000303A6 /* csubscription_response.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFAD15DBF908000303A6 /* csubscription_response.c */; }; + 9529F0DB15DBFBDC000303A6 /* chttpmu_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFAF15DBF908000303A6 /* chttpmu_socket.c */; }; + 9529F0DC15DBFBDC000303A6 /* chttpu_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFB015DBF908000303A6 /* chttpu_socket.c */; }; + 9529F0DD15DBFBDC000303A6 /* cssdp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFB115DBF908000303A6 /* cssdp.c */; }; + 9529F0DE15DBFBDC000303A6 /* cssdp_packet.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFB215DBF908000303A6 /* cssdp_packet.c */; }; + 9529F0DF15DBFBDC000303A6 /* cssdp_request.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFB315DBF908000303A6 /* cssdp_request.c */; }; + 9529F0E015DBFBDC000303A6 /* cssdp_response.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFB415DBF908000303A6 /* cssdp_response.c */; }; + 9529F0E115DBFBDC000303A6 /* cssdp_response_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFB515DBF908000303A6 /* cssdp_response_server.c */; }; + 9529F0E215DBFBDC000303A6 /* cssdp_response_server_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFB615DBF908000303A6 /* cssdp_response_server_list.c */; }; + 9529F0E315DBFBDC000303A6 /* cssdp_server.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFB715DBF908000303A6 /* cssdp_server.c */; }; + 9529F0E415DBFBDC000303A6 /* cssdp_server_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFB815DBF908000303A6 /* cssdp_server_list.c */; }; + 9529F0E515DBFBDC000303A6 /* cssdp_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFB915DBF908000303A6 /* cssdp_socket.c */; }; + 9529F0E615DBFBDC000303A6 /* ccond.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFBB15DBF908000303A6 /* ccond.c */; }; + 9529F0E715DBFBDC000303A6 /* cdictionary.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFBC15DBF908000303A6 /* cdictionary.c */; }; + 9529F0E815DBFBDC000303A6 /* cdictionary_elem.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFBD15DBF908000303A6 /* cdictionary_elem.c */; }; + 9529F0E915DBFBDC000303A6 /* clist.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFBE15DBF908000303A6 /* clist.c */; }; + 9529F0EA15DBFBDC000303A6 /* clog.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFBF15DBF908000303A6 /* clog.c */; }; + 9529F0EB15DBFBDC000303A6 /* cmutex.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFC015DBF908000303A6 /* cmutex.c */; }; + 9529F0EC15DBFBDC000303A6 /* cstring.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFC115DBF908000303A6 /* cstring.c */; }; + 9529F0ED15DBFBDC000303A6 /* cstring_function.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFC215DBF908000303A6 /* cstring_function.c */; }; + 9529F0EE15DBFBDC000303A6 /* cstring_tokenizer.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFC315DBF908000303A6 /* cstring_tokenizer.c */; }; + 9529F0EF15DBFBDC000303A6 /* cthread.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFC415DBF908000303A6 /* cthread.c */; }; + 9529F0F015DBFBDC000303A6 /* cthread_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFC515DBF908000303A6 /* cthread_list.c */; }; + 9529F0F115DBFBDC000303A6 /* ctime.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFC615DBF908000303A6 /* ctime.c */; }; + 9529F0F215DBFBDC000303A6 /* ctime_wince.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFC715DBF908000303A6 /* ctime_wince.c */; }; + 9529F0F315DBFBDC000303A6 /* cxml_attribute.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFC915DBF908000303A6 /* cxml_attribute.c */; }; + 9529F0F415DBFBDC000303A6 /* cxml_attribute_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFCA15DBF908000303A6 /* cxml_attribute_list.c */; }; + 9529F0F515DBFBDC000303A6 /* cxml_function.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFCB15DBF908000303A6 /* cxml_function.c */; }; + 9529F0F615DBFBDC000303A6 /* cxml_node.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFCC15DBF908000303A6 /* cxml_node.c */; }; + 9529F0F715DBFBDC000303A6 /* cxml_node_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFCD15DBF908000303A6 /* cxml_node_list.c */; }; + 9529F0F815DBFBDC000303A6 /* cxml_parser.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFCE15DBF908000303A6 /* cxml_parser.c */; }; + 9529F0F915DBFBDC000303A6 /* cxml_parser_expat.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFCF15DBF908000303A6 /* cxml_parser_expat.c */; }; + 9529F0FA15DBFBDC000303A6 /* cxml_parser_libxml2.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EFD015DBF908000303A6 /* cxml_parser_libxml2.c */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9529F08B15DBFBA6000303A6 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/${PRODUCT_NAME}"; + dstSubfolderSpec = 16; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 9529EF5915DBF846000303A6 /* CyberLink.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CyberLink.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9529EF5D15DBF846000303A6 /* CyberLink-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "CyberLink-Info.plist"; sourceTree = ""; }; + 9529EF6115DBF846000303A6 /* CyberLink-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "CyberLink-Prefix.pch"; sourceTree = ""; }; + 9529EF6915DBF907000303A6 /* chttp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = chttp.c; sourceTree = ""; }; + 9529EF6A15DBF907000303A6 /* chttp_date.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = chttp_date.c; sourceTree = ""; }; + 9529EF6B15DBF907000303A6 /* chttp_header.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = chttp_header.c; sourceTree = ""; }; + 9529EF6C15DBF907000303A6 /* chttp_header_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = chttp_header_list.c; sourceTree = ""; }; + 9529EF6D15DBF907000303A6 /* chttp_packet.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = chttp_packet.c; sourceTree = ""; }; + 9529EF6E15DBF907000303A6 /* chttp_persistent_connection.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = chttp_persistent_connection.c; sourceTree = ""; }; + 9529EF6F15DBF907000303A6 /* chttp_request.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = chttp_request.c; sourceTree = ""; }; + 9529EF7015DBF907000303A6 /* chttp_response.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = chttp_response.c; sourceTree = ""; }; + 9529EF7115DBF907000303A6 /* chttp_server.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = chttp_server.c; sourceTree = ""; }; + 9529EF7215DBF907000303A6 /* chttp_server_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = chttp_server_list.c; sourceTree = ""; }; + 9529EF7415DBF907000303A6 /* cfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cfile.c; sourceTree = ""; }; + 9529EF7515DBF907000303A6 /* cfile_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cfile_list.c; sourceTree = ""; }; + 9529EF7715DBF907000303A6 /* cdatagram_packet.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cdatagram_packet.c; sourceTree = ""; }; + 9529EF7815DBF907000303A6 /* cinterface.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cinterface.c; sourceTree = ""; }; + 9529EF7915DBF907000303A6 /* cinterface_function.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cinterface_function.c; sourceTree = ""; }; + 9529EF7A15DBF907000303A6 /* cinterface_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cinterface_list.c; sourceTree = ""; }; + 9529EF7B15DBF907000303A6 /* cnet_function.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cnet_function.c; sourceTree = ""; }; + 9529EF7C15DBF907000303A6 /* csocket.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = csocket.c; sourceTree = ""; }; + 9529EF7D15DBF907000303A6 /* csocket_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = csocket_list.c; sourceTree = ""; }; + 9529EF7E15DBF907000303A6 /* curi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = curi.c; sourceTree = ""; }; + 9529EF7F15DBF907000303A6 /* curl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = curl.c; sourceTree = ""; }; + 9529EF8115DBF907000303A6 /* csoap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = csoap.c; sourceTree = ""; }; + 9529EF8215DBF907000303A6 /* csoap_request.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = csoap_request.c; sourceTree = ""; }; + 9529EF8315DBF907000303A6 /* csoap_response.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = csoap_response.c; sourceTree = ""; }; + 9529EF8515DBF907000303A6 /* caction.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = caction.c; sourceTree = ""; }; + 9529EF8615DBF907000303A6 /* caction_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = caction_list.c; sourceTree = ""; }; + 9529EF8715DBF907000303A6 /* cargument.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cargument.c; sourceTree = ""; }; + 9529EF8815DBF907000303A6 /* cargument_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cargument_list.c; sourceTree = ""; }; + 9529EF8915DBF907000303A6 /* ccontrolpoint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ccontrolpoint.c; sourceTree = ""; }; + 9529EF8A15DBF907000303A6 /* ccontrolpoint_event.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ccontrolpoint_event.c; sourceTree = ""; }; + 9529EF8B15DBF907000303A6 /* ccontrolpoint_http_server.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ccontrolpoint_http_server.c; sourceTree = ""; }; + 9529EF8C15DBF907000303A6 /* cdevice.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cdevice.c; sourceTree = ""; }; + 9529EF8D15DBF907000303A6 /* cdevice_advertiser.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cdevice_advertiser.c; sourceTree = ""; }; + 9529EF8E15DBF907000303A6 /* cdevice_http_server.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cdevice_http_server.c; sourceTree = ""; }; + 9529EF8F15DBF907000303A6 /* cdevice_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cdevice_list.c; sourceTree = ""; }; + 9529EF9015DBF907000303A6 /* cdevice_ssdp_server.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cdevice_ssdp_server.c; sourceTree = ""; }; + 9529EF9115DBF907000303A6 /* cicon.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cicon.c; sourceTree = ""; }; + 9529EF9215DBF907000303A6 /* cicon_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cicon_list.c; sourceTree = ""; }; + 9529EF9415DBF908000303A6 /* caction_ctrl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = caction_ctrl.c; sourceTree = ""; }; + 9529EF9515DBF908000303A6 /* caction_request.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = caction_request.c; sourceTree = ""; }; + 9529EF9615DBF908000303A6 /* caction_response.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = caction_response.c; sourceTree = ""; }; + 9529EF9715DBF908000303A6 /* ccontrol_function.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ccontrol_function.c; sourceTree = ""; }; + 9529EF9815DBF908000303A6 /* cquery_ctrl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cquery_ctrl.c; sourceTree = ""; }; + 9529EF9915DBF908000303A6 /* cquery_request.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cquery_request.c; sourceTree = ""; }; + 9529EF9A15DBF908000303A6 /* cquery_response.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cquery_response.c; sourceTree = ""; }; + 9529EF9B15DBF908000303A6 /* cservice.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cservice.c; sourceTree = ""; }; + 9529EF9C15DBF908000303A6 /* cservice_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cservice_list.c; sourceTree = ""; }; + 9529EF9D15DBF908000303A6 /* cservice_notify.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cservice_notify.c; sourceTree = ""; }; + 9529EF9E15DBF908000303A6 /* cservice_ssdp_server.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cservice_ssdp_server.c; sourceTree = ""; }; + 9529EF9F15DBF908000303A6 /* cservice_std_dcp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cservice_std_dcp.c; sourceTree = ""; }; + 9529EFA015DBF908000303A6 /* cservicestate_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cservicestate_table.c; sourceTree = ""; }; + 9529EFA115DBF908000303A6 /* cstatevariable.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cstatevariable.c; sourceTree = ""; }; + 9529EFA215DBF908000303A6 /* cupnp_function.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cupnp_function.c; sourceTree = ""; }; + 9529EFA315DBF908000303A6 /* cupnp_status.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cupnp_status.c; sourceTree = ""; }; + 9529EFA515DBF908000303A6 /* ceventlistener_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ceventlistener_list.c; sourceTree = ""; }; + 9529EFA615DBF908000303A6 /* cnotify_request.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cnotify_request.c; sourceTree = ""; }; + 9529EFA715DBF908000303A6 /* cproperty.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cproperty.c; sourceTree = ""; }; + 9529EFA815DBF908000303A6 /* cproperty_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cproperty_list.c; sourceTree = ""; }; + 9529EFA915DBF908000303A6 /* csubscriber.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = csubscriber.c; sourceTree = ""; }; + 9529EFAA15DBF908000303A6 /* csubscriber_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = csubscriber_list.c; sourceTree = ""; }; + 9529EFAB15DBF908000303A6 /* csubscription.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = csubscription.c; sourceTree = ""; }; + 9529EFAC15DBF908000303A6 /* csubscription_request.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = csubscription_request.c; sourceTree = ""; }; + 9529EFAD15DBF908000303A6 /* csubscription_response.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = csubscription_response.c; sourceTree = ""; }; + 9529EFAF15DBF908000303A6 /* chttpmu_socket.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = chttpmu_socket.c; sourceTree = ""; }; + 9529EFB015DBF908000303A6 /* chttpu_socket.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = chttpu_socket.c; sourceTree = ""; }; + 9529EFB115DBF908000303A6 /* cssdp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cssdp.c; sourceTree = ""; }; + 9529EFB215DBF908000303A6 /* cssdp_packet.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cssdp_packet.c; sourceTree = ""; }; + 9529EFB315DBF908000303A6 /* cssdp_request.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cssdp_request.c; sourceTree = ""; }; + 9529EFB415DBF908000303A6 /* cssdp_response.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cssdp_response.c; sourceTree = ""; }; + 9529EFB515DBF908000303A6 /* cssdp_response_server.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cssdp_response_server.c; sourceTree = ""; }; + 9529EFB615DBF908000303A6 /* cssdp_response_server_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cssdp_response_server_list.c; sourceTree = ""; }; + 9529EFB715DBF908000303A6 /* cssdp_server.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cssdp_server.c; sourceTree = ""; }; + 9529EFB815DBF908000303A6 /* cssdp_server_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cssdp_server_list.c; sourceTree = ""; }; + 9529EFB915DBF908000303A6 /* cssdp_socket.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cssdp_socket.c; sourceTree = ""; }; + 9529EFBB15DBF908000303A6 /* ccond.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ccond.c; sourceTree = ""; }; + 9529EFBC15DBF908000303A6 /* cdictionary.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cdictionary.c; sourceTree = ""; }; + 9529EFBD15DBF908000303A6 /* cdictionary_elem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cdictionary_elem.c; sourceTree = ""; }; + 9529EFBE15DBF908000303A6 /* clist.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = clist.c; sourceTree = ""; }; + 9529EFBF15DBF908000303A6 /* clog.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = clog.c; sourceTree = ""; }; + 9529EFC015DBF908000303A6 /* cmutex.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cmutex.c; sourceTree = ""; }; + 9529EFC115DBF908000303A6 /* cstring.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cstring.c; sourceTree = ""; }; + 9529EFC215DBF908000303A6 /* cstring_function.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cstring_function.c; sourceTree = ""; }; + 9529EFC315DBF908000303A6 /* cstring_tokenizer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cstring_tokenizer.c; sourceTree = ""; }; + 9529EFC415DBF908000303A6 /* cthread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cthread.c; sourceTree = ""; }; + 9529EFC515DBF908000303A6 /* cthread_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cthread_list.c; sourceTree = ""; }; + 9529EFC615DBF908000303A6 /* ctime.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ctime.c; sourceTree = ""; }; + 9529EFC715DBF908000303A6 /* ctime_wince.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ctime_wince.c; sourceTree = ""; }; + 9529EFC915DBF908000303A6 /* cxml_attribute.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cxml_attribute.c; sourceTree = ""; }; + 9529EFCA15DBF908000303A6 /* cxml_attribute_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cxml_attribute_list.c; sourceTree = ""; }; + 9529EFCB15DBF908000303A6 /* cxml_function.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cxml_function.c; sourceTree = ""; }; + 9529EFCC15DBF908000303A6 /* cxml_node.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cxml_node.c; sourceTree = ""; }; + 9529EFCD15DBF908000303A6 /* cxml_node_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cxml_node_list.c; sourceTree = ""; }; + 9529EFCE15DBF908000303A6 /* cxml_parser.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cxml_parser.c; sourceTree = ""; }; + 9529EFCF15DBF908000303A6 /* cxml_parser_expat.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cxml_parser_expat.c; sourceTree = ""; }; + 9529EFD015DBF908000303A6 /* cxml_parser_libxml2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cxml_parser_libxml2.c; sourceTree = ""; }; + 9529F03115DBF916000303A6 /* chttp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = chttp.h; sourceTree = ""; }; + 9529F03315DBF916000303A6 /* cfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cfile.h; sourceTree = ""; }; + 9529F03515DBF916000303A6 /* cinterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cinterface.h; sourceTree = ""; }; + 9529F03615DBF916000303A6 /* csocket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = csocket.h; sourceTree = ""; }; + 9529F03715DBF916000303A6 /* curi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = curi.h; sourceTree = ""; }; + 9529F03815DBF916000303A6 /* curl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = curl.h; sourceTree = ""; }; + 9529F03A15DBF916000303A6 /* csoap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = csoap.h; sourceTree = ""; }; + 9529F03B15DBF916000303A6 /* typedef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = typedef.h; path = "../../cyberlink-src/include/cybergarage/typedef.h"; sourceTree = ""; }; + 9529F03D15DBF916000303A6 /* caction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = caction.h; sourceTree = ""; }; + 9529F03E15DBF916000303A6 /* cargument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cargument.h; sourceTree = ""; }; + 9529F03F15DBF916000303A6 /* ccontrolpoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccontrolpoint.h; sourceTree = ""; }; + 9529F04015DBF916000303A6 /* cdevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cdevice.h; sourceTree = ""; }; + 9529F04115DBF916000303A6 /* cicon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cicon.h; sourceTree = ""; }; + 9529F04315DBF916000303A6 /* ccontrol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccontrol.h; sourceTree = ""; }; + 9529F04415DBF916000303A6 /* cservice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cservice.h; sourceTree = ""; }; + 9529F04515DBF916000303A6 /* cstatevariable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cstatevariable.h; sourceTree = ""; }; + 9529F04615DBF916000303A6 /* cupnp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cupnp.h; sourceTree = ""; }; + 9529F04715DBF916000303A6 /* cupnp.h.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = cupnp.h.in; sourceTree = ""; }; + 9529F04815DBF916000303A6 /* cupnp_function.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cupnp_function.h; sourceTree = ""; }; + 9529F04915DBF916000303A6 /* cupnp_limit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cupnp_limit.h; sourceTree = ""; }; + 9529F04A15DBF916000303A6 /* cupnp_status.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cupnp_status.h; sourceTree = ""; }; + 9529F04C15DBF916000303A6 /* cevent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cevent.h; sourceTree = ""; }; + 9529F04D15DBF916000303A6 /* cnotify.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cnotify.h; sourceTree = ""; }; + 9529F04E15DBF916000303A6 /* cproperty.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cproperty.h; sourceTree = ""; }; + 9529F04F15DBF916000303A6 /* csubscriber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = csubscriber.h; sourceTree = ""; }; + 9529F05015DBF916000303A6 /* csubscription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = csubscription.h; sourceTree = ""; }; + 9529F05215DBF916000303A6 /* cssdp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cssdp.h; sourceTree = ""; }; + 9529F05315DBF916000303A6 /* cssdp_server.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cssdp_server.h; sourceTree = ""; }; + 9529F05515DBF916000303A6 /* ccond.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ccond.h; sourceTree = ""; }; + 9529F05615DBF916000303A6 /* cdictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cdictionary.h; sourceTree = ""; }; + 9529F05715DBF916000303A6 /* clist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = clist.h; sourceTree = ""; }; + 9529F05815DBF916000303A6 /* clog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = clog.h; sourceTree = ""; }; + 9529F05915DBF916000303A6 /* cmutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cmutex.h; sourceTree = ""; }; + 9529F05A15DBF916000303A6 /* cstring.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cstring.h; sourceTree = ""; }; + 9529F05B15DBF916000303A6 /* cthread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cthread.h; sourceTree = ""; }; + 9529F05C15DBF916000303A6 /* ctime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ctime.h; sourceTree = ""; }; + 9529F05E15DBF916000303A6 /* cxml.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cxml.h; sourceTree = ""; }; + 9529F08715DBFAFC000303A6 /* libxml2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libxml2.dylib; path = usr/lib/libxml2.dylib; sourceTree = SDKROOT; }; + 9529F08D15DBFBA6000303A6 /* libCyberLink.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libCyberLink.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 9529F08F15DBFBA6000303A6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 9529EF5315DBF846000303A6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9529F08815DBFAFC000303A6 /* libxml2.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9529F08A15DBFBA6000303A6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9529F09B15DBFBB8000303A6 /* libxml2.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9529EF4A15DBF846000303A6 = { + isa = PBXGroup; + children = ( + 9529F08715DBFAFC000303A6 /* libxml2.dylib */, + 9529EF5B15DBF846000303A6 /* CyberLink */, + 9529F08E15DBFBA6000303A6 /* Frameworks */, + 9529EF5A15DBF846000303A6 /* Products */, + ); + sourceTree = ""; + }; + 9529EF5A15DBF846000303A6 /* Products */ = { + isa = PBXGroup; + children = ( + 9529EF5915DBF846000303A6 /* CyberLink.framework */, + 9529F08D15DBFBA6000303A6 /* libCyberLink.a */, + ); + name = Products; + sourceTree = ""; + }; + 9529EF5B15DBF846000303A6 /* CyberLink */ = { + isa = PBXGroup; + children = ( + 9529F08415DBF91E000303A6 /* headers */, + 9529EF6715DBF8E8000303A6 /* src */, + 9529EF5C15DBF846000303A6 /* Supporting Files */, + ); + path = CyberLink; + sourceTree = ""; + }; + 9529EF5C15DBF846000303A6 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 9529EF5D15DBF846000303A6 /* CyberLink-Info.plist */, + 9529EF6115DBF846000303A6 /* CyberLink-Prefix.pch */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 9529EF6715DBF8E8000303A6 /* src */ = { + isa = PBXGroup; + children = ( + 9529EF6815DBF907000303A6 /* http */, + 9529EF7315DBF907000303A6 /* io */, + 9529EF7615DBF907000303A6 /* net */, + 9529EF8015DBF907000303A6 /* soap */, + 9529EF8415DBF907000303A6 /* upnp */, + 9529EFBA15DBF908000303A6 /* util */, + 9529EFC815DBF908000303A6 /* xml */, + ); + name = src; + sourceTree = ""; + }; + 9529EF6815DBF907000303A6 /* http */ = { + isa = PBXGroup; + children = ( + 9529EF6915DBF907000303A6 /* chttp.c */, + 9529EF6A15DBF907000303A6 /* chttp_date.c */, + 9529EF6B15DBF907000303A6 /* chttp_header.c */, + 9529EF6C15DBF907000303A6 /* chttp_header_list.c */, + 9529EF6D15DBF907000303A6 /* chttp_packet.c */, + 9529EF6E15DBF907000303A6 /* chttp_persistent_connection.c */, + 9529EF6F15DBF907000303A6 /* chttp_request.c */, + 9529EF7015DBF907000303A6 /* chttp_response.c */, + 9529EF7115DBF907000303A6 /* chttp_server.c */, + 9529EF7215DBF907000303A6 /* chttp_server_list.c */, + ); + name = http; + path = "../../cyberlink-src/src/cybergarage/http"; + sourceTree = ""; + }; + 9529EF7315DBF907000303A6 /* io */ = { + isa = PBXGroup; + children = ( + 9529EF7415DBF907000303A6 /* cfile.c */, + 9529EF7515DBF907000303A6 /* cfile_list.c */, + ); + name = io; + path = "../../cyberlink-src/src/cybergarage/io"; + sourceTree = ""; + }; + 9529EF7615DBF907000303A6 /* net */ = { + isa = PBXGroup; + children = ( + 9529EF7715DBF907000303A6 /* cdatagram_packet.c */, + 9529EF7815DBF907000303A6 /* cinterface.c */, + 9529EF7915DBF907000303A6 /* cinterface_function.c */, + 9529EF7A15DBF907000303A6 /* cinterface_list.c */, + 9529EF7B15DBF907000303A6 /* cnet_function.c */, + 9529EF7C15DBF907000303A6 /* csocket.c */, + 9529EF7D15DBF907000303A6 /* csocket_list.c */, + 9529EF7E15DBF907000303A6 /* curi.c */, + 9529EF7F15DBF907000303A6 /* curl.c */, + ); + name = net; + path = "../../cyberlink-src/src/cybergarage/net"; + sourceTree = ""; + }; + 9529EF8015DBF907000303A6 /* soap */ = { + isa = PBXGroup; + children = ( + 9529EF8115DBF907000303A6 /* csoap.c */, + 9529EF8215DBF907000303A6 /* csoap_request.c */, + 9529EF8315DBF907000303A6 /* csoap_response.c */, + ); + name = soap; + path = "../../cyberlink-src/src/cybergarage/soap"; + sourceTree = ""; + }; + 9529EF8415DBF907000303A6 /* upnp */ = { + isa = PBXGroup; + children = ( + 9529EF8515DBF907000303A6 /* caction.c */, + 9529EF8615DBF907000303A6 /* caction_list.c */, + 9529EF8715DBF907000303A6 /* cargument.c */, + 9529EF8815DBF907000303A6 /* cargument_list.c */, + 9529EF8915DBF907000303A6 /* ccontrolpoint.c */, + 9529EF8A15DBF907000303A6 /* ccontrolpoint_event.c */, + 9529EF8B15DBF907000303A6 /* ccontrolpoint_http_server.c */, + 9529EF8C15DBF907000303A6 /* cdevice.c */, + 9529EF8D15DBF907000303A6 /* cdevice_advertiser.c */, + 9529EF8E15DBF907000303A6 /* cdevice_http_server.c */, + 9529EF8F15DBF907000303A6 /* cdevice_list.c */, + 9529EF9015DBF907000303A6 /* cdevice_ssdp_server.c */, + 9529EF9115DBF907000303A6 /* cicon.c */, + 9529EF9215DBF907000303A6 /* cicon_list.c */, + 9529EF9315DBF907000303A6 /* control */, + 9529EF9B15DBF908000303A6 /* cservice.c */, + 9529EF9C15DBF908000303A6 /* cservice_list.c */, + 9529EF9D15DBF908000303A6 /* cservice_notify.c */, + 9529EF9E15DBF908000303A6 /* cservice_ssdp_server.c */, + 9529EF9F15DBF908000303A6 /* cservice_std_dcp.c */, + 9529EFA015DBF908000303A6 /* cservicestate_table.c */, + 9529EFA115DBF908000303A6 /* cstatevariable.c */, + 9529EFA215DBF908000303A6 /* cupnp_function.c */, + 9529EFA315DBF908000303A6 /* cupnp_status.c */, + 9529EFA415DBF908000303A6 /* event */, + 9529EFAE15DBF908000303A6 /* ssdp */, + ); + name = upnp; + path = "../../cyberlink-src/src/cybergarage/upnp"; + sourceTree = ""; + }; + 9529EF9315DBF907000303A6 /* control */ = { + isa = PBXGroup; + children = ( + 9529EF9415DBF908000303A6 /* caction_ctrl.c */, + 9529EF9515DBF908000303A6 /* caction_request.c */, + 9529EF9615DBF908000303A6 /* caction_response.c */, + 9529EF9715DBF908000303A6 /* ccontrol_function.c */, + 9529EF9815DBF908000303A6 /* cquery_ctrl.c */, + 9529EF9915DBF908000303A6 /* cquery_request.c */, + 9529EF9A15DBF908000303A6 /* cquery_response.c */, + ); + path = control; + sourceTree = ""; + }; + 9529EFA415DBF908000303A6 /* event */ = { + isa = PBXGroup; + children = ( + 9529EFA515DBF908000303A6 /* ceventlistener_list.c */, + 9529EFA615DBF908000303A6 /* cnotify_request.c */, + 9529EFA715DBF908000303A6 /* cproperty.c */, + 9529EFA815DBF908000303A6 /* cproperty_list.c */, + 9529EFA915DBF908000303A6 /* csubscriber.c */, + 9529EFAA15DBF908000303A6 /* csubscriber_list.c */, + 9529EFAB15DBF908000303A6 /* csubscription.c */, + 9529EFAC15DBF908000303A6 /* csubscription_request.c */, + 9529EFAD15DBF908000303A6 /* csubscription_response.c */, + ); + path = event; + sourceTree = ""; + }; + 9529EFAE15DBF908000303A6 /* ssdp */ = { + isa = PBXGroup; + children = ( + 9529EFAF15DBF908000303A6 /* chttpmu_socket.c */, + 9529EFB015DBF908000303A6 /* chttpu_socket.c */, + 9529EFB115DBF908000303A6 /* cssdp.c */, + 9529EFB215DBF908000303A6 /* cssdp_packet.c */, + 9529EFB315DBF908000303A6 /* cssdp_request.c */, + 9529EFB415DBF908000303A6 /* cssdp_response.c */, + 9529EFB515DBF908000303A6 /* cssdp_response_server.c */, + 9529EFB615DBF908000303A6 /* cssdp_response_server_list.c */, + 9529EFB715DBF908000303A6 /* cssdp_server.c */, + 9529EFB815DBF908000303A6 /* cssdp_server_list.c */, + 9529EFB915DBF908000303A6 /* cssdp_socket.c */, + ); + path = ssdp; + sourceTree = ""; + }; + 9529EFBA15DBF908000303A6 /* util */ = { + isa = PBXGroup; + children = ( + 9529EFBB15DBF908000303A6 /* ccond.c */, + 9529EFBC15DBF908000303A6 /* cdictionary.c */, + 9529EFBD15DBF908000303A6 /* cdictionary_elem.c */, + 9529EFBE15DBF908000303A6 /* clist.c */, + 9529EFBF15DBF908000303A6 /* clog.c */, + 9529EFC015DBF908000303A6 /* cmutex.c */, + 9529EFC115DBF908000303A6 /* cstring.c */, + 9529EFC215DBF908000303A6 /* cstring_function.c */, + 9529EFC315DBF908000303A6 /* cstring_tokenizer.c */, + 9529EFC415DBF908000303A6 /* cthread.c */, + 9529EFC515DBF908000303A6 /* cthread_list.c */, + 9529EFC615DBF908000303A6 /* ctime.c */, + 9529EFC715DBF908000303A6 /* ctime_wince.c */, + ); + name = util; + path = "../../cyberlink-src/src/cybergarage/util"; + sourceTree = ""; + }; + 9529EFC815DBF908000303A6 /* xml */ = { + isa = PBXGroup; + children = ( + 9529EFC915DBF908000303A6 /* cxml_attribute.c */, + 9529EFCA15DBF908000303A6 /* cxml_attribute_list.c */, + 9529EFCB15DBF908000303A6 /* cxml_function.c */, + 9529EFCC15DBF908000303A6 /* cxml_node.c */, + 9529EFCD15DBF908000303A6 /* cxml_node_list.c */, + 9529EFCE15DBF908000303A6 /* cxml_parser.c */, + 9529EFCF15DBF908000303A6 /* cxml_parser_expat.c */, + 9529EFD015DBF908000303A6 /* cxml_parser_libxml2.c */, + ); + name = xml; + path = "../../cyberlink-src/src/cybergarage/xml"; + sourceTree = ""; + }; + 9529F03015DBF916000303A6 /* http */ = { + isa = PBXGroup; + children = ( + 9529F03115DBF916000303A6 /* chttp.h */, + ); + name = http; + path = "../../cyberlink-src/include/cybergarage/http"; + sourceTree = ""; + }; + 9529F03215DBF916000303A6 /* io */ = { + isa = PBXGroup; + children = ( + 9529F03315DBF916000303A6 /* cfile.h */, + ); + name = io; + path = "../../cyberlink-src/include/cybergarage/io"; + sourceTree = ""; + }; + 9529F03415DBF916000303A6 /* net */ = { + isa = PBXGroup; + children = ( + 9529F03515DBF916000303A6 /* cinterface.h */, + 9529F03615DBF916000303A6 /* csocket.h */, + 9529F03715DBF916000303A6 /* curi.h */, + 9529F03815DBF916000303A6 /* curl.h */, + ); + name = net; + path = "../../cyberlink-src/include/cybergarage/net"; + sourceTree = ""; + }; + 9529F03915DBF916000303A6 /* soap */ = { + isa = PBXGroup; + children = ( + 9529F03A15DBF916000303A6 /* csoap.h */, + ); + name = soap; + path = "../../cyberlink-src/include/cybergarage/soap"; + sourceTree = ""; + }; + 9529F03C15DBF916000303A6 /* upnp */ = { + isa = PBXGroup; + children = ( + 9529F03D15DBF916000303A6 /* caction.h */, + 9529F03E15DBF916000303A6 /* cargument.h */, + 9529F03F15DBF916000303A6 /* ccontrolpoint.h */, + 9529F04015DBF916000303A6 /* cdevice.h */, + 9529F04115DBF916000303A6 /* cicon.h */, + 9529F04215DBF916000303A6 /* control */, + 9529F04415DBF916000303A6 /* cservice.h */, + 9529F04515DBF916000303A6 /* cstatevariable.h */, + 9529F04615DBF916000303A6 /* cupnp.h */, + 9529F04715DBF916000303A6 /* cupnp.h.in */, + 9529F04815DBF916000303A6 /* cupnp_function.h */, + 9529F04915DBF916000303A6 /* cupnp_limit.h */, + 9529F04A15DBF916000303A6 /* cupnp_status.h */, + 9529F04B15DBF916000303A6 /* event */, + 9529F05115DBF916000303A6 /* ssdp */, + ); + name = upnp; + path = "../../cyberlink-src/include/cybergarage/upnp"; + sourceTree = ""; + }; + 9529F04215DBF916000303A6 /* control */ = { + isa = PBXGroup; + children = ( + 9529F04315DBF916000303A6 /* ccontrol.h */, + ); + path = control; + sourceTree = ""; + }; + 9529F04B15DBF916000303A6 /* event */ = { + isa = PBXGroup; + children = ( + 9529F04C15DBF916000303A6 /* cevent.h */, + 9529F04D15DBF916000303A6 /* cnotify.h */, + 9529F04E15DBF916000303A6 /* cproperty.h */, + 9529F04F15DBF916000303A6 /* csubscriber.h */, + 9529F05015DBF916000303A6 /* csubscription.h */, + ); + path = event; + sourceTree = ""; + }; + 9529F05115DBF916000303A6 /* ssdp */ = { + isa = PBXGroup; + children = ( + 9529F05215DBF916000303A6 /* cssdp.h */, + 9529F05315DBF916000303A6 /* cssdp_server.h */, + ); + path = ssdp; + sourceTree = ""; + }; + 9529F05415DBF916000303A6 /* util */ = { + isa = PBXGroup; + children = ( + 9529F05515DBF916000303A6 /* ccond.h */, + 9529F05615DBF916000303A6 /* cdictionary.h */, + 9529F05715DBF916000303A6 /* clist.h */, + 9529F05815DBF916000303A6 /* clog.h */, + 9529F05915DBF916000303A6 /* cmutex.h */, + 9529F05A15DBF916000303A6 /* cstring.h */, + 9529F05B15DBF916000303A6 /* cthread.h */, + 9529F05C15DBF916000303A6 /* ctime.h */, + ); + name = util; + path = "../../cyberlink-src/include/cybergarage/util"; + sourceTree = ""; + }; + 9529F05D15DBF916000303A6 /* xml */ = { + isa = PBXGroup; + children = ( + 9529F05E15DBF916000303A6 /* cxml.h */, + ); + name = xml; + path = "../../cyberlink-src/include/cybergarage/xml"; + sourceTree = ""; + }; + 9529F08415DBF91E000303A6 /* headers */ = { + isa = PBXGroup; + children = ( + 9529F03015DBF916000303A6 /* http */, + 9529F03215DBF916000303A6 /* io */, + 9529F03415DBF916000303A6 /* net */, + 9529F03915DBF916000303A6 /* soap */, + 9529F03B15DBF916000303A6 /* typedef.h */, + 9529F03C15DBF916000303A6 /* upnp */, + 9529F05415DBF916000303A6 /* util */, + 9529F05D15DBF916000303A6 /* xml */, + ); + name = headers; + sourceTree = ""; + }; + 9529F08E15DBFBA6000303A6 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 9529F08F15DBFBA6000303A6 /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 9529EF5415DBF846000303A6 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 9529F05F15DBF916000303A6 /* chttp.h in Headers */, + 9529F06015DBF916000303A6 /* cfile.h in Headers */, + 9529F06115DBF916000303A6 /* cinterface.h in Headers */, + 9529F06215DBF916000303A6 /* csocket.h in Headers */, + 9529F06315DBF916000303A6 /* curi.h in Headers */, + 9529F06415DBF916000303A6 /* curl.h in Headers */, + 9529F06515DBF916000303A6 /* csoap.h in Headers */, + 9529F06615DBF916000303A6 /* typedef.h in Headers */, + 9529F06715DBF916000303A6 /* caction.h in Headers */, + 9529F06815DBF916000303A6 /* cargument.h in Headers */, + 9529F06915DBF916000303A6 /* ccontrolpoint.h in Headers */, + 9529F06A15DBF916000303A6 /* cdevice.h in Headers */, + 9529F06B15DBF916000303A6 /* cicon.h in Headers */, + 9529F06C15DBF916000303A6 /* ccontrol.h in Headers */, + 9529F06D15DBF916000303A6 /* cservice.h in Headers */, + 9529F06E15DBF916000303A6 /* cstatevariable.h in Headers */, + 9529F06F15DBF916000303A6 /* cupnp.h in Headers */, + 9529F07115DBF916000303A6 /* cupnp_function.h in Headers */, + 9529F07215DBF916000303A6 /* cupnp_limit.h in Headers */, + 9529F07315DBF916000303A6 /* cupnp_status.h in Headers */, + 9529F07415DBF916000303A6 /* cevent.h in Headers */, + 9529F07515DBF916000303A6 /* cnotify.h in Headers */, + 9529F07615DBF916000303A6 /* cproperty.h in Headers */, + 9529F07715DBF916000303A6 /* csubscriber.h in Headers */, + 9529F07815DBF916000303A6 /* csubscription.h in Headers */, + 9529F07915DBF916000303A6 /* cssdp.h in Headers */, + 9529F07A15DBF916000303A6 /* cssdp_server.h in Headers */, + 9529F07B15DBF916000303A6 /* ccond.h in Headers */, + 9529F07C15DBF916000303A6 /* cdictionary.h in Headers */, + 9529F07D15DBF916000303A6 /* clist.h in Headers */, + 9529F07E15DBF916000303A6 /* clog.h in Headers */, + 9529F07F15DBF916000303A6 /* cmutex.h in Headers */, + 9529F08015DBF916000303A6 /* cstring.h in Headers */, + 9529F08115DBF916000303A6 /* cthread.h in Headers */, + 9529F08215DBF916000303A6 /* ctime.h in Headers */, + 9529F08315DBF916000303A6 /* cxml.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 9529EF5815DBF846000303A6 /* CyberLink */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9529EF6415DBF846000303A6 /* Build configuration list for PBXNativeTarget "CyberLink" */; + buildPhases = ( + 9529EF5115DBF846000303A6 /* ShellScript */, + 9529EF5215DBF846000303A6 /* Sources */, + 9529EF5315DBF846000303A6 /* Frameworks */, + 9529EF5415DBF846000303A6 /* Headers */, + 9529EF5515DBF846000303A6 /* Resources */, + 9529EF5615DBF846000303A6 /* ShellScript */, + 9529EF5715DBF846000303A6 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = CyberLink; + productName = CyberLink; + productReference = 9529EF5915DBF846000303A6 /* CyberLink.framework */; + productType = "com.apple.product-type.bundle"; + }; + 9529F08C15DBFBA6000303A6 /* libCyberLink */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9529F09815DBFBA6000303A6 /* Build configuration list for PBXNativeTarget "libCyberLink" */; + buildPhases = ( + 9529F08915DBFBA6000303A6 /* Sources */, + 9529F08A15DBFBA6000303A6 /* Frameworks */, + 9529F08B15DBFBA6000303A6 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = libCyberLink; + productName = libCyberLink; + productReference = 9529F08D15DBFBA6000303A6 /* libCyberLink.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 9529EF4C15DBF846000303A6 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0440; + }; + buildConfigurationList = 9529EF4F15DBF846000303A6 /* Build configuration list for PBXProject "CyberLink" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 9529EF4A15DBF846000303A6; + productRefGroup = 9529EF5A15DBF846000303A6 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 9529EF5815DBF846000303A6 /* CyberLink */, + 9529F08C15DBFBA6000303A6 /* libCyberLink */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 9529EF5515DBF846000303A6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9529F07015DBF916000303A6 /* cupnp.h.in in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9529EF5115DBF846000303A6 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nset +u\nif [[ $UFW_MASTER_SCRIPT_RUNNING ]]\nthen\n # Nothing for the slave script to do\n exit 0\nfi\nset -u\n\nif [[ \"$SDK_NAME\" =~ ([A-Za-z]+) ]]\nthen\n UFW_SDK_PLATFORM=${BASH_REMATCH[1]}\nelse\n echo \"Could not find platform name from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$SDK_NAME\" =~ ([0-9]+.*$) ]]\nthen\n\tUFW_SDK_VERSION=${BASH_REMATCH[1]}\nelse\n echo \"Could not find sdk version from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$UFW_SDK_PLATFORM\" = \"iphoneos\" ]]\nthen\n UFW_OTHER_PLATFORM=iphonesimulator\nelse\n UFW_OTHER_PLATFORM=iphoneos\nfi\n\nif [[ \"$BUILT_PRODUCTS_DIR\" =~ (.*)$UFW_SDK_PLATFORM$ ]]\nthen\n UFW_OTHER_BUILT_PRODUCTS_DIR=\"${BASH_REMATCH[1]}${UFW_OTHER_PLATFORM}\"\nelse\n echo \"Could not find $UFW_SDK_PLATFORM in $BUILT_PRODUCTS_DIR\"\n exit 1\nfi\n\n\n# Short-circuit if all binaries are up to date\n\nif [[ -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]] && \\\n [[ -f \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]] && \\\n [[ ! \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -nt \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]]\n [[ -f \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]] && \\\n [[ -f \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]] && \\\n [[ ! \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -nt \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]]\nthen\n exit 0\nfi\n\n\n# Clean other platform if needed\n\nif [[ ! -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]]\nthen\n\techo \"Platform \\\"$UFW_SDK_PLATFORM\\\" was cleaned recently. Cleaning \\\"$UFW_OTHER_PLATFORM\\\" as well\"\n\techo xcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" clean\n\txcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" clean\nfi\n\n\n# Make sure we are building from fresh binaries\n\nrm -rf \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\nrm -rf \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\nrm -rf \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\nrm -rf \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\n"; + }; + 9529EF5615DBF846000303A6 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "HEADERS_ROOT=$SRCROOT/$PRODUCT_NAME\nFRAMEWORK_HEADERS_DIR=\"$BUILT_PRODUCTS_DIR/$WRAPPER_NAME/Versions/$FRAMEWORK_VERSION/Headers\"\n\n## only header files expected at this point\nPUBLIC_HEADERS=$(find $FRAMEWORK_HEADERS_DIR/. -not -type d 2> /dev/null | sed -e \"s@.*/@@g\")\n\nFIND_OPTS=\"\"\nfor PUBLIC_HEADER in $PUBLIC_HEADERS; do\n if [ -n \"$FIND_OPTS\" ]; then\n FIND_OPTS=\"$FIND_OPTS -o\"\n fi\n FIND_OPTS=\"$FIND_OPTS -name '$PUBLIC_HEADER'\"\ndone\n\nif [ -n \"$FIND_OPTS\" ]; then\n for ORIG_HEADER in $(eval \"find $HEADERS_ROOT/. $FIND_OPTS\" 2> /dev/null | sed -e \"s@^$HEADERS_ROOT/./@@g\"); do\n PUBLIC_HEADER=$(basename $ORIG_HEADER)\n RELATIVE_PATH=$(dirname $ORIG_HEADER)\n if [ -e $FRAMEWORK_HEADERS_DIR/$PUBLIC_HEADER ]; then\n mkdir -p \"$FRAMEWORK_HEADERS_DIR/$RELATIVE_PATH\"\n mv \"$FRAMEWORK_HEADERS_DIR/$PUBLIC_HEADER\" \"$FRAMEWORK_HEADERS_DIR/$RELATIVE_PATH/$PUBLIC_HEADER\"\n fi\n done\nfi\n"; + }; + 9529EF5715DBF846000303A6 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nset +u\nif [[ $UFW_MASTER_SCRIPT_RUNNING ]]\nthen\n # Nothing for the slave script to do\n exit 0\nfi\nset -u\nexport UFW_MASTER_SCRIPT_RUNNING=1\n\n\n# Functions\n\n## List files in the specified directory, storing to the specified array.\n#\n# @param $1 The path to list\n# @param $2 The name of the array to fill\n#\n##\nlist_files ()\n{\n filelist=$(ls \"$1\")\n while read line\n do\n eval \"$2[\\${#$2[*]}]=\\\"\\$line\\\"\"\n done <<< \"$filelist\"\n}\n\n\n# Sanity check\n\nif [[ ! -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]]\nthen\n echo \"Framework target \\\"${TARGET_NAME}\\\" had no source files to build from. Make sure your source files have the correct target membership\"\n exit 1\nfi\n\n\n# Gather information\n\nif [[ \"$SDK_NAME\" =~ ([A-Za-z]+) ]]\nthen\n UFW_SDK_PLATFORM=${BASH_REMATCH[1]}\nelse\n echo \"Could not find platform name from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$SDK_NAME\" =~ ([0-9]+.*$) ]]\nthen\n UFW_SDK_VERSION=${BASH_REMATCH[1]}\nelse\n echo \"Could not find sdk version from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$UFW_SDK_PLATFORM\" = \"iphoneos\" ]]\nthen\n UFW_OTHER_PLATFORM=iphonesimulator\nelse\n UFW_OTHER_PLATFORM=iphoneos\nfi\n\nif [[ \"$BUILT_PRODUCTS_DIR\" =~ (.*)$UFW_SDK_PLATFORM$ ]]\nthen\n UFW_OTHER_BUILT_PRODUCTS_DIR=\"${BASH_REMATCH[1]}${UFW_OTHER_PLATFORM}\"\nelse\n echo \"Could not find $UFW_SDK_PLATFORM in $BUILT_PRODUCTS_DIR\"\n exit 1\nfi\n\n\n# Short-circuit if all binaries are up to date.\n# We already checked the other platform in the prerun script.\n\nif [[ -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]] && [[ -f \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]] && [[ ! \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -nt \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]]\nthen\n exit 0\nfi\n\n\n# Make sure the other platform gets built\n\necho \"Build other platform\"\n\necho xcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" $ACTION\nxcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" $ACTION\n\n\n# Build the fat static library binary\n\necho \"Create universal static library\"\n\necho \"$PLATFORM_DEVELOPER_BIN_DIR/libtool\" -static \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -o \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\"\n\"$PLATFORM_DEVELOPER_BIN_DIR/libtool\" -static \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -o \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\"\n\necho mv \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\" \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\nmv \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\" \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\n\n\n# Build framework structure\n\necho \"Build symlinks\"\n\necho ln -sfh A \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Versions/Current\"\nln -sfh A \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Versions/Current\"\necho ln -sfh Versions/Current/Headers \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Headers\"\nln -sfh Versions/Current/Headers \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Headers\"\necho ln -sfh Versions/Current/Resources \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Resources\"\nln -sfh Versions/Current/Resources \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Resources\"\necho ln -sfh \"Versions/Current/${EXECUTABLE_NAME}\" \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${EXECUTABLE_NAME}\"\nln -sfh \"Versions/Current/${EXECUTABLE_NAME}\" \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${EXECUTABLE_NAME}\"\n\n\n# Link to binary for unit tests\n\nmkdir -p \"${BUILT_PRODUCTS_DIR}/.fake_fw_testing.framework\"\nln -sfh \"../${WRAPPER_NAME}/${EXECUTABLE_NAME}\" \"${BUILT_PRODUCTS_DIR}/.fake_fw_testing.framework/.fake_fw_testing\"\n\n\n# Build embedded framework structure\n\necho \"Build Embedded Framework\"\n\necho rm -rf \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\nrm -rf \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\necho mkdir -p \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources\"\nmkdir -p \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources\"\necho cp -a \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/\"\ncp -a \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/\"\n\ndeclare -a UFW_FILE_LIST\nlist_files \"${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\" UFW_FILE_LIST\nfor filename in \"${UFW_FILE_LIST[@]}\"\ndo\n if [[ \"${filename}\" != \"Info.plist\" ]] && [[ ! \"${filename}\" =~ .*\\.lproj$ ]]\n then\n echo ln -sfh \"../${WRAPPER_NAME}/Resources/${filename}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources/${filename}\"\n ln -sfh \"../${WRAPPER_NAME}/Resources/${filename}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources/${filename}\"\n fi\ndone\n\n\n# Replace other platform's framework with a copy of this one (so that both have the same universal binary)\n\necho \"Copy from $UFW_SDK_PLATFORM to $UFW_OTHER_PLATFORM\"\n\necho rm -rf \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\nrm -rf \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\necho cp -a \"${BUILD_DIR}/${CONFIGURATION}-${UFW_SDK_PLATFORM}\" \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\ncp -a \"${BUILD_DIR}/${CONFIGURATION}-${UFW_SDK_PLATFORM}\" \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 9529EF5215DBF846000303A6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9529EFD115DBF908000303A6 /* chttp.c in Sources */, + 9529EFD215DBF908000303A6 /* chttp_date.c in Sources */, + 9529EFD315DBF908000303A6 /* chttp_header.c in Sources */, + 9529EFD415DBF908000303A6 /* chttp_header_list.c in Sources */, + 9529EFD515DBF908000303A6 /* chttp_packet.c in Sources */, + 9529EFD615DBF908000303A6 /* chttp_persistent_connection.c in Sources */, + 9529EFD715DBF908000303A6 /* chttp_request.c in Sources */, + 9529EFD815DBF908000303A6 /* chttp_response.c in Sources */, + 9529EFD915DBF908000303A6 /* chttp_server.c in Sources */, + 9529EFDA15DBF908000303A6 /* chttp_server_list.c in Sources */, + 9529EFDB15DBF908000303A6 /* cfile.c in Sources */, + 9529EFDC15DBF908000303A6 /* cfile_list.c in Sources */, + 9529EFDD15DBF908000303A6 /* cdatagram_packet.c in Sources */, + 9529EFDE15DBF908000303A6 /* cinterface.c in Sources */, + 9529EFDF15DBF908000303A6 /* cinterface_function.c in Sources */, + 9529EFE015DBF908000303A6 /* cinterface_list.c in Sources */, + 9529EFE115DBF908000303A6 /* cnet_function.c in Sources */, + 9529EFE215DBF908000303A6 /* csocket.c in Sources */, + 9529EFE315DBF908000303A6 /* csocket_list.c in Sources */, + 9529EFE415DBF908000303A6 /* curi.c in Sources */, + 9529EFE515DBF908000303A6 /* curl.c in Sources */, + 9529EFE615DBF908000303A6 /* csoap.c in Sources */, + 9529EFE715DBF908000303A6 /* csoap_request.c in Sources */, + 9529EFE815DBF908000303A6 /* csoap_response.c in Sources */, + 9529EFE915DBF908000303A6 /* caction.c in Sources */, + 9529EFEA15DBF908000303A6 /* caction_list.c in Sources */, + 9529EFEB15DBF908000303A6 /* cargument.c in Sources */, + 9529EFEC15DBF908000303A6 /* cargument_list.c in Sources */, + 9529EFED15DBF908000303A6 /* ccontrolpoint.c in Sources */, + 9529EFEE15DBF908000303A6 /* ccontrolpoint_event.c in Sources */, + 9529EFEF15DBF908000303A6 /* ccontrolpoint_http_server.c in Sources */, + 9529EFF015DBF908000303A6 /* cdevice.c in Sources */, + 9529EFF115DBF908000303A6 /* cdevice_advertiser.c in Sources */, + 9529EFF215DBF908000303A6 /* cdevice_http_server.c in Sources */, + 9529EFF315DBF908000303A6 /* cdevice_list.c in Sources */, + 9529EFF415DBF908000303A6 /* cdevice_ssdp_server.c in Sources */, + 9529EFF515DBF908000303A6 /* cicon.c in Sources */, + 9529EFF615DBF908000303A6 /* cicon_list.c in Sources */, + 9529EFF715DBF908000303A6 /* caction_ctrl.c in Sources */, + 9529EFF815DBF908000303A6 /* caction_request.c in Sources */, + 9529EFF915DBF908000303A6 /* caction_response.c in Sources */, + 9529EFFA15DBF908000303A6 /* ccontrol_function.c in Sources */, + 9529EFFB15DBF908000303A6 /* cquery_ctrl.c in Sources */, + 9529EFFC15DBF908000303A6 /* cquery_request.c in Sources */, + 9529EFFD15DBF908000303A6 /* cquery_response.c in Sources */, + 9529EFFE15DBF908000303A6 /* cservice.c in Sources */, + 9529EFFF15DBF908000303A6 /* cservice_list.c in Sources */, + 9529F00015DBF908000303A6 /* cservice_notify.c in Sources */, + 9529F00115DBF908000303A6 /* cservice_ssdp_server.c in Sources */, + 9529F00215DBF908000303A6 /* cservice_std_dcp.c in Sources */, + 9529F00315DBF908000303A6 /* cservicestate_table.c in Sources */, + 9529F00415DBF908000303A6 /* cstatevariable.c in Sources */, + 9529F00515DBF908000303A6 /* cupnp_function.c in Sources */, + 9529F00615DBF908000303A6 /* cupnp_status.c in Sources */, + 9529F00715DBF908000303A6 /* ceventlistener_list.c in Sources */, + 9529F00815DBF908000303A6 /* cnotify_request.c in Sources */, + 9529F00915DBF908000303A6 /* cproperty.c in Sources */, + 9529F00A15DBF908000303A6 /* cproperty_list.c in Sources */, + 9529F00B15DBF908000303A6 /* csubscriber.c in Sources */, + 9529F00C15DBF908000303A6 /* csubscriber_list.c in Sources */, + 9529F00D15DBF908000303A6 /* csubscription.c in Sources */, + 9529F00E15DBF908000303A6 /* csubscription_request.c in Sources */, + 9529F00F15DBF908000303A6 /* csubscription_response.c in Sources */, + 9529F01015DBF908000303A6 /* chttpmu_socket.c in Sources */, + 9529F01115DBF908000303A6 /* chttpu_socket.c in Sources */, + 9529F01215DBF908000303A6 /* cssdp.c in Sources */, + 9529F01315DBF908000303A6 /* cssdp_packet.c in Sources */, + 9529F01415DBF908000303A6 /* cssdp_request.c in Sources */, + 9529F01515DBF908000303A6 /* cssdp_response.c in Sources */, + 9529F01615DBF908000303A6 /* cssdp_response_server.c in Sources */, + 9529F01715DBF908000303A6 /* cssdp_response_server_list.c in Sources */, + 9529F01815DBF908000303A6 /* cssdp_server.c in Sources */, + 9529F01915DBF908000303A6 /* cssdp_server_list.c in Sources */, + 9529F01A15DBF908000303A6 /* cssdp_socket.c in Sources */, + 9529F01B15DBF908000303A6 /* ccond.c in Sources */, + 9529F01C15DBF908000303A6 /* cdictionary.c in Sources */, + 9529F01D15DBF908000303A6 /* cdictionary_elem.c in Sources */, + 9529F01E15DBF908000303A6 /* clist.c in Sources */, + 9529F01F15DBF908000303A6 /* clog.c in Sources */, + 9529F02015DBF908000303A6 /* cmutex.c in Sources */, + 9529F02115DBF908000303A6 /* cstring.c in Sources */, + 9529F02215DBF908000303A6 /* cstring_function.c in Sources */, + 9529F02315DBF908000303A6 /* cstring_tokenizer.c in Sources */, + 9529F02415DBF908000303A6 /* cthread.c in Sources */, + 9529F02515DBF908000303A6 /* cthread_list.c in Sources */, + 9529F02615DBF908000303A6 /* ctime.c in Sources */, + 9529F02715DBF908000303A6 /* ctime_wince.c in Sources */, + 9529F02815DBF908000303A6 /* cxml_attribute.c in Sources */, + 9529F02915DBF908000303A6 /* cxml_attribute_list.c in Sources */, + 9529F02A15DBF908000303A6 /* cxml_function.c in Sources */, + 9529F02B15DBF908000303A6 /* cxml_node.c in Sources */, + 9529F02C15DBF908000303A6 /* cxml_node_list.c in Sources */, + 9529F02D15DBF908000303A6 /* cxml_parser.c in Sources */, + 9529F02E15DBF908000303A6 /* cxml_parser_expat.c in Sources */, + 9529F02F15DBF908000303A6 /* cxml_parser_libxml2.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9529F08915DBFBA6000303A6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9529F09C15DBFBDC000303A6 /* chttp.c in Sources */, + 9529F09D15DBFBDC000303A6 /* chttp_date.c in Sources */, + 9529F09E15DBFBDC000303A6 /* chttp_header.c in Sources */, + 9529F09F15DBFBDC000303A6 /* chttp_header_list.c in Sources */, + 9529F0A015DBFBDC000303A6 /* chttp_packet.c in Sources */, + 9529F0A115DBFBDC000303A6 /* chttp_persistent_connection.c in Sources */, + 9529F0A215DBFBDC000303A6 /* chttp_request.c in Sources */, + 9529F0A315DBFBDC000303A6 /* chttp_response.c in Sources */, + 9529F0A415DBFBDC000303A6 /* chttp_server.c in Sources */, + 9529F0A515DBFBDC000303A6 /* chttp_server_list.c in Sources */, + 9529F0A615DBFBDC000303A6 /* cfile.c in Sources */, + 9529F0A715DBFBDC000303A6 /* cfile_list.c in Sources */, + 9529F0A815DBFBDC000303A6 /* cdatagram_packet.c in Sources */, + 9529F0A915DBFBDC000303A6 /* cinterface.c in Sources */, + 9529F0AA15DBFBDC000303A6 /* cinterface_function.c in Sources */, + 9529F0AB15DBFBDC000303A6 /* cinterface_list.c in Sources */, + 9529F0AC15DBFBDC000303A6 /* cnet_function.c in Sources */, + 9529F0AD15DBFBDC000303A6 /* csocket.c in Sources */, + 9529F0AE15DBFBDC000303A6 /* csocket_list.c in Sources */, + 9529F0AF15DBFBDC000303A6 /* curi.c in Sources */, + 9529F0B015DBFBDC000303A6 /* curl.c in Sources */, + 9529F0B115DBFBDC000303A6 /* csoap.c in Sources */, + 9529F0B215DBFBDC000303A6 /* csoap_request.c in Sources */, + 9529F0B315DBFBDC000303A6 /* csoap_response.c in Sources */, + 9529F0B415DBFBDC000303A6 /* caction.c in Sources */, + 9529F0B515DBFBDC000303A6 /* caction_list.c in Sources */, + 9529F0B615DBFBDC000303A6 /* cargument.c in Sources */, + 9529F0B715DBFBDC000303A6 /* cargument_list.c in Sources */, + 9529F0B815DBFBDC000303A6 /* ccontrolpoint.c in Sources */, + 9529F0B915DBFBDC000303A6 /* ccontrolpoint_event.c in Sources */, + 9529F0BA15DBFBDC000303A6 /* ccontrolpoint_http_server.c in Sources */, + 9529F0BB15DBFBDC000303A6 /* cdevice.c in Sources */, + 9529F0BC15DBFBDC000303A6 /* cdevice_advertiser.c in Sources */, + 9529F0BD15DBFBDC000303A6 /* cdevice_http_server.c in Sources */, + 9529F0BE15DBFBDC000303A6 /* cdevice_list.c in Sources */, + 9529F0BF15DBFBDC000303A6 /* cdevice_ssdp_server.c in Sources */, + 9529F0C015DBFBDC000303A6 /* cicon.c in Sources */, + 9529F0C115DBFBDC000303A6 /* cicon_list.c in Sources */, + 9529F0C215DBFBDC000303A6 /* caction_ctrl.c in Sources */, + 9529F0C315DBFBDC000303A6 /* caction_request.c in Sources */, + 9529F0C415DBFBDC000303A6 /* caction_response.c in Sources */, + 9529F0C515DBFBDC000303A6 /* ccontrol_function.c in Sources */, + 9529F0C615DBFBDC000303A6 /* cquery_ctrl.c in Sources */, + 9529F0C715DBFBDC000303A6 /* cquery_request.c in Sources */, + 9529F0C815DBFBDC000303A6 /* cquery_response.c in Sources */, + 9529F0C915DBFBDC000303A6 /* cservice.c in Sources */, + 9529F0CA15DBFBDC000303A6 /* cservice_list.c in Sources */, + 9529F0CB15DBFBDC000303A6 /* cservice_notify.c in Sources */, + 9529F0CC15DBFBDC000303A6 /* cservice_ssdp_server.c in Sources */, + 9529F0CD15DBFBDC000303A6 /* cservice_std_dcp.c in Sources */, + 9529F0CE15DBFBDC000303A6 /* cservicestate_table.c in Sources */, + 9529F0CF15DBFBDC000303A6 /* cstatevariable.c in Sources */, + 9529F0D015DBFBDC000303A6 /* cupnp_function.c in Sources */, + 9529F0D115DBFBDC000303A6 /* cupnp_status.c in Sources */, + 9529F0D215DBFBDC000303A6 /* ceventlistener_list.c in Sources */, + 9529F0D315DBFBDC000303A6 /* cnotify_request.c in Sources */, + 9529F0D415DBFBDC000303A6 /* cproperty.c in Sources */, + 9529F0D515DBFBDC000303A6 /* cproperty_list.c in Sources */, + 9529F0D615DBFBDC000303A6 /* csubscriber.c in Sources */, + 9529F0D715DBFBDC000303A6 /* csubscriber_list.c in Sources */, + 9529F0D815DBFBDC000303A6 /* csubscription.c in Sources */, + 9529F0D915DBFBDC000303A6 /* csubscription_request.c in Sources */, + 9529F0DA15DBFBDC000303A6 /* csubscription_response.c in Sources */, + 9529F0DB15DBFBDC000303A6 /* chttpmu_socket.c in Sources */, + 9529F0DC15DBFBDC000303A6 /* chttpu_socket.c in Sources */, + 9529F0DD15DBFBDC000303A6 /* cssdp.c in Sources */, + 9529F0DE15DBFBDC000303A6 /* cssdp_packet.c in Sources */, + 9529F0DF15DBFBDC000303A6 /* cssdp_request.c in Sources */, + 9529F0E015DBFBDC000303A6 /* cssdp_response.c in Sources */, + 9529F0E115DBFBDC000303A6 /* cssdp_response_server.c in Sources */, + 9529F0E215DBFBDC000303A6 /* cssdp_response_server_list.c in Sources */, + 9529F0E315DBFBDC000303A6 /* cssdp_server.c in Sources */, + 9529F0E415DBFBDC000303A6 /* cssdp_server_list.c in Sources */, + 9529F0E515DBFBDC000303A6 /* cssdp_socket.c in Sources */, + 9529F0E615DBFBDC000303A6 /* ccond.c in Sources */, + 9529F0E715DBFBDC000303A6 /* cdictionary.c in Sources */, + 9529F0E815DBFBDC000303A6 /* cdictionary_elem.c in Sources */, + 9529F0E915DBFBDC000303A6 /* clist.c in Sources */, + 9529F0EA15DBFBDC000303A6 /* clog.c in Sources */, + 9529F0EB15DBFBDC000303A6 /* cmutex.c in Sources */, + 9529F0EC15DBFBDC000303A6 /* cstring.c in Sources */, + 9529F0ED15DBFBDC000303A6 /* cstring_function.c in Sources */, + 9529F0EE15DBFBDC000303A6 /* cstring_tokenizer.c in Sources */, + 9529F0EF15DBFBDC000303A6 /* cthread.c in Sources */, + 9529F0F015DBFBDC000303A6 /* cthread_list.c in Sources */, + 9529F0F115DBFBDC000303A6 /* ctime.c in Sources */, + 9529F0F215DBFBDC000303A6 /* ctime_wince.c in Sources */, + 9529F0F315DBFBDC000303A6 /* cxml_attribute.c in Sources */, + 9529F0F415DBFBDC000303A6 /* cxml_attribute_list.c in Sources */, + 9529F0F515DBFBDC000303A6 /* cxml_function.c in Sources */, + 9529F0F615DBFBDC000303A6 /* cxml_node.c in Sources */, + 9529F0F715DBFBDC000303A6 /* cxml_node_list.c in Sources */, + 9529F0F815DBFBDC000303A6 /* cxml_parser.c in Sources */, + 9529F0F915DBFBDC000303A6 /* cxml_parser_expat.c in Sources */, + 9529F0FA15DBFBDC000303A6 /* cxml_parser_libxml2.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 9529EF6215DBF846000303A6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 5.1; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 9529EF6315DBF846000303A6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 5.1; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 9529EF6515DBF846000303A6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CONTENTS_FOLDER_PATH = "$(WRAPPER_NAME)/Versions/$(FRAMEWORK_VERSION)"; + DEAD_CODE_STRIPPING = NO; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "CyberLink/CyberLink-Prefix.pch"; + HEADER_SEARCH_PATHS = ( + "../cyberlink-src/include/", + /usr/include/libxml2, + ); + INFOPLIST_FILE = "CyberLink/CyberLink-Info.plist"; + INFOPLIST_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Info.plist"; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + LINK_WITH_STANDARD_LIBRARIES = NO; + MACH_O_TYPE = mh_object; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + UNLOCALIZED_RESOURCES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Resources"; + WRAPPER_EXTENSION = framework; + }; + name = Debug; + }; + 9529EF6615DBF846000303A6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CONTENTS_FOLDER_PATH = "$(WRAPPER_NAME)/Versions/$(FRAMEWORK_VERSION)"; + DEAD_CODE_STRIPPING = NO; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "CyberLink/CyberLink-Prefix.pch"; + HEADER_SEARCH_PATHS = ( + "../cyberlink-src/include/", + /usr/include/libxml2, + ); + INFOPLIST_FILE = "CyberLink/CyberLink-Info.plist"; + INFOPLIST_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Info.plist"; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + LINK_WITH_STANDARD_LIBRARIES = NO; + MACH_O_TYPE = mh_object; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + UNLOCALIZED_RESOURCES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Resources"; + WRAPPER_EXTENSION = framework; + }; + name = Release; + }; + 9529F09915DBFBA6000303A6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + DSTROOT = /tmp/libCyberLink.dst; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + HEADER_SEARCH_PATHS = ( + "../cyberlink-src/include/", + /usr/include/libxml2, + ); + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = CyberLink; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 9529F09A15DBFBA6000303A6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DSTROOT = /tmp/libCyberLink.dst; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + HEADER_SEARCH_PATHS = ( + "../cyberlink-src/include/", + /usr/include/libxml2, + ); + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = CyberLink; + SKIP_INSTALL = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 9529EF4F15DBF846000303A6 /* Build configuration list for PBXProject "CyberLink" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9529EF6215DBF846000303A6 /* Debug */, + 9529EF6315DBF846000303A6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9529EF6415DBF846000303A6 /* Build configuration list for PBXNativeTarget "CyberLink" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9529EF6515DBF846000303A6 /* Debug */, + 9529EF6615DBF846000303A6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; + 9529F09815DBFBA6000303A6 /* Build configuration list for PBXNativeTarget "libCyberLink" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9529F09915DBFBA6000303A6 /* Debug */, + 9529F09A15DBFBA6000303A6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = 9529EF4C15DBF846000303A6 /* Project object */; +} diff --git a/Audio-Frameworks/CyberLink/CyberLink/CyberLink-Info.plist b/Audio-Frameworks/CyberLink/CyberLink/CyberLink-Info.plist new file mode 100644 index 0000000..8344a95 --- /dev/null +++ b/Audio-Frameworks/CyberLink/CyberLink/CyberLink-Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + ap4y.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/Audio-Frameworks/CyberLink/CyberLink/CyberLink-Prefix.pch b/Audio-Frameworks/CyberLink/CyberLink/CyberLink-Prefix.pch new file mode 100644 index 0000000..64ccdf2 --- /dev/null +++ b/Audio-Frameworks/CyberLink/CyberLink/CyberLink-Prefix.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'CyberLink' target in the 'CyberLink' project +// + +#ifdef __OBJC__ + #import +#endif diff --git a/Audio-Frameworks/FLAC/FLAC.xcodeproj/project.pbxproj b/Audio-Frameworks/FLAC/FLAC.xcodeproj/project.pbxproj new file mode 100644 index 0000000..89f52d6 --- /dev/null +++ b/Audio-Frameworks/FLAC/FLAC.xcodeproj/project.pbxproj @@ -0,0 +1,836 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 9502C2FD16C593690054F4E3 /* bitwise.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529F35D15DC0E56000303A6 /* bitwise.c */; }; + 9502C2FE16C593690054F4E3 /* framing.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529F35E15DC0E56000303A6 /* framing.c */; }; + 9502C2FF16C593690054F4E3 /* bitmath.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEDC15DBF23E000303A6 /* bitmath.c */; }; + 9502C30016C593690054F4E3 /* bitreader.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEDD15DBF23E000303A6 /* bitreader.c */; }; + 9502C30116C593690054F4E3 /* bitwriter.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEDE15DBF23E000303A6 /* bitwriter.c */; }; + 9502C30216C593690054F4E3 /* cpu.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEDF15DBF23E000303A6 /* cpu.c */; }; + 9502C30316C593690054F4E3 /* crc.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE015DBF23E000303A6 /* crc.c */; }; + 9502C30416C593690054F4E3 /* fixed.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE115DBF23E000303A6 /* fixed.c */; }; + 9502C30516C593690054F4E3 /* float.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE215DBF23E000303A6 /* float.c */; }; + 9502C30616C593690054F4E3 /* format.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE315DBF23E000303A6 /* format.c */; }; + 9502C30716C593690054F4E3 /* lpc.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE415DBF23E000303A6 /* lpc.c */; }; + 9502C30816C593690054F4E3 /* md5.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE515DBF23E000303A6 /* md5.c */; }; + 9502C30916C593690054F4E3 /* memory.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE615DBF23E000303A6 /* memory.c */; }; + 9502C30A16C593690054F4E3 /* metadata_iterators.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE715DBF23E000303A6 /* metadata_iterators.c */; }; + 9502C30B16C593690054F4E3 /* metadata_object.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE815DBF23E000303A6 /* metadata_object.c */; }; + 9502C30C16C593690054F4E3 /* ogg_decoder_aspect.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE915DBF23E000303A6 /* ogg_decoder_aspect.c */; }; + 9502C30D16C593690054F4E3 /* ogg_encoder_aspect.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEEA15DBF23E000303A6 /* ogg_encoder_aspect.c */; }; + 9502C30E16C593690054F4E3 /* ogg_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEEB15DBF23E000303A6 /* ogg_helper.c */; }; + 9502C30F16C593690054F4E3 /* ogg_mapping.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEEC15DBF23E000303A6 /* ogg_mapping.c */; }; + 9502C31016C593690054F4E3 /* stream_decoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEED15DBF23E000303A6 /* stream_decoder.c */; }; + 9502C31116C593690054F4E3 /* stream_encoder_framing.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEEE15DBF23E000303A6 /* stream_encoder_framing.c */; }; + 9502C31216C593690054F4E3 /* stream_encoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEEF15DBF23E000303A6 /* stream_encoder.c */; }; + 9502C31316C593690054F4E3 /* window.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEF015DBF23E000303A6 /* window.c */; }; + 9502C31416C593790054F4E3 /* ogg.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F35015DC0C8F000303A6 /* ogg.h */; }; + 9502C31516C593790054F4E3 /* os_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F35115DC0C8F000303A6 /* os_types.h */; }; + 9502C31616C593790054F4E3 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EED915DBF05E000303A6 /* config.h */; }; + 9502C31716C593790054F4E3 /* all.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EF0C15DBF3EA000303A6 /* all.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9502C31816C593790054F4E3 /* assert.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EF0D15DBF3EA000303A6 /* assert.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9502C31916C593790054F4E3 /* callback.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EF0E15DBF3EA000303A6 /* callback.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9502C31A16C593790054F4E3 /* export.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EF0F15DBF3EA000303A6 /* export.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9502C31B16C593790054F4E3 /* format.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EF1015DBF3EA000303A6 /* format.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9502C31C16C593790054F4E3 /* metadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EF1115DBF3EA000303A6 /* metadata.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9502C31D16C593790054F4E3 /* ordinals.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EF1215DBF3EA000303A6 /* ordinals.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9502C31E16C593790054F4E3 /* stream_decoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EF1315DBF3EA000303A6 /* stream_decoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9502C31F16C593790054F4E3 /* stream_encoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EF1415DBF3EA000303A6 /* stream_encoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529EF2E15DBF5F0000303A6 /* bitmath.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEDC15DBF23E000303A6 /* bitmath.c */; }; + 9529EF2F15DBF5F0000303A6 /* bitreader.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEDD15DBF23E000303A6 /* bitreader.c */; }; + 9529EF3015DBF5F0000303A6 /* bitwriter.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEDE15DBF23E000303A6 /* bitwriter.c */; }; + 9529EF3115DBF5F0000303A6 /* cpu.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEDF15DBF23E000303A6 /* cpu.c */; }; + 9529EF3215DBF5F0000303A6 /* crc.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE015DBF23E000303A6 /* crc.c */; }; + 9529EF3315DBF5F0000303A6 /* fixed.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE115DBF23E000303A6 /* fixed.c */; }; + 9529EF3415DBF5F0000303A6 /* float.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE215DBF23E000303A6 /* float.c */; }; + 9529EF3515DBF5F0000303A6 /* format.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE315DBF23E000303A6 /* format.c */; }; + 9529EF3615DBF5F0000303A6 /* lpc.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE415DBF23E000303A6 /* lpc.c */; }; + 9529EF3715DBF5F0000303A6 /* md5.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE515DBF23E000303A6 /* md5.c */; }; + 9529EF3815DBF5F0000303A6 /* memory.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE615DBF23E000303A6 /* memory.c */; }; + 9529EF3915DBF5F0000303A6 /* metadata_iterators.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE715DBF23E000303A6 /* metadata_iterators.c */; }; + 9529EF3A15DBF5F0000303A6 /* metadata_object.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE815DBF23E000303A6 /* metadata_object.c */; }; + 9529EF3B15DBF5F0000303A6 /* ogg_decoder_aspect.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE915DBF23E000303A6 /* ogg_decoder_aspect.c */; }; + 9529EF3C15DBF5F0000303A6 /* ogg_encoder_aspect.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEEA15DBF23E000303A6 /* ogg_encoder_aspect.c */; }; + 9529EF3D15DBF5F0000303A6 /* ogg_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEEB15DBF23E000303A6 /* ogg_helper.c */; }; + 9529EF3E15DBF5F0000303A6 /* ogg_mapping.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEEC15DBF23E000303A6 /* ogg_mapping.c */; }; + 9529EF3F15DBF5F0000303A6 /* stream_decoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEED15DBF23E000303A6 /* stream_decoder.c */; }; + 9529EF4015DBF5F0000303A6 /* stream_encoder_framing.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEEE15DBF23E000303A6 /* stream_encoder_framing.c */; }; + 9529EF4115DBF5F0000303A6 /* stream_encoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEEF15DBF23E000303A6 /* stream_encoder.c */; }; + 9529EF4215DBF5F0000303A6 /* window.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEF015DBF23E000303A6 /* window.c */; }; + 9529EF4915DBF68E000303A6 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EED915DBF05E000303A6 /* config.h */; }; + 9529F36015DC0E56000303A6 /* bitwise.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529F35D15DC0E56000303A6 /* bitwise.c */; }; + 9529F36215DC0E56000303A6 /* framing.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529F35E15DC0E56000303A6 /* framing.c */; }; + 95AFB7C61808C8A300CBC14F /* bitwise.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529F35D15DC0E56000303A6 /* bitwise.c */; }; + 95AFB7C71808C8A300CBC14F /* framing.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529F35E15DC0E56000303A6 /* framing.c */; }; + 95AFB7C81808C8A300CBC14F /* bitmath.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEDC15DBF23E000303A6 /* bitmath.c */; }; + 95AFB7C91808C8A300CBC14F /* bitreader.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEDD15DBF23E000303A6 /* bitreader.c */; }; + 95AFB7CA1808C8A300CBC14F /* bitwriter.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEDE15DBF23E000303A6 /* bitwriter.c */; }; + 95AFB7CB1808C8A300CBC14F /* cpu.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEDF15DBF23E000303A6 /* cpu.c */; }; + 95AFB7CC1808C8A300CBC14F /* crc.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE015DBF23E000303A6 /* crc.c */; }; + 95AFB7CD1808C8A300CBC14F /* fixed.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE115DBF23E000303A6 /* fixed.c */; }; + 95AFB7CE1808C8A300CBC14F /* float.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE215DBF23E000303A6 /* float.c */; }; + 95AFB7CF1808C8A300CBC14F /* format.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE315DBF23E000303A6 /* format.c */; }; + 95AFB7D01808C8A300CBC14F /* lpc.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE415DBF23E000303A6 /* lpc.c */; }; + 95AFB7D11808C8A300CBC14F /* md5.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE515DBF23E000303A6 /* md5.c */; }; + 95AFB7D21808C8A300CBC14F /* memory.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE615DBF23E000303A6 /* memory.c */; }; + 95AFB7D31808C8A300CBC14F /* metadata_iterators.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE715DBF23E000303A6 /* metadata_iterators.c */; }; + 95AFB7D41808C8A300CBC14F /* metadata_object.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE815DBF23E000303A6 /* metadata_object.c */; }; + 95AFB7D51808C8A300CBC14F /* ogg_decoder_aspect.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEE915DBF23E000303A6 /* ogg_decoder_aspect.c */; }; + 95AFB7D61808C8A300CBC14F /* ogg_encoder_aspect.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEEA15DBF23E000303A6 /* ogg_encoder_aspect.c */; }; + 95AFB7D71808C8A300CBC14F /* ogg_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEEB15DBF23E000303A6 /* ogg_helper.c */; }; + 95AFB7D81808C8A300CBC14F /* ogg_mapping.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEEC15DBF23E000303A6 /* ogg_mapping.c */; }; + 95AFB7D91808C8A300CBC14F /* stream_decoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEED15DBF23E000303A6 /* stream_decoder.c */; }; + 95AFB7DA1808C8A300CBC14F /* stream_encoder_framing.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEEE15DBF23E000303A6 /* stream_encoder_framing.c */; }; + 95AFB7DB1808C8A300CBC14F /* stream_encoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEEF15DBF23E000303A6 /* stream_encoder.c */; }; + 95AFB7DC1808C8A300CBC14F /* window.c in Sources */ = {isa = PBXBuildFile; fileRef = 9529EEF015DBF23E000303A6 /* window.c */; }; + 95AFB7DD1808C8AC00CBC14F /* ogg.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F35015DC0C8F000303A6 /* ogg.h */; }; + 95AFB7DE1808C8AC00CBC14F /* os_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F35115DC0C8F000303A6 /* os_types.h */; }; + 95AFB7DF1808C8AC00CBC14F /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EED915DBF05E000303A6 /* config.h */; }; + 95AFB7E01808C8AC00CBC14F /* all.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EF0C15DBF3EA000303A6 /* all.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95AFB7E11808C8AC00CBC14F /* assert.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EF0D15DBF3EA000303A6 /* assert.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95AFB7E21808C8AC00CBC14F /* callback.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EF0E15DBF3EA000303A6 /* callback.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95AFB7E31808C8AC00CBC14F /* export.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EF0F15DBF3EA000303A6 /* export.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95AFB7E41808C8AC00CBC14F /* format.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EF1015DBF3EA000303A6 /* format.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95AFB7E51808C8AC00CBC14F /* metadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EF1115DBF3EA000303A6 /* metadata.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95AFB7E61808C8AC00CBC14F /* ordinals.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EF1215DBF3EA000303A6 /* ordinals.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95AFB7E71808C8AC00CBC14F /* stream_decoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EF1315DBF3EA000303A6 /* stream_decoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95AFB7E81808C8AC00CBC14F /* stream_encoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529EF1415DBF3EA000303A6 /* stream_encoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9529EF2015DBF5D7000303A6 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/${PRODUCT_NAME}"; + dstSubfolderSpec = 16; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 9502C2E916C5932B0054F4E3 /* FLAC.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FLAC.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9529EDC715DBE25F000303A6 /* FLAC-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "FLAC-Info.plist"; sourceTree = ""; }; + 9529EED915DBF05E000303A6 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = SOURCE_ROOT; }; + 9529EEDC15DBF23E000303A6 /* bitmath.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bitmath.c; path = "../../flac-src/src/libFLAC/bitmath.c"; sourceTree = ""; }; + 9529EEDD15DBF23E000303A6 /* bitreader.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bitreader.c; path = "../../flac-src/src/libFLAC/bitreader.c"; sourceTree = ""; }; + 9529EEDE15DBF23E000303A6 /* bitwriter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bitwriter.c; path = "../../flac-src/src/libFLAC/bitwriter.c"; sourceTree = ""; }; + 9529EEDF15DBF23E000303A6 /* cpu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cpu.c; path = "../../flac-src/src/libFLAC/cpu.c"; sourceTree = ""; }; + 9529EEE015DBF23E000303A6 /* crc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = crc.c; path = "../../flac-src/src/libFLAC/crc.c"; sourceTree = ""; }; + 9529EEE115DBF23E000303A6 /* fixed.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fixed.c; path = "../../flac-src/src/libFLAC/fixed.c"; sourceTree = ""; }; + 9529EEE215DBF23E000303A6 /* float.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = float.c; path = "../../flac-src/src/libFLAC/float.c"; sourceTree = ""; }; + 9529EEE315DBF23E000303A6 /* format.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = format.c; path = "../../flac-src/src/libFLAC/format.c"; sourceTree = ""; }; + 9529EEE415DBF23E000303A6 /* lpc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lpc.c; path = "../../flac-src/src/libFLAC/lpc.c"; sourceTree = ""; }; + 9529EEE515DBF23E000303A6 /* md5.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = md5.c; path = "../../flac-src/src/libFLAC/md5.c"; sourceTree = ""; }; + 9529EEE615DBF23E000303A6 /* memory.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = memory.c; path = "../../flac-src/src/libFLAC/memory.c"; sourceTree = ""; }; + 9529EEE715DBF23E000303A6 /* metadata_iterators.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = metadata_iterators.c; path = "../../flac-src/src/libFLAC/metadata_iterators.c"; sourceTree = ""; }; + 9529EEE815DBF23E000303A6 /* metadata_object.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = metadata_object.c; path = "../../flac-src/src/libFLAC/metadata_object.c"; sourceTree = ""; }; + 9529EEE915DBF23E000303A6 /* ogg_decoder_aspect.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ogg_decoder_aspect.c; path = "../../flac-src/src/libFLAC/ogg_decoder_aspect.c"; sourceTree = ""; }; + 9529EEEA15DBF23E000303A6 /* ogg_encoder_aspect.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ogg_encoder_aspect.c; path = "../../flac-src/src/libFLAC/ogg_encoder_aspect.c"; sourceTree = ""; }; + 9529EEEB15DBF23E000303A6 /* ogg_helper.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ogg_helper.c; path = "../../flac-src/src/libFLAC/ogg_helper.c"; sourceTree = ""; }; + 9529EEEC15DBF23E000303A6 /* ogg_mapping.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ogg_mapping.c; path = "../../flac-src/src/libFLAC/ogg_mapping.c"; sourceTree = ""; }; + 9529EEED15DBF23E000303A6 /* stream_decoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = stream_decoder.c; path = "../../flac-src/src/libFLAC/stream_decoder.c"; sourceTree = ""; }; + 9529EEEE15DBF23E000303A6 /* stream_encoder_framing.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = stream_encoder_framing.c; path = "../../flac-src/src/libFLAC/stream_encoder_framing.c"; sourceTree = ""; }; + 9529EEEF15DBF23E000303A6 /* stream_encoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = stream_encoder.c; path = "../../flac-src/src/libFLAC/stream_encoder.c"; sourceTree = ""; }; + 9529EEF015DBF23E000303A6 /* window.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = window.c; path = "../../flac-src/src/libFLAC/window.c"; sourceTree = ""; }; + 9529EF0C15DBF3EA000303A6 /* all.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = all.h; path = "../../flac-src/include/FLAC/all.h"; sourceTree = ""; }; + 9529EF0D15DBF3EA000303A6 /* assert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = assert.h; path = "../../flac-src/include/FLAC/assert.h"; sourceTree = ""; }; + 9529EF0E15DBF3EA000303A6 /* callback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = callback.h; path = "../../flac-src/include/FLAC/callback.h"; sourceTree = ""; }; + 9529EF0F15DBF3EA000303A6 /* export.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = export.h; path = "../../flac-src/include/FLAC/export.h"; sourceTree = ""; }; + 9529EF1015DBF3EA000303A6 /* format.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = format.h; path = "../../flac-src/include/FLAC/format.h"; sourceTree = ""; }; + 9529EF1115DBF3EA000303A6 /* metadata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = metadata.h; path = "../../flac-src/include/FLAC/metadata.h"; sourceTree = ""; }; + 9529EF1215DBF3EA000303A6 /* ordinals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ordinals.h; path = "../../flac-src/include/FLAC/ordinals.h"; sourceTree = ""; }; + 9529EF1315DBF3EA000303A6 /* stream_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stream_decoder.h; path = "../../flac-src/include/FLAC/stream_decoder.h"; sourceTree = ""; }; + 9529EF1415DBF3EA000303A6 /* stream_encoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stream_encoder.h; path = "../../flac-src/include/FLAC/stream_encoder.h"; sourceTree = ""; }; + 9529EF2215DBF5D7000303A6 /* libFLAC.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libFLAC.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 9529F35015DC0C8F000303A6 /* ogg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ogg.h; path = "../../libogg-src/include/ogg/ogg.h"; sourceTree = ""; }; + 9529F35115DC0C8F000303A6 /* os_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = os_types.h; path = "../../libogg-src/include/ogg/os_types.h"; sourceTree = ""; }; + 9529F35D15DC0E56000303A6 /* bitwise.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bitwise.c; path = "../../libogg-src/src/bitwise.c"; sourceTree = ""; }; + 9529F35E15DC0E56000303A6 /* framing.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = framing.c; path = "../../libogg-src/src/framing.c"; sourceTree = ""; }; + 95AFB7BB1808C86400CBC14F /* FLAC.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FLAC.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 9502C2E516C5932B0054F4E3 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9529EF1F15DBF5D7000303A6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95AFB7B51808C86400CBC14F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9529EDB415DBE25F000303A6 = { + isa = PBXGroup; + children = ( + 9529EDC515DBE25F000303A6 /* FLAC */, + 9529EDC415DBE25F000303A6 /* Products */, + ); + sourceTree = ""; + }; + 9529EDC415DBE25F000303A6 /* Products */ = { + isa = PBXGroup; + children = ( + 9529EF2215DBF5D7000303A6 /* libFLAC.a */, + 9502C2E916C5932B0054F4E3 /* FLAC.framework */, + 95AFB7BB1808C86400CBC14F /* FLAC.framework */, + ); + name = Products; + sourceTree = ""; + }; + 9529EDC515DBE25F000303A6 /* FLAC */ = { + isa = PBXGroup; + children = ( + 9529EF0615DBF283000303A6 /* headers */, + 9529EEDB15DBF235000303A6 /* src */, + 9529EDC615DBE25F000303A6 /* Supporting Files */, + ); + path = FLAC; + sourceTree = ""; + }; + 9529EDC615DBE25F000303A6 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 9529EDC715DBE25F000303A6 /* FLAC-Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 9529EEDB15DBF235000303A6 /* src */ = { + isa = PBXGroup; + children = ( + 9529F35D15DC0E56000303A6 /* bitwise.c */, + 9529F35E15DC0E56000303A6 /* framing.c */, + 9529EEDC15DBF23E000303A6 /* bitmath.c */, + 9529EEDD15DBF23E000303A6 /* bitreader.c */, + 9529EEDE15DBF23E000303A6 /* bitwriter.c */, + 9529EEDF15DBF23E000303A6 /* cpu.c */, + 9529EEE015DBF23E000303A6 /* crc.c */, + 9529EEE115DBF23E000303A6 /* fixed.c */, + 9529EEE215DBF23E000303A6 /* float.c */, + 9529EEE315DBF23E000303A6 /* format.c */, + 9529EEE415DBF23E000303A6 /* lpc.c */, + 9529EEE515DBF23E000303A6 /* md5.c */, + 9529EEE615DBF23E000303A6 /* memory.c */, + 9529EEE715DBF23E000303A6 /* metadata_iterators.c */, + 9529EEE815DBF23E000303A6 /* metadata_object.c */, + 9529EEE915DBF23E000303A6 /* ogg_decoder_aspect.c */, + 9529EEEA15DBF23E000303A6 /* ogg_encoder_aspect.c */, + 9529EEEB15DBF23E000303A6 /* ogg_helper.c */, + 9529EEEC15DBF23E000303A6 /* ogg_mapping.c */, + 9529EEED15DBF23E000303A6 /* stream_decoder.c */, + 9529EEEE15DBF23E000303A6 /* stream_encoder_framing.c */, + 9529EEEF15DBF23E000303A6 /* stream_encoder.c */, + 9529EEF015DBF23E000303A6 /* window.c */, + ); + name = src; + sourceTree = ""; + }; + 9529EF0615DBF283000303A6 /* headers */ = { + isa = PBXGroup; + children = ( + 9529F35015DC0C8F000303A6 /* ogg.h */, + 9529F35115DC0C8F000303A6 /* os_types.h */, + 9529EED915DBF05E000303A6 /* config.h */, + 9529EF0C15DBF3EA000303A6 /* all.h */, + 9529EF0D15DBF3EA000303A6 /* assert.h */, + 9529EF0E15DBF3EA000303A6 /* callback.h */, + 9529EF0F15DBF3EA000303A6 /* export.h */, + 9529EF1015DBF3EA000303A6 /* format.h */, + 9529EF1115DBF3EA000303A6 /* metadata.h */, + 9529EF1215DBF3EA000303A6 /* ordinals.h */, + 9529EF1315DBF3EA000303A6 /* stream_decoder.h */, + 9529EF1415DBF3EA000303A6 /* stream_encoder.h */, + ); + name = headers; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 9502C2E616C5932B0054F4E3 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 9502C31716C593790054F4E3 /* all.h in Headers */, + 9502C31816C593790054F4E3 /* assert.h in Headers */, + 9502C31916C593790054F4E3 /* callback.h in Headers */, + 9502C31A16C593790054F4E3 /* export.h in Headers */, + 9502C31B16C593790054F4E3 /* format.h in Headers */, + 9502C31C16C593790054F4E3 /* metadata.h in Headers */, + 9502C31D16C593790054F4E3 /* ordinals.h in Headers */, + 9502C31E16C593790054F4E3 /* stream_decoder.h in Headers */, + 9502C31F16C593790054F4E3 /* stream_encoder.h in Headers */, + 9502C31416C593790054F4E3 /* ogg.h in Headers */, + 9502C31516C593790054F4E3 /* os_types.h in Headers */, + 9502C31616C593790054F4E3 /* config.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9529EF4815DBF687000303A6 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 9529EF4915DBF68E000303A6 /* config.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95AFB7B61808C86400CBC14F /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 95AFB7E01808C8AC00CBC14F /* all.h in Headers */, + 95AFB7E11808C8AC00CBC14F /* assert.h in Headers */, + 95AFB7E21808C8AC00CBC14F /* callback.h in Headers */, + 95AFB7E31808C8AC00CBC14F /* export.h in Headers */, + 95AFB7E41808C8AC00CBC14F /* format.h in Headers */, + 95AFB7E51808C8AC00CBC14F /* metadata.h in Headers */, + 95AFB7E61808C8AC00CBC14F /* ordinals.h in Headers */, + 95AFB7E71808C8AC00CBC14F /* stream_decoder.h in Headers */, + 95AFB7E81808C8AC00CBC14F /* stream_encoder.h in Headers */, + 95AFB7DD1808C8AC00CBC14F /* ogg.h in Headers */, + 95AFB7DE1808C8AC00CBC14F /* os_types.h in Headers */, + 95AFB7DF1808C8AC00CBC14F /* config.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 9502C2E816C5932B0054F4E3 /* FLAC_OSX */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9502C2FC16C5932B0054F4E3 /* Build configuration list for PBXNativeTarget "FLAC_OSX" */; + buildPhases = ( + 9502C2E416C5932B0054F4E3 /* Sources */, + 9502C2E516C5932B0054F4E3 /* Frameworks */, + 9502C2E616C5932B0054F4E3 /* Headers */, + 9502C2E716C5932B0054F4E3 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = FLAC_OSX; + productName = FlacMac; + productReference = 9502C2E916C5932B0054F4E3 /* FLAC.framework */; + productType = "com.apple.product-type.framework"; + }; + 9529EF2115DBF5D7000303A6 /* libFLAC */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9529EF2B15DBF5D7000303A6 /* Build configuration list for PBXNativeTarget "libFLAC" */; + buildPhases = ( + 9529EF4815DBF687000303A6 /* Headers */, + 9529EF1E15DBF5D7000303A6 /* Sources */, + 9529EF1F15DBF5D7000303A6 /* Frameworks */, + 9529EF2015DBF5D7000303A6 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = libFLAC; + productName = libFLAC; + productReference = 9529EF2215DBF5D7000303A6 /* libFLAC.a */; + productType = "com.apple.product-type.library.static"; + }; + 95AFB7BA1808C86400CBC14F /* FLAC */ = { + isa = PBXNativeTarget; + buildConfigurationList = 95AFB7C31808C86400CBC14F /* Build configuration list for PBXNativeTarget "FLAC" */; + buildPhases = ( + 95AFB7B31808C86400CBC14F /* ShellScript */, + 95AFB7B41808C86400CBC14F /* Sources */, + 95AFB7B51808C86400CBC14F /* Frameworks */, + 95AFB7B61808C86400CBC14F /* Headers */, + 95AFB7B71808C86400CBC14F /* Resources */, + 95AFB7B81808C86400CBC14F /* ShellScript */, + 95AFB7B91808C86400CBC14F /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = FLAC; + productName = FLAC; + productReference = 95AFB7BB1808C86400CBC14F /* FLAC.framework */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 9529EDB615DBE25F000303A6 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0500; + }; + buildConfigurationList = 9529EDB915DBE25F000303A6 /* Build configuration list for PBXProject "FLAC" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 9529EDB415DBE25F000303A6; + productRefGroup = 9529EDC415DBE25F000303A6 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 95AFB7BA1808C86400CBC14F /* FLAC */, + 9529EF2115DBF5D7000303A6 /* libFLAC */, + 9502C2E816C5932B0054F4E3 /* FLAC_OSX */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 9502C2E716C5932B0054F4E3 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95AFB7B71808C86400CBC14F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 95AFB7B31808C86400CBC14F /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nset +u\nif [[ $UFW_MASTER_SCRIPT_RUNNING ]]\nthen\n # Nothing for the slave script to do\n exit 0\nfi\nset -u\n\nif [[ \"$SDK_NAME\" =~ ([A-Za-z]+) ]]\nthen\n UFW_SDK_PLATFORM=${BASH_REMATCH[1]}\nelse\n echo \"Could not find platform name from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$SDK_NAME\" =~ ([0-9]+.*$) ]]\nthen\n\tUFW_SDK_VERSION=${BASH_REMATCH[1]}\nelse\n echo \"Could not find sdk version from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$UFW_SDK_PLATFORM\" = \"iphoneos\" ]]\nthen\n UFW_OTHER_PLATFORM=iphonesimulator\nelse\n UFW_OTHER_PLATFORM=iphoneos\nfi\n\nif [[ \"$BUILT_PRODUCTS_DIR\" =~ (.*)$UFW_SDK_PLATFORM$ ]]\nthen\n UFW_OTHER_BUILT_PRODUCTS_DIR=\"${BASH_REMATCH[1]}${UFW_OTHER_PLATFORM}\"\nelse\n echo \"Could not find $UFW_SDK_PLATFORM in $BUILT_PRODUCTS_DIR\"\n exit 1\nfi\n\n\n# Short-circuit if all binaries are up to date\n\nif [[ -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]] && \\\n [[ -f \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]] && \\\n [[ ! \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -nt \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]]\n [[ -f \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]] && \\\n [[ -f \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]] && \\\n [[ ! \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -nt \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]]\nthen\n exit 0\nfi\n\n\n# Clean other platform if needed\n\nif [[ ! -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]]\nthen\n\techo \"Platform \\\"$UFW_SDK_PLATFORM\\\" was cleaned recently. Cleaning \\\"$UFW_OTHER_PLATFORM\\\" as well\"\n\techo xcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" clean\n\txcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" clean\nfi\n\n\n# Make sure we are building from fresh binaries\n\nrm -rf \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\nrm -rf \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\nrm -rf \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\nrm -rf \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\n"; + }; + 95AFB7B81808C86400CBC14F /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "HEADERS_ROOT=$SRCROOT/$PRODUCT_NAME\nFRAMEWORK_HEADERS_DIR=\"$BUILT_PRODUCTS_DIR/$WRAPPER_NAME/Versions/$FRAMEWORK_VERSION/Headers\"\n\n## only header files expected at this point\nPUBLIC_HEADERS=$(find $FRAMEWORK_HEADERS_DIR/. -not -type d 2> /dev/null | sed -e \"s@.*/@@g\")\n\nFIND_OPTS=\"\"\nfor PUBLIC_HEADER in $PUBLIC_HEADERS; do\n if [ -n \"$FIND_OPTS\" ]; then\n FIND_OPTS=\"$FIND_OPTS -o\"\n fi\n FIND_OPTS=\"$FIND_OPTS -name '$PUBLIC_HEADER'\"\ndone\n\nif [ -n \"$FIND_OPTS\" ]; then\n for ORIG_HEADER in $(eval \"find $HEADERS_ROOT/. $FIND_OPTS\" 2> /dev/null | sed -e \"s@^$HEADERS_ROOT/./@@g\"); do\n PUBLIC_HEADER=$(basename $ORIG_HEADER)\n RELATIVE_PATH=$(dirname $ORIG_HEADER)\n if [ -e $FRAMEWORK_HEADERS_DIR/$PUBLIC_HEADER ]; then\n mkdir -p \"$FRAMEWORK_HEADERS_DIR/$RELATIVE_PATH\"\n mv \"$FRAMEWORK_HEADERS_DIR/$PUBLIC_HEADER\" \"$FRAMEWORK_HEADERS_DIR/$RELATIVE_PATH/$PUBLIC_HEADER\"\n fi\n done\nfi\n"; + }; + 95AFB7B91808C86400CBC14F /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nset +u\nif [[ $UFW_MASTER_SCRIPT_RUNNING ]]\nthen\n # Nothing for the slave script to do\n exit 0\nfi\nset -u\nexport UFW_MASTER_SCRIPT_RUNNING=1\n\n\n# Functions\n\n## List files in the specified directory, storing to the specified array.\n#\n# @param $1 The path to list\n# @param $2 The name of the array to fill\n#\n##\nlist_files ()\n{\n filelist=$(ls \"$1\")\n while read line\n do\n eval \"$2[\\${#$2[*]}]=\\\"\\$line\\\"\"\n done <<< \"$filelist\"\n}\n\n\n# Sanity check\n\nif [[ ! -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]]\nthen\n echo \"Framework target \\\"${TARGET_NAME}\\\" had no source files to build from. Make sure your source files have the correct target membership\"\n exit 1\nfi\n\n\n# Gather information\n\nif [[ \"$SDK_NAME\" =~ ([A-Za-z]+) ]]\nthen\n UFW_SDK_PLATFORM=${BASH_REMATCH[1]}\nelse\n echo \"Could not find platform name from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$SDK_NAME\" =~ ([0-9]+.*$) ]]\nthen\n UFW_SDK_VERSION=${BASH_REMATCH[1]}\nelse\n echo \"Could not find sdk version from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$UFW_SDK_PLATFORM\" = \"iphoneos\" ]]\nthen\n UFW_OTHER_PLATFORM=iphonesimulator\nelse\n UFW_OTHER_PLATFORM=iphoneos\nfi\n\nif [[ \"$BUILT_PRODUCTS_DIR\" =~ (.*)$UFW_SDK_PLATFORM$ ]]\nthen\n UFW_OTHER_BUILT_PRODUCTS_DIR=\"${BASH_REMATCH[1]}${UFW_OTHER_PLATFORM}\"\nelse\n echo \"Could not find $UFW_SDK_PLATFORM in $BUILT_PRODUCTS_DIR\"\n exit 1\nfi\n\n\n# Short-circuit if all binaries are up to date.\n# We already checked the other platform in the prerun script.\n\nif [[ -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]] && [[ -f \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]] && [[ ! \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -nt \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]]\nthen\n exit 0\nfi\n\n\n# Make sure the other platform gets built\n\necho \"Build other platform\"\n\necho xcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" $ACTION\nxcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" $ACTION\n\n\n# Build the fat static library binary\n\necho \"Create universal static library\"\n\nif [[ \"$XCODE_VERSION_MAJOR\" = \"0500\" ]]\nthen\n echo \"$DT_TOOLCHAIN_DIR/usr/bin/libtool\" -static \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -o \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\"\n \"$DT_TOOLCHAIN_DIR/usr/bin/libtool\" -static \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -o \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\"\nelse\n echo \"$PLATFORM_DEVELOPER_BIN_DIR/libtool\" -static \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -o \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\"\n \"$PLATFORM_DEVELOPER_BIN_DIR/libtool\" -static \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -o \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\"\nfi \n\necho mv \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\" \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\nmv \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\" \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\n\n\n# Build framework structure\n\necho \"Build symlinks\"\n\necho ln -sfh $FRAMEWORK_VERSION \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Versions/Current\"\nln -sfh $FRAMEWORK_VERSION \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Versions/Current\"\necho ln -sfh Versions/Current/Headers \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Headers\"\nln -sfh Versions/Current/Headers \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Headers\"\necho ln -sfh Versions/Current/Resources \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Resources\"\nln -sfh Versions/Current/Resources \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Resources\"\necho ln -sfh \"Versions/Current/${EXECUTABLE_NAME}\" \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${EXECUTABLE_NAME}\"\nln -sfh \"Versions/Current/${EXECUTABLE_NAME}\" \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${EXECUTABLE_NAME}\"\n\n\n# Link to binary for unit tests\n\nmkdir -p \"${BUILT_PRODUCTS_DIR}/.fake_fw_testing.framework\"\nln -sfh \"../${WRAPPER_NAME}/${EXECUTABLE_NAME}\" \"${BUILT_PRODUCTS_DIR}/.fake_fw_testing.framework/.fake_fw_testing\"\n\n\n# Build embedded framework structure\n\necho \"Build Embedded Framework\"\n\necho rm -rf \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\nrm -rf \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\necho mkdir -p \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources\"\nmkdir -p \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources\"\necho cp -a \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/\"\ncp -a \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/\"\n\ndeclare -a UFW_FILE_LIST\nlist_files \"${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\" UFW_FILE_LIST\nfor filename in \"${UFW_FILE_LIST[@]}\"\ndo\n if [[ \"${filename}\" != \"Info.plist\" ]] && [[ ! \"${filename}\" =~ .*\\.lproj$ ]]\n then\n echo ln -sfh \"../${WRAPPER_NAME}/Resources/${filename}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources/${filename}\"\n ln -sfh \"../${WRAPPER_NAME}/Resources/${filename}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources/${filename}\"\n fi\ndone\n\n\n# Replace other platform's framework with a copy of this one (so that both have the same universal binary)\n\necho \"Copy from $UFW_SDK_PLATFORM to $UFW_OTHER_PLATFORM\"\n\necho rm -rf \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\nrm -rf \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\necho cp -a \"${BUILD_DIR}/${CONFIGURATION}-${UFW_SDK_PLATFORM}\" \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\ncp -a \"${BUILD_DIR}/${CONFIGURATION}-${UFW_SDK_PLATFORM}\" \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 9502C2E416C5932B0054F4E3 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9502C2FD16C593690054F4E3 /* bitwise.c in Sources */, + 9502C2FE16C593690054F4E3 /* framing.c in Sources */, + 9502C2FF16C593690054F4E3 /* bitmath.c in Sources */, + 9502C30016C593690054F4E3 /* bitreader.c in Sources */, + 9502C30116C593690054F4E3 /* bitwriter.c in Sources */, + 9502C30216C593690054F4E3 /* cpu.c in Sources */, + 9502C30316C593690054F4E3 /* crc.c in Sources */, + 9502C30416C593690054F4E3 /* fixed.c in Sources */, + 9502C30516C593690054F4E3 /* float.c in Sources */, + 9502C30616C593690054F4E3 /* format.c in Sources */, + 9502C30716C593690054F4E3 /* lpc.c in Sources */, + 9502C30816C593690054F4E3 /* md5.c in Sources */, + 9502C30916C593690054F4E3 /* memory.c in Sources */, + 9502C30A16C593690054F4E3 /* metadata_iterators.c in Sources */, + 9502C30B16C593690054F4E3 /* metadata_object.c in Sources */, + 9502C30C16C593690054F4E3 /* ogg_decoder_aspect.c in Sources */, + 9502C30D16C593690054F4E3 /* ogg_encoder_aspect.c in Sources */, + 9502C30E16C593690054F4E3 /* ogg_helper.c in Sources */, + 9502C30F16C593690054F4E3 /* ogg_mapping.c in Sources */, + 9502C31016C593690054F4E3 /* stream_decoder.c in Sources */, + 9502C31116C593690054F4E3 /* stream_encoder_framing.c in Sources */, + 9502C31216C593690054F4E3 /* stream_encoder.c in Sources */, + 9502C31316C593690054F4E3 /* window.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9529EF1E15DBF5D7000303A6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9529EF2E15DBF5F0000303A6 /* bitmath.c in Sources */, + 9529EF2F15DBF5F0000303A6 /* bitreader.c in Sources */, + 9529EF3015DBF5F0000303A6 /* bitwriter.c in Sources */, + 9529EF3115DBF5F0000303A6 /* cpu.c in Sources */, + 9529EF3215DBF5F0000303A6 /* crc.c in Sources */, + 9529EF3315DBF5F0000303A6 /* fixed.c in Sources */, + 9529EF3415DBF5F0000303A6 /* float.c in Sources */, + 9529EF3515DBF5F0000303A6 /* format.c in Sources */, + 9529EF3615DBF5F0000303A6 /* lpc.c in Sources */, + 9529EF3715DBF5F0000303A6 /* md5.c in Sources */, + 9529EF3815DBF5F0000303A6 /* memory.c in Sources */, + 9529EF3915DBF5F0000303A6 /* metadata_iterators.c in Sources */, + 9529EF3A15DBF5F0000303A6 /* metadata_object.c in Sources */, + 9529EF3B15DBF5F0000303A6 /* ogg_decoder_aspect.c in Sources */, + 9529EF3C15DBF5F0000303A6 /* ogg_encoder_aspect.c in Sources */, + 9529EF3D15DBF5F0000303A6 /* ogg_helper.c in Sources */, + 9529EF3E15DBF5F0000303A6 /* ogg_mapping.c in Sources */, + 9529EF3F15DBF5F0000303A6 /* stream_decoder.c in Sources */, + 9529EF4015DBF5F0000303A6 /* stream_encoder_framing.c in Sources */, + 9529EF4115DBF5F0000303A6 /* stream_encoder.c in Sources */, + 9529EF4215DBF5F0000303A6 /* window.c in Sources */, + 9529F36015DC0E56000303A6 /* bitwise.c in Sources */, + 9529F36215DC0E56000303A6 /* framing.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95AFB7B41808C86400CBC14F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 95AFB7C61808C8A300CBC14F /* bitwise.c in Sources */, + 95AFB7C71808C8A300CBC14F /* framing.c in Sources */, + 95AFB7C81808C8A300CBC14F /* bitmath.c in Sources */, + 95AFB7C91808C8A300CBC14F /* bitreader.c in Sources */, + 95AFB7CA1808C8A300CBC14F /* bitwriter.c in Sources */, + 95AFB7CB1808C8A300CBC14F /* cpu.c in Sources */, + 95AFB7CC1808C8A300CBC14F /* crc.c in Sources */, + 95AFB7CD1808C8A300CBC14F /* fixed.c in Sources */, + 95AFB7CE1808C8A300CBC14F /* float.c in Sources */, + 95AFB7CF1808C8A300CBC14F /* format.c in Sources */, + 95AFB7D01808C8A300CBC14F /* lpc.c in Sources */, + 95AFB7D11808C8A300CBC14F /* md5.c in Sources */, + 95AFB7D21808C8A300CBC14F /* memory.c in Sources */, + 95AFB7D31808C8A300CBC14F /* metadata_iterators.c in Sources */, + 95AFB7D41808C8A300CBC14F /* metadata_object.c in Sources */, + 95AFB7D51808C8A300CBC14F /* ogg_decoder_aspect.c in Sources */, + 95AFB7D61808C8A300CBC14F /* ogg_encoder_aspect.c in Sources */, + 95AFB7D71808C8A300CBC14F /* ogg_helper.c in Sources */, + 95AFB7D81808C8A300CBC14F /* ogg_mapping.c in Sources */, + 95AFB7D91808C8A300CBC14F /* stream_decoder.c in Sources */, + 95AFB7DA1808C8A300CBC14F /* stream_encoder_framing.c in Sources */, + 95AFB7DB1808C8A300CBC14F /* stream_encoder.c in Sources */, + 95AFB7DC1808C8A300CBC14F /* window.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 9502C2FA16C5932B0054F4E3 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LIBRARY = "libc++"; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_INT_CONVERSION = YES; + COMBINE_HIDPI_IMAGES = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SYSTEM_APPS_DIR)/Xcode.app/Contents/Developer/Library/Frameworks\"", + ); + FRAMEWORK_VERSION = A; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = "HAVE_CONFIG_H=1"; + HEADER_SEARCH_PATHS = ( + "../flac-src/src/libFLAC/include/", + "../flac-src/include/", + "../libogg-src/include/", + ); + INFOPLIST_FILE = "FLAC/FLAC-Info.plist"; + INSTALL_PATH = "@executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.8; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = FLAC; + SDKROOT = macosx; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = framework; + }; + name = Debug; + }; + 9502C2FB16C5932B0054F4E3 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LIBRARY = "libc++"; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_INT_CONVERSION = YES; + COMBINE_HIDPI_IMAGES = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SYSTEM_APPS_DIR)/Xcode.app/Contents/Developer/Library/Frameworks\"", + ); + FRAMEWORK_VERSION = A; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = "HAVE_CONFIG_H=1"; + HEADER_SEARCH_PATHS = ( + "../flac-src/src/libFLAC/include/", + "../flac-src/include/", + "../libogg-src/include/", + ); + INFOPLIST_FILE = "FLAC/FLAC-Info.plist"; + INSTALL_PATH = "@executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.8; + PRODUCT_NAME = FLAC; + SDKROOT = macosx; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = framework; + }; + name = Release; + }; + 9529EDCC15DBE25F000303A6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 9529EDCD15DBE25F000303A6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 9529EF2C15DBF5D7000303A6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + DSTROOT = /tmp/libFLAC.dst; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + GCC_PREPROCESSOR_DEFINITIONS = "HAVE_CONFIG_H=1"; + HEADER_SEARCH_PATHS = ( + "../flac-src/include/", + "../libogg-src/include/", + "../flac-src/src/libFLAC/include/", + ); + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = FLAC; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 9529EF2D15DBF5D7000303A6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DSTROOT = /tmp/libFLAC.dst; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + GCC_PREPROCESSOR_DEFINITIONS = "HAVE_CONFIG_H=1"; + HEADER_SEARCH_PATHS = ( + "../flac-src/include/", + "../libogg-src/include/", + "../flac-src/src/libFLAC/include/", + ); + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = FLAC; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 95AFB7C41808C86400CBC14F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CONTENTS_FOLDER_PATH = "$(WRAPPER_NAME)/Versions/$(FRAMEWORK_VERSION)"; + DEAD_CODE_STRIPPING = NO; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = "HAVE_CONFIG_H=1"; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "../flac-src/include/", + "../libogg-src/include/", + "../flac-src/src/libFLAC/include/", + ); + INFOPLIST_FILE = "FLAC/FLAC-Info.plist"; + INFOPLIST_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Info.plist"; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + LINK_WITH_STANDARD_LIBRARIES = NO; + MACH_O_TYPE = mh_object; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + UNLOCALIZED_RESOURCES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Resources"; + WRAPPER_EXTENSION = framework; + }; + name = Debug; + }; + 95AFB7C51808C86400CBC14F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CONTENTS_FOLDER_PATH = "$(WRAPPER_NAME)/Versions/$(FRAMEWORK_VERSION)"; + DEAD_CODE_STRIPPING = NO; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + ENABLE_NS_ASSERTIONS = NO; + FRAMEWORK_VERSION = A; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = "HAVE_CONFIG_H=1"; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "../flac-src/include/", + "../libogg-src/include/", + "../flac-src/src/libFLAC/include/", + ); + INFOPLIST_FILE = "FLAC/FLAC-Info.plist"; + INFOPLIST_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Info.plist"; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + LINK_WITH_STANDARD_LIBRARIES = NO; + MACH_O_TYPE = mh_object; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + UNLOCALIZED_RESOURCES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Resources"; + WRAPPER_EXTENSION = framework; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 9502C2FC16C5932B0054F4E3 /* Build configuration list for PBXNativeTarget "FLAC_OSX" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9502C2FA16C5932B0054F4E3 /* Debug */, + 9502C2FB16C5932B0054F4E3 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9529EDB915DBE25F000303A6 /* Build configuration list for PBXProject "FLAC" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9529EDCC15DBE25F000303A6 /* Debug */, + 9529EDCD15DBE25F000303A6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9529EF2B15DBF5D7000303A6 /* Build configuration list for PBXNativeTarget "libFLAC" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9529EF2C15DBF5D7000303A6 /* Debug */, + 9529EF2D15DBF5D7000303A6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 95AFB7C31808C86400CBC14F /* Build configuration list for PBXNativeTarget "FLAC" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 95AFB7C41808C86400CBC14F /* Debug */, + 95AFB7C51808C86400CBC14F /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = 9529EDB615DBE25F000303A6 /* Project object */; +} diff --git a/Audio-Frameworks/FLAC/FLAC/FLAC-Info.plist b/Audio-Frameworks/FLAC/FLAC/FLAC-Info.plist new file mode 100644 index 0000000..9dec469 --- /dev/null +++ b/Audio-Frameworks/FLAC/FLAC/FLAC-Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.ap4y.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/Audio-Frameworks/FLAC/config.h b/Audio-Frameworks/FLAC/config.h new file mode 100755 index 0000000..39ba8b5 --- /dev/null +++ b/Audio-Frameworks/FLAC/config.h @@ -0,0 +1,145 @@ +/* config.h. Generated by configure. */ +/* config.h.in. Generated from configure.in by autoheader. */ + +/* define to align allocated memory on 32-byte boundaries */ +#define FLAC__ALIGN_MALLOC_DATA 1 + +/* define if building for ia32/i386 */ +#if __LITTLE_ENDIAN__ +#define FLAC__CPU_IA32 1 +#endif + +/* define if building for PowerPC */ +#if __BIG_ENDIAN__ +#define FLAC__CPU_PPC 1 +#endif + +/* define if building for SPARC */ +/* #undef FLAC__CPU_SPARC */ + +/* define if you are compiling for PowerPC and have the 'as' assembler */ +/* #undef FLAC__HAS_AS */ + +/* define if you have docbook-to-man or docbook2man */ +/* #undef FLAC__HAS_DOCBOOK_TO_MAN */ + +/* define if you are compiling for PowerPC and have the 'gas' assembler */ +#define FLAC__HAS_GAS 1 + +/* define if you are compiling for x86 and have the NASM assembler */ +#define FLAC__HAS_NASM 1 + +/* define if you have the ogg library */ +#define FLAC__HAS_OGG 1 + +/* define to disable use of assembly code */ +#define FLAC__NO_ASM 1 + +/* define if your operating system supports SSE instructions */ +/* #undef FLAC__SSE_OS */ + +/* define if building for Darwin / MacOS X */ +#define FLAC__SYS_DARWIN 1 + +/* define if building for Linux */ +/* #undef FLAC__SYS_LINUX */ + +/* define to enable use of 3Dnow! instructions */ +#define FLAC__USE_3DNOW 1 + +/* define to enable use of Altivec instructions */ +#define FLAC__USE_ALTIVEC 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ +#define HAVE_FSEEKO 1 + +/* Define to 1 if you have the `getopt_long' function. */ +#define HAVE_GETOPT_LONG 1 + +/* Define if you have the iconv() function. */ +#define HAVE_ICONV 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define if you have and nl_langinfo(CODESET). */ +#define HAVE_LANGINFO_CODESET 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if the system has the type `socklen_t'. */ +/* #undef HAVE_SOCKLEN_T */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define as const if the declaration of iconv() needs const. */ +#define ICONV_CONST + +/* Name of package */ +#define PACKAGE "flac" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "" + +/* The size of a `void*', as computed by sizeof. */ +#if (defined __LP64__) || (defined __ppc64__) +#define SIZEOF_VOIDP 8 +#else +#define SIZEOF_VOIDP 4 +#endif + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Version number of package */ +#define VERSION "1.2.1" + +/* Define to 1 if your processor stores words with the most significant byte + first (like Motorola and SPARC, unlike Intel and VAX). */ +#if __BIG_ENDIAN__ +#define WORDS_BIGENDIAN 1 +#endif + +/* Number of bits in a file offset, on hosts where this is settable. */ +/* #undef _FILE_OFFSET_BITS */ + +/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ +/* #undef _LARGEFILE_SOURCE */ + +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ diff --git a/Audio-Frameworks/Ogg/Ogg.xcodeproj/project.pbxproj b/Audio-Frameworks/Ogg/Ogg.xcodeproj/project.pbxproj new file mode 100644 index 0000000..e7db203 --- /dev/null +++ b/Audio-Frameworks/Ogg/Ogg.xcodeproj/project.pbxproj @@ -0,0 +1,573 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 95C8733217F6C81200F6C878 /* ogg.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8733017F6C81200F6C878 /* ogg.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95C8733317F6C81200F6C878 /* os_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8733117F6C81200F6C878 /* os_types.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95C8733717F6C82B00F6C878 /* bitwise.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8733517F6C82B00F6C878 /* bitwise.c */; }; + 95C8733817F6C82B00F6C878 /* framing.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8733617F6C82B00F6C878 /* framing.c */; }; + 95C873EF17F6D1AF00F6C878 /* bitwise.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8733517F6C82B00F6C878 /* bitwise.c */; }; + 95C873F017F6D1AF00F6C878 /* framing.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8733617F6C82B00F6C878 /* framing.c */; }; + 95C873F217F6D1C200F6C878 /* ogg.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8733017F6C81200F6C878 /* ogg.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95C873F317F6D1C200F6C878 /* os_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8733117F6C81200F6C878 /* os_types.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95F27DE917F6DDBB009E13C6 /* bitwise.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8733517F6C82B00F6C878 /* bitwise.c */; }; + 95F27DEA17F6DDBB009E13C6 /* framing.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8733617F6C82B00F6C878 /* framing.c */; }; + 95F27DEB17F6DDC0009E13C6 /* ogg.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8733017F6C81200F6C878 /* ogg.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95F27DEC17F6DDC0009E13C6 /* os_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8733117F6C81200F6C878 /* os_types.h */; settings = {ATTRIBUTES = (Public, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 95C873C717F6D18300F6C878 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 95C8730117F6C7CA00F6C878 /* Ogg.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Ogg.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 95C8730C17F6C7CA00F6C878 /* Ogg-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Ogg-Info.plist"; sourceTree = ""; }; + 95C8733017F6C81200F6C878 /* ogg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ogg.h; path = "../../libogg-src/include/ogg/ogg.h"; sourceTree = ""; }; + 95C8733117F6C81200F6C878 /* os_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = os_types.h; path = "../../libogg-src/include/ogg/os_types.h"; sourceTree = ""; }; + 95C8733517F6C82B00F6C878 /* bitwise.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bitwise.c; path = "../../libogg-src/src/bitwise.c"; sourceTree = ""; }; + 95C8733617F6C82B00F6C878 /* framing.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = framing.c; path = "../../libogg-src/src/framing.c"; sourceTree = ""; }; + 95C873C917F6D18300F6C878 /* libogg.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libogg.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 95F27DC417F6DD93009E13C6 /* Ogg.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Ogg.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 95F27DC717F6DD93009E13C6 /* Ogg_ios-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Ogg_ios-Info.plist"; path = "Ogg_ios/Ogg_ios-Info.plist"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 95C872FD17F6C7CA00F6C878 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95C873C617F6D18300F6C878 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95F27DBE17F6DD93009E13C6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 95C872F717F6C7CA00F6C878 = { + isa = PBXGroup; + children = ( + 95C8730A17F6C7CA00F6C878 /* Ogg */, + 95C8730217F6C7CA00F6C878 /* Products */, + ); + sourceTree = ""; + }; + 95C8730217F6C7CA00F6C878 /* Products */ = { + isa = PBXGroup; + children = ( + 95C8730117F6C7CA00F6C878 /* Ogg.framework */, + 95C873C917F6D18300F6C878 /* libogg.a */, + 95F27DC417F6DD93009E13C6 /* Ogg.framework */, + ); + name = Products; + sourceTree = ""; + }; + 95C8730A17F6C7CA00F6C878 /* Ogg */ = { + isa = PBXGroup; + children = ( + 95C8732F17F6C80400F6C878 /* include */, + 95C8733417F6C82100F6C878 /* src */, + 95C8730B17F6C7CA00F6C878 /* Supporting Files */, + ); + path = Ogg; + sourceTree = ""; + }; + 95C8730B17F6C7CA00F6C878 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 95F27DC717F6DD93009E13C6 /* Ogg_ios-Info.plist */, + 95C8730C17F6C7CA00F6C878 /* Ogg-Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 95C8732F17F6C80400F6C878 /* include */ = { + isa = PBXGroup; + children = ( + 95C8733017F6C81200F6C878 /* ogg.h */, + 95C8733117F6C81200F6C878 /* os_types.h */, + ); + name = include; + sourceTree = ""; + }; + 95C8733417F6C82100F6C878 /* src */ = { + isa = PBXGroup; + children = ( + 95C8733517F6C82B00F6C878 /* bitwise.c */, + 95C8733617F6C82B00F6C878 /* framing.c */, + ); + name = src; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 95C872FE17F6C7CA00F6C878 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 95C8733317F6C81200F6C878 /* os_types.h in Headers */, + 95C8733217F6C81200F6C878 /* ogg.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95C873F117F6D1BB00F6C878 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 95C873F217F6D1C200F6C878 /* ogg.h in Headers */, + 95C873F317F6D1C200F6C878 /* os_types.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95F27DBF17F6DD93009E13C6 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 95F27DEB17F6DDC0009E13C6 /* ogg.h in Headers */, + 95F27DEC17F6DDC0009E13C6 /* os_types.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 95C8730017F6C7CA00F6C878 /* Ogg */ = { + isa = PBXNativeTarget; + buildConfigurationList = 95C8732917F6C7CA00F6C878 /* Build configuration list for PBXNativeTarget "Ogg" */; + buildPhases = ( + 95C872FC17F6C7CA00F6C878 /* Sources */, + 95C872FD17F6C7CA00F6C878 /* Frameworks */, + 95C872FE17F6C7CA00F6C878 /* Headers */, + 95C872FF17F6C7CA00F6C878 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Ogg; + productName = Ogg; + productReference = 95C8730117F6C7CA00F6C878 /* Ogg.framework */; + productType = "com.apple.product-type.framework"; + }; + 95C873C817F6D18300F6C878 /* ogg */ = { + isa = PBXNativeTarget; + buildConfigurationList = 95C873ED17F6D18400F6C878 /* Build configuration list for PBXNativeTarget "ogg" */; + buildPhases = ( + 95C873C517F6D18300F6C878 /* Sources */, + 95C873C617F6D18300F6C878 /* Frameworks */, + 95C873C717F6D18300F6C878 /* CopyFiles */, + 95C873F117F6D1BB00F6C878 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ogg; + productName = ogg; + productReference = 95C873C917F6D18300F6C878 /* libogg.a */; + productType = "com.apple.product-type.library.static"; + }; + 95F27DC317F6DD93009E13C6 /* Ogg_ios */ = { + isa = PBXNativeTarget; + buildConfigurationList = 95F27DE717F6DD93009E13C6 /* Build configuration list for PBXNativeTarget "Ogg_ios" */; + buildPhases = ( + 95F27DBC17F6DD93009E13C6 /* ShellScript */, + 95F27DBD17F6DD93009E13C6 /* Sources */, + 95F27DBE17F6DD93009E13C6 /* Frameworks */, + 95F27DBF17F6DD93009E13C6 /* Headers */, + 95F27DC017F6DD93009E13C6 /* Resources */, + 95F27DC117F6DD93009E13C6 /* ShellScript */, + 95F27DC217F6DD93009E13C6 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Ogg_ios; + productName = Ogg_ios; + productReference = 95F27DC417F6DD93009E13C6 /* Ogg.framework */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 95C872F817F6C7CA00F6C878 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0500; + ORGANIZATIONNAME = "Arthur Evstifeev"; + }; + buildConfigurationList = 95C872FB17F6C7CA00F6C878 /* Build configuration list for PBXProject "Ogg" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 95C872F717F6C7CA00F6C878; + productRefGroup = 95C8730217F6C7CA00F6C878 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 95C8730017F6C7CA00F6C878 /* Ogg */, + 95C873C817F6D18300F6C878 /* ogg */, + 95F27DC317F6DD93009E13C6 /* Ogg_ios */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 95C872FF17F6C7CA00F6C878 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95F27DC017F6DD93009E13C6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 95F27DBC17F6DD93009E13C6 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nset +u\nif [[ $UFW_MASTER_SCRIPT_RUNNING ]]\nthen\n # Nothing for the slave script to do\n exit 0\nfi\nset -u\n\nif [[ \"$SDK_NAME\" =~ ([A-Za-z]+) ]]\nthen\n UFW_SDK_PLATFORM=${BASH_REMATCH[1]}\nelse\n echo \"Could not find platform name from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$SDK_NAME\" =~ ([0-9]+.*$) ]]\nthen\n\tUFW_SDK_VERSION=${BASH_REMATCH[1]}\nelse\n echo \"Could not find sdk version from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$UFW_SDK_PLATFORM\" = \"iphoneos\" ]]\nthen\n UFW_OTHER_PLATFORM=iphonesimulator\nelse\n UFW_OTHER_PLATFORM=iphoneos\nfi\n\nif [[ \"$BUILT_PRODUCTS_DIR\" =~ (.*)$UFW_SDK_PLATFORM$ ]]\nthen\n UFW_OTHER_BUILT_PRODUCTS_DIR=\"${BASH_REMATCH[1]}${UFW_OTHER_PLATFORM}\"\nelse\n echo \"Could not find $UFW_SDK_PLATFORM in $BUILT_PRODUCTS_DIR\"\n exit 1\nfi\n\n\n# Short-circuit if all binaries are up to date\n\nif [[ -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]] && \\\n [[ -f \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]] && \\\n [[ ! \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -nt \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]]\n [[ -f \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]] && \\\n [[ -f \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]] && \\\n [[ ! \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -nt \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]]\nthen\n exit 0\nfi\n\n\n# Clean other platform if needed\n\nif [[ ! -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]]\nthen\n\techo \"Platform \\\"$UFW_SDK_PLATFORM\\\" was cleaned recently. Cleaning \\\"$UFW_OTHER_PLATFORM\\\" as well\"\n\techo xcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" clean\n\txcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" clean\nfi\n\n\n# Make sure we are building from fresh binaries\n\nrm -rf \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\nrm -rf \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\nrm -rf \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\nrm -rf \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\n"; + }; + 95F27DC117F6DD93009E13C6 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "HEADERS_ROOT=$SRCROOT/$PRODUCT_NAME\nFRAMEWORK_HEADERS_DIR=\"$BUILT_PRODUCTS_DIR/$WRAPPER_NAME/Versions/$FRAMEWORK_VERSION/Headers\"\n\n## only header files expected at this point\nPUBLIC_HEADERS=$(find $FRAMEWORK_HEADERS_DIR/. -not -type d 2> /dev/null | sed -e \"s@.*/@@g\")\n\nFIND_OPTS=\"\"\nfor PUBLIC_HEADER in $PUBLIC_HEADERS; do\n if [ -n \"$FIND_OPTS\" ]; then\n FIND_OPTS=\"$FIND_OPTS -o\"\n fi\n FIND_OPTS=\"$FIND_OPTS -name '$PUBLIC_HEADER'\"\ndone\n\nif [ -n \"$FIND_OPTS\" ]; then\n for ORIG_HEADER in $(eval \"find $HEADERS_ROOT/. $FIND_OPTS\" 2> /dev/null | sed -e \"s@^$HEADERS_ROOT/./@@g\"); do\n PUBLIC_HEADER=$(basename $ORIG_HEADER)\n RELATIVE_PATH=$(dirname $ORIG_HEADER)\n if [ -e $FRAMEWORK_HEADERS_DIR/$PUBLIC_HEADER ]; then\n mkdir -p \"$FRAMEWORK_HEADERS_DIR/$RELATIVE_PATH\"\n mv \"$FRAMEWORK_HEADERS_DIR/$PUBLIC_HEADER\" \"$FRAMEWORK_HEADERS_DIR/$RELATIVE_PATH/$PUBLIC_HEADER\"\n fi\n done\nfi\n"; + }; + 95F27DC217F6DD93009E13C6 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nset +u\nif [[ $UFW_MASTER_SCRIPT_RUNNING ]]\nthen\n # Nothing for the slave script to do\n exit 0\nfi\nset -u\nexport UFW_MASTER_SCRIPT_RUNNING=1\n\n\n# Functions\n\n## List files in the specified directory, storing to the specified array.\n#\n# @param $1 The path to list\n# @param $2 The name of the array to fill\n#\n##\nlist_files ()\n{\n filelist=$(ls \"$1\")\n while read line\n do\n eval \"$2[\\${#$2[*]}]=\\\"\\$line\\\"\"\n done <<< \"$filelist\"\n}\n\n\n# Sanity check\n\nif [[ ! -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]]\nthen\n echo \"Framework target \\\"${TARGET_NAME}\\\" had no source files to build from. Make sure your source files have the correct target membership\"\n exit 1\nfi\n\n\n# Gather information\n\nif [[ \"$SDK_NAME\" =~ ([A-Za-z]+) ]]\nthen\n UFW_SDK_PLATFORM=${BASH_REMATCH[1]}\nelse\n echo \"Could not find platform name from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$SDK_NAME\" =~ ([0-9]+.*$) ]]\nthen\n UFW_SDK_VERSION=${BASH_REMATCH[1]}\nelse\n echo \"Could not find sdk version from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$UFW_SDK_PLATFORM\" = \"iphoneos\" ]]\nthen\n UFW_OTHER_PLATFORM=iphonesimulator\nelse\n UFW_OTHER_PLATFORM=iphoneos\nfi\n\nif [[ \"$BUILT_PRODUCTS_DIR\" =~ (.*)$UFW_SDK_PLATFORM$ ]]\nthen\n UFW_OTHER_BUILT_PRODUCTS_DIR=\"${BASH_REMATCH[1]}${UFW_OTHER_PLATFORM}\"\nelse\n echo \"Could not find $UFW_SDK_PLATFORM in $BUILT_PRODUCTS_DIR\"\n exit 1\nfi\n\n\n# Short-circuit if all binaries are up to date.\n# We already checked the other platform in the prerun script.\n\nif [[ -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]] && [[ -f \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]] && [[ ! \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -nt \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]]\nthen\n exit 0\nfi\n\n\n# Make sure the other platform gets built\n\necho \"Build other platform\"\n\necho xcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" $ACTION\nxcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" $ACTION\n\n\n# Build the fat static library binary\n\necho \"Create universal static library\"\n\nif [[ \"$XCODE_VERSION_MAJOR\" = \"0500\" ]]\nthen\n echo \"$DT_TOOLCHAIN_DIR/usr/bin/libtool\" -static \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -o \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\"\n \"$DT_TOOLCHAIN_DIR/usr/bin/libtool\" -static \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -o \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\"\nelse\n echo \"$PLATFORM_DEVELOPER_BIN_DIR/libtool\" -static \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -o \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\"\n \"$PLATFORM_DEVELOPER_BIN_DIR/libtool\" -static \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -o \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\"\nfi \n\necho mv \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\" \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\nmv \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\" \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\n\n\n# Build framework structure\n\necho \"Build symlinks\"\n\necho ln -sfh $FRAMEWORK_VERSION \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Versions/Current\"\nln -sfh $FRAMEWORK_VERSION \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Versions/Current\"\necho ln -sfh Versions/Current/Headers \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Headers\"\nln -sfh Versions/Current/Headers \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Headers\"\necho ln -sfh Versions/Current/Resources \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Resources\"\nln -sfh Versions/Current/Resources \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Resources\"\necho ln -sfh \"Versions/Current/${EXECUTABLE_NAME}\" \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${EXECUTABLE_NAME}\"\nln -sfh \"Versions/Current/${EXECUTABLE_NAME}\" \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${EXECUTABLE_NAME}\"\n\n\n# Link to binary for unit tests\n\nmkdir -p \"${BUILT_PRODUCTS_DIR}/.fake_fw_testing.framework\"\nln -sfh \"../${WRAPPER_NAME}/${EXECUTABLE_NAME}\" \"${BUILT_PRODUCTS_DIR}/.fake_fw_testing.framework/.fake_fw_testing\"\n\n\n# Build embedded framework structure\n\necho \"Build Embedded Framework\"\n\necho rm -rf \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\nrm -rf \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\necho mkdir -p \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources\"\nmkdir -p \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources\"\necho cp -a \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/\"\ncp -a \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/\"\n\ndeclare -a UFW_FILE_LIST\nlist_files \"${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\" UFW_FILE_LIST\nfor filename in \"${UFW_FILE_LIST[@]}\"\ndo\n if [[ \"${filename}\" != \"Info.plist\" ]] && [[ ! \"${filename}\" =~ .*\\.lproj$ ]]\n then\n echo ln -sfh \"../${WRAPPER_NAME}/Resources/${filename}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources/${filename}\"\n ln -sfh \"../${WRAPPER_NAME}/Resources/${filename}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources/${filename}\"\n fi\ndone\n\n\n# Replace other platform's framework with a copy of this one (so that both have the same universal binary)\n\necho \"Copy from $UFW_SDK_PLATFORM to $UFW_OTHER_PLATFORM\"\n\necho rm -rf \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\nrm -rf \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\necho cp -a \"${BUILD_DIR}/${CONFIGURATION}-${UFW_SDK_PLATFORM}\" \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\ncp -a \"${BUILD_DIR}/${CONFIGURATION}-${UFW_SDK_PLATFORM}\" \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 95C872FC17F6C7CA00F6C878 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 95C8733817F6C82B00F6C878 /* framing.c in Sources */, + 95C8733717F6C82B00F6C878 /* bitwise.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95C873C517F6D18300F6C878 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 95C873EF17F6D1AF00F6C878 /* bitwise.c in Sources */, + 95C873F017F6D1AF00F6C878 /* framing.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95F27DBD17F6DD93009E13C6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 95F27DE917F6DDBB009E13C6 /* bitwise.c in Sources */, + 95F27DEA17F6DDBB009E13C6 /* framing.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 95C8732717F6C7CA00F6C878 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + 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; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.8; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + 95C8732817F6C7CA00F6C878 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_OBJC_EXCEPTIONS = 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; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.8; + SDKROOT = macosx; + }; + name = Release; + }; + 95C8732A17F6C7CA00F6C878 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + INFOPLIST_FILE = "Ogg/Ogg-Info.plist"; + INSTALL_PATH = "@executable_path/../Frameworks"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = framework; + }; + name = Debug; + }; + 95C8732B17F6C7CA00F6C878 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + INFOPLIST_FILE = "Ogg/Ogg-Info.plist"; + INSTALL_PATH = "@executable_path/../Frameworks"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = framework; + }; + name = Release; + }; + 95C873E917F6D18400F6C878 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + CLANG_ENABLE_MODULES = YES; + DSTROOT = /tmp/ogg.dst; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 95C873EA17F6D18400F6C878 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + CLANG_ENABLE_MODULES = YES; + DSTROOT = /tmp/ogg.dst; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 95F27DE317F6DD93009E13C6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + CLANG_ENABLE_MODULES = YES; + CONTENTS_FOLDER_PATH = "$(WRAPPER_NAME)/Versions/$(FRAMEWORK_VERSION)"; + DEAD_CODE_STRIPPING = NO; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + INFOPLIST_FILE = "Ogg_ios/Ogg_ios-Info.plist"; + INFOPLIST_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Info.plist"; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + LINK_WITH_STANDARD_LIBRARIES = NO; + MACH_O_TYPE = mh_object; + PRODUCT_NAME = Ogg; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + UNLOCALIZED_RESOURCES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Resources"; + WRAPPER_EXTENSION = framework; + }; + name = Debug; + }; + 95F27DE417F6DD93009E13C6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + CLANG_ENABLE_MODULES = YES; + CONTENTS_FOLDER_PATH = "$(WRAPPER_NAME)/Versions/$(FRAMEWORK_VERSION)"; + DEAD_CODE_STRIPPING = NO; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + INFOPLIST_FILE = "Ogg_ios/Ogg_ios-Info.plist"; + INFOPLIST_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Info.plist"; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + LINK_WITH_STANDARD_LIBRARIES = NO; + MACH_O_TYPE = mh_object; + PRODUCT_NAME = Ogg; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + UNLOCALIZED_RESOURCES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Resources"; + VALIDATE_PRODUCT = YES; + WRAPPER_EXTENSION = framework; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 95C872FB17F6C7CA00F6C878 /* Build configuration list for PBXProject "Ogg" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 95C8732717F6C7CA00F6C878 /* Debug */, + 95C8732817F6C7CA00F6C878 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 95C8732917F6C7CA00F6C878 /* Build configuration list for PBXNativeTarget "Ogg" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 95C8732A17F6C7CA00F6C878 /* Debug */, + 95C8732B17F6C7CA00F6C878 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 95C873ED17F6D18400F6C878 /* Build configuration list for PBXNativeTarget "ogg" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 95C873E917F6D18400F6C878 /* Debug */, + 95C873EA17F6D18400F6C878 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 95F27DE717F6DD93009E13C6 /* Build configuration list for PBXNativeTarget "Ogg_ios" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 95F27DE317F6DD93009E13C6 /* Debug */, + 95F27DE417F6DD93009E13C6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = 95C872F817F6C7CA00F6C878 /* Project object */; +} diff --git a/Audio-Frameworks/Ogg/Ogg/Ogg-Info.plist b/Audio-Frameworks/Ogg/Ogg/Ogg-Info.plist new file mode 100644 index 0000000..034d641 --- /dev/null +++ b/Audio-Frameworks/Ogg/Ogg/Ogg-Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.ap4y.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSHumanReadableCopyright + Copyright © 2013 Arthur Evstifeev. All rights reserved. + NSPrincipalClass + + + diff --git a/Audio-Frameworks/Ogg/Ogg_ios/Ogg_ios-Info.plist b/Audio-Frameworks/Ogg/Ogg_ios/Ogg_ios-Info.plist new file mode 100644 index 0000000..9dec469 --- /dev/null +++ b/Audio-Frameworks/Ogg/Ogg_ios/Ogg_ios-Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.ap4y.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/Audio-Frameworks/Opus/Opus.xcodeproj/project.pbxproj b/Audio-Frameworks/Opus/Opus.xcodeproj/project.pbxproj new file mode 100644 index 0000000..96a8516 --- /dev/null +++ b/Audio-Frameworks/Opus/Opus.xcodeproj/project.pbxproj @@ -0,0 +1,1976 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 95C86EE717F6BCEA00F6C878 /* opus.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86C4A17F6B30100F6C878 /* opus.c */; }; + 95C86EE917F6BCEA00F6C878 /* opus_decoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86C4E17F6B30100F6C878 /* opus_decoder.c */; }; + 95C86EEB17F6BCEA00F6C878 /* opus_encoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86C5217F6B30100F6C878 /* opus_encoder.c */; }; + 95C86EEC17F6BCEA00F6C878 /* opus_multistream.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86C5317F6B30100F6C878 /* opus_multistream.c */; }; + 95C86EED17F6BCEA00F6C878 /* repacketizer.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86C5517F6B30100F6C878 /* repacketizer.c */; }; + 95C86EEF17F6BCFE00F6C878 /* opus.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86CB117F6B35500F6C878 /* opus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95C86EF017F6BCFE00F6C878 /* opus_defines.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86CB317F6B35500F6C878 /* opus_defines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95C86EF117F6BCFE00F6C878 /* opus_multistream.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86CB417F6B35500F6C878 /* opus_multistream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95C86EF217F6BCFE00F6C878 /* opus_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86CB517F6B35500F6C878 /* opus_types.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95C86EF517F6BD0B00F6C878 /* opus_private.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86C5417F6B30100F6C878 /* opus_private.h */; }; + 95C86F5B17F6BD7700F6C878 /* _kiss_fft_guts.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F0917F6BD7700F6C878 /* _kiss_fft_guts.h */; }; + 95C86F5D17F6BD7700F6C878 /* arch.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F0A17F6BD7700F6C878 /* arch.h */; }; + 95C86F5F17F6BD7700F6C878 /* bands.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F0B17F6BD7700F6C878 /* bands.c */; }; + 95C86F6117F6BD7700F6C878 /* bands.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F0C17F6BD7700F6C878 /* bands.h */; }; + 95C86F6317F6BD7700F6C878 /* celt.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F0D17F6BD7700F6C878 /* celt.c */; }; + 95C86F6517F6BD7700F6C878 /* celt.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F0E17F6BD7700F6C878 /* celt.h */; }; + 95C86F6917F6BD7700F6C878 /* celt_lpc.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F1117F6BD7700F6C878 /* celt_lpc.c */; }; + 95C86F6B17F6BD7700F6C878 /* celt_lpc.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F1217F6BD7700F6C878 /* celt_lpc.h */; }; + 95C86F6D17F6BD7700F6C878 /* cwrs.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F1317F6BD7700F6C878 /* cwrs.c */; }; + 95C86F6F17F6BD7700F6C878 /* cwrs.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F1417F6BD7700F6C878 /* cwrs.h */; }; + 95C86F7117F6BD7700F6C878 /* ecintrin.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F1517F6BD7700F6C878 /* ecintrin.h */; }; + 95C86F7317F6BD7700F6C878 /* entcode.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F1617F6BD7700F6C878 /* entcode.c */; }; + 95C86F7517F6BD7700F6C878 /* entcode.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F1717F6BD7700F6C878 /* entcode.h */; }; + 95C86F7717F6BD7700F6C878 /* entdec.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F1817F6BD7700F6C878 /* entdec.c */; }; + 95C86F7917F6BD7700F6C878 /* entdec.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F1917F6BD7700F6C878 /* entdec.h */; }; + 95C86F7B17F6BD7700F6C878 /* entenc.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F1A17F6BD7700F6C878 /* entenc.c */; }; + 95C86F7D17F6BD7700F6C878 /* entenc.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F1B17F6BD7700F6C878 /* entenc.h */; }; + 95C86F7F17F6BD7700F6C878 /* fixed_debug.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F1C17F6BD7700F6C878 /* fixed_debug.h */; }; + 95C86F8117F6BD7700F6C878 /* fixed_generic.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F1D17F6BD7700F6C878 /* fixed_generic.h */; }; + 95C86F8317F6BD7700F6C878 /* float_cast.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F1E17F6BD7700F6C878 /* float_cast.h */; }; + 95C86F8517F6BD7700F6C878 /* kiss_fft.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F1F17F6BD7700F6C878 /* kiss_fft.c */; }; + 95C86F8717F6BD7700F6C878 /* kiss_fft.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F2017F6BD7700F6C878 /* kiss_fft.h */; }; + 95C86F8917F6BD7700F6C878 /* laplace.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F2117F6BD7700F6C878 /* laplace.c */; }; + 95C86F8B17F6BD7700F6C878 /* laplace.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F2217F6BD7700F6C878 /* laplace.h */; }; + 95C86F8D17F6BD7700F6C878 /* mathops.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F2317F6BD7700F6C878 /* mathops.c */; }; + 95C86F8F17F6BD7700F6C878 /* mathops.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F2417F6BD7700F6C878 /* mathops.h */; }; + 95C86F9117F6BD7700F6C878 /* mdct.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F2517F6BD7700F6C878 /* mdct.c */; }; + 95C86F9317F6BD7700F6C878 /* mdct.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F2617F6BD7700F6C878 /* mdct.h */; }; + 95C86F9517F6BD7700F6C878 /* mfrngcod.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F2717F6BD7700F6C878 /* mfrngcod.h */; }; + 95C86F9717F6BD7700F6C878 /* modes.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F2817F6BD7700F6C878 /* modes.c */; }; + 95C86F9917F6BD7700F6C878 /* modes.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F2917F6BD7700F6C878 /* modes.h */; }; + 95C86F9D17F6BD7700F6C878 /* os_support.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F2B17F6BD7700F6C878 /* os_support.h */; }; + 95C86F9F17F6BD7700F6C878 /* pitch.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F2C17F6BD7700F6C878 /* pitch.c */; }; + 95C86FA117F6BD7700F6C878 /* pitch.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F2D17F6BD7700F6C878 /* pitch.h */; }; + 95C86FA317F6BD7700F6C878 /* quant_bands.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F2E17F6BD7700F6C878 /* quant_bands.c */; }; + 95C86FA517F6BD7700F6C878 /* quant_bands.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F2F17F6BD7700F6C878 /* quant_bands.h */; }; + 95C86FA717F6BD7700F6C878 /* rate.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F3017F6BD7700F6C878 /* rate.c */; }; + 95C86FA917F6BD7700F6C878 /* rate.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F3117F6BD7700F6C878 /* rate.h */; }; + 95C86FAB17F6BD7700F6C878 /* stack_alloc.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F3217F6BD7700F6C878 /* stack_alloc.h */; }; + 95C86FAD17F6BD7700F6C878 /* static_modes_fixed.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F3317F6BD7700F6C878 /* static_modes_fixed.h */; }; + 95C86FAF17F6BD7700F6C878 /* static_modes_float.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F3417F6BD7700F6C878 /* static_modes_float.h */; }; + 95C86FC917F6BD7700F6C878 /* vq.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F4717F6BD7700F6C878 /* vq.c */; }; + 95C86FCB17F6BD7700F6C878 /* vq.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F4817F6BD7700F6C878 /* vq.h */; }; + 95C8714617F6BD9D00F6C878 /* A2NLSF.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8701A17F6BD9B00F6C878 /* A2NLSF.c */; }; + 95C8714817F6BD9D00F6C878 /* ana_filt_bank_1.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8701B17F6BD9B00F6C878 /* ana_filt_bank_1.c */; }; + 95C8714A17F6BD9D00F6C878 /* API.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8701C17F6BD9B00F6C878 /* API.h */; }; + 95C8714C17F6BD9D00F6C878 /* biquad_alt.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8701D17F6BD9B00F6C878 /* biquad_alt.c */; }; + 95C8714E17F6BD9D00F6C878 /* bwexpander.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8701E17F6BD9B00F6C878 /* bwexpander.c */; }; + 95C8715017F6BD9D00F6C878 /* bwexpander_32.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8701F17F6BD9B00F6C878 /* bwexpander_32.c */; }; + 95C8715217F6BD9D00F6C878 /* check_control_input.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702017F6BD9B00F6C878 /* check_control_input.c */; }; + 95C8715417F6BD9D00F6C878 /* CNG.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702117F6BD9B00F6C878 /* CNG.c */; }; + 95C8715617F6BD9D00F6C878 /* code_signs.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702217F6BD9B00F6C878 /* code_signs.c */; }; + 95C8715817F6BD9D00F6C878 /* control.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8702317F6BD9B00F6C878 /* control.h */; }; + 95C8715A17F6BD9D00F6C878 /* control_audio_bandwidth.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702417F6BD9B00F6C878 /* control_audio_bandwidth.c */; }; + 95C8715C17F6BD9D00F6C878 /* control_codec.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702517F6BD9B00F6C878 /* control_codec.c */; }; + 95C8715E17F6BD9D00F6C878 /* control_SNR.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702617F6BD9C00F6C878 /* control_SNR.c */; }; + 95C8716017F6BD9D00F6C878 /* debug.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702717F6BD9C00F6C878 /* debug.c */; }; + 95C8716217F6BD9D00F6C878 /* debug.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8702817F6BD9C00F6C878 /* debug.h */; }; + 95C8716417F6BD9D00F6C878 /* dec_API.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702917F6BD9C00F6C878 /* dec_API.c */; }; + 95C8716617F6BD9D00F6C878 /* decode_core.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702A17F6BD9C00F6C878 /* decode_core.c */; }; + 95C8716817F6BD9D00F6C878 /* decode_frame.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702B17F6BD9C00F6C878 /* decode_frame.c */; }; + 95C8716A17F6BD9D00F6C878 /* decode_indices.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702C17F6BD9C00F6C878 /* decode_indices.c */; }; + 95C8716C17F6BD9D00F6C878 /* decode_parameters.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702D17F6BD9C00F6C878 /* decode_parameters.c */; }; + 95C8716E17F6BD9D00F6C878 /* decode_pitch.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702E17F6BD9C00F6C878 /* decode_pitch.c */; }; + 95C8717017F6BD9D00F6C878 /* decode_pulses.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702F17F6BD9C00F6C878 /* decode_pulses.c */; }; + 95C8717217F6BD9D00F6C878 /* decoder_set_fs.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8703017F6BD9C00F6C878 /* decoder_set_fs.c */; }; + 95C8717417F6BD9D00F6C878 /* define.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8703117F6BD9C00F6C878 /* define.h */; }; + 95C8717617F6BD9D00F6C878 /* enc_API.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8703217F6BD9C00F6C878 /* enc_API.c */; }; + 95C8717817F6BD9D00F6C878 /* encode_indices.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8703317F6BD9C00F6C878 /* encode_indices.c */; }; + 95C8717A17F6BD9D00F6C878 /* encode_pulses.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8703417F6BD9C00F6C878 /* encode_pulses.c */; }; + 95C8717C17F6BD9D00F6C878 /* errors.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8703517F6BD9C00F6C878 /* errors.h */; }; + 95C871EE17F6BD9D00F6C878 /* apply_sine_window_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8708F17F6BD9C00F6C878 /* apply_sine_window_FLP.c */; }; + 95C871F017F6BD9D00F6C878 /* autocorrelation_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709017F6BD9C00F6C878 /* autocorrelation_FLP.c */; }; + 95C871F217F6BD9D00F6C878 /* burg_modified_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709117F6BD9C00F6C878 /* burg_modified_FLP.c */; }; + 95C871F417F6BD9D00F6C878 /* bwexpander_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709217F6BD9C00F6C878 /* bwexpander_FLP.c */; }; + 95C871F617F6BD9D00F6C878 /* corrMatrix_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709317F6BD9C00F6C878 /* corrMatrix_FLP.c */; }; + 95C871F817F6BD9D00F6C878 /* encode_frame_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709417F6BD9C00F6C878 /* encode_frame_FLP.c */; }; + 95C871FA17F6BD9D00F6C878 /* energy_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709517F6BD9C00F6C878 /* energy_FLP.c */; }; + 95C871FC17F6BD9D00F6C878 /* find_LPC_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709617F6BD9C00F6C878 /* find_LPC_FLP.c */; }; + 95C871FE17F6BD9D00F6C878 /* find_LTP_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709717F6BD9C00F6C878 /* find_LTP_FLP.c */; }; + 95C8720017F6BD9D00F6C878 /* find_pitch_lags_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709817F6BD9C00F6C878 /* find_pitch_lags_FLP.c */; }; + 95C8720217F6BD9D00F6C878 /* find_pred_coefs_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709917F6BD9C00F6C878 /* find_pred_coefs_FLP.c */; }; + 95C8720417F6BD9D00F6C878 /* inner_product_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709A17F6BD9C00F6C878 /* inner_product_FLP.c */; }; + 95C8720617F6BD9D00F6C878 /* k2a_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709B17F6BD9C00F6C878 /* k2a_FLP.c */; }; + 95C8720817F6BD9D00F6C878 /* levinsondurbin_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709C17F6BD9C00F6C878 /* levinsondurbin_FLP.c */; }; + 95C8720A17F6BD9D00F6C878 /* LPC_analysis_filter_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709D17F6BD9C00F6C878 /* LPC_analysis_filter_FLP.c */; }; + 95C8720C17F6BD9D00F6C878 /* LPC_inv_pred_gain_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709E17F6BD9C00F6C878 /* LPC_inv_pred_gain_FLP.c */; }; + 95C8720E17F6BD9D00F6C878 /* LTP_analysis_filter_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709F17F6BD9C00F6C878 /* LTP_analysis_filter_FLP.c */; }; + 95C8721017F6BD9D00F6C878 /* LTP_scale_ctrl_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A017F6BD9C00F6C878 /* LTP_scale_ctrl_FLP.c */; }; + 95C8721217F6BD9D00F6C878 /* main_FLP.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870A117F6BD9C00F6C878 /* main_FLP.h */; }; + 95C8721417F6BD9D00F6C878 /* noise_shape_analysis_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A217F6BD9C00F6C878 /* noise_shape_analysis_FLP.c */; }; + 95C8721617F6BD9D00F6C878 /* pitch_analysis_core_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A317F6BD9C00F6C878 /* pitch_analysis_core_FLP.c */; }; + 95C8721817F6BD9D00F6C878 /* prefilter_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A417F6BD9C00F6C878 /* prefilter_FLP.c */; }; + 95C8721A17F6BD9D00F6C878 /* process_gains_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A517F6BD9C00F6C878 /* process_gains_FLP.c */; }; + 95C8721C17F6BD9D00F6C878 /* regularize_correlations_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A617F6BD9C00F6C878 /* regularize_correlations_FLP.c */; }; + 95C8721E17F6BD9D00F6C878 /* residual_energy_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A717F6BD9C00F6C878 /* residual_energy_FLP.c */; }; + 95C8722017F6BD9D00F6C878 /* scale_copy_vector_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A817F6BD9C00F6C878 /* scale_copy_vector_FLP.c */; }; + 95C8722217F6BD9D00F6C878 /* scale_vector_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A917F6BD9C00F6C878 /* scale_vector_FLP.c */; }; + 95C8722417F6BD9D00F6C878 /* schur_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870AA17F6BD9C00F6C878 /* schur_FLP.c */; }; + 95C8722617F6BD9D00F6C878 /* SigProc_FLP.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870AB17F6BD9C00F6C878 /* SigProc_FLP.h */; }; + 95C8722A17F6BD9D00F6C878 /* solve_LS_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870AE17F6BD9C00F6C878 /* solve_LS_FLP.c */; }; + 95C8722C17F6BD9D00F6C878 /* sort_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870AF17F6BD9C00F6C878 /* sort_FLP.c */; }; + 95C8722E17F6BD9D00F6C878 /* structs_FLP.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870B017F6BD9C00F6C878 /* structs_FLP.h */; }; + 95C8723017F6BD9D00F6C878 /* warped_autocorrelation_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B117F6BD9C00F6C878 /* warped_autocorrelation_FLP.c */; }; + 95C8723217F6BD9D00F6C878 /* wrappers_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B217F6BD9C00F6C878 /* wrappers_FLP.c */; }; + 95C8723417F6BD9D00F6C878 /* gain_quant.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B317F6BD9C00F6C878 /* gain_quant.c */; }; + 95C8723617F6BD9D00F6C878 /* HP_variable_cutoff.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B417F6BD9C00F6C878 /* HP_variable_cutoff.c */; }; + 95C8723817F6BD9D00F6C878 /* init_decoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B517F6BD9C00F6C878 /* init_decoder.c */; }; + 95C8723A17F6BD9D00F6C878 /* init_encoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B617F6BD9C00F6C878 /* init_encoder.c */; }; + 95C8723C17F6BD9D00F6C878 /* Inlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870B717F6BD9C00F6C878 /* Inlines.h */; }; + 95C8723E17F6BD9D00F6C878 /* inner_prod_aligned.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B817F6BD9C00F6C878 /* inner_prod_aligned.c */; }; + 95C8724017F6BD9D00F6C878 /* interpolate.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B917F6BD9C00F6C878 /* interpolate.c */; }; + 95C8724217F6BD9D00F6C878 /* lin2log.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870BA17F6BD9C00F6C878 /* lin2log.c */; }; + 95C8724417F6BD9D00F6C878 /* log2lin.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870BB17F6BD9C00F6C878 /* log2lin.c */; }; + 95C8724617F6BD9D00F6C878 /* LP_variable_cutoff.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870BC17F6BD9C00F6C878 /* LP_variable_cutoff.c */; }; + 95C8724817F6BD9D00F6C878 /* LPC_analysis_filter.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870BD17F6BD9C00F6C878 /* LPC_analysis_filter.c */; }; + 95C8724A17F6BD9D00F6C878 /* LPC_inv_pred_gain.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870BE17F6BD9C00F6C878 /* LPC_inv_pred_gain.c */; }; + 95C8724C17F6BD9D00F6C878 /* MacroCount.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870BF17F6BD9C00F6C878 /* MacroCount.h */; }; + 95C8724E17F6BD9D00F6C878 /* MacroDebug.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870C017F6BD9C00F6C878 /* MacroDebug.h */; }; + 95C8725017F6BD9D00F6C878 /* macros.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870C117F6BD9C00F6C878 /* macros.h */; }; + 95C8725217F6BD9D00F6C878 /* main.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870C217F6BD9C00F6C878 /* main.h */; }; + 95C8725417F6BD9D00F6C878 /* NLSF2A.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C317F6BD9C00F6C878 /* NLSF2A.c */; }; + 95C8725617F6BD9D00F6C878 /* NLSF_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C417F6BD9C00F6C878 /* NLSF_decode.c */; }; + 95C8725817F6BD9D00F6C878 /* NLSF_del_dec_quant.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C517F6BD9C00F6C878 /* NLSF_del_dec_quant.c */; }; + 95C8725A17F6BD9D00F6C878 /* NLSF_encode.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C617F6BD9C00F6C878 /* NLSF_encode.c */; }; + 95C8725C17F6BD9D00F6C878 /* NLSF_stabilize.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C717F6BD9C00F6C878 /* NLSF_stabilize.c */; }; + 95C8725E17F6BD9D00F6C878 /* NLSF_unpack.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C817F6BD9C00F6C878 /* NLSF_unpack.c */; }; + 95C8726017F6BD9D00F6C878 /* NLSF_VQ.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C917F6BD9C00F6C878 /* NLSF_VQ.c */; }; + 95C8726217F6BD9D00F6C878 /* NLSF_VQ_weights_laroia.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870CA17F6BD9C00F6C878 /* NLSF_VQ_weights_laroia.c */; }; + 95C8726417F6BD9D00F6C878 /* NSQ.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870CB17F6BD9C00F6C878 /* NSQ.c */; }; + 95C8726617F6BD9D00F6C878 /* NSQ_del_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870CC17F6BD9C00F6C878 /* NSQ_del_dec.c */; }; + 95C8726817F6BD9D00F6C878 /* pitch_est_defines.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870CD17F6BD9C00F6C878 /* pitch_est_defines.h */; }; + 95C8726A17F6BD9D00F6C878 /* pitch_est_tables.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870CE17F6BD9C00F6C878 /* pitch_est_tables.c */; }; + 95C8726C17F6BD9D00F6C878 /* PLC.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870CF17F6BD9C00F6C878 /* PLC.c */; }; + 95C8726E17F6BD9D00F6C878 /* PLC.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870D017F6BD9C00F6C878 /* PLC.h */; }; + 95C8727017F6BD9D00F6C878 /* process_NLSFs.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D117F6BD9C00F6C878 /* process_NLSFs.c */; }; + 95C8727217F6BD9D00F6C878 /* quant_LTP_gains.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D217F6BD9C00F6C878 /* quant_LTP_gains.c */; }; + 95C8727417F6BD9D00F6C878 /* resampler.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D317F6BD9C00F6C878 /* resampler.c */; }; + 95C8727617F6BD9D00F6C878 /* resampler_down2.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D417F6BD9C00F6C878 /* resampler_down2.c */; }; + 95C8727817F6BD9D00F6C878 /* resampler_down2_3.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D517F6BD9C00F6C878 /* resampler_down2_3.c */; }; + 95C8727A17F6BD9D00F6C878 /* resampler_private.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870D617F6BD9C00F6C878 /* resampler_private.h */; }; + 95C8727C17F6BD9D00F6C878 /* resampler_private_AR2.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D717F6BD9C00F6C878 /* resampler_private_AR2.c */; }; + 95C8727E17F6BD9D00F6C878 /* resampler_private_down_FIR.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D817F6BD9C00F6C878 /* resampler_private_down_FIR.c */; }; + 95C8728017F6BD9D00F6C878 /* resampler_private_IIR_FIR.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D917F6BD9C00F6C878 /* resampler_private_IIR_FIR.c */; }; + 95C8728217F6BD9D00F6C878 /* resampler_private_up2_HQ.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870DA17F6BD9C00F6C878 /* resampler_private_up2_HQ.c */; }; + 95C8728417F6BD9D00F6C878 /* resampler_rom.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870DB17F6BD9C00F6C878 /* resampler_rom.c */; }; + 95C8728617F6BD9D00F6C878 /* resampler_rom.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870DC17F6BD9C00F6C878 /* resampler_rom.h */; }; + 95C8728817F6BD9D00F6C878 /* resampler_structs.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870DD17F6BD9C00F6C878 /* resampler_structs.h */; }; + 95C8728A17F6BD9D00F6C878 /* shell_coder.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870DE17F6BD9C00F6C878 /* shell_coder.c */; }; + 95C8728C17F6BD9D00F6C878 /* sigm_Q15.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870DF17F6BD9C00F6C878 /* sigm_Q15.c */; }; + 95C8728E17F6BD9D00F6C878 /* SigProc_FIX.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870E017F6BD9C00F6C878 /* SigProc_FIX.h */; }; + 95C8729217F6BD9D00F6C878 /* sort.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E317F6BD9C00F6C878 /* sort.c */; }; + 95C8729417F6BD9D00F6C878 /* stereo_decode_pred.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E417F6BD9C00F6C878 /* stereo_decode_pred.c */; }; + 95C8729617F6BD9D00F6C878 /* stereo_encode_pred.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E517F6BD9C00F6C878 /* stereo_encode_pred.c */; }; + 95C8729817F6BD9D00F6C878 /* stereo_find_predictor.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E617F6BD9C00F6C878 /* stereo_find_predictor.c */; }; + 95C8729A17F6BD9D00F6C878 /* stereo_LR_to_MS.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E717F6BD9C00F6C878 /* stereo_LR_to_MS.c */; }; + 95C8729C17F6BD9D00F6C878 /* stereo_MS_to_LR.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E817F6BD9C00F6C878 /* stereo_MS_to_LR.c */; }; + 95C8729E17F6BD9D00F6C878 /* stereo_quant_pred.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E917F6BD9C00F6C878 /* stereo_quant_pred.c */; }; + 95C872A017F6BD9D00F6C878 /* structs.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870EA17F6BD9C00F6C878 /* structs.h */; }; + 95C872A217F6BD9D00F6C878 /* sum_sqr_shift.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870EB17F6BD9C00F6C878 /* sum_sqr_shift.c */; }; + 95C872A417F6BD9D00F6C878 /* table_LSF_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870EC17F6BD9C00F6C878 /* table_LSF_cos.c */; }; + 95C872A617F6BD9D00F6C878 /* tables.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870ED17F6BD9C00F6C878 /* tables.h */; }; + 95C872A817F6BD9D00F6C878 /* tables_gain.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870EE17F6BD9C00F6C878 /* tables_gain.c */; }; + 95C872AA17F6BD9D00F6C878 /* tables_LTP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870EF17F6BD9C00F6C878 /* tables_LTP.c */; }; + 95C872AC17F6BD9D00F6C878 /* tables_NLSF_CB_NB_MB.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F017F6BD9C00F6C878 /* tables_NLSF_CB_NB_MB.c */; }; + 95C872AE17F6BD9D00F6C878 /* tables_NLSF_CB_WB.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F117F6BD9C00F6C878 /* tables_NLSF_CB_WB.c */; }; + 95C872B017F6BD9D00F6C878 /* tables_other.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F217F6BD9C00F6C878 /* tables_other.c */; }; + 95C872B217F6BD9D00F6C878 /* tables_pitch_lag.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F317F6BD9C00F6C878 /* tables_pitch_lag.c */; }; + 95C872B417F6BD9D00F6C878 /* tables_pulses_per_block.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F417F6BD9C00F6C878 /* tables_pulses_per_block.c */; }; + 95C872B617F6BD9D00F6C878 /* tuning_parameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870F517F6BD9C00F6C878 /* tuning_parameters.h */; }; + 95C872B817F6BD9D00F6C878 /* typedef.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870F617F6BD9C00F6C878 /* typedef.h */; }; + 95C872BA17F6BD9D00F6C878 /* VAD.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F717F6BD9C00F6C878 /* VAD.c */; }; + 95C872BC17F6BD9D00F6C878 /* VQ_WMat_EC.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F817F6BD9D00F6C878 /* VQ_WMat_EC.c */; }; + 95C8742117F6D42700F6C878 /* bands.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F0B17F6BD7700F6C878 /* bands.c */; }; + 95C8742317F6D42700F6C878 /* celt.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F0D17F6BD7700F6C878 /* celt.c */; }; + 95C8742517F6D42700F6C878 /* celt_lpc.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F1117F6BD7700F6C878 /* celt_lpc.c */; }; + 95C8742717F6D42700F6C878 /* cwrs.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F1317F6BD7700F6C878 /* cwrs.c */; }; + 95C8742A17F6D42700F6C878 /* entcode.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F1617F6BD7700F6C878 /* entcode.c */; }; + 95C8742C17F6D42700F6C878 /* entdec.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F1817F6BD7700F6C878 /* entdec.c */; }; + 95C8742E17F6D42700F6C878 /* entenc.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F1A17F6BD7700F6C878 /* entenc.c */; }; + 95C8743317F6D42700F6C878 /* kiss_fft.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F1F17F6BD7700F6C878 /* kiss_fft.c */; }; + 95C8743517F6D42700F6C878 /* laplace.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F2117F6BD7700F6C878 /* laplace.c */; }; + 95C8743717F6D42700F6C878 /* mathops.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F2317F6BD7700F6C878 /* mathops.c */; }; + 95C8743917F6D42700F6C878 /* mdct.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F2517F6BD7700F6C878 /* mdct.c */; }; + 95C8743C17F6D42700F6C878 /* modes.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F2817F6BD7700F6C878 /* modes.c */; }; + 95C8743F17F6D42700F6C878 /* pitch.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F2C17F6BD7700F6C878 /* pitch.c */; }; + 95C8744117F6D42700F6C878 /* quant_bands.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F2E17F6BD7700F6C878 /* quant_bands.c */; }; + 95C8744317F6D42700F6C878 /* rate.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F3017F6BD7700F6C878 /* rate.c */; }; + 95C8744817F6D42700F6C878 /* vq.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F4717F6BD7700F6C878 /* vq.c */; }; + 95C8744F17F6D42700F6C878 /* A2NLSF.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8701A17F6BD9B00F6C878 /* A2NLSF.c */; }; + 95C8745017F6D42700F6C878 /* ana_filt_bank_1.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8701B17F6BD9B00F6C878 /* ana_filt_bank_1.c */; }; + 95C8745217F6D42700F6C878 /* biquad_alt.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8701D17F6BD9B00F6C878 /* biquad_alt.c */; }; + 95C8745317F6D42700F6C878 /* bwexpander.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8701E17F6BD9B00F6C878 /* bwexpander.c */; }; + 95C8745417F6D42700F6C878 /* bwexpander_32.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8701F17F6BD9B00F6C878 /* bwexpander_32.c */; }; + 95C8745517F6D42700F6C878 /* check_control_input.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702017F6BD9B00F6C878 /* check_control_input.c */; }; + 95C8745617F6D42700F6C878 /* CNG.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702117F6BD9B00F6C878 /* CNG.c */; }; + 95C8745717F6D42700F6C878 /* code_signs.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702217F6BD9B00F6C878 /* code_signs.c */; }; + 95C8745917F6D42700F6C878 /* control_audio_bandwidth.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702417F6BD9B00F6C878 /* control_audio_bandwidth.c */; }; + 95C8745A17F6D42700F6C878 /* control_codec.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702517F6BD9B00F6C878 /* control_codec.c */; }; + 95C8745B17F6D42700F6C878 /* control_SNR.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702617F6BD9C00F6C878 /* control_SNR.c */; }; + 95C8745C17F6D42700F6C878 /* debug.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702717F6BD9C00F6C878 /* debug.c */; }; + 95C8745E17F6D42700F6C878 /* dec_API.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702917F6BD9C00F6C878 /* dec_API.c */; }; + 95C8745F17F6D42700F6C878 /* decode_core.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702A17F6BD9C00F6C878 /* decode_core.c */; }; + 95C8746017F6D42700F6C878 /* decode_frame.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702B17F6BD9C00F6C878 /* decode_frame.c */; }; + 95C8746117F6D42700F6C878 /* decode_indices.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702C17F6BD9C00F6C878 /* decode_indices.c */; }; + 95C8746217F6D42700F6C878 /* decode_parameters.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702D17F6BD9C00F6C878 /* decode_parameters.c */; }; + 95C8746317F6D42700F6C878 /* decode_pitch.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702E17F6BD9C00F6C878 /* decode_pitch.c */; }; + 95C8746417F6D42700F6C878 /* decode_pulses.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702F17F6BD9C00F6C878 /* decode_pulses.c */; }; + 95C8746517F6D42700F6C878 /* decoder_set_fs.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8703017F6BD9C00F6C878 /* decoder_set_fs.c */; }; + 95C8746717F6D42700F6C878 /* enc_API.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8703217F6BD9C00F6C878 /* enc_API.c */; }; + 95C8746817F6D42700F6C878 /* encode_indices.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8703317F6BD9C00F6C878 /* encode_indices.c */; }; + 95C8746917F6D42700F6C878 /* encode_pulses.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8703417F6BD9C00F6C878 /* encode_pulses.c */; }; + 95C8746B17F6D42700F6C878 /* apply_sine_window_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8708F17F6BD9C00F6C878 /* apply_sine_window_FLP.c */; }; + 95C8746C17F6D42700F6C878 /* autocorrelation_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709017F6BD9C00F6C878 /* autocorrelation_FLP.c */; }; + 95C8746D17F6D42700F6C878 /* burg_modified_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709117F6BD9C00F6C878 /* burg_modified_FLP.c */; }; + 95C8746E17F6D42700F6C878 /* bwexpander_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709217F6BD9C00F6C878 /* bwexpander_FLP.c */; }; + 95C8746F17F6D42700F6C878 /* corrMatrix_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709317F6BD9C00F6C878 /* corrMatrix_FLP.c */; }; + 95C8747017F6D42700F6C878 /* encode_frame_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709417F6BD9C00F6C878 /* encode_frame_FLP.c */; }; + 95C8747117F6D42700F6C878 /* energy_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709517F6BD9C00F6C878 /* energy_FLP.c */; }; + 95C8747217F6D42700F6C878 /* find_LPC_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709617F6BD9C00F6C878 /* find_LPC_FLP.c */; }; + 95C8747317F6D42700F6C878 /* find_LTP_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709717F6BD9C00F6C878 /* find_LTP_FLP.c */; }; + 95C8747417F6D42700F6C878 /* find_pitch_lags_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709817F6BD9C00F6C878 /* find_pitch_lags_FLP.c */; }; + 95C8747517F6D42700F6C878 /* find_pred_coefs_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709917F6BD9C00F6C878 /* find_pred_coefs_FLP.c */; }; + 95C8747617F6D42700F6C878 /* inner_product_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709A17F6BD9C00F6C878 /* inner_product_FLP.c */; }; + 95C8747717F6D42700F6C878 /* k2a_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709B17F6BD9C00F6C878 /* k2a_FLP.c */; }; + 95C8747817F6D42700F6C878 /* levinsondurbin_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709C17F6BD9C00F6C878 /* levinsondurbin_FLP.c */; }; + 95C8747917F6D42700F6C878 /* LPC_analysis_filter_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709D17F6BD9C00F6C878 /* LPC_analysis_filter_FLP.c */; }; + 95C8747A17F6D42700F6C878 /* LPC_inv_pred_gain_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709E17F6BD9C00F6C878 /* LPC_inv_pred_gain_FLP.c */; }; + 95C8747B17F6D42700F6C878 /* LTP_analysis_filter_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709F17F6BD9C00F6C878 /* LTP_analysis_filter_FLP.c */; }; + 95C8747C17F6D42700F6C878 /* LTP_scale_ctrl_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A017F6BD9C00F6C878 /* LTP_scale_ctrl_FLP.c */; }; + 95C8747E17F6D42700F6C878 /* noise_shape_analysis_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A217F6BD9C00F6C878 /* noise_shape_analysis_FLP.c */; }; + 95C8747F17F6D42700F6C878 /* pitch_analysis_core_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A317F6BD9C00F6C878 /* pitch_analysis_core_FLP.c */; }; + 95C8748017F6D42700F6C878 /* prefilter_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A417F6BD9C00F6C878 /* prefilter_FLP.c */; }; + 95C8748117F6D42700F6C878 /* process_gains_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A517F6BD9C00F6C878 /* process_gains_FLP.c */; }; + 95C8748217F6D42700F6C878 /* regularize_correlations_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A617F6BD9C00F6C878 /* regularize_correlations_FLP.c */; }; + 95C8748317F6D42700F6C878 /* residual_energy_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A717F6BD9C00F6C878 /* residual_energy_FLP.c */; }; + 95C8748417F6D42700F6C878 /* scale_copy_vector_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A817F6BD9C00F6C878 /* scale_copy_vector_FLP.c */; }; + 95C8748517F6D42700F6C878 /* scale_vector_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A917F6BD9C00F6C878 /* scale_vector_FLP.c */; }; + 95C8748617F6D42700F6C878 /* schur_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870AA17F6BD9C00F6C878 /* schur_FLP.c */; }; + 95C8748817F6D42700F6C878 /* solve_LS_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870AE17F6BD9C00F6C878 /* solve_LS_FLP.c */; }; + 95C8748917F6D42700F6C878 /* sort_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870AF17F6BD9C00F6C878 /* sort_FLP.c */; }; + 95C8748B17F6D42700F6C878 /* warped_autocorrelation_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B117F6BD9C00F6C878 /* warped_autocorrelation_FLP.c */; }; + 95C8748C17F6D42700F6C878 /* wrappers_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B217F6BD9C00F6C878 /* wrappers_FLP.c */; }; + 95C8748D17F6D42700F6C878 /* gain_quant.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B317F6BD9C00F6C878 /* gain_quant.c */; }; + 95C8748E17F6D42700F6C878 /* HP_variable_cutoff.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B417F6BD9C00F6C878 /* HP_variable_cutoff.c */; }; + 95C8748F17F6D42700F6C878 /* init_decoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B517F6BD9C00F6C878 /* init_decoder.c */; }; + 95C8749017F6D42700F6C878 /* init_encoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B617F6BD9C00F6C878 /* init_encoder.c */; }; + 95C8749217F6D42700F6C878 /* inner_prod_aligned.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B817F6BD9C00F6C878 /* inner_prod_aligned.c */; }; + 95C8749317F6D42700F6C878 /* interpolate.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B917F6BD9C00F6C878 /* interpolate.c */; }; + 95C8749417F6D42700F6C878 /* lin2log.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870BA17F6BD9C00F6C878 /* lin2log.c */; }; + 95C8749517F6D42700F6C878 /* log2lin.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870BB17F6BD9C00F6C878 /* log2lin.c */; }; + 95C8749617F6D42700F6C878 /* LP_variable_cutoff.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870BC17F6BD9C00F6C878 /* LP_variable_cutoff.c */; }; + 95C8749717F6D42700F6C878 /* LPC_analysis_filter.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870BD17F6BD9C00F6C878 /* LPC_analysis_filter.c */; }; + 95C8749817F6D42700F6C878 /* LPC_inv_pred_gain.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870BE17F6BD9C00F6C878 /* LPC_inv_pred_gain.c */; }; + 95C8749D17F6D42700F6C878 /* NLSF2A.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C317F6BD9C00F6C878 /* NLSF2A.c */; }; + 95C8749E17F6D42700F6C878 /* NLSF_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C417F6BD9C00F6C878 /* NLSF_decode.c */; }; + 95C8749F17F6D42700F6C878 /* NLSF_del_dec_quant.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C517F6BD9C00F6C878 /* NLSF_del_dec_quant.c */; }; + 95C874A017F6D42700F6C878 /* NLSF_encode.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C617F6BD9C00F6C878 /* NLSF_encode.c */; }; + 95C874A117F6D42700F6C878 /* NLSF_stabilize.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C717F6BD9C00F6C878 /* NLSF_stabilize.c */; }; + 95C874A217F6D42700F6C878 /* NLSF_unpack.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C817F6BD9C00F6C878 /* NLSF_unpack.c */; }; + 95C874A317F6D42700F6C878 /* NLSF_VQ.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C917F6BD9C00F6C878 /* NLSF_VQ.c */; }; + 95C874A417F6D42700F6C878 /* NLSF_VQ_weights_laroia.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870CA17F6BD9C00F6C878 /* NLSF_VQ_weights_laroia.c */; }; + 95C874A517F6D42700F6C878 /* NSQ.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870CB17F6BD9C00F6C878 /* NSQ.c */; }; + 95C874A617F6D42700F6C878 /* NSQ_del_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870CC17F6BD9C00F6C878 /* NSQ_del_dec.c */; }; + 95C874A817F6D42700F6C878 /* pitch_est_tables.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870CE17F6BD9C00F6C878 /* pitch_est_tables.c */; }; + 95C874A917F6D42700F6C878 /* PLC.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870CF17F6BD9C00F6C878 /* PLC.c */; }; + 95C874AB17F6D42700F6C878 /* process_NLSFs.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D117F6BD9C00F6C878 /* process_NLSFs.c */; }; + 95C874AC17F6D42700F6C878 /* quant_LTP_gains.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D217F6BD9C00F6C878 /* quant_LTP_gains.c */; }; + 95C874AD17F6D42700F6C878 /* resampler.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D317F6BD9C00F6C878 /* resampler.c */; }; + 95C874AE17F6D42700F6C878 /* resampler_down2.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D417F6BD9C00F6C878 /* resampler_down2.c */; }; + 95C874AF17F6D42700F6C878 /* resampler_down2_3.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D517F6BD9C00F6C878 /* resampler_down2_3.c */; }; + 95C874B117F6D42700F6C878 /* resampler_private_AR2.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D717F6BD9C00F6C878 /* resampler_private_AR2.c */; }; + 95C874B217F6D42700F6C878 /* resampler_private_down_FIR.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D817F6BD9C00F6C878 /* resampler_private_down_FIR.c */; }; + 95C874B317F6D42700F6C878 /* resampler_private_IIR_FIR.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D917F6BD9C00F6C878 /* resampler_private_IIR_FIR.c */; }; + 95C874B417F6D42700F6C878 /* resampler_private_up2_HQ.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870DA17F6BD9C00F6C878 /* resampler_private_up2_HQ.c */; }; + 95C874B517F6D42700F6C878 /* resampler_rom.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870DB17F6BD9C00F6C878 /* resampler_rom.c */; }; + 95C874B817F6D42700F6C878 /* shell_coder.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870DE17F6BD9C00F6C878 /* shell_coder.c */; }; + 95C874B917F6D42700F6C878 /* sigm_Q15.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870DF17F6BD9C00F6C878 /* sigm_Q15.c */; }; + 95C874BB17F6D42700F6C878 /* sort.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E317F6BD9C00F6C878 /* sort.c */; }; + 95C874BC17F6D42700F6C878 /* stereo_decode_pred.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E417F6BD9C00F6C878 /* stereo_decode_pred.c */; }; + 95C874BD17F6D42700F6C878 /* stereo_encode_pred.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E517F6BD9C00F6C878 /* stereo_encode_pred.c */; }; + 95C874BE17F6D42700F6C878 /* stereo_find_predictor.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E617F6BD9C00F6C878 /* stereo_find_predictor.c */; }; + 95C874BF17F6D42700F6C878 /* stereo_LR_to_MS.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E717F6BD9C00F6C878 /* stereo_LR_to_MS.c */; }; + 95C874C017F6D42700F6C878 /* stereo_MS_to_LR.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E817F6BD9C00F6C878 /* stereo_MS_to_LR.c */; }; + 95C874C117F6D42700F6C878 /* stereo_quant_pred.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E917F6BD9C00F6C878 /* stereo_quant_pred.c */; }; + 95C874C317F6D42700F6C878 /* sum_sqr_shift.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870EB17F6BD9C00F6C878 /* sum_sqr_shift.c */; }; + 95C874C417F6D42700F6C878 /* table_LSF_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870EC17F6BD9C00F6C878 /* table_LSF_cos.c */; }; + 95C874C617F6D42700F6C878 /* tables_gain.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870EE17F6BD9C00F6C878 /* tables_gain.c */; }; + 95C874C717F6D42700F6C878 /* tables_LTP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870EF17F6BD9C00F6C878 /* tables_LTP.c */; }; + 95C874C817F6D42700F6C878 /* tables_NLSF_CB_NB_MB.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F017F6BD9C00F6C878 /* tables_NLSF_CB_NB_MB.c */; }; + 95C874C917F6D42700F6C878 /* tables_NLSF_CB_WB.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F117F6BD9C00F6C878 /* tables_NLSF_CB_WB.c */; }; + 95C874CA17F6D42700F6C878 /* tables_other.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F217F6BD9C00F6C878 /* tables_other.c */; }; + 95C874CB17F6D42700F6C878 /* tables_pitch_lag.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F317F6BD9C00F6C878 /* tables_pitch_lag.c */; }; + 95C874CC17F6D42700F6C878 /* tables_pulses_per_block.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F417F6BD9C00F6C878 /* tables_pulses_per_block.c */; }; + 95C874CF17F6D42700F6C878 /* VAD.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F717F6BD9C00F6C878 /* VAD.c */; }; + 95C874D017F6D42700F6C878 /* VQ_WMat_EC.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F817F6BD9D00F6C878 /* VQ_WMat_EC.c */; }; + 95C874D117F6D42700F6C878 /* opus.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86C4A17F6B30100F6C878 /* opus.c */; }; + 95C874D217F6D42700F6C878 /* opus_decoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86C4E17F6B30100F6C878 /* opus_decoder.c */; }; + 95C874D317F6D42700F6C878 /* opus_encoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86C5217F6B30100F6C878 /* opus_encoder.c */; }; + 95C874D417F6D42700F6C878 /* opus_multistream.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86C5317F6B30100F6C878 /* opus_multistream.c */; }; + 95C874D617F6D42700F6C878 /* repacketizer.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86C5517F6B30100F6C878 /* repacketizer.c */; }; + 95C8759717F6D4CB00F6C878 /* opus.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86CB117F6B35500F6C878 /* opus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95C8759817F6D4CB00F6C878 /* opus_defines.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86CB317F6B35500F6C878 /* opus_defines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95C8759917F6D4CB00F6C878 /* opus_multistream.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86CB417F6B35500F6C878 /* opus_multistream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95C8759A17F6D4CB00F6C878 /* opus_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86CB517F6B35500F6C878 /* opus_types.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95F27E1D17F6DF15009E13C6 /* bands.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F0B17F6BD7700F6C878 /* bands.c */; }; + 95F27E1F17F6DF15009E13C6 /* celt.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F0D17F6BD7700F6C878 /* celt.c */; }; + 95F27E2117F6DF15009E13C6 /* celt_lpc.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F1117F6BD7700F6C878 /* celt_lpc.c */; }; + 95F27E2317F6DF15009E13C6 /* cwrs.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F1317F6BD7700F6C878 /* cwrs.c */; }; + 95F27E2617F6DF15009E13C6 /* entcode.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F1617F6BD7700F6C878 /* entcode.c */; }; + 95F27E2817F6DF15009E13C6 /* entdec.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F1817F6BD7700F6C878 /* entdec.c */; }; + 95F27E2A17F6DF15009E13C6 /* entenc.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F1A17F6BD7700F6C878 /* entenc.c */; }; + 95F27E2F17F6DF15009E13C6 /* kiss_fft.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F1F17F6BD7700F6C878 /* kiss_fft.c */; }; + 95F27E3117F6DF15009E13C6 /* laplace.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F2117F6BD7700F6C878 /* laplace.c */; }; + 95F27E3317F6DF15009E13C6 /* mathops.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F2317F6BD7700F6C878 /* mathops.c */; }; + 95F27E3517F6DF15009E13C6 /* mdct.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F2517F6BD7700F6C878 /* mdct.c */; }; + 95F27E3817F6DF15009E13C6 /* modes.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F2817F6BD7700F6C878 /* modes.c */; }; + 95F27E3B17F6DF15009E13C6 /* pitch.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F2C17F6BD7700F6C878 /* pitch.c */; }; + 95F27E3D17F6DF15009E13C6 /* quant_bands.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F2E17F6BD7700F6C878 /* quant_bands.c */; }; + 95F27E3F17F6DF15009E13C6 /* rate.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F3017F6BD7700F6C878 /* rate.c */; }; + 95F27E4417F6DF15009E13C6 /* vq.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86F4717F6BD7700F6C878 /* vq.c */; }; + 95F27E4B17F6DF15009E13C6 /* A2NLSF.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8701A17F6BD9B00F6C878 /* A2NLSF.c */; }; + 95F27E4C17F6DF15009E13C6 /* ana_filt_bank_1.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8701B17F6BD9B00F6C878 /* ana_filt_bank_1.c */; }; + 95F27E4E17F6DF15009E13C6 /* biquad_alt.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8701D17F6BD9B00F6C878 /* biquad_alt.c */; }; + 95F27E4F17F6DF15009E13C6 /* bwexpander.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8701E17F6BD9B00F6C878 /* bwexpander.c */; }; + 95F27E5017F6DF15009E13C6 /* bwexpander_32.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8701F17F6BD9B00F6C878 /* bwexpander_32.c */; }; + 95F27E5117F6DF15009E13C6 /* check_control_input.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702017F6BD9B00F6C878 /* check_control_input.c */; }; + 95F27E5217F6DF15009E13C6 /* CNG.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702117F6BD9B00F6C878 /* CNG.c */; }; + 95F27E5317F6DF15009E13C6 /* code_signs.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702217F6BD9B00F6C878 /* code_signs.c */; }; + 95F27E5517F6DF15009E13C6 /* control_audio_bandwidth.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702417F6BD9B00F6C878 /* control_audio_bandwidth.c */; }; + 95F27E5617F6DF15009E13C6 /* control_codec.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702517F6BD9B00F6C878 /* control_codec.c */; }; + 95F27E5717F6DF15009E13C6 /* control_SNR.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702617F6BD9C00F6C878 /* control_SNR.c */; }; + 95F27E5817F6DF15009E13C6 /* debug.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702717F6BD9C00F6C878 /* debug.c */; }; + 95F27E5A17F6DF15009E13C6 /* dec_API.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702917F6BD9C00F6C878 /* dec_API.c */; }; + 95F27E5B17F6DF15009E13C6 /* decode_core.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702A17F6BD9C00F6C878 /* decode_core.c */; }; + 95F27E5C17F6DF15009E13C6 /* decode_frame.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702B17F6BD9C00F6C878 /* decode_frame.c */; }; + 95F27E5D17F6DF15009E13C6 /* decode_indices.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702C17F6BD9C00F6C878 /* decode_indices.c */; }; + 95F27E5E17F6DF15009E13C6 /* decode_parameters.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702D17F6BD9C00F6C878 /* decode_parameters.c */; }; + 95F27E5F17F6DF15009E13C6 /* decode_pitch.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702E17F6BD9C00F6C878 /* decode_pitch.c */; }; + 95F27E6017F6DF15009E13C6 /* decode_pulses.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8702F17F6BD9C00F6C878 /* decode_pulses.c */; }; + 95F27E6117F6DF15009E13C6 /* decoder_set_fs.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8703017F6BD9C00F6C878 /* decoder_set_fs.c */; }; + 95F27E6317F6DF15009E13C6 /* enc_API.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8703217F6BD9C00F6C878 /* enc_API.c */; }; + 95F27E6417F6DF15009E13C6 /* encode_indices.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8703317F6BD9C00F6C878 /* encode_indices.c */; }; + 95F27E6517F6DF15009E13C6 /* encode_pulses.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8703417F6BD9C00F6C878 /* encode_pulses.c */; }; + 95F27E6717F6DF15009E13C6 /* apply_sine_window_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8708F17F6BD9C00F6C878 /* apply_sine_window_FLP.c */; }; + 95F27E6817F6DF15009E13C6 /* autocorrelation_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709017F6BD9C00F6C878 /* autocorrelation_FLP.c */; }; + 95F27E6917F6DF15009E13C6 /* burg_modified_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709117F6BD9C00F6C878 /* burg_modified_FLP.c */; }; + 95F27E6A17F6DF15009E13C6 /* bwexpander_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709217F6BD9C00F6C878 /* bwexpander_FLP.c */; }; + 95F27E6B17F6DF15009E13C6 /* corrMatrix_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709317F6BD9C00F6C878 /* corrMatrix_FLP.c */; }; + 95F27E6C17F6DF15009E13C6 /* encode_frame_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709417F6BD9C00F6C878 /* encode_frame_FLP.c */; }; + 95F27E6D17F6DF15009E13C6 /* energy_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709517F6BD9C00F6C878 /* energy_FLP.c */; }; + 95F27E6E17F6DF15009E13C6 /* find_LPC_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709617F6BD9C00F6C878 /* find_LPC_FLP.c */; }; + 95F27E6F17F6DF15009E13C6 /* find_LTP_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709717F6BD9C00F6C878 /* find_LTP_FLP.c */; }; + 95F27E7017F6DF15009E13C6 /* find_pitch_lags_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709817F6BD9C00F6C878 /* find_pitch_lags_FLP.c */; }; + 95F27E7117F6DF15009E13C6 /* find_pred_coefs_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709917F6BD9C00F6C878 /* find_pred_coefs_FLP.c */; }; + 95F27E7217F6DF15009E13C6 /* inner_product_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709A17F6BD9C00F6C878 /* inner_product_FLP.c */; }; + 95F27E7317F6DF15009E13C6 /* k2a_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709B17F6BD9C00F6C878 /* k2a_FLP.c */; }; + 95F27E7417F6DF15009E13C6 /* levinsondurbin_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709C17F6BD9C00F6C878 /* levinsondurbin_FLP.c */; }; + 95F27E7517F6DF15009E13C6 /* LPC_analysis_filter_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709D17F6BD9C00F6C878 /* LPC_analysis_filter_FLP.c */; }; + 95F27E7617F6DF15009E13C6 /* LPC_inv_pred_gain_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709E17F6BD9C00F6C878 /* LPC_inv_pred_gain_FLP.c */; }; + 95F27E7717F6DF15009E13C6 /* LTP_analysis_filter_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8709F17F6BD9C00F6C878 /* LTP_analysis_filter_FLP.c */; }; + 95F27E7817F6DF15009E13C6 /* LTP_scale_ctrl_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A017F6BD9C00F6C878 /* LTP_scale_ctrl_FLP.c */; }; + 95F27E7A17F6DF15009E13C6 /* noise_shape_analysis_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A217F6BD9C00F6C878 /* noise_shape_analysis_FLP.c */; }; + 95F27E7B17F6DF15009E13C6 /* pitch_analysis_core_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A317F6BD9C00F6C878 /* pitch_analysis_core_FLP.c */; }; + 95F27E7C17F6DF15009E13C6 /* prefilter_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A417F6BD9C00F6C878 /* prefilter_FLP.c */; }; + 95F27E7D17F6DF15009E13C6 /* process_gains_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A517F6BD9C00F6C878 /* process_gains_FLP.c */; }; + 95F27E7E17F6DF15009E13C6 /* regularize_correlations_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A617F6BD9C00F6C878 /* regularize_correlations_FLP.c */; }; + 95F27E7F17F6DF15009E13C6 /* residual_energy_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A717F6BD9C00F6C878 /* residual_energy_FLP.c */; }; + 95F27E8017F6DF15009E13C6 /* scale_copy_vector_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A817F6BD9C00F6C878 /* scale_copy_vector_FLP.c */; }; + 95F27E8117F6DF15009E13C6 /* scale_vector_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870A917F6BD9C00F6C878 /* scale_vector_FLP.c */; }; + 95F27E8217F6DF15009E13C6 /* schur_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870AA17F6BD9C00F6C878 /* schur_FLP.c */; }; + 95F27E8417F6DF15009E13C6 /* solve_LS_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870AE17F6BD9C00F6C878 /* solve_LS_FLP.c */; }; + 95F27E8517F6DF15009E13C6 /* sort_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870AF17F6BD9C00F6C878 /* sort_FLP.c */; }; + 95F27E8717F6DF15009E13C6 /* warped_autocorrelation_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B117F6BD9C00F6C878 /* warped_autocorrelation_FLP.c */; }; + 95F27E8817F6DF15009E13C6 /* wrappers_FLP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B217F6BD9C00F6C878 /* wrappers_FLP.c */; }; + 95F27E8917F6DF15009E13C6 /* gain_quant.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B317F6BD9C00F6C878 /* gain_quant.c */; }; + 95F27E8A17F6DF15009E13C6 /* HP_variable_cutoff.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B417F6BD9C00F6C878 /* HP_variable_cutoff.c */; }; + 95F27E8B17F6DF15009E13C6 /* init_decoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B517F6BD9C00F6C878 /* init_decoder.c */; }; + 95F27E8C17F6DF15009E13C6 /* init_encoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B617F6BD9C00F6C878 /* init_encoder.c */; }; + 95F27E8E17F6DF15009E13C6 /* inner_prod_aligned.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B817F6BD9C00F6C878 /* inner_prod_aligned.c */; }; + 95F27E8F17F6DF15009E13C6 /* interpolate.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870B917F6BD9C00F6C878 /* interpolate.c */; }; + 95F27E9017F6DF15009E13C6 /* lin2log.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870BA17F6BD9C00F6C878 /* lin2log.c */; }; + 95F27E9117F6DF15009E13C6 /* log2lin.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870BB17F6BD9C00F6C878 /* log2lin.c */; }; + 95F27E9217F6DF15009E13C6 /* LP_variable_cutoff.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870BC17F6BD9C00F6C878 /* LP_variable_cutoff.c */; }; + 95F27E9317F6DF15009E13C6 /* LPC_analysis_filter.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870BD17F6BD9C00F6C878 /* LPC_analysis_filter.c */; }; + 95F27E9417F6DF15009E13C6 /* LPC_inv_pred_gain.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870BE17F6BD9C00F6C878 /* LPC_inv_pred_gain.c */; }; + 95F27E9917F6DF15009E13C6 /* NLSF2A.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C317F6BD9C00F6C878 /* NLSF2A.c */; }; + 95F27E9A17F6DF15009E13C6 /* NLSF_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C417F6BD9C00F6C878 /* NLSF_decode.c */; }; + 95F27E9B17F6DF15009E13C6 /* NLSF_del_dec_quant.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C517F6BD9C00F6C878 /* NLSF_del_dec_quant.c */; }; + 95F27E9C17F6DF16009E13C6 /* NLSF_encode.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C617F6BD9C00F6C878 /* NLSF_encode.c */; }; + 95F27E9D17F6DF16009E13C6 /* NLSF_stabilize.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C717F6BD9C00F6C878 /* NLSF_stabilize.c */; }; + 95F27E9E17F6DF16009E13C6 /* NLSF_unpack.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C817F6BD9C00F6C878 /* NLSF_unpack.c */; }; + 95F27E9F17F6DF16009E13C6 /* NLSF_VQ.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870C917F6BD9C00F6C878 /* NLSF_VQ.c */; }; + 95F27EA017F6DF16009E13C6 /* NLSF_VQ_weights_laroia.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870CA17F6BD9C00F6C878 /* NLSF_VQ_weights_laroia.c */; }; + 95F27EA117F6DF16009E13C6 /* NSQ.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870CB17F6BD9C00F6C878 /* NSQ.c */; }; + 95F27EA217F6DF16009E13C6 /* NSQ_del_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870CC17F6BD9C00F6C878 /* NSQ_del_dec.c */; }; + 95F27EA417F6DF16009E13C6 /* pitch_est_tables.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870CE17F6BD9C00F6C878 /* pitch_est_tables.c */; }; + 95F27EA517F6DF16009E13C6 /* PLC.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870CF17F6BD9C00F6C878 /* PLC.c */; }; + 95F27EA717F6DF16009E13C6 /* process_NLSFs.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D117F6BD9C00F6C878 /* process_NLSFs.c */; }; + 95F27EA817F6DF16009E13C6 /* quant_LTP_gains.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D217F6BD9C00F6C878 /* quant_LTP_gains.c */; }; + 95F27EA917F6DF16009E13C6 /* resampler.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D317F6BD9C00F6C878 /* resampler.c */; }; + 95F27EAA17F6DF16009E13C6 /* resampler_down2.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D417F6BD9C00F6C878 /* resampler_down2.c */; }; + 95F27EAB17F6DF16009E13C6 /* resampler_down2_3.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D517F6BD9C00F6C878 /* resampler_down2_3.c */; }; + 95F27EAD17F6DF16009E13C6 /* resampler_private_AR2.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D717F6BD9C00F6C878 /* resampler_private_AR2.c */; }; + 95F27EAE17F6DF16009E13C6 /* resampler_private_down_FIR.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D817F6BD9C00F6C878 /* resampler_private_down_FIR.c */; }; + 95F27EAF17F6DF16009E13C6 /* resampler_private_IIR_FIR.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870D917F6BD9C00F6C878 /* resampler_private_IIR_FIR.c */; }; + 95F27EB017F6DF16009E13C6 /* resampler_private_up2_HQ.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870DA17F6BD9C00F6C878 /* resampler_private_up2_HQ.c */; }; + 95F27EB117F6DF16009E13C6 /* resampler_rom.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870DB17F6BD9C00F6C878 /* resampler_rom.c */; }; + 95F27EB417F6DF16009E13C6 /* shell_coder.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870DE17F6BD9C00F6C878 /* shell_coder.c */; }; + 95F27EB517F6DF16009E13C6 /* sigm_Q15.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870DF17F6BD9C00F6C878 /* sigm_Q15.c */; }; + 95F27EB717F6DF16009E13C6 /* sort.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E317F6BD9C00F6C878 /* sort.c */; }; + 95F27EB817F6DF16009E13C6 /* stereo_decode_pred.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E417F6BD9C00F6C878 /* stereo_decode_pred.c */; }; + 95F27EB917F6DF16009E13C6 /* stereo_encode_pred.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E517F6BD9C00F6C878 /* stereo_encode_pred.c */; }; + 95F27EBA17F6DF16009E13C6 /* stereo_find_predictor.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E617F6BD9C00F6C878 /* stereo_find_predictor.c */; }; + 95F27EBB17F6DF16009E13C6 /* stereo_LR_to_MS.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E717F6BD9C00F6C878 /* stereo_LR_to_MS.c */; }; + 95F27EBC17F6DF16009E13C6 /* stereo_MS_to_LR.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E817F6BD9C00F6C878 /* stereo_MS_to_LR.c */; }; + 95F27EBD17F6DF16009E13C6 /* stereo_quant_pred.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870E917F6BD9C00F6C878 /* stereo_quant_pred.c */; }; + 95F27EBF17F6DF16009E13C6 /* sum_sqr_shift.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870EB17F6BD9C00F6C878 /* sum_sqr_shift.c */; }; + 95F27EC017F6DF16009E13C6 /* table_LSF_cos.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870EC17F6BD9C00F6C878 /* table_LSF_cos.c */; }; + 95F27EC217F6DF16009E13C6 /* tables_gain.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870EE17F6BD9C00F6C878 /* tables_gain.c */; }; + 95F27EC317F6DF16009E13C6 /* tables_LTP.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870EF17F6BD9C00F6C878 /* tables_LTP.c */; }; + 95F27EC417F6DF16009E13C6 /* tables_NLSF_CB_NB_MB.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F017F6BD9C00F6C878 /* tables_NLSF_CB_NB_MB.c */; }; + 95F27EC517F6DF16009E13C6 /* tables_NLSF_CB_WB.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F117F6BD9C00F6C878 /* tables_NLSF_CB_WB.c */; }; + 95F27EC617F6DF16009E13C6 /* tables_other.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F217F6BD9C00F6C878 /* tables_other.c */; }; + 95F27EC717F6DF16009E13C6 /* tables_pitch_lag.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F317F6BD9C00F6C878 /* tables_pitch_lag.c */; }; + 95F27EC817F6DF16009E13C6 /* tables_pulses_per_block.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F417F6BD9C00F6C878 /* tables_pulses_per_block.c */; }; + 95F27ECB17F6DF16009E13C6 /* VAD.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F717F6BD9C00F6C878 /* VAD.c */; }; + 95F27ECC17F6DF16009E13C6 /* VQ_WMat_EC.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C870F817F6BD9D00F6C878 /* VQ_WMat_EC.c */; }; + 95F27ECD17F6DF16009E13C6 /* opus.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86C4A17F6B30100F6C878 /* opus.c */; }; + 95F27ECE17F6DF16009E13C6 /* opus_decoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86C4E17F6B30100F6C878 /* opus_decoder.c */; }; + 95F27ECF17F6DF16009E13C6 /* opus_encoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86C5217F6B30100F6C878 /* opus_encoder.c */; }; + 95F27ED017F6DF16009E13C6 /* opus_multistream.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86C5317F6B30100F6C878 /* opus_multistream.c */; }; + 95F27ED217F6DF16009E13C6 /* repacketizer.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C86C5517F6B30100F6C878 /* repacketizer.c */; }; + 95F27ED817F6DF71009E13C6 /* opus.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86CB117F6B35500F6C878 /* opus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95F27ED917F6DF71009E13C6 /* opus_defines.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86CB317F6B35500F6C878 /* opus_defines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95F27EDA17F6DF71009E13C6 /* opus_multistream.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86CB417F6B35500F6C878 /* opus_multistream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95F27EDB17F6DF71009E13C6 /* opus_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86CB517F6B35500F6C878 /* opus_types.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95F27EDC17F6DF79009E13C6 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86DE017F6B3F700F6C878 /* config.h */; }; + 95F27EDD17F6DF79009E13C6 /* _kiss_fft_guts.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F0917F6BD7700F6C878 /* _kiss_fft_guts.h */; }; + 95F27EDE17F6DF79009E13C6 /* arch.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F0A17F6BD7700F6C878 /* arch.h */; }; + 95F27EE017F6DF79009E13C6 /* bands.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F0C17F6BD7700F6C878 /* bands.h */; }; + 95F27EE217F6DF79009E13C6 /* celt.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F0E17F6BD7700F6C878 /* celt.h */; }; + 95F27EE417F6DF79009E13C6 /* celt_lpc.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F1217F6BD7700F6C878 /* celt_lpc.h */; }; + 95F27EE617F6DF79009E13C6 /* cwrs.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F1417F6BD7700F6C878 /* cwrs.h */; }; + 95F27EE717F6DF79009E13C6 /* ecintrin.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F1517F6BD7700F6C878 /* ecintrin.h */; }; + 95F27EE917F6DF79009E13C6 /* entcode.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F1717F6BD7700F6C878 /* entcode.h */; }; + 95F27EEB17F6DF79009E13C6 /* entdec.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F1917F6BD7700F6C878 /* entdec.h */; }; + 95F27EED17F6DF79009E13C6 /* entenc.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F1B17F6BD7700F6C878 /* entenc.h */; }; + 95F27EEE17F6DF79009E13C6 /* fixed_debug.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F1C17F6BD7700F6C878 /* fixed_debug.h */; }; + 95F27EEF17F6DF79009E13C6 /* fixed_generic.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F1D17F6BD7700F6C878 /* fixed_generic.h */; }; + 95F27EF017F6DF79009E13C6 /* float_cast.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F1E17F6BD7700F6C878 /* float_cast.h */; }; + 95F27EF217F6DF79009E13C6 /* kiss_fft.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F2017F6BD7700F6C878 /* kiss_fft.h */; }; + 95F27EF417F6DF79009E13C6 /* laplace.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F2217F6BD7700F6C878 /* laplace.h */; }; + 95F27EF617F6DF79009E13C6 /* mathops.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F2417F6BD7700F6C878 /* mathops.h */; }; + 95F27EF817F6DF79009E13C6 /* mdct.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F2617F6BD7700F6C878 /* mdct.h */; }; + 95F27EF917F6DF79009E13C6 /* mfrngcod.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F2717F6BD7700F6C878 /* mfrngcod.h */; }; + 95F27EFB17F6DF79009E13C6 /* modes.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F2917F6BD7700F6C878 /* modes.h */; }; + 95F27EFC17F6DF79009E13C6 /* os_support.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F2B17F6BD7700F6C878 /* os_support.h */; }; + 95F27EFE17F6DF79009E13C6 /* pitch.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F2D17F6BD7700F6C878 /* pitch.h */; }; + 95F27F0017F6DF79009E13C6 /* quant_bands.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F2F17F6BD7700F6C878 /* quant_bands.h */; }; + 95F27F0217F6DF79009E13C6 /* rate.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F3117F6BD7700F6C878 /* rate.h */; }; + 95F27F0317F6DF79009E13C6 /* stack_alloc.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F3217F6BD7700F6C878 /* stack_alloc.h */; }; + 95F27F0417F6DF79009E13C6 /* static_modes_fixed.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F3317F6BD7700F6C878 /* static_modes_fixed.h */; }; + 95F27F0517F6DF79009E13C6 /* static_modes_float.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F3417F6BD7700F6C878 /* static_modes_float.h */; }; + 95F27F0717F6DF79009E13C6 /* vq.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86F4817F6BD7700F6C878 /* vq.h */; }; + 95F27F0817F6DF79009E13C6 /* opus_custom.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86CB217F6B35500F6C878 /* opus_custom.h */; }; + 95F27F0B17F6DF79009E13C6 /* API.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8701C17F6BD9B00F6C878 /* API.h */; }; + 95F27F1217F6DF79009E13C6 /* control.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8702317F6BD9B00F6C878 /* control.h */; }; + 95F27F1717F6DF79009E13C6 /* debug.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8702817F6BD9C00F6C878 /* debug.h */; }; + 95F27F2017F6DF79009E13C6 /* define.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8703117F6BD9C00F6C878 /* define.h */; }; + 95F27F2417F6DF79009E13C6 /* errors.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8703517F6BD9C00F6C878 /* errors.h */; }; + 95F27F4117F6DF79009E13C6 /* SigProc_FLP.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870AB17F6BD9C00F6C878 /* SigProc_FLP.h */; }; + 95F27F4417F6DF79009E13C6 /* structs_FLP.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870B017F6BD9C00F6C878 /* structs_FLP.h */; }; + 95F27F4B17F6DF79009E13C6 /* Inlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870B717F6BD9C00F6C878 /* Inlines.h */; }; + 95F27F5317F6DF79009E13C6 /* MacroCount.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870BF17F6BD9C00F6C878 /* MacroCount.h */; }; + 95F27F5417F6DF79009E13C6 /* MacroDebug.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870C017F6BD9C00F6C878 /* MacroDebug.h */; }; + 95F27F5517F6DF79009E13C6 /* macros.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870C117F6BD9C00F6C878 /* macros.h */; }; + 95F27F5617F6DF79009E13C6 /* main.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870C217F6BD9C00F6C878 /* main.h */; }; + 95F27F6117F6DF79009E13C6 /* pitch_est_defines.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870CD17F6BD9C00F6C878 /* pitch_est_defines.h */; }; + 95F27F6417F6DF79009E13C6 /* PLC.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870D017F6BD9C00F6C878 /* PLC.h */; }; + 95F27F6A17F6DF79009E13C6 /* resampler_private.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870D617F6BD9C00F6C878 /* resampler_private.h */; }; + 95F27F7017F6DF79009E13C6 /* resampler_rom.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870DC17F6BD9C00F6C878 /* resampler_rom.h */; }; + 95F27F7117F6DF79009E13C6 /* resampler_structs.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870DD17F6BD9C00F6C878 /* resampler_structs.h */; }; + 95F27F7417F6DF79009E13C6 /* SigProc_FIX.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870E017F6BD9C00F6C878 /* SigProc_FIX.h */; }; + 95F27F7C17F6DF79009E13C6 /* structs.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870EA17F6BD9C00F6C878 /* structs.h */; }; + 95F27F7F17F6DF79009E13C6 /* tables.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870ED17F6BD9C00F6C878 /* tables.h */; }; + 95F27F8717F6DF79009E13C6 /* tuning_parameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870F517F6BD9C00F6C878 /* tuning_parameters.h */; }; + 95F27F8817F6DF79009E13C6 /* typedef.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870F617F6BD9C00F6C878 /* typedef.h */; }; + 95F27F8F17F6DF79009E13C6 /* opus_private.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C86C5417F6B30100F6C878 /* opus_private.h */; }; + 95F27F9617F6DFCA009E13C6 /* main_FLP.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C870A117F6BD9C00F6C878 /* main_FLP.h */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 95C873F617F6D2B200F6C878 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 95C86C4A17F6B30100F6C878 /* opus.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = opus.c; sourceTree = ""; }; + 95C86C4E17F6B30100F6C878 /* opus_decoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = opus_decoder.c; sourceTree = ""; }; + 95C86C5217F6B30100F6C878 /* opus_encoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = opus_encoder.c; sourceTree = ""; }; + 95C86C5317F6B30100F6C878 /* opus_multistream.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = opus_multistream.c; sourceTree = ""; }; + 95C86C5417F6B30100F6C878 /* opus_private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opus_private.h; sourceTree = ""; }; + 95C86C5517F6B30100F6C878 /* repacketizer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = repacketizer.c; sourceTree = ""; }; + 95C86CB117F6B35500F6C878 /* opus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opus.h; sourceTree = ""; }; + 95C86CB217F6B35500F6C878 /* opus_custom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opus_custom.h; sourceTree = ""; }; + 95C86CB317F6B35500F6C878 /* opus_defines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opus_defines.h; sourceTree = ""; }; + 95C86CB417F6B35500F6C878 /* opus_multistream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opus_multistream.h; sourceTree = ""; }; + 95C86CB517F6B35500F6C878 /* opus_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opus_types.h; sourceTree = ""; }; + 95C86DE017F6B3F700F6C878 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = ""; }; + 95C86EBC17F6BCBD00F6C878 /* Opus.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Opus.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 95C86EC617F6BCBD00F6C878 /* Opus-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Opus-Info.plist"; sourceTree = ""; }; + 95C86F0917F6BD7700F6C878 /* _kiss_fft_guts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _kiss_fft_guts.h; sourceTree = ""; }; + 95C86F0A17F6BD7700F6C878 /* arch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = arch.h; sourceTree = ""; }; + 95C86F0B17F6BD7700F6C878 /* bands.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bands.c; sourceTree = ""; }; + 95C86F0C17F6BD7700F6C878 /* bands.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bands.h; sourceTree = ""; }; + 95C86F0D17F6BD7700F6C878 /* celt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = celt.c; sourceTree = ""; }; + 95C86F0E17F6BD7700F6C878 /* celt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = celt.h; sourceTree = ""; }; + 95C86F1117F6BD7700F6C878 /* celt_lpc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = celt_lpc.c; sourceTree = ""; }; + 95C86F1217F6BD7700F6C878 /* celt_lpc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = celt_lpc.h; sourceTree = ""; }; + 95C86F1317F6BD7700F6C878 /* cwrs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cwrs.c; sourceTree = ""; }; + 95C86F1417F6BD7700F6C878 /* cwrs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cwrs.h; sourceTree = ""; }; + 95C86F1517F6BD7700F6C878 /* ecintrin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ecintrin.h; sourceTree = ""; }; + 95C86F1617F6BD7700F6C878 /* entcode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = entcode.c; sourceTree = ""; }; + 95C86F1717F6BD7700F6C878 /* entcode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = entcode.h; sourceTree = ""; }; + 95C86F1817F6BD7700F6C878 /* entdec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = entdec.c; sourceTree = ""; }; + 95C86F1917F6BD7700F6C878 /* entdec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = entdec.h; sourceTree = ""; }; + 95C86F1A17F6BD7700F6C878 /* entenc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = entenc.c; sourceTree = ""; }; + 95C86F1B17F6BD7700F6C878 /* entenc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = entenc.h; sourceTree = ""; }; + 95C86F1C17F6BD7700F6C878 /* fixed_debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fixed_debug.h; sourceTree = ""; }; + 95C86F1D17F6BD7700F6C878 /* fixed_generic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fixed_generic.h; sourceTree = ""; }; + 95C86F1E17F6BD7700F6C878 /* float_cast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = float_cast.h; sourceTree = ""; }; + 95C86F1F17F6BD7700F6C878 /* kiss_fft.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = kiss_fft.c; sourceTree = ""; }; + 95C86F2017F6BD7700F6C878 /* kiss_fft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kiss_fft.h; sourceTree = ""; }; + 95C86F2117F6BD7700F6C878 /* laplace.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = laplace.c; sourceTree = ""; }; + 95C86F2217F6BD7700F6C878 /* laplace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = laplace.h; sourceTree = ""; }; + 95C86F2317F6BD7700F6C878 /* mathops.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mathops.c; sourceTree = ""; }; + 95C86F2417F6BD7700F6C878 /* mathops.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mathops.h; sourceTree = ""; }; + 95C86F2517F6BD7700F6C878 /* mdct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mdct.c; sourceTree = ""; }; + 95C86F2617F6BD7700F6C878 /* mdct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mdct.h; sourceTree = ""; }; + 95C86F2717F6BD7700F6C878 /* mfrngcod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mfrngcod.h; sourceTree = ""; }; + 95C86F2817F6BD7700F6C878 /* modes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = modes.c; sourceTree = ""; }; + 95C86F2917F6BD7700F6C878 /* modes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = modes.h; sourceTree = ""; }; + 95C86F2B17F6BD7700F6C878 /* os_support.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = os_support.h; sourceTree = ""; }; + 95C86F2C17F6BD7700F6C878 /* pitch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pitch.c; sourceTree = ""; }; + 95C86F2D17F6BD7700F6C878 /* pitch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pitch.h; sourceTree = ""; }; + 95C86F2E17F6BD7700F6C878 /* quant_bands.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = quant_bands.c; sourceTree = ""; }; + 95C86F2F17F6BD7700F6C878 /* quant_bands.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = quant_bands.h; sourceTree = ""; }; + 95C86F3017F6BD7700F6C878 /* rate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rate.c; sourceTree = ""; }; + 95C86F3117F6BD7700F6C878 /* rate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rate.h; sourceTree = ""; }; + 95C86F3217F6BD7700F6C878 /* stack_alloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stack_alloc.h; sourceTree = ""; }; + 95C86F3317F6BD7700F6C878 /* static_modes_fixed.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = static_modes_fixed.h; sourceTree = ""; }; + 95C86F3417F6BD7700F6C878 /* static_modes_float.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = static_modes_float.h; sourceTree = ""; }; + 95C86F4717F6BD7700F6C878 /* vq.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vq.c; sourceTree = ""; }; + 95C86F4817F6BD7700F6C878 /* vq.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vq.h; sourceTree = ""; }; + 95C8701A17F6BD9B00F6C878 /* A2NLSF.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = A2NLSF.c; sourceTree = ""; }; + 95C8701B17F6BD9B00F6C878 /* ana_filt_bank_1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ana_filt_bank_1.c; sourceTree = ""; }; + 95C8701C17F6BD9B00F6C878 /* API.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = API.h; sourceTree = ""; }; + 95C8701D17F6BD9B00F6C878 /* biquad_alt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = biquad_alt.c; sourceTree = ""; }; + 95C8701E17F6BD9B00F6C878 /* bwexpander.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bwexpander.c; sourceTree = ""; }; + 95C8701F17F6BD9B00F6C878 /* bwexpander_32.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bwexpander_32.c; sourceTree = ""; }; + 95C8702017F6BD9B00F6C878 /* check_control_input.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = check_control_input.c; sourceTree = ""; }; + 95C8702117F6BD9B00F6C878 /* CNG.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = CNG.c; sourceTree = ""; }; + 95C8702217F6BD9B00F6C878 /* code_signs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = code_signs.c; sourceTree = ""; }; + 95C8702317F6BD9B00F6C878 /* control.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = control.h; sourceTree = ""; }; + 95C8702417F6BD9B00F6C878 /* control_audio_bandwidth.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = control_audio_bandwidth.c; sourceTree = ""; }; + 95C8702517F6BD9B00F6C878 /* control_codec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = control_codec.c; sourceTree = ""; }; + 95C8702617F6BD9C00F6C878 /* control_SNR.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = control_SNR.c; sourceTree = ""; }; + 95C8702717F6BD9C00F6C878 /* debug.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = debug.c; sourceTree = ""; }; + 95C8702817F6BD9C00F6C878 /* debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = debug.h; sourceTree = ""; }; + 95C8702917F6BD9C00F6C878 /* dec_API.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dec_API.c; sourceTree = ""; }; + 95C8702A17F6BD9C00F6C878 /* decode_core.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = decode_core.c; sourceTree = ""; }; + 95C8702B17F6BD9C00F6C878 /* decode_frame.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = decode_frame.c; sourceTree = ""; }; + 95C8702C17F6BD9C00F6C878 /* decode_indices.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = decode_indices.c; sourceTree = ""; }; + 95C8702D17F6BD9C00F6C878 /* decode_parameters.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = decode_parameters.c; sourceTree = ""; }; + 95C8702E17F6BD9C00F6C878 /* decode_pitch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = decode_pitch.c; sourceTree = ""; }; + 95C8702F17F6BD9C00F6C878 /* decode_pulses.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = decode_pulses.c; sourceTree = ""; }; + 95C8703017F6BD9C00F6C878 /* decoder_set_fs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = decoder_set_fs.c; sourceTree = ""; }; + 95C8703117F6BD9C00F6C878 /* define.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = define.h; sourceTree = ""; }; + 95C8703217F6BD9C00F6C878 /* enc_API.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = enc_API.c; sourceTree = ""; }; + 95C8703317F6BD9C00F6C878 /* encode_indices.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = encode_indices.c; sourceTree = ""; }; + 95C8703417F6BD9C00F6C878 /* encode_pulses.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = encode_pulses.c; sourceTree = ""; }; + 95C8703517F6BD9C00F6C878 /* errors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = errors.h; sourceTree = ""; }; + 95C8708F17F6BD9C00F6C878 /* apply_sine_window_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = apply_sine_window_FLP.c; sourceTree = ""; }; + 95C8709017F6BD9C00F6C878 /* autocorrelation_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = autocorrelation_FLP.c; sourceTree = ""; }; + 95C8709117F6BD9C00F6C878 /* burg_modified_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = burg_modified_FLP.c; sourceTree = ""; }; + 95C8709217F6BD9C00F6C878 /* bwexpander_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bwexpander_FLP.c; sourceTree = ""; }; + 95C8709317F6BD9C00F6C878 /* corrMatrix_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = corrMatrix_FLP.c; sourceTree = ""; }; + 95C8709417F6BD9C00F6C878 /* encode_frame_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = encode_frame_FLP.c; sourceTree = ""; }; + 95C8709517F6BD9C00F6C878 /* energy_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = energy_FLP.c; sourceTree = ""; }; + 95C8709617F6BD9C00F6C878 /* find_LPC_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = find_LPC_FLP.c; sourceTree = ""; }; + 95C8709717F6BD9C00F6C878 /* find_LTP_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = find_LTP_FLP.c; sourceTree = ""; }; + 95C8709817F6BD9C00F6C878 /* find_pitch_lags_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = find_pitch_lags_FLP.c; sourceTree = ""; }; + 95C8709917F6BD9C00F6C878 /* find_pred_coefs_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = find_pred_coefs_FLP.c; sourceTree = ""; }; + 95C8709A17F6BD9C00F6C878 /* inner_product_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = inner_product_FLP.c; sourceTree = ""; }; + 95C8709B17F6BD9C00F6C878 /* k2a_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = k2a_FLP.c; sourceTree = ""; }; + 95C8709C17F6BD9C00F6C878 /* levinsondurbin_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = levinsondurbin_FLP.c; sourceTree = ""; }; + 95C8709D17F6BD9C00F6C878 /* LPC_analysis_filter_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = LPC_analysis_filter_FLP.c; sourceTree = ""; }; + 95C8709E17F6BD9C00F6C878 /* LPC_inv_pred_gain_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = LPC_inv_pred_gain_FLP.c; sourceTree = ""; }; + 95C8709F17F6BD9C00F6C878 /* LTP_analysis_filter_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = LTP_analysis_filter_FLP.c; sourceTree = ""; }; + 95C870A017F6BD9C00F6C878 /* LTP_scale_ctrl_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = LTP_scale_ctrl_FLP.c; sourceTree = ""; }; + 95C870A117F6BD9C00F6C878 /* main_FLP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = main_FLP.h; sourceTree = ""; }; + 95C870A217F6BD9C00F6C878 /* noise_shape_analysis_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = noise_shape_analysis_FLP.c; sourceTree = ""; }; + 95C870A317F6BD9C00F6C878 /* pitch_analysis_core_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pitch_analysis_core_FLP.c; sourceTree = ""; }; + 95C870A417F6BD9C00F6C878 /* prefilter_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = prefilter_FLP.c; sourceTree = ""; }; + 95C870A517F6BD9C00F6C878 /* process_gains_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = process_gains_FLP.c; sourceTree = ""; }; + 95C870A617F6BD9C00F6C878 /* regularize_correlations_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = regularize_correlations_FLP.c; sourceTree = ""; }; + 95C870A717F6BD9C00F6C878 /* residual_energy_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = residual_energy_FLP.c; sourceTree = ""; }; + 95C870A817F6BD9C00F6C878 /* scale_copy_vector_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = scale_copy_vector_FLP.c; sourceTree = ""; }; + 95C870A917F6BD9C00F6C878 /* scale_vector_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = scale_vector_FLP.c; sourceTree = ""; }; + 95C870AA17F6BD9C00F6C878 /* schur_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = schur_FLP.c; sourceTree = ""; }; + 95C870AB17F6BD9C00F6C878 /* SigProc_FLP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SigProc_FLP.h; sourceTree = ""; }; + 95C870AE17F6BD9C00F6C878 /* solve_LS_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = solve_LS_FLP.c; sourceTree = ""; }; + 95C870AF17F6BD9C00F6C878 /* sort_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sort_FLP.c; sourceTree = ""; }; + 95C870B017F6BD9C00F6C878 /* structs_FLP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = structs_FLP.h; sourceTree = ""; }; + 95C870B117F6BD9C00F6C878 /* warped_autocorrelation_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = warped_autocorrelation_FLP.c; sourceTree = ""; }; + 95C870B217F6BD9C00F6C878 /* wrappers_FLP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = wrappers_FLP.c; sourceTree = ""; }; + 95C870B317F6BD9C00F6C878 /* gain_quant.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gain_quant.c; sourceTree = ""; }; + 95C870B417F6BD9C00F6C878 /* HP_variable_cutoff.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = HP_variable_cutoff.c; sourceTree = ""; }; + 95C870B517F6BD9C00F6C878 /* init_decoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = init_decoder.c; sourceTree = ""; }; + 95C870B617F6BD9C00F6C878 /* init_encoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = init_encoder.c; sourceTree = ""; }; + 95C870B717F6BD9C00F6C878 /* Inlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Inlines.h; sourceTree = ""; }; + 95C870B817F6BD9C00F6C878 /* inner_prod_aligned.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = inner_prod_aligned.c; sourceTree = ""; }; + 95C870B917F6BD9C00F6C878 /* interpolate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = interpolate.c; sourceTree = ""; }; + 95C870BA17F6BD9C00F6C878 /* lin2log.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = lin2log.c; sourceTree = ""; }; + 95C870BB17F6BD9C00F6C878 /* log2lin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = log2lin.c; sourceTree = ""; }; + 95C870BC17F6BD9C00F6C878 /* LP_variable_cutoff.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = LP_variable_cutoff.c; sourceTree = ""; }; + 95C870BD17F6BD9C00F6C878 /* LPC_analysis_filter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = LPC_analysis_filter.c; sourceTree = ""; }; + 95C870BE17F6BD9C00F6C878 /* LPC_inv_pred_gain.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = LPC_inv_pred_gain.c; sourceTree = ""; }; + 95C870BF17F6BD9C00F6C878 /* MacroCount.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MacroCount.h; sourceTree = ""; }; + 95C870C017F6BD9C00F6C878 /* MacroDebug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MacroDebug.h; sourceTree = ""; }; + 95C870C117F6BD9C00F6C878 /* macros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = macros.h; sourceTree = ""; }; + 95C870C217F6BD9C00F6C878 /* main.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = main.h; sourceTree = ""; }; + 95C870C317F6BD9C00F6C878 /* NLSF2A.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NLSF2A.c; sourceTree = ""; }; + 95C870C417F6BD9C00F6C878 /* NLSF_decode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NLSF_decode.c; sourceTree = ""; }; + 95C870C517F6BD9C00F6C878 /* NLSF_del_dec_quant.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NLSF_del_dec_quant.c; sourceTree = ""; }; + 95C870C617F6BD9C00F6C878 /* NLSF_encode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NLSF_encode.c; sourceTree = ""; }; + 95C870C717F6BD9C00F6C878 /* NLSF_stabilize.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NLSF_stabilize.c; sourceTree = ""; }; + 95C870C817F6BD9C00F6C878 /* NLSF_unpack.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NLSF_unpack.c; sourceTree = ""; }; + 95C870C917F6BD9C00F6C878 /* NLSF_VQ.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NLSF_VQ.c; sourceTree = ""; }; + 95C870CA17F6BD9C00F6C878 /* NLSF_VQ_weights_laroia.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NLSF_VQ_weights_laroia.c; sourceTree = ""; }; + 95C870CB17F6BD9C00F6C878 /* NSQ.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NSQ.c; sourceTree = ""; }; + 95C870CC17F6BD9C00F6C878 /* NSQ_del_dec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NSQ_del_dec.c; sourceTree = ""; }; + 95C870CD17F6BD9C00F6C878 /* pitch_est_defines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pitch_est_defines.h; sourceTree = ""; }; + 95C870CE17F6BD9C00F6C878 /* pitch_est_tables.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pitch_est_tables.c; sourceTree = ""; }; + 95C870CF17F6BD9C00F6C878 /* PLC.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = PLC.c; sourceTree = ""; }; + 95C870D017F6BD9C00F6C878 /* PLC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PLC.h; sourceTree = ""; }; + 95C870D117F6BD9C00F6C878 /* process_NLSFs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = process_NLSFs.c; sourceTree = ""; }; + 95C870D217F6BD9C00F6C878 /* quant_LTP_gains.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = quant_LTP_gains.c; sourceTree = ""; }; + 95C870D317F6BD9C00F6C878 /* resampler.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = resampler.c; sourceTree = ""; }; + 95C870D417F6BD9C00F6C878 /* resampler_down2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = resampler_down2.c; sourceTree = ""; }; + 95C870D517F6BD9C00F6C878 /* resampler_down2_3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = resampler_down2_3.c; sourceTree = ""; }; + 95C870D617F6BD9C00F6C878 /* resampler_private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = resampler_private.h; sourceTree = ""; }; + 95C870D717F6BD9C00F6C878 /* resampler_private_AR2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = resampler_private_AR2.c; sourceTree = ""; }; + 95C870D817F6BD9C00F6C878 /* resampler_private_down_FIR.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = resampler_private_down_FIR.c; sourceTree = ""; }; + 95C870D917F6BD9C00F6C878 /* resampler_private_IIR_FIR.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = resampler_private_IIR_FIR.c; sourceTree = ""; }; + 95C870DA17F6BD9C00F6C878 /* resampler_private_up2_HQ.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = resampler_private_up2_HQ.c; sourceTree = ""; }; + 95C870DB17F6BD9C00F6C878 /* resampler_rom.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = resampler_rom.c; sourceTree = ""; }; + 95C870DC17F6BD9C00F6C878 /* resampler_rom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = resampler_rom.h; sourceTree = ""; }; + 95C870DD17F6BD9C00F6C878 /* resampler_structs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = resampler_structs.h; sourceTree = ""; }; + 95C870DE17F6BD9C00F6C878 /* shell_coder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = shell_coder.c; sourceTree = ""; }; + 95C870DF17F6BD9C00F6C878 /* sigm_Q15.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sigm_Q15.c; sourceTree = ""; }; + 95C870E017F6BD9C00F6C878 /* SigProc_FIX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SigProc_FIX.h; sourceTree = ""; }; + 95C870E317F6BD9C00F6C878 /* sort.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sort.c; sourceTree = ""; }; + 95C870E417F6BD9C00F6C878 /* stereo_decode_pred.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stereo_decode_pred.c; sourceTree = ""; }; + 95C870E517F6BD9C00F6C878 /* stereo_encode_pred.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stereo_encode_pred.c; sourceTree = ""; }; + 95C870E617F6BD9C00F6C878 /* stereo_find_predictor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stereo_find_predictor.c; sourceTree = ""; }; + 95C870E717F6BD9C00F6C878 /* stereo_LR_to_MS.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stereo_LR_to_MS.c; sourceTree = ""; }; + 95C870E817F6BD9C00F6C878 /* stereo_MS_to_LR.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stereo_MS_to_LR.c; sourceTree = ""; }; + 95C870E917F6BD9C00F6C878 /* stereo_quant_pred.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stereo_quant_pred.c; sourceTree = ""; }; + 95C870EA17F6BD9C00F6C878 /* structs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = structs.h; sourceTree = ""; }; + 95C870EB17F6BD9C00F6C878 /* sum_sqr_shift.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sum_sqr_shift.c; sourceTree = ""; }; + 95C870EC17F6BD9C00F6C878 /* table_LSF_cos.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = table_LSF_cos.c; sourceTree = ""; }; + 95C870ED17F6BD9C00F6C878 /* tables.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tables.h; sourceTree = ""; }; + 95C870EE17F6BD9C00F6C878 /* tables_gain.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tables_gain.c; sourceTree = ""; }; + 95C870EF17F6BD9C00F6C878 /* tables_LTP.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tables_LTP.c; sourceTree = ""; }; + 95C870F017F6BD9C00F6C878 /* tables_NLSF_CB_NB_MB.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tables_NLSF_CB_NB_MB.c; sourceTree = ""; }; + 95C870F117F6BD9C00F6C878 /* tables_NLSF_CB_WB.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tables_NLSF_CB_WB.c; sourceTree = ""; }; + 95C870F217F6BD9C00F6C878 /* tables_other.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tables_other.c; sourceTree = ""; }; + 95C870F317F6BD9C00F6C878 /* tables_pitch_lag.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tables_pitch_lag.c; sourceTree = ""; }; + 95C870F417F6BD9C00F6C878 /* tables_pulses_per_block.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tables_pulses_per_block.c; sourceTree = ""; }; + 95C870F517F6BD9C00F6C878 /* tuning_parameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tuning_parameters.h; sourceTree = ""; }; + 95C870F617F6BD9C00F6C878 /* typedef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = typedef.h; sourceTree = ""; }; + 95C870F717F6BD9C00F6C878 /* VAD.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = VAD.c; sourceTree = ""; }; + 95C870F817F6BD9D00F6C878 /* VQ_WMat_EC.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = VQ_WMat_EC.c; sourceTree = ""; }; + 95C873F817F6D2B200F6C878 /* libopus.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libopus.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 95F27DF517F6DEA0009E13C6 /* Opus.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Opus.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 95F27DF817F6DEA0009E13C6 /* Opus_ios-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Opus_ios-Info.plist"; path = "Opus_ios/Opus_ios-Info.plist"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 95C86EB817F6BCBD00F6C878 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95C873F517F6D2B200F6C878 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95F27DEF17F6DEA0009E13C6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 95C86C1717F6B2A100F6C878 = { + isa = PBXGroup; + children = ( + 95C86C2517F6B2A100F6C878 /* Opus */, + 95C86C2117F6B2A100F6C878 /* Products */, + ); + sourceTree = ""; + }; + 95C86C2117F6B2A100F6C878 /* Products */ = { + isa = PBXGroup; + children = ( + 95C86EBC17F6BCBD00F6C878 /* Opus.framework */, + 95C873F817F6D2B200F6C878 /* libopus.a */, + 95F27DF517F6DEA0009E13C6 /* Opus.framework */, + ); + name = Products; + sourceTree = ""; + }; + 95C86C2517F6B2A100F6C878 /* Opus */ = { + isa = PBXGroup; + children = ( + 95C86DE017F6B3F700F6C878 /* config.h */, + 95C86EF617F6BD7700F6C878 /* celt */, + 95C86CB017F6B35500F6C878 /* include */, + 95C86FCC17F6BD9B00F6C878 /* silk */, + 95C86C4917F6B30100F6C878 /* src */, + 95C86EC517F6BCBD00F6C878 /* Supporting Files */, + ); + path = Opus; + sourceTree = ""; + }; + 95C86C4917F6B30100F6C878 /* src */ = { + isa = PBXGroup; + children = ( + 95C86C4A17F6B30100F6C878 /* opus.c */, + 95C86C4E17F6B30100F6C878 /* opus_decoder.c */, + 95C86C5217F6B30100F6C878 /* opus_encoder.c */, + 95C86C5317F6B30100F6C878 /* opus_multistream.c */, + 95C86C5417F6B30100F6C878 /* opus_private.h */, + 95C86C5517F6B30100F6C878 /* repacketizer.c */, + ); + name = src; + path = "../../libopus-src/src"; + sourceTree = ""; + }; + 95C86CB017F6B35500F6C878 /* include */ = { + isa = PBXGroup; + children = ( + 95C86CB117F6B35500F6C878 /* opus.h */, + 95C86CB217F6B35500F6C878 /* opus_custom.h */, + 95C86CB317F6B35500F6C878 /* opus_defines.h */, + 95C86CB417F6B35500F6C878 /* opus_multistream.h */, + 95C86CB517F6B35500F6C878 /* opus_types.h */, + ); + name = include; + path = "../../libopus-src/include"; + sourceTree = ""; + }; + 95C86EC517F6BCBD00F6C878 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 95F27DF817F6DEA0009E13C6 /* Opus_ios-Info.plist */, + 95C86EC617F6BCBD00F6C878 /* Opus-Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 95C86EF617F6BD7700F6C878 /* celt */ = { + isa = PBXGroup; + children = ( + 95C86F0917F6BD7700F6C878 /* _kiss_fft_guts.h */, + 95C86F0A17F6BD7700F6C878 /* arch.h */, + 95C86F0B17F6BD7700F6C878 /* bands.c */, + 95C86F0C17F6BD7700F6C878 /* bands.h */, + 95C86F0D17F6BD7700F6C878 /* celt.c */, + 95C86F0E17F6BD7700F6C878 /* celt.h */, + 95C86F1117F6BD7700F6C878 /* celt_lpc.c */, + 95C86F1217F6BD7700F6C878 /* celt_lpc.h */, + 95C86F1317F6BD7700F6C878 /* cwrs.c */, + 95C86F1417F6BD7700F6C878 /* cwrs.h */, + 95C86F1517F6BD7700F6C878 /* ecintrin.h */, + 95C86F1617F6BD7700F6C878 /* entcode.c */, + 95C86F1717F6BD7700F6C878 /* entcode.h */, + 95C86F1817F6BD7700F6C878 /* entdec.c */, + 95C86F1917F6BD7700F6C878 /* entdec.h */, + 95C86F1A17F6BD7700F6C878 /* entenc.c */, + 95C86F1B17F6BD7700F6C878 /* entenc.h */, + 95C86F1C17F6BD7700F6C878 /* fixed_debug.h */, + 95C86F1D17F6BD7700F6C878 /* fixed_generic.h */, + 95C86F1E17F6BD7700F6C878 /* float_cast.h */, + 95C86F1F17F6BD7700F6C878 /* kiss_fft.c */, + 95C86F2017F6BD7700F6C878 /* kiss_fft.h */, + 95C86F2117F6BD7700F6C878 /* laplace.c */, + 95C86F2217F6BD7700F6C878 /* laplace.h */, + 95C86F2317F6BD7700F6C878 /* mathops.c */, + 95C86F2417F6BD7700F6C878 /* mathops.h */, + 95C86F2517F6BD7700F6C878 /* mdct.c */, + 95C86F2617F6BD7700F6C878 /* mdct.h */, + 95C86F2717F6BD7700F6C878 /* mfrngcod.h */, + 95C86F2817F6BD7700F6C878 /* modes.c */, + 95C86F2917F6BD7700F6C878 /* modes.h */, + 95C86F2B17F6BD7700F6C878 /* os_support.h */, + 95C86F2C17F6BD7700F6C878 /* pitch.c */, + 95C86F2D17F6BD7700F6C878 /* pitch.h */, + 95C86F2E17F6BD7700F6C878 /* quant_bands.c */, + 95C86F2F17F6BD7700F6C878 /* quant_bands.h */, + 95C86F3017F6BD7700F6C878 /* rate.c */, + 95C86F3117F6BD7700F6C878 /* rate.h */, + 95C86F3217F6BD7700F6C878 /* stack_alloc.h */, + 95C86F3317F6BD7700F6C878 /* static_modes_fixed.h */, + 95C86F3417F6BD7700F6C878 /* static_modes_float.h */, + 95C86F4717F6BD7700F6C878 /* vq.c */, + 95C86F4817F6BD7700F6C878 /* vq.h */, + ); + name = celt; + path = "../../libopus-src/celt"; + sourceTree = ""; + }; + 95C86FCC17F6BD9B00F6C878 /* silk */ = { + isa = PBXGroup; + children = ( + 95C8701A17F6BD9B00F6C878 /* A2NLSF.c */, + 95C8701B17F6BD9B00F6C878 /* ana_filt_bank_1.c */, + 95C8701C17F6BD9B00F6C878 /* API.h */, + 95C8701D17F6BD9B00F6C878 /* biquad_alt.c */, + 95C8701E17F6BD9B00F6C878 /* bwexpander.c */, + 95C8701F17F6BD9B00F6C878 /* bwexpander_32.c */, + 95C8702017F6BD9B00F6C878 /* check_control_input.c */, + 95C8702117F6BD9B00F6C878 /* CNG.c */, + 95C8702217F6BD9B00F6C878 /* code_signs.c */, + 95C8702317F6BD9B00F6C878 /* control.h */, + 95C8702417F6BD9B00F6C878 /* control_audio_bandwidth.c */, + 95C8702517F6BD9B00F6C878 /* control_codec.c */, + 95C8702617F6BD9C00F6C878 /* control_SNR.c */, + 95C8702717F6BD9C00F6C878 /* debug.c */, + 95C8702817F6BD9C00F6C878 /* debug.h */, + 95C8702917F6BD9C00F6C878 /* dec_API.c */, + 95C8702A17F6BD9C00F6C878 /* decode_core.c */, + 95C8702B17F6BD9C00F6C878 /* decode_frame.c */, + 95C8702C17F6BD9C00F6C878 /* decode_indices.c */, + 95C8702D17F6BD9C00F6C878 /* decode_parameters.c */, + 95C8702E17F6BD9C00F6C878 /* decode_pitch.c */, + 95C8702F17F6BD9C00F6C878 /* decode_pulses.c */, + 95C8703017F6BD9C00F6C878 /* decoder_set_fs.c */, + 95C8703117F6BD9C00F6C878 /* define.h */, + 95C8703217F6BD9C00F6C878 /* enc_API.c */, + 95C8703317F6BD9C00F6C878 /* encode_indices.c */, + 95C8703417F6BD9C00F6C878 /* encode_pulses.c */, + 95C8703517F6BD9C00F6C878 /* errors.h */, + 95C8706E17F6BD9C00F6C878 /* float */, + 95C870B317F6BD9C00F6C878 /* gain_quant.c */, + 95C870B417F6BD9C00F6C878 /* HP_variable_cutoff.c */, + 95C870B517F6BD9C00F6C878 /* init_decoder.c */, + 95C870B617F6BD9C00F6C878 /* init_encoder.c */, + 95C870B717F6BD9C00F6C878 /* Inlines.h */, + 95C870B817F6BD9C00F6C878 /* inner_prod_aligned.c */, + 95C870B917F6BD9C00F6C878 /* interpolate.c */, + 95C870BA17F6BD9C00F6C878 /* lin2log.c */, + 95C870BB17F6BD9C00F6C878 /* log2lin.c */, + 95C870BC17F6BD9C00F6C878 /* LP_variable_cutoff.c */, + 95C870BD17F6BD9C00F6C878 /* LPC_analysis_filter.c */, + 95C870BE17F6BD9C00F6C878 /* LPC_inv_pred_gain.c */, + 95C870BF17F6BD9C00F6C878 /* MacroCount.h */, + 95C870C017F6BD9C00F6C878 /* MacroDebug.h */, + 95C870C117F6BD9C00F6C878 /* macros.h */, + 95C870C217F6BD9C00F6C878 /* main.h */, + 95C870C317F6BD9C00F6C878 /* NLSF2A.c */, + 95C870C417F6BD9C00F6C878 /* NLSF_decode.c */, + 95C870C517F6BD9C00F6C878 /* NLSF_del_dec_quant.c */, + 95C870C617F6BD9C00F6C878 /* NLSF_encode.c */, + 95C870C717F6BD9C00F6C878 /* NLSF_stabilize.c */, + 95C870C817F6BD9C00F6C878 /* NLSF_unpack.c */, + 95C870C917F6BD9C00F6C878 /* NLSF_VQ.c */, + 95C870CA17F6BD9C00F6C878 /* NLSF_VQ_weights_laroia.c */, + 95C870CB17F6BD9C00F6C878 /* NSQ.c */, + 95C870CC17F6BD9C00F6C878 /* NSQ_del_dec.c */, + 95C870CD17F6BD9C00F6C878 /* pitch_est_defines.h */, + 95C870CE17F6BD9C00F6C878 /* pitch_est_tables.c */, + 95C870CF17F6BD9C00F6C878 /* PLC.c */, + 95C870D017F6BD9C00F6C878 /* PLC.h */, + 95C870D117F6BD9C00F6C878 /* process_NLSFs.c */, + 95C870D217F6BD9C00F6C878 /* quant_LTP_gains.c */, + 95C870D317F6BD9C00F6C878 /* resampler.c */, + 95C870D417F6BD9C00F6C878 /* resampler_down2.c */, + 95C870D517F6BD9C00F6C878 /* resampler_down2_3.c */, + 95C870D617F6BD9C00F6C878 /* resampler_private.h */, + 95C870D717F6BD9C00F6C878 /* resampler_private_AR2.c */, + 95C870D817F6BD9C00F6C878 /* resampler_private_down_FIR.c */, + 95C870D917F6BD9C00F6C878 /* resampler_private_IIR_FIR.c */, + 95C870DA17F6BD9C00F6C878 /* resampler_private_up2_HQ.c */, + 95C870DB17F6BD9C00F6C878 /* resampler_rom.c */, + 95C870DC17F6BD9C00F6C878 /* resampler_rom.h */, + 95C870DD17F6BD9C00F6C878 /* resampler_structs.h */, + 95C870DE17F6BD9C00F6C878 /* shell_coder.c */, + 95C870DF17F6BD9C00F6C878 /* sigm_Q15.c */, + 95C870E017F6BD9C00F6C878 /* SigProc_FIX.h */, + 95C870E317F6BD9C00F6C878 /* sort.c */, + 95C870E417F6BD9C00F6C878 /* stereo_decode_pred.c */, + 95C870E517F6BD9C00F6C878 /* stereo_encode_pred.c */, + 95C870E617F6BD9C00F6C878 /* stereo_find_predictor.c */, + 95C870E717F6BD9C00F6C878 /* stereo_LR_to_MS.c */, + 95C870E817F6BD9C00F6C878 /* stereo_MS_to_LR.c */, + 95C870E917F6BD9C00F6C878 /* stereo_quant_pred.c */, + 95C870EA17F6BD9C00F6C878 /* structs.h */, + 95C870EB17F6BD9C00F6C878 /* sum_sqr_shift.c */, + 95C870EC17F6BD9C00F6C878 /* table_LSF_cos.c */, + 95C870ED17F6BD9C00F6C878 /* tables.h */, + 95C870EE17F6BD9C00F6C878 /* tables_gain.c */, + 95C870EF17F6BD9C00F6C878 /* tables_LTP.c */, + 95C870F017F6BD9C00F6C878 /* tables_NLSF_CB_NB_MB.c */, + 95C870F117F6BD9C00F6C878 /* tables_NLSF_CB_WB.c */, + 95C870F217F6BD9C00F6C878 /* tables_other.c */, + 95C870F317F6BD9C00F6C878 /* tables_pitch_lag.c */, + 95C870F417F6BD9C00F6C878 /* tables_pulses_per_block.c */, + 95C870F517F6BD9C00F6C878 /* tuning_parameters.h */, + 95C870F617F6BD9C00F6C878 /* typedef.h */, + 95C870F717F6BD9C00F6C878 /* VAD.c */, + 95C870F817F6BD9D00F6C878 /* VQ_WMat_EC.c */, + ); + name = silk; + path = "../../libopus-src/silk"; + sourceTree = ""; + }; + 95C8706E17F6BD9C00F6C878 /* float */ = { + isa = PBXGroup; + children = ( + 95C8708F17F6BD9C00F6C878 /* apply_sine_window_FLP.c */, + 95C8709017F6BD9C00F6C878 /* autocorrelation_FLP.c */, + 95C8709117F6BD9C00F6C878 /* burg_modified_FLP.c */, + 95C8709217F6BD9C00F6C878 /* bwexpander_FLP.c */, + 95C8709317F6BD9C00F6C878 /* corrMatrix_FLP.c */, + 95C8709417F6BD9C00F6C878 /* encode_frame_FLP.c */, + 95C8709517F6BD9C00F6C878 /* energy_FLP.c */, + 95C8709617F6BD9C00F6C878 /* find_LPC_FLP.c */, + 95C8709717F6BD9C00F6C878 /* find_LTP_FLP.c */, + 95C8709817F6BD9C00F6C878 /* find_pitch_lags_FLP.c */, + 95C8709917F6BD9C00F6C878 /* find_pred_coefs_FLP.c */, + 95C8709A17F6BD9C00F6C878 /* inner_product_FLP.c */, + 95C8709B17F6BD9C00F6C878 /* k2a_FLP.c */, + 95C8709C17F6BD9C00F6C878 /* levinsondurbin_FLP.c */, + 95C8709D17F6BD9C00F6C878 /* LPC_analysis_filter_FLP.c */, + 95C8709E17F6BD9C00F6C878 /* LPC_inv_pred_gain_FLP.c */, + 95C8709F17F6BD9C00F6C878 /* LTP_analysis_filter_FLP.c */, + 95C870A017F6BD9C00F6C878 /* LTP_scale_ctrl_FLP.c */, + 95C870A117F6BD9C00F6C878 /* main_FLP.h */, + 95C870A217F6BD9C00F6C878 /* noise_shape_analysis_FLP.c */, + 95C870A317F6BD9C00F6C878 /* pitch_analysis_core_FLP.c */, + 95C870A417F6BD9C00F6C878 /* prefilter_FLP.c */, + 95C870A517F6BD9C00F6C878 /* process_gains_FLP.c */, + 95C870A617F6BD9C00F6C878 /* regularize_correlations_FLP.c */, + 95C870A717F6BD9C00F6C878 /* residual_energy_FLP.c */, + 95C870A817F6BD9C00F6C878 /* scale_copy_vector_FLP.c */, + 95C870A917F6BD9C00F6C878 /* scale_vector_FLP.c */, + 95C870AA17F6BD9C00F6C878 /* schur_FLP.c */, + 95C870AB17F6BD9C00F6C878 /* SigProc_FLP.h */, + 95C870AE17F6BD9C00F6C878 /* solve_LS_FLP.c */, + 95C870AF17F6BD9C00F6C878 /* sort_FLP.c */, + 95C870B017F6BD9C00F6C878 /* structs_FLP.h */, + 95C870B117F6BD9C00F6C878 /* warped_autocorrelation_FLP.c */, + 95C870B217F6BD9C00F6C878 /* wrappers_FLP.c */, + ); + path = float; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 95C86EB917F6BCBD00F6C878 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 95C8715817F6BD9D00F6C878 /* control.h in Headers */, + 95C86F6F17F6BD7700F6C878 /* cwrs.h in Headers */, + 95C86F7917F6BD7700F6C878 /* entdec.h in Headers */, + 95C86FAF17F6BD7700F6C878 /* static_modes_float.h in Headers */, + 95C86F5B17F6BD7700F6C878 /* _kiss_fft_guts.h in Headers */, + 95C86EEF17F6BCFE00F6C878 /* opus.h in Headers */, + 95C86F9517F6BD7700F6C878 /* mfrngcod.h in Headers */, + 95C872A017F6BD9D00F6C878 /* structs.h in Headers */, + 95C86EF017F6BCFE00F6C878 /* opus_defines.h in Headers */, + 95C86FA517F6BD7700F6C878 /* quant_bands.h in Headers */, + 95C8724C17F6BD9D00F6C878 /* MacroCount.h in Headers */, + 95C8728E17F6BD9D00F6C878 /* SigProc_FIX.h in Headers */, + 95C86F6117F6BD7700F6C878 /* bands.h in Headers */, + 95C86F7517F6BD7700F6C878 /* entcode.h in Headers */, + 95C872B617F6BD9D00F6C878 /* tuning_parameters.h in Headers */, + 95C8717417F6BD9D00F6C878 /* define.h in Headers */, + 95C86F9D17F6BD7700F6C878 /* os_support.h in Headers */, + 95C86FA917F6BD7700F6C878 /* rate.h in Headers */, + 95C86EF117F6BCFE00F6C878 /* opus_multistream.h in Headers */, + 95C8722617F6BD9D00F6C878 /* SigProc_FLP.h in Headers */, + 95C86F5D17F6BD7700F6C878 /* arch.h in Headers */, + 95C86F8717F6BD7700F6C878 /* kiss_fft.h in Headers */, + 95C8717C17F6BD9D00F6C878 /* errors.h in Headers */, + 95C86F7F17F6BD7700F6C878 /* fixed_debug.h in Headers */, + 95C86F6B17F6BD7700F6C878 /* celt_lpc.h in Headers */, + 95C8726817F6BD9D00F6C878 /* pitch_est_defines.h in Headers */, + 95C8725217F6BD9D00F6C878 /* main.h in Headers */, + 95C8728617F6BD9D00F6C878 /* resampler_rom.h in Headers */, + 95C86FCB17F6BD7700F6C878 /* vq.h in Headers */, + 95C8728817F6BD9D00F6C878 /* resampler_structs.h in Headers */, + 95C86F9317F6BD7700F6C878 /* mdct.h in Headers */, + 95C86FAB17F6BD7700F6C878 /* stack_alloc.h in Headers */, + 95C86EF217F6BCFE00F6C878 /* opus_types.h in Headers */, + 95C86FA117F6BD7700F6C878 /* pitch.h in Headers */, + 95C8721217F6BD9D00F6C878 /* main_FLP.h in Headers */, + 95C86F8F17F6BD7700F6C878 /* mathops.h in Headers */, + 95C86F8B17F6BD7700F6C878 /* laplace.h in Headers */, + 95C8723C17F6BD9D00F6C878 /* Inlines.h in Headers */, + 95C8725017F6BD9D00F6C878 /* macros.h in Headers */, + 95C8727A17F6BD9D00F6C878 /* resampler_private.h in Headers */, + 95C8716217F6BD9D00F6C878 /* debug.h in Headers */, + 95C86FAD17F6BD7700F6C878 /* static_modes_fixed.h in Headers */, + 95C8724E17F6BD9D00F6C878 /* MacroDebug.h in Headers */, + 95C86F8117F6BD7700F6C878 /* fixed_generic.h in Headers */, + 95C872B817F6BD9D00F6C878 /* typedef.h in Headers */, + 95C86EF517F6BD0B00F6C878 /* opus_private.h in Headers */, + 95C8714A17F6BD9D00F6C878 /* API.h in Headers */, + 95C872A617F6BD9D00F6C878 /* tables.h in Headers */, + 95C86F7D17F6BD7700F6C878 /* entenc.h in Headers */, + 95C86F7117F6BD7700F6C878 /* ecintrin.h in Headers */, + 95C8722E17F6BD9D00F6C878 /* structs_FLP.h in Headers */, + 95C86F8317F6BD7700F6C878 /* float_cast.h in Headers */, + 95C8726E17F6BD9D00F6C878 /* PLC.h in Headers */, + 95C86F6517F6BD7700F6C878 /* celt.h in Headers */, + 95C86F9917F6BD7700F6C878 /* modes.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95C874DA17F6D43700F6C878 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 95C8759717F6D4CB00F6C878 /* opus.h in Headers */, + 95C8759817F6D4CB00F6C878 /* opus_defines.h in Headers */, + 95C8759917F6D4CB00F6C878 /* opus_multistream.h in Headers */, + 95C8759A17F6D4CB00F6C878 /* opus_types.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95F27DF017F6DEA0009E13C6 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 95F27ED817F6DF71009E13C6 /* opus.h in Headers */, + 95F27ED917F6DF71009E13C6 /* opus_defines.h in Headers */, + 95F27EDA17F6DF71009E13C6 /* opus_multistream.h in Headers */, + 95F27EDB17F6DF71009E13C6 /* opus_types.h in Headers */, + 95F27F9617F6DFCA009E13C6 /* main_FLP.h in Headers */, + 95F27EDC17F6DF79009E13C6 /* config.h in Headers */, + 95F27EDD17F6DF79009E13C6 /* _kiss_fft_guts.h in Headers */, + 95F27EDE17F6DF79009E13C6 /* arch.h in Headers */, + 95F27EE017F6DF79009E13C6 /* bands.h in Headers */, + 95F27EE217F6DF79009E13C6 /* celt.h in Headers */, + 95F27EE417F6DF79009E13C6 /* celt_lpc.h in Headers */, + 95F27EE617F6DF79009E13C6 /* cwrs.h in Headers */, + 95F27EE717F6DF79009E13C6 /* ecintrin.h in Headers */, + 95F27EE917F6DF79009E13C6 /* entcode.h in Headers */, + 95F27EEB17F6DF79009E13C6 /* entdec.h in Headers */, + 95F27EED17F6DF79009E13C6 /* entenc.h in Headers */, + 95F27EEE17F6DF79009E13C6 /* fixed_debug.h in Headers */, + 95F27EEF17F6DF79009E13C6 /* fixed_generic.h in Headers */, + 95F27EF017F6DF79009E13C6 /* float_cast.h in Headers */, + 95F27EF217F6DF79009E13C6 /* kiss_fft.h in Headers */, + 95F27EF417F6DF79009E13C6 /* laplace.h in Headers */, + 95F27EF617F6DF79009E13C6 /* mathops.h in Headers */, + 95F27EF817F6DF79009E13C6 /* mdct.h in Headers */, + 95F27EF917F6DF79009E13C6 /* mfrngcod.h in Headers */, + 95F27EFB17F6DF79009E13C6 /* modes.h in Headers */, + 95F27EFC17F6DF79009E13C6 /* os_support.h in Headers */, + 95F27EFE17F6DF79009E13C6 /* pitch.h in Headers */, + 95F27F0017F6DF79009E13C6 /* quant_bands.h in Headers */, + 95F27F0217F6DF79009E13C6 /* rate.h in Headers */, + 95F27F0317F6DF79009E13C6 /* stack_alloc.h in Headers */, + 95F27F0417F6DF79009E13C6 /* static_modes_fixed.h in Headers */, + 95F27F0517F6DF79009E13C6 /* static_modes_float.h in Headers */, + 95F27F0717F6DF79009E13C6 /* vq.h in Headers */, + 95F27F0817F6DF79009E13C6 /* opus_custom.h in Headers */, + 95F27F0B17F6DF79009E13C6 /* API.h in Headers */, + 95F27F1217F6DF79009E13C6 /* control.h in Headers */, + 95F27F1717F6DF79009E13C6 /* debug.h in Headers */, + 95F27F2017F6DF79009E13C6 /* define.h in Headers */, + 95F27F2417F6DF79009E13C6 /* errors.h in Headers */, + 95F27F4117F6DF79009E13C6 /* SigProc_FLP.h in Headers */, + 95F27F4417F6DF79009E13C6 /* structs_FLP.h in Headers */, + 95F27F4B17F6DF79009E13C6 /* Inlines.h in Headers */, + 95F27F5317F6DF79009E13C6 /* MacroCount.h in Headers */, + 95F27F5417F6DF79009E13C6 /* MacroDebug.h in Headers */, + 95F27F5517F6DF79009E13C6 /* macros.h in Headers */, + 95F27F5617F6DF79009E13C6 /* main.h in Headers */, + 95F27F6117F6DF79009E13C6 /* pitch_est_defines.h in Headers */, + 95F27F6417F6DF79009E13C6 /* PLC.h in Headers */, + 95F27F6A17F6DF79009E13C6 /* resampler_private.h in Headers */, + 95F27F7017F6DF79009E13C6 /* resampler_rom.h in Headers */, + 95F27F7117F6DF79009E13C6 /* resampler_structs.h in Headers */, + 95F27F7417F6DF79009E13C6 /* SigProc_FIX.h in Headers */, + 95F27F7C17F6DF79009E13C6 /* structs.h in Headers */, + 95F27F7F17F6DF79009E13C6 /* tables.h in Headers */, + 95F27F8717F6DF79009E13C6 /* tuning_parameters.h in Headers */, + 95F27F8817F6DF79009E13C6 /* typedef.h in Headers */, + 95F27F8F17F6DF79009E13C6 /* opus_private.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 95C86EBB17F6BCBD00F6C878 /* Opus */ = { + isa = PBXNativeTarget; + buildConfigurationList = 95C86EE117F6BCBD00F6C878 /* Build configuration list for PBXNativeTarget "Opus" */; + buildPhases = ( + 95C86EB717F6BCBD00F6C878 /* Sources */, + 95C86EB817F6BCBD00F6C878 /* Frameworks */, + 95C86EB917F6BCBD00F6C878 /* Headers */, + 95C86EBA17F6BCBD00F6C878 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Opus; + productName = Opus; + productReference = 95C86EBC17F6BCBD00F6C878 /* Opus.framework */; + productType = "com.apple.product-type.framework"; + }; + 95C873F717F6D2B200F6C878 /* opus */ = { + isa = PBXNativeTarget; + buildConfigurationList = 95C8741817F6D2B200F6C878 /* Build configuration list for PBXNativeTarget "opus" */; + buildPhases = ( + 95C873F417F6D2B200F6C878 /* Sources */, + 95C873F517F6D2B200F6C878 /* Frameworks */, + 95C873F617F6D2B200F6C878 /* CopyFiles */, + 95C874DA17F6D43700F6C878 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = opus; + productName = opus; + productReference = 95C873F817F6D2B200F6C878 /* libopus.a */; + productType = "com.apple.product-type.library.static"; + }; + 95F27DF417F6DEA0009E13C6 /* Opus_ios */ = { + isa = PBXNativeTarget; + buildConfigurationList = 95F27E1817F6DEA1009E13C6 /* Build configuration list for PBXNativeTarget "Opus_ios" */; + buildPhases = ( + 95F27DED17F6DEA0009E13C6 /* ShellScript */, + 95F27DEE17F6DEA0009E13C6 /* Sources */, + 95F27DEF17F6DEA0009E13C6 /* Frameworks */, + 95F27DF017F6DEA0009E13C6 /* Headers */, + 95F27DF117F6DEA0009E13C6 /* Resources */, + 95F27DF217F6DEA0009E13C6 /* ShellScript */, + 95F27DF317F6DEA0009E13C6 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Opus_ios; + productName = Opus_ios; + productReference = 95F27DF517F6DEA0009E13C6 /* Opus.framework */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 95C86C1817F6B2A100F6C878 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0500; + ORGANIZATIONNAME = "Arthur Evstifeev"; + }; + buildConfigurationList = 95C86C1B17F6B2A100F6C878 /* Build configuration list for PBXProject "Opus" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 95C86C1717F6B2A100F6C878; + productRefGroup = 95C86C2117F6B2A100F6C878 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 95C86EBB17F6BCBD00F6C878 /* Opus */, + 95C873F717F6D2B200F6C878 /* opus */, + 95F27DF417F6DEA0009E13C6 /* Opus_ios */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 95C86EBA17F6BCBD00F6C878 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95F27DF117F6DEA0009E13C6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 95F27DED17F6DEA0009E13C6 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nset +u\nif [[ $UFW_MASTER_SCRIPT_RUNNING ]]\nthen\n # Nothing for the slave script to do\n exit 0\nfi\nset -u\n\nif [[ \"$SDK_NAME\" =~ ([A-Za-z]+) ]]\nthen\n UFW_SDK_PLATFORM=${BASH_REMATCH[1]}\nelse\n echo \"Could not find platform name from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$SDK_NAME\" =~ ([0-9]+.*$) ]]\nthen\n\tUFW_SDK_VERSION=${BASH_REMATCH[1]}\nelse\n echo \"Could not find sdk version from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$UFW_SDK_PLATFORM\" = \"iphoneos\" ]]\nthen\n UFW_OTHER_PLATFORM=iphonesimulator\nelse\n UFW_OTHER_PLATFORM=iphoneos\nfi\n\nif [[ \"$BUILT_PRODUCTS_DIR\" =~ (.*)$UFW_SDK_PLATFORM$ ]]\nthen\n UFW_OTHER_BUILT_PRODUCTS_DIR=\"${BASH_REMATCH[1]}${UFW_OTHER_PLATFORM}\"\nelse\n echo \"Could not find $UFW_SDK_PLATFORM in $BUILT_PRODUCTS_DIR\"\n exit 1\nfi\n\n\n# Short-circuit if all binaries are up to date\n\nif [[ -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]] && \\\n [[ -f \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]] && \\\n [[ ! \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -nt \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]]\n [[ -f \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]] && \\\n [[ -f \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]] && \\\n [[ ! \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -nt \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]]\nthen\n exit 0\nfi\n\n\n# Clean other platform if needed\n\nif [[ ! -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]]\nthen\n\techo \"Platform \\\"$UFW_SDK_PLATFORM\\\" was cleaned recently. Cleaning \\\"$UFW_OTHER_PLATFORM\\\" as well\"\n\techo xcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" clean\n\txcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" clean\nfi\n\n\n# Make sure we are building from fresh binaries\n\nrm -rf \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\nrm -rf \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\nrm -rf \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\nrm -rf \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\n"; + }; + 95F27DF217F6DEA0009E13C6 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "HEADERS_ROOT=$SRCROOT/$PRODUCT_NAME\nFRAMEWORK_HEADERS_DIR=\"$BUILT_PRODUCTS_DIR/$WRAPPER_NAME/Versions/$FRAMEWORK_VERSION/Headers\"\n\n## only header files expected at this point\nPUBLIC_HEADERS=$(find $FRAMEWORK_HEADERS_DIR/. -not -type d 2> /dev/null | sed -e \"s@.*/@@g\")\n\nFIND_OPTS=\"\"\nfor PUBLIC_HEADER in $PUBLIC_HEADERS; do\n if [ -n \"$FIND_OPTS\" ]; then\n FIND_OPTS=\"$FIND_OPTS -o\"\n fi\n FIND_OPTS=\"$FIND_OPTS -name '$PUBLIC_HEADER'\"\ndone\n\nif [ -n \"$FIND_OPTS\" ]; then\n for ORIG_HEADER in $(eval \"find $HEADERS_ROOT/. $FIND_OPTS\" 2> /dev/null | sed -e \"s@^$HEADERS_ROOT/./@@g\"); do\n PUBLIC_HEADER=$(basename $ORIG_HEADER)\n RELATIVE_PATH=$(dirname $ORIG_HEADER)\n if [ -e $FRAMEWORK_HEADERS_DIR/$PUBLIC_HEADER ]; then\n mkdir -p \"$FRAMEWORK_HEADERS_DIR/$RELATIVE_PATH\"\n mv \"$FRAMEWORK_HEADERS_DIR/$PUBLIC_HEADER\" \"$FRAMEWORK_HEADERS_DIR/$RELATIVE_PATH/$PUBLIC_HEADER\"\n fi\n done\nfi\n"; + }; + 95F27DF317F6DEA0009E13C6 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nset +u\nif [[ $UFW_MASTER_SCRIPT_RUNNING ]]\nthen\n # Nothing for the slave script to do\n exit 0\nfi\nset -u\nexport UFW_MASTER_SCRIPT_RUNNING=1\n\n\n# Functions\n\n## List files in the specified directory, storing to the specified array.\n#\n# @param $1 The path to list\n# @param $2 The name of the array to fill\n#\n##\nlist_files ()\n{\n filelist=$(ls \"$1\")\n while read line\n do\n eval \"$2[\\${#$2[*]}]=\\\"\\$line\\\"\"\n done <<< \"$filelist\"\n}\n\n\n# Sanity check\n\nif [[ ! -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]]\nthen\n echo \"Framework target \\\"${TARGET_NAME}\\\" had no source files to build from. Make sure your source files have the correct target membership\"\n exit 1\nfi\n\n\n# Gather information\n\nif [[ \"$SDK_NAME\" =~ ([A-Za-z]+) ]]\nthen\n UFW_SDK_PLATFORM=${BASH_REMATCH[1]}\nelse\n echo \"Could not find platform name from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$SDK_NAME\" =~ ([0-9]+.*$) ]]\nthen\n UFW_SDK_VERSION=${BASH_REMATCH[1]}\nelse\n echo \"Could not find sdk version from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$UFW_SDK_PLATFORM\" = \"iphoneos\" ]]\nthen\n UFW_OTHER_PLATFORM=iphonesimulator\nelse\n UFW_OTHER_PLATFORM=iphoneos\nfi\n\nif [[ \"$BUILT_PRODUCTS_DIR\" =~ (.*)$UFW_SDK_PLATFORM$ ]]\nthen\n UFW_OTHER_BUILT_PRODUCTS_DIR=\"${BASH_REMATCH[1]}${UFW_OTHER_PLATFORM}\"\nelse\n echo \"Could not find $UFW_SDK_PLATFORM in $BUILT_PRODUCTS_DIR\"\n exit 1\nfi\n\n\n# Short-circuit if all binaries are up to date.\n# We already checked the other platform in the prerun script.\n\nif [[ -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]] && [[ -f \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]] && [[ ! \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -nt \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]]\nthen\n exit 0\nfi\n\n\n# Make sure the other platform gets built\n\necho \"Build other platform\"\n\necho xcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" $ACTION\nxcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" $ACTION\n\n\n# Build the fat static library binary\n\necho \"Create universal static library\"\n\nif [[ \"$XCODE_VERSION_MAJOR\" = \"0500\" ]]\nthen\n echo \"$DT_TOOLCHAIN_DIR/usr/bin/libtool\" -static \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -o \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\"\n \"$DT_TOOLCHAIN_DIR/usr/bin/libtool\" -static \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -o \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\"\nelse\n echo \"$PLATFORM_DEVELOPER_BIN_DIR/libtool\" -static \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -o \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\"\n \"$PLATFORM_DEVELOPER_BIN_DIR/libtool\" -static \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -o \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\"\nfi \n\necho mv \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\" \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\nmv \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\" \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\n\n\n# Build framework structure\n\necho \"Build symlinks\"\n\necho ln -sfh $FRAMEWORK_VERSION \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Versions/Current\"\nln -sfh $FRAMEWORK_VERSION \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Versions/Current\"\necho ln -sfh Versions/Current/Headers \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Headers\"\nln -sfh Versions/Current/Headers \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Headers\"\necho ln -sfh Versions/Current/Resources \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Resources\"\nln -sfh Versions/Current/Resources \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Resources\"\necho ln -sfh \"Versions/Current/${EXECUTABLE_NAME}\" \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${EXECUTABLE_NAME}\"\nln -sfh \"Versions/Current/${EXECUTABLE_NAME}\" \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${EXECUTABLE_NAME}\"\n\n\n# Link to binary for unit tests\n\nmkdir -p \"${BUILT_PRODUCTS_DIR}/.fake_fw_testing.framework\"\nln -sfh \"../${WRAPPER_NAME}/${EXECUTABLE_NAME}\" \"${BUILT_PRODUCTS_DIR}/.fake_fw_testing.framework/.fake_fw_testing\"\n\n\n# Build embedded framework structure\n\necho \"Build Embedded Framework\"\n\necho rm -rf \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\nrm -rf \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\necho mkdir -p \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources\"\nmkdir -p \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources\"\necho cp -a \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/\"\ncp -a \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/\"\n\ndeclare -a UFW_FILE_LIST\nlist_files \"${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\" UFW_FILE_LIST\nfor filename in \"${UFW_FILE_LIST[@]}\"\ndo\n if [[ \"${filename}\" != \"Info.plist\" ]] && [[ ! \"${filename}\" =~ .*\\.lproj$ ]]\n then\n echo ln -sfh \"../${WRAPPER_NAME}/Resources/${filename}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources/${filename}\"\n ln -sfh \"../${WRAPPER_NAME}/Resources/${filename}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources/${filename}\"\n fi\ndone\n\n\n# Replace other platform's framework with a copy of this one (so that both have the same universal binary)\n\necho \"Copy from $UFW_SDK_PLATFORM to $UFW_OTHER_PLATFORM\"\n\necho rm -rf \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\nrm -rf \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\necho cp -a \"${BUILD_DIR}/${CONFIGURATION}-${UFW_SDK_PLATFORM}\" \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\ncp -a \"${BUILD_DIR}/${CONFIGURATION}-${UFW_SDK_PLATFORM}\" \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 95C86EB717F6BCBD00F6C878 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 95C8727217F6BD9D00F6C878 /* quant_LTP_gains.c in Sources */, + 95C872AC17F6BD9D00F6C878 /* tables_NLSF_CB_NB_MB.c in Sources */, + 95C8727C17F6BD9D00F6C878 /* resampler_private_AR2.c in Sources */, + 95C8725617F6BD9D00F6C878 /* NLSF_decode.c in Sources */, + 95C8724417F6BD9D00F6C878 /* log2lin.c in Sources */, + 95C872B417F6BD9D00F6C878 /* tables_pulses_per_block.c in Sources */, + 95C86F8D17F6BD7700F6C878 /* mathops.c in Sources */, + 95C871EE17F6BD9D00F6C878 /* apply_sine_window_FLP.c in Sources */, + 95C8729417F6BD9D00F6C878 /* stereo_decode_pred.c in Sources */, + 95C8715E17F6BD9D00F6C878 /* control_SNR.c in Sources */, + 95C8723217F6BD9D00F6C878 /* wrappers_FLP.c in Sources */, + 95C8725817F6BD9D00F6C878 /* NLSF_del_dec_quant.c in Sources */, + 95C871FC17F6BD9D00F6C878 /* find_LPC_FLP.c in Sources */, + 95C8729C17F6BD9D00F6C878 /* stereo_MS_to_LR.c in Sources */, + 95C8723A17F6BD9D00F6C878 /* init_encoder.c in Sources */, + 95C8729817F6BD9D00F6C878 /* stereo_find_predictor.c in Sources */, + 95C872A417F6BD9D00F6C878 /* table_LSF_cos.c in Sources */, + 95C8727E17F6BD9D00F6C878 /* resampler_private_down_FIR.c in Sources */, + 95C8726617F6BD9D00F6C878 /* NSQ_del_dec.c in Sources */, + 95C8720817F6BD9D00F6C878 /* levinsondurbin_FLP.c in Sources */, + 95C8723617F6BD9D00F6C878 /* HP_variable_cutoff.c in Sources */, + 95C86FA317F6BD7700F6C878 /* quant_bands.c in Sources */, + 95C8716617F6BD9D00F6C878 /* decode_core.c in Sources */, + 95C8714E17F6BD9D00F6C878 /* bwexpander.c in Sources */, + 95C8722417F6BD9D00F6C878 /* schur_FLP.c in Sources */, + 95C86EE717F6BCEA00F6C878 /* opus.c in Sources */, + 95C8721817F6BD9D00F6C878 /* prefilter_FLP.c in Sources */, + 95C8715A17F6BD9D00F6C878 /* control_audio_bandwidth.c in Sources */, + 95C871F617F6BD9D00F6C878 /* corrMatrix_FLP.c in Sources */, + 95C86FA717F6BD7700F6C878 /* rate.c in Sources */, + 95C872BC17F6BD9D00F6C878 /* VQ_WMat_EC.c in Sources */, + 95C8721A17F6BD9D00F6C878 /* process_gains_FLP.c in Sources */, + 95C8721617F6BD9D00F6C878 /* pitch_analysis_core_FLP.c in Sources */, + 95C8716417F6BD9D00F6C878 /* dec_API.c in Sources */, + 95C8727417F6BD9D00F6C878 /* resampler.c in Sources */, + 95C8728A17F6BD9D00F6C878 /* shell_coder.c in Sources */, + 95C8723817F6BD9D00F6C878 /* init_decoder.c in Sources */, + 95C8717A17F6BD9D00F6C878 /* encode_pulses.c in Sources */, + 95C8727617F6BD9D00F6C878 /* resampler_down2.c in Sources */, + 95C8725417F6BD9D00F6C878 /* NLSF2A.c in Sources */, + 95C8720217F6BD9D00F6C878 /* find_pred_coefs_FLP.c in Sources */, + 95C8715617F6BD9D00F6C878 /* code_signs.c in Sources */, + 95C8717217F6BD9D00F6C878 /* decoder_set_fs.c in Sources */, + 95C86F9117F6BD7700F6C878 /* mdct.c in Sources */, + 95C8727017F6BD9D00F6C878 /* process_NLSFs.c in Sources */, + 95C8714617F6BD9D00F6C878 /* A2NLSF.c in Sources */, + 95C8726417F6BD9D00F6C878 /* NSQ.c in Sources */, + 95C871FE17F6BD9D00F6C878 /* find_LTP_FLP.c in Sources */, + 95C8721417F6BD9D00F6C878 /* noise_shape_analysis_FLP.c in Sources */, + 95C8720617F6BD9D00F6C878 /* k2a_FLP.c in Sources */, + 95C8717817F6BD9D00F6C878 /* encode_indices.c in Sources */, + 95C8716017F6BD9D00F6C878 /* debug.c in Sources */, + 95C8717617F6BD9D00F6C878 /* enc_API.c in Sources */, + 95C8722C17F6BD9D00F6C878 /* sort_FLP.c in Sources */, + 95C8714C17F6BD9D00F6C878 /* biquad_alt.c in Sources */, + 95C872A217F6BD9D00F6C878 /* sum_sqr_shift.c in Sources */, + 95C8723017F6BD9D00F6C878 /* warped_autocorrelation_FLP.c in Sources */, + 95C8726A17F6BD9D00F6C878 /* pitch_est_tables.c in Sources */, + 95C86F7717F6BD7700F6C878 /* entdec.c in Sources */, + 95C86EE917F6BCEA00F6C878 /* opus_decoder.c in Sources */, + 95C872A817F6BD9D00F6C878 /* tables_gain.c in Sources */, + 95C8721E17F6BD9D00F6C878 /* residual_energy_FLP.c in Sources */, + 95C8724817F6BD9D00F6C878 /* LPC_analysis_filter.c in Sources */, + 95C86F8517F6BD7700F6C878 /* kiss_fft.c in Sources */, + 95C86F7317F6BD7700F6C878 /* entcode.c in Sources */, + 95C8723E17F6BD9D00F6C878 /* inner_prod_aligned.c in Sources */, + 95C8722A17F6BD9D00F6C878 /* solve_LS_FLP.c in Sources */, + 95C8726217F6BD9D00F6C878 /* NLSF_VQ_weights_laroia.c in Sources */, + 95C8716C17F6BD9D00F6C878 /* decode_parameters.c in Sources */, + 95C8728417F6BD9D00F6C878 /* resampler_rom.c in Sources */, + 95C8727817F6BD9D00F6C878 /* resampler_down2_3.c in Sources */, + 95C8725C17F6BD9D00F6C878 /* NLSF_stabilize.c in Sources */, + 95C86F9717F6BD7700F6C878 /* modes.c in Sources */, + 95C871F417F6BD9D00F6C878 /* bwexpander_FLP.c in Sources */, + 95C8716A17F6BD9D00F6C878 /* decode_indices.c in Sources */, + 95C8715C17F6BD9D00F6C878 /* control_codec.c in Sources */, + 95C8715417F6BD9D00F6C878 /* CNG.c in Sources */, + 95C871F017F6BD9D00F6C878 /* autocorrelation_FLP.c in Sources */, + 95C8720417F6BD9D00F6C878 /* inner_product_FLP.c in Sources */, + 95C8724217F6BD9D00F6C878 /* lin2log.c in Sources */, + 95C8724617F6BD9D00F6C878 /* LP_variable_cutoff.c in Sources */, + 95C8715017F6BD9D00F6C878 /* bwexpander_32.c in Sources */, + 95C8726C17F6BD9D00F6C878 /* PLC.c in Sources */, + 95C86F6917F6BD7700F6C878 /* celt_lpc.c in Sources */, + 95C8722217F6BD9D00F6C878 /* scale_vector_FLP.c in Sources */, + 95C8728C17F6BD9D00F6C878 /* sigm_Q15.c in Sources */, + 95C86F7B17F6BD7700F6C878 /* entenc.c in Sources */, + 95C8714817F6BD9D00F6C878 /* ana_filt_bank_1.c in Sources */, + 95C86FC917F6BD7700F6C878 /* vq.c in Sources */, + 95C8725E17F6BD9D00F6C878 /* NLSF_unpack.c in Sources */, + 95C8729E17F6BD9D00F6C878 /* stereo_quant_pred.c in Sources */, + 95C8729A17F6BD9D00F6C878 /* stereo_LR_to_MS.c in Sources */, + 95C872B217F6BD9D00F6C878 /* tables_pitch_lag.c in Sources */, + 95C8728217F6BD9D00F6C878 /* resampler_private_up2_HQ.c in Sources */, + 95C8728017F6BD9D00F6C878 /* resampler_private_IIR_FIR.c in Sources */, + 95C8729617F6BD9D00F6C878 /* stereo_encode_pred.c in Sources */, + 95C8723417F6BD9D00F6C878 /* gain_quant.c in Sources */, + 95C86EEB17F6BCEA00F6C878 /* opus_encoder.c in Sources */, + 95C8722017F6BD9D00F6C878 /* scale_copy_vector_FLP.c in Sources */, + 95C86F6317F6BD7700F6C878 /* celt.c in Sources */, + 95C86EEC17F6BCEA00F6C878 /* opus_multistream.c in Sources */, + 95C8724A17F6BD9D00F6C878 /* LPC_inv_pred_gain.c in Sources */, + 95C86F5F17F6BD7700F6C878 /* bands.c in Sources */, + 95C86F9F17F6BD7700F6C878 /* pitch.c in Sources */, + 95C8720A17F6BD9D00F6C878 /* LPC_analysis_filter_FLP.c in Sources */, + 95C8717017F6BD9D00F6C878 /* decode_pulses.c in Sources */, + 95C8716E17F6BD9D00F6C878 /* decode_pitch.c in Sources */, + 95C8726017F6BD9D00F6C878 /* NLSF_VQ.c in Sources */, + 95C872BA17F6BD9D00F6C878 /* VAD.c in Sources */, + 95C86EED17F6BCEA00F6C878 /* repacketizer.c in Sources */, + 95C86F8917F6BD7700F6C878 /* laplace.c in Sources */, + 95C86F6D17F6BD7700F6C878 /* cwrs.c in Sources */, + 95C8716817F6BD9D00F6C878 /* decode_frame.c in Sources */, + 95C871F217F6BD9D00F6C878 /* burg_modified_FLP.c in Sources */, + 95C872AA17F6BD9D00F6C878 /* tables_LTP.c in Sources */, + 95C8721017F6BD9D00F6C878 /* LTP_scale_ctrl_FLP.c in Sources */, + 95C871FA17F6BD9D00F6C878 /* energy_FLP.c in Sources */, + 95C8720017F6BD9D00F6C878 /* find_pitch_lags_FLP.c in Sources */, + 95C8720E17F6BD9D00F6C878 /* LTP_analysis_filter_FLP.c in Sources */, + 95C8715217F6BD9D00F6C878 /* check_control_input.c in Sources */, + 95C872AE17F6BD9D00F6C878 /* tables_NLSF_CB_WB.c in Sources */, + 95C8720C17F6BD9D00F6C878 /* LPC_inv_pred_gain_FLP.c in Sources */, + 95C872B017F6BD9D00F6C878 /* tables_other.c in Sources */, + 95C871F817F6BD9D00F6C878 /* encode_frame_FLP.c in Sources */, + 95C8725A17F6BD9D00F6C878 /* NLSF_encode.c in Sources */, + 95C8729217F6BD9D00F6C878 /* sort.c in Sources */, + 95C8721C17F6BD9D00F6C878 /* regularize_correlations_FLP.c in Sources */, + 95C8724017F6BD9D00F6C878 /* interpolate.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95C873F417F6D2B200F6C878 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 95C8742117F6D42700F6C878 /* bands.c in Sources */, + 95C8742317F6D42700F6C878 /* celt.c in Sources */, + 95C8742517F6D42700F6C878 /* celt_lpc.c in Sources */, + 95C8742717F6D42700F6C878 /* cwrs.c in Sources */, + 95C8742A17F6D42700F6C878 /* entcode.c in Sources */, + 95C8742C17F6D42700F6C878 /* entdec.c in Sources */, + 95C8742E17F6D42700F6C878 /* entenc.c in Sources */, + 95C8743317F6D42700F6C878 /* kiss_fft.c in Sources */, + 95C8743517F6D42700F6C878 /* laplace.c in Sources */, + 95C8743717F6D42700F6C878 /* mathops.c in Sources */, + 95C8743917F6D42700F6C878 /* mdct.c in Sources */, + 95C8743C17F6D42700F6C878 /* modes.c in Sources */, + 95C8743F17F6D42700F6C878 /* pitch.c in Sources */, + 95C8744117F6D42700F6C878 /* quant_bands.c in Sources */, + 95C8744317F6D42700F6C878 /* rate.c in Sources */, + 95C8744817F6D42700F6C878 /* vq.c in Sources */, + 95C8744F17F6D42700F6C878 /* A2NLSF.c in Sources */, + 95C8745017F6D42700F6C878 /* ana_filt_bank_1.c in Sources */, + 95C8745217F6D42700F6C878 /* biquad_alt.c in Sources */, + 95C8745317F6D42700F6C878 /* bwexpander.c in Sources */, + 95C8745417F6D42700F6C878 /* bwexpander_32.c in Sources */, + 95C8745517F6D42700F6C878 /* check_control_input.c in Sources */, + 95C8745617F6D42700F6C878 /* CNG.c in Sources */, + 95C8745717F6D42700F6C878 /* code_signs.c in Sources */, + 95C8745917F6D42700F6C878 /* control_audio_bandwidth.c in Sources */, + 95C8745A17F6D42700F6C878 /* control_codec.c in Sources */, + 95C8745B17F6D42700F6C878 /* control_SNR.c in Sources */, + 95C8745C17F6D42700F6C878 /* debug.c in Sources */, + 95C8745E17F6D42700F6C878 /* dec_API.c in Sources */, + 95C8745F17F6D42700F6C878 /* decode_core.c in Sources */, + 95C8746017F6D42700F6C878 /* decode_frame.c in Sources */, + 95C8746117F6D42700F6C878 /* decode_indices.c in Sources */, + 95C8746217F6D42700F6C878 /* decode_parameters.c in Sources */, + 95C8746317F6D42700F6C878 /* decode_pitch.c in Sources */, + 95C8746417F6D42700F6C878 /* decode_pulses.c in Sources */, + 95C8746517F6D42700F6C878 /* decoder_set_fs.c in Sources */, + 95C8746717F6D42700F6C878 /* enc_API.c in Sources */, + 95C8746817F6D42700F6C878 /* encode_indices.c in Sources */, + 95C8746917F6D42700F6C878 /* encode_pulses.c in Sources */, + 95C8746B17F6D42700F6C878 /* apply_sine_window_FLP.c in Sources */, + 95C8746C17F6D42700F6C878 /* autocorrelation_FLP.c in Sources */, + 95C8746D17F6D42700F6C878 /* burg_modified_FLP.c in Sources */, + 95C8746E17F6D42700F6C878 /* bwexpander_FLP.c in Sources */, + 95C8746F17F6D42700F6C878 /* corrMatrix_FLP.c in Sources */, + 95C8747017F6D42700F6C878 /* encode_frame_FLP.c in Sources */, + 95C8747117F6D42700F6C878 /* energy_FLP.c in Sources */, + 95C8747217F6D42700F6C878 /* find_LPC_FLP.c in Sources */, + 95C8747317F6D42700F6C878 /* find_LTP_FLP.c in Sources */, + 95C8747417F6D42700F6C878 /* find_pitch_lags_FLP.c in Sources */, + 95C8747517F6D42700F6C878 /* find_pred_coefs_FLP.c in Sources */, + 95C8747617F6D42700F6C878 /* inner_product_FLP.c in Sources */, + 95C8747717F6D42700F6C878 /* k2a_FLP.c in Sources */, + 95C8747817F6D42700F6C878 /* levinsondurbin_FLP.c in Sources */, + 95C8747917F6D42700F6C878 /* LPC_analysis_filter_FLP.c in Sources */, + 95C8747A17F6D42700F6C878 /* LPC_inv_pred_gain_FLP.c in Sources */, + 95C8747B17F6D42700F6C878 /* LTP_analysis_filter_FLP.c in Sources */, + 95C8747C17F6D42700F6C878 /* LTP_scale_ctrl_FLP.c in Sources */, + 95C8747E17F6D42700F6C878 /* noise_shape_analysis_FLP.c in Sources */, + 95C8747F17F6D42700F6C878 /* pitch_analysis_core_FLP.c in Sources */, + 95C8748017F6D42700F6C878 /* prefilter_FLP.c in Sources */, + 95C8748117F6D42700F6C878 /* process_gains_FLP.c in Sources */, + 95C8748217F6D42700F6C878 /* regularize_correlations_FLP.c in Sources */, + 95C8748317F6D42700F6C878 /* residual_energy_FLP.c in Sources */, + 95C8748417F6D42700F6C878 /* scale_copy_vector_FLP.c in Sources */, + 95C8748517F6D42700F6C878 /* scale_vector_FLP.c in Sources */, + 95C8748617F6D42700F6C878 /* schur_FLP.c in Sources */, + 95C8748817F6D42700F6C878 /* solve_LS_FLP.c in Sources */, + 95C8748917F6D42700F6C878 /* sort_FLP.c in Sources */, + 95C8748B17F6D42700F6C878 /* warped_autocorrelation_FLP.c in Sources */, + 95C8748C17F6D42700F6C878 /* wrappers_FLP.c in Sources */, + 95C8748D17F6D42700F6C878 /* gain_quant.c in Sources */, + 95C8748E17F6D42700F6C878 /* HP_variable_cutoff.c in Sources */, + 95C8748F17F6D42700F6C878 /* init_decoder.c in Sources */, + 95C8749017F6D42700F6C878 /* init_encoder.c in Sources */, + 95C8749217F6D42700F6C878 /* inner_prod_aligned.c in Sources */, + 95C8749317F6D42700F6C878 /* interpolate.c in Sources */, + 95C8749417F6D42700F6C878 /* lin2log.c in Sources */, + 95C8749517F6D42700F6C878 /* log2lin.c in Sources */, + 95C8749617F6D42700F6C878 /* LP_variable_cutoff.c in Sources */, + 95C8749717F6D42700F6C878 /* LPC_analysis_filter.c in Sources */, + 95C8749817F6D42700F6C878 /* LPC_inv_pred_gain.c in Sources */, + 95C8749D17F6D42700F6C878 /* NLSF2A.c in Sources */, + 95C8749E17F6D42700F6C878 /* NLSF_decode.c in Sources */, + 95C8749F17F6D42700F6C878 /* NLSF_del_dec_quant.c in Sources */, + 95C874A017F6D42700F6C878 /* NLSF_encode.c in Sources */, + 95C874A117F6D42700F6C878 /* NLSF_stabilize.c in Sources */, + 95C874A217F6D42700F6C878 /* NLSF_unpack.c in Sources */, + 95C874A317F6D42700F6C878 /* NLSF_VQ.c in Sources */, + 95C874A417F6D42700F6C878 /* NLSF_VQ_weights_laroia.c in Sources */, + 95C874A517F6D42700F6C878 /* NSQ.c in Sources */, + 95C874A617F6D42700F6C878 /* NSQ_del_dec.c in Sources */, + 95C874A817F6D42700F6C878 /* pitch_est_tables.c in Sources */, + 95C874A917F6D42700F6C878 /* PLC.c in Sources */, + 95C874AB17F6D42700F6C878 /* process_NLSFs.c in Sources */, + 95C874AC17F6D42700F6C878 /* quant_LTP_gains.c in Sources */, + 95C874AD17F6D42700F6C878 /* resampler.c in Sources */, + 95C874AE17F6D42700F6C878 /* resampler_down2.c in Sources */, + 95C874AF17F6D42700F6C878 /* resampler_down2_3.c in Sources */, + 95C874B117F6D42700F6C878 /* resampler_private_AR2.c in Sources */, + 95C874B217F6D42700F6C878 /* resampler_private_down_FIR.c in Sources */, + 95C874B317F6D42700F6C878 /* resampler_private_IIR_FIR.c in Sources */, + 95C874B417F6D42700F6C878 /* resampler_private_up2_HQ.c in Sources */, + 95C874B517F6D42700F6C878 /* resampler_rom.c in Sources */, + 95C874B817F6D42700F6C878 /* shell_coder.c in Sources */, + 95C874B917F6D42700F6C878 /* sigm_Q15.c in Sources */, + 95C874BB17F6D42700F6C878 /* sort.c in Sources */, + 95C874BC17F6D42700F6C878 /* stereo_decode_pred.c in Sources */, + 95C874BD17F6D42700F6C878 /* stereo_encode_pred.c in Sources */, + 95C874BE17F6D42700F6C878 /* stereo_find_predictor.c in Sources */, + 95C874BF17F6D42700F6C878 /* stereo_LR_to_MS.c in Sources */, + 95C874C017F6D42700F6C878 /* stereo_MS_to_LR.c in Sources */, + 95C874C117F6D42700F6C878 /* stereo_quant_pred.c in Sources */, + 95C874C317F6D42700F6C878 /* sum_sqr_shift.c in Sources */, + 95C874C417F6D42700F6C878 /* table_LSF_cos.c in Sources */, + 95C874C617F6D42700F6C878 /* tables_gain.c in Sources */, + 95C874C717F6D42700F6C878 /* tables_LTP.c in Sources */, + 95C874C817F6D42700F6C878 /* tables_NLSF_CB_NB_MB.c in Sources */, + 95C874C917F6D42700F6C878 /* tables_NLSF_CB_WB.c in Sources */, + 95C874CA17F6D42700F6C878 /* tables_other.c in Sources */, + 95C874CB17F6D42700F6C878 /* tables_pitch_lag.c in Sources */, + 95C874CC17F6D42700F6C878 /* tables_pulses_per_block.c in Sources */, + 95C874CF17F6D42700F6C878 /* VAD.c in Sources */, + 95C874D017F6D42700F6C878 /* VQ_WMat_EC.c in Sources */, + 95C874D117F6D42700F6C878 /* opus.c in Sources */, + 95C874D217F6D42700F6C878 /* opus_decoder.c in Sources */, + 95C874D317F6D42700F6C878 /* opus_encoder.c in Sources */, + 95C874D417F6D42700F6C878 /* opus_multistream.c in Sources */, + 95C874D617F6D42700F6C878 /* repacketizer.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95F27DEE17F6DEA0009E13C6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 95F27E1D17F6DF15009E13C6 /* bands.c in Sources */, + 95F27E1F17F6DF15009E13C6 /* celt.c in Sources */, + 95F27E2117F6DF15009E13C6 /* celt_lpc.c in Sources */, + 95F27E2317F6DF15009E13C6 /* cwrs.c in Sources */, + 95F27E2617F6DF15009E13C6 /* entcode.c in Sources */, + 95F27E2817F6DF15009E13C6 /* entdec.c in Sources */, + 95F27E2A17F6DF15009E13C6 /* entenc.c in Sources */, + 95F27E2F17F6DF15009E13C6 /* kiss_fft.c in Sources */, + 95F27E3117F6DF15009E13C6 /* laplace.c in Sources */, + 95F27E3317F6DF15009E13C6 /* mathops.c in Sources */, + 95F27E3517F6DF15009E13C6 /* mdct.c in Sources */, + 95F27E3817F6DF15009E13C6 /* modes.c in Sources */, + 95F27E3B17F6DF15009E13C6 /* pitch.c in Sources */, + 95F27E3D17F6DF15009E13C6 /* quant_bands.c in Sources */, + 95F27E3F17F6DF15009E13C6 /* rate.c in Sources */, + 95F27E4417F6DF15009E13C6 /* vq.c in Sources */, + 95F27E4B17F6DF15009E13C6 /* A2NLSF.c in Sources */, + 95F27E4C17F6DF15009E13C6 /* ana_filt_bank_1.c in Sources */, + 95F27E4E17F6DF15009E13C6 /* biquad_alt.c in Sources */, + 95F27E4F17F6DF15009E13C6 /* bwexpander.c in Sources */, + 95F27E5017F6DF15009E13C6 /* bwexpander_32.c in Sources */, + 95F27E5117F6DF15009E13C6 /* check_control_input.c in Sources */, + 95F27E5217F6DF15009E13C6 /* CNG.c in Sources */, + 95F27E5317F6DF15009E13C6 /* code_signs.c in Sources */, + 95F27E5517F6DF15009E13C6 /* control_audio_bandwidth.c in Sources */, + 95F27E5617F6DF15009E13C6 /* control_codec.c in Sources */, + 95F27E5717F6DF15009E13C6 /* control_SNR.c in Sources */, + 95F27E5817F6DF15009E13C6 /* debug.c in Sources */, + 95F27E5A17F6DF15009E13C6 /* dec_API.c in Sources */, + 95F27E5B17F6DF15009E13C6 /* decode_core.c in Sources */, + 95F27E5C17F6DF15009E13C6 /* decode_frame.c in Sources */, + 95F27E5D17F6DF15009E13C6 /* decode_indices.c in Sources */, + 95F27E5E17F6DF15009E13C6 /* decode_parameters.c in Sources */, + 95F27E5F17F6DF15009E13C6 /* decode_pitch.c in Sources */, + 95F27E6017F6DF15009E13C6 /* decode_pulses.c in Sources */, + 95F27E6117F6DF15009E13C6 /* decoder_set_fs.c in Sources */, + 95F27E6317F6DF15009E13C6 /* enc_API.c in Sources */, + 95F27E6417F6DF15009E13C6 /* encode_indices.c in Sources */, + 95F27E6517F6DF15009E13C6 /* encode_pulses.c in Sources */, + 95F27E6717F6DF15009E13C6 /* apply_sine_window_FLP.c in Sources */, + 95F27E6817F6DF15009E13C6 /* autocorrelation_FLP.c in Sources */, + 95F27E6917F6DF15009E13C6 /* burg_modified_FLP.c in Sources */, + 95F27E6A17F6DF15009E13C6 /* bwexpander_FLP.c in Sources */, + 95F27E6B17F6DF15009E13C6 /* corrMatrix_FLP.c in Sources */, + 95F27E6C17F6DF15009E13C6 /* encode_frame_FLP.c in Sources */, + 95F27E6D17F6DF15009E13C6 /* energy_FLP.c in Sources */, + 95F27E6E17F6DF15009E13C6 /* find_LPC_FLP.c in Sources */, + 95F27E6F17F6DF15009E13C6 /* find_LTP_FLP.c in Sources */, + 95F27E7017F6DF15009E13C6 /* find_pitch_lags_FLP.c in Sources */, + 95F27E7117F6DF15009E13C6 /* find_pred_coefs_FLP.c in Sources */, + 95F27E7217F6DF15009E13C6 /* inner_product_FLP.c in Sources */, + 95F27E7317F6DF15009E13C6 /* k2a_FLP.c in Sources */, + 95F27E7417F6DF15009E13C6 /* levinsondurbin_FLP.c in Sources */, + 95F27E7517F6DF15009E13C6 /* LPC_analysis_filter_FLP.c in Sources */, + 95F27E7617F6DF15009E13C6 /* LPC_inv_pred_gain_FLP.c in Sources */, + 95F27E7717F6DF15009E13C6 /* LTP_analysis_filter_FLP.c in Sources */, + 95F27E7817F6DF15009E13C6 /* LTP_scale_ctrl_FLP.c in Sources */, + 95F27E7A17F6DF15009E13C6 /* noise_shape_analysis_FLP.c in Sources */, + 95F27E7B17F6DF15009E13C6 /* pitch_analysis_core_FLP.c in Sources */, + 95F27E7C17F6DF15009E13C6 /* prefilter_FLP.c in Sources */, + 95F27E7D17F6DF15009E13C6 /* process_gains_FLP.c in Sources */, + 95F27E7E17F6DF15009E13C6 /* regularize_correlations_FLP.c in Sources */, + 95F27E7F17F6DF15009E13C6 /* residual_energy_FLP.c in Sources */, + 95F27E8017F6DF15009E13C6 /* scale_copy_vector_FLP.c in Sources */, + 95F27E8117F6DF15009E13C6 /* scale_vector_FLP.c in Sources */, + 95F27E8217F6DF15009E13C6 /* schur_FLP.c in Sources */, + 95F27E8417F6DF15009E13C6 /* solve_LS_FLP.c in Sources */, + 95F27E8517F6DF15009E13C6 /* sort_FLP.c in Sources */, + 95F27E8717F6DF15009E13C6 /* warped_autocorrelation_FLP.c in Sources */, + 95F27E8817F6DF15009E13C6 /* wrappers_FLP.c in Sources */, + 95F27E8917F6DF15009E13C6 /* gain_quant.c in Sources */, + 95F27E8A17F6DF15009E13C6 /* HP_variable_cutoff.c in Sources */, + 95F27E8B17F6DF15009E13C6 /* init_decoder.c in Sources */, + 95F27E8C17F6DF15009E13C6 /* init_encoder.c in Sources */, + 95F27E8E17F6DF15009E13C6 /* inner_prod_aligned.c in Sources */, + 95F27E8F17F6DF15009E13C6 /* interpolate.c in Sources */, + 95F27E9017F6DF15009E13C6 /* lin2log.c in Sources */, + 95F27E9117F6DF15009E13C6 /* log2lin.c in Sources */, + 95F27E9217F6DF15009E13C6 /* LP_variable_cutoff.c in Sources */, + 95F27E9317F6DF15009E13C6 /* LPC_analysis_filter.c in Sources */, + 95F27E9417F6DF15009E13C6 /* LPC_inv_pred_gain.c in Sources */, + 95F27E9917F6DF15009E13C6 /* NLSF2A.c in Sources */, + 95F27E9A17F6DF15009E13C6 /* NLSF_decode.c in Sources */, + 95F27E9B17F6DF15009E13C6 /* NLSF_del_dec_quant.c in Sources */, + 95F27E9C17F6DF16009E13C6 /* NLSF_encode.c in Sources */, + 95F27E9D17F6DF16009E13C6 /* NLSF_stabilize.c in Sources */, + 95F27E9E17F6DF16009E13C6 /* NLSF_unpack.c in Sources */, + 95F27E9F17F6DF16009E13C6 /* NLSF_VQ.c in Sources */, + 95F27EA017F6DF16009E13C6 /* NLSF_VQ_weights_laroia.c in Sources */, + 95F27EA117F6DF16009E13C6 /* NSQ.c in Sources */, + 95F27EA217F6DF16009E13C6 /* NSQ_del_dec.c in Sources */, + 95F27EA417F6DF16009E13C6 /* pitch_est_tables.c in Sources */, + 95F27EA517F6DF16009E13C6 /* PLC.c in Sources */, + 95F27EA717F6DF16009E13C6 /* process_NLSFs.c in Sources */, + 95F27EA817F6DF16009E13C6 /* quant_LTP_gains.c in Sources */, + 95F27EA917F6DF16009E13C6 /* resampler.c in Sources */, + 95F27EAA17F6DF16009E13C6 /* resampler_down2.c in Sources */, + 95F27EAB17F6DF16009E13C6 /* resampler_down2_3.c in Sources */, + 95F27EAD17F6DF16009E13C6 /* resampler_private_AR2.c in Sources */, + 95F27EAE17F6DF16009E13C6 /* resampler_private_down_FIR.c in Sources */, + 95F27EAF17F6DF16009E13C6 /* resampler_private_IIR_FIR.c in Sources */, + 95F27EB017F6DF16009E13C6 /* resampler_private_up2_HQ.c in Sources */, + 95F27EB117F6DF16009E13C6 /* resampler_rom.c in Sources */, + 95F27EB417F6DF16009E13C6 /* shell_coder.c in Sources */, + 95F27EB517F6DF16009E13C6 /* sigm_Q15.c in Sources */, + 95F27EB717F6DF16009E13C6 /* sort.c in Sources */, + 95F27EB817F6DF16009E13C6 /* stereo_decode_pred.c in Sources */, + 95F27EB917F6DF16009E13C6 /* stereo_encode_pred.c in Sources */, + 95F27EBA17F6DF16009E13C6 /* stereo_find_predictor.c in Sources */, + 95F27EBB17F6DF16009E13C6 /* stereo_LR_to_MS.c in Sources */, + 95F27EBC17F6DF16009E13C6 /* stereo_MS_to_LR.c in Sources */, + 95F27EBD17F6DF16009E13C6 /* stereo_quant_pred.c in Sources */, + 95F27EBF17F6DF16009E13C6 /* sum_sqr_shift.c in Sources */, + 95F27EC017F6DF16009E13C6 /* table_LSF_cos.c in Sources */, + 95F27EC217F6DF16009E13C6 /* tables_gain.c in Sources */, + 95F27EC317F6DF16009E13C6 /* tables_LTP.c in Sources */, + 95F27EC417F6DF16009E13C6 /* tables_NLSF_CB_NB_MB.c in Sources */, + 95F27EC517F6DF16009E13C6 /* tables_NLSF_CB_WB.c in Sources */, + 95F27EC617F6DF16009E13C6 /* tables_other.c in Sources */, + 95F27EC717F6DF16009E13C6 /* tables_pitch_lag.c in Sources */, + 95F27EC817F6DF16009E13C6 /* tables_pulses_per_block.c in Sources */, + 95F27ECB17F6DF16009E13C6 /* VAD.c in Sources */, + 95F27ECC17F6DF16009E13C6 /* VQ_WMat_EC.c in Sources */, + 95F27ECD17F6DF16009E13C6 /* opus.c in Sources */, + 95F27ECE17F6DF16009E13C6 /* opus_decoder.c in Sources */, + 95F27ECF17F6DF16009E13C6 /* opus_encoder.c in Sources */, + 95F27ED017F6DF16009E13C6 /* opus_multistream.c in Sources */, + 95F27ED217F6DF16009E13C6 /* repacketizer.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 95C86C4117F6B2A100F6C878 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + 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; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 95C86C4217F6B2A100F6C878 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + 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; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 95C86EE217F6BCBD00F6C878 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(DEVELOPER_FRAMEWORKS_DIR)", + ); + FRAMEWORK_VERSION = A; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = "HAVE_CONFIG_H=1"; + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "../libopus-src/celt", + "../libopus-src/silk", + ); + INFOPLIST_FILE = "Opus/Opus-Info.plist"; + INSTALL_PATH = "@executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.8; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = framework; + }; + name = Debug; + }; + 95C86EE317F6BCBD00F6C878 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(DEVELOPER_FRAMEWORKS_DIR)", + ); + FRAMEWORK_VERSION = A; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = "HAVE_CONFIG_H=1"; + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "../libopus-src/celt", + "../libopus-src/silk", + ); + INFOPLIST_FILE = "Opus/Opus-Info.plist"; + INSTALL_PATH = "@executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.8; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = framework; + }; + name = Release; + }; + 95C8741917F6D2B200F6C878 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + DSTROOT = /tmp/opus.dst; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = "HAVE_CONFIG_H=1"; + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "../libopus-src/celt", + "../libopus-src/silk", + ); + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 95C8741A17F6D2B200F6C878 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + DSTROOT = /tmp/opus.dst; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = "HAVE_CONFIG_H=1"; + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "../libopus-src/celt", + "../libopus-src/silk", + ); + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 95F27E1417F6DEA1009E13C6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + CONTENTS_FOLDER_PATH = "$(WRAPPER_NAME)/Versions/$(FRAMEWORK_VERSION)"; + DEAD_CODE_STRIPPING = NO; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = "HAVE_CONFIG_H=1"; + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "../libopus-src/celt", + "../libopus-src/silk", + ); + INFOPLIST_FILE = "Opus_ios/Opus_ios-Info.plist"; + INFOPLIST_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Info.plist"; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + LINK_WITH_STANDARD_LIBRARIES = NO; + MACH_O_TYPE = mh_object; + PRODUCT_NAME = Opus; + SKIP_INSTALL = YES; + UNLOCALIZED_RESOURCES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Resources"; + WRAPPER_EXTENSION = framework; + }; + name = Debug; + }; + 95F27E1517F6DEA1009E13C6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + CONTENTS_FOLDER_PATH = "$(WRAPPER_NAME)/Versions/$(FRAMEWORK_VERSION)"; + DEAD_CODE_STRIPPING = NO; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = "HAVE_CONFIG_H=1"; + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "../libopus-src/celt", + "../libopus-src/silk", + ); + INFOPLIST_FILE = "Opus_ios/Opus_ios-Info.plist"; + INFOPLIST_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Info.plist"; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + LINK_WITH_STANDARD_LIBRARIES = NO; + MACH_O_TYPE = mh_object; + PRODUCT_NAME = Opus; + SKIP_INSTALL = YES; + UNLOCALIZED_RESOURCES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Resources"; + WRAPPER_EXTENSION = framework; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 95C86C1B17F6B2A100F6C878 /* Build configuration list for PBXProject "Opus" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 95C86C4117F6B2A100F6C878 /* Debug */, + 95C86C4217F6B2A100F6C878 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 95C86EE117F6BCBD00F6C878 /* Build configuration list for PBXNativeTarget "Opus" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 95C86EE217F6BCBD00F6C878 /* Debug */, + 95C86EE317F6BCBD00F6C878 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 95C8741817F6D2B200F6C878 /* Build configuration list for PBXNativeTarget "opus" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 95C8741917F6D2B200F6C878 /* Debug */, + 95C8741A17F6D2B200F6C878 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 95F27E1817F6DEA1009E13C6 /* Build configuration list for PBXNativeTarget "Opus_ios" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 95F27E1417F6DEA1009E13C6 /* Debug */, + 95F27E1517F6DEA1009E13C6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = 95C86C1817F6B2A100F6C878 /* Project object */; +} diff --git a/Audio-Frameworks/Opus/Opus/Opus-Info.plist b/Audio-Frameworks/Opus/Opus/Opus-Info.plist new file mode 100644 index 0000000..5c3970b --- /dev/null +++ b/Audio-Frameworks/Opus/Opus/Opus-Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.ap4y.Opus.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSHumanReadableCopyright + Copyright © 2013 Arthur Evstifeev. All rights reserved. + NSPrincipalClass + + + diff --git a/Audio-Frameworks/Opus/Opus/config.h b/Audio-Frameworks/Opus/Opus/config.h new file mode 100644 index 0000000..99516b5 --- /dev/null +++ b/Audio-Frameworks/Opus/Opus/config.h @@ -0,0 +1,137 @@ +/* config.h. Generated from config.h.in by configure. */ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Custom modes */ +/* #undef CUSTOM_MODES */ + +/* Assertions */ +/* #undef ENABLE_ASSERTIONS */ + +/* Debug fixed-point implementation */ +/* #undef FIXED_DEBUG */ + +/* Compile as fixed-point (for machines without a fast enough FPU) */ +/* #undef FIXED_POINT */ + +/* Float approximations */ +/* #undef FLOAT_APPROX */ + +/* Fuzzing */ +/* #undef FUZZING */ + +/* Define to 1 if you have the header file. */ +#define HAVE_ALLOCA_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_GETOPT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the `lrint' function. */ +#define HAVE_LRINT 1 + +/* Define to 1 if you have the `lrintf' function. */ +#define HAVE_LRINTF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `__malloc_hook' function. */ +/* #undef HAVE___MALLOC_HOOK */ + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#define LT_OBJDIR ".libs/" + +/* Define to 1 if your C compiler doesn't accept -c and -o together. */ +/* #undef NO_MINUS_C_MINUS_O */ + +/* This is a build of OPUS */ +#define OPUS_BUILD /**/ + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "opus@xiph.org" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "opus" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "opus 1.0.3" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "opus" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "1.0.3" + +/* The size of `int', as computed by sizeof. */ +#define SIZEOF_INT 4 + +/* The size of `long', as computed by sizeof. */ +#define SIZEOF_LONG 8 + +/* The size of `long long', as computed by sizeof. */ +#define SIZEOF_LONG_LONG 8 + +/* The size of `short', as computed by sizeof. */ +#define SIZEOF_SHORT 2 + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Make use of alloca */ +/* #undef USE_ALLOCA */ + +/* Use C99 variable-size arrays */ +#define VAR_ARRAYS /**/ + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +/* #undef inline */ +#endif + +/* Define to the equivalent of the C99 'restrict' keyword, or to + nothing if this is not supported. Do not define if restrict is + supported directly. */ +#define restrict __restrict +/* Work around a bug in Sun C++: it does not support _Restrict or + __restrict__, even though the corresponding Sun C compiler ends up with + "#define restrict _Restrict" or "#define restrict __restrict__" in the + previous line. Perhaps some future version of Sun C++ will work with + restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ +#if defined __SUNPRO_CC && !defined __RESTRICT +# define _Restrict +# define __restrict__ +#endif diff --git a/Audio-Frameworks/Opus/Opus_ios/Opus_ios-Info.plist b/Audio-Frameworks/Opus/Opus_ios/Opus_ios-Info.plist new file mode 100644 index 0000000..9dec469 --- /dev/null +++ b/Audio-Frameworks/Opus/Opus_ios/Opus_ios-Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.ap4y.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/Audio-Frameworks/OpusFile/OpusFile.xcodeproj/project.pbxproj b/Audio-Frameworks/OpusFile/OpusFile.xcodeproj/project.pbxproj new file mode 100644 index 0000000..89244c2 --- /dev/null +++ b/Audio-Frameworks/OpusFile/OpusFile.xcodeproj/project.pbxproj @@ -0,0 +1,828 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 9581366517F6D764003DC5FB /* libogg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 95C8759F17F6D6EA00F6C878 /* libogg.a */; }; + 9581366617F6D764003DC5FB /* libopus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 95C875A217F6D6EA00F6C878 /* libopus.a */; }; + 95C8737317F6C89900F6C878 /* opusfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8737217F6C89900F6C878 /* opusfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95C8737C17F6C8A400F6C878 /* http.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8737517F6C8A400F6C878 /* http.c */; }; + 95C8737D17F6C8A400F6C878 /* info.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8737617F6C8A400F6C878 /* info.c */; }; + 95C8737E17F6C8A400F6C878 /* internal.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8737717F6C8A400F6C878 /* internal.c */; }; + 95C8737F17F6C8A400F6C878 /* internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8737817F6C8A400F6C878 /* internal.h */; }; + 95C8738017F6C8A400F6C878 /* opusfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8737917F6C8A400F6C878 /* opusfile.c */; }; + 95C8738117F6C8A400F6C878 /* stream.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8737A17F6C8A400F6C878 /* stream.c */; }; + 95C8738217F6C8A400F6C878 /* wincerts.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8737B17F6C8A400F6C878 /* wincerts.c */; }; + 95C873BF17F6CD1800F6C878 /* Ogg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95C873B117F6CD0400F6C878 /* Ogg.framework */; }; + 95C873C017F6CD1800F6C878 /* Opus.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 95C873BA17F6CD0900F6C878 /* Opus.framework */; }; + 95C875CD17F6D71E00F6C878 /* http.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8737517F6C8A400F6C878 /* http.c */; }; + 95C875CE17F6D71E00F6C878 /* info.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8737617F6C8A400F6C878 /* info.c */; }; + 95C875CF17F6D71E00F6C878 /* internal.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8737717F6C8A400F6C878 /* internal.c */; }; + 95C875D017F6D71E00F6C878 /* opusfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8737917F6C8A400F6C878 /* opusfile.c */; }; + 95C875D117F6D71E00F6C878 /* stream.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8737A17F6C8A400F6C878 /* stream.c */; }; + 95C875D217F6D71E00F6C878 /* wincerts.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8737B17F6C8A400F6C878 /* wincerts.c */; }; + 95C875D417F6D73000F6C878 /* opusfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8737217F6C89900F6C878 /* opusfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95C875D517F6D73000F6C878 /* internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8737817F6C8A400F6C878 /* internal.h */; }; + 95F27FD017F6E06E009E13C6 /* http.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8737517F6C8A400F6C878 /* http.c */; }; + 95F27FD117F6E06E009E13C6 /* info.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8737617F6C8A400F6C878 /* info.c */; }; + 95F27FD217F6E06E009E13C6 /* internal.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8737717F6C8A400F6C878 /* internal.c */; }; + 95F27FD317F6E06E009E13C6 /* opusfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8737917F6C8A400F6C878 /* opusfile.c */; }; + 95F27FD417F6E06E009E13C6 /* stream.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8737A17F6C8A400F6C878 /* stream.c */; }; + 95F27FD517F6E06E009E13C6 /* wincerts.c in Sources */ = {isa = PBXBuildFile; fileRef = 95C8737B17F6C8A400F6C878 /* wincerts.c */; }; + 95F27FD617F6E074009E13C6 /* opusfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8737217F6C89900F6C878 /* opusfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95F27FD717F6E074009E13C6 /* internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 95C8737817F6C8A400F6C878 /* internal.h */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 9581366117F6D75E003DC5FB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 95C873B217F6CD0900F6C878 /* Opus.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 95C873F717F6D2B200F6C878; + remoteInfo = opus; + }; + 9581366317F6D75E003DC5FB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 95C873AC17F6CD0400F6C878 /* Ogg.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 95C873C817F6D18300F6C878; + remoteInfo = ogg; + }; + 95C873B017F6CD0400F6C878 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 95C873AC17F6CD0400F6C878 /* Ogg.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 95C8730117F6C7CA00F6C878; + remoteInfo = Ogg; + }; + 95C873B917F6CD0900F6C878 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 95C873B217F6CD0900F6C878 /* Opus.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 95C86EBC17F6BCBD00F6C878; + remoteInfo = Opus; + }; + 95C873BB17F6CD1300F6C878 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 95C873B217F6CD0900F6C878 /* Opus.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 95C86EBB17F6BCBD00F6C878; + remoteInfo = Opus; + }; + 95C873BD17F6CD1300F6C878 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 95C873AC17F6CD0400F6C878 /* Ogg.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 95C8730017F6C7CA00F6C878; + remoteInfo = Ogg; + }; + 95C8759E17F6D6EA00F6C878 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 95C873AC17F6CD0400F6C878 /* Ogg.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 95C873C917F6D18300F6C878; + remoteInfo = ogg; + }; + 95C875A117F6D6EA00F6C878 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 95C873B217F6CD0900F6C878 /* Opus.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 95C873F817F6D2B200F6C878; + remoteInfo = opus; + }; + 95F27FC517F6E025009E13C6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 95C873AC17F6CD0400F6C878 /* Ogg.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 95F27DC417F6DD93009E13C6; + remoteInfo = Ogg_ios; + }; + 95F27FC817F6E025009E13C6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 95C873B217F6CD0900F6C878 /* Opus.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 95F27DF517F6DEA0009E13C6; + remoteInfo = Opus_ios; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 95C875A517F6D6FC00F6C878 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 95C8734317F6C87600F6C878 /* OpusFile.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OpusFile.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 95C8734E17F6C87600F6C878 /* OpusFile-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "OpusFile-Info.plist"; sourceTree = ""; }; + 95C8737217F6C89900F6C878 /* opusfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opusfile.h; sourceTree = ""; }; + 95C8737517F6C8A400F6C878 /* http.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = http.c; sourceTree = ""; }; + 95C8737617F6C8A400F6C878 /* info.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = info.c; sourceTree = ""; }; + 95C8737717F6C8A400F6C878 /* internal.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = internal.c; sourceTree = ""; }; + 95C8737817F6C8A400F6C878 /* internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = internal.h; sourceTree = ""; }; + 95C8737917F6C8A400F6C878 /* opusfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = opusfile.c; sourceTree = ""; }; + 95C8737A17F6C8A400F6C878 /* stream.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stream.c; sourceTree = ""; }; + 95C8737B17F6C8A400F6C878 /* wincerts.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = wincerts.c; sourceTree = ""; }; + 95C873AC17F6CD0400F6C878 /* Ogg.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Ogg.xcodeproj; path = ../Ogg/Ogg.xcodeproj; sourceTree = ""; }; + 95C873B217F6CD0900F6C878 /* Opus.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Opus.xcodeproj; path = ../Opus/Opus.xcodeproj; sourceTree = ""; }; + 95C875A717F6D6FC00F6C878 /* libopusfile.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libopusfile.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 95F27FA117F6E024009E13C6 /* OpusFile.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = OpusFile.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 95F27FA417F6E024009E13C6 /* OpusFile_ios-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "OpusFile_ios-Info.plist"; path = "OpusFile_ios/OpusFile_ios-Info.plist"; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 95C8733F17F6C87600F6C878 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 95C873BF17F6CD1800F6C878 /* Ogg.framework in Frameworks */, + 95C873C017F6CD1800F6C878 /* Opus.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95C875A417F6D6FC00F6C878 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9581366517F6D764003DC5FB /* libogg.a in Frameworks */, + 9581366617F6D764003DC5FB /* libopus.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95F27F9B17F6E024009E13C6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 95C8733917F6C87600F6C878 = { + isa = PBXGroup; + children = ( + 95C873B217F6CD0900F6C878 /* Opus.xcodeproj */, + 95C873AC17F6CD0400F6C878 /* Ogg.xcodeproj */, + 95C8734C17F6C87600F6C878 /* OpusFile */, + 95C8734417F6C87600F6C878 /* Products */, + ); + sourceTree = ""; + }; + 95C8734417F6C87600F6C878 /* Products */ = { + isa = PBXGroup; + children = ( + 95C8734317F6C87600F6C878 /* OpusFile.framework */, + 95C875A717F6D6FC00F6C878 /* libopusfile.a */, + 95F27FA117F6E024009E13C6 /* OpusFile.framework */, + ); + name = Products; + sourceTree = ""; + }; + 95C8734C17F6C87600F6C878 /* OpusFile */ = { + isa = PBXGroup; + children = ( + 95C8737117F6C89900F6C878 /* include */, + 95C8737417F6C8A400F6C878 /* src */, + 95C8734D17F6C87600F6C878 /* Supporting Files */, + ); + path = OpusFile; + sourceTree = ""; + }; + 95C8734D17F6C87600F6C878 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 95C8734E17F6C87600F6C878 /* OpusFile-Info.plist */, + 95F27FA417F6E024009E13C6 /* OpusFile_ios-Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 95C8737117F6C89900F6C878 /* include */ = { + isa = PBXGroup; + children = ( + 95C8737217F6C89900F6C878 /* opusfile.h */, + ); + name = include; + path = "../../libopusfile-src/include"; + sourceTree = ""; + }; + 95C8737417F6C8A400F6C878 /* src */ = { + isa = PBXGroup; + children = ( + 95C8737517F6C8A400F6C878 /* http.c */, + 95C8737617F6C8A400F6C878 /* info.c */, + 95C8737717F6C8A400F6C878 /* internal.c */, + 95C8737817F6C8A400F6C878 /* internal.h */, + 95C8737917F6C8A400F6C878 /* opusfile.c */, + 95C8737A17F6C8A400F6C878 /* stream.c */, + 95C8737B17F6C8A400F6C878 /* wincerts.c */, + ); + name = src; + path = "../../libopusfile-src/src"; + sourceTree = ""; + }; + 95C873AD17F6CD0400F6C878 /* Products */ = { + isa = PBXGroup; + children = ( + 95C873B117F6CD0400F6C878 /* Ogg.framework */, + 95C8759F17F6D6EA00F6C878 /* libogg.a */, + 95F27FC617F6E025009E13C6 /* Ogg.framework */, + ); + name = Products; + sourceTree = ""; + }; + 95C873B317F6CD0900F6C878 /* Products */ = { + isa = PBXGroup; + children = ( + 95C873BA17F6CD0900F6C878 /* Opus.framework */, + 95C875A217F6D6EA00F6C878 /* libopus.a */, + 95F27FC917F6E025009E13C6 /* Opus.framework */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 95C8734017F6C87600F6C878 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 95C8737317F6C89900F6C878 /* opusfile.h in Headers */, + 95C8737F17F6C8A400F6C878 /* internal.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95C875D317F6D72400F6C878 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 95C875D417F6D73000F6C878 /* opusfile.h in Headers */, + 95C875D517F6D73000F6C878 /* internal.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95F27F9C17F6E024009E13C6 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 95F27FD617F6E074009E13C6 /* opusfile.h in Headers */, + 95F27FD717F6E074009E13C6 /* internal.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 95C8734217F6C87600F6C878 /* OpusFile */ = { + isa = PBXNativeTarget; + buildConfigurationList = 95C8736B17F6C87600F6C878 /* Build configuration list for PBXNativeTarget "OpusFile" */; + buildPhases = ( + 95C8733E17F6C87600F6C878 /* Sources */, + 95C8733F17F6C87600F6C878 /* Frameworks */, + 95C8734017F6C87600F6C878 /* Headers */, + 95C8734117F6C87600F6C878 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 95C873BC17F6CD1300F6C878 /* PBXTargetDependency */, + 95C873BE17F6CD1300F6C878 /* PBXTargetDependency */, + ); + name = OpusFile; + productName = OpusFile; + productReference = 95C8734317F6C87600F6C878 /* OpusFile.framework */; + productType = "com.apple.product-type.framework"; + }; + 95C875A617F6D6FC00F6C878 /* opusfile */ = { + isa = PBXNativeTarget; + buildConfigurationList = 95C875C717F6D6FC00F6C878 /* Build configuration list for PBXNativeTarget "opusfile" */; + buildPhases = ( + 95C875A317F6D6FC00F6C878 /* Sources */, + 95C875A417F6D6FC00F6C878 /* Frameworks */, + 95C875A517F6D6FC00F6C878 /* CopyFiles */, + 95C875D317F6D72400F6C878 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + 9581366217F6D75E003DC5FB /* PBXTargetDependency */, + 9581366417F6D75E003DC5FB /* PBXTargetDependency */, + ); + name = opusfile; + productName = opusfile; + productReference = 95C875A717F6D6FC00F6C878 /* libopusfile.a */; + productType = "com.apple.product-type.library.static"; + }; + 95F27FA017F6E024009E13C6 /* OpusFile_ios */ = { + isa = PBXNativeTarget; + buildConfigurationList = 95F27FCA17F6E025009E13C6 /* Build configuration list for PBXNativeTarget "OpusFile_ios" */; + buildPhases = ( + 95F27F9917F6E024009E13C6 /* ShellScript */, + 95F27F9A17F6E024009E13C6 /* Sources */, + 95F27F9B17F6E024009E13C6 /* Frameworks */, + 95F27F9C17F6E024009E13C6 /* Headers */, + 95F27F9D17F6E024009E13C6 /* Resources */, + 95F27F9E17F6E024009E13C6 /* ShellScript */, + 95F27F9F17F6E024009E13C6 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = OpusFile_ios; + productName = OpusFile_ios; + productReference = 95F27FA117F6E024009E13C6 /* OpusFile.framework */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 95C8733A17F6C87600F6C878 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0500; + ORGANIZATIONNAME = "Arthur Evstifeev"; + }; + buildConfigurationList = 95C8733D17F6C87600F6C878 /* Build configuration list for PBXProject "OpusFile" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 95C8733917F6C87600F6C878; + productRefGroup = 95C8734417F6C87600F6C878 /* Products */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 95C873AD17F6CD0400F6C878 /* Products */; + ProjectRef = 95C873AC17F6CD0400F6C878 /* Ogg.xcodeproj */; + }, + { + ProductGroup = 95C873B317F6CD0900F6C878 /* Products */; + ProjectRef = 95C873B217F6CD0900F6C878 /* Opus.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 95C8734217F6C87600F6C878 /* OpusFile */, + 95C875A617F6D6FC00F6C878 /* opusfile */, + 95F27FA017F6E024009E13C6 /* OpusFile_ios */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 95C873B117F6CD0400F6C878 /* Ogg.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = Ogg.framework; + remoteRef = 95C873B017F6CD0400F6C878 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 95C873BA17F6CD0900F6C878 /* Opus.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = Opus.framework; + remoteRef = 95C873B917F6CD0900F6C878 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 95C8759F17F6D6EA00F6C878 /* libogg.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libogg.a; + remoteRef = 95C8759E17F6D6EA00F6C878 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 95C875A217F6D6EA00F6C878 /* libopus.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libopus.a; + remoteRef = 95C875A117F6D6EA00F6C878 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 95F27FC617F6E025009E13C6 /* Ogg.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = Ogg.framework; + remoteRef = 95F27FC517F6E025009E13C6 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 95F27FC917F6E025009E13C6 /* Opus.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = Opus.framework; + remoteRef = 95F27FC817F6E025009E13C6 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 95C8734117F6C87600F6C878 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95F27F9D17F6E024009E13C6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 95F27F9917F6E024009E13C6 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nset +u\nif [[ $UFW_MASTER_SCRIPT_RUNNING ]]\nthen\n # Nothing for the slave script to do\n exit 0\nfi\nset -u\n\nif [[ \"$SDK_NAME\" =~ ([A-Za-z]+) ]]\nthen\n UFW_SDK_PLATFORM=${BASH_REMATCH[1]}\nelse\n echo \"Could not find platform name from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$SDK_NAME\" =~ ([0-9]+.*$) ]]\nthen\n\tUFW_SDK_VERSION=${BASH_REMATCH[1]}\nelse\n echo \"Could not find sdk version from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$UFW_SDK_PLATFORM\" = \"iphoneos\" ]]\nthen\n UFW_OTHER_PLATFORM=iphonesimulator\nelse\n UFW_OTHER_PLATFORM=iphoneos\nfi\n\nif [[ \"$BUILT_PRODUCTS_DIR\" =~ (.*)$UFW_SDK_PLATFORM$ ]]\nthen\n UFW_OTHER_BUILT_PRODUCTS_DIR=\"${BASH_REMATCH[1]}${UFW_OTHER_PLATFORM}\"\nelse\n echo \"Could not find $UFW_SDK_PLATFORM in $BUILT_PRODUCTS_DIR\"\n exit 1\nfi\n\n\n# Short-circuit if all binaries are up to date\n\nif [[ -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]] && \\\n [[ -f \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]] && \\\n [[ ! \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -nt \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]]\n [[ -f \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]] && \\\n [[ -f \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]] && \\\n [[ ! \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -nt \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]]\nthen\n exit 0\nfi\n\n\n# Clean other platform if needed\n\nif [[ ! -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]]\nthen\n\techo \"Platform \\\"$UFW_SDK_PLATFORM\\\" was cleaned recently. Cleaning \\\"$UFW_OTHER_PLATFORM\\\" as well\"\n\techo xcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" clean\n\txcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" clean\nfi\n\n\n# Make sure we are building from fresh binaries\n\nrm -rf \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\nrm -rf \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\nrm -rf \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\nrm -rf \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\n"; + }; + 95F27F9E17F6E024009E13C6 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "HEADERS_ROOT=$SRCROOT/$PRODUCT_NAME\nFRAMEWORK_HEADERS_DIR=\"$BUILT_PRODUCTS_DIR/$WRAPPER_NAME/Versions/$FRAMEWORK_VERSION/Headers\"\n\n## only header files expected at this point\nPUBLIC_HEADERS=$(find $FRAMEWORK_HEADERS_DIR/. -not -type d 2> /dev/null | sed -e \"s@.*/@@g\")\n\nFIND_OPTS=\"\"\nfor PUBLIC_HEADER in $PUBLIC_HEADERS; do\n if [ -n \"$FIND_OPTS\" ]; then\n FIND_OPTS=\"$FIND_OPTS -o\"\n fi\n FIND_OPTS=\"$FIND_OPTS -name '$PUBLIC_HEADER'\"\ndone\n\nif [ -n \"$FIND_OPTS\" ]; then\n for ORIG_HEADER in $(eval \"find $HEADERS_ROOT/. $FIND_OPTS\" 2> /dev/null | sed -e \"s@^$HEADERS_ROOT/./@@g\"); do\n PUBLIC_HEADER=$(basename $ORIG_HEADER)\n RELATIVE_PATH=$(dirname $ORIG_HEADER)\n if [ -e $FRAMEWORK_HEADERS_DIR/$PUBLIC_HEADER ]; then\n mkdir -p \"$FRAMEWORK_HEADERS_DIR/$RELATIVE_PATH\"\n mv \"$FRAMEWORK_HEADERS_DIR/$PUBLIC_HEADER\" \"$FRAMEWORK_HEADERS_DIR/$RELATIVE_PATH/$PUBLIC_HEADER\"\n fi\n done\nfi\n"; + }; + 95F27F9F17F6E024009E13C6 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nset +u\nif [[ $UFW_MASTER_SCRIPT_RUNNING ]]\nthen\n # Nothing for the slave script to do\n exit 0\nfi\nset -u\nexport UFW_MASTER_SCRIPT_RUNNING=1\n\n\n# Functions\n\n## List files in the specified directory, storing to the specified array.\n#\n# @param $1 The path to list\n# @param $2 The name of the array to fill\n#\n##\nlist_files ()\n{\n filelist=$(ls \"$1\")\n while read line\n do\n eval \"$2[\\${#$2[*]}]=\\\"\\$line\\\"\"\n done <<< \"$filelist\"\n}\n\n\n# Sanity check\n\nif [[ ! -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]]\nthen\n echo \"Framework target \\\"${TARGET_NAME}\\\" had no source files to build from. Make sure your source files have the correct target membership\"\n exit 1\nfi\n\n\n# Gather information\n\nif [[ \"$SDK_NAME\" =~ ([A-Za-z]+) ]]\nthen\n UFW_SDK_PLATFORM=${BASH_REMATCH[1]}\nelse\n echo \"Could not find platform name from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$SDK_NAME\" =~ ([0-9]+.*$) ]]\nthen\n UFW_SDK_VERSION=${BASH_REMATCH[1]}\nelse\n echo \"Could not find sdk version from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$UFW_SDK_PLATFORM\" = \"iphoneos\" ]]\nthen\n UFW_OTHER_PLATFORM=iphonesimulator\nelse\n UFW_OTHER_PLATFORM=iphoneos\nfi\n\nif [[ \"$BUILT_PRODUCTS_DIR\" =~ (.*)$UFW_SDK_PLATFORM$ ]]\nthen\n UFW_OTHER_BUILT_PRODUCTS_DIR=\"${BASH_REMATCH[1]}${UFW_OTHER_PLATFORM}\"\nelse\n echo \"Could not find $UFW_SDK_PLATFORM in $BUILT_PRODUCTS_DIR\"\n exit 1\nfi\n\n\n# Short-circuit if all binaries are up to date.\n# We already checked the other platform in the prerun script.\n\nif [[ -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]] && [[ -f \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]] && [[ ! \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -nt \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]]\nthen\n exit 0\nfi\n\n\n# Make sure the other platform gets built\n\necho \"Build other platform\"\n\necho xcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" $ACTION\nxcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" $ACTION\n\n\n# Build the fat static library binary\n\necho \"Create universal static library\"\n\nif [[ \"$XCODE_VERSION_MAJOR\" = \"0500\" ]]\nthen\n echo \"$DT_TOOLCHAIN_DIR/usr/bin/libtool\" -static \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -o \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\"\n \"$DT_TOOLCHAIN_DIR/usr/bin/libtool\" -static \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -o \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\"\nelse\n echo \"$PLATFORM_DEVELOPER_BIN_DIR/libtool\" -static \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -o \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\"\n \"$PLATFORM_DEVELOPER_BIN_DIR/libtool\" -static \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -o \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\"\nfi \n\necho mv \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\" \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\nmv \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\" \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\n\n\n# Build framework structure\n\necho \"Build symlinks\"\n\necho ln -sfh $FRAMEWORK_VERSION \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Versions/Current\"\nln -sfh $FRAMEWORK_VERSION \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Versions/Current\"\necho ln -sfh Versions/Current/Headers \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Headers\"\nln -sfh Versions/Current/Headers \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Headers\"\necho ln -sfh Versions/Current/Resources \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Resources\"\nln -sfh Versions/Current/Resources \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Resources\"\necho ln -sfh \"Versions/Current/${EXECUTABLE_NAME}\" \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${EXECUTABLE_NAME}\"\nln -sfh \"Versions/Current/${EXECUTABLE_NAME}\" \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${EXECUTABLE_NAME}\"\n\n\n# Link to binary for unit tests\n\nmkdir -p \"${BUILT_PRODUCTS_DIR}/.fake_fw_testing.framework\"\nln -sfh \"../${WRAPPER_NAME}/${EXECUTABLE_NAME}\" \"${BUILT_PRODUCTS_DIR}/.fake_fw_testing.framework/.fake_fw_testing\"\n\n\n# Build embedded framework structure\n\necho \"Build Embedded Framework\"\n\necho rm -rf \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\nrm -rf \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\necho mkdir -p \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources\"\nmkdir -p \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources\"\necho cp -a \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/\"\ncp -a \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/\"\n\ndeclare -a UFW_FILE_LIST\nlist_files \"${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\" UFW_FILE_LIST\nfor filename in \"${UFW_FILE_LIST[@]}\"\ndo\n if [[ \"${filename}\" != \"Info.plist\" ]] && [[ ! \"${filename}\" =~ .*\\.lproj$ ]]\n then\n echo ln -sfh \"../${WRAPPER_NAME}/Resources/${filename}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources/${filename}\"\n ln -sfh \"../${WRAPPER_NAME}/Resources/${filename}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources/${filename}\"\n fi\ndone\n\n\n# Replace other platform's framework with a copy of this one (so that both have the same universal binary)\n\necho \"Copy from $UFW_SDK_PLATFORM to $UFW_OTHER_PLATFORM\"\n\necho rm -rf \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\nrm -rf \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\necho cp -a \"${BUILD_DIR}/${CONFIGURATION}-${UFW_SDK_PLATFORM}\" \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\ncp -a \"${BUILD_DIR}/${CONFIGURATION}-${UFW_SDK_PLATFORM}\" \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 95C8733E17F6C87600F6C878 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 95C8737C17F6C8A400F6C878 /* http.c in Sources */, + 95C8737D17F6C8A400F6C878 /* info.c in Sources */, + 95C8738217F6C8A400F6C878 /* wincerts.c in Sources */, + 95C8738017F6C8A400F6C878 /* opusfile.c in Sources */, + 95C8737E17F6C8A400F6C878 /* internal.c in Sources */, + 95C8738117F6C8A400F6C878 /* stream.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95C875A317F6D6FC00F6C878 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 95C875CD17F6D71E00F6C878 /* http.c in Sources */, + 95C875CE17F6D71E00F6C878 /* info.c in Sources */, + 95C875CF17F6D71E00F6C878 /* internal.c in Sources */, + 95C875D017F6D71E00F6C878 /* opusfile.c in Sources */, + 95C875D117F6D71E00F6C878 /* stream.c in Sources */, + 95C875D217F6D71E00F6C878 /* wincerts.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 95F27F9A17F6E024009E13C6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 95F27FD017F6E06E009E13C6 /* http.c in Sources */, + 95F27FD117F6E06E009E13C6 /* info.c in Sources */, + 95F27FD217F6E06E009E13C6 /* internal.c in Sources */, + 95F27FD317F6E06E009E13C6 /* opusfile.c in Sources */, + 95F27FD417F6E06E009E13C6 /* stream.c in Sources */, + 95F27FD517F6E06E009E13C6 /* wincerts.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 9581366217F6D75E003DC5FB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = opus; + targetProxy = 9581366117F6D75E003DC5FB /* PBXContainerItemProxy */; + }; + 9581366417F6D75E003DC5FB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = ogg; + targetProxy = 9581366317F6D75E003DC5FB /* PBXContainerItemProxy */; + }; + 95C873BC17F6CD1300F6C878 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Opus; + targetProxy = 95C873BB17F6CD1300F6C878 /* PBXContainerItemProxy */; + }; + 95C873BE17F6CD1300F6C878 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Ogg; + targetProxy = 95C873BD17F6CD1300F6C878 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 95C8736917F6C87600F6C878 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + 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; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.8; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + 95C8736A17F6C87600F6C878 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_OBJC_EXCEPTIONS = 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; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.8; + SDKROOT = macosx; + }; + name = Release; + }; + 95C8736C17F6C87600F6C878 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "../libopus-src/include", + ); + INFOPLIST_FILE = "OpusFile/OpusFile-Info.plist"; + INSTALL_PATH = "@executable_path/../Frameworks"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = framework; + }; + name = Debug; + }; + 95C8736D17F6C87600F6C878 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "../libopus-src/include", + ); + INFOPLIST_FILE = "OpusFile/OpusFile-Info.plist"; + INSTALL_PATH = "@executable_path/../Frameworks"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = framework; + }; + name = Release; + }; + 95C875C817F6D6FC00F6C878 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + CLANG_ENABLE_MODULES = YES; + DSTROOT = /tmp/opusfile.dst; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "../libogg-src/include", + "../libopus-src/include", + ); + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 95C875C917F6D6FC00F6C878 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + CLANG_ENABLE_MODULES = YES; + DSTROOT = /tmp/opusfile.dst; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "../libogg-src/include", + "../libopus-src/include", + ); + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 95F27FC017F6E025009E13C6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + CLANG_ENABLE_MODULES = YES; + CONTENTS_FOLDER_PATH = "$(WRAPPER_NAME)/Versions/$(FRAMEWORK_VERSION)"; + DEAD_CODE_STRIPPING = NO; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "../libopus-src/include", + "../libogg-src/include", + ); + INFOPLIST_FILE = "OpusFile_ios/OpusFile_ios-Info.plist"; + INFOPLIST_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Info.plist"; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + LINK_WITH_STANDARD_LIBRARIES = NO; + MACH_O_TYPE = mh_object; + PRODUCT_NAME = OpusFile; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + UNLOCALIZED_RESOURCES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Resources"; + WRAPPER_EXTENSION = framework; + }; + name = Debug; + }; + 95F27FC117F6E025009E13C6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + CLANG_ENABLE_MODULES = YES; + CONTENTS_FOLDER_PATH = "$(WRAPPER_NAME)/Versions/$(FRAMEWORK_VERSION)"; + DEAD_CODE_STRIPPING = NO; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "../libopus-src/include", + "../libogg-src/include", + ); + INFOPLIST_FILE = "OpusFile_ios/OpusFile_ios-Info.plist"; + INFOPLIST_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Info.plist"; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + LINK_WITH_STANDARD_LIBRARIES = NO; + MACH_O_TYPE = mh_object; + PRODUCT_NAME = OpusFile; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + UNLOCALIZED_RESOURCES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Resources"; + VALIDATE_PRODUCT = YES; + WRAPPER_EXTENSION = framework; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 95C8733D17F6C87600F6C878 /* Build configuration list for PBXProject "OpusFile" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 95C8736917F6C87600F6C878 /* Debug */, + 95C8736A17F6C87600F6C878 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 95C8736B17F6C87600F6C878 /* Build configuration list for PBXNativeTarget "OpusFile" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 95C8736C17F6C87600F6C878 /* Debug */, + 95C8736D17F6C87600F6C878 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 95C875C717F6D6FC00F6C878 /* Build configuration list for PBXNativeTarget "opusfile" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 95C875C817F6D6FC00F6C878 /* Debug */, + 95C875C917F6D6FC00F6C878 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 95F27FCA17F6E025009E13C6 /* Build configuration list for PBXNativeTarget "OpusFile_ios" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 95F27FC017F6E025009E13C6 /* Debug */, + 95F27FC117F6E025009E13C6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = 95C8733A17F6C87600F6C878 /* Project object */; +} diff --git a/Audio-Frameworks/OpusFile/OpusFile/OpusFile-Info.plist b/Audio-Frameworks/OpusFile/OpusFile/OpusFile-Info.plist new file mode 100644 index 0000000..034d641 --- /dev/null +++ b/Audio-Frameworks/OpusFile/OpusFile/OpusFile-Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.ap4y.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSHumanReadableCopyright + Copyright © 2013 Arthur Evstifeev. All rights reserved. + NSPrincipalClass + + + diff --git a/Audio-Frameworks/OpusFile/OpusFile_ios/OpusFile_ios-Info.plist b/Audio-Frameworks/OpusFile/OpusFile_ios/OpusFile_ios-Info.plist new file mode 100644 index 0000000..9dec469 --- /dev/null +++ b/Audio-Frameworks/OpusFile/OpusFile_ios/OpusFile_ios-Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.ap4y.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/Audio-Frameworks/README.md b/Audio-Frameworks/README.md new file mode 100755 index 0000000..d3db848 --- /dev/null +++ b/Audio-Frameworks/README.md @@ -0,0 +1,33 @@ +MacOS/iOS static frameworks and libraries: +* FLAC +* TagLib, +* CyberlinkUPNP +* Ogg +* Opus +* OpusFile + +Instructions +------- + +Precompiled libraries and frameworks are located in `bin` folder. + +Libraries sources included as git submodules where possible, other sources should be downloaded and unarchived to the corresponding folder. + +In order to compile iOS static framework target you need to install `Fake Framework` template from [iOS-Universal-Framework](https://github.com/kstenerud/iOS-Universal-Framework) + +Credits +------- + +Frameworks official pages: + +- https://github.com/cybergarage/CyberLink4C +- http://taglib.github.com/ +- http://flac.sourceforge.net/ +- http://xiph.org/ogg/ +- https://github.com/kstenerud/iOS-Universal-Framework +- http://opus-codec.org + +License +------- + +All frameworks are copyrighted by their creators and licensed by different licenses, for more information you should look through project pages. diff --git a/Audio-Frameworks/TagLib/TagLib.xcodeproj/project.pbxproj b/Audio-Frameworks/TagLib/TagLib.xcodeproj/project.pbxproj new file mode 100644 index 0000000..aa0d7d2 --- /dev/null +++ b/Audio-Frameworks/TagLib/TagLib.xcodeproj/project.pbxproj @@ -0,0 +1,1536 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 9529F1F415DBFD59000303A6 /* apefile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F11C15DBFD59000303A6 /* apefile.cpp */; }; + 9529F1F515DBFD59000303A6 /* apefile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F11D15DBFD59000303A6 /* apefile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F1F615DBFD59000303A6 /* apefooter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F11E15DBFD59000303A6 /* apefooter.cpp */; }; + 9529F1F715DBFD59000303A6 /* apefooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F11F15DBFD59000303A6 /* apefooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F1F815DBFD59000303A6 /* apeitem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F12015DBFD59000303A6 /* apeitem.cpp */; }; + 9529F1F915DBFD59000303A6 /* apeitem.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F12115DBFD59000303A6 /* apeitem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F1FA15DBFD59000303A6 /* apeproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F12215DBFD59000303A6 /* apeproperties.cpp */; }; + 9529F1FB15DBFD59000303A6 /* apeproperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F12315DBFD59000303A6 /* apeproperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F1FC15DBFD59000303A6 /* apetag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F12415DBFD59000303A6 /* apetag.cpp */; }; + 9529F1FD15DBFD59000303A6 /* apetag.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F12515DBFD59000303A6 /* apetag.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F1FE15DBFD59000303A6 /* asfattribute.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F12715DBFD59000303A6 /* asfattribute.cpp */; }; + 9529F1FF15DBFD59000303A6 /* asfattribute.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F12815DBFD59000303A6 /* asfattribute.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F20015DBFD59000303A6 /* asffile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F12915DBFD59000303A6 /* asffile.cpp */; }; + 9529F20115DBFD59000303A6 /* asffile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F12A15DBFD59000303A6 /* asffile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F20215DBFD59000303A6 /* asfpicture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F12B15DBFD59000303A6 /* asfpicture.cpp */; }; + 9529F20315DBFD59000303A6 /* asfpicture.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F12C15DBFD59000303A6 /* asfpicture.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F20415DBFD59000303A6 /* asfproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F12D15DBFD59000303A6 /* asfproperties.cpp */; }; + 9529F20515DBFD59000303A6 /* asfproperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F12E15DBFD59000303A6 /* asfproperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F20615DBFD59000303A6 /* asftag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F12F15DBFD59000303A6 /* asftag.cpp */; }; + 9529F20715DBFD59000303A6 /* asftag.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F13015DBFD59000303A6 /* asftag.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F20815DBFD59000303A6 /* audioproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F13115DBFD59000303A6 /* audioproperties.cpp */; }; + 9529F20915DBFD59000303A6 /* audioproperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F13215DBFD59000303A6 /* audioproperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F20B15DBFD59000303A6 /* fileref.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F13415DBFD59000303A6 /* fileref.cpp */; }; + 9529F20C15DBFD59000303A6 /* fileref.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F13515DBFD59000303A6 /* fileref.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F20D15DBFD59000303A6 /* flacfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F13715DBFD59000303A6 /* flacfile.cpp */; }; + 9529F20E15DBFD59000303A6 /* flacfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F13815DBFD59000303A6 /* flacfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F20F15DBFD59000303A6 /* flacmetadatablock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F13915DBFD59000303A6 /* flacmetadatablock.cpp */; }; + 9529F21015DBFD59000303A6 /* flacmetadatablock.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F13A15DBFD59000303A6 /* flacmetadatablock.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F21115DBFD59000303A6 /* flacpicture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F13B15DBFD59000303A6 /* flacpicture.cpp */; }; + 9529F21215DBFD59000303A6 /* flacpicture.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F13C15DBFD59000303A6 /* flacpicture.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F21315DBFD59000303A6 /* flacproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F13D15DBFD59000303A6 /* flacproperties.cpp */; }; + 9529F21415DBFD59000303A6 /* flacproperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F13E15DBFD59000303A6 /* flacproperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F21515DBFD59000303A6 /* flacunknownmetadatablock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F13F15DBFD59000303A6 /* flacunknownmetadatablock.cpp */; }; + 9529F21615DBFD59000303A6 /* flacunknownmetadatablock.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F14015DBFD59000303A6 /* flacunknownmetadatablock.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F21715DBFD59000303A6 /* itfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F14215DBFD59000303A6 /* itfile.cpp */; }; + 9529F21915DBFD59000303A6 /* itproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F14415DBFD59000303A6 /* itproperties.cpp */; }; + 9529F21B15DBFD59000303A6 /* modfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F14715DBFD59000303A6 /* modfile.cpp */; }; + 9529F21D15DBFD59000303A6 /* modfilebase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F14915DBFD59000303A6 /* modfilebase.cpp */; }; + 9529F22015DBFD59000303A6 /* modproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F14C15DBFD59000303A6 /* modproperties.cpp */; }; + 9529F22215DBFD59000303A6 /* modtag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F14E15DBFD59000303A6 /* modtag.cpp */; }; + 9529F22415DBFD59000303A6 /* mp4atom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F15115DBFD59000303A6 /* mp4atom.cpp */; }; + 9529F22515DBFD59000303A6 /* mp4atom.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F15215DBFD59000303A6 /* mp4atom.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F22615DBFD59000303A6 /* mp4coverart.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F15315DBFD59000303A6 /* mp4coverart.cpp */; }; + 9529F22715DBFD59000303A6 /* mp4coverart.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F15415DBFD59000303A6 /* mp4coverart.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F22815DBFD59000303A6 /* mp4file.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F15515DBFD59000303A6 /* mp4file.cpp */; }; + 9529F22915DBFD59000303A6 /* mp4file.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F15615DBFD59000303A6 /* mp4file.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F22A15DBFD59000303A6 /* mp4item.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F15715DBFD59000303A6 /* mp4item.cpp */; }; + 9529F22B15DBFD59000303A6 /* mp4item.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F15815DBFD59000303A6 /* mp4item.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F22C15DBFD59000303A6 /* mp4properties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F15915DBFD59000303A6 /* mp4properties.cpp */; }; + 9529F22D15DBFD59000303A6 /* mp4properties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F15A15DBFD59000303A6 /* mp4properties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F22E15DBFD59000303A6 /* mp4tag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F15B15DBFD59000303A6 /* mp4tag.cpp */; }; + 9529F22F15DBFD59000303A6 /* mp4tag.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F15C15DBFD59000303A6 /* mp4tag.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F23015DBFD59000303A6 /* mpcfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F15E15DBFD59000303A6 /* mpcfile.cpp */; }; + 9529F23115DBFD59000303A6 /* mpcfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F15F15DBFD59000303A6 /* mpcfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F23215DBFD59000303A6 /* mpcproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F16015DBFD59000303A6 /* mpcproperties.cpp */; }; + 9529F23315DBFD59000303A6 /* mpcproperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F16115DBFD59000303A6 /* mpcproperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F23415DBFD59000303A6 /* id3v1genres.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F16415DBFD59000303A6 /* id3v1genres.cpp */; }; + 9529F23515DBFD59000303A6 /* id3v1genres.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F16515DBFD59000303A6 /* id3v1genres.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F23615DBFD59000303A6 /* id3v1tag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F16615DBFD59000303A6 /* id3v1tag.cpp */; }; + 9529F23715DBFD59000303A6 /* id3v1tag.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F16715DBFD59000303A6 /* id3v1tag.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F23815DBFD59000303A6 /* attachedpictureframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F16A15DBFD59000303A6 /* attachedpictureframe.cpp */; }; + 9529F23915DBFD59000303A6 /* attachedpictureframe.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F16B15DBFD59000303A6 /* attachedpictureframe.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F23A15DBFD59000303A6 /* commentsframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F16C15DBFD59000303A6 /* commentsframe.cpp */; }; + 9529F23B15DBFD59000303A6 /* commentsframe.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F16D15DBFD59000303A6 /* commentsframe.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F23C15DBFD59000303A6 /* generalencapsulatedobjectframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F16E15DBFD59000303A6 /* generalencapsulatedobjectframe.cpp */; }; + 9529F23D15DBFD59000303A6 /* generalencapsulatedobjectframe.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F16F15DBFD59000303A6 /* generalencapsulatedobjectframe.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F23E15DBFD59000303A6 /* popularimeterframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F17015DBFD59000303A6 /* popularimeterframe.cpp */; }; + 9529F23F15DBFD59000303A6 /* popularimeterframe.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F17115DBFD59000303A6 /* popularimeterframe.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F24015DBFD59000303A6 /* privateframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F17215DBFD59000303A6 /* privateframe.cpp */; }; + 9529F24115DBFD59000303A6 /* privateframe.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F17315DBFD59000303A6 /* privateframe.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F24215DBFD59000303A6 /* relativevolumeframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F17415DBFD59000303A6 /* relativevolumeframe.cpp */; }; + 9529F24315DBFD59000303A6 /* relativevolumeframe.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F17515DBFD59000303A6 /* relativevolumeframe.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F24415DBFD59000303A6 /* textidentificationframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F17615DBFD59000303A6 /* textidentificationframe.cpp */; }; + 9529F24515DBFD59000303A6 /* textidentificationframe.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F17715DBFD59000303A6 /* textidentificationframe.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F24615DBFD59000303A6 /* uniquefileidentifierframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F17815DBFD59000303A6 /* uniquefileidentifierframe.cpp */; }; + 9529F24715DBFD59000303A6 /* uniquefileidentifierframe.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F17915DBFD59000303A6 /* uniquefileidentifierframe.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F24815DBFD59000303A6 /* unknownframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F17A15DBFD59000303A6 /* unknownframe.cpp */; }; + 9529F24915DBFD59000303A6 /* unknownframe.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F17B15DBFD59000303A6 /* unknownframe.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F24A15DBFD59000303A6 /* unsynchronizedlyricsframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F17C15DBFD59000303A6 /* unsynchronizedlyricsframe.cpp */; }; + 9529F24B15DBFD59000303A6 /* unsynchronizedlyricsframe.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F17D15DBFD59000303A6 /* unsynchronizedlyricsframe.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F24C15DBFD59000303A6 /* urllinkframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F17E15DBFD59000303A6 /* urllinkframe.cpp */; }; + 9529F24D15DBFD59000303A6 /* urllinkframe.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F17F15DBFD59000303A6 /* urllinkframe.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F24E15DBFD59000303A6 /* id3v2.2.0.txt in Resources */ = {isa = PBXBuildFile; fileRef = 9529F18015DBFD59000303A6 /* id3v2.2.0.txt */; }; + 9529F24F15DBFD59000303A6 /* id3v2.3.0.txt in Resources */ = {isa = PBXBuildFile; fileRef = 9529F18115DBFD59000303A6 /* id3v2.3.0.txt */; }; + 9529F25015DBFD59000303A6 /* id3v2.4.0-frames.txt in Resources */ = {isa = PBXBuildFile; fileRef = 9529F18215DBFD59000303A6 /* id3v2.4.0-frames.txt */; }; + 9529F25115DBFD59000303A6 /* id3v2.4.0-structure.txt in Resources */ = {isa = PBXBuildFile; fileRef = 9529F18315DBFD59000303A6 /* id3v2.4.0-structure.txt */; }; + 9529F25215DBFD59000303A6 /* id3v2extendedheader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F18415DBFD59000303A6 /* id3v2extendedheader.cpp */; }; + 9529F25315DBFD59000303A6 /* id3v2extendedheader.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F18515DBFD59000303A6 /* id3v2extendedheader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F25415DBFD59000303A6 /* id3v2footer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F18615DBFD59000303A6 /* id3v2footer.cpp */; }; + 9529F25515DBFD59000303A6 /* id3v2footer.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F18715DBFD59000303A6 /* id3v2footer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F25615DBFD59000303A6 /* id3v2frame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F18815DBFD59000303A6 /* id3v2frame.cpp */; }; + 9529F25715DBFD59000303A6 /* id3v2frame.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F18915DBFD59000303A6 /* id3v2frame.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F25815DBFD59000303A6 /* id3v2framefactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F18A15DBFD59000303A6 /* id3v2framefactory.cpp */; }; + 9529F25915DBFD59000303A6 /* id3v2framefactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F18B15DBFD59000303A6 /* id3v2framefactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F25A15DBFD59000303A6 /* id3v2header.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F18C15DBFD59000303A6 /* id3v2header.cpp */; }; + 9529F25B15DBFD59000303A6 /* id3v2header.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F18D15DBFD59000303A6 /* id3v2header.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F25C15DBFD59000303A6 /* id3v2synchdata.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F18E15DBFD59000303A6 /* id3v2synchdata.cpp */; }; + 9529F25D15DBFD59000303A6 /* id3v2synchdata.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F18F15DBFD59000303A6 /* id3v2synchdata.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F25E15DBFD59000303A6 /* id3v2tag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F19015DBFD59000303A6 /* id3v2tag.cpp */; }; + 9529F25F15DBFD59000303A6 /* id3v2tag.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F19115DBFD59000303A6 /* id3v2tag.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F26015DBFD59000303A6 /* mpegfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F19215DBFD59000303A6 /* mpegfile.cpp */; }; + 9529F26115DBFD59000303A6 /* mpegfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F19315DBFD59000303A6 /* mpegfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F26215DBFD59000303A6 /* mpegheader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F19415DBFD59000303A6 /* mpegheader.cpp */; }; + 9529F26315DBFD59000303A6 /* mpegheader.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F19515DBFD59000303A6 /* mpegheader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F26415DBFD59000303A6 /* mpegproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F19615DBFD59000303A6 /* mpegproperties.cpp */; }; + 9529F26515DBFD59000303A6 /* mpegproperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F19715DBFD59000303A6 /* mpegproperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F26615DBFD59000303A6 /* xingheader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F19815DBFD59000303A6 /* xingheader.cpp */; }; + 9529F26715DBFD59000303A6 /* xingheader.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F19915DBFD59000303A6 /* xingheader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F26815DBFD59000303A6 /* oggflacfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F19C15DBFD59000303A6 /* oggflacfile.cpp */; }; + 9529F26915DBFD59000303A6 /* oggflacfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F19D15DBFD59000303A6 /* oggflacfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F26A15DBFD59000303A6 /* oggfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F19E15DBFD59000303A6 /* oggfile.cpp */; }; + 9529F26B15DBFD59000303A6 /* oggfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F19F15DBFD59000303A6 /* oggfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F26C15DBFD59000303A6 /* oggpage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1A015DBFD59000303A6 /* oggpage.cpp */; }; + 9529F26D15DBFD59000303A6 /* oggpage.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1A115DBFD59000303A6 /* oggpage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F26E15DBFD59000303A6 /* oggpageheader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1A215DBFD59000303A6 /* oggpageheader.cpp */; }; + 9529F26F15DBFD59000303A6 /* oggpageheader.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1A315DBFD59000303A6 /* oggpageheader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F27015DBFD59000303A6 /* speexfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1A515DBFD59000303A6 /* speexfile.cpp */; }; + 9529F27115DBFD59000303A6 /* speexfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1A615DBFD59000303A6 /* speexfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F27215DBFD59000303A6 /* speexproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1A715DBFD59000303A6 /* speexproperties.cpp */; }; + 9529F27315DBFD59000303A6 /* speexproperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1A815DBFD59000303A6 /* speexproperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F27415DBFD59000303A6 /* vorbisfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1AA15DBFD59000303A6 /* vorbisfile.cpp */; }; + 9529F27515DBFD59000303A6 /* vorbisfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1AB15DBFD59000303A6 /* vorbisfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F27615DBFD59000303A6 /* vorbisproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1AC15DBFD59000303A6 /* vorbisproperties.cpp */; }; + 9529F27715DBFD59000303A6 /* vorbisproperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1AD15DBFD59000303A6 /* vorbisproperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F27815DBFD59000303A6 /* xiphcomment.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1AE15DBFD59000303A6 /* xiphcomment.cpp */; }; + 9529F27915DBFD59000303A6 /* xiphcomment.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1AF15DBFD59000303A6 /* xiphcomment.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F27A15DBFD59000303A6 /* aifffile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1B215DBFD59000303A6 /* aifffile.cpp */; }; + 9529F27B15DBFD59000303A6 /* aifffile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1B315DBFD59000303A6 /* aifffile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F27C15DBFD59000303A6 /* aiffproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1B415DBFD59000303A6 /* aiffproperties.cpp */; }; + 9529F27D15DBFD59000303A6 /* aiffproperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1B515DBFD59000303A6 /* aiffproperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F27E15DBFD59000303A6 /* rifffile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1B615DBFD59000303A6 /* rifffile.cpp */; }; + 9529F27F15DBFD59000303A6 /* rifffile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1B715DBFD59000303A6 /* rifffile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F28015DBFD59000303A6 /* wavfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1B915DBFD59000303A6 /* wavfile.cpp */; }; + 9529F28115DBFD59000303A6 /* wavfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1BA15DBFD59000303A6 /* wavfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F28215DBFD59000303A6 /* wavproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1BB15DBFD59000303A6 /* wavproperties.cpp */; }; + 9529F28315DBFD59000303A6 /* wavproperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1BC15DBFD59000303A6 /* wavproperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F28415DBFD59000303A6 /* s3mfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1BE15DBFD59000303A6 /* s3mfile.cpp */; }; + 9529F28615DBFD59000303A6 /* s3mproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1C015DBFD59000303A6 /* s3mproperties.cpp */; }; + 9529F28815DBFD59000303A6 /* tag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1C215DBFD59000303A6 /* tag.cpp */; }; + 9529F28915DBFD59000303A6 /* tag.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1C315DBFD59000303A6 /* tag.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F28B15DBFD59000303A6 /* taglib_export.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1C515DBFD59000303A6 /* taglib_export.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F28C15DBFD59000303A6 /* tagunion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1C615DBFD59000303A6 /* tagunion.cpp */; }; + 9529F28D15DBFD59000303A6 /* tagunion.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1C715DBFD59000303A6 /* tagunion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F28E15DBFD59000303A6 /* taglib.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1C915DBFD59000303A6 /* taglib.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F28F15DBFD59000303A6 /* tbytevector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1CA15DBFD59000303A6 /* tbytevector.cpp */; }; + 9529F29015DBFD59000303A6 /* tbytevector.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1CB15DBFD59000303A6 /* tbytevector.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F29115DBFD59000303A6 /* tbytevectorlist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1CC15DBFD59000303A6 /* tbytevectorlist.cpp */; }; + 9529F29215DBFD59000303A6 /* tbytevectorlist.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1CD15DBFD59000303A6 /* tbytevectorlist.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F29315DBFD59000303A6 /* tbytevectorstream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1CE15DBFD59000303A6 /* tbytevectorstream.cpp */; }; + 9529F29415DBFD59000303A6 /* tbytevectorstream.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1CF15DBFD59000303A6 /* tbytevectorstream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F29515DBFD59000303A6 /* tdebug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1D015DBFD59000303A6 /* tdebug.cpp */; }; + 9529F29615DBFD59000303A6 /* tdebug.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1D115DBFD59000303A6 /* tdebug.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F29715DBFD59000303A6 /* tfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1D215DBFD59000303A6 /* tfile.cpp */; }; + 9529F29815DBFD59000303A6 /* tfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1D315DBFD59000303A6 /* tfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F29915DBFD59000303A6 /* tfilestream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1D415DBFD59000303A6 /* tfilestream.cpp */; }; + 9529F29A15DBFD59000303A6 /* tfilestream.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1D515DBFD59000303A6 /* tfilestream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F29B15DBFD59000303A6 /* tiostream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1D615DBFD59000303A6 /* tiostream.cpp */; }; + 9529F29C15DBFD59000303A6 /* tiostream.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1D715DBFD59000303A6 /* tiostream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F29D15DBFD59000303A6 /* tlist.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1D815DBFD59000303A6 /* tlist.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F29F15DBFD59000303A6 /* tmap.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1DA15DBFD59000303A6 /* tmap.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F2A115DBFD59000303A6 /* tpropertymap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1DC15DBFD59000303A6 /* tpropertymap.cpp */; }; + 9529F2A215DBFD59000303A6 /* tpropertymap.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1DD15DBFD59000303A6 /* tpropertymap.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F2A315DBFD59000303A6 /* tstring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1DE15DBFD59000303A6 /* tstring.cpp */; }; + 9529F2A415DBFD59000303A6 /* tstring.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1DF15DBFD59000303A6 /* tstring.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F2A515DBFD59000303A6 /* tstringlist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1E015DBFD59000303A6 /* tstringlist.cpp */; }; + 9529F2A615DBFD59000303A6 /* tstringlist.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1E115DBFD59000303A6 /* tstringlist.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F2A715DBFD59000303A6 /* unicode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1E215DBFD59000303A6 /* unicode.cpp */; }; + 9529F2A815DBFD59000303A6 /* unicode.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1E315DBFD59000303A6 /* unicode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F2A915DBFD59000303A6 /* trueaudiofile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1E515DBFD59000303A6 /* trueaudiofile.cpp */; }; + 9529F2AA15DBFD59000303A6 /* trueaudiofile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1E615DBFD59000303A6 /* trueaudiofile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F2AB15DBFD59000303A6 /* trueaudioproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1E715DBFD59000303A6 /* trueaudioproperties.cpp */; }; + 9529F2AC15DBFD59000303A6 /* trueaudioproperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1E815DBFD59000303A6 /* trueaudioproperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F2AD15DBFD59000303A6 /* wavpackfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1EA15DBFD59000303A6 /* wavpackfile.cpp */; }; + 9529F2AE15DBFD59000303A6 /* wavpackfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1EB15DBFD59000303A6 /* wavpackfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F2AF15DBFD59000303A6 /* wavpackproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1EC15DBFD59000303A6 /* wavpackproperties.cpp */; }; + 9529F2B015DBFD59000303A6 /* wavpackproperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1ED15DBFD59000303A6 /* wavpackproperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F2B115DBFD59000303A6 /* xmfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1EF15DBFD59000303A6 /* xmfile.cpp */; }; + 9529F2B315DBFD59000303A6 /* xmproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1F115DBFD59000303A6 /* xmproperties.cpp */; }; + 9529F2B815DBFE1C000303A6 /* itfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F14315DBFD59000303A6 /* itfile.h */; }; + 9529F2B915DBFE1C000303A6 /* itproperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F14515DBFD59000303A6 /* itproperties.h */; }; + 9529F2BA15DBFE2A000303A6 /* modfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F14815DBFD59000303A6 /* modfile.h */; }; + 9529F2BB15DBFE2A000303A6 /* modfilebase.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F14A15DBFD59000303A6 /* modfilebase.h */; }; + 9529F2BC15DBFE2A000303A6 /* modfileprivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F14B15DBFD59000303A6 /* modfileprivate.h */; }; + 9529F2BD15DBFE2A000303A6 /* modtag.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F14F15DBFD59000303A6 /* modtag.h */; }; + 9529F2BE15DBFE39000303A6 /* s3mfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1BF15DBFD59000303A6 /* s3mfile.h */; }; + 9529F2BF15DBFE39000303A6 /* s3mproperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1C115DBFD59000303A6 /* s3mproperties.h */; }; + 9529F2C015DBFE39000303A6 /* xmfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1F015DBFD59000303A6 /* xmfile.h */; }; + 9529F2C115DBFE39000303A6 /* xmproperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1F215DBFD59000303A6 /* xmproperties.h */; }; + 9529F2C215DBFE55000303A6 /* tlist.tcc in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1D915DBFD59000303A6 /* tlist.tcc */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F2C315DBFE55000303A6 /* tmap.tcc in Headers */ = {isa = PBXBuildFile; fileRef = 9529F1DB15DBFD59000303A6 /* tmap.tcc */; settings = {ATTRIBUTES = (Public, ); }; }; + 9529F2C415DBFE98000303A6 /* modproperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F14D15DBFD59000303A6 /* modproperties.h */; }; + 9529F2C715DBFF0A000303A6 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F2C515DBFF0A000303A6 /* config.h */; }; + 9529F2C815DBFF0A000303A6 /* taglib_config.h in Headers */ = {isa = PBXBuildFile; fileRef = 9529F2C615DBFF0A000303A6 /* taglib_config.h */; settings = {ATTRIBUTES = (); }; }; + 9529F2DB15DC0134000303A6 /* apefile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F11C15DBFD59000303A6 /* apefile.cpp */; }; + 9529F2DC15DC0134000303A6 /* apefooter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F11E15DBFD59000303A6 /* apefooter.cpp */; }; + 9529F2DD15DC0134000303A6 /* apeitem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F12015DBFD59000303A6 /* apeitem.cpp */; }; + 9529F2DE15DC0134000303A6 /* apeproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F12215DBFD59000303A6 /* apeproperties.cpp */; }; + 9529F2DF15DC0134000303A6 /* apetag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F12415DBFD59000303A6 /* apetag.cpp */; }; + 9529F2E015DC0134000303A6 /* asfattribute.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F12715DBFD59000303A6 /* asfattribute.cpp */; }; + 9529F2E115DC0134000303A6 /* asffile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F12915DBFD59000303A6 /* asffile.cpp */; }; + 9529F2E215DC0134000303A6 /* asfpicture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F12B15DBFD59000303A6 /* asfpicture.cpp */; }; + 9529F2E315DC0134000303A6 /* asfproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F12D15DBFD59000303A6 /* asfproperties.cpp */; }; + 9529F2E415DC0134000303A6 /* asftag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F12F15DBFD59000303A6 /* asftag.cpp */; }; + 9529F2E515DC0134000303A6 /* audioproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F13115DBFD59000303A6 /* audioproperties.cpp */; }; + 9529F2E615DC0134000303A6 /* fileref.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F13415DBFD59000303A6 /* fileref.cpp */; }; + 9529F2E715DC0134000303A6 /* flacfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F13715DBFD59000303A6 /* flacfile.cpp */; }; + 9529F2E815DC0134000303A6 /* flacmetadatablock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F13915DBFD59000303A6 /* flacmetadatablock.cpp */; }; + 9529F2E915DC0134000303A6 /* flacpicture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F13B15DBFD59000303A6 /* flacpicture.cpp */; }; + 9529F2EA15DC0134000303A6 /* flacproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F13D15DBFD59000303A6 /* flacproperties.cpp */; }; + 9529F2EB15DC0134000303A6 /* flacunknownmetadatablock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F13F15DBFD59000303A6 /* flacunknownmetadatablock.cpp */; }; + 9529F2EC15DC0134000303A6 /* itfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F14215DBFD59000303A6 /* itfile.cpp */; }; + 9529F2ED15DC0134000303A6 /* itproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F14415DBFD59000303A6 /* itproperties.cpp */; }; + 9529F2EE15DC0134000303A6 /* modfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F14715DBFD59000303A6 /* modfile.cpp */; }; + 9529F2EF15DC0134000303A6 /* modfilebase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F14915DBFD59000303A6 /* modfilebase.cpp */; }; + 9529F2F015DC0134000303A6 /* modproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F14C15DBFD59000303A6 /* modproperties.cpp */; }; + 9529F2F115DC0134000303A6 /* modtag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F14E15DBFD59000303A6 /* modtag.cpp */; }; + 9529F2F215DC0134000303A6 /* mp4atom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F15115DBFD59000303A6 /* mp4atom.cpp */; }; + 9529F2F315DC0134000303A6 /* mp4coverart.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F15315DBFD59000303A6 /* mp4coverart.cpp */; }; + 9529F2F415DC0134000303A6 /* mp4file.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F15515DBFD59000303A6 /* mp4file.cpp */; }; + 9529F2F515DC0134000303A6 /* mp4item.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F15715DBFD59000303A6 /* mp4item.cpp */; }; + 9529F2F615DC0134000303A6 /* mp4properties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F15915DBFD59000303A6 /* mp4properties.cpp */; }; + 9529F2F715DC0134000303A6 /* mp4tag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F15B15DBFD59000303A6 /* mp4tag.cpp */; }; + 9529F2F815DC0134000303A6 /* mpcfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F15E15DBFD59000303A6 /* mpcfile.cpp */; }; + 9529F2F915DC0134000303A6 /* mpcproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F16015DBFD59000303A6 /* mpcproperties.cpp */; }; + 9529F2FA15DC0134000303A6 /* id3v1genres.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F16415DBFD59000303A6 /* id3v1genres.cpp */; }; + 9529F2FB15DC0134000303A6 /* id3v1tag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F16615DBFD59000303A6 /* id3v1tag.cpp */; }; + 9529F2FC15DC0134000303A6 /* attachedpictureframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F16A15DBFD59000303A6 /* attachedpictureframe.cpp */; }; + 9529F2FD15DC0134000303A6 /* commentsframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F16C15DBFD59000303A6 /* commentsframe.cpp */; }; + 9529F2FE15DC0134000303A6 /* generalencapsulatedobjectframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F16E15DBFD59000303A6 /* generalencapsulatedobjectframe.cpp */; }; + 9529F2FF15DC0134000303A6 /* popularimeterframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F17015DBFD59000303A6 /* popularimeterframe.cpp */; }; + 9529F30015DC0134000303A6 /* privateframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F17215DBFD59000303A6 /* privateframe.cpp */; }; + 9529F30115DC0134000303A6 /* relativevolumeframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F17415DBFD59000303A6 /* relativevolumeframe.cpp */; }; + 9529F30215DC0134000303A6 /* textidentificationframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F17615DBFD59000303A6 /* textidentificationframe.cpp */; }; + 9529F30315DC0134000303A6 /* uniquefileidentifierframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F17815DBFD59000303A6 /* uniquefileidentifierframe.cpp */; }; + 9529F30415DC0134000303A6 /* unknownframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F17A15DBFD59000303A6 /* unknownframe.cpp */; }; + 9529F30515DC0134000303A6 /* unsynchronizedlyricsframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F17C15DBFD59000303A6 /* unsynchronizedlyricsframe.cpp */; }; + 9529F30615DC0134000303A6 /* urllinkframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F17E15DBFD59000303A6 /* urllinkframe.cpp */; }; + 9529F30715DC0134000303A6 /* id3v2extendedheader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F18415DBFD59000303A6 /* id3v2extendedheader.cpp */; }; + 9529F30815DC0134000303A6 /* id3v2footer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F18615DBFD59000303A6 /* id3v2footer.cpp */; }; + 9529F30915DC0134000303A6 /* id3v2frame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F18815DBFD59000303A6 /* id3v2frame.cpp */; }; + 9529F30A15DC0134000303A6 /* id3v2framefactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F18A15DBFD59000303A6 /* id3v2framefactory.cpp */; }; + 9529F30B15DC0134000303A6 /* id3v2header.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F18C15DBFD59000303A6 /* id3v2header.cpp */; }; + 9529F30C15DC0134000303A6 /* id3v2synchdata.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F18E15DBFD59000303A6 /* id3v2synchdata.cpp */; }; + 9529F30D15DC0134000303A6 /* id3v2tag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F19015DBFD59000303A6 /* id3v2tag.cpp */; }; + 9529F30E15DC0134000303A6 /* mpegfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F19215DBFD59000303A6 /* mpegfile.cpp */; }; + 9529F30F15DC0134000303A6 /* mpegheader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F19415DBFD59000303A6 /* mpegheader.cpp */; }; + 9529F31015DC0134000303A6 /* mpegproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F19615DBFD59000303A6 /* mpegproperties.cpp */; }; + 9529F31115DC0134000303A6 /* xingheader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F19815DBFD59000303A6 /* xingheader.cpp */; }; + 9529F31215DC0134000303A6 /* oggflacfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F19C15DBFD59000303A6 /* oggflacfile.cpp */; }; + 9529F31315DC0134000303A6 /* oggfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F19E15DBFD59000303A6 /* oggfile.cpp */; }; + 9529F31415DC0135000303A6 /* oggpage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1A015DBFD59000303A6 /* oggpage.cpp */; }; + 9529F31515DC0135000303A6 /* oggpageheader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1A215DBFD59000303A6 /* oggpageheader.cpp */; }; + 9529F31615DC0135000303A6 /* speexfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1A515DBFD59000303A6 /* speexfile.cpp */; }; + 9529F31715DC0135000303A6 /* speexproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1A715DBFD59000303A6 /* speexproperties.cpp */; }; + 9529F31815DC0135000303A6 /* vorbisfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1AA15DBFD59000303A6 /* vorbisfile.cpp */; }; + 9529F31915DC0135000303A6 /* vorbisproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1AC15DBFD59000303A6 /* vorbisproperties.cpp */; }; + 9529F31A15DC0135000303A6 /* xiphcomment.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1AE15DBFD59000303A6 /* xiphcomment.cpp */; }; + 9529F31B15DC0135000303A6 /* aifffile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1B215DBFD59000303A6 /* aifffile.cpp */; }; + 9529F31C15DC0135000303A6 /* aiffproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1B415DBFD59000303A6 /* aiffproperties.cpp */; }; + 9529F31D15DC0135000303A6 /* rifffile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1B615DBFD59000303A6 /* rifffile.cpp */; }; + 9529F31E15DC0135000303A6 /* wavfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1B915DBFD59000303A6 /* wavfile.cpp */; }; + 9529F31F15DC0135000303A6 /* wavproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1BB15DBFD59000303A6 /* wavproperties.cpp */; }; + 9529F32015DC0135000303A6 /* s3mfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1BE15DBFD59000303A6 /* s3mfile.cpp */; }; + 9529F32115DC0135000303A6 /* s3mproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1C015DBFD59000303A6 /* s3mproperties.cpp */; }; + 9529F32215DC0135000303A6 /* tag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1C215DBFD59000303A6 /* tag.cpp */; }; + 9529F32315DC0135000303A6 /* tagunion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1C615DBFD59000303A6 /* tagunion.cpp */; }; + 9529F32415DC0135000303A6 /* tbytevector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1CA15DBFD59000303A6 /* tbytevector.cpp */; }; + 9529F32515DC0135000303A6 /* tbytevectorlist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1CC15DBFD59000303A6 /* tbytevectorlist.cpp */; }; + 9529F32615DC0135000303A6 /* tbytevectorstream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1CE15DBFD59000303A6 /* tbytevectorstream.cpp */; }; + 9529F32715DC0135000303A6 /* tdebug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1D015DBFD59000303A6 /* tdebug.cpp */; }; + 9529F32815DC0135000303A6 /* tfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1D215DBFD59000303A6 /* tfile.cpp */; }; + 9529F32915DC0135000303A6 /* tfilestream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1D415DBFD59000303A6 /* tfilestream.cpp */; }; + 9529F32A15DC0135000303A6 /* tiostream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1D615DBFD59000303A6 /* tiostream.cpp */; }; + 9529F32B15DC0135000303A6 /* tpropertymap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1DC15DBFD59000303A6 /* tpropertymap.cpp */; }; + 9529F32C15DC0135000303A6 /* tstring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1DE15DBFD59000303A6 /* tstring.cpp */; }; + 9529F32D15DC0135000303A6 /* tstringlist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1E015DBFD59000303A6 /* tstringlist.cpp */; }; + 9529F32E15DC0135000303A6 /* unicode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1E215DBFD59000303A6 /* unicode.cpp */; }; + 9529F32F15DC0135000303A6 /* trueaudiofile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1E515DBFD59000303A6 /* trueaudiofile.cpp */; }; + 9529F33015DC0135000303A6 /* trueaudioproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1E715DBFD59000303A6 /* trueaudioproperties.cpp */; }; + 9529F33115DC0135000303A6 /* wavpackfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1EA15DBFD59000303A6 /* wavpackfile.cpp */; }; + 9529F33215DC0135000303A6 /* wavpackproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1EC15DBFD59000303A6 /* wavpackproperties.cpp */; }; + 9529F33315DC0135000303A6 /* xmfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1EF15DBFD59000303A6 /* xmfile.cpp */; }; + 9529F33415DC0135000303A6 /* xmproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9529F1F115DBFD59000303A6 /* xmproperties.cpp */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9529F2CB15DC0097000303A6 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/${PRODUCT_NAME}"; + dstSubfolderSpec = 16; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 9529F10A15DBFC95000303A6 /* TagLib.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TagLib.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9529F10E15DBFC95000303A6 /* TagLib-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "TagLib-Info.plist"; sourceTree = ""; }; + 9529F11215DBFC95000303A6 /* TagLib-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "TagLib-Prefix.pch"; sourceTree = ""; }; + 9529F11C15DBFD59000303A6 /* apefile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = apefile.cpp; path = "../../taglib-src/taglib/ape/apefile.cpp"; sourceTree = ""; }; + 9529F11D15DBFD59000303A6 /* apefile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = apefile.h; path = "../../taglib-src/taglib/ape/apefile.h"; sourceTree = ""; }; + 9529F11E15DBFD59000303A6 /* apefooter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = apefooter.cpp; path = "../../taglib-src/taglib/ape/apefooter.cpp"; sourceTree = ""; }; + 9529F11F15DBFD59000303A6 /* apefooter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = apefooter.h; path = "../../taglib-src/taglib/ape/apefooter.h"; sourceTree = ""; }; + 9529F12015DBFD59000303A6 /* apeitem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = apeitem.cpp; path = "../../taglib-src/taglib/ape/apeitem.cpp"; sourceTree = ""; }; + 9529F12115DBFD59000303A6 /* apeitem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = apeitem.h; path = "../../taglib-src/taglib/ape/apeitem.h"; sourceTree = ""; }; + 9529F12215DBFD59000303A6 /* apeproperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = apeproperties.cpp; path = "../../taglib-src/taglib/ape/apeproperties.cpp"; sourceTree = ""; }; + 9529F12315DBFD59000303A6 /* apeproperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = apeproperties.h; path = "../../taglib-src/taglib/ape/apeproperties.h"; sourceTree = ""; }; + 9529F12415DBFD59000303A6 /* apetag.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = apetag.cpp; path = "../../taglib-src/taglib/ape/apetag.cpp"; sourceTree = ""; }; + 9529F12515DBFD59000303A6 /* apetag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = apetag.h; path = "../../taglib-src/taglib/ape/apetag.h"; sourceTree = ""; }; + 9529F12715DBFD59000303A6 /* asfattribute.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = asfattribute.cpp; sourceTree = ""; }; + 9529F12815DBFD59000303A6 /* asfattribute.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = asfattribute.h; sourceTree = ""; }; + 9529F12915DBFD59000303A6 /* asffile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = asffile.cpp; sourceTree = ""; }; + 9529F12A15DBFD59000303A6 /* asffile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = asffile.h; sourceTree = ""; }; + 9529F12B15DBFD59000303A6 /* asfpicture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = asfpicture.cpp; sourceTree = ""; }; + 9529F12C15DBFD59000303A6 /* asfpicture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = asfpicture.h; sourceTree = ""; }; + 9529F12D15DBFD59000303A6 /* asfproperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = asfproperties.cpp; sourceTree = ""; }; + 9529F12E15DBFD59000303A6 /* asfproperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = asfproperties.h; sourceTree = ""; }; + 9529F12F15DBFD59000303A6 /* asftag.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = asftag.cpp; sourceTree = ""; }; + 9529F13015DBFD59000303A6 /* asftag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = asftag.h; sourceTree = ""; }; + 9529F13115DBFD59000303A6 /* audioproperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = audioproperties.cpp; path = "../../taglib-src/taglib/audioproperties.cpp"; sourceTree = ""; }; + 9529F13215DBFD59000303A6 /* audioproperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = audioproperties.h; path = "../../taglib-src/taglib/audioproperties.h"; sourceTree = ""; }; + 9529F13415DBFD59000303A6 /* fileref.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = fileref.cpp; path = "../../taglib-src/taglib/fileref.cpp"; sourceTree = ""; }; + 9529F13515DBFD59000303A6 /* fileref.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fileref.h; path = "../../taglib-src/taglib/fileref.h"; sourceTree = ""; }; + 9529F13715DBFD59000303A6 /* flacfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = flacfile.cpp; sourceTree = ""; }; + 9529F13815DBFD59000303A6 /* flacfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flacfile.h; sourceTree = ""; }; + 9529F13915DBFD59000303A6 /* flacmetadatablock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = flacmetadatablock.cpp; sourceTree = ""; }; + 9529F13A15DBFD59000303A6 /* flacmetadatablock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flacmetadatablock.h; sourceTree = ""; }; + 9529F13B15DBFD59000303A6 /* flacpicture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = flacpicture.cpp; sourceTree = ""; }; + 9529F13C15DBFD59000303A6 /* flacpicture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flacpicture.h; sourceTree = ""; }; + 9529F13D15DBFD59000303A6 /* flacproperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = flacproperties.cpp; sourceTree = ""; }; + 9529F13E15DBFD59000303A6 /* flacproperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flacproperties.h; sourceTree = ""; }; + 9529F13F15DBFD59000303A6 /* flacunknownmetadatablock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = flacunknownmetadatablock.cpp; sourceTree = ""; }; + 9529F14015DBFD59000303A6 /* flacunknownmetadatablock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = flacunknownmetadatablock.h; sourceTree = ""; }; + 9529F14215DBFD59000303A6 /* itfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = itfile.cpp; sourceTree = ""; }; + 9529F14315DBFD59000303A6 /* itfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = itfile.h; sourceTree = ""; }; + 9529F14415DBFD59000303A6 /* itproperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = itproperties.cpp; sourceTree = ""; }; + 9529F14515DBFD59000303A6 /* itproperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = itproperties.h; sourceTree = ""; }; + 9529F14715DBFD59000303A6 /* modfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = modfile.cpp; sourceTree = ""; }; + 9529F14815DBFD59000303A6 /* modfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = modfile.h; sourceTree = ""; }; + 9529F14915DBFD59000303A6 /* modfilebase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = modfilebase.cpp; sourceTree = ""; }; + 9529F14A15DBFD59000303A6 /* modfilebase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = modfilebase.h; sourceTree = ""; }; + 9529F14B15DBFD59000303A6 /* modfileprivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = modfileprivate.h; sourceTree = ""; }; + 9529F14C15DBFD59000303A6 /* modproperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = modproperties.cpp; sourceTree = ""; }; + 9529F14D15DBFD59000303A6 /* modproperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = modproperties.h; sourceTree = ""; }; + 9529F14E15DBFD59000303A6 /* modtag.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = modtag.cpp; sourceTree = ""; }; + 9529F14F15DBFD59000303A6 /* modtag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = modtag.h; sourceTree = ""; }; + 9529F15115DBFD59000303A6 /* mp4atom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mp4atom.cpp; sourceTree = ""; }; + 9529F15215DBFD59000303A6 /* mp4atom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mp4atom.h; sourceTree = ""; }; + 9529F15315DBFD59000303A6 /* mp4coverart.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mp4coverart.cpp; sourceTree = ""; }; + 9529F15415DBFD59000303A6 /* mp4coverart.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mp4coverart.h; sourceTree = ""; }; + 9529F15515DBFD59000303A6 /* mp4file.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mp4file.cpp; sourceTree = ""; }; + 9529F15615DBFD59000303A6 /* mp4file.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mp4file.h; sourceTree = ""; }; + 9529F15715DBFD59000303A6 /* mp4item.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mp4item.cpp; sourceTree = ""; }; + 9529F15815DBFD59000303A6 /* mp4item.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mp4item.h; sourceTree = ""; }; + 9529F15915DBFD59000303A6 /* mp4properties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mp4properties.cpp; sourceTree = ""; }; + 9529F15A15DBFD59000303A6 /* mp4properties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mp4properties.h; sourceTree = ""; }; + 9529F15B15DBFD59000303A6 /* mp4tag.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mp4tag.cpp; sourceTree = ""; }; + 9529F15C15DBFD59000303A6 /* mp4tag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mp4tag.h; sourceTree = ""; }; + 9529F15E15DBFD59000303A6 /* mpcfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mpcfile.cpp; sourceTree = ""; }; + 9529F15F15DBFD59000303A6 /* mpcfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mpcfile.h; sourceTree = ""; }; + 9529F16015DBFD59000303A6 /* mpcproperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mpcproperties.cpp; sourceTree = ""; }; + 9529F16115DBFD59000303A6 /* mpcproperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mpcproperties.h; sourceTree = ""; }; + 9529F16415DBFD59000303A6 /* id3v1genres.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = id3v1genres.cpp; sourceTree = ""; }; + 9529F16515DBFD59000303A6 /* id3v1genres.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = id3v1genres.h; sourceTree = ""; }; + 9529F16615DBFD59000303A6 /* id3v1tag.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = id3v1tag.cpp; sourceTree = ""; }; + 9529F16715DBFD59000303A6 /* id3v1tag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = id3v1tag.h; sourceTree = ""; }; + 9529F16A15DBFD59000303A6 /* attachedpictureframe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = attachedpictureframe.cpp; sourceTree = ""; }; + 9529F16B15DBFD59000303A6 /* attachedpictureframe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = attachedpictureframe.h; sourceTree = ""; }; + 9529F16C15DBFD59000303A6 /* commentsframe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = commentsframe.cpp; sourceTree = ""; }; + 9529F16D15DBFD59000303A6 /* commentsframe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = commentsframe.h; sourceTree = ""; }; + 9529F16E15DBFD59000303A6 /* generalencapsulatedobjectframe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = generalencapsulatedobjectframe.cpp; sourceTree = ""; }; + 9529F16F15DBFD59000303A6 /* generalencapsulatedobjectframe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = generalencapsulatedobjectframe.h; sourceTree = ""; }; + 9529F17015DBFD59000303A6 /* popularimeterframe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = popularimeterframe.cpp; sourceTree = ""; }; + 9529F17115DBFD59000303A6 /* popularimeterframe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = popularimeterframe.h; sourceTree = ""; }; + 9529F17215DBFD59000303A6 /* privateframe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = privateframe.cpp; sourceTree = ""; }; + 9529F17315DBFD59000303A6 /* privateframe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = privateframe.h; sourceTree = ""; }; + 9529F17415DBFD59000303A6 /* relativevolumeframe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = relativevolumeframe.cpp; sourceTree = ""; }; + 9529F17515DBFD59000303A6 /* relativevolumeframe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = relativevolumeframe.h; sourceTree = ""; }; + 9529F17615DBFD59000303A6 /* textidentificationframe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = textidentificationframe.cpp; sourceTree = ""; }; + 9529F17715DBFD59000303A6 /* textidentificationframe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = textidentificationframe.h; sourceTree = ""; }; + 9529F17815DBFD59000303A6 /* uniquefileidentifierframe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = uniquefileidentifierframe.cpp; sourceTree = ""; }; + 9529F17915DBFD59000303A6 /* uniquefileidentifierframe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = uniquefileidentifierframe.h; sourceTree = ""; }; + 9529F17A15DBFD59000303A6 /* unknownframe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = unknownframe.cpp; sourceTree = ""; }; + 9529F17B15DBFD59000303A6 /* unknownframe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unknownframe.h; sourceTree = ""; }; + 9529F17C15DBFD59000303A6 /* unsynchronizedlyricsframe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = unsynchronizedlyricsframe.cpp; sourceTree = ""; }; + 9529F17D15DBFD59000303A6 /* unsynchronizedlyricsframe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unsynchronizedlyricsframe.h; sourceTree = ""; }; + 9529F17E15DBFD59000303A6 /* urllinkframe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = urllinkframe.cpp; sourceTree = ""; }; + 9529F17F15DBFD59000303A6 /* urllinkframe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = urllinkframe.h; sourceTree = ""; }; + 9529F18015DBFD59000303A6 /* id3v2.2.0.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = id3v2.2.0.txt; sourceTree = ""; }; + 9529F18115DBFD59000303A6 /* id3v2.3.0.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = id3v2.3.0.txt; sourceTree = ""; }; + 9529F18215DBFD59000303A6 /* id3v2.4.0-frames.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "id3v2.4.0-frames.txt"; sourceTree = ""; }; + 9529F18315DBFD59000303A6 /* id3v2.4.0-structure.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "id3v2.4.0-structure.txt"; sourceTree = ""; }; + 9529F18415DBFD59000303A6 /* id3v2extendedheader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = id3v2extendedheader.cpp; sourceTree = ""; }; + 9529F18515DBFD59000303A6 /* id3v2extendedheader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = id3v2extendedheader.h; sourceTree = ""; }; + 9529F18615DBFD59000303A6 /* id3v2footer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = id3v2footer.cpp; sourceTree = ""; }; + 9529F18715DBFD59000303A6 /* id3v2footer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = id3v2footer.h; sourceTree = ""; }; + 9529F18815DBFD59000303A6 /* id3v2frame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = id3v2frame.cpp; sourceTree = ""; }; + 9529F18915DBFD59000303A6 /* id3v2frame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = id3v2frame.h; sourceTree = ""; }; + 9529F18A15DBFD59000303A6 /* id3v2framefactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = id3v2framefactory.cpp; sourceTree = ""; }; + 9529F18B15DBFD59000303A6 /* id3v2framefactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = id3v2framefactory.h; sourceTree = ""; }; + 9529F18C15DBFD59000303A6 /* id3v2header.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = id3v2header.cpp; sourceTree = ""; }; + 9529F18D15DBFD59000303A6 /* id3v2header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = id3v2header.h; sourceTree = ""; }; + 9529F18E15DBFD59000303A6 /* id3v2synchdata.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = id3v2synchdata.cpp; sourceTree = ""; }; + 9529F18F15DBFD59000303A6 /* id3v2synchdata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = id3v2synchdata.h; sourceTree = ""; }; + 9529F19015DBFD59000303A6 /* id3v2tag.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = id3v2tag.cpp; sourceTree = ""; }; + 9529F19115DBFD59000303A6 /* id3v2tag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = id3v2tag.h; sourceTree = ""; }; + 9529F19215DBFD59000303A6 /* mpegfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mpegfile.cpp; sourceTree = ""; }; + 9529F19315DBFD59000303A6 /* mpegfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mpegfile.h; sourceTree = ""; }; + 9529F19415DBFD59000303A6 /* mpegheader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mpegheader.cpp; sourceTree = ""; }; + 9529F19515DBFD59000303A6 /* mpegheader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mpegheader.h; sourceTree = ""; }; + 9529F19615DBFD59000303A6 /* mpegproperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mpegproperties.cpp; sourceTree = ""; }; + 9529F19715DBFD59000303A6 /* mpegproperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mpegproperties.h; sourceTree = ""; }; + 9529F19815DBFD59000303A6 /* xingheader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xingheader.cpp; sourceTree = ""; }; + 9529F19915DBFD59000303A6 /* xingheader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xingheader.h; sourceTree = ""; }; + 9529F19C15DBFD59000303A6 /* oggflacfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = oggflacfile.cpp; sourceTree = ""; }; + 9529F19D15DBFD59000303A6 /* oggflacfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = oggflacfile.h; sourceTree = ""; }; + 9529F19E15DBFD59000303A6 /* oggfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = oggfile.cpp; sourceTree = ""; }; + 9529F19F15DBFD59000303A6 /* oggfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = oggfile.h; sourceTree = ""; }; + 9529F1A015DBFD59000303A6 /* oggpage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = oggpage.cpp; sourceTree = ""; }; + 9529F1A115DBFD59000303A6 /* oggpage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = oggpage.h; sourceTree = ""; }; + 9529F1A215DBFD59000303A6 /* oggpageheader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = oggpageheader.cpp; sourceTree = ""; }; + 9529F1A315DBFD59000303A6 /* oggpageheader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = oggpageheader.h; sourceTree = ""; }; + 9529F1A515DBFD59000303A6 /* speexfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = speexfile.cpp; sourceTree = ""; }; + 9529F1A615DBFD59000303A6 /* speexfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = speexfile.h; sourceTree = ""; }; + 9529F1A715DBFD59000303A6 /* speexproperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = speexproperties.cpp; sourceTree = ""; }; + 9529F1A815DBFD59000303A6 /* speexproperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = speexproperties.h; sourceTree = ""; }; + 9529F1AA15DBFD59000303A6 /* vorbisfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vorbisfile.cpp; sourceTree = ""; }; + 9529F1AB15DBFD59000303A6 /* vorbisfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vorbisfile.h; sourceTree = ""; }; + 9529F1AC15DBFD59000303A6 /* vorbisproperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vorbisproperties.cpp; sourceTree = ""; }; + 9529F1AD15DBFD59000303A6 /* vorbisproperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vorbisproperties.h; sourceTree = ""; }; + 9529F1AE15DBFD59000303A6 /* xiphcomment.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xiphcomment.cpp; sourceTree = ""; }; + 9529F1AF15DBFD59000303A6 /* xiphcomment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xiphcomment.h; sourceTree = ""; }; + 9529F1B215DBFD59000303A6 /* aifffile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = aifffile.cpp; sourceTree = ""; }; + 9529F1B315DBFD59000303A6 /* aifffile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aifffile.h; sourceTree = ""; }; + 9529F1B415DBFD59000303A6 /* aiffproperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = aiffproperties.cpp; sourceTree = ""; }; + 9529F1B515DBFD59000303A6 /* aiffproperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiffproperties.h; sourceTree = ""; }; + 9529F1B615DBFD59000303A6 /* rifffile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rifffile.cpp; sourceTree = ""; }; + 9529F1B715DBFD59000303A6 /* rifffile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rifffile.h; sourceTree = ""; }; + 9529F1B915DBFD59000303A6 /* wavfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wavfile.cpp; sourceTree = ""; }; + 9529F1BA15DBFD59000303A6 /* wavfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wavfile.h; sourceTree = ""; }; + 9529F1BB15DBFD59000303A6 /* wavproperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wavproperties.cpp; sourceTree = ""; }; + 9529F1BC15DBFD59000303A6 /* wavproperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wavproperties.h; sourceTree = ""; }; + 9529F1BE15DBFD59000303A6 /* s3mfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = s3mfile.cpp; sourceTree = ""; }; + 9529F1BF15DBFD59000303A6 /* s3mfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = s3mfile.h; sourceTree = ""; }; + 9529F1C015DBFD59000303A6 /* s3mproperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = s3mproperties.cpp; sourceTree = ""; }; + 9529F1C115DBFD59000303A6 /* s3mproperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = s3mproperties.h; sourceTree = ""; }; + 9529F1C215DBFD59000303A6 /* tag.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = tag.cpp; path = "../../taglib-src/taglib/tag.cpp"; sourceTree = ""; }; + 9529F1C315DBFD59000303A6 /* tag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tag.h; path = "../../taglib-src/taglib/tag.h"; sourceTree = ""; }; + 9529F1C515DBFD59000303A6 /* taglib_export.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = taglib_export.h; path = "../../taglib-src/taglib/taglib_export.h"; sourceTree = ""; }; + 9529F1C615DBFD59000303A6 /* tagunion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = tagunion.cpp; path = "../../taglib-src/taglib/tagunion.cpp"; sourceTree = ""; }; + 9529F1C715DBFD59000303A6 /* tagunion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tagunion.h; path = "../../taglib-src/taglib/tagunion.h"; sourceTree = ""; }; + 9529F1C915DBFD59000303A6 /* taglib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = taglib.h; sourceTree = ""; }; + 9529F1CA15DBFD59000303A6 /* tbytevector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tbytevector.cpp; sourceTree = ""; }; + 9529F1CB15DBFD59000303A6 /* tbytevector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tbytevector.h; sourceTree = ""; }; + 9529F1CC15DBFD59000303A6 /* tbytevectorlist.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tbytevectorlist.cpp; sourceTree = ""; }; + 9529F1CD15DBFD59000303A6 /* tbytevectorlist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tbytevectorlist.h; sourceTree = ""; }; + 9529F1CE15DBFD59000303A6 /* tbytevectorstream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tbytevectorstream.cpp; sourceTree = ""; }; + 9529F1CF15DBFD59000303A6 /* tbytevectorstream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tbytevectorstream.h; sourceTree = ""; }; + 9529F1D015DBFD59000303A6 /* tdebug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tdebug.cpp; sourceTree = ""; }; + 9529F1D115DBFD59000303A6 /* tdebug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tdebug.h; sourceTree = ""; }; + 9529F1D215DBFD59000303A6 /* tfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tfile.cpp; sourceTree = ""; }; + 9529F1D315DBFD59000303A6 /* tfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tfile.h; sourceTree = ""; }; + 9529F1D415DBFD59000303A6 /* tfilestream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tfilestream.cpp; sourceTree = ""; }; + 9529F1D515DBFD59000303A6 /* tfilestream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tfilestream.h; sourceTree = ""; }; + 9529F1D615DBFD59000303A6 /* tiostream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tiostream.cpp; sourceTree = ""; }; + 9529F1D715DBFD59000303A6 /* tiostream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tiostream.h; sourceTree = ""; }; + 9529F1D815DBFD59000303A6 /* tlist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tlist.h; sourceTree = ""; }; + 9529F1D915DBFD59000303A6 /* tlist.tcc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tlist.tcc; sourceTree = ""; }; + 9529F1DA15DBFD59000303A6 /* tmap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tmap.h; sourceTree = ""; }; + 9529F1DB15DBFD59000303A6 /* tmap.tcc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tmap.tcc; sourceTree = ""; }; + 9529F1DC15DBFD59000303A6 /* tpropertymap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tpropertymap.cpp; sourceTree = ""; }; + 9529F1DD15DBFD59000303A6 /* tpropertymap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tpropertymap.h; sourceTree = ""; }; + 9529F1DE15DBFD59000303A6 /* tstring.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tstring.cpp; sourceTree = ""; }; + 9529F1DF15DBFD59000303A6 /* tstring.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tstring.h; sourceTree = ""; }; + 9529F1E015DBFD59000303A6 /* tstringlist.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tstringlist.cpp; sourceTree = ""; }; + 9529F1E115DBFD59000303A6 /* tstringlist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tstringlist.h; sourceTree = ""; }; + 9529F1E215DBFD59000303A6 /* unicode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = unicode.cpp; sourceTree = ""; }; + 9529F1E315DBFD59000303A6 /* unicode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unicode.h; sourceTree = ""; }; + 9529F1E515DBFD59000303A6 /* trueaudiofile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = trueaudiofile.cpp; sourceTree = ""; }; + 9529F1E615DBFD59000303A6 /* trueaudiofile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = trueaudiofile.h; sourceTree = ""; }; + 9529F1E715DBFD59000303A6 /* trueaudioproperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = trueaudioproperties.cpp; sourceTree = ""; }; + 9529F1E815DBFD59000303A6 /* trueaudioproperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = trueaudioproperties.h; sourceTree = ""; }; + 9529F1EA15DBFD59000303A6 /* wavpackfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wavpackfile.cpp; sourceTree = ""; }; + 9529F1EB15DBFD59000303A6 /* wavpackfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wavpackfile.h; sourceTree = ""; }; + 9529F1EC15DBFD59000303A6 /* wavpackproperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wavpackproperties.cpp; sourceTree = ""; }; + 9529F1ED15DBFD59000303A6 /* wavpackproperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wavpackproperties.h; sourceTree = ""; }; + 9529F1EF15DBFD59000303A6 /* xmfile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xmfile.cpp; sourceTree = ""; }; + 9529F1F015DBFD59000303A6 /* xmfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xmfile.h; sourceTree = ""; }; + 9529F1F115DBFD59000303A6 /* xmproperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xmproperties.cpp; sourceTree = ""; }; + 9529F1F215DBFD59000303A6 /* xmproperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xmproperties.h; sourceTree = ""; }; + 9529F2C515DBFF0A000303A6 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = ""; }; + 9529F2C615DBFF0A000303A6 /* taglib_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = taglib_config.h; sourceTree = ""; }; + 9529F2CD15DC0097000303A6 /* libTagLib.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libTagLib.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 9529F2CF15DC0097000303A6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 9529F10415DBFC95000303A6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9529F2CA15DC0097000303A6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9529F0FB15DBFC95000303A6 = { + isa = PBXGroup; + children = ( + 9529F10C15DBFC95000303A6 /* TagLib */, + 9529F2CE15DC0097000303A6 /* Frameworks */, + 9529F10B15DBFC95000303A6 /* Products */, + ); + sourceTree = ""; + }; + 9529F10B15DBFC95000303A6 /* Products */ = { + isa = PBXGroup; + children = ( + 9529F10A15DBFC95000303A6 /* TagLib.framework */, + 9529F2CD15DC0097000303A6 /* libTagLib.a */, + ); + name = Products; + sourceTree = ""; + }; + 9529F10C15DBFC95000303A6 /* TagLib */ = { + isa = PBXGroup; + children = ( + 9529F2C515DBFF0A000303A6 /* config.h */, + 9529F2C615DBFF0A000303A6 /* taglib_config.h */, + 9529F11A15DBFD59000303A6 /* ape */, + 9529F11C15DBFD59000303A6 /* apefile.cpp */, + 9529F11D15DBFD59000303A6 /* apefile.h */, + 9529F11E15DBFD59000303A6 /* apefooter.cpp */, + 9529F11F15DBFD59000303A6 /* apefooter.h */, + 9529F12015DBFD59000303A6 /* apeitem.cpp */, + 9529F12115DBFD59000303A6 /* apeitem.h */, + 9529F12215DBFD59000303A6 /* apeproperties.cpp */, + 9529F12315DBFD59000303A6 /* apeproperties.h */, + 9529F12415DBFD59000303A6 /* apetag.cpp */, + 9529F12515DBFD59000303A6 /* apetag.h */, + 9529F12615DBFD59000303A6 /* asf */, + 9529F13115DBFD59000303A6 /* audioproperties.cpp */, + 9529F13215DBFD59000303A6 /* audioproperties.h */, + 9529F13415DBFD59000303A6 /* fileref.cpp */, + 9529F13515DBFD59000303A6 /* fileref.h */, + 9529F13615DBFD59000303A6 /* flac */, + 9529F14115DBFD59000303A6 /* it */, + 9529F14615DBFD59000303A6 /* mod */, + 9529F15015DBFD59000303A6 /* mp4 */, + 9529F15D15DBFD59000303A6 /* mpc */, + 9529F16215DBFD59000303A6 /* mpeg */, + 9529F19A15DBFD59000303A6 /* ogg */, + 9529F1B015DBFD59000303A6 /* riff */, + 9529F1BD15DBFD59000303A6 /* s3m */, + 9529F1C215DBFD59000303A6 /* tag.cpp */, + 9529F1C315DBFD59000303A6 /* tag.h */, + 9529F1C515DBFD59000303A6 /* taglib_export.h */, + 9529F1C615DBFD59000303A6 /* tagunion.cpp */, + 9529F1C715DBFD59000303A6 /* tagunion.h */, + 9529F1C815DBFD59000303A6 /* toolkit */, + 9529F1E415DBFD59000303A6 /* trueaudio */, + 9529F1E915DBFD59000303A6 /* wavpack */, + 9529F1EE15DBFD59000303A6 /* xm */, + 9529F10D15DBFC95000303A6 /* Supporting Files */, + ); + path = TagLib; + sourceTree = ""; + }; + 9529F10D15DBFC95000303A6 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 9529F10E15DBFC95000303A6 /* TagLib-Info.plist */, + 9529F11215DBFC95000303A6 /* TagLib-Prefix.pch */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 9529F11A15DBFD59000303A6 /* ape */ = { + isa = PBXGroup; + children = ( + ); + name = ape; + path = "../../taglib-src/taglib/ape"; + sourceTree = ""; + }; + 9529F12615DBFD59000303A6 /* asf */ = { + isa = PBXGroup; + children = ( + 9529F12715DBFD59000303A6 /* asfattribute.cpp */, + 9529F12815DBFD59000303A6 /* asfattribute.h */, + 9529F12915DBFD59000303A6 /* asffile.cpp */, + 9529F12A15DBFD59000303A6 /* asffile.h */, + 9529F12B15DBFD59000303A6 /* asfpicture.cpp */, + 9529F12C15DBFD59000303A6 /* asfpicture.h */, + 9529F12D15DBFD59000303A6 /* asfproperties.cpp */, + 9529F12E15DBFD59000303A6 /* asfproperties.h */, + 9529F12F15DBFD59000303A6 /* asftag.cpp */, + 9529F13015DBFD59000303A6 /* asftag.h */, + ); + name = asf; + path = "../../taglib-src/taglib/asf"; + sourceTree = ""; + }; + 9529F13615DBFD59000303A6 /* flac */ = { + isa = PBXGroup; + children = ( + 9529F13715DBFD59000303A6 /* flacfile.cpp */, + 9529F13815DBFD59000303A6 /* flacfile.h */, + 9529F13915DBFD59000303A6 /* flacmetadatablock.cpp */, + 9529F13A15DBFD59000303A6 /* flacmetadatablock.h */, + 9529F13B15DBFD59000303A6 /* flacpicture.cpp */, + 9529F13C15DBFD59000303A6 /* flacpicture.h */, + 9529F13D15DBFD59000303A6 /* flacproperties.cpp */, + 9529F13E15DBFD59000303A6 /* flacproperties.h */, + 9529F13F15DBFD59000303A6 /* flacunknownmetadatablock.cpp */, + 9529F14015DBFD59000303A6 /* flacunknownmetadatablock.h */, + ); + name = flac; + path = "../../taglib-src/taglib/flac"; + sourceTree = ""; + }; + 9529F14115DBFD59000303A6 /* it */ = { + isa = PBXGroup; + children = ( + 9529F14215DBFD59000303A6 /* itfile.cpp */, + 9529F14315DBFD59000303A6 /* itfile.h */, + 9529F14415DBFD59000303A6 /* itproperties.cpp */, + 9529F14515DBFD59000303A6 /* itproperties.h */, + ); + name = it; + path = "../../taglib-src/taglib/it"; + sourceTree = ""; + }; + 9529F14615DBFD59000303A6 /* mod */ = { + isa = PBXGroup; + children = ( + 9529F14715DBFD59000303A6 /* modfile.cpp */, + 9529F14815DBFD59000303A6 /* modfile.h */, + 9529F14915DBFD59000303A6 /* modfilebase.cpp */, + 9529F14A15DBFD59000303A6 /* modfilebase.h */, + 9529F14B15DBFD59000303A6 /* modfileprivate.h */, + 9529F14C15DBFD59000303A6 /* modproperties.cpp */, + 9529F14D15DBFD59000303A6 /* modproperties.h */, + 9529F14E15DBFD59000303A6 /* modtag.cpp */, + 9529F14F15DBFD59000303A6 /* modtag.h */, + ); + name = mod; + path = "../../taglib-src/taglib/mod"; + sourceTree = ""; + }; + 9529F15015DBFD59000303A6 /* mp4 */ = { + isa = PBXGroup; + children = ( + 9529F15115DBFD59000303A6 /* mp4atom.cpp */, + 9529F15215DBFD59000303A6 /* mp4atom.h */, + 9529F15315DBFD59000303A6 /* mp4coverart.cpp */, + 9529F15415DBFD59000303A6 /* mp4coverart.h */, + 9529F15515DBFD59000303A6 /* mp4file.cpp */, + 9529F15615DBFD59000303A6 /* mp4file.h */, + 9529F15715DBFD59000303A6 /* mp4item.cpp */, + 9529F15815DBFD59000303A6 /* mp4item.h */, + 9529F15915DBFD59000303A6 /* mp4properties.cpp */, + 9529F15A15DBFD59000303A6 /* mp4properties.h */, + 9529F15B15DBFD59000303A6 /* mp4tag.cpp */, + 9529F15C15DBFD59000303A6 /* mp4tag.h */, + ); + name = mp4; + path = "../../taglib-src/taglib/mp4"; + sourceTree = ""; + }; + 9529F15D15DBFD59000303A6 /* mpc */ = { + isa = PBXGroup; + children = ( + 9529F15E15DBFD59000303A6 /* mpcfile.cpp */, + 9529F15F15DBFD59000303A6 /* mpcfile.h */, + 9529F16015DBFD59000303A6 /* mpcproperties.cpp */, + 9529F16115DBFD59000303A6 /* mpcproperties.h */, + ); + name = mpc; + path = "../../taglib-src/taglib/mpc"; + sourceTree = ""; + }; + 9529F16215DBFD59000303A6 /* mpeg */ = { + isa = PBXGroup; + children = ( + 9529F16315DBFD59000303A6 /* id3v1 */, + 9529F16815DBFD59000303A6 /* id3v2 */, + 9529F19215DBFD59000303A6 /* mpegfile.cpp */, + 9529F19315DBFD59000303A6 /* mpegfile.h */, + 9529F19415DBFD59000303A6 /* mpegheader.cpp */, + 9529F19515DBFD59000303A6 /* mpegheader.h */, + 9529F19615DBFD59000303A6 /* mpegproperties.cpp */, + 9529F19715DBFD59000303A6 /* mpegproperties.h */, + 9529F19815DBFD59000303A6 /* xingheader.cpp */, + 9529F19915DBFD59000303A6 /* xingheader.h */, + ); + name = mpeg; + path = "../../taglib-src/taglib/mpeg"; + sourceTree = ""; + }; + 9529F16315DBFD59000303A6 /* id3v1 */ = { + isa = PBXGroup; + children = ( + 9529F16415DBFD59000303A6 /* id3v1genres.cpp */, + 9529F16515DBFD59000303A6 /* id3v1genres.h */, + 9529F16615DBFD59000303A6 /* id3v1tag.cpp */, + 9529F16715DBFD59000303A6 /* id3v1tag.h */, + ); + path = id3v1; + sourceTree = ""; + }; + 9529F16815DBFD59000303A6 /* id3v2 */ = { + isa = PBXGroup; + children = ( + 9529F16915DBFD59000303A6 /* frames */, + 9529F18015DBFD59000303A6 /* id3v2.2.0.txt */, + 9529F18115DBFD59000303A6 /* id3v2.3.0.txt */, + 9529F18215DBFD59000303A6 /* id3v2.4.0-frames.txt */, + 9529F18315DBFD59000303A6 /* id3v2.4.0-structure.txt */, + 9529F18415DBFD59000303A6 /* id3v2extendedheader.cpp */, + 9529F18515DBFD59000303A6 /* id3v2extendedheader.h */, + 9529F18615DBFD59000303A6 /* id3v2footer.cpp */, + 9529F18715DBFD59000303A6 /* id3v2footer.h */, + 9529F18815DBFD59000303A6 /* id3v2frame.cpp */, + 9529F18915DBFD59000303A6 /* id3v2frame.h */, + 9529F18A15DBFD59000303A6 /* id3v2framefactory.cpp */, + 9529F18B15DBFD59000303A6 /* id3v2framefactory.h */, + 9529F18C15DBFD59000303A6 /* id3v2header.cpp */, + 9529F18D15DBFD59000303A6 /* id3v2header.h */, + 9529F18E15DBFD59000303A6 /* id3v2synchdata.cpp */, + 9529F18F15DBFD59000303A6 /* id3v2synchdata.h */, + 9529F19015DBFD59000303A6 /* id3v2tag.cpp */, + 9529F19115DBFD59000303A6 /* id3v2tag.h */, + ); + path = id3v2; + sourceTree = ""; + }; + 9529F16915DBFD59000303A6 /* frames */ = { + isa = PBXGroup; + children = ( + 9529F16A15DBFD59000303A6 /* attachedpictureframe.cpp */, + 9529F16B15DBFD59000303A6 /* attachedpictureframe.h */, + 9529F16C15DBFD59000303A6 /* commentsframe.cpp */, + 9529F16D15DBFD59000303A6 /* commentsframe.h */, + 9529F16E15DBFD59000303A6 /* generalencapsulatedobjectframe.cpp */, + 9529F16F15DBFD59000303A6 /* generalencapsulatedobjectframe.h */, + 9529F17015DBFD59000303A6 /* popularimeterframe.cpp */, + 9529F17115DBFD59000303A6 /* popularimeterframe.h */, + 9529F17215DBFD59000303A6 /* privateframe.cpp */, + 9529F17315DBFD59000303A6 /* privateframe.h */, + 9529F17415DBFD59000303A6 /* relativevolumeframe.cpp */, + 9529F17515DBFD59000303A6 /* relativevolumeframe.h */, + 9529F17615DBFD59000303A6 /* textidentificationframe.cpp */, + 9529F17715DBFD59000303A6 /* textidentificationframe.h */, + 9529F17815DBFD59000303A6 /* uniquefileidentifierframe.cpp */, + 9529F17915DBFD59000303A6 /* uniquefileidentifierframe.h */, + 9529F17A15DBFD59000303A6 /* unknownframe.cpp */, + 9529F17B15DBFD59000303A6 /* unknownframe.h */, + 9529F17C15DBFD59000303A6 /* unsynchronizedlyricsframe.cpp */, + 9529F17D15DBFD59000303A6 /* unsynchronizedlyricsframe.h */, + 9529F17E15DBFD59000303A6 /* urllinkframe.cpp */, + 9529F17F15DBFD59000303A6 /* urllinkframe.h */, + ); + path = frames; + sourceTree = ""; + }; + 9529F19A15DBFD59000303A6 /* ogg */ = { + isa = PBXGroup; + children = ( + 9529F19B15DBFD59000303A6 /* flac */, + 9529F19E15DBFD59000303A6 /* oggfile.cpp */, + 9529F19F15DBFD59000303A6 /* oggfile.h */, + 9529F1A015DBFD59000303A6 /* oggpage.cpp */, + 9529F1A115DBFD59000303A6 /* oggpage.h */, + 9529F1A215DBFD59000303A6 /* oggpageheader.cpp */, + 9529F1A315DBFD59000303A6 /* oggpageheader.h */, + 9529F1A415DBFD59000303A6 /* speex */, + 9529F1A915DBFD59000303A6 /* vorbis */, + 9529F1AE15DBFD59000303A6 /* xiphcomment.cpp */, + 9529F1AF15DBFD59000303A6 /* xiphcomment.h */, + ); + name = ogg; + path = "../../taglib-src/taglib/ogg"; + sourceTree = ""; + }; + 9529F19B15DBFD59000303A6 /* flac */ = { + isa = PBXGroup; + children = ( + 9529F19C15DBFD59000303A6 /* oggflacfile.cpp */, + 9529F19D15DBFD59000303A6 /* oggflacfile.h */, + ); + path = flac; + sourceTree = ""; + }; + 9529F1A415DBFD59000303A6 /* speex */ = { + isa = PBXGroup; + children = ( + 9529F1A515DBFD59000303A6 /* speexfile.cpp */, + 9529F1A615DBFD59000303A6 /* speexfile.h */, + 9529F1A715DBFD59000303A6 /* speexproperties.cpp */, + 9529F1A815DBFD59000303A6 /* speexproperties.h */, + ); + path = speex; + sourceTree = ""; + }; + 9529F1A915DBFD59000303A6 /* vorbis */ = { + isa = PBXGroup; + children = ( + 9529F1AA15DBFD59000303A6 /* vorbisfile.cpp */, + 9529F1AB15DBFD59000303A6 /* vorbisfile.h */, + 9529F1AC15DBFD59000303A6 /* vorbisproperties.cpp */, + 9529F1AD15DBFD59000303A6 /* vorbisproperties.h */, + ); + path = vorbis; + sourceTree = ""; + }; + 9529F1B015DBFD59000303A6 /* riff */ = { + isa = PBXGroup; + children = ( + 9529F1B115DBFD59000303A6 /* aiff */, + 9529F1B615DBFD59000303A6 /* rifffile.cpp */, + 9529F1B715DBFD59000303A6 /* rifffile.h */, + 9529F1B815DBFD59000303A6 /* wav */, + ); + name = riff; + path = "../../taglib-src/taglib/riff"; + sourceTree = ""; + }; + 9529F1B115DBFD59000303A6 /* aiff */ = { + isa = PBXGroup; + children = ( + 9529F1B215DBFD59000303A6 /* aifffile.cpp */, + 9529F1B315DBFD59000303A6 /* aifffile.h */, + 9529F1B415DBFD59000303A6 /* aiffproperties.cpp */, + 9529F1B515DBFD59000303A6 /* aiffproperties.h */, + ); + path = aiff; + sourceTree = ""; + }; + 9529F1B815DBFD59000303A6 /* wav */ = { + isa = PBXGroup; + children = ( + 9529F1B915DBFD59000303A6 /* wavfile.cpp */, + 9529F1BA15DBFD59000303A6 /* wavfile.h */, + 9529F1BB15DBFD59000303A6 /* wavproperties.cpp */, + 9529F1BC15DBFD59000303A6 /* wavproperties.h */, + ); + path = wav; + sourceTree = ""; + }; + 9529F1BD15DBFD59000303A6 /* s3m */ = { + isa = PBXGroup; + children = ( + 9529F1BE15DBFD59000303A6 /* s3mfile.cpp */, + 9529F1BF15DBFD59000303A6 /* s3mfile.h */, + 9529F1C015DBFD59000303A6 /* s3mproperties.cpp */, + 9529F1C115DBFD59000303A6 /* s3mproperties.h */, + ); + name = s3m; + path = "../../taglib-src/taglib/s3m"; + sourceTree = ""; + }; + 9529F1C815DBFD59000303A6 /* toolkit */ = { + isa = PBXGroup; + children = ( + 9529F1C915DBFD59000303A6 /* taglib.h */, + 9529F1CA15DBFD59000303A6 /* tbytevector.cpp */, + 9529F1CB15DBFD59000303A6 /* tbytevector.h */, + 9529F1CC15DBFD59000303A6 /* tbytevectorlist.cpp */, + 9529F1CD15DBFD59000303A6 /* tbytevectorlist.h */, + 9529F1CE15DBFD59000303A6 /* tbytevectorstream.cpp */, + 9529F1CF15DBFD59000303A6 /* tbytevectorstream.h */, + 9529F1D015DBFD59000303A6 /* tdebug.cpp */, + 9529F1D115DBFD59000303A6 /* tdebug.h */, + 9529F1D215DBFD59000303A6 /* tfile.cpp */, + 9529F1D315DBFD59000303A6 /* tfile.h */, + 9529F1D415DBFD59000303A6 /* tfilestream.cpp */, + 9529F1D515DBFD59000303A6 /* tfilestream.h */, + 9529F1D615DBFD59000303A6 /* tiostream.cpp */, + 9529F1D715DBFD59000303A6 /* tiostream.h */, + 9529F1D815DBFD59000303A6 /* tlist.h */, + 9529F1D915DBFD59000303A6 /* tlist.tcc */, + 9529F1DA15DBFD59000303A6 /* tmap.h */, + 9529F1DB15DBFD59000303A6 /* tmap.tcc */, + 9529F1DC15DBFD59000303A6 /* tpropertymap.cpp */, + 9529F1DD15DBFD59000303A6 /* tpropertymap.h */, + 9529F1DE15DBFD59000303A6 /* tstring.cpp */, + 9529F1DF15DBFD59000303A6 /* tstring.h */, + 9529F1E015DBFD59000303A6 /* tstringlist.cpp */, + 9529F1E115DBFD59000303A6 /* tstringlist.h */, + 9529F1E215DBFD59000303A6 /* unicode.cpp */, + 9529F1E315DBFD59000303A6 /* unicode.h */, + ); + name = toolkit; + path = "../../taglib-src/taglib/toolkit"; + sourceTree = ""; + }; + 9529F1E415DBFD59000303A6 /* trueaudio */ = { + isa = PBXGroup; + children = ( + 9529F1E515DBFD59000303A6 /* trueaudiofile.cpp */, + 9529F1E615DBFD59000303A6 /* trueaudiofile.h */, + 9529F1E715DBFD59000303A6 /* trueaudioproperties.cpp */, + 9529F1E815DBFD59000303A6 /* trueaudioproperties.h */, + ); + name = trueaudio; + path = "../../taglib-src/taglib/trueaudio"; + sourceTree = ""; + }; + 9529F1E915DBFD59000303A6 /* wavpack */ = { + isa = PBXGroup; + children = ( + 9529F1EA15DBFD59000303A6 /* wavpackfile.cpp */, + 9529F1EB15DBFD59000303A6 /* wavpackfile.h */, + 9529F1EC15DBFD59000303A6 /* wavpackproperties.cpp */, + 9529F1ED15DBFD59000303A6 /* wavpackproperties.h */, + ); + name = wavpack; + path = "../../taglib-src/taglib/wavpack"; + sourceTree = ""; + }; + 9529F1EE15DBFD59000303A6 /* xm */ = { + isa = PBXGroup; + children = ( + 9529F1EF15DBFD59000303A6 /* xmfile.cpp */, + 9529F1F015DBFD59000303A6 /* xmfile.h */, + 9529F1F115DBFD59000303A6 /* xmproperties.cpp */, + 9529F1F215DBFD59000303A6 /* xmproperties.h */, + ); + name = xm; + path = "../../taglib-src/taglib/xm"; + sourceTree = ""; + }; + 9529F2CE15DC0097000303A6 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 9529F2CF15DC0097000303A6 /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 9529F10515DBFC95000303A6 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 9529F1F515DBFD59000303A6 /* apefile.h in Headers */, + 9529F1F715DBFD59000303A6 /* apefooter.h in Headers */, + 9529F1F915DBFD59000303A6 /* apeitem.h in Headers */, + 9529F1FB15DBFD59000303A6 /* apeproperties.h in Headers */, + 9529F1FD15DBFD59000303A6 /* apetag.h in Headers */, + 9529F1FF15DBFD59000303A6 /* asfattribute.h in Headers */, + 9529F20115DBFD59000303A6 /* asffile.h in Headers */, + 9529F20315DBFD59000303A6 /* asfpicture.h in Headers */, + 9529F20515DBFD59000303A6 /* asfproperties.h in Headers */, + 9529F20715DBFD59000303A6 /* asftag.h in Headers */, + 9529F20915DBFD59000303A6 /* audioproperties.h in Headers */, + 9529F20C15DBFD59000303A6 /* fileref.h in Headers */, + 9529F20E15DBFD59000303A6 /* flacfile.h in Headers */, + 9529F21015DBFD59000303A6 /* flacmetadatablock.h in Headers */, + 9529F21215DBFD59000303A6 /* flacpicture.h in Headers */, + 9529F21415DBFD59000303A6 /* flacproperties.h in Headers */, + 9529F21615DBFD59000303A6 /* flacunknownmetadatablock.h in Headers */, + 9529F22515DBFD59000303A6 /* mp4atom.h in Headers */, + 9529F22715DBFD59000303A6 /* mp4coverart.h in Headers */, + 9529F22915DBFD59000303A6 /* mp4file.h in Headers */, + 9529F22B15DBFD59000303A6 /* mp4item.h in Headers */, + 9529F22D15DBFD59000303A6 /* mp4properties.h in Headers */, + 9529F22F15DBFD59000303A6 /* mp4tag.h in Headers */, + 9529F23115DBFD59000303A6 /* mpcfile.h in Headers */, + 9529F23315DBFD59000303A6 /* mpcproperties.h in Headers */, + 9529F23515DBFD59000303A6 /* id3v1genres.h in Headers */, + 9529F23715DBFD59000303A6 /* id3v1tag.h in Headers */, + 9529F23915DBFD59000303A6 /* attachedpictureframe.h in Headers */, + 9529F23B15DBFD59000303A6 /* commentsframe.h in Headers */, + 9529F23D15DBFD59000303A6 /* generalencapsulatedobjectframe.h in Headers */, + 9529F23F15DBFD59000303A6 /* popularimeterframe.h in Headers */, + 9529F24115DBFD59000303A6 /* privateframe.h in Headers */, + 9529F24315DBFD59000303A6 /* relativevolumeframe.h in Headers */, + 9529F24515DBFD59000303A6 /* textidentificationframe.h in Headers */, + 9529F24715DBFD59000303A6 /* uniquefileidentifierframe.h in Headers */, + 9529F24915DBFD59000303A6 /* unknownframe.h in Headers */, + 9529F24B15DBFD59000303A6 /* unsynchronizedlyricsframe.h in Headers */, + 9529F24D15DBFD59000303A6 /* urllinkframe.h in Headers */, + 9529F25315DBFD59000303A6 /* id3v2extendedheader.h in Headers */, + 9529F25515DBFD59000303A6 /* id3v2footer.h in Headers */, + 9529F25715DBFD59000303A6 /* id3v2frame.h in Headers */, + 9529F25915DBFD59000303A6 /* id3v2framefactory.h in Headers */, + 9529F25B15DBFD59000303A6 /* id3v2header.h in Headers */, + 9529F25D15DBFD59000303A6 /* id3v2synchdata.h in Headers */, + 9529F25F15DBFD59000303A6 /* id3v2tag.h in Headers */, + 9529F26115DBFD59000303A6 /* mpegfile.h in Headers */, + 9529F26315DBFD59000303A6 /* mpegheader.h in Headers */, + 9529F26515DBFD59000303A6 /* mpegproperties.h in Headers */, + 9529F26715DBFD59000303A6 /* xingheader.h in Headers */, + 9529F26915DBFD59000303A6 /* oggflacfile.h in Headers */, + 9529F26B15DBFD59000303A6 /* oggfile.h in Headers */, + 9529F26D15DBFD59000303A6 /* oggpage.h in Headers */, + 9529F26F15DBFD59000303A6 /* oggpageheader.h in Headers */, + 9529F27115DBFD59000303A6 /* speexfile.h in Headers */, + 9529F27315DBFD59000303A6 /* speexproperties.h in Headers */, + 9529F27515DBFD59000303A6 /* vorbisfile.h in Headers */, + 9529F27715DBFD59000303A6 /* vorbisproperties.h in Headers */, + 9529F27915DBFD59000303A6 /* xiphcomment.h in Headers */, + 9529F27B15DBFD59000303A6 /* aifffile.h in Headers */, + 9529F27D15DBFD59000303A6 /* aiffproperties.h in Headers */, + 9529F27F15DBFD59000303A6 /* rifffile.h in Headers */, + 9529F28115DBFD59000303A6 /* wavfile.h in Headers */, + 9529F28315DBFD59000303A6 /* wavproperties.h in Headers */, + 9529F28915DBFD59000303A6 /* tag.h in Headers */, + 9529F28B15DBFD59000303A6 /* taglib_export.h in Headers */, + 9529F28D15DBFD59000303A6 /* tagunion.h in Headers */, + 9529F28E15DBFD59000303A6 /* taglib.h in Headers */, + 9529F29015DBFD59000303A6 /* tbytevector.h in Headers */, + 9529F29215DBFD59000303A6 /* tbytevectorlist.h in Headers */, + 9529F29415DBFD59000303A6 /* tbytevectorstream.h in Headers */, + 9529F29615DBFD59000303A6 /* tdebug.h in Headers */, + 9529F29815DBFD59000303A6 /* tfile.h in Headers */, + 9529F29A15DBFD59000303A6 /* tfilestream.h in Headers */, + 9529F29C15DBFD59000303A6 /* tiostream.h in Headers */, + 9529F29D15DBFD59000303A6 /* tlist.h in Headers */, + 9529F29F15DBFD59000303A6 /* tmap.h in Headers */, + 9529F2A215DBFD59000303A6 /* tpropertymap.h in Headers */, + 9529F2A415DBFD59000303A6 /* tstring.h in Headers */, + 9529F2A615DBFD59000303A6 /* tstringlist.h in Headers */, + 9529F2A815DBFD59000303A6 /* unicode.h in Headers */, + 9529F2AA15DBFD59000303A6 /* trueaudiofile.h in Headers */, + 9529F2AC15DBFD59000303A6 /* trueaudioproperties.h in Headers */, + 9529F2AE15DBFD59000303A6 /* wavpackfile.h in Headers */, + 9529F2B015DBFD59000303A6 /* wavpackproperties.h in Headers */, + 9529F2C215DBFE55000303A6 /* tlist.tcc in Headers */, + 9529F2C315DBFE55000303A6 /* tmap.tcc in Headers */, + 9529F2C815DBFF0A000303A6 /* taglib_config.h in Headers */, + 9529F2C415DBFE98000303A6 /* modproperties.h in Headers */, + 9529F2BE15DBFE39000303A6 /* s3mfile.h in Headers */, + 9529F2BF15DBFE39000303A6 /* s3mproperties.h in Headers */, + 9529F2C015DBFE39000303A6 /* xmfile.h in Headers */, + 9529F2C115DBFE39000303A6 /* xmproperties.h in Headers */, + 9529F2BA15DBFE2A000303A6 /* modfile.h in Headers */, + 9529F2BB15DBFE2A000303A6 /* modfilebase.h in Headers */, + 9529F2BC15DBFE2A000303A6 /* modfileprivate.h in Headers */, + 9529F2BD15DBFE2A000303A6 /* modtag.h in Headers */, + 9529F2B815DBFE1C000303A6 /* itfile.h in Headers */, + 9529F2B915DBFE1C000303A6 /* itproperties.h in Headers */, + 9529F2C715DBFF0A000303A6 /* config.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 9529F10915DBFC95000303A6 /* TagLib */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9529F11515DBFC95000303A6 /* Build configuration list for PBXNativeTarget "TagLib" */; + buildPhases = ( + 9529F10215DBFC95000303A6 /* ShellScript */, + 9529F10315DBFC95000303A6 /* Sources */, + 9529F10415DBFC95000303A6 /* Frameworks */, + 9529F10515DBFC95000303A6 /* Headers */, + 9529F10615DBFC95000303A6 /* Resources */, + 9529F10715DBFC95000303A6 /* ShellScript */, + 9529F10815DBFC95000303A6 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = TagLib; + productName = TagLib; + productReference = 9529F10A15DBFC95000303A6 /* TagLib.framework */; + productType = "com.apple.product-type.bundle"; + }; + 9529F2CC15DC0097000303A6 /* libTagLib */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9529F2D815DC0097000303A6 /* Build configuration list for PBXNativeTarget "libTagLib" */; + buildPhases = ( + 9529F2C915DC0097000303A6 /* Sources */, + 9529F2CA15DC0097000303A6 /* Frameworks */, + 9529F2CB15DC0097000303A6 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = libTagLib; + productName = libTagLib; + productReference = 9529F2CD15DC0097000303A6 /* libTagLib.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 9529F0FD15DBFC95000303A6 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0440; + }; + buildConfigurationList = 9529F10015DBFC95000303A6 /* Build configuration list for PBXProject "TagLib" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 9529F0FB15DBFC95000303A6; + productRefGroup = 9529F10B15DBFC95000303A6 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 9529F10915DBFC95000303A6 /* TagLib */, + 9529F2CC15DC0097000303A6 /* libTagLib */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 9529F10615DBFC95000303A6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9529F24E15DBFD59000303A6 /* id3v2.2.0.txt in Resources */, + 9529F24F15DBFD59000303A6 /* id3v2.3.0.txt in Resources */, + 9529F25015DBFD59000303A6 /* id3v2.4.0-frames.txt in Resources */, + 9529F25115DBFD59000303A6 /* id3v2.4.0-structure.txt in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9529F10215DBFC95000303A6 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nset +u\nif [[ $UFW_MASTER_SCRIPT_RUNNING ]]\nthen\n # Nothing for the slave script to do\n exit 0\nfi\nset -u\n\nif [[ \"$SDK_NAME\" =~ ([A-Za-z]+) ]]\nthen\n UFW_SDK_PLATFORM=${BASH_REMATCH[1]}\nelse\n echo \"Could not find platform name from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$SDK_NAME\" =~ ([0-9]+.*$) ]]\nthen\n\tUFW_SDK_VERSION=${BASH_REMATCH[1]}\nelse\n echo \"Could not find sdk version from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$UFW_SDK_PLATFORM\" = \"iphoneos\" ]]\nthen\n UFW_OTHER_PLATFORM=iphonesimulator\nelse\n UFW_OTHER_PLATFORM=iphoneos\nfi\n\nif [[ \"$BUILT_PRODUCTS_DIR\" =~ (.*)$UFW_SDK_PLATFORM$ ]]\nthen\n UFW_OTHER_BUILT_PRODUCTS_DIR=\"${BASH_REMATCH[1]}${UFW_OTHER_PLATFORM}\"\nelse\n echo \"Could not find $UFW_SDK_PLATFORM in $BUILT_PRODUCTS_DIR\"\n exit 1\nfi\n\n\n# Short-circuit if all binaries are up to date\n\nif [[ -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]] && \\\n [[ -f \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]] && \\\n [[ ! \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -nt \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]]\n [[ -f \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]] && \\\n [[ -f \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]] && \\\n [[ ! \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -nt \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]]\nthen\n exit 0\nfi\n\n\n# Clean other platform if needed\n\nif [[ ! -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]]\nthen\n\techo \"Platform \\\"$UFW_SDK_PLATFORM\\\" was cleaned recently. Cleaning \\\"$UFW_OTHER_PLATFORM\\\" as well\"\n\techo xcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" clean\n\txcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" clean\nfi\n\n\n# Make sure we are building from fresh binaries\n\nrm -rf \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\nrm -rf \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\nrm -rf \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\nrm -rf \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\n"; + }; + 9529F10715DBFC95000303A6 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "HEADERS_ROOT=$SRCROOT/$PRODUCT_NAME\nFRAMEWORK_HEADERS_DIR=\"$BUILT_PRODUCTS_DIR/$WRAPPER_NAME/Versions/$FRAMEWORK_VERSION/Headers\"\n\n## only header files expected at this point\nPUBLIC_HEADERS=$(find $FRAMEWORK_HEADERS_DIR/. -not -type d 2> /dev/null | sed -e \"s@.*/@@g\")\n\nFIND_OPTS=\"\"\nfor PUBLIC_HEADER in $PUBLIC_HEADERS; do\n if [ -n \"$FIND_OPTS\" ]; then\n FIND_OPTS=\"$FIND_OPTS -o\"\n fi\n FIND_OPTS=\"$FIND_OPTS -name '$PUBLIC_HEADER'\"\ndone\n\nif [ -n \"$FIND_OPTS\" ]; then\n for ORIG_HEADER in $(eval \"find $HEADERS_ROOT/. $FIND_OPTS\" 2> /dev/null | sed -e \"s@^$HEADERS_ROOT/./@@g\"); do\n PUBLIC_HEADER=$(basename $ORIG_HEADER)\n RELATIVE_PATH=$(dirname $ORIG_HEADER)\n if [ -e $FRAMEWORK_HEADERS_DIR/$PUBLIC_HEADER ]; then\n mkdir -p \"$FRAMEWORK_HEADERS_DIR/$RELATIVE_PATH\"\n mv \"$FRAMEWORK_HEADERS_DIR/$PUBLIC_HEADER\" \"$FRAMEWORK_HEADERS_DIR/$RELATIVE_PATH/$PUBLIC_HEADER\"\n fi\n done\nfi\n"; + }; + 9529F10815DBFC95000303A6 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nset +u\nif [[ $UFW_MASTER_SCRIPT_RUNNING ]]\nthen\n # Nothing for the slave script to do\n exit 0\nfi\nset -u\nexport UFW_MASTER_SCRIPT_RUNNING=1\n\n\n# Functions\n\n## List files in the specified directory, storing to the specified array.\n#\n# @param $1 The path to list\n# @param $2 The name of the array to fill\n#\n##\nlist_files ()\n{\n filelist=$(ls \"$1\")\n while read line\n do\n eval \"$2[\\${#$2[*]}]=\\\"\\$line\\\"\"\n done <<< \"$filelist\"\n}\n\n\n# Sanity check\n\nif [[ ! -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]]\nthen\n echo \"Framework target \\\"${TARGET_NAME}\\\" had no source files to build from. Make sure your source files have the correct target membership\"\n exit 1\nfi\n\n\n# Gather information\n\nif [[ \"$SDK_NAME\" =~ ([A-Za-z]+) ]]\nthen\n UFW_SDK_PLATFORM=${BASH_REMATCH[1]}\nelse\n echo \"Could not find platform name from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$SDK_NAME\" =~ ([0-9]+.*$) ]]\nthen\n UFW_SDK_VERSION=${BASH_REMATCH[1]}\nelse\n echo \"Could not find sdk version from SDK_NAME: $SDK_NAME\"\n exit 1\nfi\n\nif [[ \"$UFW_SDK_PLATFORM\" = \"iphoneos\" ]]\nthen\n UFW_OTHER_PLATFORM=iphonesimulator\nelse\n UFW_OTHER_PLATFORM=iphoneos\nfi\n\nif [[ \"$BUILT_PRODUCTS_DIR\" =~ (.*)$UFW_SDK_PLATFORM$ ]]\nthen\n UFW_OTHER_BUILT_PRODUCTS_DIR=\"${BASH_REMATCH[1]}${UFW_OTHER_PLATFORM}\"\nelse\n echo \"Could not find $UFW_SDK_PLATFORM in $BUILT_PRODUCTS_DIR\"\n exit 1\nfi\n\n\n# Short-circuit if all binaries are up to date.\n# We already checked the other platform in the prerun script.\n\nif [[ -f \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" ]] && [[ -f \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]] && [[ ! \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -nt \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/${EXECUTABLE_PATH}\" ]]\nthen\n exit 0\nfi\n\n\n# Make sure the other platform gets built\n\necho \"Build other platform\"\n\necho xcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" $ACTION\nxcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration \"${CONFIGURATION}\" -sdk ${UFW_OTHER_PLATFORM}${UFW_SDK_VERSION} BUILD_DIR=\"${BUILD_DIR}\" CONFIGURATION_TEMP_DIR=\"${PROJECT_TEMP_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\" $ACTION\n\n\n# Build the fat static library binary\n\necho \"Create universal static library\"\n\necho \"$PLATFORM_DEVELOPER_BIN_DIR/libtool\" -static \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -o \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\"\n\"$PLATFORM_DEVELOPER_BIN_DIR/libtool\" -static \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" \"${UFW_OTHER_BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\" -o \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\"\n\necho mv \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\" \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\nmv \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}.temp\" \"${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}\"\n\n\n# Build framework structure\n\necho \"Build symlinks\"\n\necho ln -sfh A \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Versions/Current\"\nln -sfh A \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Versions/Current\"\necho ln -sfh Versions/Current/Headers \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Headers\"\nln -sfh Versions/Current/Headers \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Headers\"\necho ln -sfh Versions/Current/Resources \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Resources\"\nln -sfh Versions/Current/Resources \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Resources\"\necho ln -sfh \"Versions/Current/${EXECUTABLE_NAME}\" \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${EXECUTABLE_NAME}\"\nln -sfh \"Versions/Current/${EXECUTABLE_NAME}\" \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${EXECUTABLE_NAME}\"\n\n\n# Link to binary for unit tests\n\nmkdir -p \"${BUILT_PRODUCTS_DIR}/.fake_fw_testing.framework\"\nln -sfh \"../${WRAPPER_NAME}/${EXECUTABLE_NAME}\" \"${BUILT_PRODUCTS_DIR}/.fake_fw_testing.framework/.fake_fw_testing\"\n\n\n# Build embedded framework structure\n\necho \"Build Embedded Framework\"\n\necho rm -rf \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\nrm -rf \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework\"\necho mkdir -p \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources\"\nmkdir -p \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources\"\necho cp -a \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/\"\ncp -a \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/\"\n\ndeclare -a UFW_FILE_LIST\nlist_files \"${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\" UFW_FILE_LIST\nfor filename in \"${UFW_FILE_LIST[@]}\"\ndo\n if [[ \"${filename}\" != \"Info.plist\" ]] && [[ ! \"${filename}\" =~ .*\\.lproj$ ]]\n then\n echo ln -sfh \"../${WRAPPER_NAME}/Resources/${filename}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources/${filename}\"\n ln -sfh \"../${WRAPPER_NAME}/Resources/${filename}\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.embeddedframework/Resources/${filename}\"\n fi\ndone\n\n\n# Replace other platform's framework with a copy of this one (so that both have the same universal binary)\n\necho \"Copy from $UFW_SDK_PLATFORM to $UFW_OTHER_PLATFORM\"\n\necho rm -rf \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\nrm -rf \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\necho cp -a \"${BUILD_DIR}/${CONFIGURATION}-${UFW_SDK_PLATFORM}\" \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\ncp -a \"${BUILD_DIR}/${CONFIGURATION}-${UFW_SDK_PLATFORM}\" \"${BUILD_DIR}/${CONFIGURATION}-${UFW_OTHER_PLATFORM}\"\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 9529F10315DBFC95000303A6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9529F1F415DBFD59000303A6 /* apefile.cpp in Sources */, + 9529F1F615DBFD59000303A6 /* apefooter.cpp in Sources */, + 9529F1F815DBFD59000303A6 /* apeitem.cpp in Sources */, + 9529F1FA15DBFD59000303A6 /* apeproperties.cpp in Sources */, + 9529F1FC15DBFD59000303A6 /* apetag.cpp in Sources */, + 9529F1FE15DBFD59000303A6 /* asfattribute.cpp in Sources */, + 9529F20015DBFD59000303A6 /* asffile.cpp in Sources */, + 9529F20215DBFD59000303A6 /* asfpicture.cpp in Sources */, + 9529F20415DBFD59000303A6 /* asfproperties.cpp in Sources */, + 9529F20615DBFD59000303A6 /* asftag.cpp in Sources */, + 9529F20815DBFD59000303A6 /* audioproperties.cpp in Sources */, + 9529F20B15DBFD59000303A6 /* fileref.cpp in Sources */, + 9529F20D15DBFD59000303A6 /* flacfile.cpp in Sources */, + 9529F20F15DBFD59000303A6 /* flacmetadatablock.cpp in Sources */, + 9529F21115DBFD59000303A6 /* flacpicture.cpp in Sources */, + 9529F21315DBFD59000303A6 /* flacproperties.cpp in Sources */, + 9529F21515DBFD59000303A6 /* flacunknownmetadatablock.cpp in Sources */, + 9529F21715DBFD59000303A6 /* itfile.cpp in Sources */, + 9529F21915DBFD59000303A6 /* itproperties.cpp in Sources */, + 9529F21B15DBFD59000303A6 /* modfile.cpp in Sources */, + 9529F21D15DBFD59000303A6 /* modfilebase.cpp in Sources */, + 9529F22015DBFD59000303A6 /* modproperties.cpp in Sources */, + 9529F22215DBFD59000303A6 /* modtag.cpp in Sources */, + 9529F22415DBFD59000303A6 /* mp4atom.cpp in Sources */, + 9529F22615DBFD59000303A6 /* mp4coverart.cpp in Sources */, + 9529F22815DBFD59000303A6 /* mp4file.cpp in Sources */, + 9529F22A15DBFD59000303A6 /* mp4item.cpp in Sources */, + 9529F22C15DBFD59000303A6 /* mp4properties.cpp in Sources */, + 9529F22E15DBFD59000303A6 /* mp4tag.cpp in Sources */, + 9529F23015DBFD59000303A6 /* mpcfile.cpp in Sources */, + 9529F23215DBFD59000303A6 /* mpcproperties.cpp in Sources */, + 9529F23415DBFD59000303A6 /* id3v1genres.cpp in Sources */, + 9529F23615DBFD59000303A6 /* id3v1tag.cpp in Sources */, + 9529F23815DBFD59000303A6 /* attachedpictureframe.cpp in Sources */, + 9529F23A15DBFD59000303A6 /* commentsframe.cpp in Sources */, + 9529F23C15DBFD59000303A6 /* generalencapsulatedobjectframe.cpp in Sources */, + 9529F23E15DBFD59000303A6 /* popularimeterframe.cpp in Sources */, + 9529F24015DBFD59000303A6 /* privateframe.cpp in Sources */, + 9529F24215DBFD59000303A6 /* relativevolumeframe.cpp in Sources */, + 9529F24415DBFD59000303A6 /* textidentificationframe.cpp in Sources */, + 9529F24615DBFD59000303A6 /* uniquefileidentifierframe.cpp in Sources */, + 9529F24815DBFD59000303A6 /* unknownframe.cpp in Sources */, + 9529F24A15DBFD59000303A6 /* unsynchronizedlyricsframe.cpp in Sources */, + 9529F24C15DBFD59000303A6 /* urllinkframe.cpp in Sources */, + 9529F25215DBFD59000303A6 /* id3v2extendedheader.cpp in Sources */, + 9529F25415DBFD59000303A6 /* id3v2footer.cpp in Sources */, + 9529F25615DBFD59000303A6 /* id3v2frame.cpp in Sources */, + 9529F25815DBFD59000303A6 /* id3v2framefactory.cpp in Sources */, + 9529F25A15DBFD59000303A6 /* id3v2header.cpp in Sources */, + 9529F25C15DBFD59000303A6 /* id3v2synchdata.cpp in Sources */, + 9529F25E15DBFD59000303A6 /* id3v2tag.cpp in Sources */, + 9529F26015DBFD59000303A6 /* mpegfile.cpp in Sources */, + 9529F26215DBFD59000303A6 /* mpegheader.cpp in Sources */, + 9529F26415DBFD59000303A6 /* mpegproperties.cpp in Sources */, + 9529F26615DBFD59000303A6 /* xingheader.cpp in Sources */, + 9529F26815DBFD59000303A6 /* oggflacfile.cpp in Sources */, + 9529F26A15DBFD59000303A6 /* oggfile.cpp in Sources */, + 9529F26C15DBFD59000303A6 /* oggpage.cpp in Sources */, + 9529F26E15DBFD59000303A6 /* oggpageheader.cpp in Sources */, + 9529F27015DBFD59000303A6 /* speexfile.cpp in Sources */, + 9529F27215DBFD59000303A6 /* speexproperties.cpp in Sources */, + 9529F27415DBFD59000303A6 /* vorbisfile.cpp in Sources */, + 9529F27615DBFD59000303A6 /* vorbisproperties.cpp in Sources */, + 9529F27815DBFD59000303A6 /* xiphcomment.cpp in Sources */, + 9529F27A15DBFD59000303A6 /* aifffile.cpp in Sources */, + 9529F27C15DBFD59000303A6 /* aiffproperties.cpp in Sources */, + 9529F27E15DBFD59000303A6 /* rifffile.cpp in Sources */, + 9529F28015DBFD59000303A6 /* wavfile.cpp in Sources */, + 9529F28215DBFD59000303A6 /* wavproperties.cpp in Sources */, + 9529F28415DBFD59000303A6 /* s3mfile.cpp in Sources */, + 9529F28615DBFD59000303A6 /* s3mproperties.cpp in Sources */, + 9529F28815DBFD59000303A6 /* tag.cpp in Sources */, + 9529F28C15DBFD59000303A6 /* tagunion.cpp in Sources */, + 9529F28F15DBFD59000303A6 /* tbytevector.cpp in Sources */, + 9529F29115DBFD59000303A6 /* tbytevectorlist.cpp in Sources */, + 9529F29315DBFD59000303A6 /* tbytevectorstream.cpp in Sources */, + 9529F29515DBFD59000303A6 /* tdebug.cpp in Sources */, + 9529F29715DBFD59000303A6 /* tfile.cpp in Sources */, + 9529F29915DBFD59000303A6 /* tfilestream.cpp in Sources */, + 9529F29B15DBFD59000303A6 /* tiostream.cpp in Sources */, + 9529F2A115DBFD59000303A6 /* tpropertymap.cpp in Sources */, + 9529F2A315DBFD59000303A6 /* tstring.cpp in Sources */, + 9529F2A515DBFD59000303A6 /* tstringlist.cpp in Sources */, + 9529F2A715DBFD59000303A6 /* unicode.cpp in Sources */, + 9529F2A915DBFD59000303A6 /* trueaudiofile.cpp in Sources */, + 9529F2AB15DBFD59000303A6 /* trueaudioproperties.cpp in Sources */, + 9529F2AD15DBFD59000303A6 /* wavpackfile.cpp in Sources */, + 9529F2AF15DBFD59000303A6 /* wavpackproperties.cpp in Sources */, + 9529F2B115DBFD59000303A6 /* xmfile.cpp in Sources */, + 9529F2B315DBFD59000303A6 /* xmproperties.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9529F2C915DC0097000303A6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9529F2DB15DC0134000303A6 /* apefile.cpp in Sources */, + 9529F2DC15DC0134000303A6 /* apefooter.cpp in Sources */, + 9529F2DD15DC0134000303A6 /* apeitem.cpp in Sources */, + 9529F2DE15DC0134000303A6 /* apeproperties.cpp in Sources */, + 9529F2DF15DC0134000303A6 /* apetag.cpp in Sources */, + 9529F2E015DC0134000303A6 /* asfattribute.cpp in Sources */, + 9529F2E115DC0134000303A6 /* asffile.cpp in Sources */, + 9529F2E215DC0134000303A6 /* asfpicture.cpp in Sources */, + 9529F2E315DC0134000303A6 /* asfproperties.cpp in Sources */, + 9529F2E415DC0134000303A6 /* asftag.cpp in Sources */, + 9529F2E515DC0134000303A6 /* audioproperties.cpp in Sources */, + 9529F2E615DC0134000303A6 /* fileref.cpp in Sources */, + 9529F2E715DC0134000303A6 /* flacfile.cpp in Sources */, + 9529F2E815DC0134000303A6 /* flacmetadatablock.cpp in Sources */, + 9529F2E915DC0134000303A6 /* flacpicture.cpp in Sources */, + 9529F2EA15DC0134000303A6 /* flacproperties.cpp in Sources */, + 9529F2EB15DC0134000303A6 /* flacunknownmetadatablock.cpp in Sources */, + 9529F2EC15DC0134000303A6 /* itfile.cpp in Sources */, + 9529F2ED15DC0134000303A6 /* itproperties.cpp in Sources */, + 9529F2EE15DC0134000303A6 /* modfile.cpp in Sources */, + 9529F2EF15DC0134000303A6 /* modfilebase.cpp in Sources */, + 9529F2F015DC0134000303A6 /* modproperties.cpp in Sources */, + 9529F2F115DC0134000303A6 /* modtag.cpp in Sources */, + 9529F2F215DC0134000303A6 /* mp4atom.cpp in Sources */, + 9529F2F315DC0134000303A6 /* mp4coverart.cpp in Sources */, + 9529F2F415DC0134000303A6 /* mp4file.cpp in Sources */, + 9529F2F515DC0134000303A6 /* mp4item.cpp in Sources */, + 9529F2F615DC0134000303A6 /* mp4properties.cpp in Sources */, + 9529F2F715DC0134000303A6 /* mp4tag.cpp in Sources */, + 9529F2F815DC0134000303A6 /* mpcfile.cpp in Sources */, + 9529F2F915DC0134000303A6 /* mpcproperties.cpp in Sources */, + 9529F2FA15DC0134000303A6 /* id3v1genres.cpp in Sources */, + 9529F2FB15DC0134000303A6 /* id3v1tag.cpp in Sources */, + 9529F2FC15DC0134000303A6 /* attachedpictureframe.cpp in Sources */, + 9529F2FD15DC0134000303A6 /* commentsframe.cpp in Sources */, + 9529F2FE15DC0134000303A6 /* generalencapsulatedobjectframe.cpp in Sources */, + 9529F2FF15DC0134000303A6 /* popularimeterframe.cpp in Sources */, + 9529F30015DC0134000303A6 /* privateframe.cpp in Sources */, + 9529F30115DC0134000303A6 /* relativevolumeframe.cpp in Sources */, + 9529F30215DC0134000303A6 /* textidentificationframe.cpp in Sources */, + 9529F30315DC0134000303A6 /* uniquefileidentifierframe.cpp in Sources */, + 9529F30415DC0134000303A6 /* unknownframe.cpp in Sources */, + 9529F30515DC0134000303A6 /* unsynchronizedlyricsframe.cpp in Sources */, + 9529F30615DC0134000303A6 /* urllinkframe.cpp in Sources */, + 9529F30715DC0134000303A6 /* id3v2extendedheader.cpp in Sources */, + 9529F30815DC0134000303A6 /* id3v2footer.cpp in Sources */, + 9529F30915DC0134000303A6 /* id3v2frame.cpp in Sources */, + 9529F30A15DC0134000303A6 /* id3v2framefactory.cpp in Sources */, + 9529F30B15DC0134000303A6 /* id3v2header.cpp in Sources */, + 9529F30C15DC0134000303A6 /* id3v2synchdata.cpp in Sources */, + 9529F30D15DC0134000303A6 /* id3v2tag.cpp in Sources */, + 9529F30E15DC0134000303A6 /* mpegfile.cpp in Sources */, + 9529F30F15DC0134000303A6 /* mpegheader.cpp in Sources */, + 9529F31015DC0134000303A6 /* mpegproperties.cpp in Sources */, + 9529F31115DC0134000303A6 /* xingheader.cpp in Sources */, + 9529F31215DC0134000303A6 /* oggflacfile.cpp in Sources */, + 9529F31315DC0134000303A6 /* oggfile.cpp in Sources */, + 9529F31415DC0135000303A6 /* oggpage.cpp in Sources */, + 9529F31515DC0135000303A6 /* oggpageheader.cpp in Sources */, + 9529F31615DC0135000303A6 /* speexfile.cpp in Sources */, + 9529F31715DC0135000303A6 /* speexproperties.cpp in Sources */, + 9529F31815DC0135000303A6 /* vorbisfile.cpp in Sources */, + 9529F31915DC0135000303A6 /* vorbisproperties.cpp in Sources */, + 9529F31A15DC0135000303A6 /* xiphcomment.cpp in Sources */, + 9529F31B15DC0135000303A6 /* aifffile.cpp in Sources */, + 9529F31C15DC0135000303A6 /* aiffproperties.cpp in Sources */, + 9529F31D15DC0135000303A6 /* rifffile.cpp in Sources */, + 9529F31E15DC0135000303A6 /* wavfile.cpp in Sources */, + 9529F31F15DC0135000303A6 /* wavproperties.cpp in Sources */, + 9529F32015DC0135000303A6 /* s3mfile.cpp in Sources */, + 9529F32115DC0135000303A6 /* s3mproperties.cpp in Sources */, + 9529F32215DC0135000303A6 /* tag.cpp in Sources */, + 9529F32315DC0135000303A6 /* tagunion.cpp in Sources */, + 9529F32415DC0135000303A6 /* tbytevector.cpp in Sources */, + 9529F32515DC0135000303A6 /* tbytevectorlist.cpp in Sources */, + 9529F32615DC0135000303A6 /* tbytevectorstream.cpp in Sources */, + 9529F32715DC0135000303A6 /* tdebug.cpp in Sources */, + 9529F32815DC0135000303A6 /* tfile.cpp in Sources */, + 9529F32915DC0135000303A6 /* tfilestream.cpp in Sources */, + 9529F32A15DC0135000303A6 /* tiostream.cpp in Sources */, + 9529F32B15DC0135000303A6 /* tpropertymap.cpp in Sources */, + 9529F32C15DC0135000303A6 /* tstring.cpp in Sources */, + 9529F32D15DC0135000303A6 /* tstringlist.cpp in Sources */, + 9529F32E15DC0135000303A6 /* unicode.cpp in Sources */, + 9529F32F15DC0135000303A6 /* trueaudiofile.cpp in Sources */, + 9529F33015DC0135000303A6 /* trueaudioproperties.cpp in Sources */, + 9529F33115DC0135000303A6 /* wavpackfile.cpp in Sources */, + 9529F33215DC0135000303A6 /* wavpackproperties.cpp in Sources */, + 9529F33315DC0135000303A6 /* xmfile.cpp in Sources */, + 9529F33415DC0135000303A6 /* xmproperties.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 9529F11315DBFC95000303A6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 5.1; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 9529F11415DBFC95000303A6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 5.1; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 9529F11615DBFC95000303A6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CONTENTS_FOLDER_PATH = "$(WRAPPER_NAME)/Versions/$(FRAMEWORK_VERSION)"; + DEAD_CODE_STRIPPING = NO; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "TagLib/TagLib-Prefix.pch"; + INFOPLIST_FILE = "TagLib/TagLib-Info.plist"; + INFOPLIST_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Info.plist"; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + LINK_WITH_STANDARD_LIBRARIES = NO; + MACH_O_TYPE = mh_object; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + UNLOCALIZED_RESOURCES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Resources"; + WRAPPER_EXTENSION = framework; + }; + name = Debug; + }; + 9529F11715DBFC95000303A6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CONTENTS_FOLDER_PATH = "$(WRAPPER_NAME)/Versions/$(FRAMEWORK_VERSION)"; + DEAD_CODE_STRIPPING = NO; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "TagLib/TagLib-Prefix.pch"; + INFOPLIST_FILE = "TagLib/TagLib-Info.plist"; + INFOPLIST_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Info.plist"; + INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; + LINK_WITH_STANDARD_LIBRARIES = NO; + MACH_O_TYPE = mh_object; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + UNLOCALIZED_RESOURCES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Resources"; + WRAPPER_EXTENSION = framework; + }; + name = Release; + }; + 9529F2D915DC0097000303A6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + DSTROOT = /tmp/libTagLib.dst; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + HEADER_SEARCH_PATHS = "../taglib-src/taglib/**"; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = TagLib; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 9529F2DA15DC0097000303A6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DSTROOT = /tmp/libTagLib.dst; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + HEADER_SEARCH_PATHS = "../taglib-src/taglib/**"; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = TagLib; + SKIP_INSTALL = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 9529F10015DBFC95000303A6 /* Build configuration list for PBXProject "TagLib" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9529F11315DBFC95000303A6 /* Debug */, + 9529F11415DBFC95000303A6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9529F11515DBFC95000303A6 /* Build configuration list for PBXNativeTarget "TagLib" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9529F11615DBFC95000303A6 /* Debug */, + 9529F11715DBFC95000303A6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; + 9529F2D815DC0097000303A6 /* Build configuration list for PBXNativeTarget "libTagLib" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9529F2D915DC0097000303A6 /* Debug */, + 9529F2DA15DC0097000303A6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = 9529F0FD15DBFC95000303A6 /* Project object */; +} diff --git a/Audio-Frameworks/TagLib/TagLib/TagLib-Info.plist b/Audio-Frameworks/TagLib/TagLib/TagLib-Info.plist new file mode 100644 index 0000000..8344a95 --- /dev/null +++ b/Audio-Frameworks/TagLib/TagLib/TagLib-Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + ap4y.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSPrincipalClass + + + diff --git a/Audio-Frameworks/TagLib/TagLib/TagLib-Prefix.pch b/Audio-Frameworks/TagLib/TagLib/TagLib-Prefix.pch new file mode 100644 index 0000000..4090e44 --- /dev/null +++ b/Audio-Frameworks/TagLib/TagLib/TagLib-Prefix.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'TagLib' target in the 'TagLib' project +// + +#ifdef __OBJC__ + #import +#endif diff --git a/Audio-Frameworks/TagLib/TagLib/config.h b/Audio-Frameworks/TagLib/TagLib/config.h new file mode 100755 index 0000000..febaf17 --- /dev/null +++ b/Audio-Frameworks/TagLib/TagLib/config.h @@ -0,0 +1,77 @@ +/* config.h. Generated from config.h.in by configure. */ +/* config.h.in. Generated from configure.in by autoheader. */ + +/* have cppunit */ +#define HAVE_CPPUNIT 0 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* have zlib */ +#define HAVE_ZLIB 1 + +/* Suffix for lib directories */ +#define KDELIBSUFF "" + +/* Name of package */ +#define PACKAGE "taglib" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "" + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* With ASF support */ +#define TAGLIB_WITH_ASF 1 + +/* With MP4 support */ +#define TAGLIB_WITH_MP4 1 + +/* Version number of package */ +#define VERSION "1.6.3" + +/* With ASF support */ +#define WITH_ASF 1 + +/* With MP4 support */ +#define WITH_MP4 1 diff --git a/Audio-Frameworks/TagLib/TagLib/taglib_config.h b/Audio-Frameworks/TagLib/TagLib/taglib_config.h new file mode 100755 index 0000000..0f499e2 --- /dev/null +++ b/Audio-Frameworks/TagLib/TagLib/taglib_config.h @@ -0,0 +1,4 @@ +/* taglib_config.h. Generated by cmake from taglib_config.h.cmake */ + +#define TAGLIB_WITH_ASF 1 +#define TAGLIB_WITH_MP4 1 diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/CyberLink b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/CyberLink new file mode 120000 index 0000000..0f7a952 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/CyberLink @@ -0,0 +1 @@ +Versions/Current/CyberLink \ No newline at end of file diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Headers b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Headers new file mode 120000 index 0000000..a177d2a --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Resources b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Resources new file mode 120000 index 0000000..953ee36 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/CyberLink b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/CyberLink new file mode 100644 index 0000000000000000000000000000000000000000..560023b55de179eddd0d176f5b2a43ec27ee2d2d GIT binary patch literal 562136 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 +#include +#include +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#define CG_UPNP_ACTION_ELEM_NAME "action" +#define CG_UPNP_ACTIONLIST_ELEM_NAME "actionList" + +#define CG_UPNP_ACTION_NAME "name" + +/**************************************** +* Data Type +****************************************/ + +typedef struct _CgUpnpAction { + BOOL headFlag; + struct _CgUpnpAction *prev; + struct _CgUpnpAction *next; + void *parentService; + CgXmlNode *actionNode; + CgUpnpArgumentList *argumentList; + /**** Execution Data ****/ + BOOL (*listener)(struct _CgUpnpAction *); + CgUpnpStatus *upnpStatus; + void *userData; +} CgUpnpAction, CgUpnpActionList; + +typedef BOOL (*CG_UPNP_ACTION_LISTNER)(CgUpnpAction *); + +/**************************************************************************** + * Function (Action) + ****************************************************************************/ + +/** + * Create a new action + * + * @return CgUpnpAction* + */ +CgUpnpAction *cg_upnp_action_new(); + +/** + * Destroy an action + * + * @param action The action to destroy + */ +void cg_upnp_action_delete(CgUpnpAction *action); + +/** + * Get the next action in a list of actions. Use as an iterator. + * + * @param action The current action + */ +#define cg_upnp_action_next(action) (CgUpnpAction *)cg_list_next((CgList *)action) + +/** + * Check, whether the given XML node is an action node + * + * @param node The CgXmlNode* + */ +#define cg_upnp_action_isactionnode(node) cg_xml_node_isname(node, CG_UPNP_ACTION_ELEM_NAME) + +/**************************************************************************** + * XML Node + ****************************************************************************/ + +/** + * Set the action's XML node (i.e. the XML representation of the action) + * + * @param action The action in question + * @param node The CgXmlNode* + */ +void cg_upnp_action_setactionnode(CgUpnpAction *action, CgXmlNode *node); + +/** + * Get the action's XML node (i.e. the XML representation of the action) + * + * @param action The action in question + * @return CgXmlNode* + */ +#define cg_upnp_action_getactionnode(action) (action->actionNode) + +/**************************************************************************** + * Service + ****************************************************************************/ + +/** + * Set the action's parent service + * + * @param action The action in question + * @param service The action's parent service + */ +#define cg_upnp_action_setservice(action, service) (action->parentService = service) + +/** + * Get the action's parent service + * + * @param action The action in question + * @return CgUpnpService* + */ +#define cg_upnp_action_getservice(action) ((CgUpnpService *)action->parentService) + +/**************************************************************************** + * Name + ****************************************************************************/ + +/** + * Set the action's name + * + * @param action The action in question + * @param value The action's name + */ +#define cg_upnp_action_setname(action, value) cg_xml_node_setchildnode(cg_upnp_action_getactionnode(action), CG_UPNP_ACTION_NAME, value) + +/** + * Get the action's name + * + * @param action The action in question + * @return char* + */ +#define cg_upnp_action_getname(action) cg_xml_node_getchildnodevalue(cg_upnp_action_getactionnode(action), CG_UPNP_ACTION_NAME) + +/** + * Check, whether the action's name matches the one given as parameter. + * + * @param action The action in question + * @param name The name string to compare + */ +#define cg_upnp_action_isname(action, name) cg_streq(cg_upnp_action_getname(action), name) + +/**************************************************************************** + * Argument + ****************************************************************************/ + +/** + * Get the action's list of arguments + * + * @param action The action in question + * @return CgUpnpArgumentList* + */ +#define cg_upnp_action_getargumentlist(action) (action->argumentList) + +/** + * Get the first argument from the action's list of arguments. Use as the + * starting point in iteration loops. + * + * @param action The action in question + * @return CgUpnpArgument* + */ +#define cg_upnp_action_getarguments(action) ((CgUpnpArgument *)cg_list_next((CgList *)action->argumentList)) + +/** + * Find an argument from the action by the argument's name. + * + * @param action The action in question + * @param name The name of the argument to look for + * @return CgUpnpArgument* if successfull; otherwise NULL + */ +CgUpnpArgument *cg_upnp_action_getargumentbyname(CgUpnpAction *action, char *name); + +/** + * Find out, whether the action has an argument by the given name + * + * @param action The action in question + * @param name The name to look for + * @return TRUE if the action has the argument; otherwise FALSE + */ +#define cg_upnp_action_hasargumentbyname(action,name) ((cg_upnp_action_getargumentbyname(action,name) != NULL) ? TRUE : FALSE) + +/** + * Get a value of the specified argument from the action by the argument's name directly. + * + * @param action The action in question + * @param name The name of the argument to look for + * @return char* if successfull; otherwise NULL + */ +char *cg_upnp_action_getargumentvaluebyname(CgUpnpAction *action, char *name); + +/** + * Set a value of the specified argument from the action by the argument's name directly. + * + * @param action The action in question + * @param name The name of the argument to look for + * @param value The value to set + * @return TRUE if successfull; otherwise NO + */ +BOOL cg_upnp_action_setargumentvaluebyname(CgUpnpAction *action, char *name, char *value); + +/**************************************************************************** + * Function (Action - Execution Data) + ****************************************************************************/ + +/**************************************************************************** + * UPnPStatus + ****************************************************************************/ + +/** + * Set the action's latest status code + * + * @param action The action in question + * @param code The status code (int) + */ +#define cg_upnp_action_setstatuscode(action, code) cg_upnp_status_setcode(action->upnpStatus, code) + +/** + * Get the action's latest status code + * + * @param action The action in question + * @return int + */ +#define cg_upnp_action_getstatuscode(action) cg_upnp_status_getcode(action->upnpStatus) + +/** + * Set the action's latest status description + * + * @param action The action in question + * @param value The status description string + */ +#define cg_upnp_action_setstatusdescription(action, value) cg_upnp_status_setdescription(action->upnpStatus, value) + +/** + * Get the action's latest status description + * + * @param action The action in question + * @return char* + */ +#define cg_upnp_action_getstatusdescription(action) cg_upnp_status_getdescription(action->upnpStatus) + +/**************************************************************************** + * Listener + ****************************************************************************/ + +/** + * Set the action's listener function + * + * @param action The action in question + * @param func The listener function of type: BOOL (*CG_UPNP_ACTION_LISTNER)(CgUpnpAction *) + */ +#define cg_upnp_action_setlistener(action, func) (action->listener = func) + +/** + * Get the action's listener function + * + * @param action The action in question + * @return BOOL (*CG_UPNP_ACTION_LISTNER)(CgUpnpAction *) + */ +#define cg_upnp_action_getlistener(action) (action->listener) + +/** + * @deprecated Compatibility macro for typo correction + */ +#define cg_upnp_action_setlistner cg_upnp_action_setlistener + +/** + * @deprecated Compatibility macro for typo correction + */ +#define cg_upnp_action_getlistner cg_upnp_action_getlistener + +/**************************************************************************** + * User Data + ****************************************************************************/ + +/** + * Set the action's arbitrary user data pointer + * + * @param action The action in question + * @param value The user data pointer (void*) + */ +#define cg_upnp_action_setuserdata(action, value) (action->userData = value) + +/** + * Get the action's arbitrary user data pointer + * + * @param action The action in question + * @return void* + */ +#define cg_upnp_action_getuserdata(action) (action->userData) + +/**************************************************************************** + * Function (ActionList) + ****************************************************************************/ + +/** + * Create a new list of actions + * + * @return CgUpnpActionList* + */ +CgUpnpActionList *cg_upnp_actionlist_new(); + +/** + * Destroy a list of actions + * + * @param actionList The list of actions to destroy + */ +void cg_upnp_actionlist_delete(CgUpnpActionList *actionList); + +/** + * Clear the contents of a list of actions + * + * @param actionList The list of actions to clear + */ +#define cg_upnp_actionlist_clear(actionList) cg_list_clear((CgList *)actionList, (CG_LIST_DESTRUCTORFUNC)cg_upnp_action_delete) + +/** + * Get the number of actions in a list of actions + * + * @param actionList The list in question + * @return int + */ +#define cg_upnp_actionlist_size(actionList) cg_list_size((CgList *)actionList) + +/** + * Get the first action in a list of actions. Use as the starting point in + * iteration loops. + * + * @param actionList The list in question + * @return CgUpnpAction* + */ +#define cg_upnp_actionlist_gets(actionList) (CgUpnpAction *)cg_list_next((CgList *)actionList) + +/** + * Add an action to a list of actions + * + * @param actionList The list in question + * @param action The action to add to the list + */ +#define cg_upnp_actionlist_add(actionList, action) cg_list_add((CgList *)actionList, (CgList *)action) + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cargument.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cargument.h new file mode 100644 index 0000000..ef694f5 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cargument.h @@ -0,0 +1,362 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cargument.h +* +* Revision: +* +* 02/23/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UPNP_CARGUMENT_H_ +#define _CG_UPNP_CARGUMENT_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +/** Definition for argument element name */ +#define CG_UPNP_ARGUMENT_ELEM_NAME "argument" + +/** Definition for argument list element name */ +#define CG_UPNP_ARGUMENTLIST_ELEM_NAME "argumentList" + +/** Definition for argument passing direction (in) */ +#define CG_UPNP_ARGUMENT_IN_DIR "in" + +/** Definition for argument passing direction (out) */ +#define CG_UPNP_ARGUMENT_OUT_DIR "out" + +/** Definition for argument element name */ +#define CG_UPNP_ARGUMENT_NAME "name" + +/** Definition for argument element "direction" */ +#define CG_UPNP_ARGUMENT_DIRECTION "direction" + +/** Definition for argument related state variable */ +#define CG_UPNP_ARGUMENT_RELATED_STATE_VARIABLE "relatedStateVariable" + +/**************************************** +* Data Type +****************************************/ + +/** + * Data type definition for UPnP argument and UPnP argument list + */ +typedef struct _CgUpnpArgument { + BOOL headFlag; + struct _CgUpnpArgument *prev; + struct _CgUpnpArgument *next; + CgXmlNode *serviceNode; + CgXmlNode *argumentNode; + /**** Execution Data ****/ + CgString *value; +} CgUpnpArgument, CgUpnpArgumentList; + +/**************************************** +* Function (Argument) +****************************************/ + +/** + * Create new argument + */ +CgUpnpArgument *cg_upnp_argument_new(); + +/** + * Delete argument + * + * @param dev Argument + */ +void cg_upnp_argument_delete(CgUpnpArgument *dev); + +/** + * Get next argument using argument as iterator + * + * @param arg Argument node + */ +#define cg_upnp_argument_next(arg) (CgUpnpArgument *)cg_list_next((CgList *)arg) + +/** + * Check if XML node is argument node + * + * @param node XML node + * + * @return True if node is argument node, false otherwise + */ +#define cg_upnp_argument_isargumentnode(node) cg_xml_node_isname(node, CG_UPNP_ARGUMENT_ELEM_NAME) + +/** + * Set XML service node for argument + * + * @param arg Argument + * @param node XML service node + */ +#define cg_upnp_argument_setservicenode(arg,node) (arg->serviceNode = node) + +/** + * Get service node from argument + * + * @param arg Argument + */ +#define cg_upnp_argument_getservicenode(arg) (arg->serviceNode) + +/** + * Set XML argument node for argument + * + * @param arg Argument + * @param node XML argument node + */ +#define cg_upnp_argument_setargumentnode(arg,node) (arg->argumentNode = node) + +/** + * Get XML argument node from argument + * + * @param arg Argument + */ +#define cg_upnp_argument_getargumentnode(arg) (arg->argumentNode) + +/**** name ****/ + +/** + * Set name for argument + * + * @param arg Argument + * @param value Argument name + */ +#define cg_upnp_argument_setname(arg, value) cg_xml_node_setchildnode(cg_upnp_argument_getargumentnode(arg), CG_UPNP_ARGUMENT_NAME, value) + +/** + * Get argument name + * + * @param arg Argument + */ +#define cg_upnp_argument_getname(arg) cg_xml_node_getchildnodevalue(cg_upnp_argument_getargumentnode(arg), CG_UPNP_ARGUMENT_NAME) + +/** + * Check if current argument name matches with the provided name + * + * @param arg Argument + * @param name Name matched with argument name + * + * @return True if argument name equals with the provided name, false otherwise + */ +#define cg_upnp_argument_isname(arg, name) cg_streq(cg_upnp_argument_getname(arg), name) + +/**** direction ****/ + +/** + * Set direction for argument + * + * @param arg Argument + * @param value New direction value + */ +#define cg_upnp_argument_setdirection(arg, value) cg_xml_node_setchildnode(cg_upnp_argument_getargumentnode(arg), CG_UPNP_ARGUMENT_DIRECTION, value) + +/** + * Get argument direction + * + * @param arg Argument + * + * @return Argument direction + */ +#define cg_upnp_argument_getdirection(arg) cg_xml_node_getchildnodevalue(cg_upnp_argument_getargumentnode(arg), CG_UPNP_ARGUMENT_DIRECTION) + +/** + * Check if argument direction is "in" + * + * @param arg Argument + * + * @return True if argument directon is "in" + */ +#define cg_upnp_argument_isindirection(arg) cg_streq(cg_upnp_argument_getdirection(arg), CG_UPNP_ARGUMENT_IN_DIR) + +/** + * Check if argument direction is "out" + * + * @param arg Argument + * + * @return True if argument direction is "out" + */ +#define cg_upnp_argument_isoutdirection(arg) cg_streq(cg_upnp_argument_getdirection(arg), CG_UPNP_ARGUMENT_OUT_DIR) + +/**** relatedStateVariable ****/ + +/** + * Set related state variable + * + * @param arg Argument + * @param value Related state variable name + */ +#define cg_upnp_argument_setrelatedstatevariable(arg, value) cg_xml_node_setchildnode(cg_upnp_argument_getargumentnode(arg), CG_UPNP_ARGUMENT_RELATED_STATE_VARIABLE, value) + +/** + * Get related state variable + * + * @param arg Argument + * + * @return String representing the related state variable + */ +#define cg_upnp_argument_getrelatedstatevariable(arg) cg_xml_node_getchildnodevalue(cg_upnp_argument_getargumentnode(arg), CG_UPNP_ARGUMENT_RELATED_STATE_VARIABLE) + +/**************************************** +* Function (Argument - Execution Data) +****************************************/ + +/**** value ****/ + +/** + * Set argument value + * + * @param arg Argument + * @param data Argument value + */ +#define cg_upnp_argument_setvalue(arg,data) cg_string_setvalue(arg->value, data) + +/** + * Get argument value + * + * @param arg Argument + * + * @return Argument value + */ +#define cg_upnp_argument_getvalue(arg) cg_string_getvalue(arg->value) + +/** + * Set argument value + * + * @param arg Argument + * @param data Argument value + */ +#define cg_upnp_argument_setintvalue(arg,data) cg_string_setintvalue(arg->value, data) + +/** + * Get argument value + * + * @param arg Argument + * + * @return Argument value + */ +#define cg_upnp_argument_getintvalue(arg) cg_string_getintvalue(arg->value) + +/** + * Set argument value + * + * @param arg Argument + * @param data Argument value + */ +#define cg_upnp_argument_setfloatvalue(arg,data) cg_string_setfloatvalue(arg->value, data) + +/** + * Get argument value + * + * @param arg Argument + * + * @return Argument value + */ +#define cg_upnp_argument_getfloatvalue(arg) cg_string_getfloatvalue(arg->value) + +/** + * Set argument value + * + * @param arg Argument + * @param data Argument value + */ +#define cg_upnp_argument_setdoublevalue(arg,data) cg_string_setdoublevalue(arg->value, data) + +/** + * Get argument value + * + * @param arg Argument + * + * @return Argument value + */ +#define cg_upnp_argument_getdoublevalue(arg) cg_string_getdoublevalue(arg->value) + +/**************************************** +* Function (ArgumentList) +****************************************/ + +/** + * Create new argument list + */ +CgUpnpArgumentList *cg_upnp_argumentlist_new(); + +/** + * Delete argument list + * + * @param argumentList Argument list + */ +void cg_upnp_argumentlist_delete(CgUpnpArgumentList *argumentList); + +/** + * Clear argument list + * + * @param argList Argument list + */ +#define cg_upnp_argumentlist_clear(argList) cg_list_clear((CgList *)argList, (CG_LIST_DESTRUCTORFUNC)cg_upnp_argument_delete) + +/** + * Get argument list size + * + * @param argList Argument list + */ +#define cg_upnp_argumentlist_size(argList) cg_list_size((CgList *)argList) + +/** + * Get next argument from argument list + * + * @param argList Argument list + */ +#define cg_upnp_argumentlist_gets(argList) (CgUpnpArgument *)cg_list_next((CgList *)argList) + +/** + * Add argument into argument list + * + * @param argList Argument list + * @param arg Argument + */ +#define cg_upnp_argumentlist_add(argList, arg) cg_list_add((CgList *)argList, (CgList *)arg) + +/** + * Get argument from argument list based on argument name + * + * @param argumentList argumentList + * @param name Argument name + * + * @return Argument + */ +CgUpnpArgument *cg_upnp_argumentlist_get(CgUpnpArgumentList *argumentList, char *name); + +/** + * Set argument values by using source argument list. If there is an argument with the + * name in argument list and source argument list argument data is set from source + * argument list to the matching argument list. + * + * @param argumentList Argument list + * @param srcArgumentList Source argument list + */ +void cg_upnp_argumentlist_set(CgUpnpArgumentList *argumentList, CgUpnpArgumentList *srcArgumentList); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/ccond.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/ccond.h new file mode 100644 index 0000000..ef425fd --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/ccond.h @@ -0,0 +1,110 @@ +/****************************************************************** +* +* CyberUtil for C +* +* Copyright (C) 2006 Nokia Corporation +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: ccond.h +* +* Revision: +* +* 16-Jan-06 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UTIL_CCOND_H_ +#define _CG_UTIL_CCOND_H_ + +#include +#include + +#if defined(WIN32) && !defined(ITRON) +#include +#elif defined(BTRON) +#include +#elif defined(ITRON) +#include +#elif defined(TENGINE) && !defined(PROCESS_BASE) +#include +#elif defined(TENGINE) && defined(PROCESS_BASE) +#include +#else +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** + * Data Types + ****************************************/ + +/** + * \brief The generic wrapper struct for CyberLinkC's conds. + * + * This wrapper has been created to enable 100% code + * compatibility for different platforms (Linux, Win32 etc..) + */ +typedef struct _CgCond { +#if defined(WIN32) && !defined(ITRON) + HANDLE condID; +#elif defined(BTRON) + WERR condID; +#elif defined(ITRON) + ER_ID condID; +#elif defined(TENGINE) && !defined(PROCESS_BASE) + ID condID; +#elif defined(TENGINE) && defined(PROCESS_BASE) + WERR condID; +#else + /** The cond entity */ + pthread_cond_t condID; +#endif +} CgCond; + +/**************************************** + * Functions + ****************************************/ + +/** + * Create a new condition variable + */ +CgCond *cg_cond_new(); + +/** + * Destroy a condition variable + * + * \param cond The cond to destroy + */ +BOOL cg_cond_delete(CgCond *cond); + +/** + * Wait for condition variable to be signalled. + * + * \param cond Cond to be waited + * \param mutex Mutex used for synchronization + * \param timeout Maximum time in seconds to wait, 0 to wait forever + */ +BOOL cg_cond_wait(CgCond *cond, CgMutex *mutex, unsigned long timeout); + +/** + * Signal a condition variable + * + * \param cond Cond to be signalled + */ +BOOL cg_cond_signal(CgCond *cond); + +#ifdef __cplusplus + +} /* extern "C" */ + +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/ccontrol.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/ccontrol.h new file mode 100644 index 0000000..4c8f429 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/ccontrol.h @@ -0,0 +1,785 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: ccontrol.h +* +* Re1vision: +* +* 04/19/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UPNP_CCONTROL_H_ +#define _CG_UPNP_CCONTROL_H_ + +#include + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +/**** MAN ****/ + +/** + * Definition for mandatory discover header + */ +#define CG_UPNP_MAN_DISCOVER "\"ssdp:discover\"" + +/**** NT ****/ + +/** + * Definition for NT (Notification type) root device + */ +#define CG_UPNP_NT_ROOTDEVICE "upnp:rootdevice" + +/** + * Definition for NT event + */ +#define CG_UPNP_NT_EVENT "upnp:event" + +/**** NTS ****/ + +/** + * Definition for NTS alive + */ +#define CG_UPNP_NTS_ALIVE "ssdp:alive" + +/** + * Definition for NTS byebye + */ +#define CG_UPNP_NTS_BYEBYE "ssdp:byebye" + +/** + * Definition for NTS property change + */ +#define CG_UPNP_NTS_PROPCHANGE "upnp:propchange" + +/**** ST ****/ + +/** + * Definition for general ST (search target) + */ +#define CG_UPNP_ST_ALL_DEVICE "ssdp:all" + +/** + * Definition for root device ST + */ +#define CG_UPNP_ST_ROOT_DEVICE "upnp:rootdevice" + +/** + * Definition for ST UUID (universally unique identifier) prefix + */ +#define CG_UPNP_ST_UUID_DEVICE "uuid" + + /** + * Definition for URN device + */ +#define CG_UPNP_ST_URN "urn" + +/** + * Definition for URN device + */ +#define CG_UPNP_ST_URN_DEVICE "urn:schemas-upnp-org:device" + +/** + * Definition for URN service + */ +#define CG_UPNP_ST_URN_SERVICE "urn:schemas-upnp-org:service" + +/**** USN ****/ + +/** + * Definition for USN rootdevice + */ +#define CG_UPNP_USN_ROOTDEVICE "upnp:rootdevice" + +/** + * Definition for control name space + */ +#define CG_UPNP_CONTROL_NS "u" + +/** + * Definition for soap action: state variable query + */ +#define CG_UPNP_CONTROL_QUERY_SOAPACTION "\"urn:schemas-upnp-org:control-1-0#QueryStateVariable\"" + +/** + * Definition for control XML name space + */ +#define CG_UPNP_CONTROL_XMLNS "urn:schemas-upnp-org:control-1-0" + +/** + * Definition for query state variable + */ +#define CG_UPNP_CONTROL_QUERY_STATE_VARIABLE "QueryStateVariable" + +/** + * Definition for query state variable response + */ +#define CG_UPNP_CONTROL_QUERY_STATE_VARIABLE_RESPONSE "QueryStateVariableResponse" + +/** + * Definition for control variable name + */ +#define CG_UPNP_CONTROL_VAR_NAME "varName" + +/** + * Definition for control return + */ +#define CG_UPNP_CONTROL_RETURN "return" + +/** + * Definition for control fault code + */ +#define CG_UPNP_CONTROL_FAULT_CODE "Client" + +/** + * Definition for contol fault string + */ +#define CG_UPNP_CONTROL_FAULT_STRING "UPnPError" + +/** + * Definition fro control error code + */ +#define CG_UPNP_CONTROL_ERROR_CODE "errorCode" + +/** + * Definition for control error description + */ +#define CG_UPNP_CONTROL_ERROR_DESCRIPTION "errorDescription" + +/**************************************** +* Data Type +****************************************/ + +/**** Action ****/ + +/** + * Data type definition for action response + */ +typedef struct _CgUpnpActionResponse { + CgSoapResponse *soapRes; + BOOL isSoapResCreated; + CgUpnpArgumentList *argList; +} CgUpnpActionResponse; + +/** + * Data type definition for action request + */ +typedef struct _CgUpnpActionRequest{ + CgSoapRequest *soapReq; + BOOL isSoapReqCreated; + CgUpnpArgumentList *argList; + CgUpnpActionResponse *actionRes; +} CgUpnpActionRequest; + +/**** Query ****/ + +/** + * Data type definition for query response + */ +typedef struct _CgUpnpQueryResponse { + CgSoapResponse *soapRes; + BOOL isSoapResCreated; +} CgUpnpQueryResponse; + +/** + * Data type definition for query request + */ +typedef struct _CgUpnpQueryRequest{ + CgSoapRequest *soapReq; + BOOL isSoapReqCreated; + CgUpnpQueryResponse *queryRes; +} CgUpnpQueryRequest; + +/**************************************** +* Function +****************************************/ + +/* After POST has failed we send M-POST and change the SOAPACTION header into 01-SOAPACTION. + * Next ensures that also in this case query is interpreted as a query. + */ + +/** + * Check if HTTP request query is UPnP query request + * + * @param httpReq HTTP request + * + * @return True if request is UPnP query request, false othewise + */ +#define cg_upnp_control_isqueryrequest(httpReq) ( ((0 <= cg_strstr(cg_soap_request_getsoapaction(httpReq), CG_UPNP_CONTROL_QUERY_SOAPACTION)) ? TRUE : FALSE) || ((0 <= cg_strstr(cg_soap_request_getsoapactionwithns(httpReq), CG_UPNP_CONTROL_QUERY_SOAPACTION)) ? TRUE : FALSE) ) + +/* Check if HTTP request is UPnP action request + * + * @param httpReq HTTP request + * + * @return True if request is UPnP action request, false otherwise + */ +#define cg_upnp_control_isactionrequest(httpReq) ((cg_upnp_control_isqueryrequest(httpReq) == TRUE) ? FALSE : TRUE) + +/** + * Initializes soap requests envelope node + * + * @param soapReq Soap request + */ +void cg_upnp_control_soap_request_initializeenvelopenode(CgSoapRequest *soapReq); + +/** + * Initialize soap responses envelope node + * + * @param soapRes Soap response + */ +void cg_upnp_control_soap_response_initializeenvelopenode(CgSoapResponse *soapRes); +CgXmlNode *cg_upnp_control_soap_response_createfaultresponsenode(int errCode, char *errDescr); + +/** + * Set failed response data + * + * @param soapRes Soap response + * @param errCode Error code + * @param errDescr Error description + */ +void cg_upnp_control_soap_response_setfaultresponse(CgSoapResponse *soapRes, int errCode, char *errDescr); + +/** + * Perform action listener + * + * @param action Action + * @param actionReq Action request + */ +BOOL cg_upnp_action_performlistner(CgUpnpAction *action, CgUpnpActionRequest *actionReq); + +/** + * Perform query listener + * + * @param statVar State variable + * @param queryReq Query request + */ +BOOL cg_upnp_statevariable_performlistner(CgUpnpStateVariable *statVar, CgUpnpQueryRequest *queryReq); + +/** + * Set host from service + * + * @param soapReq Soap request + * @param service UPnP service + */ +void cg_upnp_control_request_sethostfromservice(CgSoapRequest *soapReq, CgUpnpService *service); + +/**************************************** +* Function (ActionRequest) +****************************************/ + +/** + * Create new action request object + */ +CgUpnpActionRequest *cg_upnp_control_action_request_new(); + +/** + * Delete action request object + * + * @param actionReq Action request + */ +void cg_upnp_control_action_request_delete(CgUpnpActionRequest *actionReq); + +/** + * Clear action request + * + * @param actionReq Clear Action request + */ +void cg_upnp_control_action_request_clear(CgUpnpActionRequest *actionReq); + +/** + * Set soap request associated with action request + * + * @param actionReq Action request + * @param soapReq Soap request + */ +void cg_upnp_control_action_request_setsoaprequest(CgUpnpActionRequest *actionReq, CgSoapRequest *soapReq); + +/** + * Get soap request associated with action request + * + * @param actionReq Action request + * + * @return Soap request + */ +#define cg_upnp_control_action_request_getsoaprequest(actionReq) (actionReq->soapReq) + +/** + * Get argument list from action request + * + * @param actionReq Action request + * + * @return Argument list + */ +#define cg_upnp_control_action_request_getargumentlist(actionReq) (actionReq->argList) + +/** + * Get XML action node from action request + * + * @param actionReq + * + * @return Action request XML node + */ +CgXmlNode *cg_upnp_control_action_request_getactionnode(CgUpnpActionRequest *actionReq); + +/** + * Get action name from action request + * + * @param actionReq Action request + * + * @return Action name + */ +char *cg_upnp_control_action_request_getactionname(CgUpnpActionRequest *actionReq); + +/** + * Set action to action request + * + * @param actionReq Action request + * @param action UPnP action + */ +void cg_upnp_control_action_request_setaction(CgUpnpActionRequest *actionReq, CgUpnpAction *action); + +/** + * Get action response from action request + * + * @param actionReq Action request + * + * @return Action response + */ +#define cg_upnp_control_action_request_getactionresponse(actionReq) (actionReq->actionRes) + +/** + * Send action request + * + * @param actionReq Action request + */ +CgUpnpActionResponse *cg_upnp_control_action_request_post(CgUpnpActionRequest *actionReq); + +/**************************************** +* Function (ActionResponse) +****************************************/ + +/** + * Create new action response + */ +CgUpnpActionResponse *cg_upnp_control_action_response_new(); + +/** + * Delete action response + * + * @param actionReq Action response + */ +void cg_upnp_control_action_response_delete(CgUpnpActionResponse *actionReq); + +/** + * Clear action response + * + * @param actionReq Action response + */ +void cg_upnp_control_action_response_clear(CgUpnpActionResponse *actionReq); + +/** + * Set soap response to action response + * + * @param actionRes Action response + * @param soapRes Soap reaponse + */ +void cg_upnp_control_action_response_setsoapresponse(CgUpnpActionResponse *actionRes, CgSoapResponse *soapRes); + +/** + * Get soap response from action response + * + * @param actionRes Action response + * + * @return Soap response + */ +#define cg_upnp_control_action_response_getsoapresponse(actionRes) (actionRes->soapRes) + +/** + * Set action response to action + * + * @param actionRes Action response + * @param action UPnP action + */ +void cg_upnp_control_action_response_setresponse(CgUpnpActionResponse *actionRes, CgUpnpAction *action); + +/** + * Check if action response indicates that action invoke was successfull + * + * @param actionRes Action response + * + * @return True if action has been successful, false otherwise + */ +#define cg_upnp_control_action_response_issuccessful(actionRes) cg_soap_response_issuccessful(actionRes->soapRes) + +/** + * Get action response XML node from action response + * + * @param actionRes Action response + * + * @return Action response XML node + */ +CgXmlNode *cg_upnp_control_action_response_getactionresponsenode(CgUpnpActionResponse *actionRes); + +/** + * Get result from action response + * \todo Check this out more carefully + * + * @param actionRes Action response + * @param action UPnP action + */ +BOOL cg_upnp_control_action_response_getresult(CgUpnpActionResponse *actionRes, CgUpnpAction *action); + +/** + * Get error associated to action response + * \todo Check this out more carefully + * @param actionRes Action response + * @param action UPnP action + */ +BOOL cg_upnp_control_action_response_geterror(CgUpnpActionResponse *actionRes, CgUpnpAction *action); + +/**************************************** +* Function (QueryRequest) +****************************************/ + +/** + * Create new query request object + */ +CgUpnpQueryRequest *cg_upnp_control_query_request_new(); + +/** + * Delete query request + * + * @param queryReq Query request + */ +void cg_upnp_control_query_request_delete(CgUpnpQueryRequest *queryReq); + +/** + * Clear query request + * + * @param queryReq Query request + */ +void cg_upnp_control_query_request_clear(CgUpnpQueryRequest *queryReq); + +/** + * Set soap request for query request + * + * @param queryReq Query request + * @param soapReq Soap request + */ +void cg_upnp_control_query_request_setsoaprequest(CgUpnpQueryRequest *queryReq, CgSoapRequest *soapReq); + +/** + * Get soap request from query request + * + * @param queryReq + * + * @return Soap request + */ +#define cg_upnp_control_query_request_getsoaprequest(queryReq) (queryReq->soapReq) + +/** + * Get state variable XML node + * + * @param queryReq + * + * @return State variable XML node + */ +CgXmlNode *cg_upnp_control_query_request_getvarnamenode(CgUpnpQueryRequest *queryReq); + +/** + * Get state variable name associated with this query request + * + * @param queryReq Query request + * + * @return State variable variable name + */ +char *cg_upnp_control_query_request_getvarname(CgUpnpQueryRequest *queryReq); + +/** + * Set state variable to query request + * + * @param queryReq Query request + * @param statVar State variable + */ +void cg_upnp_control_query_request_setstatevariable(CgUpnpQueryRequest *queryReq, CgUpnpStateVariable *statVar); + +/** + * Get response from query request + * + * @param queryReq Query request + * + * @return Query response + */ +#define cg_upnp_control_query_request_getqueryresponse(queryReq) (queryReq->queryRes) + +/** + * Send query request + * + * @param queryReq Query request + * + * @return Query response + */ +CgUpnpQueryResponse *cg_upnp_control_query_request_post(CgUpnpQueryRequest *queryReq); + +/**************************************** +* Function (QueryResponse) +****************************************/ + +/** + * Create new query response + */ +CgUpnpQueryResponse *cg_upnp_control_query_response_new(); + +/** + * Delete query response + * + * @param queryReq Query request + */ +void cg_upnp_control_query_response_delete(CgUpnpQueryResponse *queryReq); + +/** + * Clear query response + * + * @param queryReq Query request + */ +void cg_upnp_control_query_response_clear(CgUpnpQueryResponse *queryReq); + +/** + * Set soap response for query response + * + * @param queryRes Query response + * @param soapRes Soap response + */ +void cg_upnp_control_query_response_setsoapresponse(CgUpnpQueryResponse *queryRes, CgSoapResponse *soapRes); + +/** + * Get soap response from query response + * + * @param queryRes Query response + * + * @return Soap response + */ +#define cg_upnp_control_query_response_getsoapresponse(queryRes) (queryRes->soapRes) + +/** + * Create and set XML response data into query response + * + * @param queryRes Query response + * @param statVar State variable + */ +void cg_upnp_control_query_response_setresponse(CgUpnpQueryResponse *queryRes, CgUpnpStateVariable *statVar); + +/** + * Check if query response indicates that query request has succeeded + * + * @param queryRes Query response + */ +#define cg_upnp_control_query_response_issuccessful(queryRes) cg_soap_response_issuccessful(queryRes->soapRes) + +/** + * Get XML return node from query response + * + * @param queryRes + * + * @return XML return node + */ +CgXmlNode *cg_upnp_control_query_response_getreturnnode(CgUpnpQueryResponse *queryRes); + +/** + * Get return valuse from query response + * + * @param queryRes Query response + * + * @return UPnP return value + */ +char *cg_upnp_control_query_response_getreturnvalue(CgUpnpQueryResponse *queryRes); + +/**************************************** +* Function (MAN) +****************************************/ + +/** + * Check if string is correct mandatory header value as specified + * in UPnP Device Architecture 1.2.2 + * + * @param str String to be checked + * + * @return True if string is exactly the required one, false otherwise + */ +#define cg_upnp_man_isdiscover(str) ((0 == cg_strstr(str, CG_UPNP_MAN_DISCOVER)) ? TRUE : FALSE) + +/**************************************** +* Function (ST) +****************************************/ + +/** + * Check if device is of type "all" + * + * @param str String to be checked + * + * @return True if device type is "all", false otherwise + */ +#define cg_upnp_st_isalldevice(str) ((0 <= cg_strstr(str, CG_UPNP_ST_ALL_DEVICE)) ? TRUE : FALSE) + +/** + * Check if device string is from root device + * + * @param str String to be checked + * + * @return True if string is from device type "root device", false otherwise + */ +#define cg_upnp_st_isrootdevice(str) ((0 <= cg_strstr(str, CG_UPNP_ST_ROOT_DEVICE)) ? TRUE : FALSE) + +/** + * Check if string is from uuid device + * + * @param str String to be checked + * + * @return True if string is from uuid device, false otherwise + */ +#define cg_upnp_st_isuuiddevice(str) ((0 <= cg_strstr(str, CG_UPNP_ST_UUID_DEVICE)) ? TRUE : FALSE) + +/** + * Check if string is from urn + * + * @param str String to be checked + * + * @return True if string is from urn, false otherwise + */ +#define cg_upnp_st_isurn(str) ((0 <= cg_strstr(str, CG_UPNP_ST_URN)) ? TRUE : FALSE) + +/** + * Check if string is from urn device + * + * @param str String to be checked + * + * @return True if string is from urn device, false otherwise + */ +#define cg_upnp_st_isurndevice(str) ((0 <= cg_strstr(str, CG_UPNP_ST_URN_DEVICE)) ? TRUE : FALSE) + +/** + * Check if string is from urn service + * + * @param str String to be checked + * + * @return True if string is from urn service, false otherwise + */ +#define cg_upnp_st_isurnservice(str) ((0 <= cg_strstr(str, CG_UPNP_ST_URN_SERVICE)) ? TRUE : FALSE) + +/**************************************** +* Function (NT) +****************************************/ + +/** + * Check if NT (notification target) is for root device + * + * @param str String to be checked + * + * @return True if NT is for root device, false otherwise + */ +#define cg_upnp_nt_isrootdevice(str) ((0 <= cg_strstr(str, CG_UPNP_NT_ROOTDEVICE)) ? TRUE : FALSE) + +/**************************************** +* Function (NTS) +****************************************/ + +/** + * Check if NTS (notification sub target) is of type "alive" + * + * @param str String to be checked + * + * @return True if string is of type "alive", false otherwise + */ +#define cg_upnp_nts_isalive(str) ((0 <= cg_strstr(str, CG_UPNP_NTS_ALIVE)) ? TRUE : FALSE) + +/** + * Check if string type is "byebye" + * + * @param str String to be checked + * + * @return True if string is of type "byebye", false othewise + */ +#define cg_upnp_nts_isbyebye(str) ((0 <= cg_strstr(str, CG_UPNP_NTS_BYEBYE)) ? TRUE : FALSE) + +/** + * Check if string type is "property change" + * + * @param str String to be checked + * + * @return True if string type is "property change" + */ +#define cg_upnp_nts_ispropchange(str) ((0 <= cg_strstr(str, CG_UPNP_NTS_PROPCHANGE)) ? TRUE : FALSE) + +/**************************************** +* Function (USN) +****************************************/ + +/** + * Check if usn is from root device + * + * @param str String to be checked + * + * @return True if usn associates to root device, false otherwise + */ +#define cg_upnp_usn_isrootdevice(str) ((0 <= cg_strstr(str, CG_UPNP_USN_ROOTDEVICE)) ? TRUE : FALSE) + +/** + * Get udn from usn + * + * @param usn Universal serial number + * @param udnBuf Buffer where udn is stored after successfull execution + * @param udnBufLen Buffer length for udnBuf + * + * @return Pointer to beginning of udnBuf. + */ +char *cg_upnp_usn_getudn(char *usn, char *udnBuf, int udnBufLen); + +/**************************************** +* Function (Action) +****************************************/ + +/** + * Send action + * + * @param action Action + */ +BOOL cg_upnp_action_post(CgUpnpAction *action); + +/**************************************** +* Function (Query) +****************************************/ + +/** + * Send query + * + * @param statVar State variable + */ +BOOL cg_upnp_statevariable_post(CgUpnpStateVariable *statVar); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/ccontrolpoint.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/ccontrolpoint.h new file mode 100644 index 0000000..b720493 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/ccontrolpoint.h @@ -0,0 +1,716 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: ccontrolpoint.h +* +* Revision: +* +* 05/25/05 +* - first revision +* +* 11-Jan-06 Heikki Junnila +* - Removed cg_upnp_device_isname and _getbyname because +* according to UPnP specs UDN, type or friendlyname is +* not the same as the device's name. +* - Added cg_upnp_controlpoint_getdevicebyudn() +* 04/02/06 Theo Beisch +* - added support for resubscriber +* and device disposer +* - added cg_upnp_controlpoint_getservicebysid +* - added cg_upnp_controlpoint_waitforlock +* 22-Apr-2008 +* - Added cg_upnp_controlpoint_getdevice() to get a device by the index. +* +******************************************************************/ + +#ifndef _CG_UPNP_CCONTROLPOINT_H_ +#define _CG_UPNP_CCONTROLPOINT_H_ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +/** Definition for SSDP default search MX */ +#define CG_UPNP_CONTROLPOINT_SSDP_DEFAULT_SEARCH_MX 3 + +/** Definition for control point SSDP minimum delay */ +#define CG_UPNP_CONTROLPOINT_SSDP_MIN_DELAY 20 + +/** Definition for control point default response port */ +#define CG_UPNP_CONTROLPOINT_SSDP_RESPONSE_DEFAULT_PORT 39400 + +/** Definition for numeric constant to specify the max tries to open a SSDP Response Port (rosfran.borges) */ +#define CG_UPNP_CONTROLPOINT_SSDP_RESPONSE_PORT_MAX_TRIES_INDEX 80 + +/** Definition for HTTP event default port */ +#define CG_UPNP_CONTROLPOINT_HTTP_EVENT_DEFAULT_PORT 39500 + +/** Definition for default controlpoint event callback "location" */ +#define CG_UPNP_CONTROLPOINT_HTTP_EVENTSUB_URI "/eventSub" + +/**************************************** +* Data Type +****************************************/ + +/** + * Device listener status parameters. + * + * @ref CgUpnpDeviceStatusAdded means a device has been added to local cache. + * @ref CgUpnpDeviceStatusUpdated means a device description has been updated + * because its IP address or description has changed. The user should renew + * any active subscriptions if this has been received. + * + * @ref CgUpnpDeviceStatusInvalid is basically the same as @ref CgUpnpDeviceStatusRemoved, + * but @ref CgUpnpDeviceStatusRemoved is sent only when a device leaves the + * network in a proper way (i.e. with UPnP ByeBye messages). The user should + * immediately cease using the device, because it will be removed in both cases. + */ +typedef enum _CgUpnpDeviceStatus +{ + CgUpnpDeviceStatusAdded = 0, + CgUpnpDeviceStatusUpdated, + CgUpnpDeviceStatusInvalid, + CgUpnpDeviceStatusRemoved +} CgUpnpDeviceStatus; + +/** + * Prototype for control point's device listener callback. + * + * @param udn The UDN of the device, that the status update concerns + * @param status The new status + */ + +typedef struct _CgUpnpControlPoint { + CgMutex *mutex; + CgXmlNodeList *deviceRootNodeList; + CgUpnpDeviceList *deviceList; + CgUpnpSSDPServerList *ssdpServerList; + CgUpnpSSDPResponseServerList *ssdpResServerList; + CgHttpServerList *httpServerList; + void (*deviceListener)(struct _CgUpnpControlPoint *, char*, CgUpnpDeviceStatus); /* CG_UPNP_DEVICE_LISTENER */ + CG_HTTP_LISTENER httpListener; + CG_UPNP_SSDP_LISTNER ssdpListener; + CG_UPNP_SSDP_RESPONSE_LISTNER ssdpResListener; + CgUpnpEventListenerList* eventListeners; + int ssdpResPort; + CgString *httpEventURI; + int httpEventPort; + int ssdpSearchMx; + void *userData; + + /* Expiration handling */ + CgThread *expThread; + CgMutex *expMutex; + CgCond *expCond; + + /** List of cached interfaces */ + CgNetworkInterfaceList *ifCache; +} CgUpnpControlPoint; + +typedef void (*CG_UPNP_DEVICE_LISTENER)(CgUpnpControlPoint *ctrlPoint, char* udn, CgUpnpDeviceStatus status); + +/**************************************************************************** + * Control Point top-level control + ****************************************************************************/ + +/** + * Create a new control point. Does not start any threads. + * + * @return A newly-created CgUpnpControlPoint + */ +CgUpnpControlPoint *cg_upnp_controlpoint_new(); + +/** + * Destroy the given control point + * + * @param ctrlPoint The control point struct to destroy + */ +void cg_upnp_controlpoint_delete(CgUpnpControlPoint *ctrlPoint); + +/** + * Activate the control point. Starts listening for SSDP messages etc. + * You must call this function before you can actually use a control point. + * + * @param ctrlPoint The control point to start + * + * @return TRUE if successful; otherwise FALSE + * + */ +BOOL cg_upnp_controlpoint_start(CgUpnpControlPoint *ctrlPoint); + +/** + * Stop the control point. Stops sending/receiveing/responding to any messages. + * + * @param ctrlPoint The control point to stop + * + * @return TRUE if successful; otherwise FALSE + * + */ +BOOL cg_upnp_controlpoint_stop(CgUpnpControlPoint *ctrlPoint); + +/** +* Check if the control point is activated. +* +* @param ctrlPoint The control point to stop +* +* @return TRUE if running; otherwise FALSE +* +*/ +BOOL cg_upnp_controlpoint_isrunning(CgUpnpControlPoint *ctrlPoint); + +/**************************************************************************** + * Control Point locking + ****************************************************************************/ + +/** + * Lock the control point's mutex. + * The control point should be ALWAYS locked, when a CgUpnpDevice*, + * CgUpnpService*, CgUpnpAction* or other pointer has been taken into use from + * the stack. This effectively prevents devices/services from being updated/ + * removed or added while the control point is locked. You should release the + * lock as soon as possible with @ref cg_upnp_controlpoint_unlock + * + * @note Do NOT save any CgUpnp* pointers to user-space variables. Use them + * only as local variables (inside one function) after gaining a mutex lock. + * Release the lock as soon as you are done accessing the pointer, and then + * discard the pointer immediately. + * + * @param ctrlPoint The control point in question + */ + +#if defined(WITH_THREAD_LOCK_TRACE) && defined(__USE_ISOC99) +#define cg_upnp_controlpoint_lock(ctrlPoint) cg_mutex_lock_trace(__FILE__, __LINE__, __PRETTY_FUNCTION__, ctrlPoint->mutex) +#else +BOOL cg_upnp_controlpoint_lock(CgUpnpControlPoint *ctrlPoint); +#endif +/** + * Release a previously locked control point mutex. + * See @ref cg_upnp_controlpoint_lock for a more detailed description on + * the control point locking mechanism. + * + * @param ctrlPoint The control point in question + */ +#if defined(WITH_THREAD_LOCK_TRACE) && defined(__USE_ISOC99) +#define cg_upnp_controlpoint_unlock(ctrlPoint) cg_mutex_unlock_trace(__FILE__, __LINE__, __PRETTY_FUNCTION__, ctrlPoint->mutex) +#else +BOOL cg_upnp_controlpoint_unlock(CgUpnpControlPoint *ctrlPoint); +#endif + +/**************************************************************************** + * Device searching + ****************************************************************************/ + +/** + * Find a device from the control point by the exact type of the device. + * This function searches for devices, whose *complete type string* + * matches the given string, including version number. For example: + * "urn:schemas-upnp-org:device:FooDevice:1". If you need to disregard + * the version, use @ref cg_upnp_controlpoint_getdevicebytype + * + * @param ctrlPoint Controlpoint in question + * @param exacttype Type of the device + * + */ +CgUpnpDevice *cg_upnp_controlpoint_getdevicebyexacttype(CgUpnpControlPoint *ctrlPoint, + char *exacttype); + +/** + * Find a device from the controlpoint by the type of the device. + * This function searches for devices, whose *type part* (i.e. not including + * the version) of the device type string matches the given string. + * For example: "urn:schemas-upnp-org:device:FooDevice". If you need + * to know the version of a device, use @ref cg_upnp_devicetype_getversion + * + * @param ctrlPoint Controlpoint in question + * @param type Type of the device + * + */ +CgUpnpDevice *cg_upnp_controlpoint_getdevicebytype(CgUpnpControlPoint *ctrlPoint, + char *type); + +/** + * Find a device from the controlpoint by the UDN of the device. + * + * @param ctrlPoint Controlpoint in question + * @param type Type of the device + * + */ +CgUpnpDevice *cg_upnp_controlpoint_getdevicebyudn(CgUpnpControlPoint *ctrlPoint, + char *udn); + +/**************************************************************************** + * SSDP response + ****************************************************************************/ + +/** + * Get the list of SSDP servers associated to the control point + * + * @param ctrlPoint The control point in question + */ +#define cg_upnp_controlpoint_getssdpserverlist(ctrlPoint) (ctrlPoint->ssdpServerList) + +/** + * Get the list of SSDP response servers associated to the control point + * + * @param ctrlPoint The control point in question + */ +#define cg_upnp_controlpoint_getssdpresponseserverlist(ctrlPoint) (ctrlPoint->ssdpResServerList) + +/** + * Get the list of HTTP servers associated to the control point + * + * @param ctrlPoint The control point in question + */ +#define cg_upnp_controlpoint_gethttpserverlist(ctrlPoint) (ctrlPoint->httpServerList) + +/**************************************************************************** + * SSDP listener + ****************************************************************************/ + +/** + * Set an SSDP message listener for the control point. Use this function to + * get SSDP messages to user-space applications. + * + * @param ctrlPoint The control point in question + * @param func A callback function that is of type @ref CG_UPNP_SSDP_LISTNER + */ +#define cg_upnp_controlpoint_setssdplistener(ctrlPoint, func) (ctrlPoint->ssdpListener = func) + +/** + * Get the SSDP message listener for the control point. + * + * @param ctrlPoint The control point in question + * @return A callback function that is of type @ref CG_UPNP_SSDP_LISTNER or NULL + */ +#define cg_upnp_controlpoint_getssdplistener(ctrlPoint) (ctrlPoint->ssdpListener) + +/** + * Set an SSDP response listener for the control point. Use this function to + * get SSDP responses to user-space applications. + * + * @param ctrlPoint The control point in question + * @param func A callback function that is of type @ref CG_UPNP_SSDP_RESPONSE_LISTNER + */ +#define cg_upnp_controlpoint_setssdpresponselistener(ctrlPoint, func) (ctrlPoint->ssdpResListener = func) + +/** + * Get the SSDP response listener for the control point. + * + * @param ctrlPoint The control point in question + * @return A callback function that is of type @ref CG_UPNP_SSDP_RESPONSE_LISTNER or NULL + */ +#define cg_upnp_controlpoint_getssdpresponselistener(ctrlPoint) (ctrlPoint->ssdpResListener) + +/** + * Set device listener for the control point. + * + * @param ctrlPoint The control point + * @param func A callback function that is type @ref CG_UPNP_DEVICE_LISTENER or NULL + */ +#define cg_upnp_controlpoint_setdevicelistener(ctrlPoint, func) (ctrlPoint->deviceListener = func) + +/** + * Get the device listener for the control point. + * + * @param ctrlPoint The control point in question + * @return A callback function that is of type @ref CG_UPNP_DEVICE_LISTENER or NULL + */ +#define cg_upnp_controlpoint_getdevicelistener(ctrlPoint) (ctrlPoint->deviceListener) + +/**************************************************************************** + * Event listening + ****************************************************************************/ + +/** + * Set an event listener for the control point. Use this function to + * get event notifications to user-space applications. + * + * @param ctrlPoint The control point in question + * @param listener A callback function that is of type @ref CG_UPNP_EVENT_LISTENER + */ +#define cg_upnp_controlpoint_addeventlistener(ctrlPoint, listener) (cg_upnp_eventlistenerlist_add(ctrlPoint->eventListeners, listener)) + +/** + * Remove an event listener from the control point. + * + * @param ctrlPoint The control point in question + * @param listener The callback function to remove, that is of type @ref CG_UPNP_EVENT_LISTENER + */ +#define cg_upnp_controlpoint_removeeventlistener(ctrlPoint, listener) (cg_upnp_eventlistenerlist_remove(ctrlPoint->eventListeners, listener)) + +/** + * Set a single event listener for the control point. Use this function to + * get event notifications to user-space applications if you need only one listener. + * + * @param ctrlPoint The control point in question + * @param evlistener The callback function to set, that is of type @ref CG_UPNP_EVENT_LISTENER, or NULL + */ +#define cg_upnp_controlpoint_seteventlistener(ctrlPoint, evlistener) \ + do {\ + if (evlistener == NULL) \ + cg_upnp_eventlistenerlist_remove(ctrlPoint->eventListeners, ctrlPoint->eventListeners->next->listener); \ + else \ + cg_upnp_eventlistenerlist_add(ctrlPoint->eventListeners, evlistener); \ + } while(0) + +/** + * Get the single event listener for the control point. + * + * @param ctrlPoint The control point in question + * @return The callback function, that is of type @ref CG_UPNP_EVENT_LISTENER, + * or NULL if there is no listener + */ +#define cg_upnp_controlpoint_geteventlistener(ctrlPoint) (ctrlPoint->eventListeners->next->listener) + +/** + * Get the list of event listeners for the control point. + * + * @param ctrlPoint The control point in question + * @return List of @ref CG_UPNP_EVENT_LISTENER functions + */ +#define cg_upnp_controlpoint_geteventlisteners(ctrlPoint) (ctrlPoint->eventListeners) + +/**************************************************************************** + * SSDP Response port + ****************************************************************************/ + +/** + * Set the IP port number used for the control point's SSDP responses + * + * @param ctrlPoint The control point in question + * @param port The IP port number + */ +#define cg_upnp_controlpoint_setssdpresponseport(ctrlPoint, port) (ctrlPoint->ssdpResPort = port) + +/** + * Get the IP port number used for the control point's SSDP responses + * + * @param ctrlPoint The control point in question + */ +#define cg_upnp_controlpoint_getssdpresponseport(ctrlPoint) (ctrlPoint->ssdpResPort) + +/**************************************************************************** + * Eventing + ****************************************************************************/ + +/** + * Set the IP port number for the control point's event reception + * + * @param ctrlPoint The control point in question + * @param port The IP port number + */ +#define cg_upnp_controlpoint_seteventport(ctrlPoint, port) (ctrlPoint->httpEventPort = port) + +/** + * Get the IP port number for the control point's event reception + * + * @param ctrlPoint The control point in question + */ +#define cg_upnp_controlpoint_geteventport(ctrlPoint) (ctrlPoint->httpEventPort) + +/** + * Set the URI used for the control point's event subscription notifications + * + * @param ctrlPoint The control point in question + * @param uri The URI to set + */ +#define cg_upnp_controlpoint_seteventsuburi(ctrlPoint, uri) cg_string_setvalue(ctrlPoint->httpEventURI, uri) + +/** + * Get the URI used for the control point's event subscription notifications + * + * @param ctrlPoint The control point in question + */ +#define cg_upnp_controlpoint_geteventsuburi(ctrlPoint) cg_string_getvalue(ctrlPoint->httpEventURI) + +/**************************************************************************** + * M-SEARCH + ****************************************************************************/ + +/** + * Do an M-SEARCH to look for devices in the network. + * + * @param ctrlPoint The control point in question + * @param target The Search Target parameter (ex. "ssdp:all") + */ +BOOL cg_upnp_controlpoint_search(CgUpnpControlPoint *ctrlPoint, char *target); + +/** + * Set the MX-parameter used for SSDP searches i.e. Set the time to wait + * (in seconds) for device responses to an M-SEARCH + * + * @param ctrlPoint The control point in question + * @param value MX; Time to wait + */ +#define cg_upnp_controlpoint_setssdpsearchmx(ctrlPoint, value) (ctrlPoint->ssdpSearchMx = value) + +/** + * Get the MX-parameter used for SSDP searches + * + * @param ctrlPoint The control point in question + * @return value MX; Time to wait + */ +#define cg_upnp_controlpoint_getssdpsearchmx(ctrlPoint) (ctrlPoint->ssdpSearchMx) + +/**************************************************************************** + * HTTP listener + ****************************************************************************/ + +/** + * Set an HTTP listener function to the control point. Use this function to + * get HTTP requests to user-space applications. + * + * @param ctrlPoint The control point in question + * @param func The listener function, that is of type @ref CG_HTTP_LISTENER + */ +#define cg_upnp_controlpoint_sethttplistener(ctrlPoint, func) (ctrlPoint->httpListener = func) + +/** + * Get the HTTP listener function for the control point. + * + * @param ctrlPoint The control point in question + * @return The listener function, that is of type @ref CG_HTTP_LISTENER + */ +#define cg_upnp_controlpoint_gethttplistener(ctrlPoint) (ctrlPoint->httpListener) + +/** + * The function that calls all HTTP listener callback functions. Do not call + * this from applications. + * + * @param httpReq The received HTTP request + */ +void cg_upnp_controlpoint_httprequestreceived(CgHttpRequest *httpReq); + +/** + * When an event is received, update also the associated service's + * state table to include the evented state variable. + * + * @param service The service, whose state table to update + * @param prop The evented property from which to update + */ +void cg_upnp_controlpoint_updatestatetablefromproperty(CgUpnpService* service, + CgUpnpProperty* prop); + +/**************************************************************************** + * User Data + ****************************************************************************/ + +/** + * Set the user data pointer (arbitrary user data) to the control point. + * + * @param ctrlPoint The control point in question + * @param value Arbitrary user data + */ +#define cg_upnp_controlpoint_setuserdata(ctrlPoint, value) (ctrlPoint->userData = value) + +/** + * Get the user data pointer (arbitrary user data) from the control point. + * + * @param dev The control point in question + * @return Pointer to user data or NULL + */ +#define cg_upnp_controlpoint_getuserdata(ctrlPoint) (ctrlPoint->userData) + +/**************************************************************************** + * Service SCPD + ****************************************************************************/ + +/** + * Parse the service description from the service's SCPD URL. Do not call + * this from user applications. + * + * @param service The service in question + * @return TRUE if successful; otherwise FALSE + */ +BOOL cg_upnp_controlpoint_parsescservicescpd(CgUpnpService *service); + +/** + * Parse the device's services using the received SSDP packet. Do not call this + * from user applications. + * + * @param dev The device in question + * @param ssdpPkt An SSDP packet + */ +BOOL cg_upnp_controlpoint_parseservicesfordevice(CgUpnpDevice *dev, CgUpnpSSDPPacket *ssdpPkt); + +/**************************************************************************** + * Device adding/removal by SSDP packets + ****************************************************************************/ + +/** + * Add a device on the basis of an SSDP packet. Do not call this from user + * applications. + * + * @param ctrlPoint The control point, whose device list to handle + * @param ssdpPkt The received SSDP packet + */ +void cg_upnp_controlpoint_adddevicebyssdppacket(CgUpnpControlPoint *ctrlPoint, + CgUpnpSSDPPacket *ssdpPkt); + +/** + * Remove a device on the basis of an SSDP packet. Do not call this from user + * applications. + * + * @param ctrlPoint The control point, whose device list to handle + * @param ssdpPkt The received SSDP packet + */ +void cg_upnp_controlpoint_removedevicebyssdppacket(CgUpnpControlPoint *ctrlPoint, + CgUpnpSSDPPacket *ssdpPkt); + +/**************************************** + * Subscription + ****************************************/ + +/** + * Subscribe to a service's events + * + * @param ctrlPoint The control point in use + * @param service The service to subscribe to + * @param timeout Timeout for subscription expiration/renewal + * @return TRUE if successful; otherwise FALSE + */ +BOOL cg_upnp_controlpoint_subscribe(CgUpnpControlPoint *ctrlPoint, CgUpnpService *service, long timeout); + +/** + * Re-subscribe to a service's events (i.e. renew subscription) + * + * @param ctrlPoint The control point in use + * @param service The service to subscribe to + * @param timeout Timeout for subscription expiration/renewal + * @return TRUE if successful; otherwise FALSE + */ +BOOL cg_upnp_controlpoint_resubscribe(CgUpnpControlPoint *ctrlPoint, CgUpnpService *service, long timeout); + +/** + * Unsubscribe to a service's events (i.e. cancel subscription) + * + * @param ctrlPoint The control point in use + * @param service The service to unsubscribe to + * @return TRUE if successful; otherwise FALSE + */ +BOOL cg_upnp_controlpoint_unsubscribe(CgUpnpControlPoint *ctrlPoint, CgUpnpService *service); + +/** + * Subscribe to all of the device's services' events + * + * @param ctrlPoint The control point in use + * @param dev The device to subscribe to + * @param timeout Timeout for subscription expiration/renewal + * @return TRUE if successful; otherwise FALSE + */ +BOOL cg_upnp_controlpoint_subscribeall(CgUpnpControlPoint *ctrlPoint, CgUpnpDevice *dev, long timeout); + +/** + * Re-subscribe to all of the device's services' events (i.e. renew subscription) + * + * @param ctrlPoint The control point in use + * @param dev The device to subscribe to + * @param timeout Timeout for subscription expiration/renewal + * @return TRUE if successful; otherwise FALSE + */ +BOOL cg_upnp_controlpoint_resubscribeall(CgUpnpControlPoint *ctrlPoint, CgUpnpDevice *dev, long timeout); + +/** + * Unsubscribe to all of the device's services' events (i.e. cancel subscription) + * + * @param ctrlPoint The control point in use + * @param dev The device to unsubscribe to + * @return TRUE if successful; otherwise FALSE + */ +BOOL cg_upnp_controlpoint_unsubscribeall(CgUpnpControlPoint *ctrlPoint, CgUpnpDevice *dev); + +/**************************************** + * Function (DeviceList) + ****************************************/ + +/** + * Get the head of the control point's list of devices (use for iteration) + * + * @param ctrlPoint The control point in use + * @return The head of the device list + */ +#define cg_upnp_controlpoint_getdevices(ctrlPoint) cg_upnp_devicelist_gets(ctrlPoint->deviceList) + +/** + * Get the number of devices known by the control point + * + * @param ctrlPoint The control point in use + * @return The number of devices in the control point's device list + */ +#define cg_upnp_controlpoint_getndevices(ctrlPoint) cg_upnp_devicelist_size(ctrlPoint->deviceList) + +/** + * Get the head of the control point's list of devices (use for iteration) + * + * @param ctrlPoint The control point in use + * @param index The index of the device to get + * @return The specified device + */ +#define cg_upnp_controlpoint_getdevice(ctrlPoint, index) cg_upnp_devicelist_get(ctrlPoint->deviceList, index) + +/** + * Add a device to the control point's list of devices. Do not call this from + * user applications. + * + * @param ctrlPoint The control point in use + * @param dev The device to add + */ +#define cg_upnp_controlpoint_adddevice(ctrlPoint, dev) cg_upnp_devicelist_add(ctrlPoint->deviceList, dev) + +/**************************************** + * Environment handling + ****************************************/ + +/** + * Worker thread for handling expirations. + * + * \param thread the thread in question + */ +void cg_upnp_controlpoint_expirationhandler(CgThread *thread); + +/** + * Notify the control point that any IP of the host has been changed. + * + * \param ctrlpoint The control point in use + * \return success of changing used interfaces + */ +BOOL cg_upnp_controlpoint_ipchanged(CgUpnpControlPoint *ctrlpoint); + + +/** + * Get the event subscription callback URI + * + * @param ctrlPoint The control point in question + */ +char *cg_upnp_controlpoint_geteventsubcallbackurl(CgUpnpControlPoint *ctrlPoint, char *ifaddr, char *buf, int bufLen); + +#ifdef __cplusplus +} +#endif + +#endif /* _CG_UPNP_CCONTROLPOINT_H_ */ diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cdevice.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cdevice.h new file mode 100644 index 0000000..e47ca6d --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cdevice.h @@ -0,0 +1,1539 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cdevice.h +* +* Revision: +* +* 02/14/05 +* - first revision +* +* 10/31/05 +* - Added comments to all functions and structs +* +* 01/09/06 Heikki Junnila +* - Added cg_upnp_device_getservicebytype() to enable +* searching for services without version information. +* +* 10-Jan-06 Heikki Junnila +* - Renamed cg_upnp_device_getservicebyname to +* cg_upnp_device_getservicebyexacttype and created a compat +* macro for _getservicebyname +* +* 11-Jan-06 Heikki Junnila +* - Removed cg_upnp_device_isname and _getbyname because +* according to UPnP specs UDN, type or friendlyname is +* not the same as the device's name. +* - Added cg_upnp_device_getdevicebyudn() +* 04/03/06 Theo Beisch +* - Added cg_upnp_device_getservicebysid +* - changed leasetime and timer to type CgSysTime +* - added cg_upnp_device_waitforlock (nonblocking) +* 22-Apr-2008 +* - Added cg_upnp_device_getnservices() and cg_upnp_device_getservice() to get a device by the index. +* +******************************************************************/ + +#ifndef _CG_UPNP_CDEVICE_H_ +#define _CG_UPNP_CDEVICE_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** + * Value macros + ****************************************/ + +/** Definition for device XML element name */ +#define CG_UPNP_DEVICE_ELEM_NAME "device" + +/** Definition for device XML element list name */ +#define CG_UPNP_DEVICELIST_ELEM_NAME "deviceList" + +/** Definition for UPnP rootdevice ID */ +#define CG_UPNP_DEVICE_UPNP_ROOTDEVICE "upnp:rootdevice" + +/** Definition for default device start up wait time */ +#define CG_UPNP_DEVICE_DEFAULT_STARTUP_WAIT_TIME 1000 + +/** Definition for default device discovery wait time */ +#define CG_UPNP_DEVICE_DEFAULT_DISCOVERY_WAIT_TIME 500 + +/** Definition for default device lease time */ +#define CG_UPNP_DEVICE_DEFAULT_LEASE_TIME (30 * 60) + +/** Definition for default device HTTP port */ +#define CG_UPNP_DEVICE_HTTP_DEFAULT_PORT 38400 + +/** Definition for default description file "location" */ +#define CG_UPNP_DEVICE_DEFAULT_DESCRIPTION_URI "/description.xml" + +/** Definition for maximum URL base length */ +#define CG_UPNP_DEVICE_URLBASE_MAXLEN 64 + +/** Definition for M-SEARCH filter interval */ +#define CG_UPNP_DEVICE_M_SEARCH_FILTER_INTERVAL 15 + +/** Definition for urlbase XML element name */ +#define CG_UPNP_DEVICE_URLBASE_NAME "URLBase" + +/** Definition for device type XML element name */ +#define CG_UPNP_DEVICE_DEVICE_TYPE "deviceType" + +/** Definition for device friendly name XML element name */ +#define CG_UPNP_DEVICE_FRIENDLY_NAME "friendlyName" + +/** Definition for device manufacturer XML element name */ +#define CG_UPNP_DEVICE_MANUFACTURER "manufacturer" + +/** Definition for manufacturer URL XML element name */ +#define CG_UPNP_DEVICE_MANUFACTURER_URL "manufacturerURL" + +/** Definition for device model description XML element name */ +#define CG_UPNP_DEVICE_MODEL_DESCRIPTION "modelDescription" + +/** Definition fo device model name XML element name */ +#define CG_UPNP_DEVICE_MODEL_NAME "modelName" + +/** Definition for device model number XML element name */ +#define CG_UPNP_DEVICE_MODEL_NUMBER "modelNumber" + +/** Definition for device model URL XML element name */ +#define CG_UPNP_DEVICE_MODEL_URL "modelURL" + +/** Definition for device serial number XML element name */ +#define CG_UPNP_DEVICE_SERIAL_NUMBER "serialNumber" + +/** Definition for device UDN XML element name */ +#define CG_UPNP_DEVICE_UDN "UDN" + +/** Definition for device UPC XML element name */ +#define CG_UPNP_DEVICE_UPC "UPC" + +/** Definition for device presentation URL XML element name */ +#define CG_UPNP_DEVICE_PRESENTATION_URL "presentationURL" + +/**************************************** + * Data Type + ****************************************/ + +/** + * \brief The generic UPnP device structure + * + * \note This struct can also be cast to a CgList* and used as a node in a + * linked list with cg_list_* functions. + */ +typedef struct _CgUpnpDevice +{ + /** Used by cg_list_* functions to indicate start of list */ + BOOL headFlag; + /** Used by cg_list_* functions to point to the previous item in list */ + struct _CgUpnpDevice *prev; + /** Used by cg_list_* functions to point to the next item in list */ + struct _CgUpnpDevice *next; + + /** List of XML root nodes */ + CgXmlNodeList *rootNodeList; + /** This device's description XML node */ + CgXmlNode *deviceNode; + + /** This device's parent device */ + struct _CgUpnpDevice *parentDevice; + /** List of devices */ + struct _CgUpnpDevice *deviceList; + /** List of services */ + struct _CgUpnpService *serviceList; + /** List of icons */ + struct _CgUpnpIcon *iconList; + + /** Mutex used in multithreading */ + CgMutex *mutex; + /** List of HTTP servers */ + CgHttpServerList *httpServerList; + /** List of SSDP servers */ + CgUpnpSSDPServer *ssdpServerList; + /** Device advertiser thread */ + CgThread *advertiser; + + /** HTTP request listener */ + CG_HTTP_LISTENER httpListener; + + /** URI for this device's description */ + CgString *descriptionURI; + /** Advertisement lease time */ + CgSysTime leaseTime; + /** HTTP Port to listen to */ + int httpPort; + /** This device's SSDP packet */ + CgUpnpSSDPPacket *ssdpPkt; + /** User data used to pass miscellaneous data */ + void *userData; + + /* List of cached interfaces */ + CgNetworkInterfaceList *ifCache; +} CgUpnpDevice, CgUpnpDeviceList; + +/**************************************** + * Function (Device) + ****************************************/ + +/** + * Create a new UPnP device + */ +CgUpnpDevice *cg_upnp_device_new(); + +/** + * Delete a UPnP device + * + * \param dev Device in question + */ +void cg_upnp_device_delete(CgUpnpDevice *dev); + +/** + * Clear a UPnP device structure. This is an internal function and should not be called from outside. + * + * \param dev Device in question + */ +void cg_upnp_device_clear(CgUpnpDevice *dev); + +/** + * Get the next device in the device list. Use as an iterator. + * + * \param dev Current device + */ +#define cg_upnp_device_next(dev) (CgUpnpDevice *)cg_list_next((CgList *)dev) + +/** + * Remove the device from the device list. + * + * \param dev Device in question + */ +#define cg_upnp_device_remove(dev) cg_list_remove((CgList *)dev) + +/** + * Check whether the given node is of type CG_UPNP_DEVICE_ELEM_NAME + * + * \param node CgXmlAttribute + */ +#define cg_upnp_device_isdevicenode(node) cg_xml_node_isname(node, CG_UPNP_DEVICE_ELEM_NAME) + +/** + * Return the device's root node + * \todo Correct explanation... + * + * \param dev Device in question + */ +#define cg_upnp_device_getrootnode(dev) cg_xml_nodelist_gets(dev->rootNodeList) + +/** + * Set the device description node and initialise its child nodes + * + * \param dev Device in question + * \param node The XML structure to be set as the device's description + */ +void cg_upnp_device_setdevicenode(CgUpnpDevice *dev, CgXmlNode *node); + +/** + * Return the device XML description node + * + * \param dev Device in question + */ +#define cg_upnp_device_getdevicenode(dev) (dev->deviceNode) + +/** + * Check whether the given device contains a list of root nodes + * i.e. is it the root device + * + * \param dev Device in question + */ +#define cg_upnp_device_isrootdevice(dev) ((dev->rootNodeList != NULL) ? TRUE : FALSE) + +/** + * Set a parent device for the given child device + * + * \param dev Child device + * \param pDev Parent device + */ +#define cg_upnp_device_setparentdevice(dev, pDev) (dev->parentDevice = pDev) + +/** + * Return the device's parent device + * + * \param dev Device in question + */ +#define cg_upnp_device_getparentdevice(dev) (dev->parentDevice) + +/** + * Return the root (i.e. the topmost) device in the device structure + * + * \param dev Traverses the device tree upwards starting from this device + */ +CgUpnpDevice *cg_upnp_device_getrootdevice(CgUpnpDevice *dev); + +/** + * Parse the device description XML document. + * + * \param dev Device in question + * \param description Buffer containing the device description in XML format + * \param descriptionLen Buffer length + * + * \return TRUE, if the buffer was successfully parsed; otherwise FALSE + */ +BOOL cg_upnp_device_parsedescription(CgUpnpDevice *dev, char *desciption, int descriptionLen); + +/** + * Fetch and parse the device description XML file, located in the given URL. + * + * \param dev Device in question + * \param url An internet resource + * + * \return TRUE, if the buffer was successfully parsed; otherwise FALSE + */ +BOOL cg_upnp_device_parsedescriptionurl(CgUpnpDevice *dev, CgNetURL *url); + + +#if defined(CG_USE_CFILE) +/** + * Load and parse the device description from an XML file. + * Not available for T-Engine, ITron and BTron platforms. + * + * \param dev Device in question + * \param fileName The file name containing the device description XML document + * + * \return TRUE, if the buffer was successfully parsed; otherwise FALSE + */ +BOOL cg_upnp_device_loaddescriptionfile(CgUpnpDevice *dev, char *fileName); +#endif + +/**************************************************************************** + * Description updates + ****************************************************************************/ + +/** + * Update the device's contents from an SSDP packet if necessary. + * + * @param dev The device to potentially update + * @param ssdpPkt The SSDP packet to make decisions on + * @return TRUE if the device was updated; otherwise FALSE + */ +BOOL cg_upnp_device_updatefromssdppacket(CgUpnpDevice* dev, + CgUpnpSSDPPacket* ssdpPkt); + +/***************************************************************************** + * Device Type + *****************************************************************************/ + +/** + * Modify the device type. + * + * \param dev Device in question + * \param value Type to set + */ +#define cg_upnp_device_setdevicetype(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_DEVICE_TYPE, value) + +/** + * Return the device type + * + * \param dev Device in question + * + * \return Device type + */ +#define cg_upnp_device_getdevicetype(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_DEVICE_TYPE) + +/** + * Check, whether the device is of the exact specified type (including version) + * + * \param dev Device in question + * @param value Device type + * + * \return BOOL: TRUE if device matches given type; otherwise FALSE + */ +#define cg_upnp_device_isdevicetype(dev, value) cg_streq(cg_upnp_device_getdevicetype(dev), value) + +/** + * Get the identifier-part of a device type string (usually "urn") + * + * @param deviceType A device type string (usually the result from + * @ref cg_upnp_device_getdevicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_devicetype_getidentifier(char* deviceType); + +/** + * Get the URN part of a device type string (usually "schemas-upnp-org") + * + * @param deviceType A device type string (usually the result from + * @ref cg_upnp_device_getdevicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_devicetype_geturn(char* deviceType); + +/** + * Get the device part of a device type string (usually just "device") + * + * @param deviceType A device type string (usually the result from + * @ref cg_upnp_device_getdevicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_devicetype_getdevice(char* deviceType); + +/** + * Get the type part of a device type string (ex. "ContentDirectory") + * + * @param deviceType A device type string (usually the result from + * @ref cg_upnp_device_getdevicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_devicetype_gettype(char* deviceType); + +/** + * Get the schema type part of a device type string (without last colon) + * (ex. "urn:schemas-upnp-org:device:ContentDirectory") + * + * @param deviceType A device type string (usually the result from + * @ref cg_upnp_device_getdevicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_devicetype_getschematype(char* deviceType); + +/** + * Get the version part of a device type string (ex. "1") + * + * @param deviceType A device type string (usually the result from + * @ref cg_upnp_device_getdevicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_devicetype_getversion(char* deviceType); + +/***************************************************************************** + * Friendly Name + *****************************************************************************/ + +/** + * Modify the device's friendly name. + * + * \param dev Device in question + * \param value The friendly name + * + */ +#define cg_upnp_device_setfriendlyname(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_FRIENDLY_NAME, value) + +/** + * Return the device's friendly name. + * + * \param dev Device in question + * + * \return The device's friendly name + */ +#define cg_upnp_device_getfriendlyname(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_FRIENDLY_NAME) + +/***************************************************************************** + * Manufacturer + *****************************************************************************/ + +/** + * Modify the device's manufacturer. + * + * \param dev Device in question + * \param value The manufacturer's name + * + */ +#define cg_upnp_device_setmanufacturer(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MANUFACTURER, value) + +/** + * Get the device's manufacturer. + * + * \param dev Device in question + * + * \return value The manufacturer's name + */ +#define cg_upnp_device_getmanufacturer(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MANUFACTURER) + +/***************************************************************************** + * Manufacturer URL + *****************************************************************************/ + +/** + * Modify the device's manufacturer URL + * + * \param dev Device in question + * \param value The manufacturer URL + * + */ +#define cg_upnp_device_setmanufacturerurl(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MANUFACTURER_URL, value) + +/** + * Get the device's manufacturer URL + * + * \param dev Device in question + * + * \return The manufacturer URL + */ +#define cg_upnp_device_getmanufacturerurl(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MANUFACTURER_URL) + +/***************************************************************************** + * Model Description + *****************************************************************************/ + +/** + * Modify the device model description + * + * \param dev Device in question + * \param value The device model description + * + */ +#define cg_upnp_device_setmodeldescription(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MODEL_DESCRIPTION, value) + +/** + * Get the device model description + * + * \param dev Device in question + * + * \return The device model description + */ +#define cg_upnp_device_getmodeldescription(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MODEL_DESCRIPTION) + +/***************************************************************************** + * Model Name + *****************************************************************************/ + +/** + * Modify the device's model name + * + * \param dev Device in question + * \param value The model name + * + */ +#define cg_upnp_device_setmodelname(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MODEL_NAME, value) + +/** + * Get the device's model name + * + * \param dev Device in question + * + * \return The model name + */ +#define cg_upnp_device_getmodelname(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MODEL_NAME) + +/***************************************************************************** + * Model Number + *****************************************************************************/ + +/** + * Modify the device's model number + * + * \param dev Device in question + * \param value The model number + * + */ +#define cg_upnp_device_setmodelnumber(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MODEL_NUMBER, value) + +/** + * Get the device's model number + * + * \param dev Device in question + * + * \return The model number + */ +#define cg_upnp_device_getmodelnumber(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MODEL_NUMBER) + +/***************************************************************************** + * Model URL + *****************************************************************************/ + +/** + * Modify the device's model URL + * + * \param dev Device in question + * \param value The model URL + * + */ +#define cg_upnp_device_setmodelurl(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MODEL_URL, value) + +/** + * Get the device's model URL + * + * \param dev Device in question + * + * \return The model URL + */ +#define cg_upnp_device_getmodelurl(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MODEL_URL) + +/***************************************************************************** + * serialNumber + *****************************************************************************/ + +/** + * Modify the device's serial number + * + * \param dev Device in question + * \param value The serial number + * + */ +#define cg_upnp_device_setserialnumber(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_SERIAL_NUMBER, value) + +/** + * Get the device's model number + * + * \param dev Device in question + * + * \return The serial number + */ +#define cg_upnp_device_getserialnumber(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_SERIAL_NUMBER) + +/***************************************************************************** + * Unique Device Name (UDN) + *****************************************************************************/ + +/** + * Modify the device's Unique Device Name (UDN) + * + * \param dev Device in question + * \param value The Unique Device Name + * + */ +#define cg_upnp_device_setudn(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_UDN, value) + +/** + * Get the device's Unique Device Name (UDN) + * + * \param dev Device in question + * + * \return The Unique Device Name + */ +#define cg_upnp_device_getudn(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_UDN) + +/** + * Check whether the device has a Unique Device Name (UDN) + * + * \param dev Device in question + * + * \return TRUE if the device has a UDN; otherwise FALSE + */ +#define cg_upnp_device_hasudn(dev) ((0 < cg_strlen(cg_upnp_device_getudn(dev))) ? TRUE : FALSE) + +/** + * Update new Unique Device Name (UDN) + * + * \param dev Device in question + * + */ +void cg_upnp_device_updateudn(CgUpnpDevice *dev); + +/***************************************************************************** + * Universal Product Code (UPC) + *****************************************************************************/ + +/** + * Modify the device's Universal Product Code (UPC) + * + * \param dev Device in question + * \param value The Universal Product Code + * + */ +#define cg_upnp_device_setupc(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_UPC, value) + +/** + * Get the device's Universal Product Code (UPC) + * + * \param dev Device in question + * + * \return The Universal Product Code + */ +#define cg_upnp_device_getupc(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_UPC) + +/***************************************************************************** + * Presentation URL + *****************************************************************************/ + +/** + * Modify the device's presentation URL + * + * \param dev Device in question + * \param value The presentation URL + * + */ +#define cg_upnp_device_setpresentationurl(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_PRESENTATION_URL, value) + +/** + * Get the device's presentation URL + * + * \param dev Device in question + * + * \return The presentation URL + */ +#define cg_upnp_device_getpresentationurl(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_PRESENTATION_URL) + +/***************************************************************************** + * URLBase + *****************************************************************************/ + +/** + * Modify the device's URL base + * The base URL is the root for all relative URLs. + * + * \param dev Device in question + * \param value The URL base + * + */ +void cg_upnp_device_seturlbase(CgUpnpDevice *dev, char *value); + +/** + * Get the device's base URL. + * The base URL is the root for all relative URLs. + * + * \param dev Device in question + * \return The URL base + * + */ +#define cg_upnp_device_geturlbase(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getrootnode(cg_upnp_device_getrootdevice(dev)), CG_UPNP_DEVICE_URLBASE_NAME) + +/***************************************************************************** + * Start/Stop + *****************************************************************************/ + +/** + * Start the device. This essentially starts: + * \li The HTTP server + * \li The SSDP server + * \li Advertising the device + * \li Alive notification + * + * \param dev Device in question + * + */ +BOOL cg_upnp_device_start(CgUpnpDevice *dev); + +/** + * Stop the device. This concerns: + * \li The HTTP server + * \li The SSDP server + * \li Advertising the device + * \li Byebye notification + * + * \param dev Device in question + * + */ +BOOL cg_upnp_device_stop(CgUpnpDevice *dev); + +/** + * Check if the device] has been started + * + * \param dev Device that is being advertised + */ +BOOL cg_upnp_device_isrunning(CgUpnpDevice *dev); + +/***************************************************************************** + * URL + *****************************************************************************/ + +/** + * Get device's location URL. Transforms the given address to URL form: + * "http://:/description.xml". Port is usually 80 or 38400. + * If is an IPv6 address, the address is "http://[]:/description.xml". + * + * \param dev Device in question + * \param host The device host + * \param buf Buffer to store the resulting URL + * \param bufSize Buffer length + * + */ +char *cg_upnp_device_getlocationurl(CgUpnpDevice *dev, char *host, char *buf, int bufSize); + +/***************************************************************************** + * Notify + *****************************************************************************/ + +/** + * Broadcast an SSDP:alive to notify control points that the device is available. + * + * \param dev Device in question + * + */ +void cg_upnp_device_announce(CgUpnpDevice *dev); + +/** + * Broadcast an SSDP:byebye message to notify control points that the device is no longer available. + * + * \param dev Device in question + * + */ +void cg_upnp_device_byebye(CgUpnpDevice *dev); + +/***************************************************************************** + * Mutex + *****************************************************************************/ + +/** + * Lock the device's mutex (grant exclusive access to the device) until \ref cg_upnp_device_unlock is called. + * + * \param dev Device in question + * + */ +#define cg_upnp_device_lock(dev) cg_mutex_lock(dev->mutex) + +/** + * Lock the device's mutex with timeout, return TRUE if exclusive access is gained + * Release lock with \ref cg_upnp_device_unlock is called. + * + * \param dev Device in question + * \param t timeout in ms + * + */ +#define cg_upnp_device_waitforlock(dev,t) cg_mutex_waitforlock(dev->mutex,t) + +/** + * Unlock the device's mutex (release exclusive access to the device) locked previously with \ref cg_upnp_device_lock. + * + * \param dev Device in question + * + */ +#define cg_upnp_device_unlock(dev) cg_mutex_unlock(dev->mutex) + +/***************************************************************************** + * Listener + *****************************************************************************/ + +/** + * Set an action listener to the device. Actions are basically commands, that the + * device (service) responds to. + * + * \param dev Device in question + * \param actionListener The action listener + * + */ +void cg_upnp_device_setactionlistener(CgUpnpDevice *dev, CG_UPNP_ACTION_LISTNER actionListner); + +/** + * Set a query listener to the device. Queries are meant for state variables. + * + * \param dev Device in question + * \param actionListener The query listener + * + */ +void cg_upnp_device_setquerylistener(CgUpnpDevice *dev, CG_UPNP_STATEVARIABLE_LISTNER queryListner); + +/***************************************************************************** + * User Data + *****************************************************************************/ + +/** + * Set device's user data pointer + * + * \param dev Device in question + * \param value User data pointer + * + */ +#define cg_upnp_device_setuserdata(dev, value) (dev->userData = value) + +/** + * Get device's user data pointer + * + * \param dev Device in question + * \return pointer to user data + * + */ +#define cg_upnp_device_getuserdata(dev) (dev->userData) + +/***************************************************************************** +* Function +******************************************************************************/ + +/***************************************************************************** + * DescriptionURL + *****************************************************************************/ + +/** + * Set the given URL as the device's description URI + * + * \param dev Device in question + * \param url Description URL + * + */ +#define cg_upnp_device_setdescriptionuri(dev,url) cg_string_setvalue(dev->descriptionURI, url) + +/** + * Get the device's description URI + * + * \param dev Device in question + * + */ +#define cg_upnp_device_getdescriptionuri(dev) cg_string_getvalue(dev->descriptionURI) + +/** + * Check, whether the given URL matches the device's description URI + * + * \param dev Device in question + * \param url Description URL to check + * + */ +#define cg_upnp_device_isdescriptionuri(dev, url) cg_streq(cg_string_getvalue(dev->descriptionURI), url) + +/***************************************************************************** + * Lease Time + *****************************************************************************/ + +/** + * Set the device's lease time. The lease time is basically the maximum amount + * of time that can elapse before an advertisement is broadcast again. It does not + * set the exact advertisement interval, but rather a time window for each advertisement. + * Advertisement actually occurs at (more or less) random intervals inside this time window. + * + * \param dev Device in question + * \param value Lease time in seconds + * + */ +#define cg_upnp_device_setleasetime(dev,value) (dev->leaseTime = value) + +/** + * Get the device's lease time. See \ref cg_upnp_device_setleasetime. + * + * \param dev Device in question + * + */ +#define cg_upnp_device_getleasetime(dev) (dev->leaseTime) + +/***************************************************************************** +* Functions (Embedded) +******************************************************************************/ + +/***************************************************************************** + * Embedded DeviceList + *****************************************************************************/ + +/** + * Get the device's internal device list + * + * \param dev Device in question + * + */ +#define cg_upnp_device_getdevicelist(dev) (dev->deviceList) + +/** + * Find a certain device from the given device list + * + * \param dev Device in question + * \param idx Device index number in list + * \return NULL if not found; otherwise the device pointer + * + */ +//Theo Beisch added missing (CgList*) cast +#define cg_upnp_device_getdevice(dev,idx) ((CgUpnpDevice *)cg_list_get((CgList*)dev->deviceList,idx)) + +/** + * \todo Correct explanation... + * + * \param dev Device in question + * + */ +//Theo Beisch : added missing (CgList*) cast +#define cg_upnp_device_getdevices(dev) ((CgUpnpDevice *)cg_list_gets((CgList *)dev->deviceList)) + +/** + * Find a device from the device's children by the exact type of the device. + * This function searches for devices, whose *complete type string* + * matches the given string, including version number. For example: + * "urn:schemas-upnp-org:device:FooDevice:1". If you need to disregard + * the version, use \ref cg_upnp_device_getdevicebytype + * + * \param ctrlPoint Controlpoint in question + * \param exacttype Type of the device + * + */ +CgUpnpDevice *cg_upnp_device_getdevicebyexacttype(CgUpnpDevice* dev, + char *exacttype); + +/** + * Find a device from the device's children by the type of the device. + * This function searches for devices, whose *type part* (i.e. not including + * the version) of the device type string matches the given string. + * For example: "urn:schemas-upnp-org:device:FooDevice". If you need + * to know the version of a device, use \ref cg_upnp_devicetype_getversion + * + * \param dev Device in question + * \param type Type of the device + * + */ +CgUpnpDevice *cg_upnp_device_getdevicebytype(CgUpnpDevice *dev, char *type); + +/** + * Find a device from the device's children by the UDN of the device. + * + * \param dev Device in question + * \param type Type of the device + * + */ +CgUpnpDevice *cg_upnp_device_getdevicebyudn(CgUpnpDevice *dev, char *udn); + +/** + * Find a child device by its description URI. + * + * \param dev Device in question + * \param url Description URI + * + */ +CgUpnpDevice *cg_upnp_device_getdevicebydescriptionuri(CgUpnpDevice *dev, char *url); + +/***************************************************************************** + * Embedded ServiceList + *****************************************************************************/ + +/** + * Get the device's list of services + * + * \param dev Device in question + * + */ +#define cg_upnp_device_getservicelist(dev) (dev->serviceList) + +/** + * Get the number of services known by the device + * + * \param dev Device in question + * @return The number of devices in the control point's device list + */ +#define cg_upnp_device_getnservices(dev) cg_upnp_servicelist_size(dev->serviceList) + +/** + * Get a service from from the device + * + * \param dev Device in question + * \param idx Device index number + * + */ +//Theo Beisch : added missing (CgList*) cast +#define cg_upnp_device_getservice(dev,idx) ((CgUpnpService *)cg_list_get((CgList *)dev->serviceList,idx)) + +/** + * \todo Correct explanation... + * + * \param dev Device in question + * + */ +#define cg_upnp_device_getservices(dev) ((CgUpnpService *)cg_list_gets((CgList *)dev->serviceList)) + +/** + * Find service from the device by a given serviceId. + * This function searches recursively device and its subdevices + * for a service with a given serviceId + * + * \param dev Device in question + * \param serviceId serviceId of the service + * \return service matching the given serviceId + */ +CgUpnpService *cg_upnp_device_getservicebyserviceid(CgUpnpDevice *dev, + char *serviceId); + +/** + * Find a service from the device by the type of the service. + * This function searches for services, whose *complete type string* + * matches the given string, including version number. For example: + * "urn:schemas-upnp-org:service:ContentDirectory:1". If you need to + * know the version of a service, use \ref cg_upnp_servicetype_getversion + * + * \param dev Device in question + * \param type Type of the service + * + */ +CgUpnpService *cg_upnp_device_getservicebyexacttype(CgUpnpDevice *dev, + char *type); + +/** + * Find a service from the device by the type of the service. + * This function searches for services, whose *type* part of the service type + * string matches the given string. For example: "ContentDirectory". + * If you need to search for an exact service type, use + * \ref cg_upnp_device_getservicebyname + * + * \param dev Device in question + * \param type Type of the service + * + */ +CgUpnpService *cg_upnp_device_getservicebytype(CgUpnpDevice *dev, char *type); + +/** + * Find a service from the device by the subscribtion ID + * + * \param dev Device in question + * \param sid Subscription ID of the service + */ +CgUpnpService *cg_upnp_device_getservicebysid(CgUpnpDevice *dev, char *sid); + +/** + * Find a service from the device by the SCPD (Service Control Protocol Definition) URL of the service. + * + * \param dev Device in question + * \param url SCPD URL + * + */ +CgUpnpService *cg_upnp_device_getservicebyscpdurl(CgUpnpDevice *dev, char *url); + +/** + * Find a service from a device by its control URL + * + * \param dev Device in question + * \param url Control URL + * + */ +CgUpnpService *cg_upnp_device_getservicebycontrolurl(CgUpnpDevice *dev, char *url); + +/** + * Find a service from a device by its event subscription URL + * + * \param dev Device in question + * \param url Event Subscription URL + * + */ +CgUpnpService *cg_upnp_device_getservicebyeventsuburl(CgUpnpDevice *dev, char *url); + +/** + * Find a service from its Subscription ID + * + * \param dev Device in question + * \param char* Subscription-ID (SID) + * + */ +CgUpnpService *cg_upnp_device_getservicebysid(CgUpnpDevice *dev, char *sid); + + +/***************************************************************************** + * Embedded IconList + *****************************************************************************/ + +/** + * Get the device's list of icons + * + * \param dev Device in question + * + */ +#define cg_upnp_device_geticonlist(dev) (dev->iconList) + +/** + * Get an icon by its index from the device's list of icons + * + * \param dev Device in question + * \param idx Icon index number + * + */ +#define cg_upnp_device_geticon(dev,idx) ((CgUpnpIcon *)cg_list_get((CgList *)dev->iconList,idx)) + +/** + * \todo Correct explanation... + * + * \param dev Device in question + * + */ +#define cg_upnp_device_geticons(dev) ((CgUpnpIcon *)cg_list_gets((CgList *)dev->iconList)) + +/** +* Get a smallest icon +* +* \param dev Device in question +* +* \return A smallest icon. +*/ +CgUpnpIcon *cg_upnp_device_getsmallesticon(CgUpnpDevice *dev); + +/** + * Get a smallest icon of a specified mime type + * + * \param dev Device in question + * \param mimeType Mime type to get + * + * \return A smallest icon. +*/ +CgUpnpIcon *cg_upnp_device_getsmallesticonbymimetype(CgUpnpDevice *dev, char *mimeType); + +/** + * Get an icon by its index from the device's list of icons + * + * \param dev Device in question + * \param icon Icon in question + * \param buf Buffer to return the full icon's url + * + * \return TRUE if the absolute url is created, otherwise FALSE. + */ +BOOL cg_upnp_device_getabsoluteiconurl(CgUpnpDevice *dev, CgUpnpIcon *icon, CgString *buf); + +/** +* Get a smallest icon + * + * \param dev Device in question + * \param icon Icon to add + * + */ +BOOL cg_upnp_device_addicon(CgUpnpDevice *dev, CgUpnpIcon *icon); + +/***************************************************************************** + * Embedded Action + *****************************************************************************/ + +/** + * Find an action from a device by its name + * + * \param dev Device in question + * \param name Name of the action + * + */ +CgUpnpAction *cg_upnp_device_getactionbyname(CgUpnpDevice *dev, char *name); + +/***************************************************************************** + * Embedded StateVariable + *****************************************************************************/ + +/** + * Find a state variable from a device by its name + * + * \param dev Device in question + * \param name Name of the state variable + * + */ +CgUpnpStateVariable *cg_upnp_device_getstatevariablebyname(CgUpnpDevice *dev, char *name); + +/***************************************************************************** + * Function (DeviceList) + *****************************************************************************/ + +/** + * Create a new device list + * + */ +CgUpnpDeviceList *cg_upnp_devicelist_new(); + +/** + * Delete a device list completely, freeing all devices and their contents. + * + * \param devList The device list to delete + * + */ +void cg_upnp_devicelist_delete(CgUpnpDeviceList *devList); + +/** + * Clear the contents of a device list. + * Use \ref cg_upnp_devicelist_delete instead of this function. + * + * \param devList The device list to clear + * + */ +#define cg_upnp_devicelist_clear(devList) cg_list_clear((CgList *)devList, (CG_LIST_DESTRUCTORFUNC)cg_upnp_device_delete) + +/** + * Get the size of the device list + * + * \param devList The device list + * + */ +#define cg_upnp_devicelist_size(devList) cg_list_size((CgList *)devList) + +/** + * \todo Correct description + * + * \param devList The device list + * + */ +#define cg_upnp_devicelist_gets(devList) (CgUpnpDevice *)cg_list_next((CgList *)devList) + +/** + * Get an device from the device list by the index + * + * \param devList The device list + * \param index The index of the device to get + * + */ +#define cg_upnp_devicelist_get(devList, index) (CgUpnpDevice *)cg_list_get((CgList *)devList, index) + +/** + * Add a device to the device list + * + * \param devList The device list + * \param dev The device to add + * + */ +#define cg_upnp_devicelist_add(devList, dev) cg_list_add((CgList *)devList, (CgList *)dev) + +/**************************************** +* Function (Service) +****************************************/ + +/** + * Get the device associated to the given service + * + * \param service The service in question + * + */ +//Theo Beisch: namespace conflict - removed duplicate - already defined in cservice.h +//#define cg_upnp_service_getdevice(service) ((CgUpnpDevice *)service->parentDevice) + +/** + * Get the root device of the given service + * + * \param service The service in question + * + */ +//Theo Beisch: namespace conflict - removed duplicate - already defined in cservice.h +//#define cg_upnp_service_getrootdevice(service) cg_upnp_device_getrootdevice((CgUpnpDevice *)service->parentDevice) + +/***************************************************************************** +* Function (HTTP) +******************************************************************************/ + +/***************************************************************************** + * HTTP Port + *****************************************************************************/ + +/** + * Modify the port that the device's HTTP server is listening + * + * \param dev The device in question + * \param value Port number + * + */ +#define cg_upnp_device_sethttpport(dev,value) (dev->httpPort = value) + +/** + * Get the device's HTTP port + * + * \param dev The device in question + * + */ +#define cg_upnp_device_gethttpport(dev) (dev->httpPort) + +/** + * Set an HTTP listener function to the device + * + * \param dev The device in question + * \param func The listener function + * + */ +#define cg_upnp_device_sethttplistener(dev, func) (dev->httpListener = func) + +/** + * Get the device's HTTP listener function + * + * \param dev The device in question + * + */ +#define cg_upnp_device_gethttplistener(dev) (dev->httpListener) + +/** + * Get the HTTP server list + * + * \param dev The device in question + * + */ +#define cg_upnp_device_gethttpserverlist(dev) (dev->httpServerList) + +/** + * Handler function for a received HTTP request. Delegates GET and POST requests + * to their respective handlers, or treats as a BAD REQUEST, when appropriate. + * + * \param httpReq Received HTTP request + * + */ +void cg_upnp_device_httprequestrecieved(CgHttpRequest *httpReq); + +/***************************************************************************** + * Function (SSDP) + *****************************************************************************/ + +/** + * Get the device's list of SSDP servers + * + * \param dev The device in question + * + */ +#define cg_upnp_device_getssdpserverlist(dev) (dev->ssdpServerList) + +/** + * The SSDP message handler function. + * + * \param ssdpPkt SSDP Packet + * + */ +void cg_upnp_device_ssdplistener(CgUpnpSSDPPacket *ssdpPkt); + +/** + * Get the SSDP server list + * + * \param dev The device in question + * + */ +#define cg_upnp_device_getssdpserverlist(dev) (dev->ssdpServerList) + +/** + * Get the device's Notification Type (NT). For the root device this is "upnp:rootdevice", + * otherwise the device's UDN (Unique Device Name). + * + * \param dev The device in question + * \param buf Buffer for the Notification Type + * \param bufSize Buffer length + * + */ +char *cg_upnp_device_getnotifydevicent(CgUpnpDevice *dev, char *buf, int bufSize); + +//Theo Beisch: added reference +/** + * Get the device's USN (Unique Service Name). + * For the root device this is "::upnp:rootdevice", + * otherwise the UDN (Unique Device Name). + * + * \param dev The device in question + * + */ +char *cg_upnp_device_getnotifydeviceusn(CgUpnpDevice *dev, char *buf, int bufSize); + +/** + * Get the device type + * + * \param dev The device in question + * \param buf Buffer for the device type + * \param bufSize Buffer length + * + */ +char *cg_upnp_device_getnotifydevicetypent(CgUpnpDevice *dev, char *buf, int bufSize); + +/** + * Get the device's USN (Unique Service Name). For the root device this is "::upnp:rootdevice", + * otherwise the UDN (Unique Device Name). + * + * \param dev The device in question + * @param buf Buffer where USN is stored after call + * @param bufSize Buffer size + * + * @return Pointer to buf + */ +char *cg_upnp_device_getnotifydevicetypeusn(CgUpnpDevice *dev, char *buf, int bufSize); + +/** + * SSDP message handler + * + * \param dev The device in question + * \param ssdpPkt Received SSDP packet + * + */ +void cg_upnp_device_ssdpmessagereceived(CgUpnpDevice *dev, CgUpnpSSDPPacket *ssdpPkt, int filter); + +/** + * Post a response to an SSDP search message + * + * \param dev The device in question + * \param ssdpPkt Received SSDP packet + * \param st Service Type (ST) + * \param usn Unique Service Name (USN) + * + */ +BOOL cg_upnp_device_postsearchresponse(CgUpnpDevice *dev, CgUpnpSSDPPacket *ssdpPkt, char *st, char *usn); + +/** + * Notify device that IP address of the host has been changed. + * + * \param dev dev The device in question + * \return success of changing used interfaces + */ +BOOL cg_upnp_device_ipchanged(CgUpnpDevice *dev); + +/***************************************************************************** + * Function (SSDPPacket) + *****************************************************************************/ + +/** + * Get the device's SSDP packet + * + * \param dev The device in question + * + */ +#define cg_upnp_device_getssdppacket(dev) (dev->ssdpPkt) + +/** + * Modify the device's SSDP packet (creates a copy of the original) + * + * \param dev The device in question + * \param srcSsdpPkt The SSDP packet + * + */ +#define cg_upnp_device_setssdppacket(dev, srcSsdpPkt) cg_upnp_ssdp_packet_copy(dev->ssdpPkt, srcSsdpPkt) + +/** + * Extract location information from the device's SSDP packet + * + * \param dev The device in question + * + */ +#define cg_upnp_device_getlocationfromssdppacket(dev) cg_upnp_ssdp_packet_getlocation(dev->ssdpPkt) + +/** + * Extract the interface address from the device's SSDP packet + * + * \param dev The device in question + * + */ +#define cg_upnp_device_getinterfaceaddressfromssdppacket(dev) cg_upnp_ssdp_packet_getlocaladdress(dev->ssdpPkt) + +/**************************************** +* Function (Advertiser) +****************************************/ + +/** + * Start the advertiser thread for the given device + * + * \param dev The device in question + */ +BOOL cg_upnp_device_advertiser_start(CgUpnpDevice *dev); + +/** + * Stop the advertiser thread for the given device + * + * \param dev The device in question + */ +BOOL cg_upnp_device_advertiser_stop(CgUpnpDevice *dev); + +/** + * Check if the advertiser has been started + * + * \param dev Device that is being advertised + */ +BOOL cg_upnp_device_advertiser_isrunning(CgUpnpDevice *dev); + +/** + * Get the advertiser thread from the device + * + * \param dev The device in question + */ +#define cg_upnp_device_getadvertiserthead(dev) (dev->advertiser) + +#ifdef __cplusplus + +} /* extern C */ + +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cdictionary.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cdictionary.h new file mode 100644 index 0000000..f7a1cdd --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cdictionary.h @@ -0,0 +1,188 @@ +/****************************************************************** +* +* CyberUtil for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cdictionary.h +* +* Revision: +* +* 05/26/09 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UTIL_CDICTIONARY_H_ +#define _CG_UTIL_CDICTIONARY_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** + * Define + ****************************************/ + +/**************************************** + * Data Type + ****************************************/ + +/** + * \brief The generic wrapper struct for CyberLinkC's dictionarys. + * + * This wrapper has been created to enable 100% code + * compatibility between different platforms (Linux, Win32 etc..) + */ +typedef struct _CgDictionary { + BOOL headFlag; + struct _CgDictionary *prev; + struct _CgDictionary *next; + CgString *key; + CgString *value; +} CgDictionaryElement, CgDictionary; + +/**************************************** +* Function +****************************************/ + +/** + * Create a new dictionary + */ +CgDictionaryElement *cg_dictionary_element_new(); + +/** + * Destroy a dictionary. + * + * \param dirElem Dictionary to destroy + */ +BOOL cg_dictionary_element_delete(CgDictionaryElement *dirElem); + +/** + * Set a key + * + * \param dirElem Dictionary struct + * \param name String to set + */ +#define cg_dictionary_element_setkey(dirElem, name) cg_string_setvalue(dirElem->key, name) +/** + * Get a key + * + * \param dirElem Dictionary struct + */ +#define cg_dictionary_element_getkey(dirElem) cg_string_getvalue(dirElem->key) + +/** + * Set a value + * + * \param dirElem Dictionary struct + * \param value String to set + */ +#define cg_dictionary_element_setvalue(dirElem, val) cg_string_setvalue(dirElem->value, val) +/** + * Get a value + * + * \param dirElem Dictionary struct + */ +#define cg_dictionary_element_getvalue(dirElem) cg_string_getvalue(dirElem->value) + +#define cg_dictionary_element_next(dirElem) (CgDictionaryElement *)cg_list_next((CgList *)dirElem) +#define cg_dictionary_element_remove(dirElem) cg_list_remove((CgList *)dirElem) + +/**************************************** +* Function (Dictionary List) +****************************************/ + +/** + * Create a new dictionary list + * + * \return Dictionary list + */ +CgDictionary *cg_dictionary_new(); + +/** + * Destroy a dictionary list + * + * \param dir The dictionary list in question + */ +void cg_dictionary_delete(CgDictionary *dir); + +/** + * Clear the contents of a dictionary list + * + * \param dir Dictionary list in question + */ +#define cg_dictionary_clear(dir) cg_list_clear((CgList *)dir, (CG_LIST_DESTRUCTORFUNC)cg_dictionary_element_delete) + +/** + * Get the size of a dictionary list + * + * \param dir The dictionary list in question + */ +#define cg_dictionary_size(dir) cg_list_size((CgList *)dir) + +/** + * Get the first actual item from a dictionary list to use as an iterator + * + * \param dir The dictionary list in question + */ +#define cg_dictionary_gets(dir) (CgDictionaryElement *)cg_list_next((CgList *)dir) + +/** + * Add a dictionary into a dictionary list + * + * \param dir The dictionary list in question + * \param dirElem The dictionary to add to the list + */ +#define cg_dictionary_add(dir, dirElem) cg_list_add((CgList *)dir, (CgList *)dirElem) + +/** + * Remove a dictionary from dictionary list + * + * \param dirElem The dictionary to be removed + */ +#define cg_dictionary_remove(dirElem) cg_list_remove((CgList *)dirElem) + +/** + * Get a element of the specified key + * + * \param dir The dictionary list in question + * \param key Name to search. + * \return Element of the specified key. + */ +CgDictionaryElement *cg_dictionary_get(CgDictionary *dir, char *key); + +/** + * Set a new element into a dictionary + * + * \param dir The dictionary list in question + * \param key Name to set. + * \param value Value to set. + */ +void cg_dictionary_setvalue(CgDictionary *dir, char *key, char *value); + +/** + * Get a value of the specified key + * + * \param dir The dictionary list in question + * \param key Name to search. + * \return Value of the specified key. + */ +char *cg_dictionary_getvalue(CgDictionary *dir, char *key); + +#ifdef __cplusplus + +} /* extern "C" */ + +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cevent.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cevent.h new file mode 100644 index 0000000..ca40618 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cevent.h @@ -0,0 +1,563 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cevent.h +* +* Revision: +* +* 06/20/05 +* - first revision +* 03/28/06 Theo Beisch +* - modified cg_upnp_eventlistenerlist_clear to use +* default destructor in clist +* - added cg_upnp_event_subscription_request_hasnt +* - changed _subscription function signature to use (service) +* instead of (remoteAddress) +* +******************************************************************/ + +#ifndef _CG_UPNP_CEVENT_H_ +#define _CG_UPNP_CEVENT_H_ + +#include + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +/** + * Definition for SID size + */ +#define CG_UPNP_SUBSCRIPTION_SID_SIZE (CG_UPNP_UUID_MAX_LEN + 8) + +/** + * Definition for SID header size + */ +#define CG_UPNP_SUBSCRIPTION_SID_HEADER_SIZE (5 + CG_UPNP_SUBSCRIPTION_SID_SIZE) + +/** + * Definition for subscription xml namespace + */ +#define CG_UPNP_SUBSCRIPTION_XMLNS "urn:schemas-upnp-org:event-1-0" + +/** + * Definition for subscription timeout header prefix + */ +#define CG_UPNP_SUBSCRIPTION_TIMEOUT_HEADER "Second-" + +/** + * Definition for infinite string in subscription + */ +#define CG_UPNP_SUBSCRIPTION_INFINITE_STRING "infinite" + +/** + * Definition for infinite value in subscription + */ +#define CG_UPNP_SUBSCRIPTION_INFINITE_VALUE (-1) + +/** + * Definition for subscription uuid prefix + */ +#define CG_UPNP_SUBSCRIPTION_UUID "uuid:" + +/** + * Definition for subscription callback start tag + */ +#define CG_UPNP_SUBSCRIPTION_CALLBACK_START_WITH "<" + +/** + * Definition for subscription callback end tag + */ +#define CG_UPNP_SUBSCRIPTION_CALLBACK_END_WITH ">" + +/** + * Definition for subscription delay + */ +#define CG_UPNP_SUBSCRIPTION_DELAY 30 + +/** + * Definition for maximum event sequence number + */ +#define CG_UPNP_EVENT_MAX_SEQ 2147483647 + +/** + * Definition for maximum upnp subscription timeout + */ +#define CG_UPNP_SUBSCRIPTION_MAX_TIMEOUT 300 + +/**************************************** +* Data Type +****************************************/ + +/** + * Type definition for subsription request + */ +typedef CgHttpRequest CgUpnpSubscriptionRequest; + +/** + * Type definition for subsrciption response + */ +typedef CgHttpResponse CgUpnpSubscriptionResponse; + +/** + * Type definition for event listener callback + */ +typedef void (*CG_UPNP_EVENT_LISTENER)(CgUpnpProperty *); + +/** + * Type definition for event listener list + */ +typedef struct _CgUpnpEventListenerList { + /** Used by cg_list_* functions to indicate start of list */ + BOOL headFlag; + /** Used by cg_list_* functions to point to the previous item in list */ + struct _CgUpnpEventListenerList *prev; + /** Used by cg_list_* functions to point to the next item in list */ + struct _CgUpnpEventListenerList *next; + + CG_UPNP_EVENT_LISTENER listener; +} CgUpnpEventListenerList; + +/**************************************** +* Function +****************************************/ + +/** + * Create timeout header string + * + * @param time Timeout + * @param buf Buffer used when creating header string + * + * @return Timeout header C string + */ +char *cg_upnp_event_subscription_totimeoutheaderstring(long time, CgString *buf); + +/** + * Get event subscription timeout + * + * @param headerValue Header value + * + * @return Timeout + */ +long cg_upnp_event_subscription_gettimeout(char *headerValue); + +/** + * Create SID for subscription + * + * @param buf Character buffer where SID is created + * @param bufSize Buffer size. + * + * @return Pointer to buffer containing SID + */ +char * cg_upnp_event_subscription_createsid(char *buf, int bufSize); + +/** + * Creates SID header string + * + * @param sid Character array containing the SID + * @param buf A buffer where header string is created + * @param bufSize Size of the used buffer + * + * @return Pointer to buffer containing SID header string + */ +char *cg_upnp_event_subscription_tosidheaderstring(char *sid, char *buf, int bufSize); + +/** + * Get SID + * + * @param headerValue Raw header C string + * + * @return C string containing SID + */ +char *cg_upnp_event_subscription_getsid(char *headerValue); + +/**************************************** +* Function (Request) +****************************************/ + +/** + * Subscription request constructor + * + * @return Pointer to newly created subsription request + */ +#define cg_upnp_event_subscription_request_new() cg_http_request_new(); + +/** + * Subscription request destructor + * + * @param subReq Reference to the subscription request to be deleted + */ +#define cg_upnp_event_subscription_request_delete(subReq) cg_http_request_delete(subReq); + +/** + * Checks if request type is subscription request + * + * @param subReq The request to be checked + * + * @return True if request is subscription request, false otherwise + */ +#define cg_upnp_event_subscription_issubscriberequest(subReq) cg_streq(cg_http_request_getmethod(subReq), CG_HTTP_SUBSCRIBE) + +/** + * Checks if request type is unsubscription request + * + * @param subReq The request to be checked + * + * @return True if request is unsubscription request + */ +#define cg_upnp_event_subscription_isunsubscriberequest(subReq) cg_streq(cg_http_request_getmethod(subReq), CG_HTTP_UNSUBSCRIBE) + +/**** SID ****/ + +/** + * Set sid to subscription request + * + * @param subReq Subscription request + * @param sid SID (Subscription id) + */ +void cg_upnp_event_subscription_request_setsid(CgUpnpSubscriptionRequest *subReq, char *sid); + +/** + * Get sid from subscription request + * + * @param subReq Subscription request + * + * @return Character array containing the requested SID + */ +#define cg_upnp_event_subscription_request_getsid(subReq) cg_upnp_event_subscription_getsid(cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_SID)) + +/** + * Checks if subscription object has SID + * + * @param subReq Subscription request + * + * @return True if subscription has SID, false otherwise + */ +#define cg_upnp_event_subscription_request_hassid(subReq) cg_http_packet_hasheader(((CgHttpPacket*)subReq), CG_HTTP_SID) + +/**** NT ****/ + +/** + * Set NT (Notification target) for subscription request + * + * @param subReq Subscription request + * @param value Notification type + */ +#define cg_upnp_event_subscription_request_setnt(subReq, value) cg_http_packet_setheadervalue(((CgHttpPacket*)subReq), CG_HTTP_NT, value) + +/** + * Get NT from subscription request + * + * @param subReq Subscription request + * + * @return Character array containing the NT header value + */ +#define cg_upnp_event_subscription_request_getnt(subReq) cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_NT) + +/** + * Checks if subscription request has NT + * + * @param subReq Subscription request + * + * @return True if subscription request contains NT, false otherwise + */ +#define cg_upnp_event_subscription_request_hasnt(subReq) cg_http_packet_hasheader(((CgHttpPacket*)subReq), CG_HTTP_NT) + +/**** Callback ****/ + +/** + * Set subscription request callback URL + * + * @param subReq Subscription request + * @param value Callback URL string + */ +#define cg_upnp_event_subscription_request_setcallback(subReq, value) cg_http_packet_setheadervalue(((CgHttpPacket*)subReq), CG_HTTP_CALLBACK, value) + +/** + * Get subscription callback URL + * + * @param subReq Subscription request + * + * @return Character array containing the callback URL + */ +#define cg_upnp_event_subscription_request_getcallback(subReq) cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_CALLBACK) + +/** + * Checks if subscription request has callback URL + * + * @param subReq Subscription request + * + * @return True if subscription request has callback URL, false otherwise + */ +#define cg_upnp_event_subscription_request_hascallback(subReq) cg_http_packet_hasheader(((CgHttpPacket*)subReq), CG_HTTP_CALLBACK) + +/**** Timeout ****/ + +/** + * Set timeout for subscription request + * + * @param subReq Subscription request + * @param timeout Timeout value for subscription request + */ +void cg_upnp_event_subscription_request_settimeout(CgUpnpSubscriptionRequest *subReq, long timeout); + +/** + * Get timeout value from subscription request + * + * @param subReq Subscription request + */ +#define cg_upnp_event_subscription_request_gettimeout(subReq) cg_upnp_event_subscription_gettimeout(cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_TIMEOUT)) + +/**** Subscription Content ****/ + +/** + * (Re)initializes subscription request + * + * @param subReq Subscription request + * @param service Service to be subscribed + * @param callback URL to be called when service state changes + * @param timeout Subscription timeout + */ +void cg_upnp_event_subscription_request_setnewsubscription(CgUpnpSubscriptionRequest *subReq, CgUpnpService *service, char *callback, long timeout); + +/** + * (Re)initializes subscription request to be renewal request + * + * @param subReq Subscription request + * @param service Service to be subscribed + * @param uuid Devices unique identification string + * @param timeout Subscription timeout + */ +void cg_upnp_event_subscription_request_setrenewsubscription(CgUpnpSubscriptionRequest *subReq, CgUpnpService *service, char *uuid, long timeout); + +/** + * (Re)initializes subscription request to be unsubscription request + * + * @param subReq Subscription request + * @param service Service where to be unsubscribed + */ +void cg_upnp_event_subscription_request_setunsubscription(CgUpnpSubscriptionRequest *subReq, CgUpnpService *service); + +/**** Host ****/ + +/** + * Set HTTP host header value + * + * @param subReq Subscription request + * @param value HTTP Host: header content + */ +#define cg_upnp_event_subscription_request_sethost(subReq, value) cg_http_packet_setheadervalue(((CgHttpPacket*)subReq), CG_HTTP_HOST, value) + +/** + * Get host header value from subscription request + * + * @param subReq Subscription request + */ +#define cg_upnp_event_subscription_request_gethost(subReq) cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_HOST) + +/** + * Send subscription request to device + * + * @param subReq Subscription request + */ +#define cg_upnp_event_subscription_request_post(subReq) cg_http_request_post(subReq, cg_net_url_gethost(cg_http_request_getposturl(subReq)), cg_net_url_getport(cg_http_request_getposturl(subReq))) + +/** + * Send response to subscription request + * + * @param subReq Subscription request + * @param subRes Subscription response + */ +#define cg_upnp_event_subscription_request_postresponse(subReq, subRes) cg_http_request_postresponse(subReq, subRes) + +/**************************************** +* Function (Response) +****************************************/ + +/** + * Constructor for subscription response + */ +#define cg_upnp_event_subscription_response_new() cg_http_response_new(); + +/** + * Destructor for subscription response + * + * @param subRes Subscription response + */ +#define cg_upnp_event_subscription_response_delete(subRes) cg_http_response_delete(subRes); + +/** + * Checks if subscription was successfull by checking status code from subscription response + * + * @param subRes Subscription response + */ +#define cg_upnp_event_subscription_response_issuccessful(subRes) cg_http_response_issuccessful(subRes) + +/**** Status Code ****/ + +/** + * Set status code for subscription response + * + * @param subRes Subscription response + * @param code Status code + */ +#define cg_upnp_event_subscription_response_setstatuscode(subRes, code) cg_http_response_setstatuscode(subRes, code) + +/** + * Get status code from subscription response object + * + * @param subRes Subscription response + * @param code Status code + * + * @return Status code + * + * \bug Status code is not needed here! (It is not even passed to the wrapped function) + */ +#define cg_upnp_event_subscription_response_getstatuscode(subRes, code) cg_http_response_getstatuscode(subRes) + +/**** SID ****/ + +/** + * Set SID (Subscription ID) for response + * + * @param subRes Subscription response + * @param sid Subscription ID + */ +void cg_upnp_event_subscription_response_setsid(CgUpnpSubscriptionResponse *subRes, char *sid); + +/** + * Get SID + * + * @param subRes Subscription request + * + * @return C string containing SID + */ +#define cg_upnp_event_subscription_response_getsid(subRes) cg_upnp_event_subscription_getsid(cg_http_packet_getheadervalue(((CgHttpPacket*)subRes), CG_HTTP_SID)) + +/**** Timeout ****/ + +/** + * Set HTTP timeout for subscription response + * + * @param subRes Subscription response + * @param value Timeout + */ +void cg_upnp_event_subscription_response_settimeout(CgUpnpSubscriptionResponse *subRes, long value); + +/** + * Get timeout value from subscription response + * + * @param subRes Subscription response + * + * @return C string containing the timeout + */ +#define cg_upnp_event_subscription_response_gettimeout(subRes) cg_upnp_event_subscription_gettimeout(cg_http_packet_getheadervalue(((CgHttpPacket*)subRes), CG_HTTP_TIMEOUT)) + +/** + * Set response code for subscription response + * + * @param subRes Subscription response + * @param code Response code + */ +void cg_upnp_event_subscription_subscriberesponse_setresponse(CgUpnpSubscriptionResponse *subRes, int code); +/* TODO getter? */ + +/**************************************** +* Function (Eventlistener list) +****************************************/ + +/** +* Create a new event listener list +* +*/ +CgUpnpEventListenerList *cg_upnp_eventlistenerlist_new(); + +/** +* Delete a event listener list. +* +* \param eventListenerList The event listener list to delete +* +*/ +void cg_upnp_eventlistenerlist_delete(CgUpnpEventListenerList *eventListenerList); + +/** +* Clear the contents of a event listener list. +* +* \param eventListenerList The device list to clear +* +*/ +#define cg_upnp_eventlistenerlist_clear(eventListenerList) cg_list_clear((CgList *)eventListenerList, (CG_LIST_DESTRUCTORFUNC)free) + +/** +* Get the size of the device list +* +* \param eventListenerList The device list +* +*/ +#define cg_upnp_eventlistenerlist_size(eventListenerList) cg_list_size((CgList *)eventListenerList) + +/** +* Fetches next list element from event listener list +* +* @param eventListenerList Event listener list +*/ +#define cg_upnp_eventlistenerlist_gets(eventListenerList) (CgUpnpEventListenerList*)cg_list_next((CgList *)eventListenerList) + +/** +* Fetches next list element from event listener list +* +* @param eventListenerList Event listener list +*/ +#define cg_upnp_eventlistenerlist_next(eventListenerList) (CgUpnpEventListenerList*)cg_list_next((CgList *)eventListenerList) + +/** +* Remove a listener from the event listener list +* +* \param eventListenerList The event listener list +* \param listener The listener to remove +* +*/ +void cg_upnp_eventlistenerlist_remove(CgUpnpEventListenerList* eventListenerList, CG_UPNP_EVENT_LISTENER listener); + +/** +* Add a listener to the event listener list +* +* \param eventListenerList The event listener list +* \param listener The listener to add +* +*/ +void cg_upnp_eventlistenerlist_add(CgUpnpEventListenerList* eventListenerList, CG_UPNP_EVENT_LISTENER listener); + +/** + * Call all event listeners in the list with the given data. + * + * @param eventListenerList The list to iterate thru + * @param property The property that has been evented + */ +void cg_upnp_eventlistenerlist_notify(CgUpnpEventListenerList* eventListenerList, CgUpnpProperty *property); + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cfile.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cfile.h new file mode 100644 index 0000000..608eb58 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cfile.h @@ -0,0 +1,189 @@ +/****************************************************************** +* +* CyberIO for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cfile.h +* +* Revision: +* +* 02/1/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_IO_CFILE_H_ +#define _CG_IO_CFILE_H_ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(WIN32) || defined(WINCE) +#define CG_USE_CFILE 1 +#endif + +#if defined(CG_USE_CFILE) + +/**************************************** +* Define +****************************************/ + +#if defined(WIN32) +#define CG_FILE_SEPARATOR_CHAR '\\' +#define CG_FILE_PATH_SEPARATOR_CHAR ';' +#define CG_FILE_SEPARATOR "\\" +#define CG_FILE_PATH_SEPARATOR ";" +#else +#define CG_FILE_SEPARATOR_CHAR '/' +#define CG_FILE_PATH_SEPARATOR_CHAR ':' +#define CG_FILE_SEPARATOR "/" +#define CG_FILE_PATH_SEPARATOR ":" +#endif + +#define CG_FILE_READ_CHUNK_SIZE 1024 + +#define CG_FILE_OPEN_READ 0x01 +#define CG_FILE_OPEN_WRITE 0x02 +#define CG_FILE_OPEN_CREATE 0x04 + +#define CG_FILE_SEEK_SET 0x01 +#define CG_FILE_SEEK_CUR 0x02 +#define CG_FILE_SEEK_END 0x04 + +/**************************************** +* Data Type +****************************************/ + +typedef struct _CgFile { + BOOL headFlag; + struct _CgFile *prev; + struct _CgFile *next; + CgString *name; + CgString *path; + char *content; + FILE *fp; +} CgFile, CgFileList; + +/**************************************** +* Function +****************************************/ + +CgFile *cg_file_new(); +void cg_file_delete(CgFile *file); + +#define cg_file_next(file) (CgFile *)cg_list_next((CgList *)file) + +void cg_file_setname(CgFile *file, char *name); + +#define cg_file_setpath(file, value) cg_file_setname(file, value) +void cg_file_setfilename(CgFile *file, char *value); +#define cg_file_addfilename(file, value) cg_file_setfilename(file, value) + +char *cg_file_getname(CgFile *file); +long cg_file_getlength(CgFile *file); + +long cg_file_getlastmodified(CgFile *file); +long cg_file_getlength(CgFile *file); +BOOL cg_file_exists(CgFile *file); +BOOL cg_file_remove(CgFile *file); + +void cg_file_setcontent(CgFile *file, char *content); +char *cg_file_getcontent(CgFile *file); + +char *cg_file_getfilename(CgFile *file); +char *cg_file_getpath(CgFile *file); + +BOOL cg_file_load(CgFile *file); +BOOL cg_file_save(CgFile *file); + +int cg_file_listfiles(CgFile *file, CgFileList *fileList); + +#define cg_file_isseparatorchar(c) ((CG_FILE_SEPARATOR_CHAR == c) ? TRUE : FALSE) +#define cg_file_ispathseparatorchar(c) ((CG_FILE_PATH_SEPARATOR_CHAR == c) ? TRUE : FALSE) + +/* Raw Functions */ +BOOL cg_file_open(CgFile *file, int flag); +BOOL cg_file_close(CgFile *file); +BOOL cg_file_write(CgFile *file, CgByte *buf, int bufLen); +BOOL cg_file_read(CgFile *file, CgByte *buf, int bufLen); +BOOL cg_file_seek(CgFile *file, CgInt64, int whence); + +/**************************************** +* Function (File List) +****************************************/ + +/** + * Create a new file list + * + * \return File list + */ +CgFileList *cg_filelist_new(); + +/** + * Destroy a file list + * + * \param fileList The file list in question + */ +void cg_filelist_delete(CgFileList *fileList); + +/** + * Clear the contents of a file list + * + * \param fileList File list in question + */ +#define cg_filelist_clear(fileList) cg_list_clear((CgList *)fileList, (CG_LIST_DESTRUCTORFUNC)cg_file_delete) + +/** + * Get the size of a file list + * + * \param fileList The file list in question + */ +#define cg_filelist_size(fileList) cg_list_size((CgList *)fileList) + +/** + * Get the first actual item from a file list to use as an iterator + * + * \param fileList The file list in question + */ +#define cg_filelist_gets(fileList) (CgFile *)cg_list_next((CgList *)fileList) + +/** + * Add a file into a file list + * + * \param fileList The file list in question + * \param file The file to add to the list + */ +#define cg_filelist_add(fileList, file) cg_list_add((CgList *)fileList, (CgList *)file) + +/** + * Remove a file from file list + * + * \param fileList The file list in question + * \param file The file to be removed + */ +#define cg_filelist_remove(file) cg_list_remove((CgList *)file) + +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/chttp.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/chttp.h new file mode 100644 index 0000000..52f023a --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/chttp.h @@ -0,0 +1,615 @@ +/****************************************************************** +* +* CyberNet for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: chttp.h +* +* Revision: +* +* 01/25/05 +* - first revision +* +* 10/31/05 +* - Changed CHttpHeader* pointers to CHttpServer* pointers +* in CHttpServer struct. +* +* 16-Jan-06 Aapo Makela +* - Fixed header comparisons to be case-insensitive +* - Fixed iskeepaliveconnection to check "Connection:close" +* - Added M-POST specific stuff +* 04/03/06 Theo Beisch +* - added (CgHttpHeaderList*) cast (see below) +* - added LONGLONG macro for platform independence +* - some re-sorting of get/set macros (see below) +******************************************************************/ + +#ifndef _CG_HTTP_CHTTP_H_ +#define _CG_HTTP_CHTTP_H_ + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + + +#define CG_HTTP_READLINE_BUFSIZE 512 +#define CG_HTTP_SEVERNAME_MAXLEN 64 +#define CG_HTTP_DATE_MAXLEN 128 + +#define CG_HTTP_REQUESTLINE_DELIM "\r\n " +#define CG_HTTP_STATUSLINE_DELIM "\r\n " +#define CG_HTTP_HEADERLINE_DELIM "\r\n :" + +#define CG_HTTP_CR "\r" +#define CG_HTTP_LF "\n" +#define CG_HTTP_CRLF "\r\n" +#define CG_HTTP_SP " " +#define CG_HTTP_COLON ":" + +#define CG_HTTP_VER10 "HTTP/1.0" +#define CG_HTTP_VER11 "HTTP/1.1" + +#if !defined(CG_HTTP_CURL) +#define CG_HTTP_USERAGENT_DEFAULT "CyberGarage-HTTP/1.0" +#else +#define CG_HTTP_USERAGENT_DEFAULT "libcurl-agent/1.0 (Cyberlink for C)" +#endif + +#define CG_HTTP_DEFAULT_PORT 80 +#define CG_HTTS_DEFAULT_PORT 443 + +#define CG_HTTP_STATUS_CONTINUE 100 +#define CG_HTTP_STATUS_OK 200 +#define CG_HTTP_STATUS_PARTIAL_CONTENT 206 +#define CG_HTTP_STATUS_BAD_REQUEST 400 +#define CG_HTTP_STATUS_NOT_FOUND 404 +#define CG_HTTP_STATUS_METHOD_NOT_ALLOWED 405 +#define CG_HTTP_STATUS_PRECONDITION_FAILED 412 +#define CG_HTTP_STATUS_INVALID_RANGE 416 +#define CG_HTTP_STATUS_INTERNAL_SERVER_ERROR 500 + +#define CG_HTTP_POST "POST" +#define CG_HTTP_GET "GET" +#define CG_HTTP_HEAD "HEAD" + +#define CG_HTTP_HOST "HOST" +#define CG_HTTP_DATE "Date" +#define CG_HTTP_CACHE_CONTROL "Cache-Control" + #define CG_HTTP_NO_CACHE "no-cache" + #define CG_HTTP_MAX_AGE "max-age" +#define CG_HTTP_CONNECTION "Connection" + #define CG_HTTP_CLOSE "close" + #define CG_HTTP_KEEP_ALIVE "Keep-Alive" +#define CG_HTTP_CONTENT_TYPE "Content-Type" +#define CG_HTTP_CONTENT_LENGTH "Content-Length" +#define CG_HTTP_CONTENT_RANGE "Content-Range" + #define CG_HTTP_CONTENT_RANGE_BYTES "bytes" +#define CG_HTTP_LOCATION "Location" +#define CG_HTTP_SERVER "Server" +#define CG_HTTP_RANGE "Range" +#define CG_HTTP_TRANSFER_ENCODING "Transfer-Encoding" + #define CG_HTTP_CHUNKED "Chunked" +#define CG_HTTP_USERAGENT "User-Agent" + +/**** SOAP Extention ****/ +#define CG_HTTP_SOAP_ACTION "SOAPACTION" +#define CG_HTTP_SOAP_ACTION_WITH_NS "01-SOAPACTION" +#define CG_HTTP_SOAP_MAN_VALUE "\"http://schemas.xmlsoap.org/soap/envelope/\"; ns=01" + +/**** UPnP Extention ****/ +#define CG_HTTP_MPOST "M-POST" +#define CG_HTTP_MSEARCH "M-SEARCH" +#define CG_HTTP_NOTIFY "NOTIFY" +#define CG_HTTP_SUBSCRIBE "SUBSCRIBE" +#define CG_HTTP_UNSUBSCRIBE "UNSUBSCRIBE" + +#define CG_HTTP_ST "ST" +#define CG_HTTP_MX "MX" +#define CG_HTTP_MAN "MAN" +#define CG_HTTP_NT "NT" +#define CG_HTTP_NTS "NTS" +#define CG_HTTP_USN "USN" +#define CG_HTTP_EXT "EXT" +#define CG_HTTP_SID "SID" +#define CG_HTTP_SEQ "SEQ" +#define CG_HTTP_CALLBACK "CALLBACK" +#define CG_HTTP_TIMEOUT "TIMEOUT" + +/**** CURL connection timeout: 2 seconds ****/ +#define CG_HTTP_CURL_CONNECTTIMEOUT 2 + +/**** CURL total timeout: 30 seconds (UPnP DA: whole transfer: 30sec ****/ +#define CG_HTTP_CONN_TIMEOUT 30 + +/* HTTP server - client thread blocking timeout */ +#define CG_HTTP_SERVER_READ_TIMEOUT 120 + +/**** HTTP Status code reason phrases ****/ +#define CG_HTTP_REASON_100 "Continue" +#define CG_HTTP_REASON_101 "Switching Protocols" +#define CG_HTTP_REASON_200 "OK" +#define CG_HTTP_REASON_201 "Created" +#define CG_HTTP_REASON_202 "Accepted" +#define CG_HTTP_REASON_203 "Non-Authoritative Information" +#define CG_HTTP_REASON_204 "No Content" +#define CG_HTTP_REASON_205 "Reset Content" +#define CG_HTTP_REASON_206 "Partial Content" +#define CG_HTTP_REASON_300 "Multiple Choices" +#define CG_HTTP_REASON_301 "Moved Permanently" +#define CG_HTTP_REASON_302 "Found" +#define CG_HTTP_REASON_303 "See Other" +#define CG_HTTP_REASON_304 "Not Modified" +#define CG_HTTP_REASON_305 "Use Proxy" +#define CG_HTTP_REASON_307 "Temporary Redirect" +#define CG_HTTP_REASON_400 "Bad Request" +#define CG_HTTP_REASON_401 "Unauthorized" +#define CG_HTTP_REASON_402 "Payment Required" +#define CG_HTTP_REASON_403 "Forbidden" +#define CG_HTTP_REASON_404 "Not Found" +#define CG_HTTP_REASON_405 "Method Not Allowed" +#define CG_HTTP_REASON_406 "Not Acceptable" +#define CG_HTTP_REASON_407 "Proxy Authentication Required" +#define CG_HTTP_REASON_408 "Request Time-out" +#define CG_HTTP_REASON_409 "Conflict" +#define CG_HTTP_REASON_410 "Gone" +#define CG_HTTP_REASON_411 "Length Required" +#define CG_HTTP_REASON_412 "Precondition Failed" +#define CG_HTTP_REASON_413 "Request Entity Too Large" +#define CG_HTTP_REASON_414 "Request-URI Too Large" +#define CG_HTTP_REASON_415 "Unsupported Media Type" +#define CG_HTTP_REASON_416 "Requested range not satisfiable" +#define CG_HTTP_REASON_417 "Expectation Failed" +#define CG_HTTP_REASON_500 "Internal Server Error" +#define CG_HTTP_REASON_501 "Not Implemented" +#define CG_HTTP_REASON_502 "Bad Gateway" +#define CG_HTTP_REASON_503 "Service Unavailable" +#define CG_HTTP_REASON_504 "Gateway Time-out" +#define CG_HTTP_REASON_505 "HTTP Version not supported" + +/**************************************** +* Data Type +****************************************/ + +typedef struct _CgHttpHeader { + BOOL headFlag; + struct _CgHttpHeader *prev; + struct _CgHttpHeader *next; + CgString *name; + CgString *value; +} CgHttpHeader, CgHttpHeaderList; + +typedef struct _CgHttpPacket { + CgHttpHeaderList *headerList; + CgString *content; +} CgHttpPacket; + +typedef struct _CgHttpResponse { + CgHttpHeaderList *headerList; + CgString *content; + CgString *version; + int statusCode; + CgString *reasonPhrase; + void *userData; + int timeout; +} CgHttpResponse; + +typedef struct _CgHttpRequest { + CgHttpHeaderList *headerList; + CgString *content; + CgString *method; + CgString *uri; + CgString *version; + CgString *userAgent; + CgHttpResponse *httpRes; + CgSocket *sock; + CgNetURL *postURL; + void *userData; + int timeout; +} CgHttpRequest; + +typedef void (*CG_HTTP_LISTENER)(CgHttpRequest *); + +typedef struct _CgHttpServer { + BOOL headFlag; + struct _CgHttpServer *prev; + struct _CgHttpServer *next; + CgSocket *sock; + CgThread *acceptThread; + CgThreadList *clientThreads; + CG_HTTP_LISTENER listener; + void *userData; + int timeout; + CgMutex *mutex; +} CgHttpServer, CgHttpServerList; + +/**************************************** +* Function +****************************************/ + +/** + * Convert an HTTP status code to a reason phrase (ex. 200 -> "200 OK") + * + * @param code The HTTP status code to convert + * @return The reason phrase (do not modify the pointer's contents) + */ +const char *cg_http_statuscode2reasonphrase(const int code); + +/**************************************** +* Function (Header) +****************************************/ + +CgHttpHeader *cg_http_header_new(); +void cg_http_header_delete(CgHttpHeader *header); + +#define cg_http_header_next(header) (CgHttpHeader *)cg_list_next((CgList *)header) + +void cg_http_header_setname(CgHttpHeader *header, char *name); +char *cg_http_header_getname(CgHttpHeader *header); +void cg_http_header_setvalue(CgHttpHeader *header, char *value); +char *cg_http_header_getvalue(CgHttpHeader *header); + +/**************************************** +* Function (Header List) +****************************************/ + +CgHttpHeaderList *cg_http_headerlist_new(); +void cg_http_headerlist_delete(CgHttpHeaderList *headerList); + +#define cg_http_headerlist_clear(headerList) cg_list_clear((CgList *)headerList, (CG_LIST_DESTRUCTORFUNC)cg_http_header_delete) +#define cg_http_headerlist_size(headerList) cg_list_size((CgList *)headerList) +#define cg_http_headerlist_gets(headerList) (CgHttpHeader *)cg_list_next((CgList *)headerList) +#define cg_http_headerlist_add(headerList, header) cg_list_add((CgList *)headerList, (CgList *)header) + +CgHttpHeader *cg_http_headerlist_get(CgHttpHeaderList *headerList, char *name); +void cg_http_headerlist_set(CgHttpHeaderList *headerList, char *name, char *value); +char *cg_http_headerlist_getvalue(CgHttpHeaderList *headerList, char *name); + +/**************************************** +* Function (Packet) +****************************************/ + +CgHttpPacket *cg_http_packet_new(); +void cg_http_packet_delete(CgHttpPacket *httpPkt); +void cg_http_packet_init(CgHttpPacket *httpPkt); +void cg_http_packet_clean(CgHttpPacket *httpPkt); +void cg_http_packet_clear(CgHttpPacket *httpPkt); + +#define cg_http_packet_deleteallheaders(httpPkt) cg_http_headerlist_gets(httpPkt->headerList) +#define cg_http_packet_getnheaders(httpPkt) cg_http_headerlist_size(httpPkt->headerList) +#define cg_http_packet_getheaders(httpPkt) cg_http_headerlist_gets(httpPkt->headerList) +//Theo Beisch - added (CgHttpHeaderList*) cast - as _get is function call +#define cg_http_packet_getheader(httpPkt, name) cg_http_headerlist_get((CgHttpHeaderList*)httpPkt->headerList, name) +#define cg_http_packet_hasheader(httpPkt, name) ((cg_http_headerlist_get((CgHttpHeaderList*)httpPkt->headerList, name) != NULL) ? TRUE : FALSE) + +#define cg_http_packet_hasheadervalue(httpPkt, header, value) (cg_streq(cg_http_packet_getheadervalue((CgHttpPacket*)httpPkt, header),value)) + +#define cg_http_packet_addheader(httpPkt, header) cg_http_headerlist_add(httpPkt->headerList, header) + +void cg_http_packet_setheadervalue(CgHttpPacket *httpPkt, char* name, char *value); +void cg_http_packet_setheaderinteger(CgHttpPacket *httpPkt, char* name, int value); +void cg_http_packet_setheaderlong(CgHttpPacket *httpPkt, char* name, long value); +char *cg_http_packet_getheadervalue(CgHttpPacket *httpPkt, char* name); +int cg_http_packet_getheaderinteger(CgHttpPacket *httpPkt, char* name); +long cg_http_packet_getheaderlong(CgHttpPacket *httpPkt, char* name); +int cg_http_packet_getheadersize(CgHttpPacket *httpPkt); + +#if defined(CG_USE_INT64) +void cg_http_packet_setheaderlonglong(CgHttpPacket *httpPkt, char* name, CgInt64 value); +CgInt64 cg_http_packet_getheaderlonglong(CgHttpPacket *httpPkt, char* name); +#endif + +#define cg_http_packet_setcontent(httpPkt, value) cg_string_setvalue(httpPkt->content, value) +#define cg_http_packet_setncontent(httpPkt, value, len) cg_string_setnvalue(httpPkt->content, value, len) +#define cg_http_packet_appendncontent(httpPkt, value, len) cg_string_naddvalue(httpPkt->content, value, len) +#define cg_http_packet_setcontentpointer(httpPkt, value, len) cg_string_setpointervalue(httpPkt->content, value, len) +#define cg_http_packet_getcontent(httpPkt) cg_string_getvalue(httpPkt->content) + +void cg_http_packet_post(CgHttpPacket *httpPkt, CgSocket *sock); +void cg_http_packet_read_headers(CgHttpPacket *httpPkt, CgSocket *sock, char *lineBuf, int lineBufSize); +BOOL cg_http_packet_read_body( + CgHttpPacket *httpPkt, CgSocket *sock, char *lineBuf, int lineBufSize); +BOOL cg_http_packet_read(CgHttpPacket *httpPkt, CgSocket *sock, BOOL onlyHeader, char *lineBuf, int lineBufSize); + +/**** Content-Length ****/ +#if defined(CG_USE_INT64) +#define cg_http_packet_setcontentlength(httpPkt,value) cg_http_packet_setheaderlonglong(httpPkt,CG_HTTP_CONTENT_LENGTH,value) +#define cg_http_packet_getcontentlength(httpPkt) cg_http_packet_getheaderlonglong(httpPkt,CG_HTTP_CONTENT_LENGTH) +#else +#define cg_http_packet_setcontentlength(httpPkt,value) cg_http_packet_setheaderlong(httpPkt,CG_HTTP_CONTENT_LENGTH,value) +#define cg_http_packet_getcontentlength(httpPkt) cg_http_packet_getheaderlong(httpPkt,CG_HTTP_CONTENT_LENGTH) +#endif + +/**** Connection ****/ +#define cg_http_packet_setconnection(httpPkt, value) cg_http_packet_setheadervalue(httpPkt,CG_HTTP_CONNECTION, value) +#define cg_http_packet_getconnection(httpPkt) cg_http_packet_getheadervalue(httpPkt,CG_HTTP_CONNECTION) +#define cg_http_packet_iskeepaliveconnection(httpPkt) (cg_strcaseeq(cg_http_packet_getconnection(httpPkt), CG_HTTP_CLOSE) == FALSE) + +/**** Transfer-Encoding ****/ +#define cg_http_packet_settransferencoding(httpPkt, value) cg_http_packet_setheadervalue(httpPkt,CG_HTTP_TRANSFER_ENCODING, value) +#define cg_http_packet_gettransferencoding(httpPkt) cg_http_packet_getheadervalue(httpPkt,CG_HTTP_TRANSFER_ENCODING) +#define cg_http_packet_ischunked(httpPkt) cg_strcaseeq(cg_http_packet_gettransferencoding(httpPkt), CG_HTTP_CHUNKED) + +/**** Host ****/ +void cg_http_packet_sethost(CgHttpPacket *httpPkt, char *addr, int port); +#define cg_http_packet_gethost(httpPkt) cg_http_packet_getheaderlong(httpPkt,CG_HTTP_HOST) + +/**** Copy ****/ +void cg_http_packet_copy(CgHttpPacket *destHttpPkt, CgHttpPacket *srcHttpPkt); + +/**** Print ****/ +void cg_http_packet_print(CgHttpPacket *httpPkt); + +/**************************************** +* Function (Request) +****************************************/ + +CgHttpRequest *cg_http_request_new(); +void cg_http_request_delete(CgHttpRequest *httpReq); +void cg_http_request_clear(CgHttpRequest *httpReq); +void cg_http_request_setmethod(CgHttpRequest *httpReq, char *method); +char *cg_http_request_getmethod(CgHttpRequest *httpReq); +void cg_http_request_setversion(CgHttpRequest *httpReq, char *version); +char *cg_http_request_getversion(CgHttpRequest *httpReqest); +void cg_http_request_setuseragent(CgHttpRequest *httpReq, char *version); +char *cg_http_request_getuseragent(CgHttpRequest *httpReqest); +void cg_http_request_addtouseragent(CgHttpRequest *httpReq, char *value); +void cg_http_request_seturi(CgHttpRequest *httpReq, char *uri); +char *cg_http_request_geturi(CgHttpRequest *httpReq); +void cg_http_request_setsocket(CgHttpRequest *httpReq, CgSocket *sock); +CgSocket *cg_http_request_getsocket(CgHttpRequest *httpReq); +#define cg_http_request_closesocket(httpReq) cg_socket_close(cg_http_request_getsocket(httpReq)) +CgHttpResponse *cg_http_request_post(CgHttpRequest *httpReq, char *ipaddr, int port); +#if defined(CG_USE_OPENSSL) +CgHttpResponse *cg_https_request_post(CgHttpRequest *httpReq, char *ipaddr, int port); +#endif +BOOL cg_http_request_read(CgHttpRequest *httpReq, CgSocket *sock); +BOOL cg_http_request_postresponse(CgHttpRequest *httpReq, CgHttpResponse *httpRes); +BOOL cg_http_request_poststatuscode(CgHttpRequest *httpReq, int httpStatCode); +BOOL cg_http_request_postdata(CgHttpRequest *httpReq, void *data, int dataLen); +BOOL cg_http_request_postchunkedsize(CgHttpRequest *httpReq, int dataLen); +BOOL cg_http_request_postchunkeddata(CgHttpRequest *httpReq, void *data, int dataLen); +BOOL cg_http_request_postlastchunk(CgHttpRequest *httpReq); +#define cg_http_request_poststring(httpReq, data) cg_http_request_postdata(httpReq, data, cg_strlen(data)) +#define cg_http_request_postchunkedstring(httpReq, data) cg_http_request_postchunkeddata(httpReq, data, cg_strlen(data)) + +#define cg_http_request_postokrequest(httpReq) cg_http_request_poststatuscode(httpReq, CG_HTTP_STATUS_OK) +#define cg_http_request_postbadrequest(httpReq) cg_http_request_poststatuscode(httpReq, CG_HTTP_STATUS_BAD_REQUEST) + +#define cg_http_request_ismethod(httpReq,value) cg_streq(cg_http_request_getmethod(httpReq), value) +#define cg_http_request_isgetrequest(httpReq) cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_GET) +#define cg_http_request_ispostrequest(httpReq) (cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_POST) || cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_MPOST)) +#define cg_http_request_isheadrequest(httpReq) cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_HEAD) +#define cg_http_request_issubscriberequest(httpReq) cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_SUBSCRIBE) +#define cg_http_request_isunsubscriberequest(httpReq) cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_UNSUBSCRIBE) +#define cg_http_request_isnotifyrequest(httpReq) cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_NOTIFY) +#define cg_http_request_issoapaction(httpReq) (cg_http_packet_hasheader(((CgHttpPacket*)httpReq), CG_HTTP_SOAP_ACTION) || cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_MPOST)) + +#define cg_http_request_setcontent(httpReq,value) cg_http_packet_setcontent(((CgHttpPacket*)httpReq),value) +#define cg_http_request_setncontent(httpReq,value,len) cg_http_packet_setcontent(((CgHttpPacket*)httpReq),value,len) +#define cg_http_request_appendncontent(httpPkt, value, len) cg_http_packet_appendncontent(httpPkt, value, len) +#define cg_http_request_setcontentpointer(httpReq,value, len) cg_http_packet_setcontentpointer(((CgHttpPacket*)httpReq),value, len) +#define cg_http_request_getcontent(httpReq) cg_http_packet_getcontent(((CgHttpPacket*)httpReq)) +#define cg_http_request_getheaders(httpReq) cg_http_packet_getheaders((CgHttpPacket*)httpReq) +#define cg_http_request_getheader(httpReq,name) cg_http_packet_getheader((CgHttpPacket*)httpReq,name) +#define cg_http_request_setheadervalue(httpReq,name,value) cg_http_packet_setheadervalue((CgHttpPacket*)httpReq,name,value) +#define cg_http_request_setheaderinteger(httpReq,name,value) cg_http_packet_setheaderinteger((CgHttpPacket*)httpReq,name,value) +#define cg_http_request_setheaderlong(httpReq,name,value) cg_http_packet_setheaderlong((CgHttpPacket*)httpReq,name,value) +#define cg_http_request_getheadervalue(httpReq,name) cg_http_packet_getheadervalue((CgHttpPacket*)httpReq,name) +#define cg_http_request_getheaderinteger(httpReq,name) cg_http_packet_getheaderinteger((CgHttpPacket*)httpReq,name) +#define cg_http_request_getheaderlong(httpReq,name) cg_http_packet_getheaderlong((CgHttpPacket*)httpReq,name) + +#define cg_http_request_setuserdata(httpReq, value) (httpReq->userData = value) +#define cg_http_request_getuserdata(httpReq) (httpReq->userData) + +/**** Local Address/Port ****/ +#define cg_http_request_getlocaladdress(httpReq) cg_socket_getaddress(httpReq->sock) +#define cg_http_request_getlocalport(httpReq) cg_socket_getport(httpReq->sock) + +/**** Content-Length ****/ +#define cg_http_request_setcontentlength(httpReq,value) cg_http_packet_setcontentlength((CgHttpPacket*)httpReq, value) +#define cg_http_request_getcontentlength(httpReq) cg_http_packet_getcontentlength((CgHttpPacket*)httpReq) + +/**** Content-Type ****/ +#define cg_http_request_setcontenttype(httpReq,value) cg_http_packet_setheadervalue((CgHttpPacket*)httpReq,CG_HTTP_CONTENT_TYPE,value) +#define cg_http_request_getcontenttype(httpReq) cg_http_packet_getheadervalue((CgHttpPacket*)httpReq,CG_HTTP_CONTENT_TYPE) + +/**** Connection ****/ +#define cg_http_request_setconnection(httpReq, value) cg_http_packet_setheadervalue((CgHttpPacket*)httpReq,CG_HTTP_CONNECTION, value) +#define cg_http_request_getconnection(httpReq) cg_http_packet_getheadervalue((CgHttpPacket*)httpReq,CG_HTTP_CONNECTION) +#define cg_http_request_iskeepaliveconnection(httpReq) cg_http_packet_iskeepaliveconnection((CgHttpPacket*)httpReq) + +/**** Transfer-Encoding ****/ +#define cg_http_request_settransferencoding(httpReq, value) cg_http_packet_settransferencoding((CgHttpPacket*)httpReq, value) +#define cg_http_request_gettransferencoding(httpReq) cg_http_packet_gettransferencoding((CgHttpPacket*)httpReq) +#define cg_http_request_ischunked(httpReq) cg_http_packet_ischunked((CgHttpPacket*)httpReq) + +/**** Host ****/ +#define cg_http_request_sethost(httpReq,addr,port) cg_http_packet_sethost((CgHttpPacket*)httpReq,addr,port) +#define cg_http_request_gethost(httpReq) cg_http_packet_getheadervalue((CgHttpPacket*)httpReq,CG_HTTP_HOST) + +/**** Date ****/ +#define cg_http_request_setdate(httpReq,value) cg_http_packet_setheadervalue((CgHttpPacket*)httpReq,CG_HTTP_DATE,value) +#define cg_http_request_getdate(httpReq) cg_http_packet_getheadervalue((CgHttpPacket*)httpReq,CG_HTTP_DATE) + +/**** Copy ****/ +void cg_http_request_copy(CgHttpRequest *destHttpReq, CgHttpRequest *srcHttpReq); + +/*** PostURL ****/ +#define cg_http_request_getposturl(httpReq) (httpReq->postURL) + +/**** Print ****/ +void cg_http_request_print(CgHttpRequest *httpReq); + +/**** Timeout ****/ +#define cg_http_request_settimeout(httpReq,value) (httpReq->timeout = value) +#define cg_http_request_gettimeout(httpReq) (httpReq->timeout) + +/**************************************** +* Function (Response) +****************************************/ + +CgHttpResponse *cg_http_response_new(); +void cg_http_response_delete(CgHttpResponse *httpRes); +void cg_http_response_clear(CgHttpResponse *httpRes); +void cg_http_response_setversion(CgHttpResponse *httpRes, char *version); +char *cg_http_response_getversion(CgHttpResponse *httpRes); +void cg_http_response_setreasonphrase(CgHttpResponse *httpRes, char *value); +char *cg_http_response_getreasonphrase(CgHttpResponse *httpRes); +void cg_http_response_setstatuscode(CgHttpResponse *httpRes, int code); +int cg_http_response_getstatuscode(CgHttpResponse *httpRes); +BOOL cg_http_response_read(CgHttpResponse *httpRes, CgSocket *sock, BOOL onlyHeader); + +/*#define cg_http_response_issuccessful(httpRes) ((cg_http_response_getstatuscode(httpRes) == CG_HTTP_STATUS_OK) ? TRUE : FALSE)*/ +#define cg_http_response_issuccessful(httpRes) (cg_http_response_getstatuscode(httpRes) >= 200 && cg_http_response_getstatuscode(httpRes) < 300 ) + +#define cg_http_response_setcontent(httpRes,value) cg_http_packet_setcontent(((CgHttpPacket*)httpRes),value) +#define cg_http_response_setncontent(httpRes,value, len) cg_http_packet_setncontent(((CgHttpPacket*)httpRes),value, len) +#define cg_http_response_appendncontent(httpRes, value, len) cg_http_packet_appendncontent(((CgHttpPacket*) httpRes), value, len) + +#define cg_http_response_setcontentpointer(httpRes,value,len) cg_http_packet_setcontentpointer(((CgHttpPacket*)httpRes),value,len) +#define cg_http_response_getcontent(httpRes) cg_http_packet_getcontent(((CgHttpPacket*)httpRes)) +#define cg_http_response_getheaders(p) cg_http_packet_getheaders((CgHttpPacket*)p) +#define cg_http_response_getheader(p,n) cg_http_packet_getheader((CgHttpPacket*)p,n) +#define cg_http_response_setheadervalue(httpRes,n,value) cg_http_packet_setheadervalue((CgHttpPacket*)httpRes,n,value) +#define cg_http_response_setheaderinteger(httpRes,n,value) cg_http_packet_setheaderinteger((CgHttpPacket*)httpRes,n,value) +#define cg_http_response_setheaderlong(httpRes,n,value) cg_http_packet_setheaderlong((CgHttpPacket*)httpRes,n,value) +#define cg_http_response_getheadervalue(httpRes,n) cg_http_packet_getheadervalue((CgHttpPacket*)httpRes,n) +#define cg_http_response_getheaderinteger(httpRes,n) cg_http_packet_getheaderinteger((CgHttpPacket*)httpRes,n) +#define cg_http_response_getheaderlong(httpRes,n) cg_http_packet_getheaderlong((CgHttpPacket*)httpRes,n) + +#define cg_http_response_setuserdata(httpRes, value) (httpRes->userData = value) +#define cg_http_response_getuserdata(httpRes) (httpRes->userData) + +/**** Content-Length ****/ +#define cg_http_response_setcontentlength(httpRes,value) cg_http_packet_setcontentlength((CgHttpPacket*)httpRes, value) +#define cg_http_response_getcontentlength(httpRes) cg_http_packet_getcontentlength((CgHttpPacket*)httpRes) + +/**** Content-Type ****/ +#define cg_http_response_setcontenttype(httpRes,value) cg_http_packet_setheadervalue((CgHttpPacket*)httpRes,CG_HTTP_CONTENT_TYPE,value) +#define cg_http_response_getcontenttype(httpRes) cg_http_packet_getheadervalue((CgHttpPacket*)httpRes,CG_HTTP_CONTENT_TYPE) + +/**** connection ****/ +#define cg_http_response_setconnection(httpRes, value) cg_http_packet_setheadervalue((CgHttpPacket*)httpRes,CG_HTTP_CONNECTION, value) +#define cg_http_response_getconnection(httpRes) cg_http_packet_getheadervalue((CgHttpPacket*)httpRes, CG_HTTP_CONNECTION) +#define cg_http_response_iskeepaliveconnection(httpRes) cg_http_packet_iskeepaliveconnection((CgHttpPacket*)httpRes) + +/**** Host ****/ +#define cg_http_response_sethost(httpRes,addr,port) cg_http_packet_sethost((CgHttpPacket*)httpRes,addr,port) +#define cg_http_response_gethost(httpRes) cg_http_packet_getheadervalue((CgHttpPacket*)httpRes,CG_HTTP_HOST) + +/**** Date ****/ +#define cg_http_response_setdate(httpRes,value) cg_http_packet_setheadervalue((CgHttpPacket*)httpRes,CG_HTTP_DATE,value) +#define cg_http_response_getdate(httpRes) cg_http_packet_getheadervalue((CgHttpPacket*)httpRes,CG_HTTP_DATE) + +/**** Transfer-Encoding ****/ +#define cg_http_response_settransferencoding(httpReq, value) cg_http_packet_settransferencoding((CgHttpPacket*)httpReq, value) +#define cg_http_response_gettransferencoding(httpReq) cg_http_packet_gettransferencoding((CgHttpPacket*)httpReq) + +/**** Copy ****/ +void cg_http_response_copy(CgHttpResponse *destHttpRes, CgHttpResponse *srcHttpRes); + +/**** Print ****/ +void cg_http_response_print(CgHttpResponse *httpRes); + +/**** Timeout ****/ +#define cg_http_response_settimeout(httpRes,value) (httpRes->timeout = value) +#define cg_http_response_gettimeout(httpRes) (httpRes->timeout) + +/**************************************** +* Function (Server) +****************************************/ + +CgHttpServer *cg_http_server_new(); +void cg_http_server_delete(CgHttpServer *httpServer); +BOOL cg_http_server_open(CgHttpServer *httpServer, int bindPort, char *bindAddr); +BOOL cg_http_server_close(CgHttpServer *httpServer); +BOOL cg_http_server_accept(CgHttpServer *httpServer); +BOOL cg_http_server_start(CgHttpServer *httpServer); +BOOL cg_http_server_stop(CgHttpServer *httpServer); +void cg_http_server_setlistener(CgHttpServer *httpServer, CG_HTTP_LISTENER listener); + +#define cg_http_server_next(httpServer) (CgHttpServer *)cg_list_next((CgList *)httpServer) + +#define cg_http_server_getsocket(httpServer) (httpServer->sock) +#define cg_http_server_isopened(httpServer) ((httpServer->sock != NULL) ? TRUE : FALSE) + +#define cg_http_server_setuserdata(httpServer, value) (httpServer->userData = value) +#define cg_http_server_getuserdata(httpServer) (httpServer->userData) + +char *cg_http_getservername(char *buf, int bufSize); + +/**** Timeout ****/ +#define cg_http_server_settimeout(httpServer,value) (httpServer->timeout = value) +#define cg_http_server_gettimeout(httpServer) (httpServer->timeout) + +/**** Mutex ****/ +#define cg_http_server_lock(httpServer) cg_mutex_lock(httpServer->mutex) +#define cg_http_server_unlock(httpServer) cg_mutex_unlock(httpServer->mutex) + +/**************************************** +* Function (Server List) +****************************************/ + +CgHttpServerList *cg_http_serverlist_new(); +void cg_http_serverlist_delete(CgHttpServerList *httpServerList); + +#define cg_http_serverlist_clear(httpServerList) cg_list_clear((CgList *)httpServerList, (CG_LIST_DESTRUCTORFUNC)cg_http_server_delete) +#define cg_http_serverlist_size(httpServerList) cg_list_size((CgList *)httpServerList) +#define cg_http_serverlist_gets(httpServerList) (CgHttpServer *)cg_list_next((CgList *)httpServerList) +#define cg_http_serverlist_add(httpServerList, httpServer) cg_list_add((CgList *)httpServerList, (CgList *)httpServer) + +BOOL cg_http_serverlist_open(CgHttpServerList *httpServerList, int port); +BOOL cg_http_serverlist_close(CgHttpServerList *httpServerList); +BOOL cg_http_serverlist_start(CgHttpServerList *httpServerList); +BOOL cg_http_serverlist_stop(CgHttpServerList *httpServerList); +void cg_http_serverlist_setlistener(CgHttpServerList *httpServerList, CG_HTTP_LISTENER listener); +void cg_http_serverlist_setuserdata(CgHttpServerList *httpServerList, void *value); + +/**************************************** +* Function (Date) +****************************************/ + +char *cg_http_getdate(CgSysTime sysTime, char *buf, int bufSize); + +/**************************************** +* Persistent connection cache +****************************************/ + +/** Initialize persistent connection cache. Can be called many times */ +BOOL cg_http_persistentconnection_init(void); +/** Clear persistent connection cache and free all memory */ +void cg_http_persistentconnection_clear(void); +/** Lock persistent connection cache. Required for getting, putting and using + persistent connection from cache */ +void cg_http_persistentconnection_lock(void); +/** Unlock persistent connection cache. */ +void cg_http_persistentconnection_unlock(void); +/** Get persistent connection from cache */ +void *cg_http_persistentconnection_get(char *host, int port); +/** Put connection to persistent connection cache */ +BOOL cg_http_persistentconnection_put(char *host, int port, void *data); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cicon.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cicon.h new file mode 100644 index 0000000..3c040d6 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cicon.h @@ -0,0 +1,247 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cicon.h +* +* Revision: +* +* 02/14/05 +* - first revision +* +* 10/31/05 +* - Added comments to all functions and structs +******************************************************************/ + +#ifndef _CG_UPNP_CICON_H_ +#define _CG_UPNP_CICON_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#define CG_UPNP_ICON_ELEM_NAME "icon" +#define CG_UPNP_ICONLIST_ELEM_NAME "iconList" + +#define CG_UPNP_ICON_MIME_TYPE "mimetype" +#define CG_UPNP_ICON_WIDTH "width" +#define CG_UPNP_ICON_HEIGHT "height" +#define CG_UPNP_ICON_DEPTH "depth" +#define CG_UPNP_ICON_URL "url" + +/**************************************** +* Data Type +****************************************/ +/** + * The generic icon struct + */ +typedef struct _CgUpnpIcon { + BOOL headFlag; + struct _CgUpnpIcon *prev; + struct _CgUpnpIcon *next; + CgXmlNode *iconNode; +} CgUpnpIcon, CgUpnpIconList; + +/**************************************** +* Function (Icon) +****************************************/ + +/** + * Create a new icon struct + */ +CgUpnpIcon *cg_upnp_icon_new(); + +/** + * Delete an icon struct + * + * \param dev Icon to delete + */ +void cg_upnp_icon_delete(CgUpnpIcon *dev); + +/** + * Get the next icon in list. Use as an iterator. + * + * \param icon Node in a list of icons + */ +#define cg_upnp_icon_next(icon) (CgUpnpIcon *)cg_list_next((CgList *)icon) + +/** + * Check whether the given node is a member of an icon list + * + * \param node List node + */ +#define cg_upnp_icon_isiconnode(node) cg_xml_node_isname(node, CG_UPNP_ICON_ELEM_NAME) + +/** + * Set the XML icon node to an icon struct + * + * \param icon The icon struct + * \param node XML node + */ +#define cg_upnp_icon_seticonnode(icon,node) (icon->iconNode = node) + +/** + * Get the XML icon node from an icon struct + * + * \param icon The icon struct + */ +#define cg_upnp_icon_geticonnode(icon) (icon->iconNode) + +/***************************************************************************** + * mimeType + *****************************************************************************/ + +/** + * Set the icon's MIME type + * + * \param icon Icon in question + * \param value MIME type + */ +#define cg_upnp_icon_setmimetype(icon, value) cg_xml_node_setchildnode(cg_upnp_icon_geticonnode(icon), CG_UPNP_ICON_MIME_TYPE, value) + +/** + * Get the icon's MIME type + * + */ +#define cg_upnp_icon_getmimetype(icon) cg_xml_node_getchildnodevalue(cg_upnp_icon_geticonnode(icon), CG_UPNP_ICON_MIME_TYPE) + +/***************************************************************************** + * width + *****************************************************************************/ + +/** + * Set icon width + * + * \param icon Icon in question + * \param value Icon width + */ +#define cg_upnp_icon_setwidth(icon, value) cg_xml_node_setchildnode(cg_upnp_icon_geticonnode(icon), CG_UPNP_ICON_WIDTH, value) + +/** + * Get icon width + * + */ +#define cg_upnp_icon_getwidth(icon) cg_xml_node_getchildnodeintvalue(cg_upnp_icon_geticonnode(icon), CG_UPNP_ICON_WIDTH) + +/***************************************************************************** + * height + *****************************************************************************/ + +/** + * Set icon height + * + * \param icon Icon in question + * \param value Icon height + */ +#define cg_upnp_icon_setheight(icon, value) cg_xml_node_setchildnode(cg_upnp_icon_geticonnode(icon), CG_UPNP_ICON_HEIGHT, value) + +/** + * Get icon height + * + */ +#define cg_upnp_icon_getheight(icon) cg_xml_node_getchildnodeintvalue(cg_upnp_icon_geticonnode(icon), CG_UPNP_ICON_HEIGHT) + +/***************************************************************************** + * Colour Depth + *****************************************************************************/ + +/** + * Set icon's colour depth + * + * \param icon Icon in question + * \param value Colour depth + */ +#define cg_upnp_icon_setdepth(icon, value) cg_xml_node_setchildnode(cg_upnp_icon_geticonnode(icon), CG_UPNP_ICON_DEPTH, value) + +/** + * Get icon's colour depth + * + */ +#define cg_upnp_icon_getdepth(icon) cg_xml_node_getchildnodeintvalue(cg_upnp_icon_geticonnode(icon), CG_UPNP_ICON_DEPTH) + +/***************************************************************************** + * URL + *****************************************************************************/ + +/** + * Set icon's URL + * + * \param icon Icon in question + * \param value Icon's URL + */ +#define cg_upnp_icon_seturl(icon, value) cg_xml_node_setchildnode(cg_upnp_icon_geticonnode(icon), CG_UPNP_ICON_URL, value) + +/** + * Get icon's URL + * + */ +#define cg_upnp_icon_geturl(icon) cg_xml_node_getchildnodevalue(cg_upnp_icon_geticonnode(icon), CG_UPNP_ICON_URL) + +/***************************************************************************** + * Function (IconList) + *****************************************************************************/ + +/** + * Create a new list of icons + * + */ +CgUpnpIconList *cg_upnp_iconlist_new(); + +/** + * Delete a list of icons + * + * \param iconList List of icons + */ +void cg_upnp_iconlist_delete(CgUpnpIconList *iconList); + +/** + * Clear the contents of an icon list + * + * \param iconList List of icons + */ +#define cg_upnp_iconlist_clear(iconList) cg_list_clear((CgList *)iconList, (CG_LIST_DESTRUCTORFUNC)cg_upnp_icon_delete) + +/** + * Get the size (number of elements) of an icon list + * + * \param iconList List of icons + */ +#define cg_upnp_iconlist_size(iconList) cg_list_size((CgList *)iconList) + +/** + * \todo Get the first icon from the list for iteration + * + * \param iconList List of icons + */ +#define cg_upnp_iconlist_gets(iconList) (CgUpnpIcon *)cg_list_next((CgList *)iconList) + +/** + * Add an icon to an icon list + * + * \param iconList List of icons + * \param icon Icon to add + */ +#define cg_upnp_iconlist_add(iconList, icon) cg_list_add((CgList *)iconList, (CgList *)icon) + +#ifdef __cplusplus + +} /* extern "C" */ + +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cinterface.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cinterface.h new file mode 100644 index 0000000..e277d8f --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cinterface.h @@ -0,0 +1,155 @@ +/****************************************************************** +* +* CyberNet for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cinterface.h +* +* Revision: +* +* 02/09/05 +* - first revision +* 03/23/06 Theo Beisch +* - added localhost constants +* 09/12/07 +* - Added the following functions to get MAC address. +* cg_net_interface_setmacaddress(), cg_net_interface_getmacaddress() +* - Changed cg_net_gethostinterfaces() to get the MAC address using GetAdaptersInfo() as default on Windows platform. +* - Changed cg_net_gethostinterfaces() to get the MAC address using getifaddrs() on UNIX platform. +* Note : Other platforms might not support to get this functions yet. +* +******************************************************************/ + +#ifndef _CG_NET_CINTERFACE_H_ +#define _CG_NET_CINTERFACE_H_ + +#include +#include +#include + +#if !defined(WIN32) +#include +#include +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#define CG_NET_IPV4_ADDRSTRING_MAXSIZE ((3*4)+(1*3)+1) +#define CG_NET_IPV6_ADDRSTRING_MAXSIZE (1+(8*4)+(1*7)+1+1) + +#define CG_NET_IPV4_LOOPBACK "127.0.0.1" +#define CG_NET_IPV6_LOOPBACK "fixmelater" +#define CG_NET_MACADDR_SIZE 6 + +#if defined(BTRON) || defined(TENGINE) +#define CG_NET_DEFAULT_IFNAME "Neta" +#endif + +/**************************************** +* Data Type +****************************************/ + +typedef struct _CgNetworkInterface { + BOOL headFlag; + struct _CgNetworkInterface *prev; + struct _CgNetworkInterface *next; + CgString *name; + CgString *ipaddr; + CgString *netmask; + CgByte macaddr[CG_NET_MACADDR_SIZE]; + int index; +} CgNetworkInterface, CgNetworkInterfaceList; + +/**************************************** +* Function (NetworkInterface) +****************************************/ + +CgNetworkInterface *cg_net_interface_new(); +void cg_net_interface_delete(CgNetworkInterface *netIf); +CgNetworkInterface* cg_net_interface_getany(); + +#define cg_net_interface_next(netIf) (CgNetworkInterface *)cg_list_next((CgList *)netIf) +#define cg_net_interface_remove(netIf) cg_list_remove((CgList *)netIf) + +void cg_net_interface_setname(CgNetworkInterface *netIf, char *name); +char *cg_net_interface_getname(CgNetworkInterface *netIf); +void cg_net_interface_setaddress(CgNetworkInterface *netIf, char *ipaddr); +char *cg_net_interface_getaddress(CgNetworkInterface *netIf); +void cg_net_interface_setnetmask(CgNetworkInterface *netIf, char *ipaddr); +char *cg_net_interface_getnetmask(CgNetworkInterface *netIf); +char *cg_net_selectaddr(struct sockaddr *remoteaddr); + +#define cg_net_interface_setmacaddress(netIf, value) memcpy(netIf->macaddr, value, CG_NET_MACADDR_SIZE) +#define cg_net_interface_getmacaddress(netIf, buf) memcpy(buf, netIf->macaddr, CG_NET_MACADDR_SIZE) + +#define cg_net_interface_setindex(netIf, value) (netIf->index = value) +#define cg_net_interface_getindex(netIf, buf) (netIf->index) + +/** + * Compares two interfaces based on IP-address. + */ +int cg_net_interface_cmp(CgNetworkInterface *netIfA, + CgNetworkInterface *netIfB); + +/**************************************** +* Function (NetworkInterfaceList) +****************************************/ + +CgNetworkInterfaceList *cg_net_interfacelist_new(); +void cg_net_interfacelist_delete(CgNetworkInterfaceList *netIfList); + +#define cg_net_interfacelist_clear(netIfList) cg_list_clear((CgList *)netIfList, (CG_LIST_DESTRUCTORFUNC)cg_net_interface_delete) +#define cg_net_interfacelist_size(netIfList) cg_list_size((CgList *)netIfList) +#define cg_net_interfacelist_gets(netIfList) (CgNetworkInterface *)cg_list_next((CgList *)netIfList) +#define cg_net_interfacelist_add(netIfList,netIf) cg_list_add((CgList *)netIfList, (CgList *)netIf) + +CgNetworkInterface *cg_net_interfacelist_get(CgNetworkInterfaceList *netIfList, char *name); + +/** + * Gets changes in the two given (aka old and new) interface lists. Changes + * are resolved based on IP-addresses. + * + * @param netIfListOld List of the old interfaces. It is changed! + * @param netIfListNew List of the new interfaces. It is changed! + * @param netIfListAdded List to store interfaces, which were in netIfListNew, + * but were not in netIfListOld. May be NULL. + * @param netIfListRemoved List to store interfaces, which were in + * netIfListOld, but were not in netIfListNew. + */ +void cg_net_interfacelist_getchanges(CgNetworkInterfaceList *netIfListOld, + CgNetworkInterfaceList *netIfListNew, + CgNetworkInterfaceList *netIfListAdded, + CgNetworkInterfaceList *netIfListRemoved); + +/**************************************** +* Function +****************************************/ + +#if defined(ITRON) +void cg_net_setinterface(char *ifaddr); +#endif + +int cg_net_gethostinterfaces(CgNetworkInterfaceList *netIfList); + +BOOL cg_net_isipv6address(char *addr); +int cg_net_getipv6scopeid(char *addr); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/clist.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/clist.h new file mode 100644 index 0000000..c1be2cf --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/clist.h @@ -0,0 +1,171 @@ +/****************************************************************** +* +* CyberUtil for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: clist.h +* +* Revision: +* +* 01/18/05 +* - first revision +* +* 10/31/05 +* - Added comments to all functions and structs +* +******************************************************************/ + +#ifndef _CG_UTIL_CLIST_H_ +#define _CG_UTIL_CLIST_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** + * Define + ****************************************/ + +/** + * Prototype for individual list node destructor functions + * + */ +typedef void (*CG_LIST_DESTRUCTORFUNC)(void *); + +/**************************************** + * Data Type + ****************************************/ + +/** + * \brief The generic list interface in CyberLinkC. + * + * Each struct in CyberLinkC, that is designed to be a part of + * a list, must have these elements in their definition before the + * actual struct definition. The struct pointers are then cast to + * CgList* and operated with cg_list_* functions. + */ +typedef struct _CgList { + + /** Marks the beginning of a list */ + BOOL headFlag; + /** Pointer to the next list node */ + struct _CgList *prev; + /** Pointer to the previous list node */ + struct _CgList *next; + +} CgList; + +/**************************************** + * Functions + ****************************************/ + +/** + * Initialize a list node to act as the first node + * + * \param list List node + */ +void cg_list_header_init(CgList *list); + +/** + * Initialize a list node to act as a regular node, part of a list. + * + * \param list List node + */ +void cg_list_node_init(CgList *list); + +/** + * Insert a list node or a complete list structure after the given node + * + * \param prevList Insert after this node + * \param list List node or list structure to insert + */ +void cg_list_insert(CgList *prevList, CgList *list); + +/** + * \todo This works essentially like insert, although it is more error-prone?! + * \todo There might be a bug in this function. + * + */ +void cg_list_add(CgList *headList, CgList *list); + +/** + * Remove a node from a list. Does not free any memory, but only removes + * the next and previous link associations regarding the given node. + * + * \param list List node to remove + */ +void cg_list_remove(CgList *list); + +/** + * Get the number of nodes in the current list structure. Counts forwards from the given + * node, so if you want to get the complete size, give a header node as the parameter. + * + * \param headList List header + */ +int cg_list_size(CgList *headList); + +/** + * Get an item from the list by the item's index + * + * \param headList List header + * \param index The index of the item to get + */ +CgList *cg_list_get(CgList *headList, int index); + +/** + * Get the previous node. Wrap around if the beginning has been reached. + * + * + * \param list Current node + */ +CgList *cg_list_prev_circular(CgList *list); + +/** + * Get the previous node. Returns NULL if beginning has been reached + * + * \param list Current node + */ +CgList *cg_list_prev(CgList *list); + +/** + * Get the next node. Wrap around if the end has been reached. + * + * \param list Current node + */ +CgList *cg_list_next_circular(CgList *list); + +/** + * Get the next node. Returns NULL if end has been reached. + * + * \param list Current node + */ +CgList *cg_list_next(CgList *list); + +/** + * Clear the list and delete all of its contents with \ref CG_LIST_DESTRUCTORFUNC + * + * \param headList List header + * \param destructorFunc Function pointer that clears the contents of individual nodes + */ +void cg_list_clear(CgList *headList, CG_LIST_DESTRUCTORFUNC destructorFunc); + +/** + * Get the first actual item from a list for iteration + * + * \param headList List header + */ +#define cg_list_gets(headList) cg_list_next(headList) + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/clog.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/clog.h new file mode 100644 index 0000000..2e8f557 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/clog.h @@ -0,0 +1,174 @@ +/****************************************************************** +* +* CyberUtil for C +* +* Copyright (C) 2006 Nokia Corporation +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: clog.h +* +* Revision: +* +* 06-Feb-06 +* - first revision +* +******************************************************************/ + +#ifndef __CLOG_H +#define __CLOG_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define MAX_LOG_STRING 2048 + +/* Message masks and descriptions */ +#define SEV_UNKNOWN_S "Unknown" + +#define SEV_ERROR 1 +#define SEV_ERROR_S "Error" + +#define SEV_WARNING 2 +#define SEV_WARNING_S "Warning" + +#define SEV_INFO 4 +#define SEV_INFO_S "Info" + +#define SEV_DEBUG_L1 8 +#define SEV_DEBUG_L1_S "Debug (general)" + +#define SEV_DEBUG_L2 16 +#define SEV_DEBUG_L2_S "Debug (stack)" + +#define SEV_DEBUG_L3 32 +#define SEV_DEBUG_L3_S "Debug (application)" + +/* Low level debug messages like when printing out (important) function + * entry/leaving points */ +#define SEV_DEBUG_L4 64 +#define SEV_DEBUG_L4_S "Debug (low level L4)" + +/* Low level debug messages to be used e.g. when printing out less important + * function entry/leaving points */ +#define SEV_DEBUG_L5 128 +#define SEV_DEBUG_L5_S "Debug (low level L5)" + +/* Mask for all message types */ +#define SEV_ALL ( SEV_ERROR | SEV_WARNING | SEV_INFO | SEV_DEBUG_L1 | SEV_DEBUG_L2 | SEV_DEBUG_L3 | SEV_DEBUG_L4 | SEV_DEBUG_L5 ) + +/* Filename, line_n and unique build number can be used to give unique id tag + * to all messages. + */ +void cg_log_print(int severity, const char *file, int line_n, const char *function, const char *format, ...); +void cg_log_set_separator(char *s); + +/* Target defines a file or stdout/stderr, in future it may also + * contain special targets like network addresses etc. + */ +int cg_log_add_target(char *target, int severity_mask); +int cg_log_clear_targets(); + +/* Standard error handling */ +#if defined(__USE_ISOC99) +#define cg_log_error(format, ...) cg_log_print(SEV_ERROR, __FILE__, __LINE__, __PRETTY_FUNCTION__, format, __VA_ARGS__) +#elif defined(WIN32) || defined(WINCE) +void cg_log_error(const char *format, ...); +#else +#define cg_log_error(format...) cg_log_print(SEV_ERROR, __FILE__, __LINE__, __PRETTY_FUNCTION__, format) +#endif + +#if defined(__USE_ISOC99) +#define cg_log_warning(format, ...) cg_log_print(SEV_WARNING, __FILE__, __LINE__, __PRETTY_FUNCTION__, format, __VA_ARGS__) +#elif defined(WIN32) || defined(WINCE) +void cg_log_warning(const char *format, ...); +#else +#define cg_log_warning(format...) cg_log_print(SEV_WARNING, __FILE__, __LINE__, __PRETTY_FUNCTION__, format) +#endif + +#if defined(__USE_ISOC99) +#define cg_log_info(format, ...) cg_log_print(SEV_INFO, __FILE__, __LINE__, __PRETTY_FUNCTION__, format, __VA_ARGS__) +#elif defined(WIN32) || defined(WINCE) +void cg_log_info(const char *format, ...); +#else +#define cg_log_info(format...) cg_log_print(SEV_INFO, __FILE__, __LINE__, __PRETTY_FUNCTION__, format) +#endif + +/* General and low level debug */ +#ifdef CLOG_DEBUG +#if defined(__USE_ISOC99) +# define cg_log_debug(format, ...) cg_log_print(SEV_DEBUG_L1, __FILE__, __LINE__, __PRETTY_FUNCTION__, format, __VA_ARGS__) +# define cg_log_debug_l4(format, ...) cg_log_print(SEV_DEBUG_L4, __FILE__, __LINE__, __PRETTY_FUNCTION__, format, __VA_ARGS__) +# define cg_log_debug_l5(format, ...) cg_log_print(SEV_DEBUG_L5, __FILE__, __LINE__, __PRETTY_FUNCTION__, format, __VA_ARGS__) +#elif defined(WIN32) +void cg_log_debug(const char *format, ...); +void cg_log_debug_l4(const char *format, ...); +void cg_log_debug_l5(const char *format, ...); +#else +# define cg_log_debug(format...) cg_log_print(SEV_DEBUG_L1, __FILE__, __LINE__, __PRETTY_FUNCTION__, format) +# define cg_log_debug_l4(format...) cg_log_print(SEV_DEBUG_L4, __FILE__, __LINE__, __PRETTY_FUNCTION__, format) +# define cg_log_debug_l5(format...) cg_log_print(SEV_DEBUG_L5, __FILE__, __LINE__, __PRETTY_FUNCTION__, format) +#endif +#else +#if defined(__USE_ISOC99) +# define cg_log_debug(format, ...) +# define cg_log_debug_l4(format, ...) +# define cg_log_debug_l5(format, ...) +#elif defined(WIN32) || defined(WINCE) +void cg_log_debug(const char *format, ...); +void cg_log_debug_l4(const char *format, ...); +void cg_log_debug_l5(const char *format, ...); +#else +# define cg_log_debug(format...) +# define cg_log_debug_l4(format...) +# define cg_log_debug_l5(format...) +#endif +#endif + +/* Debug messages coming from stack */ +#ifdef CLOG_DEBUG_STACK +#if defined(__USE_ISOC99) +# define cg_log_debug_s(format, ...) cg_log_print(SEV_DEBUG_L2, __FILE__, __LINE__, __PRETTY_FUNCTION__, format, __VA_ARGS__) +#elif defined(WIN32) +void cg_log_debug_s(const char *format, ...); +#else +# define cg_log_debug_s(format...) cg_log_print(SEV_DEBUG_L2, __FILE__, __LINE__, __PRETTY_FUNCTION__, format) +#endif +#else +#if defined(__USE_ISOC99) +# define cg_log_debug_s(format, ...) +#elif defined(WIN32) || defined(WINCE) +void cg_log_debug_s(const char *format, ...); +#else +# define cg_log_debug_s(format...) +#endif +#endif + +/* Debug messages coming from application */ +#ifdef CLOG_DEBUG_APPLICATION +#if defined(__USE_ISOC99) +# define cg_log_debug_a(format...) cg_log_print(SEV_DEBUG_L3, __FILE__, __LINE__, __PRETTY_FUNCTION__, format, __VA_ARGS__) +#elif defined(WIN32) +void cg_log_debug_a(const char *format, ...); +#else +# define cg_log_debug_a(format...) cg_log_print(SEV_DEBUG_L3, __FILE__, __LINE__, __PRETTY_FUNCTION__, format) +#endif +#else +#if defined(__USE_ISOC99) +# define cg_log_debug_a(format, ...) +#elif defined(WIN32) || defined(WINCE) +void cg_log_debug_a(const char *format, ...); +#else +# define cg_log_debug_a(format...) +#endif +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* __CLOG_H */ diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cmutex.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cmutex.h new file mode 100644 index 0000000..962a677 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cmutex.h @@ -0,0 +1,131 @@ +/****************************************************************** +* +* CyberUtil for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cmutex.h +* +* Revision: +* +* 01/17/05 +* - first revision +* +* 10/31/05 +* - Added comments to all functions and structs +* +******************************************************************/ + +#ifndef _CG_UTIL_CMUTEX_H_ +#define _CG_UTIL_CMUTEX_H_ + +#include + +#if defined(WIN32) && !defined(ITRON) +#include +#elif defined(BTRON) +#include +#elif defined(ITRON) +#include +#elif defined(TENGINE) && !defined(PROCESS_BASE) +#include +#elif defined(TENGINE) && defined(PROCESS_BASE) +#include +#else +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** + * Data Types + ****************************************/ + +/** + * \brief The generic wrapper struct for CyberLinkC's mutexes. + * + * This wrapper has been created to enable 100% code + * compatibility for different platforms (Linux, Win32 etc..) + */ +typedef struct _CgMutex { +#if defined(WIN32) && !defined(ITRON) + HANDLE mutexID; +#elif defined(BTRON) + WERR mutexID; +#elif defined(ITRON) + ER_ID mutexID; +#elif defined(TENGINE) && !defined(PROCESS_BASE) + ID mutexID; +#elif defined(TENGINE) && defined(PROCESS_BASE) + WERR mutexID; +#else + /** The mutex entity */ + pthread_mutex_t mutexID; +#endif +} CgMutex; + +#if defined(WITH_THREAD_LOCK_TRACE) && defined(__USE_ISOC99) +#include + +typedef struct _CgLockInfo +{ + struct _CgLockInfo *next; + pthread_t thread_id; + char *file, *function; + int line, mutex_id; +} CgLockInfo; +#endif + +/**************************************** + * Functions + ****************************************/ + +/** + * Create a new mutex + */ +CgMutex *cg_mutex_new(); + +/** + * Destroy a mutex + * + * \param mutex The mutex to destroy + */ +BOOL cg_mutex_delete(CgMutex *mutex); + +/** + * Acquire a mutex lock + * + * \param mutex Mutex to lock + */ + +#if defined(WITH_THREAD_LOCK_TRACE) && defined(__USE_ISOC99) +# define cg_mutex_lock(mutex) cg_mutex_lock_trace(__FILE__, __LINE__, __PRETTY_FUNCTION__, mutex) +#else + BOOL cg_mutex_lock(CgMutex *mutex); +#endif + +/** + * Release a locked mutex + * + * \param mutex Mutex to unlock + */ +#if defined(WITH_THREAD_LOCK_TRACE) && defined(__USE_ISOC99) +# define cg_mutex_unlock(mutex) cg_mutex_unlock_trace(__FILE__, __LINE__, __PRETTY_FUNCTION__, mutex) +#else + BOOL cg_mutex_unlock(CgMutex *mutex); +#endif + +#ifdef __cplusplus + +} /* extern "C" */ + +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cnotify.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cnotify.h new file mode 100644 index 0000000..ca7fa34 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cnotify.h @@ -0,0 +1,238 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cevent.h +* +* Revision: +* +* 06/20/05 +* - first revision +* +* 03/20/06 Theo Beisch +* - added cg_upnp_event_notify_request_hasnt & _hasnts & _hassid +******************************************************************/ + +#ifndef _CG_UPNP_CNOTIFY_H_ +#define _CG_UPNP_CNOTIFY_H_ + +#include + +#include +#include + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +/** Define for XML namespace + */ +#define CG_UPNP_NOTIFY_XMLNS "e" + +/** + * Define for notify property + */ +#define CG_UPNP_NOTIFY_PROPERTY "property" + +/** + * Define for notify property set + */ +#define CG_UPNP_NOTIFY_PROPERTYSET "propertyset" + +/**************************************** +* Data Type +****************************************/ + +/** + * Data type for UPnP Notification request + */ +typedef CgSoapRequest CgUpnpNotifyRequest; + +/** + * Data type for UPnP notify response + */ +typedef CgSoapResponse CgUpnpNotifyResponse; + +/**************************************** +* Function (Request) +****************************************/ + +/** + * Create new Notification request + */ +CgUpnpNotifyRequest *cg_upnp_event_notify_request_new(); + +/** + * Delete Notification request + * + * @param notifyReq Notification request + */ +void cg_upnp_event_notify_request_delete(CgUpnpNotifyRequest *notifyReq); + +/** + * Clear Notification request + * + * @param notifyReq Notification request + */ +void cg_upnp_event_notify_request_clear(CgUpnpNotifyRequest *notifyReq); + +/** + * Set HTTP request for event Notification request + * + * @param notifyReq Notification request + * @param httpReq HTTP request + */ +#define cg_upnp_event_notify_request_sethttprequest(notifyReq, httpReq) cg_soap_request_sethttprequest(notifyReq, httpReq) + +/** + * Sends event Notification request to control point + * + * @param notifyReq Notification request + * @param host Host address + * @param port Host port + * + * @return Notify response + */ +#define cg_upnp_event_notify_request_post(notifyReq, host, port) cg_soap_request_post(notifyReq, host, port) + +/** + * Get root node associated with current Notification request + * + * @param notifyReq Notification request + * + * @return XML node + */ +#define cg_upnp_event_notify_request_getpropertysetnode(notifyReq) cg_soap_request_getrootnoode(notifyReq) + +/** + * Set property list for Notification request + * + * @param notifyReq Notification request + * @param value Property list value + */ +#define cg_upnp_event_notify_request_setpropertylist(notifyReq, value) cg_soap_request_setuserdata(notifyReq, value) + +/** + * Get property list from Notification request + * + * @param nofityReq Notification request + */ +CgUpnpPropertyList *cg_upnp_event_notify_request_getpropertylist(CgUpnpNotifyRequest *nofityReq); + +/**** NT ****/ + +/** + * Set NT (Notificatio type) for Notification request + * + * @param soapReq Notification request + * @param value Notification type + */ +#define cg_upnp_event_notify_request_setnt(soapReq, value) cg_http_packet_setheadervalue((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_NT, value) + +/** + * Get NT from notification request + * + * @param soapReq Notification request + */ +#define cg_upnp_event_notify_request_getnt(soapReq) cg_http_packet_getheadervalue((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_NT) +//Theo Beisch +#define cg_upnp_event_notify_request_hasnt(soapReq) cg_http_packet_hasheader((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_NT) + +/**** NTS ****/ + +/** + * Set NTS (Notification sub type) for current Notification request + * + * @param soapReq Notification request + * @param value NTS + */ +#define cg_upnp_event_notify_request_setnts(soapReq, value) cg_http_packet_setheadervalue((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_NTS, value) + +/** + * Get NTS from notification request + * + * @param soapReq Notification request + */ +#define cg_upnp_event_notify_request_getnts(soapReq) cg_http_packet_getheadervalue((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_NTS) +//Theo Beisch +#define cg_upnp_event_notify_request_hasnts(soapReq) cg_http_packet_hasheader(((CgHttpPacket*)soapReq->httpReq), CG_HTTP_NTS) + +/**** SID ****/ + +/** + * Set SID (Subscription ID) for notification request + * + * @param soapReq Notification request + * @param sid SID + */ +void cg_upnp_event_notify_request_setsid(CgUpnpNotifyRequest *soapReq, char *sid); + +/** + * Get SID from notification request + * + * @param soapReq Notification request + */ +#define cg_upnp_event_notify_request_getsid(soapReq) cg_upnp_event_subscription_getsid(cg_http_packet_getheadervalue((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_SID)) +//Theo Beisch +#define cg_upnp_event_notify_request_hassid(soapReq) cg_http_packet_hasheader(((CgHttpPacket*)(soapReq->httpReq)), CG_HTTP_SID) + +/**** SEQ ****/ + +/** + * Set sequence number for notification request + * + * @param soapReq Notification request + * @param value Sequence number + */ +#define cg_upnp_event_notify_request_setseq(soapReq, value) cg_http_packet_setheaderlong((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_SEQ, value) + +/** + * Get sequence number from notification request + * + * @param soapReq Notification request + */ +#define cg_upnp_event_notify_request_getseq(soapReq) cg_http_packet_getheaderlong((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_SEQ) + +/** + * \todo Check what this does exactly... + */ +BOOL cg_upnp_event_notify_request_setpropertysetnode(CgUpnpNotifyRequest *notifyReq, CgUpnpSubscriber *sub, /* CgUpnpService */void *service, CgUpnpStateVariable *statVar); + +/**************************************** +* Function (Response) +****************************************/ + +/** + * Check if notification response was successfull + * + * @param notifyRes Notification response + */ +#define cg_upnp_event_notify_response_issuccessful(notifyRes) cg_soap_response_issuccessful(notifyRes) + +/** + * Get the status code of the specified response + * + * @param notifyRes Notification response + */ +#define cg_upnp_event_notify_response_getstatuscode(notifyRes) cg_soap_response_getstatuscode(notifyRes) + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cproperty.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cproperty.h new file mode 100644 index 0000000..8eb4551 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cproperty.h @@ -0,0 +1,196 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cproperty.h +* +* Revision: +* +* 06/21/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UPNP_CPROPERTY_H_ +#define _CG_UPNP_CPROPERTY_H_ + +#include + +#include +#include +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Type definition for UPnP property + */ +typedef struct _CgUpnpProperty { + BOOL headFlag; + struct _CgUpnpProperty *prev; + struct _CgUpnpProperty *next; + + CgString *name; + CgString *value; + CgString *sid; + long seq; +} CgUpnpProperty, CgUpnpPropertyList; + +/**************************************** +* Function (Property) +****************************************/ + +/** + * Construct new UPnP property object + */ +CgUpnpProperty *cg_upnp_property_new(); + +/** + * Delete UPnP property object + * + * @param prop UPnP property + */ +void cg_upnp_property_delete(CgUpnpProperty *prop); + +/** + * Clear UPnP property + * + * @param prop UPnP property + */ +void cg_upnp_property_clear(CgUpnpProperty *prop); + +/** + * Fetches next UPnP property from property list + * + * @param prop UPnP property + */ +#define cg_upnp_property_next(prop) (CgUpnpProperty *)cg_list_next((CgList *)prop) + +/**** name ****/ +/** + * Set property name + * + * @param prop UPnP property + * @param value Name + */ +#define cg_upnp_property_setname(prop, value) cg_string_setvalue(prop->name, value) + +/** + * Get property name + * + * @param prop UPnP property + */ +#define cg_upnp_property_getname(prop) cg_string_getvalue(prop->name) + +/**** value ****/ + +/** + * Set value for UPnP property + * + * @param prop UPnP property + * @param nvalue Value + */ +#define cg_upnp_property_setvalue(prop, nvalue) cg_string_setvalue(prop->value, nvalue) + +/** + * Get value from property + * + * @param prop UPnP property + */ +#define cg_upnp_property_getvalue(prop) cg_string_getvalue(prop->value) + +/**** sid ****/ + +/** + * Set SID for UPnP property + * + * @param prop UPnP property + * @param value Value + */ +#define cg_upnp_property_setsid(prop, value) cg_string_setvalue(prop->sid, value) + +/** + * Get SID from UPnP property + * + * @param prop UPnP property + */ +#define cg_upnp_property_getsid(prop) cg_string_getvalue(prop->sid) + +/**** seq ****/ + +/** + * Set sequence number for UPnP property + * + * @param prop UPnP property + * @param value + */ +#define cg_upnp_property_setseq(prop, value) (prop->seq = value) + +/** + * Get sequence number from UPnP property + * + * @param prop UPnP property + */ +#define cg_upnp_property_getseq(prop) (prop->seq) + +/**************************************** +* Function (PropertyList) +****************************************/ + +/** + * Create new UPnP property list + */ +CgUpnpPropertyList *cg_upnp_propertylist_new(); + +/** + * Delete UPnP property list + * + * @param propertylist UPnP property list + */ +void cg_upnp_propertylist_delete(CgUpnpPropertyList *propertylist); + +/** + * Clear UPnP propertylist + * + * @param propList UPnP property list + */ +#define cg_upnp_propertylist_clear(propList) cg_list_clear((CgList *)propList, (CG_LIST_DESTRUCTORFUNC)cg_upnp_property_delete) + +/** + * Get size of property list + * + * @param propList UPnP property list + */ +#define cg_upnp_propertylist_size(propList) cg_list_size((CgList *)propList) + +/** + * Get next list element from property list + * + * @param propList UPnP property list + */ +#define cg_upnp_propertylist_gets(propList) (CgUpnpProperty *)cg_list_next((CgList *)propList) + +/** + * Add new property into property list + * + * @param propList UPnP property list + * @param prop UPnP property + */ +#define cg_upnp_propertylist_add(propList, prop) cg_list_add((CgList *)propList, (CgList *)prop) + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cservice.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cservice.h new file mode 100644 index 0000000..603fc01 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cservice.h @@ -0,0 +1,819 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cservice.h +* +* Revision: +* +* 02/14/05 +* - first revision +* +* 09-Jan-06 Heikki Junnila +* - Added service type parsing functions: +* cg_upnp_servicetype_getidentifier +* cg_upnp_servicetype_geturn +* cg_upnp_servicetype_getservice +* cg_upnp_servicetype_gettype +* cg_upnp_servicetype_getversion +* +* 10-Jan-06 Heikki Junnila +* - Added cg_upnp_servicetype_getschematype() and fixed +* existing servicetype functions to accept 1-character strings +* +* 11-Jan-06 Heikki Junnila +* - Removed cg_upnp_service_isname() and _getname() because +* according to UPnP specs, services have only types, not names +* +* 17-Jan-06 Heikki Junnila +* - Added API comments +* 04/05/06 Theo Beisch +* - changed timeout to use subscriber object +* when used by ControlPoint +* modified execution data accordingly +* +******************************************************************/ + +#ifndef _CG_UPNP_CSERVICE_H_ +#define _CG_UPNP_CSERVICE_H_ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************************************************** +* Define +*****************************************************************************/ + +#define CG_UPNP_SERVICE_ELEM_NAME "service" +#define CG_UPNP_SERVICELIST_ELEM_NAME "serviceList" + +#define CG_UPNP_SERVICE_TYPE "serviceType" +#define CG_UPNP_SERVICE_ID "serviceId" +#define CG_UPNP_SERVICE_SCPDURL "SCPDURL" +#define CG_UPNP_SERVICE_CONTROL_URL "controlURL" +#define CG_UPNP_SERVICE_EVENT_SUB_URL "eventSubURL" +#define CG_UPNP_SERVICE_EVENT_KEY_INVALID 0 +#define CG_UPNP_SERVICE_NOTIFY_WAITTIME 1000 + +/**************************************************************************** +* Data Type +*****************************************************************************/ + +typedef struct _CgUpnpService { + BOOL headFlag; + struct _CgUpnpService *prev; + struct _CgUpnpService *next; + CgXmlNodeList *scpdNodeList; + CgXmlNode *serviceNode; + CgUpnpActionList *actionList; + CgUpnpServiceStateTable *serviceStateTable; + void *parentDevice; + CgMutex *mutex; +#if !defined(CG_UPNP_NOUSE_SUBSCRIPTION) + CgUpnpSubscriberList *subscriberList; +#endif + BOOL parsed; + /**** Execution Data ****/ + CgString *subscriptionSid; + long subscriptionTimeout; + + void *userData; + unsigned int eventKey; + CgSysTime subscriptionTimestamp; +} CgUpnpService, CgUpnpServiceList; + +/**************************************** +* Function (Service) +****************************************/ + +/** + * Create a new UPnP service + */ +CgUpnpService *cg_upnp_service_new(); + +/** + * Destroy a UPnP service + * + * @param service The service to destroy + */ +void cg_upnp_service_delete(CgUpnpService *service); + +/** + * Clear the contents of a UPnP service + * + * @param service The service to clear + */ +void cg_upnp_service_clear(CgUpnpService *service); + +/** + * Get the next service in a service list. Use as an iterator. + * + * @param service Current service + */ +#define cg_upnp_service_next(service) (CgUpnpService *)cg_list_next((CgList *)service) + +/** + * Check, whether the given XML node is a service root node + * + * @param node CgXmlNode* + * @return TRUE if the node is a service root node; otherwise FALSE + */ +#define cg_upnp_service_isservicenode(node) cg_xml_node_isname(node, CG_UPNP_SERVICE_ELEM_NAME) + +/** + * Get the service's SCPD node + * + * @param service The service in question + */ +#define cg_upnp_service_getscpdnode(service) cg_xml_nodelist_gets(service->scpdNodeList) + +/** + * Set the root XML node for the service + * + * @param service The service in question + * @param node The node to set + */ +#define cg_upnp_service_setservicenode(service,node) (service->serviceNode = node) + +/** + * Get the root XML node for the service + * + * @param service The service in question + */ +#define cg_upnp_service_getservicenode(service) (service->serviceNode) + +/** + * Get the parent device's XML node for the service + * + * @param service The service in question + */ +#define cg_upnp_service_getdevicenode(service) cg_xml_node_getparentnode(cg_xml_node_getparentnode(service->serviceNode)) + +/** + * Create the service's contents from the given XML document + * + * @param service The service to create + * @param description The XML document to parse + * @param descriptionLen The length of the XML document + */ +BOOL cg_upnp_service_parsedescription(CgUpnpService *service, char *description, int descriptionLen); + +/** + * Create the service's contents from the given URL. Gets the XML document + * from the URL and passes it again to @ref cg_upnp_service_parsedescription + * + * @param service The service to create + * @param url The URL of the document to parse + */ +BOOL cg_upnp_service_parsedescriptionurl(CgUpnpService *service, CgNetURL *url); + +/** + * Get the service's description XML nodes as a string + * + * @param service The service in question + * @param descStr The description string + */ +char *cg_upnp_service_getdescription(CgUpnpService *service, CgString *descStr); + +/** + * Get the service's parsing status (i.e. whether the service has been + * completely constructed). Useful mainly in optimized control point mode. + * + * @param service The service in question + */ +#define cg_upnp_service_isparsed(service) (service->parsed) + +/**************************************************************************** + * serviceType + ****************************************************************************/ + +/** + * Set the service's complete type string + * (ex. "urn:schemas-upnp-org:service:FooService:1") + * + * @param service The service in question + * @param value The type string + */ +#define cg_upnp_service_setservicetype(service, value) cg_xml_node_setchildnode(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_TYPE, value) + +/** + * Get the service's complete type string + * (ex. "urn:schemas-upnp-org:service:FooService:1") + * + * @param service The service in question + * @return char* + */ +#define cg_upnp_service_getservicetype(service) cg_xml_node_getchildnodevalue(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_TYPE) + +/** + * Get the identifier-part of a service type string (usually "urn") + * + * @param serviceType A service type string (usually the result from + * \ref cg_upnp_service_getservicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_servicetype_getidentifier(char* serviceType); + +/** + * Get the URN part of a service type string (usually "schemas-upnp-org") + * + * @param serviceType A service type string (usually the result from + * \ref cg_upnp_service_getservicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_servicetype_geturn(char* serviceType); + +/** + * Get the service part of a service type string (usually just "service") + * + * @param serviceType A service type string (usually the result from + * \ref cg_upnp_service_getservicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_servicetype_getservice(char* serviceType); + +/** + * Get the type part of a service type string (ex. "ContentDirectory") + * + * @param serviceType A service type string (usually the result from + * \ref cg_upnp_service_getservicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_servicetype_gettype(char* serviceType); + +/** + * Get the schema type part of a service type string (without last colon) + * (ex. "urn:schemas-upnp-org:service:ContentDirectory") + * + * @param serviceType A service type string (usually the result from + * \ref cg_upnp_service_getservicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_servicetype_getschematype(char* serviceType); + +/** + * Get the version part of a service type string (ex. "1") + * + * @param serviceType A service type string (usually the result from + * \ref cg_upnp_service_getservicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_servicetype_getversion(char* serviceType); + +/**************************************************************************** + * serviceID + ****************************************************************************/ + +/** + * Set the service's service ID + * + * @param service The service in question + * @param value Service ID string + */ +#define cg_upnp_service_setserviceid(service, value) cg_xml_node_setchildnode(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_ID, value) + +/** + * Get the service's service ID + * + * @param service The service in question + * @return char* + */ +#define cg_upnp_service_getserviceid(service) cg_xml_node_getchildnodevalue(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_ID) + +/**************************************************************************** + * SCPDURL + ****************************************************************************/ + +/** + * Set the service's SCPD (service description) URL + * + * @param service The service in question + * @param value The SCPD URL string + */ +#define cg_upnp_service_setscpdurl(service, value) cg_xml_node_setchildnode(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_SCPDURL, value) + +/** + * Get the service's SCPD (service description) URL + * + * @param service The service in question + * @return CgNetURL Pointer to URL/URI structure + */ + +CgNetURL *cg_upnp_service_getscpdurl(CgUpnpService *service); + +/** + * Compare the service's SCPD URL and the given location + * + * @param service The service in question + * @param url The URL (location) to compare + * @return TRUE if location is found from URL; otherwise FALSE + */ +BOOL cg_upnp_service_isscpdurl(CgUpnpService *service, char *url); + +/**************************************************************************** + * controlURL + ****************************************************************************/ + +/** + * Set the service's control URL + * + * @param service The service in question + * @param value The control URL string + */ +#define cg_upnp_service_setcontrolurl(service, value) cg_xml_node_setchildnode(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_CONTROL_URL, value) + +/** + * Get the service's control URL + * + * @param service The service in question + * @return CgNetURL Pointer to URL/URI structure + */ +CgNetURL *cg_upnp_service_getcontrolurl(CgUpnpService *service); + +/**************************************************************************** + * eventSubURL + ****************************************************************************/ + +/** + * Get the service's event subscription URL + * + * @param service The service in question + * @param value The event subscription URL string + */ +#define cg_upnp_service_seteventsuburl(service, value) cg_xml_node_setchildnode(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_EVENT_SUB_URL, value) + +/** + * Get the service's event subscription URL + * + * @param service The service in question + * @return CgNetURL Pointer to URL/URI structure + */ +CgNetURL *cg_upnp_service_geteventsuburl(CgUpnpService *service); + +/**************************************************************************** + * Action + ****************************************************************************/ + +/** + * Get the service's list of actions (head of list) + * + * @param service The service in question + */ +CgUpnpActionList *cg_upnp_service_getactionlist(CgUpnpService *service); + +/** + * Get the first action in the service's list of actions. Use as the + * starting point in iteration loops. + * + * @param service The service in question + */ +CgUpnpAction *cg_upnp_service_getactions(CgUpnpService *service); + +/** + * Get an action from the service by the action's name + * + * @param service The service in question + * @param name The name of the action to look for + * @return CgUpnpAction* or NULL + */ +CgUpnpAction *cg_upnp_service_getactionbyname(CgUpnpService *service, char *name); + +/** + * Check, whether a service has an action by the given name + * + * @param service The service in question + * @param name The name of the action + */ +#define cg_upnp_service_hasactionbyname(service, name) ((cg_upnp_service_getactionbyname(service,name) != NULL) ? TRUE : FALSE) + +/**************************************************************************** + * ServiceStateTable + ****************************************************************************/ + +/** + * Get the service's state table + * + * @param service The service in question + */ +CgUpnpServiceStateTable *cg_upnp_service_getservicestatetable(CgUpnpService *service); + +/** + * Get the first state variable in the service's state table. Use as the + * starting point in iteration loops. + * + * @param service The service in question + */ +CgUpnpStateVariable *cg_upnp_service_getstatevariables(CgUpnpService *service); + +/** + * Get a state variable from the service's state table by the variable's name + * + * @param service The service in question + * @param name the name of the variable + * @return CgUpnpStateVariable* or NULL + */ +CgUpnpStateVariable *cg_upnp_service_getstatevariablebyname(CgUpnpService *service, char *name); + +/** + * Check, whether the service has the given state variable + * + * @param service The service in question + * @param name The name of the state variable + * @return TRUE if found; otherwise FALSE + */ +#define cg_upnp_service_hasstatevariablebyname(service, name) ((cg_upnp_service_getstatevariablebyname(service,name) != NULL) ? TRUE : FALSE) + +/**************************************************************************** + * Advertisement + ****************************************************************************/ + +/** + * Send a service announcement (advertisement) from the given address + * + * @param service The service to advertise + * @param bindAddr The address to attach to the announcement + */ +BOOL cg_upnp_service_announcefrom(CgUpnpService *service, char *bindAddr); + +/** + * Send a byebye announcement (i.e. a cancelling advertisement) from the given + * address + * + * @param service The service to announce from + * @param bindAddr The address to attach to the announcement + */ +BOOL cg_upnp_service_byebyefrom(CgUpnpService *service, char *bindAddr); + +/**************************************************************************** + * Listener + ****************************************************************************/ + +/** + * Set an action listener to the service + * + * @param service The service in question + * @param actionListener A callback function of type CG_UPNP_ACTION_LISTNER + */ +void cg_upnp_service_setactionlistener(CgUpnpService *service, CG_UPNP_ACTION_LISTNER actionListener); + +/** + * Set a query listener to the service + * + * @param service The service in question + * @param queryListener A callback function of type CG_UPNP_STATEVARIABLE_LISTNER + */ +void cg_upnp_service_setquerylistener(CgUpnpService *service, CG_UPNP_STATEVARIABLE_LISTNER queryListener); + +/**************************************************************************** + * Parent Device + ****************************************************************************/ + +/** + * Set the service's parent device + * + * @param service The service in question + * @param dev The parent device + */ +#define cg_upnp_service_setdevice(service, dev) (service->parentDevice = dev) + +/** + * Get the service's parent device + * + * @param service The service in question + * @return CgUpnpDevice* + */ +#define cg_upnp_service_getdevice(service) ((CgUpnpDevice *)service->parentDevice) + +/**************************************************************************** + * Root Device + ****************************************************************************/ + +/** + * Get the service's top-most root device + * + * @param service The service in question + * @return CgUpnpDevice* + */ +#define cg_upnp_service_getrootdevice(service) cg_upnp_device_getrootdevice((CgUpnpDevice *)service->parentDevice) + +/**************************************************************************** + * Subscriber + ****************************************************************************/ + +/** + * Get the first node in the service's list of event subscribers. Use as the + * starting point in iteration loops. + * + * @param service The service in question + */ +#define cg_upnp_service_getsubscribers(service) cg_upnp_subscriberlist_gets(service->subscriberList) + +/** + * Get the number of subscribers for the service + * + * @param service The service in question + * @return int + */ +#define cg_upnp_service_getnsubscribers(service) cg_upnp_subscriberlist_size(service->subscriberList) + +/** + * Add a subscriber to the service + * + * @param service The service in question + * @param sub The subscriber + */ +BOOL cg_upnp_service_addsubscriber(CgUpnpService *service, CgUpnpSubscriber *sub); + +/** + * Remove a subscriber from the service + * + * @param service The service in question + * @param sub The subscriber to remove + */ +BOOL cg_upnp_service_removesubscriber(CgUpnpService *service, CgUpnpSubscriber *sub); + +/** + * Find a subscriber from the service's list of subscribers by its SID + * (Subscription ID) + * + * @param service The service in question + * @param sid The SID + */ +CgUpnpSubscriber *cg_upnp_service_getsubscriberbysid(CgUpnpService *service, char *sid); + +/**************************************************************************** + * Announce + ****************************************************************************/ + +char *cg_upnp_service_getnotifyservicetypent(CgUpnpService *service, char *buf, int bufSize); +char *cg_upnp_service_getnotifyservicetypeusn(CgUpnpService *service, char *buf, int bufSize); + +/**************************************************************************** + * Notify + ****************************************************************************/ + +/** + * Send a notification of a service's changed state variable + * + * @param service The service in question + * @param statVar The changed state variable + */ +BOOL cg_upnp_service_notify(CgUpnpService *service, CgUpnpStateVariable *statVar); + +/** + * Send a notification message to all of the service's subscribers + * + * @param service The service in question + */ +BOOL cg_upnp_service_notifyall(CgUpnpService *service, BOOL doBracket ); + +/** +* Create a new thread to send a notification message to all of the service's subscribers +* + * @param service The service in question +* @param waitTime The wait time to send +*/ +void cg_upnp_service_createnotifyallthread(CgUpnpService *service, CgSysTime waitTime); + +/** + * Send a notification message to all of the service's subscribers + * + * @param service The service in question + * @deprecated Use cg_upnp_service_notifyall(). + */ +#define cg_upnp_service_notifyallstatevariables(service) cg_upnp_service_notifyall(service, FALSE); + +/**************************************************************************** + * Mutex + ****************************************************************************/ + +/** + * Lock the service's mutex + * + * @param service The service in question + */ +#define cg_upnp_service_lock(service) cg_mutex_lock(service->mutex) + +/** + * Unlock the service's mutex + * + * @param service The service in question + */ +#define cg_upnp_service_unlock(service) cg_mutex_unlock(service->mutex) + +/**************************************************************************** + * SID + ****************************************************************************/ + +/** + * Set the service's subscription's SID (subscription ID) + * + * @param service The service in question + * @param value The SID + */ +#define cg_upnp_service_setsubscriptionsid(service, value) cg_string_setvalue(service->subscriptionSid, value) + +/** + * Get the service's SID (subscription ID) + * + * @param service The service in question + * @return char* + */ +#define cg_upnp_service_getsubscriptionsid(service) cg_string_getvalue(service->subscriptionSid) + +/** + * Check, whether the service has any subscribers + * + * @param service The service in question + * @return TRUE if at least one subscriber is found; otherwise FALSE + */ +#define cg_upnp_service_issubscribed(service) ((0 < cg_string_length(service->subscriptionSid)) ? TRUE : FALSE) + +/** + * Clear (i.e. empty) the service's SID (subscription ID) + * + * @param service The service in question + */ +#define cg_upnp_service_clearsubscriptionsid(service) cg_string_setvalue(service->subscriptionSid, "") + +/**************************************************************************** + * Timeout + ****************************************************************************/ + +/** + * Set the service's subscription timeout (expiration) value + * + * @param service The service in question + * @param value The timeout value + */ +#define cg_upnp_service_setsubscriptiontimeout(service, value) (service->subscriptionTimeout = value) + +/** + * Get the service's subscription timeout (expiration) value + * + * @param service The service in question + * @return long + */ +#define cg_upnp_service_getsubscriptiontimeout(service) (service->subscriptionTimeout) + +/**************************************************************************** + * User Data + ****************************************************************************/ + +/** + * Set the service's arbitrary user data pointer + * + * @param service The service in question + * @param value The user data pointer + */ +#define cg_upnp_service_setuserdata(service, value) (service->userData = value) + +/** + * Get the service's arbitrary user data pointer + * + * @param service The service in question + * @return void* + */ +#define cg_upnp_service_getuserdata(service) (service->userData) + +/**************************************************************************** + * Event Key + ****************************************************************************/ + +/** + * Set the service's event key (i.e. the sequential number used in events) + * + * @param service The service in question + * @param value The event key value (uint) + */ +#define cg_upnp_service_seteventkey(service, value) (service->eventKey = value) + +/** + * Get the service's event key + * + * @param service The service in question + * @return uint + */ +#define cg_upnp_service_geteventkey(service) (service->eventKey) + +/**************************************************************************** + * Timestamp + ****************************************************************************/ + +/** + * Set the service's subscription time stamp + * + * @param service The service in question + * @param value The time stamp + */ +#define cg_upnp_service_setsubscriptiontimestamp(service, value) (service->subscriptionTimestamp = value) + +/** + * Get the service's subscription time stamp + * + * @param service The service in question + * @return CgSysTime + */ +#define cg_upnp_service_getsubscriptiontimestamp(service) (service->subscriptionTimestamp) + +/** + * Get the service's subscription expiration time + * + * @param service The service in question + * @return CgSysTime + */ +#define cg_upnp_service_getsubscriptionexpiration(service) (service->subscriptionTimestamp + service->subscriptionTimeout - CG_UPNP_SUBSCRIPTION_DELAY) + + +/**************************************************************************** + * Function (ServiceList) + ****************************************************************************/ + +/** + * Create a new list of services + */ +CgUpnpServiceList *cg_upnp_servicelist_new(); + +/** + * Destroy a list of services + * + * @param serviceList The list of services to destroy + */ +void cg_upnp_servicelist_delete(CgUpnpServiceList *serviceList); + + +/** + * Clear the contents of a list of services + * + * @param serviceList The list of services to clear + */ +#define cg_upnp_servicelist_clear(serviceList) cg_list_clear((CgList *)serviceList, (CG_LIST_DESTRUCTORFUNC)cg_upnp_service_delete) + +/** + * Get the number of services in a list of services + * + * @param serviceList The list of services + * @return int + */ +#define cg_upnp_servicelist_size(serviceList) cg_list_size((CgList *)serviceList) + +/** + * Get the first service in a list of services. Use as the starting point in + * iteration loops. + * + * @param serviceList The service list + */ +#define cg_upnp_servicelist_gets(serviceList) (CgUpnpService *)cg_list_next((CgList *)serviceList) + +/** + * Add a service to a list of services + * + * @param serviceList The list to add the service to + * @param service The service to add to the list + */ +#define cg_upnp_servicelist_add(serviceList, service) cg_list_add((CgList *)serviceList, (CgList *)service) + +/**************************************************************************** + * Function (SSDP) + ****************************************************************************/ + +/** + * The service's handler function that deals with received SSDP messages. + * + * @param service The service in question + * @param ssdpPkt The received SSDP packet + */ +void cg_upnp_service_ssdpmessagereceived(CgUpnpService *service, CgUpnpSSDPPacket *ssdpPkt); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/csoap.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/csoap.h new file mode 100644 index 0000000..dc02410 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/csoap.h @@ -0,0 +1,148 @@ +/****************************************************************** +* +* CyberSOAP for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: csoap.h +* +* Revision: +* +* 02/13/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_SOAP_CSOAP_H_ +#define _CG_SOAP_CSOAP_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#define CG_SOAP_VERSION_HEADER "" + +#define CG_HTTP_SOAP_ACTION "SOAPACTION" +#define CG_HTTP_SOAP_URN_DELIM ":" + +#define CG_SOAP_ENVELOPE "Envelope" +#define CG_SOAP_BODY "Body" +#define CG_SOAP_RESPONSE "Response" +#define CG_SOAP_FAULT "Fault" +#define CG_SOAP_FAULT_CODE "faultcode" +#define CG_SOAP_FAULT_STRING "faultstring" +#define CG_SOAP_FAULTACTOR "faultactor" +#define CG_SOAP_DETAIL "detail" + +#define CG_SOAP_ATTRIBUTE_XMLNS "xmlns" + +#define CG_SOAP_XMLNS "s" +#define CG_SOAP_METHODNS "u" +#define CG_SOAP_DELIM ":" + +#define CG_SOAP_XMLNS_URL "http://schemas.xmlsoap.org/soap/envelope/" +#define CG_SOAP_ENCSTYLE_URL "http://schemas.xmlsoap.org/soap/encoding/" + +#define CG_SOAP_CONTENT_TYPE "text/xml; charset=\"utf-8\"" +#define CG_SOAP_ENCORDING "encodingStyle" + +/**************************************** +* Data Type +****************************************/ + +typedef struct _CgSoapResponse { + CgHttpResponse *httpRes; + BOOL isHttpResCreated; + CgXmlNodeList *rootNodeList; + void *userData; +} CgSoapResponse; + +typedef struct _CgSoapRequest{ + CgHttpRequest *httpReq; + BOOL isHttpReqCreated; + CgXmlNode *rootNodeList; + CgSoapResponse *soapRes; + void *userData; +} CgSoapRequest; + +/**************************************** +* Function (Request) +****************************************/ + +CgSoapRequest *cg_soap_request_new(); +void cg_soap_request_delete(CgSoapRequest *soapReq); +void cg_soap_request_clear(CgSoapRequest *soapReq); + +BOOL cg_soap_request_sethttprequest(CgSoapRequest *soapReq, CgHttpRequest *httpReq); +#define cg_soap_request_gethttprequest(soapReq) (soapReq->httpReq) + +#define cg_soap_request_setsoapaction(soapReq, name) cg_http_packet_setheadervalue((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_SOAP_ACTION, name) +#define cg_soap_request_getsoapaction(soapReq) cg_http_packet_getheadervalue((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_SOAP_ACTION) +#define cg_soap_request_getsoapactionwithns(soapReq) cg_http_packet_getheadervalue((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_SOAP_ACTION_WITH_NS) + +BOOL cg_soap_request_parsemessage(CgSoapRequest *soapReq, char *msg, int msgLen); +CgSoapResponse *cg_soap_request_post(CgSoapRequest *soapReq, char *ipaddr, int port); +#define cg_soap_request_getsoapresponse(soapReq) (soapReq->soapRes) + +#define cg_soap_request_getrootnoodelist(soapReq) (soapReq->rootNodeList) +#define cg_soap_request_getrootnoode(soapReq) cg_xml_nodelist_gets(soapReq->rootNodeList) +#define cg_soap_request_getenvelopenode(soapReq) cg_xml_nodelist_gets(soapReq->rootNodeList) +CgXmlNode *cg_soap_request_getbodynode(CgSoapRequest *soapReq); + +void cg_soap_request_setcontent(CgSoapRequest *soapReq, CgXmlNode *node); +#define cg_soap_request_createcontent(soapReq) cg_soap_request_setcontent(soapReq, cg_soap_request_getenvelopenode(soapReq)) + +/**** User Data ****/ +#define cg_soap_request_setuserdata(soapReq, value) (soapReq->userData = value) +#define cg_soap_request_getuserdata(soapReq) (soapReq->userData) + +/**************************************** +* Function (Response) +****************************************/ + +CgSoapResponse *cg_soap_response_new(); +void cg_soap_response_delete(CgSoapResponse *soapRes); +void cg_soap_response_clear(CgSoapResponse *soapRes); + +void cg_soap_response_sethttpresponse(CgSoapResponse *soapRes, CgHttpResponse *httpRes); +#define cg_soap_response_gethttpresponse(soapRes) (soapRes->httpRes) + +#define cg_soap_response_getrootnoodelist(soapRes) (soapRes->rootNodeList); +#define cg_soap_response_getrootnoode(soapRes) cg_xml_nodelist_gets(soapRes->rootNodeList); +#define cg_soap_response_getenvelopenode(soapRes) cg_xml_nodelist_gets(soapRes->rootNodeList); +CgXmlNode *cg_soap_response_getbodynode(CgSoapResponse *soapRes); + +void cg_soap_response_setcontent(CgSoapResponse *soapRes, CgXmlNode *node); +#define cg_soap_response_createcontent(soapRes) cg_soap_response_setcontent(soapRes, cg_soap_response_getenvelopenode(soapRes)) + +#define cg_soap_response_getstatuscode(soapRes) cg_http_response_getstatuscode(soapRes->httpRes) +#define cg_soap_response_issuccessful(soapRes) cg_http_response_issuccessful(soapRes->httpRes) + +/**** User Data ****/ +#define cg_soap_response_setuserdata(soapRes, value) (soapRes->userData = value) +#define cg_soap_response_getuserdata(soapRes) (soapRes->userData) + +/**************************************** +* Function +****************************************/ + +CgXmlNode *cg_soap_createenvelopebodynode(); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/csocket.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/csocket.h new file mode 100644 index 0000000..1bbe9aa --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/csocket.h @@ -0,0 +1,233 @@ +/****************************************************************** +* +* CyberNet for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: csocket.h +* +* Revision: +* +* 01/17/05 +* - first revision +* 04/03/06 Theo Beisch +* - added WSAGetLastError support +* - changed socket_cleanup to return +* value to enable final Winsock close +******************************************************************/ + +#ifndef _CG_NET_CSOCKET_H_ +#define _CG_NET_CSOCKET_H_ + +#include +#include + +#if defined(CG_USE_OPENSSL) +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#define CG_NET_SOCKET_NONE 0 + +#define CG_NET_SOCKET_STREAM 0x01 +#define CG_NET_SOCKET_DGRAM 0x02 + +#define CG_NET_SOCKET_CLIENT 1 +#define CG_NET_SOCKET_SERVER 2 + +#define CG_NET_SOCKET_MAXHOST 32 +#define CG_NET_SOCKET_MAXSERV 32 + +#if defined(BTRON) || defined(TENGINE) +typedef W SOCKET; +#elif defined(ITRON) +typedef ER SOCKET; +#elif !defined(WIN32) && !defined(__CYGWIN__) +typedef int SOCKET; +#endif + +#define CG_SOCKET_LF '\n' + +#define CG_NET_SOCKET_DGRAM_RECV_BUFSIZE 512 +#define CG_NET_SOCKET_DGRAM_ANCILLARY_BUFSIZE 512 +#define CG_NET_SOCKET_MULTICAST_DEFAULT_TTL 4 +#define CG_NET_SOCKET_AUTO_IP_NET 0xa9fe0000 +#define CG_NET_SOCKET_AUTO_IP_MASK 0xffff0000 + +#if defined(ITRON) +#define CG_NET_SOCKET_WINDOW_BUFSIZE 4096 +#endif + +/**************************************** +* Define (SocketList) +****************************************/ + +#if defined(ITRON) +#define CG_NET_USE_SOCKET_LIST 1 +#endif + +/**************************************** +* Data Type +****************************************/ + +#if defined(CG_NET_USE_SOCKET_LIST) +#include +#endif + +typedef struct _CgSocket { +#if defined(CG_NET_USE_SOCKET_LIST) + BOOL headFlag; + struct _CgSocket *prev; + struct _CgSocket *next; +#endif + SOCKET id; + int type; + int direction; + CgString *ipaddr; + int port; +#if defined(ITRON) + UH *sendWinBuf; + UH *recvWinBuf; +#endif +#if defined(CG_USE_OPENSSL) + SSL_CTX* ctx; + SSL* ssl; +#endif +} CgSocket, CgSocketList; + +typedef struct _CgDatagramPacket { + CgString *data; + CgString *localAddress; + int localPort; + CgString *remoteAddress; + int remotePort; +} CgDatagramPacket; + +/**************************************** +* Function (Socket) +****************************************/ + +void cg_socket_startup(); +void cg_socket_cleanup(); + +CgSocket *cg_socket_new(int type); +#define cg_socket_stream_new() cg_socket_new(CG_NET_SOCKET_STREAM) +#define cg_socket_dgram_new() cg_socket_new(CG_NET_SOCKET_DGRAM) +int cg_socket_delete(CgSocket *socket); + +void cg_socket_setid(CgSocket *socket, SOCKET value); +#define cg_socket_getid(socket) (socket->id) + +#define cg_socket_settype(socket, value) (socket->type = value) +#define cg_socket_gettype(socket) (socket->type) +#define cg_socket_issocketstream(socket) ((socket->type & CG_NET_SOCKET_STREAM) ? TRUE : FALSE) +#define cg_socket_isdatagramstream(socket) ((socket->type & CG_NET_SOCKET_DGRAM) ? TRUE : FALSE) + +#define cg_socket_setdirection(socket, value) (socket->direction = value) +#define cg_socket_getdirection(socket) (socket->direction) +#define cg_socket_isclient(socket) ((socket->direction == CG_NET_SOCKET_CLIENT) ? TRUE : FALSE) +#define cg_socket_isserver(socket) ((socket->direction == CG_NET_SOCKET_SERVER) ? TRUE : FALSE) + +#define cg_socket_setaddress(socket, value) cg_string_setvalue(socket->ipaddr, value) +#define cg_socket_setport(socket, value) (socket->port = value) +#define cg_socket_getaddress(socket) cg_string_getvalue(socket->ipaddr) +#define cg_socket_getport(socket) (socket->port) + +BOOL cg_socket_isbound(CgSocket *socket); +BOOL cg_socket_close(CgSocket *socket); + +BOOL cg_socket_listen(CgSocket *socket); + +BOOL cg_socket_bind(CgSocket *sock, int bindPort, char *bindAddr, BOOL bindFlag, BOOL reuseFlag); +BOOL cg_socket_accept(CgSocket *sock, CgSocket *clientSock); +BOOL cg_socket_connect(CgSocket *sock, char *addr, int port); +int cg_socket_read(CgSocket *sock, char *buffer, int bufferLen); +int cg_socket_write(CgSocket *sock, char *buffer, int bufferLen); +int cg_socket_readline(CgSocket *sock, char *buffer, int bufferLen); +long cg_socket_skip(CgSocket *sock, long skipLen); + +int cg_socket_sendto(CgSocket *sock, char *addr, int port, char *data, int dataeLen); +int cg_socket_recv(CgSocket *sock, CgDatagramPacket *dgmPkt); + +int cg_socket_getlasterror(); + +/**************************************** +* Function (Multicast) +****************************************/ + +BOOL cg_socket_joingroup(CgSocket *sock, char *mcastAddr, char *ifAddr); + +/**************************************** +* Function (Option) +****************************************/ + +BOOL cg_socket_setreuseaddress(CgSocket *socket, BOOL flag); +BOOL cg_socket_setmulticastttl(CgSocket *sock, int ttl); +BOOL cg_socket_settimeout(CgSocket *sock, int sec); + +/**************************************** +* Function (DatagramPacket) +****************************************/ + +CgDatagramPacket *cg_socket_datagram_packet_new(); +void cg_socket_datagram_packet_delete(CgDatagramPacket *dgmPkt); + +#define cg_socket_datagram_packet_setdata(dgmPkt, value) cg_string_setvalue(dgmPkt->data, value) +#define cg_socket_datagram_packet_getdata(dgmPkt) cg_string_getvalue(dgmPkt->data) + +#define cg_socket_datagram_packet_setlocaladdress(dgmPkt, addr) cg_string_setvalue(dgmPkt->localAddress, addr) +#define cg_socket_datagram_packet_getlocaladdress(dgmPkt) cg_string_getvalue(dgmPkt->localAddress) +#define cg_socket_datagram_packet_setlocalport(dgmPkt, port) (dgmPkt->localPort = port) +#define cg_socket_datagram_packet_getlocalport(dgmPkt) (dgmPkt->localPort) +#define cg_socket_datagram_packet_setremoteaddress(dgmPkt, addr) cg_string_setvalue(dgmPkt->remoteAddress, addr) +#define cg_socket_datagram_packet_getremoteaddress(dgmPkt) cg_string_getvalue(dgmPkt->remoteAddress) +#define cg_socket_datagram_packet_setremoteport(dgmPkt, port) (dgmPkt->remotePort = port) +#define cg_socket_datagram_packet_getremoteport(dgmPkt) (dgmPkt->remotePort) + +void cg_socket_datagram_packet_copy(CgDatagramPacket *dstDgmPkt, CgDatagramPacket *srcDgmPkt); + +/**************************************** +* Function (SSLSocket) +****************************************/ + +#if defined(CG_USE_OPENSSL) +#define CG_NET_SOCKET_SSL 0x0100 +#define cg_socket_ssl_new() cg_socket_new(CG_NET_SOCKET_STREAM | CG_NET_SOCKET_SSL) +#define cg_socket_isssl(socket) ((socket->type & CG_NET_SOCKET_SSL) ? TRUE : FALSE) +#endif + +/**************************************** +* Function (SocketList) +****************************************/ + +#if defined(CG_NET_USE_SOCKET_LIST) + +#define cg_socket_next(sock) (CgSocket *)cg_list_next((CgList *)sock) + +CgSocketList *cg_socketlist_new(); +void cg_socketlist_delete(CgSocketList *sockList); + +#define cg_socketlist_clear(sockList) cg_list_clear((CgList *)sockList, (CG_LIST_DESTRUCTORFUNC)cg_socket_delete) +#define cg_socketlist_size(sockList) cg_list_size((CgList *)sockList) +#define cg_socketlist_gets(sockList) (CgSocket *)cg_list_next((CgList *)sockList) +#define cg_socketlist_add(sockList, sock) cg_list_add((CgList *)sockList, (CgList *)sock) + +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cssdp.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cssdp.h new file mode 100644 index 0000000..747b873 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cssdp.h @@ -0,0 +1,220 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cssdp.h +* +* Revision: +* +* 02/13/05 +* - first revision +* +* 10/31/05 +* - Added cg_upnp_ssdpresponse_setext and _setserver +* +******************************************************************/ + +#ifndef _CG_UPNP_CSSDP_H_ +#define _CG_UPNP_CSSDP_H_ + +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#define CG_UPNP_SSDP_PORT 1900 + +#define CG_UPNP_SSDP_ADDRESS "239.255.255.250" + +#define CG_UPNP_SSDP_MULTICAST_ADDRESS "239.255.255.250:1900" + +#define CG_AUTO_IP_NET 0xa9fe0000 +#define CG_AUTO_IP_MASK 0xffff0000 + +/* Default time to live specified in UPnP DA spec */ +#define CG_UPNP_SSDP_MULTICAST_DEFAULT_TTL 4 + +#define CG_UPNP_SSDP_IPV6_IF_LOCAL_ADDRESS "FF01::C" +#define CG_UPNP_SSDP_IPV6_LINK_LOCAL_ADDRESS "FF02::C" +#define CG_UPNP_SSDP_IPV6_SUBNET_ADDRESS "FF03::C" +#define CG_UPNP_SSDP_IPV6_ADMINISTRATIVE_ADDRESS "FF04::C" +#define CG_UPNP_SSDP_IPV6_SITE_LOCAL_ADDRESS "FF05::C" +#define CG_UPNP_SSDP_IPV6_GLOBAL_ADDRESS "FF0E::C" + +#define CG_UPNP_SSDP_DEFAULT_MSEARCH_MX 3 +#define CG_UPNP_SSDP_DEFAULT_ANNOUNCE_COUNT 3 + +#define CG_UPNP_SSDP_HEADER_LINE_MAXSIZE 128 + +#define CG_UPNP_SSDP_ST "ST" +#define CG_UPNP_SSDP_MX "MX" +#define CG_UPNP_SSDP_MAN "MAN" +#define CG_UPNP_SSDP_NT "NT" +#define CG_UPNP_SSDP_NTS "NTS" + #define CG_UPNP_SSDP_NTS_ALIVE "ssdp:alive" + #define CG_UPNP_SSDP_NTS_BYEBYE "ssdp:byebye" + #define CG_UPNP_SSDP_NTS_PROPCHANGE "upnp:propchange" +#define CG_UPNP_SSDP_USN "USN" +#define CG_UPNP_SSDP_EXT "EXT" +#define CG_UPNP_SSDP_SID "SID" +#define CG_UPNP_SSDP_SEQ "SEQ" +#define CG_UPNP_SSDP_CALBACK "CALLBACK" +#define CG_UPNP_SSDP_TIMEOUT "TIMEOUT" +#define CG_UPNP_SSDP_SERVER "SERVER" + +#define CG_UPNP_SSDP_FILTER_TABLE_SIZE 101 + +/**************************************** +* Data Type +****************************************/ + +typedef CgHttpResponse CgUpnpSSDPResponse; +typedef CgHttpRequest CgUpnpSSDPRequest; + +typedef CgSocket CgUpnpSSDPSocket; + +/**************************************** +* Function +****************************************/ + +void cg_upnp_ssdp_setipv6address(char *addr); +char *cg_upnp_ssdp_getipv6address(); + +void cg_upnp_ssdp_setannouncecount(int count); +int cg_upnp_ssdp_getannouncecount(); + +int cg_upnp_ssdp_getleasetime(char *cacheCont); + +char *cg_upnp_ssdp_gethostaddress(char *ifAddr); + +/**************************************** +* Function (SSDPRequest) +****************************************/ + +CgUpnpSSDPRequest *cg_upnp_ssdprequest_new(); +void cg_upnp_ssdprequest_delete(CgUpnpSSDPRequest *ssdpReq); + +/**** Method ****/ +#define cg_upnp_ssdprequest_setmethod(ssdpReq,value) cg_http_request_setmethod(ssdpReq,value) +#define cg_upnp_ssdprequest_getmethod(ssdpReq) cg_http_request_getmethod(ssdpReq) + +/**** URI ****/ +#define cg_upnp_ssdprequest_seturi(ssdpReq,value) cg_http_request_seturi(ssdpReq,value) +#define cg_upnp_ssdprequest_geturi(ssdpReq) cg_http_request_geturi(ssdpReq) + +/**** HOST ****/ +#define cg_upnp_ssdprequest_sethost(ssdpReq,addr,port) cg_http_packet_sethost((CgHttpPacket*)ssdpReq, addr, port) +#define cg_upnp_ssdprequest_gethost(ssdpReq) cg_http_packet_gethost((CgHttpPacket*)ssdpReq) + +/**** Server ****/ +#define cg_upnp_ssdprequest_setserver(ssdpReq,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpReq, CG_HTTP_SERVER, value) +#define cg_upnp_ssdprequest_getserver(ssdpReq) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpReq,CG_HTTP_SERVER) + +/**** ST ****/ +#define cg_upnp_ssdprequest_setst(ssdpReq,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpReq, CG_UPNP_SSDP_ST, value) +#define cg_upnp_ssdprequest_getst(ssdpReq) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpReq,CG_UPNP_SSDP_ST) + +/**** NT ****/ +#define cg_upnp_ssdprequest_setnt(ssdpReq,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpReq, CG_UPNP_SSDP_NT, value) +#define cg_upnp_ssdprequest_getnt(ssdpReq) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpReq,CG_UPNP_SSDP_NT) + +/**** NTS ****/ +#define cg_upnp_ssdprequest_setnts(ssdpReq,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpReq, CG_UPNP_SSDP_NTS, value) +#define cg_upnp_ssdprequest_getnts(ssdpReq) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpReq,CG_UPNP_SSDP_NTS) + +/**** Location ****/ +#define cg_upnp_ssdprequest_setlocation(ssdpReq,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpReq, CG_HTTP_LOCATION, value) +#define cg_upnp_ssdprequest_getlocation(ssdpReq) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpReq,CG_HTTP_LOCATION) + +/**** USN ****/ +#define cg_upnp_ssdprequest_setusn(ssdpReq,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpReq, CG_UPNP_SSDP_USN, value) +#define cg_upnp_ssdprequest_getusn(ssdpReq) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpReq,CG_UPNP_SSDP_USN) + +/**** MX ****/ +#define cg_upnp_ssdprequest_setmx(ssdpReq,value) cg_http_packet_setheaderinteger((CgHttpPacket*)ssdpReq, CG_UPNP_SSDP_MX, value) +#define cg_upnp_ssdprequest_getmx(ssdpReq) cg_http_packet_getheaderinteger((CgHttpPacket*)ssdpReq,CG_UPNP_SSDP_MX) + +/**** MAN ****/ +#define cg_upnp_ssdprequest_setman(ssdpReq,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpReq, CG_UPNP_SSDP_MAN, value) +#define cg_upnp_ssdprequest_getman(ssdpReq) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpReq,CG_UPNP_SSDP_MAN) + +/**** CacheControl ****/ +void cg_upnp_ssdprequest_setleasetime(CgUpnpSSDPRequest *ssdpReq, int value); +int cg_upnp_ssdprequest_getleasetime(CgUpnpSSDPRequest *ssdpReq); + +/**** toString ****/ +char *cg_upnp_ssdprequest_tostring(CgUpnpSSDPRequest *ssdpReq, CgString *ssdpMsg); + +/**** Print ****/ +#define cg_upnp_ssdprequest_print(ssdpReq) cg_http_request_print(ssdpReq) + +/**************************************** +* Function (SSDPResponse) +****************************************/ + +CgUpnpSSDPResponse *cg_upnp_ssdpresponse_new(); +void cg_upnp_ssdpresponse_delete(CgUpnpSSDPResponse *ssdpRes); + +/**** ST ****/ +#define cg_upnp_ssdpresponse_setst(ssdpRes,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpRes, CG_UPNP_SSDP_ST, value) +#define cg_upnp_ssdpresponse_getst(ssdpRes) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpRes,CG_UPNP_SSDP_ST) + +/**** EXT ****/ +#define cg_upnp_ssdpresponse_setext(ssdpRes) cg_http_packet_setheadervalue((CgHttpPacket*) ssdpRes, CG_UPNP_SSDP_EXT, "") + +/**** SERVER ****/ +#define cg_upnp_ssdpresponse_setserver(ssdpRes, value) cg_http_packet_setheadervalue((CgHttpPacket*) ssdpRes, CG_UPNP_SSDP_SERVER, value) + +/**** Location ****/ +#define cg_upnp_ssdpresponse_setlocation(ssdpRes,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpRes, CG_HTTP_LOCATION, value) +#define cg_upnp_ssdpresponse_getlocation(ssdpRes) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpRes,CG_HTTP_LOCATION) + +/**** USN ****/ +#define cg_upnp_ssdpresponse_setusn(ssdpRes,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpRes, CG_UPNP_SSDP_USN, value) +#define cg_upnp_ssdpresponse_getusn(ssdpRes) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpRes,CG_UPNP_SSDP_USN) + +/**** CacheControl ****/ +void cg_upnp_ssdpresponse_setleasetime(CgUpnpSSDPResponse *ssdpRes, int value); +int cg_upnp_ssdpresponse_getleasetime(CgUpnpSSDPResponse *ssdpRes); + +/**** Date ****/ +#define cg_upnp_ssdpresponse_setdate(ssdpRes,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpRes, CG_HTTP_DATE, value) +#define cg_upnp_ssdpresponse_getdate(ssdpRes) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpRes,CG_HTTP_DATE) + +/**** toString ****/ +char *cg_upnp_ssdpresponse_tostring(CgUpnpSSDPResponse *ssdpRes, CgString *ssdpMsg); + +/**** Print ****/ +#define cg_upnp_ssdpresponse_print(ssdpReq) cg_http_response_print(ssdpReq) + +/**************************************** +* Function (SSDPSocket) +****************************************/ + +#define cg_upnp_ssdp_socket_new() cg_socket_new(CG_NET_SOCKET_DGRAM) +#define cg_upnp_ssdp_socket_delete(socket) cg_socket_delete(socket) +#define cg_upnp_ssdp_socket_close(socket) cg_socket_close(socket) + +BOOL cg_upnp_ssdp_socket_notifyfrom(CgUpnpSSDPSocket *ssdpSock, CgUpnpSSDPRequest *ssdpReq, char *bindAddr); +BOOL cg_upnp_ssdp_socket_postresponse(CgUpnpSSDPSocket *ssdpSock, CgUpnpSSDPResponse *ssdpReq, char *host, int port); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cssdp_server.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cssdp_server.h new file mode 100644 index 0000000..6eea2c1 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cssdp_server.h @@ -0,0 +1,247 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cssdp_server.h +* +* Revision: +* +* 05/26/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UPNP_CSSDP_SERVER_H_ +#define _CG_UPNP_CSSDP_SERVER_H_ + +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +/**************************************** +* Data Type +****************************************/ + +typedef CgSocket CgUpnpHttpMuSocket; +typedef CgSocket CgUpnpHttpUSocket; + +typedef struct _CgUpnpSSDPPacket { + CgDatagramPacket *dgmPkt; + CgHttpHeaderList *headerList; + void *userData; + CgSysTime timeStamp; + + /* These are used when filtering out duplicate + * M-SEARCHes + */ + CgSysTime *timestamps; + int initialized; +} CgUpnpSSDPPacket; + +typedef void (*CG_UPNP_SSDP_LISTNER)(CgUpnpSSDPPacket *); + +typedef struct _CgUpnpSSDPServer { + BOOL headFlag; + struct _CgUpnpSSDPServer *prev; + struct _CgUpnpSSDPServer *next; + CgUpnpHttpMuSocket *httpmuSock; + CgThread *recvThread; + CG_UPNP_SSDP_LISTNER listener; + void *userData; +} CgUpnpSSDPServer, CgUpnpSSDPServerList; + +typedef void (*CG_UPNP_SSDP_RESPONSE_LISTNER)(CgUpnpSSDPPacket *); + +typedef struct _CgUpnpSSDPResponseServer { + BOOL headFlag; + struct _CgUpnpSSDPServer *prev; + struct _CgUpnpSSDPServer *next; + CgUpnpHttpUSocket *httpuSock; + CgThread *recvThread; + CG_UPNP_SSDP_RESPONSE_LISTNER listener; + void *userData; +} CgUpnpSSDPResponseServer, CgUpnpSSDPResponseServerList; + +/**************************************** +* Function (HTTPMU) +****************************************/ + +#define cg_upnp_httpmu_socket_new() cg_socket_dgram_new() +#define cg_upnp_httpmu_socket_delete(sock) cg_socket_delete(sock) +#define cg_upnp_httpmu_socket_close(sock) cg_socket_close(sock) + +BOOL cg_upnp_httpmu_socket_bind(CgUpnpHttpMuSocket *sock, char *mcastAddr, int port, char *bindAddr); +int cg_upnp_httpmu_socket_recv(CgUpnpHttpMuSocket *sock, CgUpnpSSDPPacket *ssdpPkt); + +/**************************************** +* Function (HTTPU) +****************************************/ + +#define cg_upnp_httpu_socket_new() cg_socket_dgram_new() +#define cg_upnp_httpu_socket_delete(sock) cg_socket_delete(sock) +#define cg_upnp_httpu_socket_close(sock) cg_socket_close(sock) +#define cg_upnp_httpu_socket_new() cg_socket_dgram_new() +#define cg_upnp_httpu_socket_bind(sock, bindPort, bindAddr) cg_socket_bind(sock, bindPort, bindAddr, FALSE, FALSE) +int cg_upnp_httpu_socket_recv(CgUpnpHttpUSocket *sock, CgUpnpSSDPPacket *ssdpPkt); + +/**************************************** +* Function (SSDPPacket) +****************************************/ + +CgUpnpSSDPPacket *cg_upnp_ssdp_packet_new(); +void cg_upnp_ssdp_packet_delete(CgUpnpSSDPPacket *ssdpPkt); +void cg_upnp_ssdp_packet_clear(CgUpnpSSDPPacket *ssdpPkt); + +#define cg_upnp_ssdp_packet_setdatagrampacket(ssdpPkt, value) (ssdpPkt->dgmPkt = value) +#define cg_upnp_ssdp_packet_getdatagrampacket(ssdpPkt) (ssdpPkt->dgmPkt) +#define cg_upnp_ssdp_packet_setdata(ssdpPkt, value) cg_string_setvalue(ssdpPkt->dgmPkt->data, value) +#define cg_upnp_ssdp_packet_getdata(ssdpPkt) cg_string_getvalue(ssdpPkt->dgmPkt->data) +#define cg_upnp_ssdp_packet_setuserdata(ssdpPkt, data) (ssdpPkt->userData = data) +#define cg_upnp_ssdp_packet_getuserdata(ssdpPkt) (ssdpPkt->userData) +#define cg_upnp_ssdp_packet_settimestamp(ssdpPkt, value) (ssdpPkt->timeStamp = value) +#define cg_upnp_ssdp_packet_gettimestamp(ssdpPkt) (ssdpPkt->timeStamp) +#define cg_upnp_ssdp_packet_getexpiration(ssdpPkt) (cg_upnp_ssdp_packet_getmaxage(ssdpPkt) == 0 ? 0 : cg_upnp_ssdp_packet_gettimestamp(ssdpPkt) + cg_upnp_ssdp_packet_getmaxage(ssdpPkt)) + +void cg_upnp_ssdp_packet_setheader(CgUpnpSSDPPacket *ssdpPkt, char *ssdpMsg); +#define cg_upnp_ssdp_packet_addheader(ssdpPkt, header) cg_http_headerlist_add(ssdpPkt->headerList, header) +#define cg_upnp_ssdp_packet_getheaders(ssdpPkt) cg_http_headerlist_gets(ssdpPkt->headerList) + +#define cg_upnp_ssdp_packet_gethost(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_HOST) +#define cg_upnp_ssdp_packet_getserver(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_SERVER) +#define cg_upnp_ssdp_packet_getcachecontrol(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_CACHE_CONTROL) +#define cg_upnp_ssdp_packet_getdate(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_DATE) +#define cg_upnp_ssdp_packet_getext(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_EXT) +#define cg_upnp_ssdp_packet_getlocation(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_LOCATION) +#define cg_upnp_ssdp_packet_getst(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_ST) +#define cg_upnp_ssdp_packet_getusn(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_USN) +#define cg_upnp_ssdp_packet_getmx(ssdpPkt) cg_str2int(cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_MX)) +#define cg_upnp_ssdp_packet_getman(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_MAN) +#define cg_upnp_ssdp_packet_getnt(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_NT) +#define cg_upnp_ssdp_packet_getnts(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_NTS) +long cg_upnp_ssdp_packet_getmaxage(CgUpnpSSDPPacket *ssdpPkt); + +#define cg_upnp_ssdp_packet_isdiscover(ssdpPkt) cg_upnp_man_isdiscover(cg_upnp_ssdp_packet_getman(ssdpPkt)) +#define cg_upnp_ssdp_packet_isalive(ssdpPkt) cg_upnp_nts_isalive(cg_upnp_ssdp_packet_getnts(ssdpPkt)) +#define cg_upnp_ssdp_packet_isbyebye(ssdpPkt) cg_upnp_nts_isbyebye(cg_upnp_ssdp_packet_getnts(ssdpPkt)) + +BOOL cg_upnp_ssdp_packet_isrootdevice(CgUpnpSSDPPacket *ssdpPkt); + +#define cg_upnp_ssdp_packet_getlocaladdress(ssdpPkt) cg_socket_datagram_packet_getlocaladdress(ssdpPkt->dgmPkt) +#define cg_upnp_ssdp_packet_getlocalport(ssdpPkt) cg_socket_datagram_packet_getlocalport(ssdpPkt->dgmPkt) +#define cg_upnp_ssdp_packet_getremoteaddress(ssdpPkt) cg_socket_datagram_packet_getremoteaddress(ssdpPkt->dgmPkt) +#define cg_upnp_ssdp_packet_getremoteport(ssdpPkt) cg_socket_datagram_packet_getremoteport(ssdpPkt->dgmPkt) + +void cg_upnp_ssdp_packet_copy(CgUpnpSSDPPacket *destSsdpPkt, CgUpnpSSDPPacket *srcSsdpPkt); +void cg_upnp_ssdp_packet_print(CgUpnpSSDPPacket *ssdpPkt); + +/**************************************** +* Function (SSDPServer) +****************************************/ + +CgUpnpSSDPServer *cg_upnp_ssdp_server_new(); +void cg_upnp_ssdp_server_delete(CgUpnpSSDPServer *server); + +#define cg_upnp_ssdp_server_next(server) (CgUpnpSSDPServer *)cg_list_next((CgList *)server) + +BOOL cg_upnp_ssdp_server_open(CgUpnpSSDPServer *server, char *bindAddr); +BOOL cg_upnp_ssdp_server_close(CgUpnpSSDPServer *server); + +#define cg_upnp_ssdp_server_isopened(server) ((server->httpmuSock != NULL) ? TRUE : FALSE) +#define cg_upnp_ssdp_server_getsocket(server) (server->httpmuSock) + +#define cg_upnp_ssdp_server_setlistener(server, func) (server->listener = func) +#define cg_upnp_ssdp_server_getlistener(server) (server->listener) +void cg_upnp_ssdp_server_performlistener(CgUpnpSSDPServer *server, CgUpnpSSDPPacket *ssdpPkt); + +#define cg_upnp_ssdp_server_setuserdata(server, data) (server->userData = data) +#define cg_upnp_ssdp_server_getuserdata(server) (server->userData) + +BOOL cg_upnp_ssdp_server_start(CgUpnpSSDPServer *server); +BOOL cg_upnp_ssdp_server_stop(CgUpnpSSDPServer *server); + +/**************************************** +* Function (SSDPServerList) +****************************************/ + +CgUpnpSSDPServerList *cg_upnp_ssdp_serverlist_new(); +void cg_upnp_ssdp_serverlist_delete(CgUpnpSSDPServerList *serverList); + +#define cg_upnp_ssdp_serverlist_clear(serverList) cg_list_clear((CgList *)serverList, (CG_LIST_DESTRUCTORFUNC)cg_upnp_ssdp_server_delete) +#define cg_upnp_ssdp_serverlist_size(serverList) cg_list_size((CgList *)serverList) +#define cg_upnp_ssdp_serverlist_gets(serverList) (CgUpnpSSDPServer *)cg_list_next((CgList *)serverList) +#define cg_upnp_ssdp_serverlist_add(serverList, server) cg_list_add((CgList *)serverList, (CgList *)server) + +BOOL cg_upnp_ssdp_serverlist_open(CgUpnpSSDPServerList *ssdpServerList); +BOOL cg_upnp_ssdp_serverlist_close(CgUpnpSSDPServerList *ssdpServerList); +BOOL cg_upnp_ssdp_serverlist_start(CgUpnpSSDPServerList *ssdpServerList); +BOOL cg_upnp_ssdp_serverlist_stop(CgUpnpSSDPServerList *ssdpServerList); +void cg_upnp_ssdp_serverlist_setlistener(CgUpnpSSDPServerList *ssdpServerList, CG_UPNP_SSDP_LISTNER listener); +void cg_upnp_ssdp_serverlist_setuserdata(CgUpnpSSDPServerList *ssdpServerList, void *data); + +/**************************************** +* Function (SSDPResponseServer) +****************************************/ + +CgUpnpSSDPResponseServer *cg_upnp_ssdpresponse_server_new(); +void cg_upnp_ssdpresponse_server_delete(CgUpnpSSDPResponseServer *server); + +#define cg_upnp_ssdpresponse_server_next(server) (CgUpnpSSDPResponseServer *)cg_list_next((CgList *)server) + +BOOL cg_upnp_ssdpresponse_server_open(CgUpnpSSDPResponseServer *server, int bindPort, char *bindAddr); +BOOL cg_upnp_ssdpresponse_server_close(CgUpnpSSDPResponseServer *server); + +#define cg_upnp_ssdpresponse_server_isopened(server) ((server->httpuSock != NULL) ? TRUE : FALSE) +#define cg_upnp_ssdpresponse_server_getsocket(server) (server->httpuSock) + +#define cg_upnp_ssdpresponse_server_setlistener(server, func) (server->listener = func) +#define cg_upnp_ssdpresponse_server_getlistener(server) (server->listener) +void cg_upnp_ssdpresponse_server_performlistener(CgUpnpSSDPResponseServer *server, CgUpnpSSDPPacket *ssdpPkt); + +#define cg_upnp_ssdpresponse_server_setuserdata(server, data) (server->userData = data) +#define cg_upnp_ssdpresponse_server_getuserdata(server) (server->userData) + +BOOL cg_upnp_ssdpresponse_server_start(CgUpnpSSDPResponseServer *server); +BOOL cg_upnp_ssdpresponse_server_stop(CgUpnpSSDPResponseServer *server); + +BOOL cg_upnp_ssdpresponse_server_post(CgUpnpSSDPResponseServer *server, CgUpnpSSDPRequest *ssdpReq); + +/**************************************** +* Function (SSDPResponseServerList) +****************************************/ + +CgUpnpSSDPResponseServerList *cg_upnp_ssdpresponse_serverlist_new(); +void cg_upnp_ssdpresponse_serverlist_delete(CgUpnpSSDPResponseServerList *serverList); + +#define cg_upnp_ssdpresponse_serverlist_clear(serverList) cg_list_clear((CgList *)serverList, (CG_LIST_DESTRUCTORFUNC)cg_upnp_ssdpresponse_server_delete) +#define cg_upnp_ssdpresponse_serverlist_size(serverList) cg_list_size((CgList *)serverList) +#define cg_upnp_ssdpresponse_serverlist_gets(serverList) (CgUpnpSSDPResponseServer *)cg_list_next((CgList *)serverList) +#define cg_upnp_ssdpresponse_serverlist_add(serverList, server) cg_list_add((CgList *)serverList, (CgList *)server) + +BOOL cg_upnp_ssdpresponse_serverlist_open(CgUpnpSSDPResponseServerList *ssdpServerList, int bindPort); +BOOL cg_upnp_ssdpresponse_serverlist_close(CgUpnpSSDPResponseServerList *ssdpServerList); +BOOL cg_upnp_ssdpresponse_serverlist_start(CgUpnpSSDPResponseServerList *ssdpServerList); +BOOL cg_upnp_ssdpresponse_serverlist_stop(CgUpnpSSDPResponseServerList *ssdpServerList); +void cg_upnp_ssdpresponse_serverlist_setlistener(CgUpnpSSDPResponseServerList *ssdpServerList, CG_UPNP_SSDP_LISTNER listener); +void cg_upnp_ssdpresponse_serverlist_setuserdata(CgUpnpSSDPResponseServerList *ssdpServerList, void *data); +BOOL cg_upnp_ssdpresponse_serverlist_post(CgUpnpSSDPResponseServerList *ssdpServerList, CgUpnpSSDPRequest *ssdpReq); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cstatevariable.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cstatevariable.h new file mode 100644 index 0000000..800966e --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cstatevariable.h @@ -0,0 +1,473 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cstatevariable.h +* +* Revision: +* +* 02/23/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UPNP_CSTATEVARIABLE_H_ +#define _CG_UPNP_CSTATEVARIABLE_H_ + +#include +#include +#include +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +/** + * Definition for state variable XML element name + */ +#define CG_UPNP_STATEVARIABLE_ELEM_NAME "stateVariable" + +/** + * Definition for service state table XML element name + */ +#define CG_UPNP_SERVICESTATETALBE_ELEM_NAME "serviceStateTable" + +/** + * Definition for state variable name element + */ +#define CG_UPNP_STATEVARIABLE_NAME "name" + +/** + * Definition for state variable data type element + */ +#define CG_UPNP_STATEVARIABLE_DATATYPE "dataType" + +/** + * Definition for state variable send events element name + */ +#define CG_UPNP_STATEVARIABLE_SENDEVENTS "sendEvents" + +/** + * Definition for state variable send events element value + */ +#define CG_UPNP_STATEVARIABLE_SENDEVENTS_YES "yes" + +/** + * Definition for state variable send events element value + */ +#define CG_UPNP_STATEVARIABLE_SENDEVENTS_NO "no" + +/** + * Definition for state variable allowed values list + */ +#define CG_UPNP_STATEVARIABLE_ALLOWEDVALUELIST "allowedValueList" + + +/**************************************** +* Data Type +****************************************/ + +/** + * Data type for allowed state variables allowed values table + */ +typedef struct _CgUpnpAllowedValuesList { + BOOL headFlag; + struct _CgUpnpAllowedValuesList *prev; + struct _CgUpnpAllowedValuesList *next; + CgString *value; +} CgUpnpAllowedValuesList, CgUpnpAllowedValue; + + +/** + * Data type for state variable and state table + */ +typedef struct _CgUpnpStateVariable { + BOOL headFlag; + struct _CgUpnpStateVariable *prev; + struct _CgUpnpStateVariable *next; + CgUpnpAllowedValuesList* allowedValueList; + //tb: fixmelater verify type CgUpnpService* ??? + void *parentService; + CgXmlNode *stateVarNode; + /* Dummy pointers to maintain ABI, Please remove during the + * appropriate development stage */ + void *dummy1; + void *dummy2; + /**** Execution Data ****/ + CgString *value; + BOOL (*listener)(struct _CgUpnpStateVariable *); + CgUpnpStatus *upnpStatus; + void *userData; + +} CgUpnpStateVariable, CgUpnpServiceStateTable; + + +/** + * Type definition for state variable listener function + */ +typedef BOOL (*CG_UPNP_STATEVARIABLE_LISTNER)(CgUpnpStateVariable *); + +/**************************************** +* Function (StateVariable) +****************************************/ + +/** + * Create new state variable object + */ +CgUpnpStateVariable *cg_upnp_statevariable_new(); + +/** + * Delete state variable object + * + * @param statVar state variable + */ +void cg_upnp_statevariable_delete(CgUpnpStateVariable *statVar); + +/** + * Get next element from state variable list + * + * @param statVar state variable list node + */ +#define cg_upnp_statevariable_next(statVar) (CgUpnpStateVariable *)cg_list_next((CgList *)statVar) + +/** + * Check if XML node is state variable node + * + * @param node XML node + */ +#define cg_upnp_statevariable_isstatevariablenode(node) cg_xml_node_isname(node, CG_UPNP_STATEVARIABLE_ELEM_NAME) + +/**** XML Node ****/ + +/** + * Set XML node for this state variable + * + * @param statVar State variable + * @param node XML node + */ +void cg_upnp_statevariable_setstatevariablenode(CgUpnpStateVariable *statVar, CgXmlNode *node); + +/** + * Get XML node from this state variable + * + * @param statVar State variable + */ +#define cg_upnp_statevariable_getstatevariablenode(statVar) (statVar->stateVarNode) + +/**** Service ****/ + +/** + * Set service for this state variable + * + * @param statVar State variable + * @param service Service + */ +#define cg_upnp_statevariable_setservice(statVar, service) (statVar->parentService = service) + +/** + * Get service from state variable + * + * @param statVar State variable + * + * @return UPnP service + */ +#define cg_upnp_statevariable_getservice(statVar) ((CgUpnpService *)statVar->parentService) + +/**** allowedValueList ****/ + +/** + * Get allowed value list + * + * @param statVar State variable + * + * @return Allowed value list + */ +CgUpnpAllowedValuesList* cg_upnp_statevariable_getallowedvaluelist(CgUpnpStateVariable* statVar); + +/** + * Check if state variable has allowed value list + * + * @param statVar State variable + * + * @return 0 if it does not have allowed value list integer greater than zero otherwise + */ +#define cg_upnp_statevariable_hasallowedvaluelist(statVar) cg_upnp_allowedvaluelist_size(statVar->allowedValueList) + +/** + * Check if state variable allowes to receive value + * + * @parap value value to be checked + * @param statVar State variable + * + * @return 0 if it does allowed to receive value +*/ +int cg_upnp_statevariable_is_allowed_value(CgUpnpStateVariable* statVar, const char* value); + + +/** + * Create new allowed state variable values list + */ +CgUpnpAllowedValuesList* cg_upnp_allowedvaluelist_new(); + +/**** allowedValueRange ****/ + +/** + * Get allowed value range for state variable + * + * @param statVar State variable + * + * @return Allowed value range + */ +#define cg_upnp_statevariable_getallowedvaluerange(statVar) (statVar->allowedValueRange) + +/** + * Checks if state variable has allowed variable range + * + * @param statVar State variable + * + * @return True if allowed value range exists, false otherwise + */ +#define cg_upnp_statevariable_hasallowedvaluerange(statVar) ((statVar->allowedValueRange != NULL) ? TRUE : FALSE) + +/**** name ****/ + +/** + * Set state variable name + * + * @param statVar State variable + * @param value New state variable name + */ +#define cg_upnp_statevariable_setname(statVar, value) cg_xml_node_setchildnode(cg_upnp_statevariable_getstatevariablenode(statVar), CG_UPNP_STATEVARIABLE_NAME, value) + +/** + * Get state variable name + * + * @param statVar State variable + * + * @return State variable name + */ +#define cg_upnp_statevariable_getname(statVar) cg_xml_node_getchildnodevalue(cg_upnp_statevariable_getstatevariablenode(statVar), CG_UPNP_STATEVARIABLE_NAME) + +/** + * Checks if state variable has certain name + * + * @param statVar State variable + * @param name Name to be checked + * + * @return True if State variable name is same as provided, false otherwise + */ +#define cg_upnp_statevariable_isname(statVar, name) cg_streq(cg_upnp_statevariable_getname(statVar), name) + +/**** dataType ****/ + +/** + * Set data type for state variable + * + * @param statVar State variable + * @param value Data type + */ +#define cg_upnp_statevariable_setdatatype(statVar, value) cg_xml_node_setchildnode(cg_upnp_statevariable_getstatevariablenode(statVar), CG_UPNP_STATEVARIABLE_DATATYPE, value) + +/** + * Get data type from state variable + * + * @param statVar State variable + * + * @return Data type + */ +#define cg_upnp_statevariable_getdatatype(statVar) cg_xml_node_getchildnodevalue(cg_upnp_statevariable_getstatevariablenode(statVar), CG_UPNP_STATEVARIABLE_DATATYPE) + +/**** sendEvents ****/ + +/** + * Set send events option for state variable, can be used to disable eventing + * for certain variables. + * + * @param statVar State variable + * @param value New value + */ +#define cg_upnp_statevariable_setsendevents(statVar, value) cg_xml_node_setattribute(cg_upnp_statevariable_getstatevariablenode(statVar), CG_UPNP_STATEVARIABLE_SENDEVENTS, value) + +/** + * Get state variable event sending option value + * + * @param statVar State variable + * + * @return Current value associated to state variable + */ +#define cg_upnp_statevariable_getsendevents(statVar) cg_xml_node_getattributevalue(cg_upnp_statevariable_getstatevariablenode(statVar), CG_UPNP_STATEVARIABLE_SENDEVENTS) + +/** + * Check if events are sent to subscribers when this state variable changes + * + * @param statVar State variable + * + * @return True if events are sent, false otherwise + */ +#define cg_upnp_statevariable_issendevents(statVar) (cg_streq(cg_upnp_statevariable_getsendevents(statVar), CG_UPNP_STATEVARIABLE_SENDEVENTS_YES)) + +/**************************************** +* Function (StateVariable - Execution Data) +****************************************/ + +/**** value ****/ + +/** + * Set state variable value + * + * @param statVar State variable + * @param data New value associated with this state variable, and the value is send to other devices which subscribe the service. + */ +void cg_upnp_statevariable_setvalue(CgUpnpStateVariable *statVar, char *data); + +/** + * Set state variable value + * + * @param statVar State variable + * @param data New value associated with this state variable + */ +void cg_upnp_statevariable_setvaluewithoutnotify(CgUpnpStateVariable *statVar, char *data); + +/** + * Get value associated with this state variable + * + * @param statVar State variable + * + * @return Value associated with this state variable + */ +#define cg_upnp_statevariable_getvalue(statVar) cg_string_getvalue(statVar->value) + +/*** listener ****/ + +/** + * Set listener callback for this state variable + * + * @param statVar State variable + * @param func Listener function + */ +#define cg_upnp_statevariable_setlistener(statVar, func) (statVar->listener = func) + +/** + * Get lister function associated with state variable + * + * @param statVar State variable + */ +#define cg_upnp_statevariable_getlistener(statVar) (statVar->listener) + +/**** UPnPStatus ****/ + +/** + * Set status code for state variable + * + * @param statVar State variable + * @param code Status code + */ +#define cg_upnp_statevariable_setstatuscode(statVar, code) cg_upnp_status_setcode(statVar->upnpStatus, code) + +/** + * Get status code of this state variable + * + * @param statVar Status variable + */ +#define cg_upnp_statevariable_getstatuscode(statVar) cg_upnp_status_getcode(statVar->upnpStatus) + +/** + * Set status description for state variable + * + * @param statVar State variable + * @param value Status description + */ +#define cg_upnp_statevariable_setstatusdescription(statVar, value) cg_upnp_status_setdescription(statVar->upnpStatus, value) + +/** + * Get status description from this state variable + * + * @param statVar State variable + */ +#define cg_upnp_statevariable_getstatusdescription(statVar) cg_upnp_status_getdescription(statVar->upnpStatus) + +/**** User Data****/ + +/** + * Set arbitrary user data associated with this state variable + * + * @param statVar State variable + * @param value Data + */ +#define cg_upnp_statevariable_setuserdata(statVar, value) (statVar->userData = value) + +/** + * Get user data from this state variable + * + * @param statVar State variable + * + * @return User data + */ +#define cg_upnp_statevariable_getuserdata(statVar) (statVar->userData) + +/**************************************** +* Function (ServiceStateTable) +****************************************/ + +/** + * Create service state table object + */ +CgUpnpServiceStateTable *cg_upnp_servicestatetable_new(); + +/** + * Delete service state table object + * + * @param servicestatetable Service state table + */ +void cg_upnp_servicestatetable_delete(CgUpnpServiceStateTable *servicestatetable); + +/** + * Clear service state table + * + * @param stateTable Service state table + */ +#define cg_upnp_servicestatetable_clear(stateTable) cg_list_clear((CgList *)stateTable, (CG_LIST_DESTRUCTORFUNC)cg_upnp_statevariable_delete) + +/** + * Get size of service state table + * + * @param stateTable Service state table + */ +#define cg_upnp_servicestatetable_size(stateTable) cg_list_size((CgList *)stateTable) + +/** + * Get next service state table from service state table list + * + * @param stateTable Service state table + * + * @return Service state table (node) + */ +#define cg_upnp_servicestatetable_gets(stateTable) (CgUpnpStateVariable *)cg_list_next((CgList *)stateTable) + +/** + * Add new service state table into service state table list + * + * @param stateTable Service state table + * @param statVar State variable + */ +#define cg_upnp_servicestatetable_add(stateTable, statVar) cg_list_add((CgList *)stateTable, (CgList *)statVar) + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cstring.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cstring.h new file mode 100644 index 0000000..f4cdb24 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cstring.h @@ -0,0 +1,172 @@ +/****************************************************************** +* +* CyberUtil for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cstring.h +* +* Revision: +* +* 01/25/05 +* - first revision +* 03/01/06 Theo Beisch +* - introduced LONGLONG macro +* - added cg_strtrimwhite() to trim all +* leading and trailing non-printable chars +* +******************************************************************/ + +#ifndef _CG_UTIL_CSTRING_H_ +#define _CG_UTIL_CSTRING_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#define CG_STRING_MEMORY_ALLOCATION_UNIT 64 + +/* UINT_MAX : 4294967295U */ +#define CG_STRING_INTEGER_BUFLEN 16 + + /* ULONG_MAX : 4294967295UL */ +#define CG_STRING_LONG_BUFLEN 32 + + /* ULLONG_MAX : 18446744073709551615ULL */ +#define CG_STRING_LONGLONG_BUFLEN 32 + +#define CG_STRING_FLOAT_BUFLEN 64 +#define CG_STRING_DOUBLE_BUFLEN 64 + +/**************************************** +* Function +****************************************/ + +char *cg_strdup(char *str); +int cg_strlen(char *str); +char *cg_strcpy(char *dest, char *src); +char *cg_strcat(char *dest, char *src); +int cg_strcmp(char *str1, char *str2); +int cg_strncmp(char *str1, char *str2, int nchars); +int cg_strcasecmp(char *str1, char *str2); +BOOL cg_streq(char *str1, char *str2); +BOOL cg_strcaseeq(char *str1, char *str2); +int cg_strchr(char *str, char *chars, int nchars); +int cg_strrchr(char *str, char *chars, int nchars); +int cg_strstr(char *haystack, char *needle); +char *cg_strtrimwhite(char *str); +char *cg_strtrim(char *str, char *delim, int ndelim); +char *cg_strltrim(char *str, char *delim, int ndelim); +char *cg_strrtrim(char *str, char *delim, int ndelim); +char *cg_int2str(int value, char *buf, int bufSize); +char *cg_long2str(long value, char *buf, int bufSize); +char *cg_float2str(float value, char *buf, int bufSize); +char *cg_double2str(double value, char *buf, int bufSize); +char *cg_strncpy(char *str1, char *str2, size_t cnt); +char *cg_strncat(char *str1, char *str2, size_t cnt); + +#if defined(CG_USE_INT64) +char *cg_longlong2str(CgInt64 value, char *buf, int bufSize); +#endif + +#define cg_str2int(value) (value ? atoi(value) : 0) +#define cg_str2long(value) (value ? atol(value) : 0) +#define cg_strhex2long(value) (value ? strtol(value, NULL, 16) : 0) +#define cg_strhex2ulong(value) (value ? strtoul(value, NULL, 16) : 0) +#define cg_str2float(value) ((float)(value ? atof(value) : 0.0)) +#define cg_str2double(value) (value ? atof(value) : 0.0) + +#if defined(CG_USE_INT64) +#if defined(__USE_ISOC99) || defined(HAVE_LONGLONG) +#define cg_str2longlong(value) (value ? atoll(value) : 0) +#define cg_strhex2longlong(value) (value ? strtoll(value, NULL, 16) : 0) +#define cg_strhex2ulonglong(value) (value ? strtoull(value, NULL, 16) : 0) +#elif (defined(WIN32) || defined(WINCE)) +#define cg_str2longlong(value) (value ? _atoi64(value) : 0) +#endif +#endif + +/**************************************** +* Data Type +****************************************/ + +typedef struct _CgString { + char *value; + int memSize; + int valueSize; +} CgString; + +typedef struct _CgStringTokenizer { + char *value; + char *delim; + int delimCnt; + int nextStartPos; + int lastPos; + char *currToken; + char *nextToken; + char repToken; + BOOL hasNextTokens; +} CgStringTokenizer; + +/**************************************** +* Function (StringTokenizer) +****************************************/ + +CgStringTokenizer *cg_string_tokenizer_new(char *str, char *delim); +void cg_string_tokenizer_delete(CgStringTokenizer *strToken); +BOOL cg_string_tokenizer_hasmoretoken(CgStringTokenizer *strToken); +char *cg_string_tokenizer_nexttoken(CgStringTokenizer *strToken); +char *cg_string_tokenizer_nextalltoken(CgStringTokenizer *strToken); + +void cg_string_tokenizer_print(CgStringTokenizer *strToken); + +/**************************************** +* Function (String) +****************************************/ + +CgString *cg_string_new(); +void cg_string_delete(CgString *str); +void cg_string_clear(CgString *str); + +void cg_string_setvalue(CgString *str, char *value); +void cg_string_setintvalue(CgString *str, int value); +void cg_string_setlongvalue(CgString *str, long value); +void cg_string_setfloatvalue(CgString *str, float value); +void cg_string_setdoublevalue(CgString *str, double value); +void cg_string_setnvalue(CgString *str, char *value, int len); +void cg_string_setpointervalue(CgString *str, char *value, int len); + +char *cg_string_getvalue(CgString *str); +#define cg_string_getintvalue(str) cg_str2int(cg_string_getvalue(str)) +#define cg_string_getlongvalue(str) cg_str2long(cg_string_getvalue(str)) +#define cg_string_getfloatvalue(str) cg_str2float(cg_string_getvalue(str)) +#define cg_string_getdoublevalue(str) cg_str2double(cg_string_getvalue(str)) + +int cg_string_length(CgString *str); + +char *cg_string_addvalue(CgString *str, char *value); +char *cg_string_naddvalue(CgString *str, char *value, int valueLen); +char *cg_string_addrepvalue(CgString *str, char *value, int repeatCnt); +char *cg_string_naddrepvalue(CgString *str, char *value, int valueLen, int repeatCnt); + +char *cg_string_replace(CgString *str, char *fromStr[], char *toStr[], int fromStrCnt); + +int cg_string_getmemorysize(CgString *str); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/csubscriber.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/csubscriber.h new file mode 100644 index 0000000..29856d5 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/csubscriber.h @@ -0,0 +1,311 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: csubscriber.h +* +* Revision: +* +* 06/21/05 +* - first revision +* +* 12-Jan-06 Heikki Junnila +* - Added API comments +* 04/05/06 +* - changed timing values to type CgSysTime +* - added cg_upnp_subscriberlist_get(CgUpnpSubscriberList *subscriberList, char *sid) +******************************************************************/ + +#ifndef _CG_UPNP_CSUBSCRIBER_H_ +#define _CG_UPNP_CSUBSCRIBER_H_ + +#include + +#include +#include +#include +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +/**************************************** +* Data Type +****************************************/ + +/** + * The device-side structure for an event subscriber + */ +typedef struct _CgUpnpSubscriber { + BOOL headFlag; + struct _CgUpnpSubscriber *prev; + struct _CgUpnpSubscriber *next; + + CgString *sid; + CgString *ifAddr; + CgNetURL *deliveryURL; + + CgSysTime timeout; + long notifyCount; + CgSysTime subscriptionTime; +} CgUpnpSubscriber, CgUpnpSubscriberList; + +/**************************************** +* Function (Subscriber) +****************************************/ + +/** + * Create a new event subscriber + */ +CgUpnpSubscriber *cg_upnp_subscriber_new(); + +/** + * Destroy an event subscriber + * + * @param sub The event subscriber + */ +void cg_upnp_subscriber_delete(CgUpnpSubscriber *sub); + +/** + * Clear the contents of an event subscriber + * + * @todo Lacks implementation (is it necessary?) + * + * @param sub The event subscriber + */ +void cg_upnp_subscriber_clear(CgUpnpSubscriber *sub); + +/** + * Renew a subscription. Essentially sets subscription time (duration) + * to zero and resets notify count (== event key). + * + * @param sub The event subscriber + */ +void cg_upnp_subscriber_renew(CgUpnpSubscriber *sub); + +/** + * Get the next subscriber in a subscriber list. Use as an iterator. + * + * @param sub The current event subscriber + * @return Next subscriber or NULL + */ +#define cg_upnp_subscriber_next(sub) (CgUpnpSubscriber *)cg_list_next((CgList *)sub) + +/** + * Remove the event subscriber from a subscriber list. + * + * @param sub The event subscriber to remove + */ +#define cg_upnp_subscriber_remove(sub) cg_list_remove((CgList *)sub) + +/**************************************************************************** + * sid + ****************************************************************************/ + +/** + * Set the subscriber's SID (Subscription IDentifier) value + * + * @param sub The event subscriber + * @param value The SID value + */ +#define cg_upnp_subscriber_setsid(sub, value) cg_string_setvalue(sub->sid, value) + +/** + * Get the subscriber's SID (Subscription IDentifier) value + * + * @param sub The current event subscriber + * @return Subscriber's SID + */ +#define cg_upnp_subscriber_getsid(sub) cg_string_getvalue(sub->sid) + +/**************************************************************************** + * timeout + ****************************************************************************/ + +/** + * Set the subscription timeout (expiration time) to a certain value. + * + * @param sub The event subscriber + * @param value Timeout + */ +#define cg_upnp_subscriber_settimeout(sub, value) (sub->timeout = value) + +/** + * Get the subscription timeout (expiration time) + * + * @param sub The event subscriber + * @return Timeout + */ +#define cg_upnp_subscriber_gettimeout(sub) (sub->timeout) + +/**************************************************************************** + * subscriptionTime + ****************************************************************************/ + +/** + * Set the subscription time (duration) to a certain value. + * + * @param sub The event subscriber + * @param value Subscription time + */ +#define cg_upnp_subscriber_setsubscriptiontime(sub, value) (sub->subscriptionTime = value) + +/** + * Get the subscription time (duration) + * + * @param sub The event subscriber + * @return Subscription time + */ +#define cg_upnp_subscriber_getsubscriptiontime(sub) (sub->subscriptionTime) + +/**************************************************************************** + * notifycount + ****************************************************************************/ + +/** + * Set the notify count to a certain value. + * + * @param sub The event subscriber + * @param value Notify count + */ +#define cg_upnp_subscriber_setnotifycount(sub, value) (sub->notifyCount = value) + +/** + * Get the notify count + * + * @param sub The event subscriber + * @return Notify count + */ +#define cg_upnp_subscriber_getnotifycount(sub) (sub->notifyCount) + +/** + * Increment the event notify count by one + * + * @param sub The event subscriber + * @return The new notify count + */ +long cg_upnp_subscriber_incrementnotifycount(CgUpnpSubscriber *sub); + +/**************************************************************************** + * Delivery URL + ****************************************************************************/ + +/** + * Set the subscriber's delivery URL + * + * @param sub The event subscriber + * @param value The delivery URL + */ +#define cg_upnp_subscriber_setdeliveryurl(sub, value) cg_net_url_set(sub->deliveryURL, value) + +/** + * Set the subscriber's delivery host + * + * @param sub The event subscriber + */ +#define cg_upnp_subscriber_getdeliveryhost(sub) cg_net_url_gethost(sub->deliveryURL) + +/** + * Set the subscriber's delivery path + * + * @param sub The event subscriber + */ +#define cg_upnp_subscriber_getdeliverypath(sub) cg_net_url_getpath(sub->deliveryURL) + +/** + * Set the subscriber's delivery port + * + * @param sub The event subscriber + */ +#define cg_upnp_subscriber_getdeliveryport(sub) cg_net_url_getport(sub->deliveryURL) + +/** + * Check, whether a subscriber's event subscription has been expired + * + * @param sub The subscriber + * @return TRUE if the subscription has been expired; otherwise FALSE + */ +BOOL cg_upnp_subscriber_isexpired(CgUpnpSubscriber *sub); + +/** + * Post a notification to an event subscriber. This is called in a device. + * + * @param sub The event subscriber + * @param statVar The evented state variable + * @return TRUE if succesful; otherwise FALSE + */ +BOOL cg_upnp_subscriber_notify(CgUpnpSubscriber *sub, CgUpnpStateVariable *statVar); + +/** + * Post a notification to an event subscriber. This is called in a device. + * + * @param sub The event subscriber + * @param service The evented service + * @return TRUE if succesful; otherwise FALSE + */ +BOOL cg_upnp_subscriber_notifyall(CgUpnpSubscriber *sub, void *service); + +/**************************************** +* Function (SubscriberList) +****************************************/ + +/** + * Create a new event subscriber list + */ +CgUpnpSubscriberList *cg_upnp_subscriberlist_new(); + +/** + * Destroy an event subscriber list + * + * @param subscriberlist The list to destroy + */ +void cg_upnp_subscriberlist_delete(CgUpnpSubscriberList *subscriberlist); + +/** + * Clear the contents of a subscriber list + * + * @param subList The subscriber list to clear + */ +#define cg_upnp_subscriberlist_clear(subList) cg_list_clear((CgList *)subList, (CG_LIST_DESTRUCTORFUNC)cg_upnp_subscriber_delete) + +/** + * Get the size (node count) of a subscriber list + * + * @param subList The subscriber list to evaluate + */ +#define cg_upnp_subscriberlist_size(subList) cg_list_size((CgList *)subList) + +/** + * Get the first item in a subscriber list (use as the first step in iteration). + * + * @param subList The subscriber list to evaluate + */ +#define cg_upnp_subscriberlist_gets(subList) (CgUpnpSubscriber *)cg_list_next((CgList *)subList) + +/** + * Add a new event subscriber to a subscriber list + * + * @param subList The subscriber list to add to + * @param sub The subscriber to add + */ +#define cg_upnp_subscriberlist_add(subList, sub) cg_list_add((CgList *)subList, (CgList *)sub) + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/csubscription.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/csubscription.h new file mode 100644 index 0000000..7254350 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/csubscription.h @@ -0,0 +1,166 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: csubscription.h +* +* Revision: +* +* 06/20/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UPNP_CSUBSCRIPTION_H_ +#define _CG_UPNP_CSUBSCRIPTION_H_ + +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + + +/**************************************** +* Data Type +****************************************/ + +/** + * Data type for subscription request + */ +typedef CgHttpRequest CgUpnpSubscriptionRequest; + +/**************************************** +* Function (Request) +****************************************/ + +/** + * Create new subscription request + */ +CgUpnpSubscriptionRequest *cg_upnp_event_subscription_request_new(); + +/** + * Delete subscription request + * + * @param subReq subscription request + */ +#define cg_upnp_event_subscription_request_delete(subReq) cg_http_request_delete(subReq) + +/**** NT ****/ + +/** + * Set host header value into underlying HTTP packet + * + * @param subReq Subscription request + * @param ipaddr Host ip address + * @param port Host port + */ +#define cg_upnp_event_subscription_request_sethost(subReq, ipaddr, port) cg_http_request_sethost(subReq, ipaddr, port) + +/** + * Get host header value from subscription request + * + * @param subReq Subscription request + * @param value Not actually used anywhere + * + * \bug Value not needed here! (It is even processed out from to be compiled code) + */ +#define cg_upnp_event_subscription_request_gethost(subReq, value) cg_http_request_gethost(subReq) + +/**** NT ****/ + +/** + * Set NT (Notification type) for subscription request + * + * @param subReq Subscription request + * @param value Notification type + */ +#define cg_upnp_event_subscription_request_setnt(subReq, value) cg_http_request_setheadervalue(subReq, CG_HTTP_NT, value) + +/** + * Get NT from subscription request + * + * @param subReq Subscription request + * @param value Not actually used anywhere + * + * \bug Value not needed here! + */ +#define cg_upnp_event_subscription_request_getnt(subReq, value) cg_http_request_getheadervalue(subReq, CG_HTTP_NT) + +/**** CALLBACK ****/ + +/** + * Set callback URL for eventing + * + * @param subReq Subscription request + * @value value String which defines the callback URL + */ +#define cg_upnp_event_subscription_request_setcallback(subReq, value) cg_http_request_setheadervalue(subReq, CG_HTTP_CALLBACK, value) + +/** + * Get callback url from subscription request + * + * @subReq Subscription request + * @value Not actually used anywhere + * + * \bug Value not needed here! + */ +#define cg_upnp_event_subscription_request_getcallback(subReq, value) cg_http_request_getheadervalue(subReq, CG_HTTP_CALLBACK) + +/**** SID ****/ + +/** + * Set SID (Subscription ID) for subscription request + * + * @param subReq Subscription request + * @param value SID + */ +#define cg_upnp_event_subscription_request_setsid(subReq, value) cg_http_request_setheadervalue(subReq, CG_HTTP_SID, value) + +/** + * Get SID from subscription request object + * + * @param subReq Subscription request + * @param value Not used + * + * \bug Value not needed here! + */ +#define cg_upnp_event_subscription_request_getsid(subReq, value) cg_http_request_getheadervalue(subReq, CG_HTTP_SID) + +/**** Timeout ****/ + +/** + * Set timeout for subscription request + * + * @param subReq Subscription request + * @param timeout Timeout + */ +void cg_upnp_event_subscription_request_settimeout(CgUpnpSubscriptionRequest *subReq, long timeout); + +/** + * Get timeout value from subscription request + * + * @param subReq Subscription request + * + * @return Timeout + */ +long cg_upnp_event_subscription_request_gettimeout(CgUpnpSubscriptionRequest *subReq); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cthread.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cthread.h new file mode 100644 index 0000000..01e917d --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cthread.h @@ -0,0 +1,298 @@ +/****************************************************************** +* +* CyberUtil for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cthread.h +* +* Revision: +* +* 02/07/05 +* - first revision +* +* 10/31/05 +* - Modified the thread struct to use the cg_list concept +* 02/13/06 Theo Beisch +* - added WINCE support +* 03/20/06 Theo Beisch +* - added thread->deletePending and thread->selfDelete (WINCE only) +* so that a thread can delete its own cg_thread context when truly +* finished (as cg_thread_stop is not reliable under WINCE) +* - added cg_threadlist_remove +* 06/13/07 Fabrice Fontaine Orange +* - Bug correction : Variable used to wait for thread termination by sleeping instead of joining. +* +******************************************************************/ + +#ifndef _CG_UTIL_CTHREAD_H_ +#define _CG_UTIL_CTHREAD_H_ + +#include +#include +#include + +#include +#if defined(WIN32) && !defined(ITRON) +#include +#elif defined(BTRON) +#include +#elif defined(ITRON) +#include +#elif defined(TENGINE) && !defined(PROCESS_BASE) +#include +#elif defined(TENGINE) && defined(PROCESS_BASE) +#include +#else +#include +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** + * Define + ****************************************/ + +#if defined (WINCE) +#define CG_THREAD_SHUTDOWN_ATTEMPTS 10 +#define CG_THREAD_MIN_SLEEP 1000 +/* ADD Fabrice Fontaine Orange 24/04/2007 */ +/* Bug correction : Variable used to wait for thread termination by sleeping */ +/* instead of joining */ +#else +#define CG_THREAD_MIN_SLEEP 1000 +/* ADD END Fabrice Fontaine Orange 24/04/2007 */ +#endif + +/**************************************** + * Data Type + ****************************************/ + +/** + * \brief The generic wrapper struct for CyberLinkC's threads. + * + * This wrapper has been created to enable 100% code + * compatibility between different platforms (Linux, Win32 etc..) + */ +typedef struct _CgThread { + BOOL headFlag; + struct _CgThread *prev; + struct _CgThread *next; + + /** Indicates whether this thread is ready to run */ + BOOL runnableFlag; +#if defined WINCE + /** serves as look ahead to have the thread manage its own delete(thread) on exit */ + BOOL isRunning; + BOOL deletePending; + CgSysTime sleep; +#endif //WINCE + +#if defined DEBUG + char friendlyName[32]; +#endif + +#if defined(WIN32) && !defined(ITRON) + HANDLE hThread; + DWORD threadID; +#elif defined(BTRON) + W taskID; +#elif defined(ITRON) + ER_ID taskID; +#elif defined(TENGINE) && !defined(PROCESS_BASE) + ID taskID; +#elif defined(TENGINE) && defined(PROCESS_BASE) + WERR taskID; +#else + + /** The POSIX thread handle */ + pthread_t pThread; + +#endif + + /** Thread's worker function */ + void (*action)(struct _CgThread *); + + /** Arbitrary data pointer */ + void *userData; +} CgThread, CgThreadList; + +/** + * Prototype for the threads' worker functions + */ +typedef void (*CG_THREAD_FUNC)(CgThread *); + +/**************************************** +* Function +****************************************/ + +/** + * Create a new thread + */ +CgThread *cg_thread_new(); + +/** + * Get a self reference to thread. + */ + +CgThread *cg_thread_self(); + +/** + * Stop and destroy a thread. + * + * \param thread Thread to destroy + */ +BOOL cg_thread_delete(CgThread *thread); + +/** + * Start a thread (must be created first with ch_thread_new()) + * + * \param thread Thread to start + */ +BOOL cg_thread_start(CgThread *thread); + +/** + * Stop a running thread. + * + * \param thread Thread to stop + */ +BOOL cg_thread_stop(CgThread *thread); + +/** + * Stop the running thread and signal the given CGCond. + */ +BOOL cg_thread_stop_with_cond(CgThread *thread, CgCond *cond); + +/** + * Restart a thread. Essentially calls cg_thread_stop() and cg_thread_start() + * + * \param thread Thread to restart + */ +BOOL cg_thread_restart(CgThread *thread); + +/** + * Check if a thread has been started + * + * \param thread Thread to check + */ +BOOL cg_thread_isrunnable(CgThread *thread); + +/** + * Set the thread's worker function. + * + * \param thread Thread struct + * \param actionFunc Function pointer to set as the worker function + */ +void cg_thread_setaction(CgThread *thread, CG_THREAD_FUNC actionFunc); + +/** + * Set the user data pointer + * + * \param thread Thread struct + * \param data Pointer to user data + */ +void cg_thread_setuserdata(CgThread *thread, void *data); + +/** + * Get the user data pointer + * + * \param thread Thread from which to get the pointer + */ +void *cg_thread_getuserdata(CgThread *thread); + +#if defined (WINCE) +void cg_thread_sleep(CgThread *thread); +void cg_thread_exit(DWORD exitCode); +#if defined DEBUG_MEM +void cg_thread_monitor(CgThread *thread); +#endif //DEBUG_MEM +#endif //WIN32_WCE + +#define cg_thread_next(thread) (CgThread *)cg_list_next((CgList *)thread) +#define cg_thread_remove(thread) cg_list_remove((CgList *)thread) + +/**************************************** +* Function (Thread List) +****************************************/ + +/** + * Create a new thread list + * + * \return Thread list + */ +CgThreadList *cg_threadlist_new(); + +/** + * Destroy a thread list + * + * \param threadList The thread list in question + */ +void cg_threadlist_delete(CgThreadList *threadList); + +/** + * Clear the contents of a thread list + * + * \param threadList Thread list in question + */ +#define cg_threadlist_clear(threadList) cg_list_clear((CgList *)threadList, (CG_LIST_DESTRUCTORFUNC)cg_thread_delete) + +/** + * Get the size of a thread list + * + * \param threadList The thread list in question + */ +#define cg_threadlist_size(threadList) cg_list_size((CgList *)threadList) + +/** + * Get the first actual item from a thread list to use as an iterator + * + * \param threadList The thread list in question + */ +#define cg_threadlist_gets(threadList) (CgThread *)cg_list_next((CgList *)threadList) + +/** + * Add a thread into a thread list + * + * \param threadList The thread list in question + * \param thread The thread to add to the list + */ +#define cg_threadlist_add(threadList, thread) cg_list_add((CgList *)threadList, (CgList *)thread) + +/** + * Remove a thread from thread list + * + * \param threadList The thread list in question + * \param thread The thread to be removed + */ +#define cg_threadlist_remove(thread) cg_list_remove((CgList *)thread) + +/** + + * Start all threads in the thread list + * + * \param threadList The thread list in question + */ +BOOL cg_threadlist_start(CgThreadList *threadList); + +/** + * Stop all threads in the thread list + * + * \param threadList The thread list in question + */ +BOOL cg_threadlist_stop(CgThreadList *threadList); + +#ifdef __cplusplus + +} /* extern "C" */ + +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/ctime.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/ctime.h new file mode 100644 index 0000000..83b928f --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/ctime.h @@ -0,0 +1,62 @@ +/****************************************************************** +* +* CyberUtil for C +* +* Copyright (C) Satoshi Konno 2005 +* +* File: ctime.h +* +* Revision: +* +* 02/07/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UTIL_CTIME_H_ +#define _CG_UTIL_CTIME_H_ + +#include + +#if defined(BTRON) +#include +#include +#elif defined(ITRON) +#include +#else +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#if defined(BTRON) || defined(ITRON) +typedef long CgSysTime; +#else +typedef time_t CgSysTime; +#endif + +/**************************************** +* Function +****************************************/ + +float cg_random(); + +void cg_wait(CgSysTime mtime); +void cg_waitrandom(CgSysTime mtime); + +#define cg_sleep(val) cg_wait(val) +#define cg_sleeprandom(val) cg_waitrandom(val) + +CgSysTime cg_getcurrentsystemtime(); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cupnp.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cupnp.h new file mode 100644 index 0000000..4c2b823 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cupnp.h @@ -0,0 +1,47 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cupnp.h +* +* Revision: +* +* 02/14/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UPNP_CUPNP_H_ +#define _CG_UPNP_CUPNP_H_ + +#include + +#include +#include +#include + +#include +#include +#include +#include + +/**************************************** +* Define +****************************************/ + +#define CG_CLINK_NAME "CyberLinkC" +#define CG_CLINK_VER "2.4" + +#define CG_UPNP_VER "1.0" +#define CG_DLNA_VER "1.50" + +#define CG_UPNP_XML_DECLARATION "" + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cupnp_function.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cupnp_function.h new file mode 100644 index 0000000..23afacc --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cupnp_function.h @@ -0,0 +1,84 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cupnp_function.h +* +* Revision: +* +* 02/21/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UPNP_FUNCTION_H_ +#define _CG_UPNP_FUNCTION_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#define CG_UPNP_UUID_NAME "uuid" +#define CG_UPNP_UUID_MAX_LEN 128 /*(5 + ((4+1)*4) + 1)*/ +#define CG_UPNP_SEVERNAME_MAXLEN 64 + +/**************************************** +* Data Type +****************************************/ + +/**************************************** +* Function +****************************************/ + +/** + * Create a UUID (Universally Unique IDentifier) based on a semi-random value using current time. + * + * \param uuidBuf The UUID created by this function (must not be NULL) + * \return The UUID created by this function (== \e uuidBuf) + */ +char *cg_upnp_createuuid(char *uuidBuf, int uuidBufSize); + +/** + * Get the server name ("OSname/OSversion/UPnP/ CyberLinkC/") + * + * \param buf Buffer to store the server name + * \param bufSize Buffer length + * \param The server name buffer (== \e buf) + */ +char *cg_upnp_getservername(char *buf, int bufSize); + +/** + * Enable/disable NMPR (Intel Networked Media Product Requirements) mode. + * + * \param onFlag TRUE: enable; FALSE: disable + */ +void cg_upnp_setnmprmode(BOOL onFlag); + +/** + * Check whether NMPR (Intel Networked Media Product Requirements) mode is on. + * + * + * \return TRUE if on; otherwise FALSE + */ +BOOL cg_upnp_isnmprmode(); + +#ifdef __cplusplus + +} /* extern "C" */ + +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cupnp_limit.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cupnp_limit.h new file mode 100644 index 0000000..78da376 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cupnp_limit.h @@ -0,0 +1,50 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cupnp_limit.h +* +* Revision: +* +* 05/17/05 +* - first revision +* 04/04/06 Theo Beisch +* - changed max notifycount to 32bit (per UPnP spec) +* +******************************************************************/ + +#ifndef _CG_UPNP_CUPNPLIMIT_H_ +#define _CG_UPNP_CUPNPLIMIT_H_ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#if defined(HAVE_STDINT_H) +#include +#else +#include +#endif + +#define CG_UPNP_ACTOINNAME_LEN_MAX 128 + +/* DLNA specifies (7.2.26.6) max UDN length to 68 bytes, + * we just play safe here and use 128 byte buffer. */ +#define CG_UPNP_UDN_LEN_MAX 128 +#define CG_UPNP_LOCATION_URL_MAX 512 +#define CG_UPNP_CONTROLPOINT_EVENTSUBURL_MAX 512 + +#if defined(HAVE_STDINT_H) +#define CG_UPNP_NOTIFY_COUNT_MAX UINT32_MAX +#else +#define CG_UPNP_NOTIFY_COUNT_MAX UINT_MAX +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cupnp_status.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cupnp_status.h new file mode 100644 index 0000000..73178cd --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cupnp_status.h @@ -0,0 +1,120 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: upnp_status.h +* +* Revision: +* +* 02/13/05 +* - first revision +* +* 10/31/05 +* - Added comments to all functions and structs +* +******************************************************************/ + +#ifndef _CG_UPNP_CUPNPSTATUS_H_ +#define _CG_UPNP_CUPNPSTATUS_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/******************************************************************************** + * Defines + ********************************************************************************/ + +#define CG_UPNP_STATUS_INVALID_ACTION 401 +#define CG_UPNP_STATUS_INVALID_ARGS 402 +#define CG_UPNP_STATUS_OUT_OF_SYNC 403 +#define CG_UPNP_STATUS_INVALID_VAR 404 +#define CG_UPNP_STATUS_ACTION_FAILED 501 + +/**************************************** + * Data Type + ****************************************/ + +/** + * UPnP status struct used in action and state operations + */ +typedef struct _CgUpnpStatus { + /** Status code */ + int code; + + /** Status description */ + CgString *description; +} CgUpnpStatus; + +/****************************************************************************** + * Function + ******************************************************************************/ + +/** + * Create a new status struct + * + */ +CgUpnpStatus *cg_upnp_status_new(); + +/** + * Delete a status struct + * + * \param upnpStat Status struct to delete + */ +void cg_upnp_status_delete(CgUpnpStatus *upnpStat); + +/** + * Set status code for status struct + * + * \param upnpStat Status struct + * \param value Status code + */ +#define cg_upnp_status_setcode(upnpStat, value) (upnpStat->code = value) + +/** + * Get Status code from a status struct + * + * \param upnpStat Status structure + */ +#define cg_upnp_status_getcode(upnpStat) (upnpStat->code) + +/** + * Set status description for a status struct + * + * \param upnpStat Status struct + * \param value Status description + */ +#define cg_upnp_status_setdescription(upnpStat, value) cg_string_setvalue(upnpStat->description, value) + +/** + * Get status description from a status struct + * + * \param upnpStat Status struct + */ +#define cg_upnp_status_getdescription(upnpStat) cg_string_getvalue(upnpStat->description) + +/** + * Helper function that converts a status code into a status description + * + * \param code Code to convert into a description + * \return Status description + */ +char *cg_upnp_status_code2string(int code); + +#ifdef __cplusplus + +} /* extern "C" */ + +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/curi.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/curi.h new file mode 100644 index 0000000..b4b9484 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/curi.h @@ -0,0 +1,146 @@ +/****************************************************************** +* +* CyberUtil for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: curl.h +* +* Revision: +* +* 03/09/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_NET_CURI_H_ +#define _CG_NET_CURI_H_ + +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#define CG_NET_URI_KNKOWN_PORT (-1) +#define CG_NET_URI_DEFAULT_HTTP_PORT 80 +#define CG_NET_URI_DEFAULT_FTP_PORT 21 +#define CG_NET_URI_DEFAULT_PATH "/" +#define CG_NET_URI_MAXLEN 256 + +#define CG_NET_URI_PROTOCOL_DELIM "://" +#define CG_NET_URI_USER_DELIM "@" +#define CG_NET_URI_COLON_DELIM ":" +#define CG_NET_URI_SLASH_DELIM "/" +#define CG_NET_URI_SBLACET_DELIM "[" +#define CG_NET_URI_EBLACET_DELIM "]" +#define CG_NET_URI_SHARP_DELIM "#" +#define CG_NET_URI_QUESTION_DELIM "?" +#define CG_NET_URI_ESCAPING_CHAR "%" +#define CG_NET_URI_AMP_DELIM "&" +#define CG_NET_URI_EQ_DELIM "=" + +#define CG_NET_URI_PROTOCOL_HTTP "http" +#define CG_NET_URI_PROTOCOL_FTP "ftp" + +/**************************************** +* Data Type +****************************************/ + +typedef struct _CgNetURI { + CgString *uri; + CgString *protocol; + CgString *user; + CgString *password; + CgString *host; + int port; + CgString *path; + CgString *query; + CgString *fragment; + CgString *request; + CgDictionary *queryDictionary; +} CgNetURI; + +/**************************************** +* Function +****************************************/ + +CgNetURI *cg_net_uri_new(); +void cg_net_uri_delete(CgNetURI *uri); +void cg_net_uri_clear(CgNetURI *uri); +void cg_net_uri_setvalue(CgNetURI *uri, char *value); +void cg_net_uri_rebuild(CgNetURI *uri); +char *cg_net_uri_getvalue(CgNetURI *uri); + +#define cg_net_uri_set(urip, value) cg_net_uri_setvalue(urip, value) + +#define cg_net_uri_seturi(urip, value) cg_string_setvalue(urip->uri, value) +#define cg_net_uri_setprotocol(urip, value) cg_string_setvalue(urip->protocol, value) +#define cg_net_uri_setuser(urip, value) cg_string_setvalue(urip->user, value) +#define cg_net_uri_setpassword(urip, value) cg_string_setvalue(urip->password, value) +#define cg_net_uri_sethost(urip, value) cg_string_setvalue(urip->host, value) +#define cg_net_uri_setport(urip, value) (urip->port = value) +#define cg_net_uri_setpath(urip, value) cg_string_setvalue(urip->path, value) +#define cg_net_uri_addpath(urip, value) cg_string_addvalue(urip->path, value) +#define cg_net_uri_setquery(urip, value) cg_string_setvalue(urip->query, value) +#define cg_net_uri_setfragment(urip, value) cg_string_setvalue(urip->fragment, value) + +#define cg_net_uri_geturi(urip) cg_string_getvalue(urip->uri) +#define cg_net_uri_getprotocol(urip) cg_string_getvalue(urip->protocol) +#define cg_net_uri_getuser(urip) cg_string_getvalue(urip->user) +#define cg_net_uri_getpassword(urip) cg_string_getvalue(urip->password) +#define cg_net_uri_gethost(urip) cg_string_getvalue(urip->host) +#define cg_net_uri_getport(urip) (urip->port) +#define cg_net_uri_getpath(urip) cg_string_getvalue(urip->path) +#define cg_net_uri_getquery(urip) cg_string_getvalue(urip->query) +#define cg_net_uri_getfragment(urip) cg_string_getvalue(urip->fragment) + +char *cg_net_uri_getrequest(CgNetURI *uri); +char *cg_net_uri_getupnpbasepath(CgNetURI *locationURL); + +#define cg_net_uri_hasuri(urip) ((0 < cg_string_length(urip->uri)) ? TRUE : FALSE) +#define cg_net_uri_hasprotocol(urip) ((0 < cg_string_length(urip->protocol)) ? TRUE : FALSE) +#define cg_net_uri_hasuser(urip) ((0 < cg_string_length(urip->user)) ? TRUE : FALSE) +#define cg_net_uri_haspassword(urip) ((0 < cg_string_length(urip->password)) ? TRUE : FALSE) +#define cg_net_uri_hashost(urip) ((0 < cg_string_length(urip->host)) ? TRUE : FALSE) +#define cg_net_uri_hasport(urip) ((0 < urip->port) ? TRUE : FALSE) +#define cg_net_uri_haspath(urip) ((0 < cg_string_length(urip->path)) ? TRUE : FALSE) +#define cg_net_uri_hasquery(urip) ((0 < cg_string_length(urip->query)) ? TRUE : FALSE) +#define cg_net_uri_hasfragment(urip) ((0 < cg_string_length(urip->fragment)) ? TRUE : FALSE) +#define cg_net_uri_hasrequest(urip) cg_net_uri_haspath(urip) + +#define cg_net_uri_ishttpprotocol(urip) cg_streq(cg_string_getvalue(urip->protocol), CG_NET_URI_PROTOCOL_HTTP) + +#define cg_net_uri_isabsolute(urip) cg_net_uri_hasprotocol(urip) +#define cg_net_uri_isabsolutepath(uripath) (( *uripath == '/' ) ? TRUE : FALSE ) +#define cg_net_uri_isrelative(urip) ((cg_net_uri_hasprotocol(urip) == TRUE) ? FALSE : TRUE) + +BOOL cg_net_uri_isreservedchar(char c); +BOOL cg_net_uri_isunreservedchar(char c); +BOOL cg_net_uri_isescapechar(char c); +BOOL cg_net_uri_isalphanumchar(char c); + +BOOL cg_net_uri_isescapedstring(char *buf, int bufSize); +char *cg_net_uri_escapestring(char *buf, int bufSize, CgString *retBuf); +char *cg_net_uri_unescapestring(char *buf, int bufSize, CgString *retBuf); +BOOL cg_net_uri_isequivalent(char *url, char *relative_url); + +CgDictionary *cg_net_uri_getquerydictionary(CgNetURI *uri); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/curl.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/curl.h new file mode 100644 index 0000000..2da3f37 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/curl.h @@ -0,0 +1,106 @@ +/****************************************************************** +* +* CyberUtil for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: curl.h +* +* Revision: +* +* 03/09/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_NET_CURL_H_ +#define _CG_NET_CURL_H_ + +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +/**************************************** +* Data Type +****************************************/ + +typedef struct _CgNetURI CgNetURL; + +/**************************************** +* Function +****************************************/ + +#define cg_net_url_new() cg_net_uri_new() +#define cg_net_url_delete(urip) cg_net_uri_delete(urip); +#define cg_net_url_clear(urip) cg_net_uri_clear(urip); + +#define cg_net_url_set(urip, value) cg_net_uri_set(urip, value) +#define cg_net_url_setvalue(urip, value) cg_net_uri_setvalue(urip, value) +#define cg_net_url_rebuild(urip) cg_net_uri_rebuild(urip) +#define cg_net_url_getvalue(urip) cg_net_uri_getvalue(urip) + +#define cg_net_url_seturi(urip, value) cg_string_setvalue(urip->uri, value) +#define cg_net_url_setprotocol(urip, value) cg_string_setvalue(urip->protocol, value) +#define cg_net_url_setuser(urip, value) cg_string_setvalue(urip->user, value) +#define cg_net_url_setpassword(urip, value) cg_string_setvalue(urip->password, value) +#define cg_net_url_sethost(urip, value) cg_string_setvalue(urip->host, value) +#define cg_net_url_setport(urip, value) (urip->port = value) +#define cg_net_url_setpath(urip, value) cg_string_setvalue(urip->path, value) +#define cg_net_url_addpath(urip, value) cg_net_uri_addpath(urip, value) +#define cg_net_url_setquery(urip, value) cg_string_setvalue(urip->query, value) +#define cg_net_url_setfragment(urip, value) cg_string_setvalue(urip->fragment, value) + +#define cg_net_url_geturi(urip) cg_string_getvalue(urip->uri) +#define cg_net_url_getprotocol(urip) cg_string_getvalue(urip->protocol) +#define cg_net_url_getuser(urip) cg_string_getvalue(urip->user) +#define cg_net_url_getpassword(urip) cg_string_getvalue(urip->password) +#define cg_net_url_gethost(urip) cg_string_getvalue(urip->host) +#define cg_net_url_getport(urip) (urip->port) +#define cg_net_url_getpath(urip) cg_string_getvalue(urip->path) +#define cg_net_url_getquery(urip) cg_string_getvalue(urip->query) +#define cg_net_url_getfragment(urip) cg_string_getvalue(urip->fragment) +#define cg_net_url_getrequest(urip) cg_net_uri_getrequest(urip) + +#define cg_net_url_hasuri(urip) ((0 < cg_string_length(urip->uri)) ? TRUE : FALSE) +#define cg_net_url_hasprotocol(urip) ((0 < cg_string_length(urip->protocol)) ? TRUE : FALSE) +#define cg_net_url_hasuser(urip) ((0 < cg_string_length(urip->user)) ? TRUE : FALSE) +#define cg_net_url_haspassword(urip) ((0 < cg_string_length(urip->password)) ? TRUE : FALSE) +#define cg_net_url_hashost(urip) ((0 < cg_string_length(urip->host)) ? TRUE : FALSE) +#define cg_net_url_hasport(urip) ((0 < urip->port) ? TRUE : FALSE) +#define cg_net_url_haspath(urip) ((0 < cg_string_length(urip->path)) ? TRUE : FALSE) +#define cg_net_url_hasquery(urip) ((0 < cg_string_length(urip->query)) ? TRUE : FALSE) +#define cg_net_url_hasfragment(urip) ((0 < cg_string_length(urip->fragment)) ? TRUE : FALSE) +#define cg_net_url_hasrequest(urip) cg_net_uri_hasrequest(urip) + +#define cg_net_url_ishttpprotocol(urip) cg_streq(cg_string_getvalue(urip->protocol), CG_NET_URI_PROTOCOL_HTTP) + +#define cg_net_url_isabsolute(uripath) cg_net_uri_hasprotocol(uripath) +#define cg_net_url_isrelative(urip) ((cg_net_uri_hasprotocol(urip) == TRUE) ? FALSE : TRUE) +#define cg_net_url_isabsolutepath(uripath) cg_net_uri_isabsolutepath(uripath) + +#define cg_net_url_getupnpbasepath(urip) cg_net_uri_getupnpbasepath(urip); + +char *cg_net_gethosturl(char *host, int port, char *uri, char *buf, int bufSize); +char *cg_net_getmodifierhosturl(char *host, int port, char *uri, char *buf, int bufSize, char *begin, char *end); + +#define cg_net_url_getquerydictionary(urip) cg_net_uri_getquerydictionary(urip); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cxml.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cxml.h new file mode 100644 index 0000000..02eb2ef --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/cxml.h @@ -0,0 +1,208 @@ +/****************************************************************** +* +* CyberNet for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006-2007 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cxml.h +* +* Revision: +* +* 02/07/05 +* - first revision +* 10/22/07 Aapo Makela +* - Added NULL check to cg_xml_node_getchildnode() macro +* +******************************************************************/ + +#ifndef _CG_XML_CXML_H_ +#define _CG_XML_CXML_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#define CG_XML_INDENT_STRING " " +#define CG_XML_VERSION_HEADER "" +#define CG_XML_CONTENT_TYPE "text/xml; charset=\"utf-8\"" +#define CG_XML_CONTENT_LF "\n" + +typedef void (*CG_XML_NODE_USERDATA_DESTRUCTORFUNC)(void *); + +/**************************************** +* Data Type +****************************************/ + +typedef struct _CgXmlAttribute { + BOOL headFlag; + struct _CgXmlAttribute *prev; + struct _CgXmlAttribute *next; + CgString *name; + CgString *value; +} CgXmlAttribute, CgXmlAttributeList; + +typedef struct _CgXmlNode { + BOOL headFlag; + struct _CgXmlNode *prev; + struct _CgXmlNode *next; + CgString *name; + CgString *value; + struct _CgXmlAttribute *attrList; + struct _CgXmlNode *nodeList; + struct _CgXmlNode *parentNode; + void *userData; + CG_XML_NODE_USERDATA_DESTRUCTORFUNC userDataDestructorFunc; +} CgXmlNode, CgXmlNodeList; + +typedef struct _CgXmlParser { + BOOL parseResult; +} CgXmlParser; + +/**************************************** +* Function (AttribureList) +****************************************/ + +CgXmlAttributeList *cg_xml_attributelist_new(); +void cg_xml_attributelist_delete(CgXmlAttributeList *attrList); + +#define cg_xml_attributelist_clear(attrList) cg_list_clear((CgList *)attrList, (CG_LIST_DESTRUCTORFUNC)cg_xml_attribute_delete) +#define cg_xml_attributelist_size(attrList) cg_list_size((CgList *)attrList) +#define cg_xml_attributelist_gets(attrList) (CgXmlAttribute *)cg_list_next((CgList *)attrList) +#define cg_xml_attributelist_add(attrList, attr) cg_list_add((CgList *)attrList, (CgList *)attr) + +void cg_xml_attributelist_set(CgXmlAttributeList *attrList, char *name, char *value); +CgXmlAttribute *cg_xml_attributelist_get(CgXmlAttributeList *attrList, char *name); +char *cg_xml_attributelist_getvalue(CgXmlAttributeList *attrList, char *name); + +/**************************************** +* Function (Attributes) +****************************************/ + +CgXmlAttribute *cg_xml_attribute_new(); +void cg_xml_attribute_delete(CgXmlAttribute *attr); + +#define cg_xml_attribute_next(attr) (CgXmlAttribute *)cg_list_next((CgList *)attr) +#define cg_xml_attribute_remove(attr) cg_list_remove((CgList *)attr) + +void cg_xml_attribute_setname(CgXmlAttribute *attr, char *name); +char *cg_xml_attribute_getname(CgXmlAttribute *attr); +BOOL cg_xml_attribute_isname(CgXmlAttribute *attr, char *name); + +void cg_xml_attribute_setvalue(CgXmlAttribute *attr, char *value); +char *cg_xml_attribute_getvalue(CgXmlAttribute *attr); + +/**************************************** +* Function (NodeList) +****************************************/ + +CgXmlNodeList *cg_xml_nodelist_new(); +void cg_xml_nodelist_delete(CgXmlNodeList *nodeList); + +#define cg_xml_nodelist_clear(nodeList) cg_list_clear((CgList *)(nodeList), (CG_LIST_DESTRUCTORFUNC)cg_xml_node_delete) +#define cg_xml_nodelist_size(nodeList) cg_list_size((CgList *)(nodeList)) +#define cg_xml_nodelist_gets(nodeList) (CgXmlNode *)cg_list_next((CgList *)(nodeList)) +#define cg_xml_nodelist_add(nodeList, node) cg_list_add((CgList *)(nodeList), (CgList *)(node)) + +/* Deprecated : Use cg_xml_nodelist_getbyname */ +#define cg_xml_nodelist_get(nodeList, name) cg_xml_nodelist_getbyname(nodeList, name) +CgXmlNode *cg_xml_nodelist_getbyname(CgXmlNodeList *nodeList, char *name); +CgXmlNode *cg_xml_nodelist_getbyxpath(CgXmlNodeList *nodeList, char *xpath); + +/**************************************** +* Function (Node) +****************************************/ + +CgXmlNode *cg_xml_node_new(); +void cg_xml_node_delete(CgXmlNode *node); + +#define cg_xml_node_next(node) (CgXmlNode *)cg_list_next((CgList *)node) +#define cg_xml_node_remove(node) cg_list_remove((CgList *)node) + +#define cg_xml_node_setname(node, nodename) cg_string_setvalue(node->name, nodename) +#define cg_xml_node_getname(node) cg_string_getvalue(node->name) +#define cg_xml_node_isname(node, nodename) (cg_strcmp(cg_xml_node_getname(node), nodename) == 0 ? TRUE : FALSE) + +#define cg_xml_node_setvalue(node, nodevalue) cg_string_setvalue(node->value, nodevalue) +#define cg_xml_node_setintvalue(node, nodevalue) cg_string_setintvalue(node->value, nodevalue) +#define cg_xml_node_setlongvalue(node, nodevalue) cg_string_setlongvalue(node->value, nodevalue) +#define cg_xml_node_setnvalue(node, nodevalue, nodevaluelen) cg_string_setnvalue(node->value, nodevalue, nodevaluelen) +#define cg_xml_node_addvalue(node, nodevalue) cg_string_addvalue(node->value, nodevalue) +#define cg_xml_node_naddvalue(node, nodevalue, len) cg_string_naddvalue(node->value, nodevalue, len) +#define cg_xml_node_getvalue(node) cg_string_getvalue(node->value) +#define cg_xml_node_getintvalue(node) cg_string_getintvalue(node->value) +#define cg_xml_node_getlongvalue(node) cg_string_getlongvalue(node->value) + +#define cg_xml_node_setparentnode(node, pnode) (node->parentNode = pnode) +#define cg_xml_node_getparentnode(node) (node->parentNode) +CgXmlNode *cg_xml_node_getrootnode(CgXmlNode *node); + +#define cg_xml_node_getchildnodelist(node) (node->nodeList) +void cg_xml_node_addchildnode(CgXmlNode *node, CgXmlNode *cnode); +void cg_xml_node_setchildnode(CgXmlNode *node, char *name, char *value); +char *cg_xml_node_getchildnodevalue(CgXmlNode *node, char *name); +#define cg_xml_node_getchildnodeintvalue(node, name) cg_str2int(cg_xml_node_getchildnodevalue(node, name)) +#define cg_xml_node_getchildnodelongvalue(node, name) cg_str2long(cg_xml_node_getchildnodevalue(node, name)) + +#define cg_xml_node_setuserdata(node, data) (node->userData = data) +#define cg_xml_node_getuserdata(node) (node->userData) +#define cg_xml_node_setuserdatadestructor(node, func) (node->userDataDestructorFunc = func) + +#define cg_xml_node_getchildnodes(node) cg_xml_nodelist_gets(node->nodeList) +#define cg_xml_node_haschildnodes(node) ((cg_xml_node_getchildnodes(node) != NULL) ? TRUE : FALSE) +/* Deprecated : Use cg_xml_node_getchildnodebyname */ +#define cg_xml_node_getchildnode(node,name) ((node != NULL) ? cg_xml_nodelist_getbyname(node->nodeList,name) : NULL) +#define cg_xml_node_getchildnodebyname(node,name) ((node != NULL) ? cg_xml_nodelist_getbyname(node->nodeList,name) : NULL) +#define cg_xml_node_getchildnodebyxpath(node,xpath) ((node != NULL) ? cg_xml_nodelist_getbyxpath(node->nodeList,xpath) : NULL) + +/* Get childnode with some specific namespace prefix, or ignore namespace prefix. + If ns is NULL, name string must match completely */ +CgXmlNode *cg_xml_node_getchildnodewithnamespace(CgXmlNode *node, char *name, char *ns, BOOL ignoreNs); + +#define cg_xml_node_getattributes(node) cg_xml_attributelist_gets(node->attrList) +#define cg_xml_node_getattribute(node, name) cg_xml_attributelist_get(node->attrList,name) +#define cg_xml_node_addattribute(node, attr) cg_xml_attributelist_add(node->attrList,attr) +#define cg_xml_node_setattribute(node, name, value) cg_xml_attributelist_set(node->attrList,name,value) +#define cg_xml_node_getattributevalue(node, name) cg_xml_attributelist_getvalue(node->attrList, name) +void cg_xml_node_removeattribute(CgXmlNode *node, char *name); + +#define cg_xml_node_setnamespace(node, ns, value) cg_xml_node_setattribute(node, "xmlns:" ns , value) + +char *cg_xml_node_tostring(CgXmlNode *node, BOOL withChildNode, CgString *str); +void cg_xml_node_print(CgXmlNode *node); + +void cg_xml_node_copy(CgXmlNode *dstNode, CgXmlNode *srcNode); + +/**************************************** +* Function (Parser) +****************************************/ + +CgXmlParser *cg_xml_parser_new(); +void cg_xml_parser_delete(CgXmlParser *parser); +BOOL cg_xml_parse(CgXmlParser *parser, CgXmlNodeList *nodeList, char *data, int len); + +/**************************************** +* Function (Other) +****************************************/ + +char *cg_xml_escapechars(CgString *str); +char *cg_xml_unescapechars(CgString *str); + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/typedef.h b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/typedef.h new file mode 100644 index 0000000..2f28713 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Headers/typedef.h @@ -0,0 +1,102 @@ +/****************************************************************** +* +* CyberGarage for C +* +* Copyright (C) Satoshi Konno 2005 +* +* File: typedef.h +* +* Revision: +* +* 01/17/05 +* - first revision +* 08/16/05 +* - Thanks for Theo Beisch +* - Added support for WindowsCE platform. +* 03/18/07 +* - Added CgInt64 to +* 06/24/07 +* - Added CgByte to +* 03/18/08 +* - Changed not to define BOOL type using XCode. +* 09/03/08 +* - Changed to include in on XCode as default. +* +******************************************************************/ + +#ifndef _CG_TYPEDEF_H_ +#define _CG_TYPEDEF_H_ + +#include +#include + +#if defined(WINCE) && !defined(WIN32) +#define WIN32 1 +#endif + +#if (defined(WIN32) || defined(__CYGWIN__)) && !defined (ITRON) +#include +#include +#elif defined(BTRON) || defined(TENGINE) +#include +#elif defined(ITRON) +#include +#endif + +#if defined(__GNUC__) && ( defined(__APPLE_CPP__) || defined(__APPLE_CC__) ) +#include +#endif + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Data Type +****************************************/ + +#if !defined(BOOL) && !defined(BTRON) && !defined(TENGINE) && !defined(__OBJC__) +typedef int BOOL; +#endif + +#if !defined(TRUE) +#if defined(__OBJC__) +#define TRUE YES +#else +#define TRUE (1) +#endif +#endif + +#if !defined(FALSE) +#if defined(__OBJC__) +#define FALSE NO +#else +#define FALSE (0) +#endif +#endif + +typedef unsigned char CgByte; + +#if defined(__USE_ISOC99) || defined(__GCC__) +typedef long long int CgInt64; +#define CG_USE_INT64 1 +#elif defined(HAVE_LONGLONG) +typedef long long CgInt64; +#define CG_USE_INT64 1 +#elif (defined(WIN32) || defined(WINCE)) +typedef __int64 CgInt64; +#define CG_USE_INT64 1 +#else +typedef long CgInt64; +#undef CG_USE_INT64 +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Resources/Info.plist b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Resources/Info.plist new file mode 100644 index 0000000000000000000000000000000000000000..6f14b6719ca610b8b07d5a8708ecf3309247f57a GIT binary patch literal 744 zcmZWmOK;Oa5Z+x%DbF|!1zHG?@P1i#l%(nj;kc1P2?^L~5-71Y&c<1~UR#b`VeuRK z2e?(-Iq(ZOA};&@4u}H>#EmN#9M^7;n9Iz5GvCa7vjdmWi7!dtge8a$%^jXUvT*d+ z@e?OcWrXZv?)1``v*(sq&R@u1ymYy6_1g6tH*ep$dvB{+QvyC@ET^?9*&)nvZNmL$#G(#2giM;-B;F)Oaxtrc%`xSqsl~6ps<#;S zM~-JtyBk6-rM0lRjV+>wZiKF+s5W*yKk2CX9_7}*$-s4^G#REXCx(zunRPyLRBHOs zD%cATmRd~n>#vC!_;|pk6045wQbs&O5E_(IJFuJD|CIVL(o08_c>Q)gIsr9F4cnB3 zhLD})43Y8IQ9cCQkj{N;;LRX91!m@<=eVcDoHP>J9ap6CS_4>uPO3s zrL)eh=!?fs>sQQEuGrL8Hgsc98anzb~9g6Y^Ic3noqD2nw? zM8Q@CBK70Z(TAhP{szyc@(1v~;eFu)tI3*Lbb z;1l=(5iGz}sK7RS1w*(C-@^CsBm4}%z_0K-{0V=--|!CtXb#Pz49cNAQcw-GQ3v(V TOJt%khz-Gg5AG*Eaftr~;9TSe literal 0 HcmV?d00001 diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Resources/cupnp.h.in b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Resources/cupnp.h.in new file mode 100644 index 0000000..8eabab0 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/A/Resources/cupnp.h.in @@ -0,0 +1,47 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cupnp.h +* +* Revision: +* +* 02/14/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UPNP_CUPNP_H_ +#define _CG_UPNP_CUPNP_H_ + +#include + +#include +#include +#include + +#include +#include +#include +#include + +/**************************************** +* Define +****************************************/ + +#define CG_CLINK_NAME "CyberLinkC" +#define CG_CLINK_VER + +#define CG_UPNP_VER "1.0" +#define CG_DLNA_VER "1.50" + +#define CG_UPNP_XML_DECLARATION "" + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/Current b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/Current new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/CyberLink.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/http/chttp.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/http/chttp.h new file mode 100644 index 0000000..52f023a --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/http/chttp.h @@ -0,0 +1,615 @@ +/****************************************************************** +* +* CyberNet for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: chttp.h +* +* Revision: +* +* 01/25/05 +* - first revision +* +* 10/31/05 +* - Changed CHttpHeader* pointers to CHttpServer* pointers +* in CHttpServer struct. +* +* 16-Jan-06 Aapo Makela +* - Fixed header comparisons to be case-insensitive +* - Fixed iskeepaliveconnection to check "Connection:close" +* - Added M-POST specific stuff +* 04/03/06 Theo Beisch +* - added (CgHttpHeaderList*) cast (see below) +* - added LONGLONG macro for platform independence +* - some re-sorting of get/set macros (see below) +******************************************************************/ + +#ifndef _CG_HTTP_CHTTP_H_ +#define _CG_HTTP_CHTTP_H_ + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + + +#define CG_HTTP_READLINE_BUFSIZE 512 +#define CG_HTTP_SEVERNAME_MAXLEN 64 +#define CG_HTTP_DATE_MAXLEN 128 + +#define CG_HTTP_REQUESTLINE_DELIM "\r\n " +#define CG_HTTP_STATUSLINE_DELIM "\r\n " +#define CG_HTTP_HEADERLINE_DELIM "\r\n :" + +#define CG_HTTP_CR "\r" +#define CG_HTTP_LF "\n" +#define CG_HTTP_CRLF "\r\n" +#define CG_HTTP_SP " " +#define CG_HTTP_COLON ":" + +#define CG_HTTP_VER10 "HTTP/1.0" +#define CG_HTTP_VER11 "HTTP/1.1" + +#if !defined(CG_HTTP_CURL) +#define CG_HTTP_USERAGENT_DEFAULT "CyberGarage-HTTP/1.0" +#else +#define CG_HTTP_USERAGENT_DEFAULT "libcurl-agent/1.0 (Cyberlink for C)" +#endif + +#define CG_HTTP_DEFAULT_PORT 80 +#define CG_HTTS_DEFAULT_PORT 443 + +#define CG_HTTP_STATUS_CONTINUE 100 +#define CG_HTTP_STATUS_OK 200 +#define CG_HTTP_STATUS_PARTIAL_CONTENT 206 +#define CG_HTTP_STATUS_BAD_REQUEST 400 +#define CG_HTTP_STATUS_NOT_FOUND 404 +#define CG_HTTP_STATUS_METHOD_NOT_ALLOWED 405 +#define CG_HTTP_STATUS_PRECONDITION_FAILED 412 +#define CG_HTTP_STATUS_INVALID_RANGE 416 +#define CG_HTTP_STATUS_INTERNAL_SERVER_ERROR 500 + +#define CG_HTTP_POST "POST" +#define CG_HTTP_GET "GET" +#define CG_HTTP_HEAD "HEAD" + +#define CG_HTTP_HOST "HOST" +#define CG_HTTP_DATE "Date" +#define CG_HTTP_CACHE_CONTROL "Cache-Control" + #define CG_HTTP_NO_CACHE "no-cache" + #define CG_HTTP_MAX_AGE "max-age" +#define CG_HTTP_CONNECTION "Connection" + #define CG_HTTP_CLOSE "close" + #define CG_HTTP_KEEP_ALIVE "Keep-Alive" +#define CG_HTTP_CONTENT_TYPE "Content-Type" +#define CG_HTTP_CONTENT_LENGTH "Content-Length" +#define CG_HTTP_CONTENT_RANGE "Content-Range" + #define CG_HTTP_CONTENT_RANGE_BYTES "bytes" +#define CG_HTTP_LOCATION "Location" +#define CG_HTTP_SERVER "Server" +#define CG_HTTP_RANGE "Range" +#define CG_HTTP_TRANSFER_ENCODING "Transfer-Encoding" + #define CG_HTTP_CHUNKED "Chunked" +#define CG_HTTP_USERAGENT "User-Agent" + +/**** SOAP Extention ****/ +#define CG_HTTP_SOAP_ACTION "SOAPACTION" +#define CG_HTTP_SOAP_ACTION_WITH_NS "01-SOAPACTION" +#define CG_HTTP_SOAP_MAN_VALUE "\"http://schemas.xmlsoap.org/soap/envelope/\"; ns=01" + +/**** UPnP Extention ****/ +#define CG_HTTP_MPOST "M-POST" +#define CG_HTTP_MSEARCH "M-SEARCH" +#define CG_HTTP_NOTIFY "NOTIFY" +#define CG_HTTP_SUBSCRIBE "SUBSCRIBE" +#define CG_HTTP_UNSUBSCRIBE "UNSUBSCRIBE" + +#define CG_HTTP_ST "ST" +#define CG_HTTP_MX "MX" +#define CG_HTTP_MAN "MAN" +#define CG_HTTP_NT "NT" +#define CG_HTTP_NTS "NTS" +#define CG_HTTP_USN "USN" +#define CG_HTTP_EXT "EXT" +#define CG_HTTP_SID "SID" +#define CG_HTTP_SEQ "SEQ" +#define CG_HTTP_CALLBACK "CALLBACK" +#define CG_HTTP_TIMEOUT "TIMEOUT" + +/**** CURL connection timeout: 2 seconds ****/ +#define CG_HTTP_CURL_CONNECTTIMEOUT 2 + +/**** CURL total timeout: 30 seconds (UPnP DA: whole transfer: 30sec ****/ +#define CG_HTTP_CONN_TIMEOUT 30 + +/* HTTP server - client thread blocking timeout */ +#define CG_HTTP_SERVER_READ_TIMEOUT 120 + +/**** HTTP Status code reason phrases ****/ +#define CG_HTTP_REASON_100 "Continue" +#define CG_HTTP_REASON_101 "Switching Protocols" +#define CG_HTTP_REASON_200 "OK" +#define CG_HTTP_REASON_201 "Created" +#define CG_HTTP_REASON_202 "Accepted" +#define CG_HTTP_REASON_203 "Non-Authoritative Information" +#define CG_HTTP_REASON_204 "No Content" +#define CG_HTTP_REASON_205 "Reset Content" +#define CG_HTTP_REASON_206 "Partial Content" +#define CG_HTTP_REASON_300 "Multiple Choices" +#define CG_HTTP_REASON_301 "Moved Permanently" +#define CG_HTTP_REASON_302 "Found" +#define CG_HTTP_REASON_303 "See Other" +#define CG_HTTP_REASON_304 "Not Modified" +#define CG_HTTP_REASON_305 "Use Proxy" +#define CG_HTTP_REASON_307 "Temporary Redirect" +#define CG_HTTP_REASON_400 "Bad Request" +#define CG_HTTP_REASON_401 "Unauthorized" +#define CG_HTTP_REASON_402 "Payment Required" +#define CG_HTTP_REASON_403 "Forbidden" +#define CG_HTTP_REASON_404 "Not Found" +#define CG_HTTP_REASON_405 "Method Not Allowed" +#define CG_HTTP_REASON_406 "Not Acceptable" +#define CG_HTTP_REASON_407 "Proxy Authentication Required" +#define CG_HTTP_REASON_408 "Request Time-out" +#define CG_HTTP_REASON_409 "Conflict" +#define CG_HTTP_REASON_410 "Gone" +#define CG_HTTP_REASON_411 "Length Required" +#define CG_HTTP_REASON_412 "Precondition Failed" +#define CG_HTTP_REASON_413 "Request Entity Too Large" +#define CG_HTTP_REASON_414 "Request-URI Too Large" +#define CG_HTTP_REASON_415 "Unsupported Media Type" +#define CG_HTTP_REASON_416 "Requested range not satisfiable" +#define CG_HTTP_REASON_417 "Expectation Failed" +#define CG_HTTP_REASON_500 "Internal Server Error" +#define CG_HTTP_REASON_501 "Not Implemented" +#define CG_HTTP_REASON_502 "Bad Gateway" +#define CG_HTTP_REASON_503 "Service Unavailable" +#define CG_HTTP_REASON_504 "Gateway Time-out" +#define CG_HTTP_REASON_505 "HTTP Version not supported" + +/**************************************** +* Data Type +****************************************/ + +typedef struct _CgHttpHeader { + BOOL headFlag; + struct _CgHttpHeader *prev; + struct _CgHttpHeader *next; + CgString *name; + CgString *value; +} CgHttpHeader, CgHttpHeaderList; + +typedef struct _CgHttpPacket { + CgHttpHeaderList *headerList; + CgString *content; +} CgHttpPacket; + +typedef struct _CgHttpResponse { + CgHttpHeaderList *headerList; + CgString *content; + CgString *version; + int statusCode; + CgString *reasonPhrase; + void *userData; + int timeout; +} CgHttpResponse; + +typedef struct _CgHttpRequest { + CgHttpHeaderList *headerList; + CgString *content; + CgString *method; + CgString *uri; + CgString *version; + CgString *userAgent; + CgHttpResponse *httpRes; + CgSocket *sock; + CgNetURL *postURL; + void *userData; + int timeout; +} CgHttpRequest; + +typedef void (*CG_HTTP_LISTENER)(CgHttpRequest *); + +typedef struct _CgHttpServer { + BOOL headFlag; + struct _CgHttpServer *prev; + struct _CgHttpServer *next; + CgSocket *sock; + CgThread *acceptThread; + CgThreadList *clientThreads; + CG_HTTP_LISTENER listener; + void *userData; + int timeout; + CgMutex *mutex; +} CgHttpServer, CgHttpServerList; + +/**************************************** +* Function +****************************************/ + +/** + * Convert an HTTP status code to a reason phrase (ex. 200 -> "200 OK") + * + * @param code The HTTP status code to convert + * @return The reason phrase (do not modify the pointer's contents) + */ +const char *cg_http_statuscode2reasonphrase(const int code); + +/**************************************** +* Function (Header) +****************************************/ + +CgHttpHeader *cg_http_header_new(); +void cg_http_header_delete(CgHttpHeader *header); + +#define cg_http_header_next(header) (CgHttpHeader *)cg_list_next((CgList *)header) + +void cg_http_header_setname(CgHttpHeader *header, char *name); +char *cg_http_header_getname(CgHttpHeader *header); +void cg_http_header_setvalue(CgHttpHeader *header, char *value); +char *cg_http_header_getvalue(CgHttpHeader *header); + +/**************************************** +* Function (Header List) +****************************************/ + +CgHttpHeaderList *cg_http_headerlist_new(); +void cg_http_headerlist_delete(CgHttpHeaderList *headerList); + +#define cg_http_headerlist_clear(headerList) cg_list_clear((CgList *)headerList, (CG_LIST_DESTRUCTORFUNC)cg_http_header_delete) +#define cg_http_headerlist_size(headerList) cg_list_size((CgList *)headerList) +#define cg_http_headerlist_gets(headerList) (CgHttpHeader *)cg_list_next((CgList *)headerList) +#define cg_http_headerlist_add(headerList, header) cg_list_add((CgList *)headerList, (CgList *)header) + +CgHttpHeader *cg_http_headerlist_get(CgHttpHeaderList *headerList, char *name); +void cg_http_headerlist_set(CgHttpHeaderList *headerList, char *name, char *value); +char *cg_http_headerlist_getvalue(CgHttpHeaderList *headerList, char *name); + +/**************************************** +* Function (Packet) +****************************************/ + +CgHttpPacket *cg_http_packet_new(); +void cg_http_packet_delete(CgHttpPacket *httpPkt); +void cg_http_packet_init(CgHttpPacket *httpPkt); +void cg_http_packet_clean(CgHttpPacket *httpPkt); +void cg_http_packet_clear(CgHttpPacket *httpPkt); + +#define cg_http_packet_deleteallheaders(httpPkt) cg_http_headerlist_gets(httpPkt->headerList) +#define cg_http_packet_getnheaders(httpPkt) cg_http_headerlist_size(httpPkt->headerList) +#define cg_http_packet_getheaders(httpPkt) cg_http_headerlist_gets(httpPkt->headerList) +//Theo Beisch - added (CgHttpHeaderList*) cast - as _get is function call +#define cg_http_packet_getheader(httpPkt, name) cg_http_headerlist_get((CgHttpHeaderList*)httpPkt->headerList, name) +#define cg_http_packet_hasheader(httpPkt, name) ((cg_http_headerlist_get((CgHttpHeaderList*)httpPkt->headerList, name) != NULL) ? TRUE : FALSE) + +#define cg_http_packet_hasheadervalue(httpPkt, header, value) (cg_streq(cg_http_packet_getheadervalue((CgHttpPacket*)httpPkt, header),value)) + +#define cg_http_packet_addheader(httpPkt, header) cg_http_headerlist_add(httpPkt->headerList, header) + +void cg_http_packet_setheadervalue(CgHttpPacket *httpPkt, char* name, char *value); +void cg_http_packet_setheaderinteger(CgHttpPacket *httpPkt, char* name, int value); +void cg_http_packet_setheaderlong(CgHttpPacket *httpPkt, char* name, long value); +char *cg_http_packet_getheadervalue(CgHttpPacket *httpPkt, char* name); +int cg_http_packet_getheaderinteger(CgHttpPacket *httpPkt, char* name); +long cg_http_packet_getheaderlong(CgHttpPacket *httpPkt, char* name); +int cg_http_packet_getheadersize(CgHttpPacket *httpPkt); + +#if defined(CG_USE_INT64) +void cg_http_packet_setheaderlonglong(CgHttpPacket *httpPkt, char* name, CgInt64 value); +CgInt64 cg_http_packet_getheaderlonglong(CgHttpPacket *httpPkt, char* name); +#endif + +#define cg_http_packet_setcontent(httpPkt, value) cg_string_setvalue(httpPkt->content, value) +#define cg_http_packet_setncontent(httpPkt, value, len) cg_string_setnvalue(httpPkt->content, value, len) +#define cg_http_packet_appendncontent(httpPkt, value, len) cg_string_naddvalue(httpPkt->content, value, len) +#define cg_http_packet_setcontentpointer(httpPkt, value, len) cg_string_setpointervalue(httpPkt->content, value, len) +#define cg_http_packet_getcontent(httpPkt) cg_string_getvalue(httpPkt->content) + +void cg_http_packet_post(CgHttpPacket *httpPkt, CgSocket *sock); +void cg_http_packet_read_headers(CgHttpPacket *httpPkt, CgSocket *sock, char *lineBuf, int lineBufSize); +BOOL cg_http_packet_read_body( + CgHttpPacket *httpPkt, CgSocket *sock, char *lineBuf, int lineBufSize); +BOOL cg_http_packet_read(CgHttpPacket *httpPkt, CgSocket *sock, BOOL onlyHeader, char *lineBuf, int lineBufSize); + +/**** Content-Length ****/ +#if defined(CG_USE_INT64) +#define cg_http_packet_setcontentlength(httpPkt,value) cg_http_packet_setheaderlonglong(httpPkt,CG_HTTP_CONTENT_LENGTH,value) +#define cg_http_packet_getcontentlength(httpPkt) cg_http_packet_getheaderlonglong(httpPkt,CG_HTTP_CONTENT_LENGTH) +#else +#define cg_http_packet_setcontentlength(httpPkt,value) cg_http_packet_setheaderlong(httpPkt,CG_HTTP_CONTENT_LENGTH,value) +#define cg_http_packet_getcontentlength(httpPkt) cg_http_packet_getheaderlong(httpPkt,CG_HTTP_CONTENT_LENGTH) +#endif + +/**** Connection ****/ +#define cg_http_packet_setconnection(httpPkt, value) cg_http_packet_setheadervalue(httpPkt,CG_HTTP_CONNECTION, value) +#define cg_http_packet_getconnection(httpPkt) cg_http_packet_getheadervalue(httpPkt,CG_HTTP_CONNECTION) +#define cg_http_packet_iskeepaliveconnection(httpPkt) (cg_strcaseeq(cg_http_packet_getconnection(httpPkt), CG_HTTP_CLOSE) == FALSE) + +/**** Transfer-Encoding ****/ +#define cg_http_packet_settransferencoding(httpPkt, value) cg_http_packet_setheadervalue(httpPkt,CG_HTTP_TRANSFER_ENCODING, value) +#define cg_http_packet_gettransferencoding(httpPkt) cg_http_packet_getheadervalue(httpPkt,CG_HTTP_TRANSFER_ENCODING) +#define cg_http_packet_ischunked(httpPkt) cg_strcaseeq(cg_http_packet_gettransferencoding(httpPkt), CG_HTTP_CHUNKED) + +/**** Host ****/ +void cg_http_packet_sethost(CgHttpPacket *httpPkt, char *addr, int port); +#define cg_http_packet_gethost(httpPkt) cg_http_packet_getheaderlong(httpPkt,CG_HTTP_HOST) + +/**** Copy ****/ +void cg_http_packet_copy(CgHttpPacket *destHttpPkt, CgHttpPacket *srcHttpPkt); + +/**** Print ****/ +void cg_http_packet_print(CgHttpPacket *httpPkt); + +/**************************************** +* Function (Request) +****************************************/ + +CgHttpRequest *cg_http_request_new(); +void cg_http_request_delete(CgHttpRequest *httpReq); +void cg_http_request_clear(CgHttpRequest *httpReq); +void cg_http_request_setmethod(CgHttpRequest *httpReq, char *method); +char *cg_http_request_getmethod(CgHttpRequest *httpReq); +void cg_http_request_setversion(CgHttpRequest *httpReq, char *version); +char *cg_http_request_getversion(CgHttpRequest *httpReqest); +void cg_http_request_setuseragent(CgHttpRequest *httpReq, char *version); +char *cg_http_request_getuseragent(CgHttpRequest *httpReqest); +void cg_http_request_addtouseragent(CgHttpRequest *httpReq, char *value); +void cg_http_request_seturi(CgHttpRequest *httpReq, char *uri); +char *cg_http_request_geturi(CgHttpRequest *httpReq); +void cg_http_request_setsocket(CgHttpRequest *httpReq, CgSocket *sock); +CgSocket *cg_http_request_getsocket(CgHttpRequest *httpReq); +#define cg_http_request_closesocket(httpReq) cg_socket_close(cg_http_request_getsocket(httpReq)) +CgHttpResponse *cg_http_request_post(CgHttpRequest *httpReq, char *ipaddr, int port); +#if defined(CG_USE_OPENSSL) +CgHttpResponse *cg_https_request_post(CgHttpRequest *httpReq, char *ipaddr, int port); +#endif +BOOL cg_http_request_read(CgHttpRequest *httpReq, CgSocket *sock); +BOOL cg_http_request_postresponse(CgHttpRequest *httpReq, CgHttpResponse *httpRes); +BOOL cg_http_request_poststatuscode(CgHttpRequest *httpReq, int httpStatCode); +BOOL cg_http_request_postdata(CgHttpRequest *httpReq, void *data, int dataLen); +BOOL cg_http_request_postchunkedsize(CgHttpRequest *httpReq, int dataLen); +BOOL cg_http_request_postchunkeddata(CgHttpRequest *httpReq, void *data, int dataLen); +BOOL cg_http_request_postlastchunk(CgHttpRequest *httpReq); +#define cg_http_request_poststring(httpReq, data) cg_http_request_postdata(httpReq, data, cg_strlen(data)) +#define cg_http_request_postchunkedstring(httpReq, data) cg_http_request_postchunkeddata(httpReq, data, cg_strlen(data)) + +#define cg_http_request_postokrequest(httpReq) cg_http_request_poststatuscode(httpReq, CG_HTTP_STATUS_OK) +#define cg_http_request_postbadrequest(httpReq) cg_http_request_poststatuscode(httpReq, CG_HTTP_STATUS_BAD_REQUEST) + +#define cg_http_request_ismethod(httpReq,value) cg_streq(cg_http_request_getmethod(httpReq), value) +#define cg_http_request_isgetrequest(httpReq) cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_GET) +#define cg_http_request_ispostrequest(httpReq) (cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_POST) || cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_MPOST)) +#define cg_http_request_isheadrequest(httpReq) cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_HEAD) +#define cg_http_request_issubscriberequest(httpReq) cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_SUBSCRIBE) +#define cg_http_request_isunsubscriberequest(httpReq) cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_UNSUBSCRIBE) +#define cg_http_request_isnotifyrequest(httpReq) cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_NOTIFY) +#define cg_http_request_issoapaction(httpReq) (cg_http_packet_hasheader(((CgHttpPacket*)httpReq), CG_HTTP_SOAP_ACTION) || cg_streq(cg_http_request_getmethod(httpReq), CG_HTTP_MPOST)) + +#define cg_http_request_setcontent(httpReq,value) cg_http_packet_setcontent(((CgHttpPacket*)httpReq),value) +#define cg_http_request_setncontent(httpReq,value,len) cg_http_packet_setcontent(((CgHttpPacket*)httpReq),value,len) +#define cg_http_request_appendncontent(httpPkt, value, len) cg_http_packet_appendncontent(httpPkt, value, len) +#define cg_http_request_setcontentpointer(httpReq,value, len) cg_http_packet_setcontentpointer(((CgHttpPacket*)httpReq),value, len) +#define cg_http_request_getcontent(httpReq) cg_http_packet_getcontent(((CgHttpPacket*)httpReq)) +#define cg_http_request_getheaders(httpReq) cg_http_packet_getheaders((CgHttpPacket*)httpReq) +#define cg_http_request_getheader(httpReq,name) cg_http_packet_getheader((CgHttpPacket*)httpReq,name) +#define cg_http_request_setheadervalue(httpReq,name,value) cg_http_packet_setheadervalue((CgHttpPacket*)httpReq,name,value) +#define cg_http_request_setheaderinteger(httpReq,name,value) cg_http_packet_setheaderinteger((CgHttpPacket*)httpReq,name,value) +#define cg_http_request_setheaderlong(httpReq,name,value) cg_http_packet_setheaderlong((CgHttpPacket*)httpReq,name,value) +#define cg_http_request_getheadervalue(httpReq,name) cg_http_packet_getheadervalue((CgHttpPacket*)httpReq,name) +#define cg_http_request_getheaderinteger(httpReq,name) cg_http_packet_getheaderinteger((CgHttpPacket*)httpReq,name) +#define cg_http_request_getheaderlong(httpReq,name) cg_http_packet_getheaderlong((CgHttpPacket*)httpReq,name) + +#define cg_http_request_setuserdata(httpReq, value) (httpReq->userData = value) +#define cg_http_request_getuserdata(httpReq) (httpReq->userData) + +/**** Local Address/Port ****/ +#define cg_http_request_getlocaladdress(httpReq) cg_socket_getaddress(httpReq->sock) +#define cg_http_request_getlocalport(httpReq) cg_socket_getport(httpReq->sock) + +/**** Content-Length ****/ +#define cg_http_request_setcontentlength(httpReq,value) cg_http_packet_setcontentlength((CgHttpPacket*)httpReq, value) +#define cg_http_request_getcontentlength(httpReq) cg_http_packet_getcontentlength((CgHttpPacket*)httpReq) + +/**** Content-Type ****/ +#define cg_http_request_setcontenttype(httpReq,value) cg_http_packet_setheadervalue((CgHttpPacket*)httpReq,CG_HTTP_CONTENT_TYPE,value) +#define cg_http_request_getcontenttype(httpReq) cg_http_packet_getheadervalue((CgHttpPacket*)httpReq,CG_HTTP_CONTENT_TYPE) + +/**** Connection ****/ +#define cg_http_request_setconnection(httpReq, value) cg_http_packet_setheadervalue((CgHttpPacket*)httpReq,CG_HTTP_CONNECTION, value) +#define cg_http_request_getconnection(httpReq) cg_http_packet_getheadervalue((CgHttpPacket*)httpReq,CG_HTTP_CONNECTION) +#define cg_http_request_iskeepaliveconnection(httpReq) cg_http_packet_iskeepaliveconnection((CgHttpPacket*)httpReq) + +/**** Transfer-Encoding ****/ +#define cg_http_request_settransferencoding(httpReq, value) cg_http_packet_settransferencoding((CgHttpPacket*)httpReq, value) +#define cg_http_request_gettransferencoding(httpReq) cg_http_packet_gettransferencoding((CgHttpPacket*)httpReq) +#define cg_http_request_ischunked(httpReq) cg_http_packet_ischunked((CgHttpPacket*)httpReq) + +/**** Host ****/ +#define cg_http_request_sethost(httpReq,addr,port) cg_http_packet_sethost((CgHttpPacket*)httpReq,addr,port) +#define cg_http_request_gethost(httpReq) cg_http_packet_getheadervalue((CgHttpPacket*)httpReq,CG_HTTP_HOST) + +/**** Date ****/ +#define cg_http_request_setdate(httpReq,value) cg_http_packet_setheadervalue((CgHttpPacket*)httpReq,CG_HTTP_DATE,value) +#define cg_http_request_getdate(httpReq) cg_http_packet_getheadervalue((CgHttpPacket*)httpReq,CG_HTTP_DATE) + +/**** Copy ****/ +void cg_http_request_copy(CgHttpRequest *destHttpReq, CgHttpRequest *srcHttpReq); + +/*** PostURL ****/ +#define cg_http_request_getposturl(httpReq) (httpReq->postURL) + +/**** Print ****/ +void cg_http_request_print(CgHttpRequest *httpReq); + +/**** Timeout ****/ +#define cg_http_request_settimeout(httpReq,value) (httpReq->timeout = value) +#define cg_http_request_gettimeout(httpReq) (httpReq->timeout) + +/**************************************** +* Function (Response) +****************************************/ + +CgHttpResponse *cg_http_response_new(); +void cg_http_response_delete(CgHttpResponse *httpRes); +void cg_http_response_clear(CgHttpResponse *httpRes); +void cg_http_response_setversion(CgHttpResponse *httpRes, char *version); +char *cg_http_response_getversion(CgHttpResponse *httpRes); +void cg_http_response_setreasonphrase(CgHttpResponse *httpRes, char *value); +char *cg_http_response_getreasonphrase(CgHttpResponse *httpRes); +void cg_http_response_setstatuscode(CgHttpResponse *httpRes, int code); +int cg_http_response_getstatuscode(CgHttpResponse *httpRes); +BOOL cg_http_response_read(CgHttpResponse *httpRes, CgSocket *sock, BOOL onlyHeader); + +/*#define cg_http_response_issuccessful(httpRes) ((cg_http_response_getstatuscode(httpRes) == CG_HTTP_STATUS_OK) ? TRUE : FALSE)*/ +#define cg_http_response_issuccessful(httpRes) (cg_http_response_getstatuscode(httpRes) >= 200 && cg_http_response_getstatuscode(httpRes) < 300 ) + +#define cg_http_response_setcontent(httpRes,value) cg_http_packet_setcontent(((CgHttpPacket*)httpRes),value) +#define cg_http_response_setncontent(httpRes,value, len) cg_http_packet_setncontent(((CgHttpPacket*)httpRes),value, len) +#define cg_http_response_appendncontent(httpRes, value, len) cg_http_packet_appendncontent(((CgHttpPacket*) httpRes), value, len) + +#define cg_http_response_setcontentpointer(httpRes,value,len) cg_http_packet_setcontentpointer(((CgHttpPacket*)httpRes),value,len) +#define cg_http_response_getcontent(httpRes) cg_http_packet_getcontent(((CgHttpPacket*)httpRes)) +#define cg_http_response_getheaders(p) cg_http_packet_getheaders((CgHttpPacket*)p) +#define cg_http_response_getheader(p,n) cg_http_packet_getheader((CgHttpPacket*)p,n) +#define cg_http_response_setheadervalue(httpRes,n,value) cg_http_packet_setheadervalue((CgHttpPacket*)httpRes,n,value) +#define cg_http_response_setheaderinteger(httpRes,n,value) cg_http_packet_setheaderinteger((CgHttpPacket*)httpRes,n,value) +#define cg_http_response_setheaderlong(httpRes,n,value) cg_http_packet_setheaderlong((CgHttpPacket*)httpRes,n,value) +#define cg_http_response_getheadervalue(httpRes,n) cg_http_packet_getheadervalue((CgHttpPacket*)httpRes,n) +#define cg_http_response_getheaderinteger(httpRes,n) cg_http_packet_getheaderinteger((CgHttpPacket*)httpRes,n) +#define cg_http_response_getheaderlong(httpRes,n) cg_http_packet_getheaderlong((CgHttpPacket*)httpRes,n) + +#define cg_http_response_setuserdata(httpRes, value) (httpRes->userData = value) +#define cg_http_response_getuserdata(httpRes) (httpRes->userData) + +/**** Content-Length ****/ +#define cg_http_response_setcontentlength(httpRes,value) cg_http_packet_setcontentlength((CgHttpPacket*)httpRes, value) +#define cg_http_response_getcontentlength(httpRes) cg_http_packet_getcontentlength((CgHttpPacket*)httpRes) + +/**** Content-Type ****/ +#define cg_http_response_setcontenttype(httpRes,value) cg_http_packet_setheadervalue((CgHttpPacket*)httpRes,CG_HTTP_CONTENT_TYPE,value) +#define cg_http_response_getcontenttype(httpRes) cg_http_packet_getheadervalue((CgHttpPacket*)httpRes,CG_HTTP_CONTENT_TYPE) + +/**** connection ****/ +#define cg_http_response_setconnection(httpRes, value) cg_http_packet_setheadervalue((CgHttpPacket*)httpRes,CG_HTTP_CONNECTION, value) +#define cg_http_response_getconnection(httpRes) cg_http_packet_getheadervalue((CgHttpPacket*)httpRes, CG_HTTP_CONNECTION) +#define cg_http_response_iskeepaliveconnection(httpRes) cg_http_packet_iskeepaliveconnection((CgHttpPacket*)httpRes) + +/**** Host ****/ +#define cg_http_response_sethost(httpRes,addr,port) cg_http_packet_sethost((CgHttpPacket*)httpRes,addr,port) +#define cg_http_response_gethost(httpRes) cg_http_packet_getheadervalue((CgHttpPacket*)httpRes,CG_HTTP_HOST) + +/**** Date ****/ +#define cg_http_response_setdate(httpRes,value) cg_http_packet_setheadervalue((CgHttpPacket*)httpRes,CG_HTTP_DATE,value) +#define cg_http_response_getdate(httpRes) cg_http_packet_getheadervalue((CgHttpPacket*)httpRes,CG_HTTP_DATE) + +/**** Transfer-Encoding ****/ +#define cg_http_response_settransferencoding(httpReq, value) cg_http_packet_settransferencoding((CgHttpPacket*)httpReq, value) +#define cg_http_response_gettransferencoding(httpReq) cg_http_packet_gettransferencoding((CgHttpPacket*)httpReq) + +/**** Copy ****/ +void cg_http_response_copy(CgHttpResponse *destHttpRes, CgHttpResponse *srcHttpRes); + +/**** Print ****/ +void cg_http_response_print(CgHttpResponse *httpRes); + +/**** Timeout ****/ +#define cg_http_response_settimeout(httpRes,value) (httpRes->timeout = value) +#define cg_http_response_gettimeout(httpRes) (httpRes->timeout) + +/**************************************** +* Function (Server) +****************************************/ + +CgHttpServer *cg_http_server_new(); +void cg_http_server_delete(CgHttpServer *httpServer); +BOOL cg_http_server_open(CgHttpServer *httpServer, int bindPort, char *bindAddr); +BOOL cg_http_server_close(CgHttpServer *httpServer); +BOOL cg_http_server_accept(CgHttpServer *httpServer); +BOOL cg_http_server_start(CgHttpServer *httpServer); +BOOL cg_http_server_stop(CgHttpServer *httpServer); +void cg_http_server_setlistener(CgHttpServer *httpServer, CG_HTTP_LISTENER listener); + +#define cg_http_server_next(httpServer) (CgHttpServer *)cg_list_next((CgList *)httpServer) + +#define cg_http_server_getsocket(httpServer) (httpServer->sock) +#define cg_http_server_isopened(httpServer) ((httpServer->sock != NULL) ? TRUE : FALSE) + +#define cg_http_server_setuserdata(httpServer, value) (httpServer->userData = value) +#define cg_http_server_getuserdata(httpServer) (httpServer->userData) + +char *cg_http_getservername(char *buf, int bufSize); + +/**** Timeout ****/ +#define cg_http_server_settimeout(httpServer,value) (httpServer->timeout = value) +#define cg_http_server_gettimeout(httpServer) (httpServer->timeout) + +/**** Mutex ****/ +#define cg_http_server_lock(httpServer) cg_mutex_lock(httpServer->mutex) +#define cg_http_server_unlock(httpServer) cg_mutex_unlock(httpServer->mutex) + +/**************************************** +* Function (Server List) +****************************************/ + +CgHttpServerList *cg_http_serverlist_new(); +void cg_http_serverlist_delete(CgHttpServerList *httpServerList); + +#define cg_http_serverlist_clear(httpServerList) cg_list_clear((CgList *)httpServerList, (CG_LIST_DESTRUCTORFUNC)cg_http_server_delete) +#define cg_http_serverlist_size(httpServerList) cg_list_size((CgList *)httpServerList) +#define cg_http_serverlist_gets(httpServerList) (CgHttpServer *)cg_list_next((CgList *)httpServerList) +#define cg_http_serverlist_add(httpServerList, httpServer) cg_list_add((CgList *)httpServerList, (CgList *)httpServer) + +BOOL cg_http_serverlist_open(CgHttpServerList *httpServerList, int port); +BOOL cg_http_serverlist_close(CgHttpServerList *httpServerList); +BOOL cg_http_serverlist_start(CgHttpServerList *httpServerList); +BOOL cg_http_serverlist_stop(CgHttpServerList *httpServerList); +void cg_http_serverlist_setlistener(CgHttpServerList *httpServerList, CG_HTTP_LISTENER listener); +void cg_http_serverlist_setuserdata(CgHttpServerList *httpServerList, void *value); + +/**************************************** +* Function (Date) +****************************************/ + +char *cg_http_getdate(CgSysTime sysTime, char *buf, int bufSize); + +/**************************************** +* Persistent connection cache +****************************************/ + +/** Initialize persistent connection cache. Can be called many times */ +BOOL cg_http_persistentconnection_init(void); +/** Clear persistent connection cache and free all memory */ +void cg_http_persistentconnection_clear(void); +/** Lock persistent connection cache. Required for getting, putting and using + persistent connection from cache */ +void cg_http_persistentconnection_lock(void); +/** Unlock persistent connection cache. */ +void cg_http_persistentconnection_unlock(void); +/** Get persistent connection from cache */ +void *cg_http_persistentconnection_get(char *host, int port); +/** Put connection to persistent connection cache */ +BOOL cg_http_persistentconnection_put(char *host, int port, void *data); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/io/cfile.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/io/cfile.h new file mode 100644 index 0000000..608eb58 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/io/cfile.h @@ -0,0 +1,189 @@ +/****************************************************************** +* +* CyberIO for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cfile.h +* +* Revision: +* +* 02/1/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_IO_CFILE_H_ +#define _CG_IO_CFILE_H_ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(WIN32) || defined(WINCE) +#define CG_USE_CFILE 1 +#endif + +#if defined(CG_USE_CFILE) + +/**************************************** +* Define +****************************************/ + +#if defined(WIN32) +#define CG_FILE_SEPARATOR_CHAR '\\' +#define CG_FILE_PATH_SEPARATOR_CHAR ';' +#define CG_FILE_SEPARATOR "\\" +#define CG_FILE_PATH_SEPARATOR ";" +#else +#define CG_FILE_SEPARATOR_CHAR '/' +#define CG_FILE_PATH_SEPARATOR_CHAR ':' +#define CG_FILE_SEPARATOR "/" +#define CG_FILE_PATH_SEPARATOR ":" +#endif + +#define CG_FILE_READ_CHUNK_SIZE 1024 + +#define CG_FILE_OPEN_READ 0x01 +#define CG_FILE_OPEN_WRITE 0x02 +#define CG_FILE_OPEN_CREATE 0x04 + +#define CG_FILE_SEEK_SET 0x01 +#define CG_FILE_SEEK_CUR 0x02 +#define CG_FILE_SEEK_END 0x04 + +/**************************************** +* Data Type +****************************************/ + +typedef struct _CgFile { + BOOL headFlag; + struct _CgFile *prev; + struct _CgFile *next; + CgString *name; + CgString *path; + char *content; + FILE *fp; +} CgFile, CgFileList; + +/**************************************** +* Function +****************************************/ + +CgFile *cg_file_new(); +void cg_file_delete(CgFile *file); + +#define cg_file_next(file) (CgFile *)cg_list_next((CgList *)file) + +void cg_file_setname(CgFile *file, char *name); + +#define cg_file_setpath(file, value) cg_file_setname(file, value) +void cg_file_setfilename(CgFile *file, char *value); +#define cg_file_addfilename(file, value) cg_file_setfilename(file, value) + +char *cg_file_getname(CgFile *file); +long cg_file_getlength(CgFile *file); + +long cg_file_getlastmodified(CgFile *file); +long cg_file_getlength(CgFile *file); +BOOL cg_file_exists(CgFile *file); +BOOL cg_file_remove(CgFile *file); + +void cg_file_setcontent(CgFile *file, char *content); +char *cg_file_getcontent(CgFile *file); + +char *cg_file_getfilename(CgFile *file); +char *cg_file_getpath(CgFile *file); + +BOOL cg_file_load(CgFile *file); +BOOL cg_file_save(CgFile *file); + +int cg_file_listfiles(CgFile *file, CgFileList *fileList); + +#define cg_file_isseparatorchar(c) ((CG_FILE_SEPARATOR_CHAR == c) ? TRUE : FALSE) +#define cg_file_ispathseparatorchar(c) ((CG_FILE_PATH_SEPARATOR_CHAR == c) ? TRUE : FALSE) + +/* Raw Functions */ +BOOL cg_file_open(CgFile *file, int flag); +BOOL cg_file_close(CgFile *file); +BOOL cg_file_write(CgFile *file, CgByte *buf, int bufLen); +BOOL cg_file_read(CgFile *file, CgByte *buf, int bufLen); +BOOL cg_file_seek(CgFile *file, CgInt64, int whence); + +/**************************************** +* Function (File List) +****************************************/ + +/** + * Create a new file list + * + * \return File list + */ +CgFileList *cg_filelist_new(); + +/** + * Destroy a file list + * + * \param fileList The file list in question + */ +void cg_filelist_delete(CgFileList *fileList); + +/** + * Clear the contents of a file list + * + * \param fileList File list in question + */ +#define cg_filelist_clear(fileList) cg_list_clear((CgList *)fileList, (CG_LIST_DESTRUCTORFUNC)cg_file_delete) + +/** + * Get the size of a file list + * + * \param fileList The file list in question + */ +#define cg_filelist_size(fileList) cg_list_size((CgList *)fileList) + +/** + * Get the first actual item from a file list to use as an iterator + * + * \param fileList The file list in question + */ +#define cg_filelist_gets(fileList) (CgFile *)cg_list_next((CgList *)fileList) + +/** + * Add a file into a file list + * + * \param fileList The file list in question + * \param file The file to add to the list + */ +#define cg_filelist_add(fileList, file) cg_list_add((CgList *)fileList, (CgList *)file) + +/** + * Remove a file from file list + * + * \param fileList The file list in question + * \param file The file to be removed + */ +#define cg_filelist_remove(file) cg_list_remove((CgList *)file) + +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/net/cinterface.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/net/cinterface.h new file mode 100644 index 0000000..e277d8f --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/net/cinterface.h @@ -0,0 +1,155 @@ +/****************************************************************** +* +* CyberNet for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cinterface.h +* +* Revision: +* +* 02/09/05 +* - first revision +* 03/23/06 Theo Beisch +* - added localhost constants +* 09/12/07 +* - Added the following functions to get MAC address. +* cg_net_interface_setmacaddress(), cg_net_interface_getmacaddress() +* - Changed cg_net_gethostinterfaces() to get the MAC address using GetAdaptersInfo() as default on Windows platform. +* - Changed cg_net_gethostinterfaces() to get the MAC address using getifaddrs() on UNIX platform. +* Note : Other platforms might not support to get this functions yet. +* +******************************************************************/ + +#ifndef _CG_NET_CINTERFACE_H_ +#define _CG_NET_CINTERFACE_H_ + +#include +#include +#include + +#if !defined(WIN32) +#include +#include +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#define CG_NET_IPV4_ADDRSTRING_MAXSIZE ((3*4)+(1*3)+1) +#define CG_NET_IPV6_ADDRSTRING_MAXSIZE (1+(8*4)+(1*7)+1+1) + +#define CG_NET_IPV4_LOOPBACK "127.0.0.1" +#define CG_NET_IPV6_LOOPBACK "fixmelater" +#define CG_NET_MACADDR_SIZE 6 + +#if defined(BTRON) || defined(TENGINE) +#define CG_NET_DEFAULT_IFNAME "Neta" +#endif + +/**************************************** +* Data Type +****************************************/ + +typedef struct _CgNetworkInterface { + BOOL headFlag; + struct _CgNetworkInterface *prev; + struct _CgNetworkInterface *next; + CgString *name; + CgString *ipaddr; + CgString *netmask; + CgByte macaddr[CG_NET_MACADDR_SIZE]; + int index; +} CgNetworkInterface, CgNetworkInterfaceList; + +/**************************************** +* Function (NetworkInterface) +****************************************/ + +CgNetworkInterface *cg_net_interface_new(); +void cg_net_interface_delete(CgNetworkInterface *netIf); +CgNetworkInterface* cg_net_interface_getany(); + +#define cg_net_interface_next(netIf) (CgNetworkInterface *)cg_list_next((CgList *)netIf) +#define cg_net_interface_remove(netIf) cg_list_remove((CgList *)netIf) + +void cg_net_interface_setname(CgNetworkInterface *netIf, char *name); +char *cg_net_interface_getname(CgNetworkInterface *netIf); +void cg_net_interface_setaddress(CgNetworkInterface *netIf, char *ipaddr); +char *cg_net_interface_getaddress(CgNetworkInterface *netIf); +void cg_net_interface_setnetmask(CgNetworkInterface *netIf, char *ipaddr); +char *cg_net_interface_getnetmask(CgNetworkInterface *netIf); +char *cg_net_selectaddr(struct sockaddr *remoteaddr); + +#define cg_net_interface_setmacaddress(netIf, value) memcpy(netIf->macaddr, value, CG_NET_MACADDR_SIZE) +#define cg_net_interface_getmacaddress(netIf, buf) memcpy(buf, netIf->macaddr, CG_NET_MACADDR_SIZE) + +#define cg_net_interface_setindex(netIf, value) (netIf->index = value) +#define cg_net_interface_getindex(netIf, buf) (netIf->index) + +/** + * Compares two interfaces based on IP-address. + */ +int cg_net_interface_cmp(CgNetworkInterface *netIfA, + CgNetworkInterface *netIfB); + +/**************************************** +* Function (NetworkInterfaceList) +****************************************/ + +CgNetworkInterfaceList *cg_net_interfacelist_new(); +void cg_net_interfacelist_delete(CgNetworkInterfaceList *netIfList); + +#define cg_net_interfacelist_clear(netIfList) cg_list_clear((CgList *)netIfList, (CG_LIST_DESTRUCTORFUNC)cg_net_interface_delete) +#define cg_net_interfacelist_size(netIfList) cg_list_size((CgList *)netIfList) +#define cg_net_interfacelist_gets(netIfList) (CgNetworkInterface *)cg_list_next((CgList *)netIfList) +#define cg_net_interfacelist_add(netIfList,netIf) cg_list_add((CgList *)netIfList, (CgList *)netIf) + +CgNetworkInterface *cg_net_interfacelist_get(CgNetworkInterfaceList *netIfList, char *name); + +/** + * Gets changes in the two given (aka old and new) interface lists. Changes + * are resolved based on IP-addresses. + * + * @param netIfListOld List of the old interfaces. It is changed! + * @param netIfListNew List of the new interfaces. It is changed! + * @param netIfListAdded List to store interfaces, which were in netIfListNew, + * but were not in netIfListOld. May be NULL. + * @param netIfListRemoved List to store interfaces, which were in + * netIfListOld, but were not in netIfListNew. + */ +void cg_net_interfacelist_getchanges(CgNetworkInterfaceList *netIfListOld, + CgNetworkInterfaceList *netIfListNew, + CgNetworkInterfaceList *netIfListAdded, + CgNetworkInterfaceList *netIfListRemoved); + +/**************************************** +* Function +****************************************/ + +#if defined(ITRON) +void cg_net_setinterface(char *ifaddr); +#endif + +int cg_net_gethostinterfaces(CgNetworkInterfaceList *netIfList); + +BOOL cg_net_isipv6address(char *addr); +int cg_net_getipv6scopeid(char *addr); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/net/csocket.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/net/csocket.h new file mode 100644 index 0000000..1bbe9aa --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/net/csocket.h @@ -0,0 +1,233 @@ +/****************************************************************** +* +* CyberNet for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: csocket.h +* +* Revision: +* +* 01/17/05 +* - first revision +* 04/03/06 Theo Beisch +* - added WSAGetLastError support +* - changed socket_cleanup to return +* value to enable final Winsock close +******************************************************************/ + +#ifndef _CG_NET_CSOCKET_H_ +#define _CG_NET_CSOCKET_H_ + +#include +#include + +#if defined(CG_USE_OPENSSL) +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#define CG_NET_SOCKET_NONE 0 + +#define CG_NET_SOCKET_STREAM 0x01 +#define CG_NET_SOCKET_DGRAM 0x02 + +#define CG_NET_SOCKET_CLIENT 1 +#define CG_NET_SOCKET_SERVER 2 + +#define CG_NET_SOCKET_MAXHOST 32 +#define CG_NET_SOCKET_MAXSERV 32 + +#if defined(BTRON) || defined(TENGINE) +typedef W SOCKET; +#elif defined(ITRON) +typedef ER SOCKET; +#elif !defined(WIN32) && !defined(__CYGWIN__) +typedef int SOCKET; +#endif + +#define CG_SOCKET_LF '\n' + +#define CG_NET_SOCKET_DGRAM_RECV_BUFSIZE 512 +#define CG_NET_SOCKET_DGRAM_ANCILLARY_BUFSIZE 512 +#define CG_NET_SOCKET_MULTICAST_DEFAULT_TTL 4 +#define CG_NET_SOCKET_AUTO_IP_NET 0xa9fe0000 +#define CG_NET_SOCKET_AUTO_IP_MASK 0xffff0000 + +#if defined(ITRON) +#define CG_NET_SOCKET_WINDOW_BUFSIZE 4096 +#endif + +/**************************************** +* Define (SocketList) +****************************************/ + +#if defined(ITRON) +#define CG_NET_USE_SOCKET_LIST 1 +#endif + +/**************************************** +* Data Type +****************************************/ + +#if defined(CG_NET_USE_SOCKET_LIST) +#include +#endif + +typedef struct _CgSocket { +#if defined(CG_NET_USE_SOCKET_LIST) + BOOL headFlag; + struct _CgSocket *prev; + struct _CgSocket *next; +#endif + SOCKET id; + int type; + int direction; + CgString *ipaddr; + int port; +#if defined(ITRON) + UH *sendWinBuf; + UH *recvWinBuf; +#endif +#if defined(CG_USE_OPENSSL) + SSL_CTX* ctx; + SSL* ssl; +#endif +} CgSocket, CgSocketList; + +typedef struct _CgDatagramPacket { + CgString *data; + CgString *localAddress; + int localPort; + CgString *remoteAddress; + int remotePort; +} CgDatagramPacket; + +/**************************************** +* Function (Socket) +****************************************/ + +void cg_socket_startup(); +void cg_socket_cleanup(); + +CgSocket *cg_socket_new(int type); +#define cg_socket_stream_new() cg_socket_new(CG_NET_SOCKET_STREAM) +#define cg_socket_dgram_new() cg_socket_new(CG_NET_SOCKET_DGRAM) +int cg_socket_delete(CgSocket *socket); + +void cg_socket_setid(CgSocket *socket, SOCKET value); +#define cg_socket_getid(socket) (socket->id) + +#define cg_socket_settype(socket, value) (socket->type = value) +#define cg_socket_gettype(socket) (socket->type) +#define cg_socket_issocketstream(socket) ((socket->type & CG_NET_SOCKET_STREAM) ? TRUE : FALSE) +#define cg_socket_isdatagramstream(socket) ((socket->type & CG_NET_SOCKET_DGRAM) ? TRUE : FALSE) + +#define cg_socket_setdirection(socket, value) (socket->direction = value) +#define cg_socket_getdirection(socket) (socket->direction) +#define cg_socket_isclient(socket) ((socket->direction == CG_NET_SOCKET_CLIENT) ? TRUE : FALSE) +#define cg_socket_isserver(socket) ((socket->direction == CG_NET_SOCKET_SERVER) ? TRUE : FALSE) + +#define cg_socket_setaddress(socket, value) cg_string_setvalue(socket->ipaddr, value) +#define cg_socket_setport(socket, value) (socket->port = value) +#define cg_socket_getaddress(socket) cg_string_getvalue(socket->ipaddr) +#define cg_socket_getport(socket) (socket->port) + +BOOL cg_socket_isbound(CgSocket *socket); +BOOL cg_socket_close(CgSocket *socket); + +BOOL cg_socket_listen(CgSocket *socket); + +BOOL cg_socket_bind(CgSocket *sock, int bindPort, char *bindAddr, BOOL bindFlag, BOOL reuseFlag); +BOOL cg_socket_accept(CgSocket *sock, CgSocket *clientSock); +BOOL cg_socket_connect(CgSocket *sock, char *addr, int port); +int cg_socket_read(CgSocket *sock, char *buffer, int bufferLen); +int cg_socket_write(CgSocket *sock, char *buffer, int bufferLen); +int cg_socket_readline(CgSocket *sock, char *buffer, int bufferLen); +long cg_socket_skip(CgSocket *sock, long skipLen); + +int cg_socket_sendto(CgSocket *sock, char *addr, int port, char *data, int dataeLen); +int cg_socket_recv(CgSocket *sock, CgDatagramPacket *dgmPkt); + +int cg_socket_getlasterror(); + +/**************************************** +* Function (Multicast) +****************************************/ + +BOOL cg_socket_joingroup(CgSocket *sock, char *mcastAddr, char *ifAddr); + +/**************************************** +* Function (Option) +****************************************/ + +BOOL cg_socket_setreuseaddress(CgSocket *socket, BOOL flag); +BOOL cg_socket_setmulticastttl(CgSocket *sock, int ttl); +BOOL cg_socket_settimeout(CgSocket *sock, int sec); + +/**************************************** +* Function (DatagramPacket) +****************************************/ + +CgDatagramPacket *cg_socket_datagram_packet_new(); +void cg_socket_datagram_packet_delete(CgDatagramPacket *dgmPkt); + +#define cg_socket_datagram_packet_setdata(dgmPkt, value) cg_string_setvalue(dgmPkt->data, value) +#define cg_socket_datagram_packet_getdata(dgmPkt) cg_string_getvalue(dgmPkt->data) + +#define cg_socket_datagram_packet_setlocaladdress(dgmPkt, addr) cg_string_setvalue(dgmPkt->localAddress, addr) +#define cg_socket_datagram_packet_getlocaladdress(dgmPkt) cg_string_getvalue(dgmPkt->localAddress) +#define cg_socket_datagram_packet_setlocalport(dgmPkt, port) (dgmPkt->localPort = port) +#define cg_socket_datagram_packet_getlocalport(dgmPkt) (dgmPkt->localPort) +#define cg_socket_datagram_packet_setremoteaddress(dgmPkt, addr) cg_string_setvalue(dgmPkt->remoteAddress, addr) +#define cg_socket_datagram_packet_getremoteaddress(dgmPkt) cg_string_getvalue(dgmPkt->remoteAddress) +#define cg_socket_datagram_packet_setremoteport(dgmPkt, port) (dgmPkt->remotePort = port) +#define cg_socket_datagram_packet_getremoteport(dgmPkt) (dgmPkt->remotePort) + +void cg_socket_datagram_packet_copy(CgDatagramPacket *dstDgmPkt, CgDatagramPacket *srcDgmPkt); + +/**************************************** +* Function (SSLSocket) +****************************************/ + +#if defined(CG_USE_OPENSSL) +#define CG_NET_SOCKET_SSL 0x0100 +#define cg_socket_ssl_new() cg_socket_new(CG_NET_SOCKET_STREAM | CG_NET_SOCKET_SSL) +#define cg_socket_isssl(socket) ((socket->type & CG_NET_SOCKET_SSL) ? TRUE : FALSE) +#endif + +/**************************************** +* Function (SocketList) +****************************************/ + +#if defined(CG_NET_USE_SOCKET_LIST) + +#define cg_socket_next(sock) (CgSocket *)cg_list_next((CgList *)sock) + +CgSocketList *cg_socketlist_new(); +void cg_socketlist_delete(CgSocketList *sockList); + +#define cg_socketlist_clear(sockList) cg_list_clear((CgList *)sockList, (CG_LIST_DESTRUCTORFUNC)cg_socket_delete) +#define cg_socketlist_size(sockList) cg_list_size((CgList *)sockList) +#define cg_socketlist_gets(sockList) (CgSocket *)cg_list_next((CgList *)sockList) +#define cg_socketlist_add(sockList, sock) cg_list_add((CgList *)sockList, (CgList *)sock) + +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/net/curi.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/net/curi.h new file mode 100644 index 0000000..b4b9484 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/net/curi.h @@ -0,0 +1,146 @@ +/****************************************************************** +* +* CyberUtil for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: curl.h +* +* Revision: +* +* 03/09/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_NET_CURI_H_ +#define _CG_NET_CURI_H_ + +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#define CG_NET_URI_KNKOWN_PORT (-1) +#define CG_NET_URI_DEFAULT_HTTP_PORT 80 +#define CG_NET_URI_DEFAULT_FTP_PORT 21 +#define CG_NET_URI_DEFAULT_PATH "/" +#define CG_NET_URI_MAXLEN 256 + +#define CG_NET_URI_PROTOCOL_DELIM "://" +#define CG_NET_URI_USER_DELIM "@" +#define CG_NET_URI_COLON_DELIM ":" +#define CG_NET_URI_SLASH_DELIM "/" +#define CG_NET_URI_SBLACET_DELIM "[" +#define CG_NET_URI_EBLACET_DELIM "]" +#define CG_NET_URI_SHARP_DELIM "#" +#define CG_NET_URI_QUESTION_DELIM "?" +#define CG_NET_URI_ESCAPING_CHAR "%" +#define CG_NET_URI_AMP_DELIM "&" +#define CG_NET_URI_EQ_DELIM "=" + +#define CG_NET_URI_PROTOCOL_HTTP "http" +#define CG_NET_URI_PROTOCOL_FTP "ftp" + +/**************************************** +* Data Type +****************************************/ + +typedef struct _CgNetURI { + CgString *uri; + CgString *protocol; + CgString *user; + CgString *password; + CgString *host; + int port; + CgString *path; + CgString *query; + CgString *fragment; + CgString *request; + CgDictionary *queryDictionary; +} CgNetURI; + +/**************************************** +* Function +****************************************/ + +CgNetURI *cg_net_uri_new(); +void cg_net_uri_delete(CgNetURI *uri); +void cg_net_uri_clear(CgNetURI *uri); +void cg_net_uri_setvalue(CgNetURI *uri, char *value); +void cg_net_uri_rebuild(CgNetURI *uri); +char *cg_net_uri_getvalue(CgNetURI *uri); + +#define cg_net_uri_set(urip, value) cg_net_uri_setvalue(urip, value) + +#define cg_net_uri_seturi(urip, value) cg_string_setvalue(urip->uri, value) +#define cg_net_uri_setprotocol(urip, value) cg_string_setvalue(urip->protocol, value) +#define cg_net_uri_setuser(urip, value) cg_string_setvalue(urip->user, value) +#define cg_net_uri_setpassword(urip, value) cg_string_setvalue(urip->password, value) +#define cg_net_uri_sethost(urip, value) cg_string_setvalue(urip->host, value) +#define cg_net_uri_setport(urip, value) (urip->port = value) +#define cg_net_uri_setpath(urip, value) cg_string_setvalue(urip->path, value) +#define cg_net_uri_addpath(urip, value) cg_string_addvalue(urip->path, value) +#define cg_net_uri_setquery(urip, value) cg_string_setvalue(urip->query, value) +#define cg_net_uri_setfragment(urip, value) cg_string_setvalue(urip->fragment, value) + +#define cg_net_uri_geturi(urip) cg_string_getvalue(urip->uri) +#define cg_net_uri_getprotocol(urip) cg_string_getvalue(urip->protocol) +#define cg_net_uri_getuser(urip) cg_string_getvalue(urip->user) +#define cg_net_uri_getpassword(urip) cg_string_getvalue(urip->password) +#define cg_net_uri_gethost(urip) cg_string_getvalue(urip->host) +#define cg_net_uri_getport(urip) (urip->port) +#define cg_net_uri_getpath(urip) cg_string_getvalue(urip->path) +#define cg_net_uri_getquery(urip) cg_string_getvalue(urip->query) +#define cg_net_uri_getfragment(urip) cg_string_getvalue(urip->fragment) + +char *cg_net_uri_getrequest(CgNetURI *uri); +char *cg_net_uri_getupnpbasepath(CgNetURI *locationURL); + +#define cg_net_uri_hasuri(urip) ((0 < cg_string_length(urip->uri)) ? TRUE : FALSE) +#define cg_net_uri_hasprotocol(urip) ((0 < cg_string_length(urip->protocol)) ? TRUE : FALSE) +#define cg_net_uri_hasuser(urip) ((0 < cg_string_length(urip->user)) ? TRUE : FALSE) +#define cg_net_uri_haspassword(urip) ((0 < cg_string_length(urip->password)) ? TRUE : FALSE) +#define cg_net_uri_hashost(urip) ((0 < cg_string_length(urip->host)) ? TRUE : FALSE) +#define cg_net_uri_hasport(urip) ((0 < urip->port) ? TRUE : FALSE) +#define cg_net_uri_haspath(urip) ((0 < cg_string_length(urip->path)) ? TRUE : FALSE) +#define cg_net_uri_hasquery(urip) ((0 < cg_string_length(urip->query)) ? TRUE : FALSE) +#define cg_net_uri_hasfragment(urip) ((0 < cg_string_length(urip->fragment)) ? TRUE : FALSE) +#define cg_net_uri_hasrequest(urip) cg_net_uri_haspath(urip) + +#define cg_net_uri_ishttpprotocol(urip) cg_streq(cg_string_getvalue(urip->protocol), CG_NET_URI_PROTOCOL_HTTP) + +#define cg_net_uri_isabsolute(urip) cg_net_uri_hasprotocol(urip) +#define cg_net_uri_isabsolutepath(uripath) (( *uripath == '/' ) ? TRUE : FALSE ) +#define cg_net_uri_isrelative(urip) ((cg_net_uri_hasprotocol(urip) == TRUE) ? FALSE : TRUE) + +BOOL cg_net_uri_isreservedchar(char c); +BOOL cg_net_uri_isunreservedchar(char c); +BOOL cg_net_uri_isescapechar(char c); +BOOL cg_net_uri_isalphanumchar(char c); + +BOOL cg_net_uri_isescapedstring(char *buf, int bufSize); +char *cg_net_uri_escapestring(char *buf, int bufSize, CgString *retBuf); +char *cg_net_uri_unescapestring(char *buf, int bufSize, CgString *retBuf); +BOOL cg_net_uri_isequivalent(char *url, char *relative_url); + +CgDictionary *cg_net_uri_getquerydictionary(CgNetURI *uri); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/net/curl.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/net/curl.h new file mode 100644 index 0000000..2da3f37 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/net/curl.h @@ -0,0 +1,106 @@ +/****************************************************************** +* +* CyberUtil for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: curl.h +* +* Revision: +* +* 03/09/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_NET_CURL_H_ +#define _CG_NET_CURL_H_ + +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +/**************************************** +* Data Type +****************************************/ + +typedef struct _CgNetURI CgNetURL; + +/**************************************** +* Function +****************************************/ + +#define cg_net_url_new() cg_net_uri_new() +#define cg_net_url_delete(urip) cg_net_uri_delete(urip); +#define cg_net_url_clear(urip) cg_net_uri_clear(urip); + +#define cg_net_url_set(urip, value) cg_net_uri_set(urip, value) +#define cg_net_url_setvalue(urip, value) cg_net_uri_setvalue(urip, value) +#define cg_net_url_rebuild(urip) cg_net_uri_rebuild(urip) +#define cg_net_url_getvalue(urip) cg_net_uri_getvalue(urip) + +#define cg_net_url_seturi(urip, value) cg_string_setvalue(urip->uri, value) +#define cg_net_url_setprotocol(urip, value) cg_string_setvalue(urip->protocol, value) +#define cg_net_url_setuser(urip, value) cg_string_setvalue(urip->user, value) +#define cg_net_url_setpassword(urip, value) cg_string_setvalue(urip->password, value) +#define cg_net_url_sethost(urip, value) cg_string_setvalue(urip->host, value) +#define cg_net_url_setport(urip, value) (urip->port = value) +#define cg_net_url_setpath(urip, value) cg_string_setvalue(urip->path, value) +#define cg_net_url_addpath(urip, value) cg_net_uri_addpath(urip, value) +#define cg_net_url_setquery(urip, value) cg_string_setvalue(urip->query, value) +#define cg_net_url_setfragment(urip, value) cg_string_setvalue(urip->fragment, value) + +#define cg_net_url_geturi(urip) cg_string_getvalue(urip->uri) +#define cg_net_url_getprotocol(urip) cg_string_getvalue(urip->protocol) +#define cg_net_url_getuser(urip) cg_string_getvalue(urip->user) +#define cg_net_url_getpassword(urip) cg_string_getvalue(urip->password) +#define cg_net_url_gethost(urip) cg_string_getvalue(urip->host) +#define cg_net_url_getport(urip) (urip->port) +#define cg_net_url_getpath(urip) cg_string_getvalue(urip->path) +#define cg_net_url_getquery(urip) cg_string_getvalue(urip->query) +#define cg_net_url_getfragment(urip) cg_string_getvalue(urip->fragment) +#define cg_net_url_getrequest(urip) cg_net_uri_getrequest(urip) + +#define cg_net_url_hasuri(urip) ((0 < cg_string_length(urip->uri)) ? TRUE : FALSE) +#define cg_net_url_hasprotocol(urip) ((0 < cg_string_length(urip->protocol)) ? TRUE : FALSE) +#define cg_net_url_hasuser(urip) ((0 < cg_string_length(urip->user)) ? TRUE : FALSE) +#define cg_net_url_haspassword(urip) ((0 < cg_string_length(urip->password)) ? TRUE : FALSE) +#define cg_net_url_hashost(urip) ((0 < cg_string_length(urip->host)) ? TRUE : FALSE) +#define cg_net_url_hasport(urip) ((0 < urip->port) ? TRUE : FALSE) +#define cg_net_url_haspath(urip) ((0 < cg_string_length(urip->path)) ? TRUE : FALSE) +#define cg_net_url_hasquery(urip) ((0 < cg_string_length(urip->query)) ? TRUE : FALSE) +#define cg_net_url_hasfragment(urip) ((0 < cg_string_length(urip->fragment)) ? TRUE : FALSE) +#define cg_net_url_hasrequest(urip) cg_net_uri_hasrequest(urip) + +#define cg_net_url_ishttpprotocol(urip) cg_streq(cg_string_getvalue(urip->protocol), CG_NET_URI_PROTOCOL_HTTP) + +#define cg_net_url_isabsolute(uripath) cg_net_uri_hasprotocol(uripath) +#define cg_net_url_isrelative(urip) ((cg_net_uri_hasprotocol(urip) == TRUE) ? FALSE : TRUE) +#define cg_net_url_isabsolutepath(uripath) cg_net_uri_isabsolutepath(uripath) + +#define cg_net_url_getupnpbasepath(urip) cg_net_uri_getupnpbasepath(urip); + +char *cg_net_gethosturl(char *host, int port, char *uri, char *buf, int bufSize); +char *cg_net_getmodifierhosturl(char *host, int port, char *uri, char *buf, int bufSize, char *begin, char *end); + +#define cg_net_url_getquerydictionary(urip) cg_net_uri_getquerydictionary(urip); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/soap/csoap.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/soap/csoap.h new file mode 100644 index 0000000..dc02410 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/soap/csoap.h @@ -0,0 +1,148 @@ +/****************************************************************** +* +* CyberSOAP for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: csoap.h +* +* Revision: +* +* 02/13/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_SOAP_CSOAP_H_ +#define _CG_SOAP_CSOAP_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#define CG_SOAP_VERSION_HEADER "" + +#define CG_HTTP_SOAP_ACTION "SOAPACTION" +#define CG_HTTP_SOAP_URN_DELIM ":" + +#define CG_SOAP_ENVELOPE "Envelope" +#define CG_SOAP_BODY "Body" +#define CG_SOAP_RESPONSE "Response" +#define CG_SOAP_FAULT "Fault" +#define CG_SOAP_FAULT_CODE "faultcode" +#define CG_SOAP_FAULT_STRING "faultstring" +#define CG_SOAP_FAULTACTOR "faultactor" +#define CG_SOAP_DETAIL "detail" + +#define CG_SOAP_ATTRIBUTE_XMLNS "xmlns" + +#define CG_SOAP_XMLNS "s" +#define CG_SOAP_METHODNS "u" +#define CG_SOAP_DELIM ":" + +#define CG_SOAP_XMLNS_URL "http://schemas.xmlsoap.org/soap/envelope/" +#define CG_SOAP_ENCSTYLE_URL "http://schemas.xmlsoap.org/soap/encoding/" + +#define CG_SOAP_CONTENT_TYPE "text/xml; charset=\"utf-8\"" +#define CG_SOAP_ENCORDING "encodingStyle" + +/**************************************** +* Data Type +****************************************/ + +typedef struct _CgSoapResponse { + CgHttpResponse *httpRes; + BOOL isHttpResCreated; + CgXmlNodeList *rootNodeList; + void *userData; +} CgSoapResponse; + +typedef struct _CgSoapRequest{ + CgHttpRequest *httpReq; + BOOL isHttpReqCreated; + CgXmlNode *rootNodeList; + CgSoapResponse *soapRes; + void *userData; +} CgSoapRequest; + +/**************************************** +* Function (Request) +****************************************/ + +CgSoapRequest *cg_soap_request_new(); +void cg_soap_request_delete(CgSoapRequest *soapReq); +void cg_soap_request_clear(CgSoapRequest *soapReq); + +BOOL cg_soap_request_sethttprequest(CgSoapRequest *soapReq, CgHttpRequest *httpReq); +#define cg_soap_request_gethttprequest(soapReq) (soapReq->httpReq) + +#define cg_soap_request_setsoapaction(soapReq, name) cg_http_packet_setheadervalue((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_SOAP_ACTION, name) +#define cg_soap_request_getsoapaction(soapReq) cg_http_packet_getheadervalue((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_SOAP_ACTION) +#define cg_soap_request_getsoapactionwithns(soapReq) cg_http_packet_getheadervalue((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_SOAP_ACTION_WITH_NS) + +BOOL cg_soap_request_parsemessage(CgSoapRequest *soapReq, char *msg, int msgLen); +CgSoapResponse *cg_soap_request_post(CgSoapRequest *soapReq, char *ipaddr, int port); +#define cg_soap_request_getsoapresponse(soapReq) (soapReq->soapRes) + +#define cg_soap_request_getrootnoodelist(soapReq) (soapReq->rootNodeList) +#define cg_soap_request_getrootnoode(soapReq) cg_xml_nodelist_gets(soapReq->rootNodeList) +#define cg_soap_request_getenvelopenode(soapReq) cg_xml_nodelist_gets(soapReq->rootNodeList) +CgXmlNode *cg_soap_request_getbodynode(CgSoapRequest *soapReq); + +void cg_soap_request_setcontent(CgSoapRequest *soapReq, CgXmlNode *node); +#define cg_soap_request_createcontent(soapReq) cg_soap_request_setcontent(soapReq, cg_soap_request_getenvelopenode(soapReq)) + +/**** User Data ****/ +#define cg_soap_request_setuserdata(soapReq, value) (soapReq->userData = value) +#define cg_soap_request_getuserdata(soapReq) (soapReq->userData) + +/**************************************** +* Function (Response) +****************************************/ + +CgSoapResponse *cg_soap_response_new(); +void cg_soap_response_delete(CgSoapResponse *soapRes); +void cg_soap_response_clear(CgSoapResponse *soapRes); + +void cg_soap_response_sethttpresponse(CgSoapResponse *soapRes, CgHttpResponse *httpRes); +#define cg_soap_response_gethttpresponse(soapRes) (soapRes->httpRes) + +#define cg_soap_response_getrootnoodelist(soapRes) (soapRes->rootNodeList); +#define cg_soap_response_getrootnoode(soapRes) cg_xml_nodelist_gets(soapRes->rootNodeList); +#define cg_soap_response_getenvelopenode(soapRes) cg_xml_nodelist_gets(soapRes->rootNodeList); +CgXmlNode *cg_soap_response_getbodynode(CgSoapResponse *soapRes); + +void cg_soap_response_setcontent(CgSoapResponse *soapRes, CgXmlNode *node); +#define cg_soap_response_createcontent(soapRes) cg_soap_response_setcontent(soapRes, cg_soap_response_getenvelopenode(soapRes)) + +#define cg_soap_response_getstatuscode(soapRes) cg_http_response_getstatuscode(soapRes->httpRes) +#define cg_soap_response_issuccessful(soapRes) cg_http_response_issuccessful(soapRes->httpRes) + +/**** User Data ****/ +#define cg_soap_response_setuserdata(soapRes, value) (soapRes->userData = value) +#define cg_soap_response_getuserdata(soapRes) (soapRes->userData) + +/**************************************** +* Function +****************************************/ + +CgXmlNode *cg_soap_createenvelopebodynode(); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/typedef.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/typedef.h new file mode 100644 index 0000000..2f28713 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/typedef.h @@ -0,0 +1,102 @@ +/****************************************************************** +* +* CyberGarage for C +* +* Copyright (C) Satoshi Konno 2005 +* +* File: typedef.h +* +* Revision: +* +* 01/17/05 +* - first revision +* 08/16/05 +* - Thanks for Theo Beisch +* - Added support for WindowsCE platform. +* 03/18/07 +* - Added CgInt64 to +* 06/24/07 +* - Added CgByte to +* 03/18/08 +* - Changed not to define BOOL type using XCode. +* 09/03/08 +* - Changed to include in on XCode as default. +* +******************************************************************/ + +#ifndef _CG_TYPEDEF_H_ +#define _CG_TYPEDEF_H_ + +#include +#include + +#if defined(WINCE) && !defined(WIN32) +#define WIN32 1 +#endif + +#if (defined(WIN32) || defined(__CYGWIN__)) && !defined (ITRON) +#include +#include +#elif defined(BTRON) || defined(TENGINE) +#include +#elif defined(ITRON) +#include +#endif + +#if defined(__GNUC__) && ( defined(__APPLE_CPP__) || defined(__APPLE_CC__) ) +#include +#endif + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Data Type +****************************************/ + +#if !defined(BOOL) && !defined(BTRON) && !defined(TENGINE) && !defined(__OBJC__) +typedef int BOOL; +#endif + +#if !defined(TRUE) +#if defined(__OBJC__) +#define TRUE YES +#else +#define TRUE (1) +#endif +#endif + +#if !defined(FALSE) +#if defined(__OBJC__) +#define FALSE NO +#else +#define FALSE (0) +#endif +#endif + +typedef unsigned char CgByte; + +#if defined(__USE_ISOC99) || defined(__GCC__) +typedef long long int CgInt64; +#define CG_USE_INT64 1 +#elif defined(HAVE_LONGLONG) +typedef long long CgInt64; +#define CG_USE_INT64 1 +#elif (defined(WIN32) || defined(WINCE)) +typedef __int64 CgInt64; +#define CG_USE_INT64 1 +#else +typedef long CgInt64; +#undef CG_USE_INT64 +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/caction.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/caction.h new file mode 100644 index 0000000..edce1be --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/caction.h @@ -0,0 +1,369 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: caction.h +* +* Revision: +* +* 02/23/05 +* - first revision +* +* 18-Jan-06 Heikki Junnila +* - Added API comments +* +******************************************************************/ + +#ifndef _CG_UPNP_CACTION_H_ +#define _CG_UPNP_CACTION_H_ + +#include +#include +#include +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#define CG_UPNP_ACTION_ELEM_NAME "action" +#define CG_UPNP_ACTIONLIST_ELEM_NAME "actionList" + +#define CG_UPNP_ACTION_NAME "name" + +/**************************************** +* Data Type +****************************************/ + +typedef struct _CgUpnpAction { + BOOL headFlag; + struct _CgUpnpAction *prev; + struct _CgUpnpAction *next; + void *parentService; + CgXmlNode *actionNode; + CgUpnpArgumentList *argumentList; + /**** Execution Data ****/ + BOOL (*listener)(struct _CgUpnpAction *); + CgUpnpStatus *upnpStatus; + void *userData; +} CgUpnpAction, CgUpnpActionList; + +typedef BOOL (*CG_UPNP_ACTION_LISTNER)(CgUpnpAction *); + +/**************************************************************************** + * Function (Action) + ****************************************************************************/ + +/** + * Create a new action + * + * @return CgUpnpAction* + */ +CgUpnpAction *cg_upnp_action_new(); + +/** + * Destroy an action + * + * @param action The action to destroy + */ +void cg_upnp_action_delete(CgUpnpAction *action); + +/** + * Get the next action in a list of actions. Use as an iterator. + * + * @param action The current action + */ +#define cg_upnp_action_next(action) (CgUpnpAction *)cg_list_next((CgList *)action) + +/** + * Check, whether the given XML node is an action node + * + * @param node The CgXmlNode* + */ +#define cg_upnp_action_isactionnode(node) cg_xml_node_isname(node, CG_UPNP_ACTION_ELEM_NAME) + +/**************************************************************************** + * XML Node + ****************************************************************************/ + +/** + * Set the action's XML node (i.e. the XML representation of the action) + * + * @param action The action in question + * @param node The CgXmlNode* + */ +void cg_upnp_action_setactionnode(CgUpnpAction *action, CgXmlNode *node); + +/** + * Get the action's XML node (i.e. the XML representation of the action) + * + * @param action The action in question + * @return CgXmlNode* + */ +#define cg_upnp_action_getactionnode(action) (action->actionNode) + +/**************************************************************************** + * Service + ****************************************************************************/ + +/** + * Set the action's parent service + * + * @param action The action in question + * @param service The action's parent service + */ +#define cg_upnp_action_setservice(action, service) (action->parentService = service) + +/** + * Get the action's parent service + * + * @param action The action in question + * @return CgUpnpService* + */ +#define cg_upnp_action_getservice(action) ((CgUpnpService *)action->parentService) + +/**************************************************************************** + * Name + ****************************************************************************/ + +/** + * Set the action's name + * + * @param action The action in question + * @param value The action's name + */ +#define cg_upnp_action_setname(action, value) cg_xml_node_setchildnode(cg_upnp_action_getactionnode(action), CG_UPNP_ACTION_NAME, value) + +/** + * Get the action's name + * + * @param action The action in question + * @return char* + */ +#define cg_upnp_action_getname(action) cg_xml_node_getchildnodevalue(cg_upnp_action_getactionnode(action), CG_UPNP_ACTION_NAME) + +/** + * Check, whether the action's name matches the one given as parameter. + * + * @param action The action in question + * @param name The name string to compare + */ +#define cg_upnp_action_isname(action, name) cg_streq(cg_upnp_action_getname(action), name) + +/**************************************************************************** + * Argument + ****************************************************************************/ + +/** + * Get the action's list of arguments + * + * @param action The action in question + * @return CgUpnpArgumentList* + */ +#define cg_upnp_action_getargumentlist(action) (action->argumentList) + +/** + * Get the first argument from the action's list of arguments. Use as the + * starting point in iteration loops. + * + * @param action The action in question + * @return CgUpnpArgument* + */ +#define cg_upnp_action_getarguments(action) ((CgUpnpArgument *)cg_list_next((CgList *)action->argumentList)) + +/** + * Find an argument from the action by the argument's name. + * + * @param action The action in question + * @param name The name of the argument to look for + * @return CgUpnpArgument* if successfull; otherwise NULL + */ +CgUpnpArgument *cg_upnp_action_getargumentbyname(CgUpnpAction *action, char *name); + +/** + * Find out, whether the action has an argument by the given name + * + * @param action The action in question + * @param name The name to look for + * @return TRUE if the action has the argument; otherwise FALSE + */ +#define cg_upnp_action_hasargumentbyname(action,name) ((cg_upnp_action_getargumentbyname(action,name) != NULL) ? TRUE : FALSE) + +/** + * Get a value of the specified argument from the action by the argument's name directly. + * + * @param action The action in question + * @param name The name of the argument to look for + * @return char* if successfull; otherwise NULL + */ +char *cg_upnp_action_getargumentvaluebyname(CgUpnpAction *action, char *name); + +/** + * Set a value of the specified argument from the action by the argument's name directly. + * + * @param action The action in question + * @param name The name of the argument to look for + * @param value The value to set + * @return TRUE if successfull; otherwise NO + */ +BOOL cg_upnp_action_setargumentvaluebyname(CgUpnpAction *action, char *name, char *value); + +/**************************************************************************** + * Function (Action - Execution Data) + ****************************************************************************/ + +/**************************************************************************** + * UPnPStatus + ****************************************************************************/ + +/** + * Set the action's latest status code + * + * @param action The action in question + * @param code The status code (int) + */ +#define cg_upnp_action_setstatuscode(action, code) cg_upnp_status_setcode(action->upnpStatus, code) + +/** + * Get the action's latest status code + * + * @param action The action in question + * @return int + */ +#define cg_upnp_action_getstatuscode(action) cg_upnp_status_getcode(action->upnpStatus) + +/** + * Set the action's latest status description + * + * @param action The action in question + * @param value The status description string + */ +#define cg_upnp_action_setstatusdescription(action, value) cg_upnp_status_setdescription(action->upnpStatus, value) + +/** + * Get the action's latest status description + * + * @param action The action in question + * @return char* + */ +#define cg_upnp_action_getstatusdescription(action) cg_upnp_status_getdescription(action->upnpStatus) + +/**************************************************************************** + * Listener + ****************************************************************************/ + +/** + * Set the action's listener function + * + * @param action The action in question + * @param func The listener function of type: BOOL (*CG_UPNP_ACTION_LISTNER)(CgUpnpAction *) + */ +#define cg_upnp_action_setlistener(action, func) (action->listener = func) + +/** + * Get the action's listener function + * + * @param action The action in question + * @return BOOL (*CG_UPNP_ACTION_LISTNER)(CgUpnpAction *) + */ +#define cg_upnp_action_getlistener(action) (action->listener) + +/** + * @deprecated Compatibility macro for typo correction + */ +#define cg_upnp_action_setlistner cg_upnp_action_setlistener + +/** + * @deprecated Compatibility macro for typo correction + */ +#define cg_upnp_action_getlistner cg_upnp_action_getlistener + +/**************************************************************************** + * User Data + ****************************************************************************/ + +/** + * Set the action's arbitrary user data pointer + * + * @param action The action in question + * @param value The user data pointer (void*) + */ +#define cg_upnp_action_setuserdata(action, value) (action->userData = value) + +/** + * Get the action's arbitrary user data pointer + * + * @param action The action in question + * @return void* + */ +#define cg_upnp_action_getuserdata(action) (action->userData) + +/**************************************************************************** + * Function (ActionList) + ****************************************************************************/ + +/** + * Create a new list of actions + * + * @return CgUpnpActionList* + */ +CgUpnpActionList *cg_upnp_actionlist_new(); + +/** + * Destroy a list of actions + * + * @param actionList The list of actions to destroy + */ +void cg_upnp_actionlist_delete(CgUpnpActionList *actionList); + +/** + * Clear the contents of a list of actions + * + * @param actionList The list of actions to clear + */ +#define cg_upnp_actionlist_clear(actionList) cg_list_clear((CgList *)actionList, (CG_LIST_DESTRUCTORFUNC)cg_upnp_action_delete) + +/** + * Get the number of actions in a list of actions + * + * @param actionList The list in question + * @return int + */ +#define cg_upnp_actionlist_size(actionList) cg_list_size((CgList *)actionList) + +/** + * Get the first action in a list of actions. Use as the starting point in + * iteration loops. + * + * @param actionList The list in question + * @return CgUpnpAction* + */ +#define cg_upnp_actionlist_gets(actionList) (CgUpnpAction *)cg_list_next((CgList *)actionList) + +/** + * Add an action to a list of actions + * + * @param actionList The list in question + * @param action The action to add to the list + */ +#define cg_upnp_actionlist_add(actionList, action) cg_list_add((CgList *)actionList, (CgList *)action) + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cargument.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cargument.h new file mode 100644 index 0000000..ef694f5 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cargument.h @@ -0,0 +1,362 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cargument.h +* +* Revision: +* +* 02/23/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UPNP_CARGUMENT_H_ +#define _CG_UPNP_CARGUMENT_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +/** Definition for argument element name */ +#define CG_UPNP_ARGUMENT_ELEM_NAME "argument" + +/** Definition for argument list element name */ +#define CG_UPNP_ARGUMENTLIST_ELEM_NAME "argumentList" + +/** Definition for argument passing direction (in) */ +#define CG_UPNP_ARGUMENT_IN_DIR "in" + +/** Definition for argument passing direction (out) */ +#define CG_UPNP_ARGUMENT_OUT_DIR "out" + +/** Definition for argument element name */ +#define CG_UPNP_ARGUMENT_NAME "name" + +/** Definition for argument element "direction" */ +#define CG_UPNP_ARGUMENT_DIRECTION "direction" + +/** Definition for argument related state variable */ +#define CG_UPNP_ARGUMENT_RELATED_STATE_VARIABLE "relatedStateVariable" + +/**************************************** +* Data Type +****************************************/ + +/** + * Data type definition for UPnP argument and UPnP argument list + */ +typedef struct _CgUpnpArgument { + BOOL headFlag; + struct _CgUpnpArgument *prev; + struct _CgUpnpArgument *next; + CgXmlNode *serviceNode; + CgXmlNode *argumentNode; + /**** Execution Data ****/ + CgString *value; +} CgUpnpArgument, CgUpnpArgumentList; + +/**************************************** +* Function (Argument) +****************************************/ + +/** + * Create new argument + */ +CgUpnpArgument *cg_upnp_argument_new(); + +/** + * Delete argument + * + * @param dev Argument + */ +void cg_upnp_argument_delete(CgUpnpArgument *dev); + +/** + * Get next argument using argument as iterator + * + * @param arg Argument node + */ +#define cg_upnp_argument_next(arg) (CgUpnpArgument *)cg_list_next((CgList *)arg) + +/** + * Check if XML node is argument node + * + * @param node XML node + * + * @return True if node is argument node, false otherwise + */ +#define cg_upnp_argument_isargumentnode(node) cg_xml_node_isname(node, CG_UPNP_ARGUMENT_ELEM_NAME) + +/** + * Set XML service node for argument + * + * @param arg Argument + * @param node XML service node + */ +#define cg_upnp_argument_setservicenode(arg,node) (arg->serviceNode = node) + +/** + * Get service node from argument + * + * @param arg Argument + */ +#define cg_upnp_argument_getservicenode(arg) (arg->serviceNode) + +/** + * Set XML argument node for argument + * + * @param arg Argument + * @param node XML argument node + */ +#define cg_upnp_argument_setargumentnode(arg,node) (arg->argumentNode = node) + +/** + * Get XML argument node from argument + * + * @param arg Argument + */ +#define cg_upnp_argument_getargumentnode(arg) (arg->argumentNode) + +/**** name ****/ + +/** + * Set name for argument + * + * @param arg Argument + * @param value Argument name + */ +#define cg_upnp_argument_setname(arg, value) cg_xml_node_setchildnode(cg_upnp_argument_getargumentnode(arg), CG_UPNP_ARGUMENT_NAME, value) + +/** + * Get argument name + * + * @param arg Argument + */ +#define cg_upnp_argument_getname(arg) cg_xml_node_getchildnodevalue(cg_upnp_argument_getargumentnode(arg), CG_UPNP_ARGUMENT_NAME) + +/** + * Check if current argument name matches with the provided name + * + * @param arg Argument + * @param name Name matched with argument name + * + * @return True if argument name equals with the provided name, false otherwise + */ +#define cg_upnp_argument_isname(arg, name) cg_streq(cg_upnp_argument_getname(arg), name) + +/**** direction ****/ + +/** + * Set direction for argument + * + * @param arg Argument + * @param value New direction value + */ +#define cg_upnp_argument_setdirection(arg, value) cg_xml_node_setchildnode(cg_upnp_argument_getargumentnode(arg), CG_UPNP_ARGUMENT_DIRECTION, value) + +/** + * Get argument direction + * + * @param arg Argument + * + * @return Argument direction + */ +#define cg_upnp_argument_getdirection(arg) cg_xml_node_getchildnodevalue(cg_upnp_argument_getargumentnode(arg), CG_UPNP_ARGUMENT_DIRECTION) + +/** + * Check if argument direction is "in" + * + * @param arg Argument + * + * @return True if argument directon is "in" + */ +#define cg_upnp_argument_isindirection(arg) cg_streq(cg_upnp_argument_getdirection(arg), CG_UPNP_ARGUMENT_IN_DIR) + +/** + * Check if argument direction is "out" + * + * @param arg Argument + * + * @return True if argument direction is "out" + */ +#define cg_upnp_argument_isoutdirection(arg) cg_streq(cg_upnp_argument_getdirection(arg), CG_UPNP_ARGUMENT_OUT_DIR) + +/**** relatedStateVariable ****/ + +/** + * Set related state variable + * + * @param arg Argument + * @param value Related state variable name + */ +#define cg_upnp_argument_setrelatedstatevariable(arg, value) cg_xml_node_setchildnode(cg_upnp_argument_getargumentnode(arg), CG_UPNP_ARGUMENT_RELATED_STATE_VARIABLE, value) + +/** + * Get related state variable + * + * @param arg Argument + * + * @return String representing the related state variable + */ +#define cg_upnp_argument_getrelatedstatevariable(arg) cg_xml_node_getchildnodevalue(cg_upnp_argument_getargumentnode(arg), CG_UPNP_ARGUMENT_RELATED_STATE_VARIABLE) + +/**************************************** +* Function (Argument - Execution Data) +****************************************/ + +/**** value ****/ + +/** + * Set argument value + * + * @param arg Argument + * @param data Argument value + */ +#define cg_upnp_argument_setvalue(arg,data) cg_string_setvalue(arg->value, data) + +/** + * Get argument value + * + * @param arg Argument + * + * @return Argument value + */ +#define cg_upnp_argument_getvalue(arg) cg_string_getvalue(arg->value) + +/** + * Set argument value + * + * @param arg Argument + * @param data Argument value + */ +#define cg_upnp_argument_setintvalue(arg,data) cg_string_setintvalue(arg->value, data) + +/** + * Get argument value + * + * @param arg Argument + * + * @return Argument value + */ +#define cg_upnp_argument_getintvalue(arg) cg_string_getintvalue(arg->value) + +/** + * Set argument value + * + * @param arg Argument + * @param data Argument value + */ +#define cg_upnp_argument_setfloatvalue(arg,data) cg_string_setfloatvalue(arg->value, data) + +/** + * Get argument value + * + * @param arg Argument + * + * @return Argument value + */ +#define cg_upnp_argument_getfloatvalue(arg) cg_string_getfloatvalue(arg->value) + +/** + * Set argument value + * + * @param arg Argument + * @param data Argument value + */ +#define cg_upnp_argument_setdoublevalue(arg,data) cg_string_setdoublevalue(arg->value, data) + +/** + * Get argument value + * + * @param arg Argument + * + * @return Argument value + */ +#define cg_upnp_argument_getdoublevalue(arg) cg_string_getdoublevalue(arg->value) + +/**************************************** +* Function (ArgumentList) +****************************************/ + +/** + * Create new argument list + */ +CgUpnpArgumentList *cg_upnp_argumentlist_new(); + +/** + * Delete argument list + * + * @param argumentList Argument list + */ +void cg_upnp_argumentlist_delete(CgUpnpArgumentList *argumentList); + +/** + * Clear argument list + * + * @param argList Argument list + */ +#define cg_upnp_argumentlist_clear(argList) cg_list_clear((CgList *)argList, (CG_LIST_DESTRUCTORFUNC)cg_upnp_argument_delete) + +/** + * Get argument list size + * + * @param argList Argument list + */ +#define cg_upnp_argumentlist_size(argList) cg_list_size((CgList *)argList) + +/** + * Get next argument from argument list + * + * @param argList Argument list + */ +#define cg_upnp_argumentlist_gets(argList) (CgUpnpArgument *)cg_list_next((CgList *)argList) + +/** + * Add argument into argument list + * + * @param argList Argument list + * @param arg Argument + */ +#define cg_upnp_argumentlist_add(argList, arg) cg_list_add((CgList *)argList, (CgList *)arg) + +/** + * Get argument from argument list based on argument name + * + * @param argumentList argumentList + * @param name Argument name + * + * @return Argument + */ +CgUpnpArgument *cg_upnp_argumentlist_get(CgUpnpArgumentList *argumentList, char *name); + +/** + * Set argument values by using source argument list. If there is an argument with the + * name in argument list and source argument list argument data is set from source + * argument list to the matching argument list. + * + * @param argumentList Argument list + * @param srcArgumentList Source argument list + */ +void cg_upnp_argumentlist_set(CgUpnpArgumentList *argumentList, CgUpnpArgumentList *srcArgumentList); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/ccontrolpoint.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/ccontrolpoint.h new file mode 100644 index 0000000..b720493 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/ccontrolpoint.h @@ -0,0 +1,716 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: ccontrolpoint.h +* +* Revision: +* +* 05/25/05 +* - first revision +* +* 11-Jan-06 Heikki Junnila +* - Removed cg_upnp_device_isname and _getbyname because +* according to UPnP specs UDN, type or friendlyname is +* not the same as the device's name. +* - Added cg_upnp_controlpoint_getdevicebyudn() +* 04/02/06 Theo Beisch +* - added support for resubscriber +* and device disposer +* - added cg_upnp_controlpoint_getservicebysid +* - added cg_upnp_controlpoint_waitforlock +* 22-Apr-2008 +* - Added cg_upnp_controlpoint_getdevice() to get a device by the index. +* +******************************************************************/ + +#ifndef _CG_UPNP_CCONTROLPOINT_H_ +#define _CG_UPNP_CCONTROLPOINT_H_ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +/** Definition for SSDP default search MX */ +#define CG_UPNP_CONTROLPOINT_SSDP_DEFAULT_SEARCH_MX 3 + +/** Definition for control point SSDP minimum delay */ +#define CG_UPNP_CONTROLPOINT_SSDP_MIN_DELAY 20 + +/** Definition for control point default response port */ +#define CG_UPNP_CONTROLPOINT_SSDP_RESPONSE_DEFAULT_PORT 39400 + +/** Definition for numeric constant to specify the max tries to open a SSDP Response Port (rosfran.borges) */ +#define CG_UPNP_CONTROLPOINT_SSDP_RESPONSE_PORT_MAX_TRIES_INDEX 80 + +/** Definition for HTTP event default port */ +#define CG_UPNP_CONTROLPOINT_HTTP_EVENT_DEFAULT_PORT 39500 + +/** Definition for default controlpoint event callback "location" */ +#define CG_UPNP_CONTROLPOINT_HTTP_EVENTSUB_URI "/eventSub" + +/**************************************** +* Data Type +****************************************/ + +/** + * Device listener status parameters. + * + * @ref CgUpnpDeviceStatusAdded means a device has been added to local cache. + * @ref CgUpnpDeviceStatusUpdated means a device description has been updated + * because its IP address or description has changed. The user should renew + * any active subscriptions if this has been received. + * + * @ref CgUpnpDeviceStatusInvalid is basically the same as @ref CgUpnpDeviceStatusRemoved, + * but @ref CgUpnpDeviceStatusRemoved is sent only when a device leaves the + * network in a proper way (i.e. with UPnP ByeBye messages). The user should + * immediately cease using the device, because it will be removed in both cases. + */ +typedef enum _CgUpnpDeviceStatus +{ + CgUpnpDeviceStatusAdded = 0, + CgUpnpDeviceStatusUpdated, + CgUpnpDeviceStatusInvalid, + CgUpnpDeviceStatusRemoved +} CgUpnpDeviceStatus; + +/** + * Prototype for control point's device listener callback. + * + * @param udn The UDN of the device, that the status update concerns + * @param status The new status + */ + +typedef struct _CgUpnpControlPoint { + CgMutex *mutex; + CgXmlNodeList *deviceRootNodeList; + CgUpnpDeviceList *deviceList; + CgUpnpSSDPServerList *ssdpServerList; + CgUpnpSSDPResponseServerList *ssdpResServerList; + CgHttpServerList *httpServerList; + void (*deviceListener)(struct _CgUpnpControlPoint *, char*, CgUpnpDeviceStatus); /* CG_UPNP_DEVICE_LISTENER */ + CG_HTTP_LISTENER httpListener; + CG_UPNP_SSDP_LISTNER ssdpListener; + CG_UPNP_SSDP_RESPONSE_LISTNER ssdpResListener; + CgUpnpEventListenerList* eventListeners; + int ssdpResPort; + CgString *httpEventURI; + int httpEventPort; + int ssdpSearchMx; + void *userData; + + /* Expiration handling */ + CgThread *expThread; + CgMutex *expMutex; + CgCond *expCond; + + /** List of cached interfaces */ + CgNetworkInterfaceList *ifCache; +} CgUpnpControlPoint; + +typedef void (*CG_UPNP_DEVICE_LISTENER)(CgUpnpControlPoint *ctrlPoint, char* udn, CgUpnpDeviceStatus status); + +/**************************************************************************** + * Control Point top-level control + ****************************************************************************/ + +/** + * Create a new control point. Does not start any threads. + * + * @return A newly-created CgUpnpControlPoint + */ +CgUpnpControlPoint *cg_upnp_controlpoint_new(); + +/** + * Destroy the given control point + * + * @param ctrlPoint The control point struct to destroy + */ +void cg_upnp_controlpoint_delete(CgUpnpControlPoint *ctrlPoint); + +/** + * Activate the control point. Starts listening for SSDP messages etc. + * You must call this function before you can actually use a control point. + * + * @param ctrlPoint The control point to start + * + * @return TRUE if successful; otherwise FALSE + * + */ +BOOL cg_upnp_controlpoint_start(CgUpnpControlPoint *ctrlPoint); + +/** + * Stop the control point. Stops sending/receiveing/responding to any messages. + * + * @param ctrlPoint The control point to stop + * + * @return TRUE if successful; otherwise FALSE + * + */ +BOOL cg_upnp_controlpoint_stop(CgUpnpControlPoint *ctrlPoint); + +/** +* Check if the control point is activated. +* +* @param ctrlPoint The control point to stop +* +* @return TRUE if running; otherwise FALSE +* +*/ +BOOL cg_upnp_controlpoint_isrunning(CgUpnpControlPoint *ctrlPoint); + +/**************************************************************************** + * Control Point locking + ****************************************************************************/ + +/** + * Lock the control point's mutex. + * The control point should be ALWAYS locked, when a CgUpnpDevice*, + * CgUpnpService*, CgUpnpAction* or other pointer has been taken into use from + * the stack. This effectively prevents devices/services from being updated/ + * removed or added while the control point is locked. You should release the + * lock as soon as possible with @ref cg_upnp_controlpoint_unlock + * + * @note Do NOT save any CgUpnp* pointers to user-space variables. Use them + * only as local variables (inside one function) after gaining a mutex lock. + * Release the lock as soon as you are done accessing the pointer, and then + * discard the pointer immediately. + * + * @param ctrlPoint The control point in question + */ + +#if defined(WITH_THREAD_LOCK_TRACE) && defined(__USE_ISOC99) +#define cg_upnp_controlpoint_lock(ctrlPoint) cg_mutex_lock_trace(__FILE__, __LINE__, __PRETTY_FUNCTION__, ctrlPoint->mutex) +#else +BOOL cg_upnp_controlpoint_lock(CgUpnpControlPoint *ctrlPoint); +#endif +/** + * Release a previously locked control point mutex. + * See @ref cg_upnp_controlpoint_lock for a more detailed description on + * the control point locking mechanism. + * + * @param ctrlPoint The control point in question + */ +#if defined(WITH_THREAD_LOCK_TRACE) && defined(__USE_ISOC99) +#define cg_upnp_controlpoint_unlock(ctrlPoint) cg_mutex_unlock_trace(__FILE__, __LINE__, __PRETTY_FUNCTION__, ctrlPoint->mutex) +#else +BOOL cg_upnp_controlpoint_unlock(CgUpnpControlPoint *ctrlPoint); +#endif + +/**************************************************************************** + * Device searching + ****************************************************************************/ + +/** + * Find a device from the control point by the exact type of the device. + * This function searches for devices, whose *complete type string* + * matches the given string, including version number. For example: + * "urn:schemas-upnp-org:device:FooDevice:1". If you need to disregard + * the version, use @ref cg_upnp_controlpoint_getdevicebytype + * + * @param ctrlPoint Controlpoint in question + * @param exacttype Type of the device + * + */ +CgUpnpDevice *cg_upnp_controlpoint_getdevicebyexacttype(CgUpnpControlPoint *ctrlPoint, + char *exacttype); + +/** + * Find a device from the controlpoint by the type of the device. + * This function searches for devices, whose *type part* (i.e. not including + * the version) of the device type string matches the given string. + * For example: "urn:schemas-upnp-org:device:FooDevice". If you need + * to know the version of a device, use @ref cg_upnp_devicetype_getversion + * + * @param ctrlPoint Controlpoint in question + * @param type Type of the device + * + */ +CgUpnpDevice *cg_upnp_controlpoint_getdevicebytype(CgUpnpControlPoint *ctrlPoint, + char *type); + +/** + * Find a device from the controlpoint by the UDN of the device. + * + * @param ctrlPoint Controlpoint in question + * @param type Type of the device + * + */ +CgUpnpDevice *cg_upnp_controlpoint_getdevicebyudn(CgUpnpControlPoint *ctrlPoint, + char *udn); + +/**************************************************************************** + * SSDP response + ****************************************************************************/ + +/** + * Get the list of SSDP servers associated to the control point + * + * @param ctrlPoint The control point in question + */ +#define cg_upnp_controlpoint_getssdpserverlist(ctrlPoint) (ctrlPoint->ssdpServerList) + +/** + * Get the list of SSDP response servers associated to the control point + * + * @param ctrlPoint The control point in question + */ +#define cg_upnp_controlpoint_getssdpresponseserverlist(ctrlPoint) (ctrlPoint->ssdpResServerList) + +/** + * Get the list of HTTP servers associated to the control point + * + * @param ctrlPoint The control point in question + */ +#define cg_upnp_controlpoint_gethttpserverlist(ctrlPoint) (ctrlPoint->httpServerList) + +/**************************************************************************** + * SSDP listener + ****************************************************************************/ + +/** + * Set an SSDP message listener for the control point. Use this function to + * get SSDP messages to user-space applications. + * + * @param ctrlPoint The control point in question + * @param func A callback function that is of type @ref CG_UPNP_SSDP_LISTNER + */ +#define cg_upnp_controlpoint_setssdplistener(ctrlPoint, func) (ctrlPoint->ssdpListener = func) + +/** + * Get the SSDP message listener for the control point. + * + * @param ctrlPoint The control point in question + * @return A callback function that is of type @ref CG_UPNP_SSDP_LISTNER or NULL + */ +#define cg_upnp_controlpoint_getssdplistener(ctrlPoint) (ctrlPoint->ssdpListener) + +/** + * Set an SSDP response listener for the control point. Use this function to + * get SSDP responses to user-space applications. + * + * @param ctrlPoint The control point in question + * @param func A callback function that is of type @ref CG_UPNP_SSDP_RESPONSE_LISTNER + */ +#define cg_upnp_controlpoint_setssdpresponselistener(ctrlPoint, func) (ctrlPoint->ssdpResListener = func) + +/** + * Get the SSDP response listener for the control point. + * + * @param ctrlPoint The control point in question + * @return A callback function that is of type @ref CG_UPNP_SSDP_RESPONSE_LISTNER or NULL + */ +#define cg_upnp_controlpoint_getssdpresponselistener(ctrlPoint) (ctrlPoint->ssdpResListener) + +/** + * Set device listener for the control point. + * + * @param ctrlPoint The control point + * @param func A callback function that is type @ref CG_UPNP_DEVICE_LISTENER or NULL + */ +#define cg_upnp_controlpoint_setdevicelistener(ctrlPoint, func) (ctrlPoint->deviceListener = func) + +/** + * Get the device listener for the control point. + * + * @param ctrlPoint The control point in question + * @return A callback function that is of type @ref CG_UPNP_DEVICE_LISTENER or NULL + */ +#define cg_upnp_controlpoint_getdevicelistener(ctrlPoint) (ctrlPoint->deviceListener) + +/**************************************************************************** + * Event listening + ****************************************************************************/ + +/** + * Set an event listener for the control point. Use this function to + * get event notifications to user-space applications. + * + * @param ctrlPoint The control point in question + * @param listener A callback function that is of type @ref CG_UPNP_EVENT_LISTENER + */ +#define cg_upnp_controlpoint_addeventlistener(ctrlPoint, listener) (cg_upnp_eventlistenerlist_add(ctrlPoint->eventListeners, listener)) + +/** + * Remove an event listener from the control point. + * + * @param ctrlPoint The control point in question + * @param listener The callback function to remove, that is of type @ref CG_UPNP_EVENT_LISTENER + */ +#define cg_upnp_controlpoint_removeeventlistener(ctrlPoint, listener) (cg_upnp_eventlistenerlist_remove(ctrlPoint->eventListeners, listener)) + +/** + * Set a single event listener for the control point. Use this function to + * get event notifications to user-space applications if you need only one listener. + * + * @param ctrlPoint The control point in question + * @param evlistener The callback function to set, that is of type @ref CG_UPNP_EVENT_LISTENER, or NULL + */ +#define cg_upnp_controlpoint_seteventlistener(ctrlPoint, evlistener) \ + do {\ + if (evlistener == NULL) \ + cg_upnp_eventlistenerlist_remove(ctrlPoint->eventListeners, ctrlPoint->eventListeners->next->listener); \ + else \ + cg_upnp_eventlistenerlist_add(ctrlPoint->eventListeners, evlistener); \ + } while(0) + +/** + * Get the single event listener for the control point. + * + * @param ctrlPoint The control point in question + * @return The callback function, that is of type @ref CG_UPNP_EVENT_LISTENER, + * or NULL if there is no listener + */ +#define cg_upnp_controlpoint_geteventlistener(ctrlPoint) (ctrlPoint->eventListeners->next->listener) + +/** + * Get the list of event listeners for the control point. + * + * @param ctrlPoint The control point in question + * @return List of @ref CG_UPNP_EVENT_LISTENER functions + */ +#define cg_upnp_controlpoint_geteventlisteners(ctrlPoint) (ctrlPoint->eventListeners) + +/**************************************************************************** + * SSDP Response port + ****************************************************************************/ + +/** + * Set the IP port number used for the control point's SSDP responses + * + * @param ctrlPoint The control point in question + * @param port The IP port number + */ +#define cg_upnp_controlpoint_setssdpresponseport(ctrlPoint, port) (ctrlPoint->ssdpResPort = port) + +/** + * Get the IP port number used for the control point's SSDP responses + * + * @param ctrlPoint The control point in question + */ +#define cg_upnp_controlpoint_getssdpresponseport(ctrlPoint) (ctrlPoint->ssdpResPort) + +/**************************************************************************** + * Eventing + ****************************************************************************/ + +/** + * Set the IP port number for the control point's event reception + * + * @param ctrlPoint The control point in question + * @param port The IP port number + */ +#define cg_upnp_controlpoint_seteventport(ctrlPoint, port) (ctrlPoint->httpEventPort = port) + +/** + * Get the IP port number for the control point's event reception + * + * @param ctrlPoint The control point in question + */ +#define cg_upnp_controlpoint_geteventport(ctrlPoint) (ctrlPoint->httpEventPort) + +/** + * Set the URI used for the control point's event subscription notifications + * + * @param ctrlPoint The control point in question + * @param uri The URI to set + */ +#define cg_upnp_controlpoint_seteventsuburi(ctrlPoint, uri) cg_string_setvalue(ctrlPoint->httpEventURI, uri) + +/** + * Get the URI used for the control point's event subscription notifications + * + * @param ctrlPoint The control point in question + */ +#define cg_upnp_controlpoint_geteventsuburi(ctrlPoint) cg_string_getvalue(ctrlPoint->httpEventURI) + +/**************************************************************************** + * M-SEARCH + ****************************************************************************/ + +/** + * Do an M-SEARCH to look for devices in the network. + * + * @param ctrlPoint The control point in question + * @param target The Search Target parameter (ex. "ssdp:all") + */ +BOOL cg_upnp_controlpoint_search(CgUpnpControlPoint *ctrlPoint, char *target); + +/** + * Set the MX-parameter used for SSDP searches i.e. Set the time to wait + * (in seconds) for device responses to an M-SEARCH + * + * @param ctrlPoint The control point in question + * @param value MX; Time to wait + */ +#define cg_upnp_controlpoint_setssdpsearchmx(ctrlPoint, value) (ctrlPoint->ssdpSearchMx = value) + +/** + * Get the MX-parameter used for SSDP searches + * + * @param ctrlPoint The control point in question + * @return value MX; Time to wait + */ +#define cg_upnp_controlpoint_getssdpsearchmx(ctrlPoint) (ctrlPoint->ssdpSearchMx) + +/**************************************************************************** + * HTTP listener + ****************************************************************************/ + +/** + * Set an HTTP listener function to the control point. Use this function to + * get HTTP requests to user-space applications. + * + * @param ctrlPoint The control point in question + * @param func The listener function, that is of type @ref CG_HTTP_LISTENER + */ +#define cg_upnp_controlpoint_sethttplistener(ctrlPoint, func) (ctrlPoint->httpListener = func) + +/** + * Get the HTTP listener function for the control point. + * + * @param ctrlPoint The control point in question + * @return The listener function, that is of type @ref CG_HTTP_LISTENER + */ +#define cg_upnp_controlpoint_gethttplistener(ctrlPoint) (ctrlPoint->httpListener) + +/** + * The function that calls all HTTP listener callback functions. Do not call + * this from applications. + * + * @param httpReq The received HTTP request + */ +void cg_upnp_controlpoint_httprequestreceived(CgHttpRequest *httpReq); + +/** + * When an event is received, update also the associated service's + * state table to include the evented state variable. + * + * @param service The service, whose state table to update + * @param prop The evented property from which to update + */ +void cg_upnp_controlpoint_updatestatetablefromproperty(CgUpnpService* service, + CgUpnpProperty* prop); + +/**************************************************************************** + * User Data + ****************************************************************************/ + +/** + * Set the user data pointer (arbitrary user data) to the control point. + * + * @param ctrlPoint The control point in question + * @param value Arbitrary user data + */ +#define cg_upnp_controlpoint_setuserdata(ctrlPoint, value) (ctrlPoint->userData = value) + +/** + * Get the user data pointer (arbitrary user data) from the control point. + * + * @param dev The control point in question + * @return Pointer to user data or NULL + */ +#define cg_upnp_controlpoint_getuserdata(ctrlPoint) (ctrlPoint->userData) + +/**************************************************************************** + * Service SCPD + ****************************************************************************/ + +/** + * Parse the service description from the service's SCPD URL. Do not call + * this from user applications. + * + * @param service The service in question + * @return TRUE if successful; otherwise FALSE + */ +BOOL cg_upnp_controlpoint_parsescservicescpd(CgUpnpService *service); + +/** + * Parse the device's services using the received SSDP packet. Do not call this + * from user applications. + * + * @param dev The device in question + * @param ssdpPkt An SSDP packet + */ +BOOL cg_upnp_controlpoint_parseservicesfordevice(CgUpnpDevice *dev, CgUpnpSSDPPacket *ssdpPkt); + +/**************************************************************************** + * Device adding/removal by SSDP packets + ****************************************************************************/ + +/** + * Add a device on the basis of an SSDP packet. Do not call this from user + * applications. + * + * @param ctrlPoint The control point, whose device list to handle + * @param ssdpPkt The received SSDP packet + */ +void cg_upnp_controlpoint_adddevicebyssdppacket(CgUpnpControlPoint *ctrlPoint, + CgUpnpSSDPPacket *ssdpPkt); + +/** + * Remove a device on the basis of an SSDP packet. Do not call this from user + * applications. + * + * @param ctrlPoint The control point, whose device list to handle + * @param ssdpPkt The received SSDP packet + */ +void cg_upnp_controlpoint_removedevicebyssdppacket(CgUpnpControlPoint *ctrlPoint, + CgUpnpSSDPPacket *ssdpPkt); + +/**************************************** + * Subscription + ****************************************/ + +/** + * Subscribe to a service's events + * + * @param ctrlPoint The control point in use + * @param service The service to subscribe to + * @param timeout Timeout for subscription expiration/renewal + * @return TRUE if successful; otherwise FALSE + */ +BOOL cg_upnp_controlpoint_subscribe(CgUpnpControlPoint *ctrlPoint, CgUpnpService *service, long timeout); + +/** + * Re-subscribe to a service's events (i.e. renew subscription) + * + * @param ctrlPoint The control point in use + * @param service The service to subscribe to + * @param timeout Timeout for subscription expiration/renewal + * @return TRUE if successful; otherwise FALSE + */ +BOOL cg_upnp_controlpoint_resubscribe(CgUpnpControlPoint *ctrlPoint, CgUpnpService *service, long timeout); + +/** + * Unsubscribe to a service's events (i.e. cancel subscription) + * + * @param ctrlPoint The control point in use + * @param service The service to unsubscribe to + * @return TRUE if successful; otherwise FALSE + */ +BOOL cg_upnp_controlpoint_unsubscribe(CgUpnpControlPoint *ctrlPoint, CgUpnpService *service); + +/** + * Subscribe to all of the device's services' events + * + * @param ctrlPoint The control point in use + * @param dev The device to subscribe to + * @param timeout Timeout for subscription expiration/renewal + * @return TRUE if successful; otherwise FALSE + */ +BOOL cg_upnp_controlpoint_subscribeall(CgUpnpControlPoint *ctrlPoint, CgUpnpDevice *dev, long timeout); + +/** + * Re-subscribe to all of the device's services' events (i.e. renew subscription) + * + * @param ctrlPoint The control point in use + * @param dev The device to subscribe to + * @param timeout Timeout for subscription expiration/renewal + * @return TRUE if successful; otherwise FALSE + */ +BOOL cg_upnp_controlpoint_resubscribeall(CgUpnpControlPoint *ctrlPoint, CgUpnpDevice *dev, long timeout); + +/** + * Unsubscribe to all of the device's services' events (i.e. cancel subscription) + * + * @param ctrlPoint The control point in use + * @param dev The device to unsubscribe to + * @return TRUE if successful; otherwise FALSE + */ +BOOL cg_upnp_controlpoint_unsubscribeall(CgUpnpControlPoint *ctrlPoint, CgUpnpDevice *dev); + +/**************************************** + * Function (DeviceList) + ****************************************/ + +/** + * Get the head of the control point's list of devices (use for iteration) + * + * @param ctrlPoint The control point in use + * @return The head of the device list + */ +#define cg_upnp_controlpoint_getdevices(ctrlPoint) cg_upnp_devicelist_gets(ctrlPoint->deviceList) + +/** + * Get the number of devices known by the control point + * + * @param ctrlPoint The control point in use + * @return The number of devices in the control point's device list + */ +#define cg_upnp_controlpoint_getndevices(ctrlPoint) cg_upnp_devicelist_size(ctrlPoint->deviceList) + +/** + * Get the head of the control point's list of devices (use for iteration) + * + * @param ctrlPoint The control point in use + * @param index The index of the device to get + * @return The specified device + */ +#define cg_upnp_controlpoint_getdevice(ctrlPoint, index) cg_upnp_devicelist_get(ctrlPoint->deviceList, index) + +/** + * Add a device to the control point's list of devices. Do not call this from + * user applications. + * + * @param ctrlPoint The control point in use + * @param dev The device to add + */ +#define cg_upnp_controlpoint_adddevice(ctrlPoint, dev) cg_upnp_devicelist_add(ctrlPoint->deviceList, dev) + +/**************************************** + * Environment handling + ****************************************/ + +/** + * Worker thread for handling expirations. + * + * \param thread the thread in question + */ +void cg_upnp_controlpoint_expirationhandler(CgThread *thread); + +/** + * Notify the control point that any IP of the host has been changed. + * + * \param ctrlpoint The control point in use + * \return success of changing used interfaces + */ +BOOL cg_upnp_controlpoint_ipchanged(CgUpnpControlPoint *ctrlpoint); + + +/** + * Get the event subscription callback URI + * + * @param ctrlPoint The control point in question + */ +char *cg_upnp_controlpoint_geteventsubcallbackurl(CgUpnpControlPoint *ctrlPoint, char *ifaddr, char *buf, int bufLen); + +#ifdef __cplusplus +} +#endif + +#endif /* _CG_UPNP_CCONTROLPOINT_H_ */ diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cdevice.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cdevice.h new file mode 100644 index 0000000..e47ca6d --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cdevice.h @@ -0,0 +1,1539 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cdevice.h +* +* Revision: +* +* 02/14/05 +* - first revision +* +* 10/31/05 +* - Added comments to all functions and structs +* +* 01/09/06 Heikki Junnila +* - Added cg_upnp_device_getservicebytype() to enable +* searching for services without version information. +* +* 10-Jan-06 Heikki Junnila +* - Renamed cg_upnp_device_getservicebyname to +* cg_upnp_device_getservicebyexacttype and created a compat +* macro for _getservicebyname +* +* 11-Jan-06 Heikki Junnila +* - Removed cg_upnp_device_isname and _getbyname because +* according to UPnP specs UDN, type or friendlyname is +* not the same as the device's name. +* - Added cg_upnp_device_getdevicebyudn() +* 04/03/06 Theo Beisch +* - Added cg_upnp_device_getservicebysid +* - changed leasetime and timer to type CgSysTime +* - added cg_upnp_device_waitforlock (nonblocking) +* 22-Apr-2008 +* - Added cg_upnp_device_getnservices() and cg_upnp_device_getservice() to get a device by the index. +* +******************************************************************/ + +#ifndef _CG_UPNP_CDEVICE_H_ +#define _CG_UPNP_CDEVICE_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** + * Value macros + ****************************************/ + +/** Definition for device XML element name */ +#define CG_UPNP_DEVICE_ELEM_NAME "device" + +/** Definition for device XML element list name */ +#define CG_UPNP_DEVICELIST_ELEM_NAME "deviceList" + +/** Definition for UPnP rootdevice ID */ +#define CG_UPNP_DEVICE_UPNP_ROOTDEVICE "upnp:rootdevice" + +/** Definition for default device start up wait time */ +#define CG_UPNP_DEVICE_DEFAULT_STARTUP_WAIT_TIME 1000 + +/** Definition for default device discovery wait time */ +#define CG_UPNP_DEVICE_DEFAULT_DISCOVERY_WAIT_TIME 500 + +/** Definition for default device lease time */ +#define CG_UPNP_DEVICE_DEFAULT_LEASE_TIME (30 * 60) + +/** Definition for default device HTTP port */ +#define CG_UPNP_DEVICE_HTTP_DEFAULT_PORT 38400 + +/** Definition for default description file "location" */ +#define CG_UPNP_DEVICE_DEFAULT_DESCRIPTION_URI "/description.xml" + +/** Definition for maximum URL base length */ +#define CG_UPNP_DEVICE_URLBASE_MAXLEN 64 + +/** Definition for M-SEARCH filter interval */ +#define CG_UPNP_DEVICE_M_SEARCH_FILTER_INTERVAL 15 + +/** Definition for urlbase XML element name */ +#define CG_UPNP_DEVICE_URLBASE_NAME "URLBase" + +/** Definition for device type XML element name */ +#define CG_UPNP_DEVICE_DEVICE_TYPE "deviceType" + +/** Definition for device friendly name XML element name */ +#define CG_UPNP_DEVICE_FRIENDLY_NAME "friendlyName" + +/** Definition for device manufacturer XML element name */ +#define CG_UPNP_DEVICE_MANUFACTURER "manufacturer" + +/** Definition for manufacturer URL XML element name */ +#define CG_UPNP_DEVICE_MANUFACTURER_URL "manufacturerURL" + +/** Definition for device model description XML element name */ +#define CG_UPNP_DEVICE_MODEL_DESCRIPTION "modelDescription" + +/** Definition fo device model name XML element name */ +#define CG_UPNP_DEVICE_MODEL_NAME "modelName" + +/** Definition for device model number XML element name */ +#define CG_UPNP_DEVICE_MODEL_NUMBER "modelNumber" + +/** Definition for device model URL XML element name */ +#define CG_UPNP_DEVICE_MODEL_URL "modelURL" + +/** Definition for device serial number XML element name */ +#define CG_UPNP_DEVICE_SERIAL_NUMBER "serialNumber" + +/** Definition for device UDN XML element name */ +#define CG_UPNP_DEVICE_UDN "UDN" + +/** Definition for device UPC XML element name */ +#define CG_UPNP_DEVICE_UPC "UPC" + +/** Definition for device presentation URL XML element name */ +#define CG_UPNP_DEVICE_PRESENTATION_URL "presentationURL" + +/**************************************** + * Data Type + ****************************************/ + +/** + * \brief The generic UPnP device structure + * + * \note This struct can also be cast to a CgList* and used as a node in a + * linked list with cg_list_* functions. + */ +typedef struct _CgUpnpDevice +{ + /** Used by cg_list_* functions to indicate start of list */ + BOOL headFlag; + /** Used by cg_list_* functions to point to the previous item in list */ + struct _CgUpnpDevice *prev; + /** Used by cg_list_* functions to point to the next item in list */ + struct _CgUpnpDevice *next; + + /** List of XML root nodes */ + CgXmlNodeList *rootNodeList; + /** This device's description XML node */ + CgXmlNode *deviceNode; + + /** This device's parent device */ + struct _CgUpnpDevice *parentDevice; + /** List of devices */ + struct _CgUpnpDevice *deviceList; + /** List of services */ + struct _CgUpnpService *serviceList; + /** List of icons */ + struct _CgUpnpIcon *iconList; + + /** Mutex used in multithreading */ + CgMutex *mutex; + /** List of HTTP servers */ + CgHttpServerList *httpServerList; + /** List of SSDP servers */ + CgUpnpSSDPServer *ssdpServerList; + /** Device advertiser thread */ + CgThread *advertiser; + + /** HTTP request listener */ + CG_HTTP_LISTENER httpListener; + + /** URI for this device's description */ + CgString *descriptionURI; + /** Advertisement lease time */ + CgSysTime leaseTime; + /** HTTP Port to listen to */ + int httpPort; + /** This device's SSDP packet */ + CgUpnpSSDPPacket *ssdpPkt; + /** User data used to pass miscellaneous data */ + void *userData; + + /* List of cached interfaces */ + CgNetworkInterfaceList *ifCache; +} CgUpnpDevice, CgUpnpDeviceList; + +/**************************************** + * Function (Device) + ****************************************/ + +/** + * Create a new UPnP device + */ +CgUpnpDevice *cg_upnp_device_new(); + +/** + * Delete a UPnP device + * + * \param dev Device in question + */ +void cg_upnp_device_delete(CgUpnpDevice *dev); + +/** + * Clear a UPnP device structure. This is an internal function and should not be called from outside. + * + * \param dev Device in question + */ +void cg_upnp_device_clear(CgUpnpDevice *dev); + +/** + * Get the next device in the device list. Use as an iterator. + * + * \param dev Current device + */ +#define cg_upnp_device_next(dev) (CgUpnpDevice *)cg_list_next((CgList *)dev) + +/** + * Remove the device from the device list. + * + * \param dev Device in question + */ +#define cg_upnp_device_remove(dev) cg_list_remove((CgList *)dev) + +/** + * Check whether the given node is of type CG_UPNP_DEVICE_ELEM_NAME + * + * \param node CgXmlAttribute + */ +#define cg_upnp_device_isdevicenode(node) cg_xml_node_isname(node, CG_UPNP_DEVICE_ELEM_NAME) + +/** + * Return the device's root node + * \todo Correct explanation... + * + * \param dev Device in question + */ +#define cg_upnp_device_getrootnode(dev) cg_xml_nodelist_gets(dev->rootNodeList) + +/** + * Set the device description node and initialise its child nodes + * + * \param dev Device in question + * \param node The XML structure to be set as the device's description + */ +void cg_upnp_device_setdevicenode(CgUpnpDevice *dev, CgXmlNode *node); + +/** + * Return the device XML description node + * + * \param dev Device in question + */ +#define cg_upnp_device_getdevicenode(dev) (dev->deviceNode) + +/** + * Check whether the given device contains a list of root nodes + * i.e. is it the root device + * + * \param dev Device in question + */ +#define cg_upnp_device_isrootdevice(dev) ((dev->rootNodeList != NULL) ? TRUE : FALSE) + +/** + * Set a parent device for the given child device + * + * \param dev Child device + * \param pDev Parent device + */ +#define cg_upnp_device_setparentdevice(dev, pDev) (dev->parentDevice = pDev) + +/** + * Return the device's parent device + * + * \param dev Device in question + */ +#define cg_upnp_device_getparentdevice(dev) (dev->parentDevice) + +/** + * Return the root (i.e. the topmost) device in the device structure + * + * \param dev Traverses the device tree upwards starting from this device + */ +CgUpnpDevice *cg_upnp_device_getrootdevice(CgUpnpDevice *dev); + +/** + * Parse the device description XML document. + * + * \param dev Device in question + * \param description Buffer containing the device description in XML format + * \param descriptionLen Buffer length + * + * \return TRUE, if the buffer was successfully parsed; otherwise FALSE + */ +BOOL cg_upnp_device_parsedescription(CgUpnpDevice *dev, char *desciption, int descriptionLen); + +/** + * Fetch and parse the device description XML file, located in the given URL. + * + * \param dev Device in question + * \param url An internet resource + * + * \return TRUE, if the buffer was successfully parsed; otherwise FALSE + */ +BOOL cg_upnp_device_parsedescriptionurl(CgUpnpDevice *dev, CgNetURL *url); + + +#if defined(CG_USE_CFILE) +/** + * Load and parse the device description from an XML file. + * Not available for T-Engine, ITron and BTron platforms. + * + * \param dev Device in question + * \param fileName The file name containing the device description XML document + * + * \return TRUE, if the buffer was successfully parsed; otherwise FALSE + */ +BOOL cg_upnp_device_loaddescriptionfile(CgUpnpDevice *dev, char *fileName); +#endif + +/**************************************************************************** + * Description updates + ****************************************************************************/ + +/** + * Update the device's contents from an SSDP packet if necessary. + * + * @param dev The device to potentially update + * @param ssdpPkt The SSDP packet to make decisions on + * @return TRUE if the device was updated; otherwise FALSE + */ +BOOL cg_upnp_device_updatefromssdppacket(CgUpnpDevice* dev, + CgUpnpSSDPPacket* ssdpPkt); + +/***************************************************************************** + * Device Type + *****************************************************************************/ + +/** + * Modify the device type. + * + * \param dev Device in question + * \param value Type to set + */ +#define cg_upnp_device_setdevicetype(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_DEVICE_TYPE, value) + +/** + * Return the device type + * + * \param dev Device in question + * + * \return Device type + */ +#define cg_upnp_device_getdevicetype(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_DEVICE_TYPE) + +/** + * Check, whether the device is of the exact specified type (including version) + * + * \param dev Device in question + * @param value Device type + * + * \return BOOL: TRUE if device matches given type; otherwise FALSE + */ +#define cg_upnp_device_isdevicetype(dev, value) cg_streq(cg_upnp_device_getdevicetype(dev), value) + +/** + * Get the identifier-part of a device type string (usually "urn") + * + * @param deviceType A device type string (usually the result from + * @ref cg_upnp_device_getdevicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_devicetype_getidentifier(char* deviceType); + +/** + * Get the URN part of a device type string (usually "schemas-upnp-org") + * + * @param deviceType A device type string (usually the result from + * @ref cg_upnp_device_getdevicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_devicetype_geturn(char* deviceType); + +/** + * Get the device part of a device type string (usually just "device") + * + * @param deviceType A device type string (usually the result from + * @ref cg_upnp_device_getdevicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_devicetype_getdevice(char* deviceType); + +/** + * Get the type part of a device type string (ex. "ContentDirectory") + * + * @param deviceType A device type string (usually the result from + * @ref cg_upnp_device_getdevicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_devicetype_gettype(char* deviceType); + +/** + * Get the schema type part of a device type string (without last colon) + * (ex. "urn:schemas-upnp-org:device:ContentDirectory") + * + * @param deviceType A device type string (usually the result from + * @ref cg_upnp_device_getdevicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_devicetype_getschematype(char* deviceType); + +/** + * Get the version part of a device type string (ex. "1") + * + * @param deviceType A device type string (usually the result from + * @ref cg_upnp_device_getdevicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_devicetype_getversion(char* deviceType); + +/***************************************************************************** + * Friendly Name + *****************************************************************************/ + +/** + * Modify the device's friendly name. + * + * \param dev Device in question + * \param value The friendly name + * + */ +#define cg_upnp_device_setfriendlyname(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_FRIENDLY_NAME, value) + +/** + * Return the device's friendly name. + * + * \param dev Device in question + * + * \return The device's friendly name + */ +#define cg_upnp_device_getfriendlyname(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_FRIENDLY_NAME) + +/***************************************************************************** + * Manufacturer + *****************************************************************************/ + +/** + * Modify the device's manufacturer. + * + * \param dev Device in question + * \param value The manufacturer's name + * + */ +#define cg_upnp_device_setmanufacturer(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MANUFACTURER, value) + +/** + * Get the device's manufacturer. + * + * \param dev Device in question + * + * \return value The manufacturer's name + */ +#define cg_upnp_device_getmanufacturer(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MANUFACTURER) + +/***************************************************************************** + * Manufacturer URL + *****************************************************************************/ + +/** + * Modify the device's manufacturer URL + * + * \param dev Device in question + * \param value The manufacturer URL + * + */ +#define cg_upnp_device_setmanufacturerurl(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MANUFACTURER_URL, value) + +/** + * Get the device's manufacturer URL + * + * \param dev Device in question + * + * \return The manufacturer URL + */ +#define cg_upnp_device_getmanufacturerurl(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MANUFACTURER_URL) + +/***************************************************************************** + * Model Description + *****************************************************************************/ + +/** + * Modify the device model description + * + * \param dev Device in question + * \param value The device model description + * + */ +#define cg_upnp_device_setmodeldescription(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MODEL_DESCRIPTION, value) + +/** + * Get the device model description + * + * \param dev Device in question + * + * \return The device model description + */ +#define cg_upnp_device_getmodeldescription(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MODEL_DESCRIPTION) + +/***************************************************************************** + * Model Name + *****************************************************************************/ + +/** + * Modify the device's model name + * + * \param dev Device in question + * \param value The model name + * + */ +#define cg_upnp_device_setmodelname(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MODEL_NAME, value) + +/** + * Get the device's model name + * + * \param dev Device in question + * + * \return The model name + */ +#define cg_upnp_device_getmodelname(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MODEL_NAME) + +/***************************************************************************** + * Model Number + *****************************************************************************/ + +/** + * Modify the device's model number + * + * \param dev Device in question + * \param value The model number + * + */ +#define cg_upnp_device_setmodelnumber(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MODEL_NUMBER, value) + +/** + * Get the device's model number + * + * \param dev Device in question + * + * \return The model number + */ +#define cg_upnp_device_getmodelnumber(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MODEL_NUMBER) + +/***************************************************************************** + * Model URL + *****************************************************************************/ + +/** + * Modify the device's model URL + * + * \param dev Device in question + * \param value The model URL + * + */ +#define cg_upnp_device_setmodelurl(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MODEL_URL, value) + +/** + * Get the device's model URL + * + * \param dev Device in question + * + * \return The model URL + */ +#define cg_upnp_device_getmodelurl(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_MODEL_URL) + +/***************************************************************************** + * serialNumber + *****************************************************************************/ + +/** + * Modify the device's serial number + * + * \param dev Device in question + * \param value The serial number + * + */ +#define cg_upnp_device_setserialnumber(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_SERIAL_NUMBER, value) + +/** + * Get the device's model number + * + * \param dev Device in question + * + * \return The serial number + */ +#define cg_upnp_device_getserialnumber(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_SERIAL_NUMBER) + +/***************************************************************************** + * Unique Device Name (UDN) + *****************************************************************************/ + +/** + * Modify the device's Unique Device Name (UDN) + * + * \param dev Device in question + * \param value The Unique Device Name + * + */ +#define cg_upnp_device_setudn(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_UDN, value) + +/** + * Get the device's Unique Device Name (UDN) + * + * \param dev Device in question + * + * \return The Unique Device Name + */ +#define cg_upnp_device_getudn(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_UDN) + +/** + * Check whether the device has a Unique Device Name (UDN) + * + * \param dev Device in question + * + * \return TRUE if the device has a UDN; otherwise FALSE + */ +#define cg_upnp_device_hasudn(dev) ((0 < cg_strlen(cg_upnp_device_getudn(dev))) ? TRUE : FALSE) + +/** + * Update new Unique Device Name (UDN) + * + * \param dev Device in question + * + */ +void cg_upnp_device_updateudn(CgUpnpDevice *dev); + +/***************************************************************************** + * Universal Product Code (UPC) + *****************************************************************************/ + +/** + * Modify the device's Universal Product Code (UPC) + * + * \param dev Device in question + * \param value The Universal Product Code + * + */ +#define cg_upnp_device_setupc(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_UPC, value) + +/** + * Get the device's Universal Product Code (UPC) + * + * \param dev Device in question + * + * \return The Universal Product Code + */ +#define cg_upnp_device_getupc(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_UPC) + +/***************************************************************************** + * Presentation URL + *****************************************************************************/ + +/** + * Modify the device's presentation URL + * + * \param dev Device in question + * \param value The presentation URL + * + */ +#define cg_upnp_device_setpresentationurl(dev, value) cg_xml_node_setchildnode(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_PRESENTATION_URL, value) + +/** + * Get the device's presentation URL + * + * \param dev Device in question + * + * \return The presentation URL + */ +#define cg_upnp_device_getpresentationurl(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getdevicenode(dev), CG_UPNP_DEVICE_PRESENTATION_URL) + +/***************************************************************************** + * URLBase + *****************************************************************************/ + +/** + * Modify the device's URL base + * The base URL is the root for all relative URLs. + * + * \param dev Device in question + * \param value The URL base + * + */ +void cg_upnp_device_seturlbase(CgUpnpDevice *dev, char *value); + +/** + * Get the device's base URL. + * The base URL is the root for all relative URLs. + * + * \param dev Device in question + * \return The URL base + * + */ +#define cg_upnp_device_geturlbase(dev) cg_xml_node_getchildnodevalue(cg_upnp_device_getrootnode(cg_upnp_device_getrootdevice(dev)), CG_UPNP_DEVICE_URLBASE_NAME) + +/***************************************************************************** + * Start/Stop + *****************************************************************************/ + +/** + * Start the device. This essentially starts: + * \li The HTTP server + * \li The SSDP server + * \li Advertising the device + * \li Alive notification + * + * \param dev Device in question + * + */ +BOOL cg_upnp_device_start(CgUpnpDevice *dev); + +/** + * Stop the device. This concerns: + * \li The HTTP server + * \li The SSDP server + * \li Advertising the device + * \li Byebye notification + * + * \param dev Device in question + * + */ +BOOL cg_upnp_device_stop(CgUpnpDevice *dev); + +/** + * Check if the device] has been started + * + * \param dev Device that is being advertised + */ +BOOL cg_upnp_device_isrunning(CgUpnpDevice *dev); + +/***************************************************************************** + * URL + *****************************************************************************/ + +/** + * Get device's location URL. Transforms the given address to URL form: + * "http://:/description.xml". Port is usually 80 or 38400. + * If is an IPv6 address, the address is "http://[]:/description.xml". + * + * \param dev Device in question + * \param host The device host + * \param buf Buffer to store the resulting URL + * \param bufSize Buffer length + * + */ +char *cg_upnp_device_getlocationurl(CgUpnpDevice *dev, char *host, char *buf, int bufSize); + +/***************************************************************************** + * Notify + *****************************************************************************/ + +/** + * Broadcast an SSDP:alive to notify control points that the device is available. + * + * \param dev Device in question + * + */ +void cg_upnp_device_announce(CgUpnpDevice *dev); + +/** + * Broadcast an SSDP:byebye message to notify control points that the device is no longer available. + * + * \param dev Device in question + * + */ +void cg_upnp_device_byebye(CgUpnpDevice *dev); + +/***************************************************************************** + * Mutex + *****************************************************************************/ + +/** + * Lock the device's mutex (grant exclusive access to the device) until \ref cg_upnp_device_unlock is called. + * + * \param dev Device in question + * + */ +#define cg_upnp_device_lock(dev) cg_mutex_lock(dev->mutex) + +/** + * Lock the device's mutex with timeout, return TRUE if exclusive access is gained + * Release lock with \ref cg_upnp_device_unlock is called. + * + * \param dev Device in question + * \param t timeout in ms + * + */ +#define cg_upnp_device_waitforlock(dev,t) cg_mutex_waitforlock(dev->mutex,t) + +/** + * Unlock the device's mutex (release exclusive access to the device) locked previously with \ref cg_upnp_device_lock. + * + * \param dev Device in question + * + */ +#define cg_upnp_device_unlock(dev) cg_mutex_unlock(dev->mutex) + +/***************************************************************************** + * Listener + *****************************************************************************/ + +/** + * Set an action listener to the device. Actions are basically commands, that the + * device (service) responds to. + * + * \param dev Device in question + * \param actionListener The action listener + * + */ +void cg_upnp_device_setactionlistener(CgUpnpDevice *dev, CG_UPNP_ACTION_LISTNER actionListner); + +/** + * Set a query listener to the device. Queries are meant for state variables. + * + * \param dev Device in question + * \param actionListener The query listener + * + */ +void cg_upnp_device_setquerylistener(CgUpnpDevice *dev, CG_UPNP_STATEVARIABLE_LISTNER queryListner); + +/***************************************************************************** + * User Data + *****************************************************************************/ + +/** + * Set device's user data pointer + * + * \param dev Device in question + * \param value User data pointer + * + */ +#define cg_upnp_device_setuserdata(dev, value) (dev->userData = value) + +/** + * Get device's user data pointer + * + * \param dev Device in question + * \return pointer to user data + * + */ +#define cg_upnp_device_getuserdata(dev) (dev->userData) + +/***************************************************************************** +* Function +******************************************************************************/ + +/***************************************************************************** + * DescriptionURL + *****************************************************************************/ + +/** + * Set the given URL as the device's description URI + * + * \param dev Device in question + * \param url Description URL + * + */ +#define cg_upnp_device_setdescriptionuri(dev,url) cg_string_setvalue(dev->descriptionURI, url) + +/** + * Get the device's description URI + * + * \param dev Device in question + * + */ +#define cg_upnp_device_getdescriptionuri(dev) cg_string_getvalue(dev->descriptionURI) + +/** + * Check, whether the given URL matches the device's description URI + * + * \param dev Device in question + * \param url Description URL to check + * + */ +#define cg_upnp_device_isdescriptionuri(dev, url) cg_streq(cg_string_getvalue(dev->descriptionURI), url) + +/***************************************************************************** + * Lease Time + *****************************************************************************/ + +/** + * Set the device's lease time. The lease time is basically the maximum amount + * of time that can elapse before an advertisement is broadcast again. It does not + * set the exact advertisement interval, but rather a time window for each advertisement. + * Advertisement actually occurs at (more or less) random intervals inside this time window. + * + * \param dev Device in question + * \param value Lease time in seconds + * + */ +#define cg_upnp_device_setleasetime(dev,value) (dev->leaseTime = value) + +/** + * Get the device's lease time. See \ref cg_upnp_device_setleasetime. + * + * \param dev Device in question + * + */ +#define cg_upnp_device_getleasetime(dev) (dev->leaseTime) + +/***************************************************************************** +* Functions (Embedded) +******************************************************************************/ + +/***************************************************************************** + * Embedded DeviceList + *****************************************************************************/ + +/** + * Get the device's internal device list + * + * \param dev Device in question + * + */ +#define cg_upnp_device_getdevicelist(dev) (dev->deviceList) + +/** + * Find a certain device from the given device list + * + * \param dev Device in question + * \param idx Device index number in list + * \return NULL if not found; otherwise the device pointer + * + */ +//Theo Beisch added missing (CgList*) cast +#define cg_upnp_device_getdevice(dev,idx) ((CgUpnpDevice *)cg_list_get((CgList*)dev->deviceList,idx)) + +/** + * \todo Correct explanation... + * + * \param dev Device in question + * + */ +//Theo Beisch : added missing (CgList*) cast +#define cg_upnp_device_getdevices(dev) ((CgUpnpDevice *)cg_list_gets((CgList *)dev->deviceList)) + +/** + * Find a device from the device's children by the exact type of the device. + * This function searches for devices, whose *complete type string* + * matches the given string, including version number. For example: + * "urn:schemas-upnp-org:device:FooDevice:1". If you need to disregard + * the version, use \ref cg_upnp_device_getdevicebytype + * + * \param ctrlPoint Controlpoint in question + * \param exacttype Type of the device + * + */ +CgUpnpDevice *cg_upnp_device_getdevicebyexacttype(CgUpnpDevice* dev, + char *exacttype); + +/** + * Find a device from the device's children by the type of the device. + * This function searches for devices, whose *type part* (i.e. not including + * the version) of the device type string matches the given string. + * For example: "urn:schemas-upnp-org:device:FooDevice". If you need + * to know the version of a device, use \ref cg_upnp_devicetype_getversion + * + * \param dev Device in question + * \param type Type of the device + * + */ +CgUpnpDevice *cg_upnp_device_getdevicebytype(CgUpnpDevice *dev, char *type); + +/** + * Find a device from the device's children by the UDN of the device. + * + * \param dev Device in question + * \param type Type of the device + * + */ +CgUpnpDevice *cg_upnp_device_getdevicebyudn(CgUpnpDevice *dev, char *udn); + +/** + * Find a child device by its description URI. + * + * \param dev Device in question + * \param url Description URI + * + */ +CgUpnpDevice *cg_upnp_device_getdevicebydescriptionuri(CgUpnpDevice *dev, char *url); + +/***************************************************************************** + * Embedded ServiceList + *****************************************************************************/ + +/** + * Get the device's list of services + * + * \param dev Device in question + * + */ +#define cg_upnp_device_getservicelist(dev) (dev->serviceList) + +/** + * Get the number of services known by the device + * + * \param dev Device in question + * @return The number of devices in the control point's device list + */ +#define cg_upnp_device_getnservices(dev) cg_upnp_servicelist_size(dev->serviceList) + +/** + * Get a service from from the device + * + * \param dev Device in question + * \param idx Device index number + * + */ +//Theo Beisch : added missing (CgList*) cast +#define cg_upnp_device_getservice(dev,idx) ((CgUpnpService *)cg_list_get((CgList *)dev->serviceList,idx)) + +/** + * \todo Correct explanation... + * + * \param dev Device in question + * + */ +#define cg_upnp_device_getservices(dev) ((CgUpnpService *)cg_list_gets((CgList *)dev->serviceList)) + +/** + * Find service from the device by a given serviceId. + * This function searches recursively device and its subdevices + * for a service with a given serviceId + * + * \param dev Device in question + * \param serviceId serviceId of the service + * \return service matching the given serviceId + */ +CgUpnpService *cg_upnp_device_getservicebyserviceid(CgUpnpDevice *dev, + char *serviceId); + +/** + * Find a service from the device by the type of the service. + * This function searches for services, whose *complete type string* + * matches the given string, including version number. For example: + * "urn:schemas-upnp-org:service:ContentDirectory:1". If you need to + * know the version of a service, use \ref cg_upnp_servicetype_getversion + * + * \param dev Device in question + * \param type Type of the service + * + */ +CgUpnpService *cg_upnp_device_getservicebyexacttype(CgUpnpDevice *dev, + char *type); + +/** + * Find a service from the device by the type of the service. + * This function searches for services, whose *type* part of the service type + * string matches the given string. For example: "ContentDirectory". + * If you need to search for an exact service type, use + * \ref cg_upnp_device_getservicebyname + * + * \param dev Device in question + * \param type Type of the service + * + */ +CgUpnpService *cg_upnp_device_getservicebytype(CgUpnpDevice *dev, char *type); + +/** + * Find a service from the device by the subscribtion ID + * + * \param dev Device in question + * \param sid Subscription ID of the service + */ +CgUpnpService *cg_upnp_device_getservicebysid(CgUpnpDevice *dev, char *sid); + +/** + * Find a service from the device by the SCPD (Service Control Protocol Definition) URL of the service. + * + * \param dev Device in question + * \param url SCPD URL + * + */ +CgUpnpService *cg_upnp_device_getservicebyscpdurl(CgUpnpDevice *dev, char *url); + +/** + * Find a service from a device by its control URL + * + * \param dev Device in question + * \param url Control URL + * + */ +CgUpnpService *cg_upnp_device_getservicebycontrolurl(CgUpnpDevice *dev, char *url); + +/** + * Find a service from a device by its event subscription URL + * + * \param dev Device in question + * \param url Event Subscription URL + * + */ +CgUpnpService *cg_upnp_device_getservicebyeventsuburl(CgUpnpDevice *dev, char *url); + +/** + * Find a service from its Subscription ID + * + * \param dev Device in question + * \param char* Subscription-ID (SID) + * + */ +CgUpnpService *cg_upnp_device_getservicebysid(CgUpnpDevice *dev, char *sid); + + +/***************************************************************************** + * Embedded IconList + *****************************************************************************/ + +/** + * Get the device's list of icons + * + * \param dev Device in question + * + */ +#define cg_upnp_device_geticonlist(dev) (dev->iconList) + +/** + * Get an icon by its index from the device's list of icons + * + * \param dev Device in question + * \param idx Icon index number + * + */ +#define cg_upnp_device_geticon(dev,idx) ((CgUpnpIcon *)cg_list_get((CgList *)dev->iconList,idx)) + +/** + * \todo Correct explanation... + * + * \param dev Device in question + * + */ +#define cg_upnp_device_geticons(dev) ((CgUpnpIcon *)cg_list_gets((CgList *)dev->iconList)) + +/** +* Get a smallest icon +* +* \param dev Device in question +* +* \return A smallest icon. +*/ +CgUpnpIcon *cg_upnp_device_getsmallesticon(CgUpnpDevice *dev); + +/** + * Get a smallest icon of a specified mime type + * + * \param dev Device in question + * \param mimeType Mime type to get + * + * \return A smallest icon. +*/ +CgUpnpIcon *cg_upnp_device_getsmallesticonbymimetype(CgUpnpDevice *dev, char *mimeType); + +/** + * Get an icon by its index from the device's list of icons + * + * \param dev Device in question + * \param icon Icon in question + * \param buf Buffer to return the full icon's url + * + * \return TRUE if the absolute url is created, otherwise FALSE. + */ +BOOL cg_upnp_device_getabsoluteiconurl(CgUpnpDevice *dev, CgUpnpIcon *icon, CgString *buf); + +/** +* Get a smallest icon + * + * \param dev Device in question + * \param icon Icon to add + * + */ +BOOL cg_upnp_device_addicon(CgUpnpDevice *dev, CgUpnpIcon *icon); + +/***************************************************************************** + * Embedded Action + *****************************************************************************/ + +/** + * Find an action from a device by its name + * + * \param dev Device in question + * \param name Name of the action + * + */ +CgUpnpAction *cg_upnp_device_getactionbyname(CgUpnpDevice *dev, char *name); + +/***************************************************************************** + * Embedded StateVariable + *****************************************************************************/ + +/** + * Find a state variable from a device by its name + * + * \param dev Device in question + * \param name Name of the state variable + * + */ +CgUpnpStateVariable *cg_upnp_device_getstatevariablebyname(CgUpnpDevice *dev, char *name); + +/***************************************************************************** + * Function (DeviceList) + *****************************************************************************/ + +/** + * Create a new device list + * + */ +CgUpnpDeviceList *cg_upnp_devicelist_new(); + +/** + * Delete a device list completely, freeing all devices and their contents. + * + * \param devList The device list to delete + * + */ +void cg_upnp_devicelist_delete(CgUpnpDeviceList *devList); + +/** + * Clear the contents of a device list. + * Use \ref cg_upnp_devicelist_delete instead of this function. + * + * \param devList The device list to clear + * + */ +#define cg_upnp_devicelist_clear(devList) cg_list_clear((CgList *)devList, (CG_LIST_DESTRUCTORFUNC)cg_upnp_device_delete) + +/** + * Get the size of the device list + * + * \param devList The device list + * + */ +#define cg_upnp_devicelist_size(devList) cg_list_size((CgList *)devList) + +/** + * \todo Correct description + * + * \param devList The device list + * + */ +#define cg_upnp_devicelist_gets(devList) (CgUpnpDevice *)cg_list_next((CgList *)devList) + +/** + * Get an device from the device list by the index + * + * \param devList The device list + * \param index The index of the device to get + * + */ +#define cg_upnp_devicelist_get(devList, index) (CgUpnpDevice *)cg_list_get((CgList *)devList, index) + +/** + * Add a device to the device list + * + * \param devList The device list + * \param dev The device to add + * + */ +#define cg_upnp_devicelist_add(devList, dev) cg_list_add((CgList *)devList, (CgList *)dev) + +/**************************************** +* Function (Service) +****************************************/ + +/** + * Get the device associated to the given service + * + * \param service The service in question + * + */ +//Theo Beisch: namespace conflict - removed duplicate - already defined in cservice.h +//#define cg_upnp_service_getdevice(service) ((CgUpnpDevice *)service->parentDevice) + +/** + * Get the root device of the given service + * + * \param service The service in question + * + */ +//Theo Beisch: namespace conflict - removed duplicate - already defined in cservice.h +//#define cg_upnp_service_getrootdevice(service) cg_upnp_device_getrootdevice((CgUpnpDevice *)service->parentDevice) + +/***************************************************************************** +* Function (HTTP) +******************************************************************************/ + +/***************************************************************************** + * HTTP Port + *****************************************************************************/ + +/** + * Modify the port that the device's HTTP server is listening + * + * \param dev The device in question + * \param value Port number + * + */ +#define cg_upnp_device_sethttpport(dev,value) (dev->httpPort = value) + +/** + * Get the device's HTTP port + * + * \param dev The device in question + * + */ +#define cg_upnp_device_gethttpport(dev) (dev->httpPort) + +/** + * Set an HTTP listener function to the device + * + * \param dev The device in question + * \param func The listener function + * + */ +#define cg_upnp_device_sethttplistener(dev, func) (dev->httpListener = func) + +/** + * Get the device's HTTP listener function + * + * \param dev The device in question + * + */ +#define cg_upnp_device_gethttplistener(dev) (dev->httpListener) + +/** + * Get the HTTP server list + * + * \param dev The device in question + * + */ +#define cg_upnp_device_gethttpserverlist(dev) (dev->httpServerList) + +/** + * Handler function for a received HTTP request. Delegates GET and POST requests + * to their respective handlers, or treats as a BAD REQUEST, when appropriate. + * + * \param httpReq Received HTTP request + * + */ +void cg_upnp_device_httprequestrecieved(CgHttpRequest *httpReq); + +/***************************************************************************** + * Function (SSDP) + *****************************************************************************/ + +/** + * Get the device's list of SSDP servers + * + * \param dev The device in question + * + */ +#define cg_upnp_device_getssdpserverlist(dev) (dev->ssdpServerList) + +/** + * The SSDP message handler function. + * + * \param ssdpPkt SSDP Packet + * + */ +void cg_upnp_device_ssdplistener(CgUpnpSSDPPacket *ssdpPkt); + +/** + * Get the SSDP server list + * + * \param dev The device in question + * + */ +#define cg_upnp_device_getssdpserverlist(dev) (dev->ssdpServerList) + +/** + * Get the device's Notification Type (NT). For the root device this is "upnp:rootdevice", + * otherwise the device's UDN (Unique Device Name). + * + * \param dev The device in question + * \param buf Buffer for the Notification Type + * \param bufSize Buffer length + * + */ +char *cg_upnp_device_getnotifydevicent(CgUpnpDevice *dev, char *buf, int bufSize); + +//Theo Beisch: added reference +/** + * Get the device's USN (Unique Service Name). + * For the root device this is "::upnp:rootdevice", + * otherwise the UDN (Unique Device Name). + * + * \param dev The device in question + * + */ +char *cg_upnp_device_getnotifydeviceusn(CgUpnpDevice *dev, char *buf, int bufSize); + +/** + * Get the device type + * + * \param dev The device in question + * \param buf Buffer for the device type + * \param bufSize Buffer length + * + */ +char *cg_upnp_device_getnotifydevicetypent(CgUpnpDevice *dev, char *buf, int bufSize); + +/** + * Get the device's USN (Unique Service Name). For the root device this is "::upnp:rootdevice", + * otherwise the UDN (Unique Device Name). + * + * \param dev The device in question + * @param buf Buffer where USN is stored after call + * @param bufSize Buffer size + * + * @return Pointer to buf + */ +char *cg_upnp_device_getnotifydevicetypeusn(CgUpnpDevice *dev, char *buf, int bufSize); + +/** + * SSDP message handler + * + * \param dev The device in question + * \param ssdpPkt Received SSDP packet + * + */ +void cg_upnp_device_ssdpmessagereceived(CgUpnpDevice *dev, CgUpnpSSDPPacket *ssdpPkt, int filter); + +/** + * Post a response to an SSDP search message + * + * \param dev The device in question + * \param ssdpPkt Received SSDP packet + * \param st Service Type (ST) + * \param usn Unique Service Name (USN) + * + */ +BOOL cg_upnp_device_postsearchresponse(CgUpnpDevice *dev, CgUpnpSSDPPacket *ssdpPkt, char *st, char *usn); + +/** + * Notify device that IP address of the host has been changed. + * + * \param dev dev The device in question + * \return success of changing used interfaces + */ +BOOL cg_upnp_device_ipchanged(CgUpnpDevice *dev); + +/***************************************************************************** + * Function (SSDPPacket) + *****************************************************************************/ + +/** + * Get the device's SSDP packet + * + * \param dev The device in question + * + */ +#define cg_upnp_device_getssdppacket(dev) (dev->ssdpPkt) + +/** + * Modify the device's SSDP packet (creates a copy of the original) + * + * \param dev The device in question + * \param srcSsdpPkt The SSDP packet + * + */ +#define cg_upnp_device_setssdppacket(dev, srcSsdpPkt) cg_upnp_ssdp_packet_copy(dev->ssdpPkt, srcSsdpPkt) + +/** + * Extract location information from the device's SSDP packet + * + * \param dev The device in question + * + */ +#define cg_upnp_device_getlocationfromssdppacket(dev) cg_upnp_ssdp_packet_getlocation(dev->ssdpPkt) + +/** + * Extract the interface address from the device's SSDP packet + * + * \param dev The device in question + * + */ +#define cg_upnp_device_getinterfaceaddressfromssdppacket(dev) cg_upnp_ssdp_packet_getlocaladdress(dev->ssdpPkt) + +/**************************************** +* Function (Advertiser) +****************************************/ + +/** + * Start the advertiser thread for the given device + * + * \param dev The device in question + */ +BOOL cg_upnp_device_advertiser_start(CgUpnpDevice *dev); + +/** + * Stop the advertiser thread for the given device + * + * \param dev The device in question + */ +BOOL cg_upnp_device_advertiser_stop(CgUpnpDevice *dev); + +/** + * Check if the advertiser has been started + * + * \param dev Device that is being advertised + */ +BOOL cg_upnp_device_advertiser_isrunning(CgUpnpDevice *dev); + +/** + * Get the advertiser thread from the device + * + * \param dev The device in question + */ +#define cg_upnp_device_getadvertiserthead(dev) (dev->advertiser) + +#ifdef __cplusplus + +} /* extern C */ + +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cicon.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cicon.h new file mode 100644 index 0000000..3c040d6 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cicon.h @@ -0,0 +1,247 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cicon.h +* +* Revision: +* +* 02/14/05 +* - first revision +* +* 10/31/05 +* - Added comments to all functions and structs +******************************************************************/ + +#ifndef _CG_UPNP_CICON_H_ +#define _CG_UPNP_CICON_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#define CG_UPNP_ICON_ELEM_NAME "icon" +#define CG_UPNP_ICONLIST_ELEM_NAME "iconList" + +#define CG_UPNP_ICON_MIME_TYPE "mimetype" +#define CG_UPNP_ICON_WIDTH "width" +#define CG_UPNP_ICON_HEIGHT "height" +#define CG_UPNP_ICON_DEPTH "depth" +#define CG_UPNP_ICON_URL "url" + +/**************************************** +* Data Type +****************************************/ +/** + * The generic icon struct + */ +typedef struct _CgUpnpIcon { + BOOL headFlag; + struct _CgUpnpIcon *prev; + struct _CgUpnpIcon *next; + CgXmlNode *iconNode; +} CgUpnpIcon, CgUpnpIconList; + +/**************************************** +* Function (Icon) +****************************************/ + +/** + * Create a new icon struct + */ +CgUpnpIcon *cg_upnp_icon_new(); + +/** + * Delete an icon struct + * + * \param dev Icon to delete + */ +void cg_upnp_icon_delete(CgUpnpIcon *dev); + +/** + * Get the next icon in list. Use as an iterator. + * + * \param icon Node in a list of icons + */ +#define cg_upnp_icon_next(icon) (CgUpnpIcon *)cg_list_next((CgList *)icon) + +/** + * Check whether the given node is a member of an icon list + * + * \param node List node + */ +#define cg_upnp_icon_isiconnode(node) cg_xml_node_isname(node, CG_UPNP_ICON_ELEM_NAME) + +/** + * Set the XML icon node to an icon struct + * + * \param icon The icon struct + * \param node XML node + */ +#define cg_upnp_icon_seticonnode(icon,node) (icon->iconNode = node) + +/** + * Get the XML icon node from an icon struct + * + * \param icon The icon struct + */ +#define cg_upnp_icon_geticonnode(icon) (icon->iconNode) + +/***************************************************************************** + * mimeType + *****************************************************************************/ + +/** + * Set the icon's MIME type + * + * \param icon Icon in question + * \param value MIME type + */ +#define cg_upnp_icon_setmimetype(icon, value) cg_xml_node_setchildnode(cg_upnp_icon_geticonnode(icon), CG_UPNP_ICON_MIME_TYPE, value) + +/** + * Get the icon's MIME type + * + */ +#define cg_upnp_icon_getmimetype(icon) cg_xml_node_getchildnodevalue(cg_upnp_icon_geticonnode(icon), CG_UPNP_ICON_MIME_TYPE) + +/***************************************************************************** + * width + *****************************************************************************/ + +/** + * Set icon width + * + * \param icon Icon in question + * \param value Icon width + */ +#define cg_upnp_icon_setwidth(icon, value) cg_xml_node_setchildnode(cg_upnp_icon_geticonnode(icon), CG_UPNP_ICON_WIDTH, value) + +/** + * Get icon width + * + */ +#define cg_upnp_icon_getwidth(icon) cg_xml_node_getchildnodeintvalue(cg_upnp_icon_geticonnode(icon), CG_UPNP_ICON_WIDTH) + +/***************************************************************************** + * height + *****************************************************************************/ + +/** + * Set icon height + * + * \param icon Icon in question + * \param value Icon height + */ +#define cg_upnp_icon_setheight(icon, value) cg_xml_node_setchildnode(cg_upnp_icon_geticonnode(icon), CG_UPNP_ICON_HEIGHT, value) + +/** + * Get icon height + * + */ +#define cg_upnp_icon_getheight(icon) cg_xml_node_getchildnodeintvalue(cg_upnp_icon_geticonnode(icon), CG_UPNP_ICON_HEIGHT) + +/***************************************************************************** + * Colour Depth + *****************************************************************************/ + +/** + * Set icon's colour depth + * + * \param icon Icon in question + * \param value Colour depth + */ +#define cg_upnp_icon_setdepth(icon, value) cg_xml_node_setchildnode(cg_upnp_icon_geticonnode(icon), CG_UPNP_ICON_DEPTH, value) + +/** + * Get icon's colour depth + * + */ +#define cg_upnp_icon_getdepth(icon) cg_xml_node_getchildnodeintvalue(cg_upnp_icon_geticonnode(icon), CG_UPNP_ICON_DEPTH) + +/***************************************************************************** + * URL + *****************************************************************************/ + +/** + * Set icon's URL + * + * \param icon Icon in question + * \param value Icon's URL + */ +#define cg_upnp_icon_seturl(icon, value) cg_xml_node_setchildnode(cg_upnp_icon_geticonnode(icon), CG_UPNP_ICON_URL, value) + +/** + * Get icon's URL + * + */ +#define cg_upnp_icon_geturl(icon) cg_xml_node_getchildnodevalue(cg_upnp_icon_geticonnode(icon), CG_UPNP_ICON_URL) + +/***************************************************************************** + * Function (IconList) + *****************************************************************************/ + +/** + * Create a new list of icons + * + */ +CgUpnpIconList *cg_upnp_iconlist_new(); + +/** + * Delete a list of icons + * + * \param iconList List of icons + */ +void cg_upnp_iconlist_delete(CgUpnpIconList *iconList); + +/** + * Clear the contents of an icon list + * + * \param iconList List of icons + */ +#define cg_upnp_iconlist_clear(iconList) cg_list_clear((CgList *)iconList, (CG_LIST_DESTRUCTORFUNC)cg_upnp_icon_delete) + +/** + * Get the size (number of elements) of an icon list + * + * \param iconList List of icons + */ +#define cg_upnp_iconlist_size(iconList) cg_list_size((CgList *)iconList) + +/** + * \todo Get the first icon from the list for iteration + * + * \param iconList List of icons + */ +#define cg_upnp_iconlist_gets(iconList) (CgUpnpIcon *)cg_list_next((CgList *)iconList) + +/** + * Add an icon to an icon list + * + * \param iconList List of icons + * \param icon Icon to add + */ +#define cg_upnp_iconlist_add(iconList, icon) cg_list_add((CgList *)iconList, (CgList *)icon) + +#ifdef __cplusplus + +} /* extern "C" */ + +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/control/ccontrol.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/control/ccontrol.h new file mode 100644 index 0000000..4c8f429 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/control/ccontrol.h @@ -0,0 +1,785 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: ccontrol.h +* +* Re1vision: +* +* 04/19/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UPNP_CCONTROL_H_ +#define _CG_UPNP_CCONTROL_H_ + +#include + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +/**** MAN ****/ + +/** + * Definition for mandatory discover header + */ +#define CG_UPNP_MAN_DISCOVER "\"ssdp:discover\"" + +/**** NT ****/ + +/** + * Definition for NT (Notification type) root device + */ +#define CG_UPNP_NT_ROOTDEVICE "upnp:rootdevice" + +/** + * Definition for NT event + */ +#define CG_UPNP_NT_EVENT "upnp:event" + +/**** NTS ****/ + +/** + * Definition for NTS alive + */ +#define CG_UPNP_NTS_ALIVE "ssdp:alive" + +/** + * Definition for NTS byebye + */ +#define CG_UPNP_NTS_BYEBYE "ssdp:byebye" + +/** + * Definition for NTS property change + */ +#define CG_UPNP_NTS_PROPCHANGE "upnp:propchange" + +/**** ST ****/ + +/** + * Definition for general ST (search target) + */ +#define CG_UPNP_ST_ALL_DEVICE "ssdp:all" + +/** + * Definition for root device ST + */ +#define CG_UPNP_ST_ROOT_DEVICE "upnp:rootdevice" + +/** + * Definition for ST UUID (universally unique identifier) prefix + */ +#define CG_UPNP_ST_UUID_DEVICE "uuid" + + /** + * Definition for URN device + */ +#define CG_UPNP_ST_URN "urn" + +/** + * Definition for URN device + */ +#define CG_UPNP_ST_URN_DEVICE "urn:schemas-upnp-org:device" + +/** + * Definition for URN service + */ +#define CG_UPNP_ST_URN_SERVICE "urn:schemas-upnp-org:service" + +/**** USN ****/ + +/** + * Definition for USN rootdevice + */ +#define CG_UPNP_USN_ROOTDEVICE "upnp:rootdevice" + +/** + * Definition for control name space + */ +#define CG_UPNP_CONTROL_NS "u" + +/** + * Definition for soap action: state variable query + */ +#define CG_UPNP_CONTROL_QUERY_SOAPACTION "\"urn:schemas-upnp-org:control-1-0#QueryStateVariable\"" + +/** + * Definition for control XML name space + */ +#define CG_UPNP_CONTROL_XMLNS "urn:schemas-upnp-org:control-1-0" + +/** + * Definition for query state variable + */ +#define CG_UPNP_CONTROL_QUERY_STATE_VARIABLE "QueryStateVariable" + +/** + * Definition for query state variable response + */ +#define CG_UPNP_CONTROL_QUERY_STATE_VARIABLE_RESPONSE "QueryStateVariableResponse" + +/** + * Definition for control variable name + */ +#define CG_UPNP_CONTROL_VAR_NAME "varName" + +/** + * Definition for control return + */ +#define CG_UPNP_CONTROL_RETURN "return" + +/** + * Definition for control fault code + */ +#define CG_UPNP_CONTROL_FAULT_CODE "Client" + +/** + * Definition for contol fault string + */ +#define CG_UPNP_CONTROL_FAULT_STRING "UPnPError" + +/** + * Definition fro control error code + */ +#define CG_UPNP_CONTROL_ERROR_CODE "errorCode" + +/** + * Definition for control error description + */ +#define CG_UPNP_CONTROL_ERROR_DESCRIPTION "errorDescription" + +/**************************************** +* Data Type +****************************************/ + +/**** Action ****/ + +/** + * Data type definition for action response + */ +typedef struct _CgUpnpActionResponse { + CgSoapResponse *soapRes; + BOOL isSoapResCreated; + CgUpnpArgumentList *argList; +} CgUpnpActionResponse; + +/** + * Data type definition for action request + */ +typedef struct _CgUpnpActionRequest{ + CgSoapRequest *soapReq; + BOOL isSoapReqCreated; + CgUpnpArgumentList *argList; + CgUpnpActionResponse *actionRes; +} CgUpnpActionRequest; + +/**** Query ****/ + +/** + * Data type definition for query response + */ +typedef struct _CgUpnpQueryResponse { + CgSoapResponse *soapRes; + BOOL isSoapResCreated; +} CgUpnpQueryResponse; + +/** + * Data type definition for query request + */ +typedef struct _CgUpnpQueryRequest{ + CgSoapRequest *soapReq; + BOOL isSoapReqCreated; + CgUpnpQueryResponse *queryRes; +} CgUpnpQueryRequest; + +/**************************************** +* Function +****************************************/ + +/* After POST has failed we send M-POST and change the SOAPACTION header into 01-SOAPACTION. + * Next ensures that also in this case query is interpreted as a query. + */ + +/** + * Check if HTTP request query is UPnP query request + * + * @param httpReq HTTP request + * + * @return True if request is UPnP query request, false othewise + */ +#define cg_upnp_control_isqueryrequest(httpReq) ( ((0 <= cg_strstr(cg_soap_request_getsoapaction(httpReq), CG_UPNP_CONTROL_QUERY_SOAPACTION)) ? TRUE : FALSE) || ((0 <= cg_strstr(cg_soap_request_getsoapactionwithns(httpReq), CG_UPNP_CONTROL_QUERY_SOAPACTION)) ? TRUE : FALSE) ) + +/* Check if HTTP request is UPnP action request + * + * @param httpReq HTTP request + * + * @return True if request is UPnP action request, false otherwise + */ +#define cg_upnp_control_isactionrequest(httpReq) ((cg_upnp_control_isqueryrequest(httpReq) == TRUE) ? FALSE : TRUE) + +/** + * Initializes soap requests envelope node + * + * @param soapReq Soap request + */ +void cg_upnp_control_soap_request_initializeenvelopenode(CgSoapRequest *soapReq); + +/** + * Initialize soap responses envelope node + * + * @param soapRes Soap response + */ +void cg_upnp_control_soap_response_initializeenvelopenode(CgSoapResponse *soapRes); +CgXmlNode *cg_upnp_control_soap_response_createfaultresponsenode(int errCode, char *errDescr); + +/** + * Set failed response data + * + * @param soapRes Soap response + * @param errCode Error code + * @param errDescr Error description + */ +void cg_upnp_control_soap_response_setfaultresponse(CgSoapResponse *soapRes, int errCode, char *errDescr); + +/** + * Perform action listener + * + * @param action Action + * @param actionReq Action request + */ +BOOL cg_upnp_action_performlistner(CgUpnpAction *action, CgUpnpActionRequest *actionReq); + +/** + * Perform query listener + * + * @param statVar State variable + * @param queryReq Query request + */ +BOOL cg_upnp_statevariable_performlistner(CgUpnpStateVariable *statVar, CgUpnpQueryRequest *queryReq); + +/** + * Set host from service + * + * @param soapReq Soap request + * @param service UPnP service + */ +void cg_upnp_control_request_sethostfromservice(CgSoapRequest *soapReq, CgUpnpService *service); + +/**************************************** +* Function (ActionRequest) +****************************************/ + +/** + * Create new action request object + */ +CgUpnpActionRequest *cg_upnp_control_action_request_new(); + +/** + * Delete action request object + * + * @param actionReq Action request + */ +void cg_upnp_control_action_request_delete(CgUpnpActionRequest *actionReq); + +/** + * Clear action request + * + * @param actionReq Clear Action request + */ +void cg_upnp_control_action_request_clear(CgUpnpActionRequest *actionReq); + +/** + * Set soap request associated with action request + * + * @param actionReq Action request + * @param soapReq Soap request + */ +void cg_upnp_control_action_request_setsoaprequest(CgUpnpActionRequest *actionReq, CgSoapRequest *soapReq); + +/** + * Get soap request associated with action request + * + * @param actionReq Action request + * + * @return Soap request + */ +#define cg_upnp_control_action_request_getsoaprequest(actionReq) (actionReq->soapReq) + +/** + * Get argument list from action request + * + * @param actionReq Action request + * + * @return Argument list + */ +#define cg_upnp_control_action_request_getargumentlist(actionReq) (actionReq->argList) + +/** + * Get XML action node from action request + * + * @param actionReq + * + * @return Action request XML node + */ +CgXmlNode *cg_upnp_control_action_request_getactionnode(CgUpnpActionRequest *actionReq); + +/** + * Get action name from action request + * + * @param actionReq Action request + * + * @return Action name + */ +char *cg_upnp_control_action_request_getactionname(CgUpnpActionRequest *actionReq); + +/** + * Set action to action request + * + * @param actionReq Action request + * @param action UPnP action + */ +void cg_upnp_control_action_request_setaction(CgUpnpActionRequest *actionReq, CgUpnpAction *action); + +/** + * Get action response from action request + * + * @param actionReq Action request + * + * @return Action response + */ +#define cg_upnp_control_action_request_getactionresponse(actionReq) (actionReq->actionRes) + +/** + * Send action request + * + * @param actionReq Action request + */ +CgUpnpActionResponse *cg_upnp_control_action_request_post(CgUpnpActionRequest *actionReq); + +/**************************************** +* Function (ActionResponse) +****************************************/ + +/** + * Create new action response + */ +CgUpnpActionResponse *cg_upnp_control_action_response_new(); + +/** + * Delete action response + * + * @param actionReq Action response + */ +void cg_upnp_control_action_response_delete(CgUpnpActionResponse *actionReq); + +/** + * Clear action response + * + * @param actionReq Action response + */ +void cg_upnp_control_action_response_clear(CgUpnpActionResponse *actionReq); + +/** + * Set soap response to action response + * + * @param actionRes Action response + * @param soapRes Soap reaponse + */ +void cg_upnp_control_action_response_setsoapresponse(CgUpnpActionResponse *actionRes, CgSoapResponse *soapRes); + +/** + * Get soap response from action response + * + * @param actionRes Action response + * + * @return Soap response + */ +#define cg_upnp_control_action_response_getsoapresponse(actionRes) (actionRes->soapRes) + +/** + * Set action response to action + * + * @param actionRes Action response + * @param action UPnP action + */ +void cg_upnp_control_action_response_setresponse(CgUpnpActionResponse *actionRes, CgUpnpAction *action); + +/** + * Check if action response indicates that action invoke was successfull + * + * @param actionRes Action response + * + * @return True if action has been successful, false otherwise + */ +#define cg_upnp_control_action_response_issuccessful(actionRes) cg_soap_response_issuccessful(actionRes->soapRes) + +/** + * Get action response XML node from action response + * + * @param actionRes Action response + * + * @return Action response XML node + */ +CgXmlNode *cg_upnp_control_action_response_getactionresponsenode(CgUpnpActionResponse *actionRes); + +/** + * Get result from action response + * \todo Check this out more carefully + * + * @param actionRes Action response + * @param action UPnP action + */ +BOOL cg_upnp_control_action_response_getresult(CgUpnpActionResponse *actionRes, CgUpnpAction *action); + +/** + * Get error associated to action response + * \todo Check this out more carefully + * @param actionRes Action response + * @param action UPnP action + */ +BOOL cg_upnp_control_action_response_geterror(CgUpnpActionResponse *actionRes, CgUpnpAction *action); + +/**************************************** +* Function (QueryRequest) +****************************************/ + +/** + * Create new query request object + */ +CgUpnpQueryRequest *cg_upnp_control_query_request_new(); + +/** + * Delete query request + * + * @param queryReq Query request + */ +void cg_upnp_control_query_request_delete(CgUpnpQueryRequest *queryReq); + +/** + * Clear query request + * + * @param queryReq Query request + */ +void cg_upnp_control_query_request_clear(CgUpnpQueryRequest *queryReq); + +/** + * Set soap request for query request + * + * @param queryReq Query request + * @param soapReq Soap request + */ +void cg_upnp_control_query_request_setsoaprequest(CgUpnpQueryRequest *queryReq, CgSoapRequest *soapReq); + +/** + * Get soap request from query request + * + * @param queryReq + * + * @return Soap request + */ +#define cg_upnp_control_query_request_getsoaprequest(queryReq) (queryReq->soapReq) + +/** + * Get state variable XML node + * + * @param queryReq + * + * @return State variable XML node + */ +CgXmlNode *cg_upnp_control_query_request_getvarnamenode(CgUpnpQueryRequest *queryReq); + +/** + * Get state variable name associated with this query request + * + * @param queryReq Query request + * + * @return State variable variable name + */ +char *cg_upnp_control_query_request_getvarname(CgUpnpQueryRequest *queryReq); + +/** + * Set state variable to query request + * + * @param queryReq Query request + * @param statVar State variable + */ +void cg_upnp_control_query_request_setstatevariable(CgUpnpQueryRequest *queryReq, CgUpnpStateVariable *statVar); + +/** + * Get response from query request + * + * @param queryReq Query request + * + * @return Query response + */ +#define cg_upnp_control_query_request_getqueryresponse(queryReq) (queryReq->queryRes) + +/** + * Send query request + * + * @param queryReq Query request + * + * @return Query response + */ +CgUpnpQueryResponse *cg_upnp_control_query_request_post(CgUpnpQueryRequest *queryReq); + +/**************************************** +* Function (QueryResponse) +****************************************/ + +/** + * Create new query response + */ +CgUpnpQueryResponse *cg_upnp_control_query_response_new(); + +/** + * Delete query response + * + * @param queryReq Query request + */ +void cg_upnp_control_query_response_delete(CgUpnpQueryResponse *queryReq); + +/** + * Clear query response + * + * @param queryReq Query request + */ +void cg_upnp_control_query_response_clear(CgUpnpQueryResponse *queryReq); + +/** + * Set soap response for query response + * + * @param queryRes Query response + * @param soapRes Soap response + */ +void cg_upnp_control_query_response_setsoapresponse(CgUpnpQueryResponse *queryRes, CgSoapResponse *soapRes); + +/** + * Get soap response from query response + * + * @param queryRes Query response + * + * @return Soap response + */ +#define cg_upnp_control_query_response_getsoapresponse(queryRes) (queryRes->soapRes) + +/** + * Create and set XML response data into query response + * + * @param queryRes Query response + * @param statVar State variable + */ +void cg_upnp_control_query_response_setresponse(CgUpnpQueryResponse *queryRes, CgUpnpStateVariable *statVar); + +/** + * Check if query response indicates that query request has succeeded + * + * @param queryRes Query response + */ +#define cg_upnp_control_query_response_issuccessful(queryRes) cg_soap_response_issuccessful(queryRes->soapRes) + +/** + * Get XML return node from query response + * + * @param queryRes + * + * @return XML return node + */ +CgXmlNode *cg_upnp_control_query_response_getreturnnode(CgUpnpQueryResponse *queryRes); + +/** + * Get return valuse from query response + * + * @param queryRes Query response + * + * @return UPnP return value + */ +char *cg_upnp_control_query_response_getreturnvalue(CgUpnpQueryResponse *queryRes); + +/**************************************** +* Function (MAN) +****************************************/ + +/** + * Check if string is correct mandatory header value as specified + * in UPnP Device Architecture 1.2.2 + * + * @param str String to be checked + * + * @return True if string is exactly the required one, false otherwise + */ +#define cg_upnp_man_isdiscover(str) ((0 == cg_strstr(str, CG_UPNP_MAN_DISCOVER)) ? TRUE : FALSE) + +/**************************************** +* Function (ST) +****************************************/ + +/** + * Check if device is of type "all" + * + * @param str String to be checked + * + * @return True if device type is "all", false otherwise + */ +#define cg_upnp_st_isalldevice(str) ((0 <= cg_strstr(str, CG_UPNP_ST_ALL_DEVICE)) ? TRUE : FALSE) + +/** + * Check if device string is from root device + * + * @param str String to be checked + * + * @return True if string is from device type "root device", false otherwise + */ +#define cg_upnp_st_isrootdevice(str) ((0 <= cg_strstr(str, CG_UPNP_ST_ROOT_DEVICE)) ? TRUE : FALSE) + +/** + * Check if string is from uuid device + * + * @param str String to be checked + * + * @return True if string is from uuid device, false otherwise + */ +#define cg_upnp_st_isuuiddevice(str) ((0 <= cg_strstr(str, CG_UPNP_ST_UUID_DEVICE)) ? TRUE : FALSE) + +/** + * Check if string is from urn + * + * @param str String to be checked + * + * @return True if string is from urn, false otherwise + */ +#define cg_upnp_st_isurn(str) ((0 <= cg_strstr(str, CG_UPNP_ST_URN)) ? TRUE : FALSE) + +/** + * Check if string is from urn device + * + * @param str String to be checked + * + * @return True if string is from urn device, false otherwise + */ +#define cg_upnp_st_isurndevice(str) ((0 <= cg_strstr(str, CG_UPNP_ST_URN_DEVICE)) ? TRUE : FALSE) + +/** + * Check if string is from urn service + * + * @param str String to be checked + * + * @return True if string is from urn service, false otherwise + */ +#define cg_upnp_st_isurnservice(str) ((0 <= cg_strstr(str, CG_UPNP_ST_URN_SERVICE)) ? TRUE : FALSE) + +/**************************************** +* Function (NT) +****************************************/ + +/** + * Check if NT (notification target) is for root device + * + * @param str String to be checked + * + * @return True if NT is for root device, false otherwise + */ +#define cg_upnp_nt_isrootdevice(str) ((0 <= cg_strstr(str, CG_UPNP_NT_ROOTDEVICE)) ? TRUE : FALSE) + +/**************************************** +* Function (NTS) +****************************************/ + +/** + * Check if NTS (notification sub target) is of type "alive" + * + * @param str String to be checked + * + * @return True if string is of type "alive", false otherwise + */ +#define cg_upnp_nts_isalive(str) ((0 <= cg_strstr(str, CG_UPNP_NTS_ALIVE)) ? TRUE : FALSE) + +/** + * Check if string type is "byebye" + * + * @param str String to be checked + * + * @return True if string is of type "byebye", false othewise + */ +#define cg_upnp_nts_isbyebye(str) ((0 <= cg_strstr(str, CG_UPNP_NTS_BYEBYE)) ? TRUE : FALSE) + +/** + * Check if string type is "property change" + * + * @param str String to be checked + * + * @return True if string type is "property change" + */ +#define cg_upnp_nts_ispropchange(str) ((0 <= cg_strstr(str, CG_UPNP_NTS_PROPCHANGE)) ? TRUE : FALSE) + +/**************************************** +* Function (USN) +****************************************/ + +/** + * Check if usn is from root device + * + * @param str String to be checked + * + * @return True if usn associates to root device, false otherwise + */ +#define cg_upnp_usn_isrootdevice(str) ((0 <= cg_strstr(str, CG_UPNP_USN_ROOTDEVICE)) ? TRUE : FALSE) + +/** + * Get udn from usn + * + * @param usn Universal serial number + * @param udnBuf Buffer where udn is stored after successfull execution + * @param udnBufLen Buffer length for udnBuf + * + * @return Pointer to beginning of udnBuf. + */ +char *cg_upnp_usn_getudn(char *usn, char *udnBuf, int udnBufLen); + +/**************************************** +* Function (Action) +****************************************/ + +/** + * Send action + * + * @param action Action + */ +BOOL cg_upnp_action_post(CgUpnpAction *action); + +/**************************************** +* Function (Query) +****************************************/ + +/** + * Send query + * + * @param statVar State variable + */ +BOOL cg_upnp_statevariable_post(CgUpnpStateVariable *statVar); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cservice.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cservice.h new file mode 100644 index 0000000..603fc01 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cservice.h @@ -0,0 +1,819 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cservice.h +* +* Revision: +* +* 02/14/05 +* - first revision +* +* 09-Jan-06 Heikki Junnila +* - Added service type parsing functions: +* cg_upnp_servicetype_getidentifier +* cg_upnp_servicetype_geturn +* cg_upnp_servicetype_getservice +* cg_upnp_servicetype_gettype +* cg_upnp_servicetype_getversion +* +* 10-Jan-06 Heikki Junnila +* - Added cg_upnp_servicetype_getschematype() and fixed +* existing servicetype functions to accept 1-character strings +* +* 11-Jan-06 Heikki Junnila +* - Removed cg_upnp_service_isname() and _getname() because +* according to UPnP specs, services have only types, not names +* +* 17-Jan-06 Heikki Junnila +* - Added API comments +* 04/05/06 Theo Beisch +* - changed timeout to use subscriber object +* when used by ControlPoint +* modified execution data accordingly +* +******************************************************************/ + +#ifndef _CG_UPNP_CSERVICE_H_ +#define _CG_UPNP_CSERVICE_H_ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************************************************** +* Define +*****************************************************************************/ + +#define CG_UPNP_SERVICE_ELEM_NAME "service" +#define CG_UPNP_SERVICELIST_ELEM_NAME "serviceList" + +#define CG_UPNP_SERVICE_TYPE "serviceType" +#define CG_UPNP_SERVICE_ID "serviceId" +#define CG_UPNP_SERVICE_SCPDURL "SCPDURL" +#define CG_UPNP_SERVICE_CONTROL_URL "controlURL" +#define CG_UPNP_SERVICE_EVENT_SUB_URL "eventSubURL" +#define CG_UPNP_SERVICE_EVENT_KEY_INVALID 0 +#define CG_UPNP_SERVICE_NOTIFY_WAITTIME 1000 + +/**************************************************************************** +* Data Type +*****************************************************************************/ + +typedef struct _CgUpnpService { + BOOL headFlag; + struct _CgUpnpService *prev; + struct _CgUpnpService *next; + CgXmlNodeList *scpdNodeList; + CgXmlNode *serviceNode; + CgUpnpActionList *actionList; + CgUpnpServiceStateTable *serviceStateTable; + void *parentDevice; + CgMutex *mutex; +#if !defined(CG_UPNP_NOUSE_SUBSCRIPTION) + CgUpnpSubscriberList *subscriberList; +#endif + BOOL parsed; + /**** Execution Data ****/ + CgString *subscriptionSid; + long subscriptionTimeout; + + void *userData; + unsigned int eventKey; + CgSysTime subscriptionTimestamp; +} CgUpnpService, CgUpnpServiceList; + +/**************************************** +* Function (Service) +****************************************/ + +/** + * Create a new UPnP service + */ +CgUpnpService *cg_upnp_service_new(); + +/** + * Destroy a UPnP service + * + * @param service The service to destroy + */ +void cg_upnp_service_delete(CgUpnpService *service); + +/** + * Clear the contents of a UPnP service + * + * @param service The service to clear + */ +void cg_upnp_service_clear(CgUpnpService *service); + +/** + * Get the next service in a service list. Use as an iterator. + * + * @param service Current service + */ +#define cg_upnp_service_next(service) (CgUpnpService *)cg_list_next((CgList *)service) + +/** + * Check, whether the given XML node is a service root node + * + * @param node CgXmlNode* + * @return TRUE if the node is a service root node; otherwise FALSE + */ +#define cg_upnp_service_isservicenode(node) cg_xml_node_isname(node, CG_UPNP_SERVICE_ELEM_NAME) + +/** + * Get the service's SCPD node + * + * @param service The service in question + */ +#define cg_upnp_service_getscpdnode(service) cg_xml_nodelist_gets(service->scpdNodeList) + +/** + * Set the root XML node for the service + * + * @param service The service in question + * @param node The node to set + */ +#define cg_upnp_service_setservicenode(service,node) (service->serviceNode = node) + +/** + * Get the root XML node for the service + * + * @param service The service in question + */ +#define cg_upnp_service_getservicenode(service) (service->serviceNode) + +/** + * Get the parent device's XML node for the service + * + * @param service The service in question + */ +#define cg_upnp_service_getdevicenode(service) cg_xml_node_getparentnode(cg_xml_node_getparentnode(service->serviceNode)) + +/** + * Create the service's contents from the given XML document + * + * @param service The service to create + * @param description The XML document to parse + * @param descriptionLen The length of the XML document + */ +BOOL cg_upnp_service_parsedescription(CgUpnpService *service, char *description, int descriptionLen); + +/** + * Create the service's contents from the given URL. Gets the XML document + * from the URL and passes it again to @ref cg_upnp_service_parsedescription + * + * @param service The service to create + * @param url The URL of the document to parse + */ +BOOL cg_upnp_service_parsedescriptionurl(CgUpnpService *service, CgNetURL *url); + +/** + * Get the service's description XML nodes as a string + * + * @param service The service in question + * @param descStr The description string + */ +char *cg_upnp_service_getdescription(CgUpnpService *service, CgString *descStr); + +/** + * Get the service's parsing status (i.e. whether the service has been + * completely constructed). Useful mainly in optimized control point mode. + * + * @param service The service in question + */ +#define cg_upnp_service_isparsed(service) (service->parsed) + +/**************************************************************************** + * serviceType + ****************************************************************************/ + +/** + * Set the service's complete type string + * (ex. "urn:schemas-upnp-org:service:FooService:1") + * + * @param service The service in question + * @param value The type string + */ +#define cg_upnp_service_setservicetype(service, value) cg_xml_node_setchildnode(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_TYPE, value) + +/** + * Get the service's complete type string + * (ex. "urn:schemas-upnp-org:service:FooService:1") + * + * @param service The service in question + * @return char* + */ +#define cg_upnp_service_getservicetype(service) cg_xml_node_getchildnodevalue(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_TYPE) + +/** + * Get the identifier-part of a service type string (usually "urn") + * + * @param serviceType A service type string (usually the result from + * \ref cg_upnp_service_getservicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_servicetype_getidentifier(char* serviceType); + +/** + * Get the URN part of a service type string (usually "schemas-upnp-org") + * + * @param serviceType A service type string (usually the result from + * \ref cg_upnp_service_getservicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_servicetype_geturn(char* serviceType); + +/** + * Get the service part of a service type string (usually just "service") + * + * @param serviceType A service type string (usually the result from + * \ref cg_upnp_service_getservicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_servicetype_getservice(char* serviceType); + +/** + * Get the type part of a service type string (ex. "ContentDirectory") + * + * @param serviceType A service type string (usually the result from + * \ref cg_upnp_service_getservicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_servicetype_gettype(char* serviceType); + +/** + * Get the schema type part of a service type string (without last colon) + * (ex. "urn:schemas-upnp-org:service:ContentDirectory") + * + * @param serviceType A service type string (usually the result from + * \ref cg_upnp_service_getservicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_servicetype_getschematype(char* serviceType); + +/** + * Get the version part of a service type string (ex. "1") + * + * @param serviceType A service type string (usually the result from + * \ref cg_upnp_service_getservicetype) + * + * @return A newly-created char* if successful; otherwise NULL + */ +char* cg_upnp_servicetype_getversion(char* serviceType); + +/**************************************************************************** + * serviceID + ****************************************************************************/ + +/** + * Set the service's service ID + * + * @param service The service in question + * @param value Service ID string + */ +#define cg_upnp_service_setserviceid(service, value) cg_xml_node_setchildnode(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_ID, value) + +/** + * Get the service's service ID + * + * @param service The service in question + * @return char* + */ +#define cg_upnp_service_getserviceid(service) cg_xml_node_getchildnodevalue(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_ID) + +/**************************************************************************** + * SCPDURL + ****************************************************************************/ + +/** + * Set the service's SCPD (service description) URL + * + * @param service The service in question + * @param value The SCPD URL string + */ +#define cg_upnp_service_setscpdurl(service, value) cg_xml_node_setchildnode(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_SCPDURL, value) + +/** + * Get the service's SCPD (service description) URL + * + * @param service The service in question + * @return CgNetURL Pointer to URL/URI structure + */ + +CgNetURL *cg_upnp_service_getscpdurl(CgUpnpService *service); + +/** + * Compare the service's SCPD URL and the given location + * + * @param service The service in question + * @param url The URL (location) to compare + * @return TRUE if location is found from URL; otherwise FALSE + */ +BOOL cg_upnp_service_isscpdurl(CgUpnpService *service, char *url); + +/**************************************************************************** + * controlURL + ****************************************************************************/ + +/** + * Set the service's control URL + * + * @param service The service in question + * @param value The control URL string + */ +#define cg_upnp_service_setcontrolurl(service, value) cg_xml_node_setchildnode(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_CONTROL_URL, value) + +/** + * Get the service's control URL + * + * @param service The service in question + * @return CgNetURL Pointer to URL/URI structure + */ +CgNetURL *cg_upnp_service_getcontrolurl(CgUpnpService *service); + +/**************************************************************************** + * eventSubURL + ****************************************************************************/ + +/** + * Get the service's event subscription URL + * + * @param service The service in question + * @param value The event subscription URL string + */ +#define cg_upnp_service_seteventsuburl(service, value) cg_xml_node_setchildnode(cg_upnp_service_getservicenode(service), CG_UPNP_SERVICE_EVENT_SUB_URL, value) + +/** + * Get the service's event subscription URL + * + * @param service The service in question + * @return CgNetURL Pointer to URL/URI structure + */ +CgNetURL *cg_upnp_service_geteventsuburl(CgUpnpService *service); + +/**************************************************************************** + * Action + ****************************************************************************/ + +/** + * Get the service's list of actions (head of list) + * + * @param service The service in question + */ +CgUpnpActionList *cg_upnp_service_getactionlist(CgUpnpService *service); + +/** + * Get the first action in the service's list of actions. Use as the + * starting point in iteration loops. + * + * @param service The service in question + */ +CgUpnpAction *cg_upnp_service_getactions(CgUpnpService *service); + +/** + * Get an action from the service by the action's name + * + * @param service The service in question + * @param name The name of the action to look for + * @return CgUpnpAction* or NULL + */ +CgUpnpAction *cg_upnp_service_getactionbyname(CgUpnpService *service, char *name); + +/** + * Check, whether a service has an action by the given name + * + * @param service The service in question + * @param name The name of the action + */ +#define cg_upnp_service_hasactionbyname(service, name) ((cg_upnp_service_getactionbyname(service,name) != NULL) ? TRUE : FALSE) + +/**************************************************************************** + * ServiceStateTable + ****************************************************************************/ + +/** + * Get the service's state table + * + * @param service The service in question + */ +CgUpnpServiceStateTable *cg_upnp_service_getservicestatetable(CgUpnpService *service); + +/** + * Get the first state variable in the service's state table. Use as the + * starting point in iteration loops. + * + * @param service The service in question + */ +CgUpnpStateVariable *cg_upnp_service_getstatevariables(CgUpnpService *service); + +/** + * Get a state variable from the service's state table by the variable's name + * + * @param service The service in question + * @param name the name of the variable + * @return CgUpnpStateVariable* or NULL + */ +CgUpnpStateVariable *cg_upnp_service_getstatevariablebyname(CgUpnpService *service, char *name); + +/** + * Check, whether the service has the given state variable + * + * @param service The service in question + * @param name The name of the state variable + * @return TRUE if found; otherwise FALSE + */ +#define cg_upnp_service_hasstatevariablebyname(service, name) ((cg_upnp_service_getstatevariablebyname(service,name) != NULL) ? TRUE : FALSE) + +/**************************************************************************** + * Advertisement + ****************************************************************************/ + +/** + * Send a service announcement (advertisement) from the given address + * + * @param service The service to advertise + * @param bindAddr The address to attach to the announcement + */ +BOOL cg_upnp_service_announcefrom(CgUpnpService *service, char *bindAddr); + +/** + * Send a byebye announcement (i.e. a cancelling advertisement) from the given + * address + * + * @param service The service to announce from + * @param bindAddr The address to attach to the announcement + */ +BOOL cg_upnp_service_byebyefrom(CgUpnpService *service, char *bindAddr); + +/**************************************************************************** + * Listener + ****************************************************************************/ + +/** + * Set an action listener to the service + * + * @param service The service in question + * @param actionListener A callback function of type CG_UPNP_ACTION_LISTNER + */ +void cg_upnp_service_setactionlistener(CgUpnpService *service, CG_UPNP_ACTION_LISTNER actionListener); + +/** + * Set a query listener to the service + * + * @param service The service in question + * @param queryListener A callback function of type CG_UPNP_STATEVARIABLE_LISTNER + */ +void cg_upnp_service_setquerylistener(CgUpnpService *service, CG_UPNP_STATEVARIABLE_LISTNER queryListener); + +/**************************************************************************** + * Parent Device + ****************************************************************************/ + +/** + * Set the service's parent device + * + * @param service The service in question + * @param dev The parent device + */ +#define cg_upnp_service_setdevice(service, dev) (service->parentDevice = dev) + +/** + * Get the service's parent device + * + * @param service The service in question + * @return CgUpnpDevice* + */ +#define cg_upnp_service_getdevice(service) ((CgUpnpDevice *)service->parentDevice) + +/**************************************************************************** + * Root Device + ****************************************************************************/ + +/** + * Get the service's top-most root device + * + * @param service The service in question + * @return CgUpnpDevice* + */ +#define cg_upnp_service_getrootdevice(service) cg_upnp_device_getrootdevice((CgUpnpDevice *)service->parentDevice) + +/**************************************************************************** + * Subscriber + ****************************************************************************/ + +/** + * Get the first node in the service's list of event subscribers. Use as the + * starting point in iteration loops. + * + * @param service The service in question + */ +#define cg_upnp_service_getsubscribers(service) cg_upnp_subscriberlist_gets(service->subscriberList) + +/** + * Get the number of subscribers for the service + * + * @param service The service in question + * @return int + */ +#define cg_upnp_service_getnsubscribers(service) cg_upnp_subscriberlist_size(service->subscriberList) + +/** + * Add a subscriber to the service + * + * @param service The service in question + * @param sub The subscriber + */ +BOOL cg_upnp_service_addsubscriber(CgUpnpService *service, CgUpnpSubscriber *sub); + +/** + * Remove a subscriber from the service + * + * @param service The service in question + * @param sub The subscriber to remove + */ +BOOL cg_upnp_service_removesubscriber(CgUpnpService *service, CgUpnpSubscriber *sub); + +/** + * Find a subscriber from the service's list of subscribers by its SID + * (Subscription ID) + * + * @param service The service in question + * @param sid The SID + */ +CgUpnpSubscriber *cg_upnp_service_getsubscriberbysid(CgUpnpService *service, char *sid); + +/**************************************************************************** + * Announce + ****************************************************************************/ + +char *cg_upnp_service_getnotifyservicetypent(CgUpnpService *service, char *buf, int bufSize); +char *cg_upnp_service_getnotifyservicetypeusn(CgUpnpService *service, char *buf, int bufSize); + +/**************************************************************************** + * Notify + ****************************************************************************/ + +/** + * Send a notification of a service's changed state variable + * + * @param service The service in question + * @param statVar The changed state variable + */ +BOOL cg_upnp_service_notify(CgUpnpService *service, CgUpnpStateVariable *statVar); + +/** + * Send a notification message to all of the service's subscribers + * + * @param service The service in question + */ +BOOL cg_upnp_service_notifyall(CgUpnpService *service, BOOL doBracket ); + +/** +* Create a new thread to send a notification message to all of the service's subscribers +* + * @param service The service in question +* @param waitTime The wait time to send +*/ +void cg_upnp_service_createnotifyallthread(CgUpnpService *service, CgSysTime waitTime); + +/** + * Send a notification message to all of the service's subscribers + * + * @param service The service in question + * @deprecated Use cg_upnp_service_notifyall(). + */ +#define cg_upnp_service_notifyallstatevariables(service) cg_upnp_service_notifyall(service, FALSE); + +/**************************************************************************** + * Mutex + ****************************************************************************/ + +/** + * Lock the service's mutex + * + * @param service The service in question + */ +#define cg_upnp_service_lock(service) cg_mutex_lock(service->mutex) + +/** + * Unlock the service's mutex + * + * @param service The service in question + */ +#define cg_upnp_service_unlock(service) cg_mutex_unlock(service->mutex) + +/**************************************************************************** + * SID + ****************************************************************************/ + +/** + * Set the service's subscription's SID (subscription ID) + * + * @param service The service in question + * @param value The SID + */ +#define cg_upnp_service_setsubscriptionsid(service, value) cg_string_setvalue(service->subscriptionSid, value) + +/** + * Get the service's SID (subscription ID) + * + * @param service The service in question + * @return char* + */ +#define cg_upnp_service_getsubscriptionsid(service) cg_string_getvalue(service->subscriptionSid) + +/** + * Check, whether the service has any subscribers + * + * @param service The service in question + * @return TRUE if at least one subscriber is found; otherwise FALSE + */ +#define cg_upnp_service_issubscribed(service) ((0 < cg_string_length(service->subscriptionSid)) ? TRUE : FALSE) + +/** + * Clear (i.e. empty) the service's SID (subscription ID) + * + * @param service The service in question + */ +#define cg_upnp_service_clearsubscriptionsid(service) cg_string_setvalue(service->subscriptionSid, "") + +/**************************************************************************** + * Timeout + ****************************************************************************/ + +/** + * Set the service's subscription timeout (expiration) value + * + * @param service The service in question + * @param value The timeout value + */ +#define cg_upnp_service_setsubscriptiontimeout(service, value) (service->subscriptionTimeout = value) + +/** + * Get the service's subscription timeout (expiration) value + * + * @param service The service in question + * @return long + */ +#define cg_upnp_service_getsubscriptiontimeout(service) (service->subscriptionTimeout) + +/**************************************************************************** + * User Data + ****************************************************************************/ + +/** + * Set the service's arbitrary user data pointer + * + * @param service The service in question + * @param value The user data pointer + */ +#define cg_upnp_service_setuserdata(service, value) (service->userData = value) + +/** + * Get the service's arbitrary user data pointer + * + * @param service The service in question + * @return void* + */ +#define cg_upnp_service_getuserdata(service) (service->userData) + +/**************************************************************************** + * Event Key + ****************************************************************************/ + +/** + * Set the service's event key (i.e. the sequential number used in events) + * + * @param service The service in question + * @param value The event key value (uint) + */ +#define cg_upnp_service_seteventkey(service, value) (service->eventKey = value) + +/** + * Get the service's event key + * + * @param service The service in question + * @return uint + */ +#define cg_upnp_service_geteventkey(service) (service->eventKey) + +/**************************************************************************** + * Timestamp + ****************************************************************************/ + +/** + * Set the service's subscription time stamp + * + * @param service The service in question + * @param value The time stamp + */ +#define cg_upnp_service_setsubscriptiontimestamp(service, value) (service->subscriptionTimestamp = value) + +/** + * Get the service's subscription time stamp + * + * @param service The service in question + * @return CgSysTime + */ +#define cg_upnp_service_getsubscriptiontimestamp(service) (service->subscriptionTimestamp) + +/** + * Get the service's subscription expiration time + * + * @param service The service in question + * @return CgSysTime + */ +#define cg_upnp_service_getsubscriptionexpiration(service) (service->subscriptionTimestamp + service->subscriptionTimeout - CG_UPNP_SUBSCRIPTION_DELAY) + + +/**************************************************************************** + * Function (ServiceList) + ****************************************************************************/ + +/** + * Create a new list of services + */ +CgUpnpServiceList *cg_upnp_servicelist_new(); + +/** + * Destroy a list of services + * + * @param serviceList The list of services to destroy + */ +void cg_upnp_servicelist_delete(CgUpnpServiceList *serviceList); + + +/** + * Clear the contents of a list of services + * + * @param serviceList The list of services to clear + */ +#define cg_upnp_servicelist_clear(serviceList) cg_list_clear((CgList *)serviceList, (CG_LIST_DESTRUCTORFUNC)cg_upnp_service_delete) + +/** + * Get the number of services in a list of services + * + * @param serviceList The list of services + * @return int + */ +#define cg_upnp_servicelist_size(serviceList) cg_list_size((CgList *)serviceList) + +/** + * Get the first service in a list of services. Use as the starting point in + * iteration loops. + * + * @param serviceList The service list + */ +#define cg_upnp_servicelist_gets(serviceList) (CgUpnpService *)cg_list_next((CgList *)serviceList) + +/** + * Add a service to a list of services + * + * @param serviceList The list to add the service to + * @param service The service to add to the list + */ +#define cg_upnp_servicelist_add(serviceList, service) cg_list_add((CgList *)serviceList, (CgList *)service) + +/**************************************************************************** + * Function (SSDP) + ****************************************************************************/ + +/** + * The service's handler function that deals with received SSDP messages. + * + * @param service The service in question + * @param ssdpPkt The received SSDP packet + */ +void cg_upnp_service_ssdpmessagereceived(CgUpnpService *service, CgUpnpSSDPPacket *ssdpPkt); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cstatevariable.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cstatevariable.h new file mode 100644 index 0000000..800966e --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cstatevariable.h @@ -0,0 +1,473 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cstatevariable.h +* +* Revision: +* +* 02/23/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UPNP_CSTATEVARIABLE_H_ +#define _CG_UPNP_CSTATEVARIABLE_H_ + +#include +#include +#include +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +/** + * Definition for state variable XML element name + */ +#define CG_UPNP_STATEVARIABLE_ELEM_NAME "stateVariable" + +/** + * Definition for service state table XML element name + */ +#define CG_UPNP_SERVICESTATETALBE_ELEM_NAME "serviceStateTable" + +/** + * Definition for state variable name element + */ +#define CG_UPNP_STATEVARIABLE_NAME "name" + +/** + * Definition for state variable data type element + */ +#define CG_UPNP_STATEVARIABLE_DATATYPE "dataType" + +/** + * Definition for state variable send events element name + */ +#define CG_UPNP_STATEVARIABLE_SENDEVENTS "sendEvents" + +/** + * Definition for state variable send events element value + */ +#define CG_UPNP_STATEVARIABLE_SENDEVENTS_YES "yes" + +/** + * Definition for state variable send events element value + */ +#define CG_UPNP_STATEVARIABLE_SENDEVENTS_NO "no" + +/** + * Definition for state variable allowed values list + */ +#define CG_UPNP_STATEVARIABLE_ALLOWEDVALUELIST "allowedValueList" + + +/**************************************** +* Data Type +****************************************/ + +/** + * Data type for allowed state variables allowed values table + */ +typedef struct _CgUpnpAllowedValuesList { + BOOL headFlag; + struct _CgUpnpAllowedValuesList *prev; + struct _CgUpnpAllowedValuesList *next; + CgString *value; +} CgUpnpAllowedValuesList, CgUpnpAllowedValue; + + +/** + * Data type for state variable and state table + */ +typedef struct _CgUpnpStateVariable { + BOOL headFlag; + struct _CgUpnpStateVariable *prev; + struct _CgUpnpStateVariable *next; + CgUpnpAllowedValuesList* allowedValueList; + //tb: fixmelater verify type CgUpnpService* ??? + void *parentService; + CgXmlNode *stateVarNode; + /* Dummy pointers to maintain ABI, Please remove during the + * appropriate development stage */ + void *dummy1; + void *dummy2; + /**** Execution Data ****/ + CgString *value; + BOOL (*listener)(struct _CgUpnpStateVariable *); + CgUpnpStatus *upnpStatus; + void *userData; + +} CgUpnpStateVariable, CgUpnpServiceStateTable; + + +/** + * Type definition for state variable listener function + */ +typedef BOOL (*CG_UPNP_STATEVARIABLE_LISTNER)(CgUpnpStateVariable *); + +/**************************************** +* Function (StateVariable) +****************************************/ + +/** + * Create new state variable object + */ +CgUpnpStateVariable *cg_upnp_statevariable_new(); + +/** + * Delete state variable object + * + * @param statVar state variable + */ +void cg_upnp_statevariable_delete(CgUpnpStateVariable *statVar); + +/** + * Get next element from state variable list + * + * @param statVar state variable list node + */ +#define cg_upnp_statevariable_next(statVar) (CgUpnpStateVariable *)cg_list_next((CgList *)statVar) + +/** + * Check if XML node is state variable node + * + * @param node XML node + */ +#define cg_upnp_statevariable_isstatevariablenode(node) cg_xml_node_isname(node, CG_UPNP_STATEVARIABLE_ELEM_NAME) + +/**** XML Node ****/ + +/** + * Set XML node for this state variable + * + * @param statVar State variable + * @param node XML node + */ +void cg_upnp_statevariable_setstatevariablenode(CgUpnpStateVariable *statVar, CgXmlNode *node); + +/** + * Get XML node from this state variable + * + * @param statVar State variable + */ +#define cg_upnp_statevariable_getstatevariablenode(statVar) (statVar->stateVarNode) + +/**** Service ****/ + +/** + * Set service for this state variable + * + * @param statVar State variable + * @param service Service + */ +#define cg_upnp_statevariable_setservice(statVar, service) (statVar->parentService = service) + +/** + * Get service from state variable + * + * @param statVar State variable + * + * @return UPnP service + */ +#define cg_upnp_statevariable_getservice(statVar) ((CgUpnpService *)statVar->parentService) + +/**** allowedValueList ****/ + +/** + * Get allowed value list + * + * @param statVar State variable + * + * @return Allowed value list + */ +CgUpnpAllowedValuesList* cg_upnp_statevariable_getallowedvaluelist(CgUpnpStateVariable* statVar); + +/** + * Check if state variable has allowed value list + * + * @param statVar State variable + * + * @return 0 if it does not have allowed value list integer greater than zero otherwise + */ +#define cg_upnp_statevariable_hasallowedvaluelist(statVar) cg_upnp_allowedvaluelist_size(statVar->allowedValueList) + +/** + * Check if state variable allowes to receive value + * + * @parap value value to be checked + * @param statVar State variable + * + * @return 0 if it does allowed to receive value +*/ +int cg_upnp_statevariable_is_allowed_value(CgUpnpStateVariable* statVar, const char* value); + + +/** + * Create new allowed state variable values list + */ +CgUpnpAllowedValuesList* cg_upnp_allowedvaluelist_new(); + +/**** allowedValueRange ****/ + +/** + * Get allowed value range for state variable + * + * @param statVar State variable + * + * @return Allowed value range + */ +#define cg_upnp_statevariable_getallowedvaluerange(statVar) (statVar->allowedValueRange) + +/** + * Checks if state variable has allowed variable range + * + * @param statVar State variable + * + * @return True if allowed value range exists, false otherwise + */ +#define cg_upnp_statevariable_hasallowedvaluerange(statVar) ((statVar->allowedValueRange != NULL) ? TRUE : FALSE) + +/**** name ****/ + +/** + * Set state variable name + * + * @param statVar State variable + * @param value New state variable name + */ +#define cg_upnp_statevariable_setname(statVar, value) cg_xml_node_setchildnode(cg_upnp_statevariable_getstatevariablenode(statVar), CG_UPNP_STATEVARIABLE_NAME, value) + +/** + * Get state variable name + * + * @param statVar State variable + * + * @return State variable name + */ +#define cg_upnp_statevariable_getname(statVar) cg_xml_node_getchildnodevalue(cg_upnp_statevariable_getstatevariablenode(statVar), CG_UPNP_STATEVARIABLE_NAME) + +/** + * Checks if state variable has certain name + * + * @param statVar State variable + * @param name Name to be checked + * + * @return True if State variable name is same as provided, false otherwise + */ +#define cg_upnp_statevariable_isname(statVar, name) cg_streq(cg_upnp_statevariable_getname(statVar), name) + +/**** dataType ****/ + +/** + * Set data type for state variable + * + * @param statVar State variable + * @param value Data type + */ +#define cg_upnp_statevariable_setdatatype(statVar, value) cg_xml_node_setchildnode(cg_upnp_statevariable_getstatevariablenode(statVar), CG_UPNP_STATEVARIABLE_DATATYPE, value) + +/** + * Get data type from state variable + * + * @param statVar State variable + * + * @return Data type + */ +#define cg_upnp_statevariable_getdatatype(statVar) cg_xml_node_getchildnodevalue(cg_upnp_statevariable_getstatevariablenode(statVar), CG_UPNP_STATEVARIABLE_DATATYPE) + +/**** sendEvents ****/ + +/** + * Set send events option for state variable, can be used to disable eventing + * for certain variables. + * + * @param statVar State variable + * @param value New value + */ +#define cg_upnp_statevariable_setsendevents(statVar, value) cg_xml_node_setattribute(cg_upnp_statevariable_getstatevariablenode(statVar), CG_UPNP_STATEVARIABLE_SENDEVENTS, value) + +/** + * Get state variable event sending option value + * + * @param statVar State variable + * + * @return Current value associated to state variable + */ +#define cg_upnp_statevariable_getsendevents(statVar) cg_xml_node_getattributevalue(cg_upnp_statevariable_getstatevariablenode(statVar), CG_UPNP_STATEVARIABLE_SENDEVENTS) + +/** + * Check if events are sent to subscribers when this state variable changes + * + * @param statVar State variable + * + * @return True if events are sent, false otherwise + */ +#define cg_upnp_statevariable_issendevents(statVar) (cg_streq(cg_upnp_statevariable_getsendevents(statVar), CG_UPNP_STATEVARIABLE_SENDEVENTS_YES)) + +/**************************************** +* Function (StateVariable - Execution Data) +****************************************/ + +/**** value ****/ + +/** + * Set state variable value + * + * @param statVar State variable + * @param data New value associated with this state variable, and the value is send to other devices which subscribe the service. + */ +void cg_upnp_statevariable_setvalue(CgUpnpStateVariable *statVar, char *data); + +/** + * Set state variable value + * + * @param statVar State variable + * @param data New value associated with this state variable + */ +void cg_upnp_statevariable_setvaluewithoutnotify(CgUpnpStateVariable *statVar, char *data); + +/** + * Get value associated with this state variable + * + * @param statVar State variable + * + * @return Value associated with this state variable + */ +#define cg_upnp_statevariable_getvalue(statVar) cg_string_getvalue(statVar->value) + +/*** listener ****/ + +/** + * Set listener callback for this state variable + * + * @param statVar State variable + * @param func Listener function + */ +#define cg_upnp_statevariable_setlistener(statVar, func) (statVar->listener = func) + +/** + * Get lister function associated with state variable + * + * @param statVar State variable + */ +#define cg_upnp_statevariable_getlistener(statVar) (statVar->listener) + +/**** UPnPStatus ****/ + +/** + * Set status code for state variable + * + * @param statVar State variable + * @param code Status code + */ +#define cg_upnp_statevariable_setstatuscode(statVar, code) cg_upnp_status_setcode(statVar->upnpStatus, code) + +/** + * Get status code of this state variable + * + * @param statVar Status variable + */ +#define cg_upnp_statevariable_getstatuscode(statVar) cg_upnp_status_getcode(statVar->upnpStatus) + +/** + * Set status description for state variable + * + * @param statVar State variable + * @param value Status description + */ +#define cg_upnp_statevariable_setstatusdescription(statVar, value) cg_upnp_status_setdescription(statVar->upnpStatus, value) + +/** + * Get status description from this state variable + * + * @param statVar State variable + */ +#define cg_upnp_statevariable_getstatusdescription(statVar) cg_upnp_status_getdescription(statVar->upnpStatus) + +/**** User Data****/ + +/** + * Set arbitrary user data associated with this state variable + * + * @param statVar State variable + * @param value Data + */ +#define cg_upnp_statevariable_setuserdata(statVar, value) (statVar->userData = value) + +/** + * Get user data from this state variable + * + * @param statVar State variable + * + * @return User data + */ +#define cg_upnp_statevariable_getuserdata(statVar) (statVar->userData) + +/**************************************** +* Function (ServiceStateTable) +****************************************/ + +/** + * Create service state table object + */ +CgUpnpServiceStateTable *cg_upnp_servicestatetable_new(); + +/** + * Delete service state table object + * + * @param servicestatetable Service state table + */ +void cg_upnp_servicestatetable_delete(CgUpnpServiceStateTable *servicestatetable); + +/** + * Clear service state table + * + * @param stateTable Service state table + */ +#define cg_upnp_servicestatetable_clear(stateTable) cg_list_clear((CgList *)stateTable, (CG_LIST_DESTRUCTORFUNC)cg_upnp_statevariable_delete) + +/** + * Get size of service state table + * + * @param stateTable Service state table + */ +#define cg_upnp_servicestatetable_size(stateTable) cg_list_size((CgList *)stateTable) + +/** + * Get next service state table from service state table list + * + * @param stateTable Service state table + * + * @return Service state table (node) + */ +#define cg_upnp_servicestatetable_gets(stateTable) (CgUpnpStateVariable *)cg_list_next((CgList *)stateTable) + +/** + * Add new service state table into service state table list + * + * @param stateTable Service state table + * @param statVar State variable + */ +#define cg_upnp_servicestatetable_add(stateTable, statVar) cg_list_add((CgList *)stateTable, (CgList *)statVar) + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cupnp.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cupnp.h new file mode 100644 index 0000000..4c2b823 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cupnp.h @@ -0,0 +1,47 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cupnp.h +* +* Revision: +* +* 02/14/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UPNP_CUPNP_H_ +#define _CG_UPNP_CUPNP_H_ + +#include + +#include +#include +#include + +#include +#include +#include +#include + +/**************************************** +* Define +****************************************/ + +#define CG_CLINK_NAME "CyberLinkC" +#define CG_CLINK_VER "2.4" + +#define CG_UPNP_VER "1.0" +#define CG_DLNA_VER "1.50" + +#define CG_UPNP_XML_DECLARATION "" + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cupnp.h.in b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cupnp.h.in new file mode 100644 index 0000000..8eabab0 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cupnp.h.in @@ -0,0 +1,47 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cupnp.h +* +* Revision: +* +* 02/14/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UPNP_CUPNP_H_ +#define _CG_UPNP_CUPNP_H_ + +#include + +#include +#include +#include + +#include +#include +#include +#include + +/**************************************** +* Define +****************************************/ + +#define CG_CLINK_NAME "CyberLinkC" +#define CG_CLINK_VER + +#define CG_UPNP_VER "1.0" +#define CG_DLNA_VER "1.50" + +#define CG_UPNP_XML_DECLARATION "" + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cupnp_function.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cupnp_function.h new file mode 100644 index 0000000..23afacc --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cupnp_function.h @@ -0,0 +1,84 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cupnp_function.h +* +* Revision: +* +* 02/21/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UPNP_FUNCTION_H_ +#define _CG_UPNP_FUNCTION_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#define CG_UPNP_UUID_NAME "uuid" +#define CG_UPNP_UUID_MAX_LEN 128 /*(5 + ((4+1)*4) + 1)*/ +#define CG_UPNP_SEVERNAME_MAXLEN 64 + +/**************************************** +* Data Type +****************************************/ + +/**************************************** +* Function +****************************************/ + +/** + * Create a UUID (Universally Unique IDentifier) based on a semi-random value using current time. + * + * \param uuidBuf The UUID created by this function (must not be NULL) + * \return The UUID created by this function (== \e uuidBuf) + */ +char *cg_upnp_createuuid(char *uuidBuf, int uuidBufSize); + +/** + * Get the server name ("OSname/OSversion/UPnP/ CyberLinkC/") + * + * \param buf Buffer to store the server name + * \param bufSize Buffer length + * \param The server name buffer (== \e buf) + */ +char *cg_upnp_getservername(char *buf, int bufSize); + +/** + * Enable/disable NMPR (Intel Networked Media Product Requirements) mode. + * + * \param onFlag TRUE: enable; FALSE: disable + */ +void cg_upnp_setnmprmode(BOOL onFlag); + +/** + * Check whether NMPR (Intel Networked Media Product Requirements) mode is on. + * + * + * \return TRUE if on; otherwise FALSE + */ +BOOL cg_upnp_isnmprmode(); + +#ifdef __cplusplus + +} /* extern "C" */ + +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cupnp_limit.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cupnp_limit.h new file mode 100644 index 0000000..78da376 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cupnp_limit.h @@ -0,0 +1,50 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cupnp_limit.h +* +* Revision: +* +* 05/17/05 +* - first revision +* 04/04/06 Theo Beisch +* - changed max notifycount to 32bit (per UPnP spec) +* +******************************************************************/ + +#ifndef _CG_UPNP_CUPNPLIMIT_H_ +#define _CG_UPNP_CUPNPLIMIT_H_ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#if defined(HAVE_STDINT_H) +#include +#else +#include +#endif + +#define CG_UPNP_ACTOINNAME_LEN_MAX 128 + +/* DLNA specifies (7.2.26.6) max UDN length to 68 bytes, + * we just play safe here and use 128 byte buffer. */ +#define CG_UPNP_UDN_LEN_MAX 128 +#define CG_UPNP_LOCATION_URL_MAX 512 +#define CG_UPNP_CONTROLPOINT_EVENTSUBURL_MAX 512 + +#if defined(HAVE_STDINT_H) +#define CG_UPNP_NOTIFY_COUNT_MAX UINT32_MAX +#else +#define CG_UPNP_NOTIFY_COUNT_MAX UINT_MAX +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cupnp_status.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cupnp_status.h new file mode 100644 index 0000000..73178cd --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/cupnp_status.h @@ -0,0 +1,120 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: upnp_status.h +* +* Revision: +* +* 02/13/05 +* - first revision +* +* 10/31/05 +* - Added comments to all functions and structs +* +******************************************************************/ + +#ifndef _CG_UPNP_CUPNPSTATUS_H_ +#define _CG_UPNP_CUPNPSTATUS_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/******************************************************************************** + * Defines + ********************************************************************************/ + +#define CG_UPNP_STATUS_INVALID_ACTION 401 +#define CG_UPNP_STATUS_INVALID_ARGS 402 +#define CG_UPNP_STATUS_OUT_OF_SYNC 403 +#define CG_UPNP_STATUS_INVALID_VAR 404 +#define CG_UPNP_STATUS_ACTION_FAILED 501 + +/**************************************** + * Data Type + ****************************************/ + +/** + * UPnP status struct used in action and state operations + */ +typedef struct _CgUpnpStatus { + /** Status code */ + int code; + + /** Status description */ + CgString *description; +} CgUpnpStatus; + +/****************************************************************************** + * Function + ******************************************************************************/ + +/** + * Create a new status struct + * + */ +CgUpnpStatus *cg_upnp_status_new(); + +/** + * Delete a status struct + * + * \param upnpStat Status struct to delete + */ +void cg_upnp_status_delete(CgUpnpStatus *upnpStat); + +/** + * Set status code for status struct + * + * \param upnpStat Status struct + * \param value Status code + */ +#define cg_upnp_status_setcode(upnpStat, value) (upnpStat->code = value) + +/** + * Get Status code from a status struct + * + * \param upnpStat Status structure + */ +#define cg_upnp_status_getcode(upnpStat) (upnpStat->code) + +/** + * Set status description for a status struct + * + * \param upnpStat Status struct + * \param value Status description + */ +#define cg_upnp_status_setdescription(upnpStat, value) cg_string_setvalue(upnpStat->description, value) + +/** + * Get status description from a status struct + * + * \param upnpStat Status struct + */ +#define cg_upnp_status_getdescription(upnpStat) cg_string_getvalue(upnpStat->description) + +/** + * Helper function that converts a status code into a status description + * + * \param code Code to convert into a description + * \return Status description + */ +char *cg_upnp_status_code2string(int code); + +#ifdef __cplusplus + +} /* extern "C" */ + +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/event/cevent.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/event/cevent.h new file mode 100644 index 0000000..ca40618 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/event/cevent.h @@ -0,0 +1,563 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cevent.h +* +* Revision: +* +* 06/20/05 +* - first revision +* 03/28/06 Theo Beisch +* - modified cg_upnp_eventlistenerlist_clear to use +* default destructor in clist +* - added cg_upnp_event_subscription_request_hasnt +* - changed _subscription function signature to use (service) +* instead of (remoteAddress) +* +******************************************************************/ + +#ifndef _CG_UPNP_CEVENT_H_ +#define _CG_UPNP_CEVENT_H_ + +#include + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +/** + * Definition for SID size + */ +#define CG_UPNP_SUBSCRIPTION_SID_SIZE (CG_UPNP_UUID_MAX_LEN + 8) + +/** + * Definition for SID header size + */ +#define CG_UPNP_SUBSCRIPTION_SID_HEADER_SIZE (5 + CG_UPNP_SUBSCRIPTION_SID_SIZE) + +/** + * Definition for subscription xml namespace + */ +#define CG_UPNP_SUBSCRIPTION_XMLNS "urn:schemas-upnp-org:event-1-0" + +/** + * Definition for subscription timeout header prefix + */ +#define CG_UPNP_SUBSCRIPTION_TIMEOUT_HEADER "Second-" + +/** + * Definition for infinite string in subscription + */ +#define CG_UPNP_SUBSCRIPTION_INFINITE_STRING "infinite" + +/** + * Definition for infinite value in subscription + */ +#define CG_UPNP_SUBSCRIPTION_INFINITE_VALUE (-1) + +/** + * Definition for subscription uuid prefix + */ +#define CG_UPNP_SUBSCRIPTION_UUID "uuid:" + +/** + * Definition for subscription callback start tag + */ +#define CG_UPNP_SUBSCRIPTION_CALLBACK_START_WITH "<" + +/** + * Definition for subscription callback end tag + */ +#define CG_UPNP_SUBSCRIPTION_CALLBACK_END_WITH ">" + +/** + * Definition for subscription delay + */ +#define CG_UPNP_SUBSCRIPTION_DELAY 30 + +/** + * Definition for maximum event sequence number + */ +#define CG_UPNP_EVENT_MAX_SEQ 2147483647 + +/** + * Definition for maximum upnp subscription timeout + */ +#define CG_UPNP_SUBSCRIPTION_MAX_TIMEOUT 300 + +/**************************************** +* Data Type +****************************************/ + +/** + * Type definition for subsription request + */ +typedef CgHttpRequest CgUpnpSubscriptionRequest; + +/** + * Type definition for subsrciption response + */ +typedef CgHttpResponse CgUpnpSubscriptionResponse; + +/** + * Type definition for event listener callback + */ +typedef void (*CG_UPNP_EVENT_LISTENER)(CgUpnpProperty *); + +/** + * Type definition for event listener list + */ +typedef struct _CgUpnpEventListenerList { + /** Used by cg_list_* functions to indicate start of list */ + BOOL headFlag; + /** Used by cg_list_* functions to point to the previous item in list */ + struct _CgUpnpEventListenerList *prev; + /** Used by cg_list_* functions to point to the next item in list */ + struct _CgUpnpEventListenerList *next; + + CG_UPNP_EVENT_LISTENER listener; +} CgUpnpEventListenerList; + +/**************************************** +* Function +****************************************/ + +/** + * Create timeout header string + * + * @param time Timeout + * @param buf Buffer used when creating header string + * + * @return Timeout header C string + */ +char *cg_upnp_event_subscription_totimeoutheaderstring(long time, CgString *buf); + +/** + * Get event subscription timeout + * + * @param headerValue Header value + * + * @return Timeout + */ +long cg_upnp_event_subscription_gettimeout(char *headerValue); + +/** + * Create SID for subscription + * + * @param buf Character buffer where SID is created + * @param bufSize Buffer size. + * + * @return Pointer to buffer containing SID + */ +char * cg_upnp_event_subscription_createsid(char *buf, int bufSize); + +/** + * Creates SID header string + * + * @param sid Character array containing the SID + * @param buf A buffer where header string is created + * @param bufSize Size of the used buffer + * + * @return Pointer to buffer containing SID header string + */ +char *cg_upnp_event_subscription_tosidheaderstring(char *sid, char *buf, int bufSize); + +/** + * Get SID + * + * @param headerValue Raw header C string + * + * @return C string containing SID + */ +char *cg_upnp_event_subscription_getsid(char *headerValue); + +/**************************************** +* Function (Request) +****************************************/ + +/** + * Subscription request constructor + * + * @return Pointer to newly created subsription request + */ +#define cg_upnp_event_subscription_request_new() cg_http_request_new(); + +/** + * Subscription request destructor + * + * @param subReq Reference to the subscription request to be deleted + */ +#define cg_upnp_event_subscription_request_delete(subReq) cg_http_request_delete(subReq); + +/** + * Checks if request type is subscription request + * + * @param subReq The request to be checked + * + * @return True if request is subscription request, false otherwise + */ +#define cg_upnp_event_subscription_issubscriberequest(subReq) cg_streq(cg_http_request_getmethod(subReq), CG_HTTP_SUBSCRIBE) + +/** + * Checks if request type is unsubscription request + * + * @param subReq The request to be checked + * + * @return True if request is unsubscription request + */ +#define cg_upnp_event_subscription_isunsubscriberequest(subReq) cg_streq(cg_http_request_getmethod(subReq), CG_HTTP_UNSUBSCRIBE) + +/**** SID ****/ + +/** + * Set sid to subscription request + * + * @param subReq Subscription request + * @param sid SID (Subscription id) + */ +void cg_upnp_event_subscription_request_setsid(CgUpnpSubscriptionRequest *subReq, char *sid); + +/** + * Get sid from subscription request + * + * @param subReq Subscription request + * + * @return Character array containing the requested SID + */ +#define cg_upnp_event_subscription_request_getsid(subReq) cg_upnp_event_subscription_getsid(cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_SID)) + +/** + * Checks if subscription object has SID + * + * @param subReq Subscription request + * + * @return True if subscription has SID, false otherwise + */ +#define cg_upnp_event_subscription_request_hassid(subReq) cg_http_packet_hasheader(((CgHttpPacket*)subReq), CG_HTTP_SID) + +/**** NT ****/ + +/** + * Set NT (Notification target) for subscription request + * + * @param subReq Subscription request + * @param value Notification type + */ +#define cg_upnp_event_subscription_request_setnt(subReq, value) cg_http_packet_setheadervalue(((CgHttpPacket*)subReq), CG_HTTP_NT, value) + +/** + * Get NT from subscription request + * + * @param subReq Subscription request + * + * @return Character array containing the NT header value + */ +#define cg_upnp_event_subscription_request_getnt(subReq) cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_NT) + +/** + * Checks if subscription request has NT + * + * @param subReq Subscription request + * + * @return True if subscription request contains NT, false otherwise + */ +#define cg_upnp_event_subscription_request_hasnt(subReq) cg_http_packet_hasheader(((CgHttpPacket*)subReq), CG_HTTP_NT) + +/**** Callback ****/ + +/** + * Set subscription request callback URL + * + * @param subReq Subscription request + * @param value Callback URL string + */ +#define cg_upnp_event_subscription_request_setcallback(subReq, value) cg_http_packet_setheadervalue(((CgHttpPacket*)subReq), CG_HTTP_CALLBACK, value) + +/** + * Get subscription callback URL + * + * @param subReq Subscription request + * + * @return Character array containing the callback URL + */ +#define cg_upnp_event_subscription_request_getcallback(subReq) cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_CALLBACK) + +/** + * Checks if subscription request has callback URL + * + * @param subReq Subscription request + * + * @return True if subscription request has callback URL, false otherwise + */ +#define cg_upnp_event_subscription_request_hascallback(subReq) cg_http_packet_hasheader(((CgHttpPacket*)subReq), CG_HTTP_CALLBACK) + +/**** Timeout ****/ + +/** + * Set timeout for subscription request + * + * @param subReq Subscription request + * @param timeout Timeout value for subscription request + */ +void cg_upnp_event_subscription_request_settimeout(CgUpnpSubscriptionRequest *subReq, long timeout); + +/** + * Get timeout value from subscription request + * + * @param subReq Subscription request + */ +#define cg_upnp_event_subscription_request_gettimeout(subReq) cg_upnp_event_subscription_gettimeout(cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_TIMEOUT)) + +/**** Subscription Content ****/ + +/** + * (Re)initializes subscription request + * + * @param subReq Subscription request + * @param service Service to be subscribed + * @param callback URL to be called when service state changes + * @param timeout Subscription timeout + */ +void cg_upnp_event_subscription_request_setnewsubscription(CgUpnpSubscriptionRequest *subReq, CgUpnpService *service, char *callback, long timeout); + +/** + * (Re)initializes subscription request to be renewal request + * + * @param subReq Subscription request + * @param service Service to be subscribed + * @param uuid Devices unique identification string + * @param timeout Subscription timeout + */ +void cg_upnp_event_subscription_request_setrenewsubscription(CgUpnpSubscriptionRequest *subReq, CgUpnpService *service, char *uuid, long timeout); + +/** + * (Re)initializes subscription request to be unsubscription request + * + * @param subReq Subscription request + * @param service Service where to be unsubscribed + */ +void cg_upnp_event_subscription_request_setunsubscription(CgUpnpSubscriptionRequest *subReq, CgUpnpService *service); + +/**** Host ****/ + +/** + * Set HTTP host header value + * + * @param subReq Subscription request + * @param value HTTP Host: header content + */ +#define cg_upnp_event_subscription_request_sethost(subReq, value) cg_http_packet_setheadervalue(((CgHttpPacket*)subReq), CG_HTTP_HOST, value) + +/** + * Get host header value from subscription request + * + * @param subReq Subscription request + */ +#define cg_upnp_event_subscription_request_gethost(subReq) cg_http_packet_getheadervalue(((CgHttpPacket*)subReq), CG_HTTP_HOST) + +/** + * Send subscription request to device + * + * @param subReq Subscription request + */ +#define cg_upnp_event_subscription_request_post(subReq) cg_http_request_post(subReq, cg_net_url_gethost(cg_http_request_getposturl(subReq)), cg_net_url_getport(cg_http_request_getposturl(subReq))) + +/** + * Send response to subscription request + * + * @param subReq Subscription request + * @param subRes Subscription response + */ +#define cg_upnp_event_subscription_request_postresponse(subReq, subRes) cg_http_request_postresponse(subReq, subRes) + +/**************************************** +* Function (Response) +****************************************/ + +/** + * Constructor for subscription response + */ +#define cg_upnp_event_subscription_response_new() cg_http_response_new(); + +/** + * Destructor for subscription response + * + * @param subRes Subscription response + */ +#define cg_upnp_event_subscription_response_delete(subRes) cg_http_response_delete(subRes); + +/** + * Checks if subscription was successfull by checking status code from subscription response + * + * @param subRes Subscription response + */ +#define cg_upnp_event_subscription_response_issuccessful(subRes) cg_http_response_issuccessful(subRes) + +/**** Status Code ****/ + +/** + * Set status code for subscription response + * + * @param subRes Subscription response + * @param code Status code + */ +#define cg_upnp_event_subscription_response_setstatuscode(subRes, code) cg_http_response_setstatuscode(subRes, code) + +/** + * Get status code from subscription response object + * + * @param subRes Subscription response + * @param code Status code + * + * @return Status code + * + * \bug Status code is not needed here! (It is not even passed to the wrapped function) + */ +#define cg_upnp_event_subscription_response_getstatuscode(subRes, code) cg_http_response_getstatuscode(subRes) + +/**** SID ****/ + +/** + * Set SID (Subscription ID) for response + * + * @param subRes Subscription response + * @param sid Subscription ID + */ +void cg_upnp_event_subscription_response_setsid(CgUpnpSubscriptionResponse *subRes, char *sid); + +/** + * Get SID + * + * @param subRes Subscription request + * + * @return C string containing SID + */ +#define cg_upnp_event_subscription_response_getsid(subRes) cg_upnp_event_subscription_getsid(cg_http_packet_getheadervalue(((CgHttpPacket*)subRes), CG_HTTP_SID)) + +/**** Timeout ****/ + +/** + * Set HTTP timeout for subscription response + * + * @param subRes Subscription response + * @param value Timeout + */ +void cg_upnp_event_subscription_response_settimeout(CgUpnpSubscriptionResponse *subRes, long value); + +/** + * Get timeout value from subscription response + * + * @param subRes Subscription response + * + * @return C string containing the timeout + */ +#define cg_upnp_event_subscription_response_gettimeout(subRes) cg_upnp_event_subscription_gettimeout(cg_http_packet_getheadervalue(((CgHttpPacket*)subRes), CG_HTTP_TIMEOUT)) + +/** + * Set response code for subscription response + * + * @param subRes Subscription response + * @param code Response code + */ +void cg_upnp_event_subscription_subscriberesponse_setresponse(CgUpnpSubscriptionResponse *subRes, int code); +/* TODO getter? */ + +/**************************************** +* Function (Eventlistener list) +****************************************/ + +/** +* Create a new event listener list +* +*/ +CgUpnpEventListenerList *cg_upnp_eventlistenerlist_new(); + +/** +* Delete a event listener list. +* +* \param eventListenerList The event listener list to delete +* +*/ +void cg_upnp_eventlistenerlist_delete(CgUpnpEventListenerList *eventListenerList); + +/** +* Clear the contents of a event listener list. +* +* \param eventListenerList The device list to clear +* +*/ +#define cg_upnp_eventlistenerlist_clear(eventListenerList) cg_list_clear((CgList *)eventListenerList, (CG_LIST_DESTRUCTORFUNC)free) + +/** +* Get the size of the device list +* +* \param eventListenerList The device list +* +*/ +#define cg_upnp_eventlistenerlist_size(eventListenerList) cg_list_size((CgList *)eventListenerList) + +/** +* Fetches next list element from event listener list +* +* @param eventListenerList Event listener list +*/ +#define cg_upnp_eventlistenerlist_gets(eventListenerList) (CgUpnpEventListenerList*)cg_list_next((CgList *)eventListenerList) + +/** +* Fetches next list element from event listener list +* +* @param eventListenerList Event listener list +*/ +#define cg_upnp_eventlistenerlist_next(eventListenerList) (CgUpnpEventListenerList*)cg_list_next((CgList *)eventListenerList) + +/** +* Remove a listener from the event listener list +* +* \param eventListenerList The event listener list +* \param listener The listener to remove +* +*/ +void cg_upnp_eventlistenerlist_remove(CgUpnpEventListenerList* eventListenerList, CG_UPNP_EVENT_LISTENER listener); + +/** +* Add a listener to the event listener list +* +* \param eventListenerList The event listener list +* \param listener The listener to add +* +*/ +void cg_upnp_eventlistenerlist_add(CgUpnpEventListenerList* eventListenerList, CG_UPNP_EVENT_LISTENER listener); + +/** + * Call all event listeners in the list with the given data. + * + * @param eventListenerList The list to iterate thru + * @param property The property that has been evented + */ +void cg_upnp_eventlistenerlist_notify(CgUpnpEventListenerList* eventListenerList, CgUpnpProperty *property); + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/event/cnotify.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/event/cnotify.h new file mode 100644 index 0000000..ca7fa34 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/event/cnotify.h @@ -0,0 +1,238 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cevent.h +* +* Revision: +* +* 06/20/05 +* - first revision +* +* 03/20/06 Theo Beisch +* - added cg_upnp_event_notify_request_hasnt & _hasnts & _hassid +******************************************************************/ + +#ifndef _CG_UPNP_CNOTIFY_H_ +#define _CG_UPNP_CNOTIFY_H_ + +#include + +#include +#include + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +/** Define for XML namespace + */ +#define CG_UPNP_NOTIFY_XMLNS "e" + +/** + * Define for notify property + */ +#define CG_UPNP_NOTIFY_PROPERTY "property" + +/** + * Define for notify property set + */ +#define CG_UPNP_NOTIFY_PROPERTYSET "propertyset" + +/**************************************** +* Data Type +****************************************/ + +/** + * Data type for UPnP Notification request + */ +typedef CgSoapRequest CgUpnpNotifyRequest; + +/** + * Data type for UPnP notify response + */ +typedef CgSoapResponse CgUpnpNotifyResponse; + +/**************************************** +* Function (Request) +****************************************/ + +/** + * Create new Notification request + */ +CgUpnpNotifyRequest *cg_upnp_event_notify_request_new(); + +/** + * Delete Notification request + * + * @param notifyReq Notification request + */ +void cg_upnp_event_notify_request_delete(CgUpnpNotifyRequest *notifyReq); + +/** + * Clear Notification request + * + * @param notifyReq Notification request + */ +void cg_upnp_event_notify_request_clear(CgUpnpNotifyRequest *notifyReq); + +/** + * Set HTTP request for event Notification request + * + * @param notifyReq Notification request + * @param httpReq HTTP request + */ +#define cg_upnp_event_notify_request_sethttprequest(notifyReq, httpReq) cg_soap_request_sethttprequest(notifyReq, httpReq) + +/** + * Sends event Notification request to control point + * + * @param notifyReq Notification request + * @param host Host address + * @param port Host port + * + * @return Notify response + */ +#define cg_upnp_event_notify_request_post(notifyReq, host, port) cg_soap_request_post(notifyReq, host, port) + +/** + * Get root node associated with current Notification request + * + * @param notifyReq Notification request + * + * @return XML node + */ +#define cg_upnp_event_notify_request_getpropertysetnode(notifyReq) cg_soap_request_getrootnoode(notifyReq) + +/** + * Set property list for Notification request + * + * @param notifyReq Notification request + * @param value Property list value + */ +#define cg_upnp_event_notify_request_setpropertylist(notifyReq, value) cg_soap_request_setuserdata(notifyReq, value) + +/** + * Get property list from Notification request + * + * @param nofityReq Notification request + */ +CgUpnpPropertyList *cg_upnp_event_notify_request_getpropertylist(CgUpnpNotifyRequest *nofityReq); + +/**** NT ****/ + +/** + * Set NT (Notificatio type) for Notification request + * + * @param soapReq Notification request + * @param value Notification type + */ +#define cg_upnp_event_notify_request_setnt(soapReq, value) cg_http_packet_setheadervalue((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_NT, value) + +/** + * Get NT from notification request + * + * @param soapReq Notification request + */ +#define cg_upnp_event_notify_request_getnt(soapReq) cg_http_packet_getheadervalue((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_NT) +//Theo Beisch +#define cg_upnp_event_notify_request_hasnt(soapReq) cg_http_packet_hasheader((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_NT) + +/**** NTS ****/ + +/** + * Set NTS (Notification sub type) for current Notification request + * + * @param soapReq Notification request + * @param value NTS + */ +#define cg_upnp_event_notify_request_setnts(soapReq, value) cg_http_packet_setheadervalue((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_NTS, value) + +/** + * Get NTS from notification request + * + * @param soapReq Notification request + */ +#define cg_upnp_event_notify_request_getnts(soapReq) cg_http_packet_getheadervalue((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_NTS) +//Theo Beisch +#define cg_upnp_event_notify_request_hasnts(soapReq) cg_http_packet_hasheader(((CgHttpPacket*)soapReq->httpReq), CG_HTTP_NTS) + +/**** SID ****/ + +/** + * Set SID (Subscription ID) for notification request + * + * @param soapReq Notification request + * @param sid SID + */ +void cg_upnp_event_notify_request_setsid(CgUpnpNotifyRequest *soapReq, char *sid); + +/** + * Get SID from notification request + * + * @param soapReq Notification request + */ +#define cg_upnp_event_notify_request_getsid(soapReq) cg_upnp_event_subscription_getsid(cg_http_packet_getheadervalue((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_SID)) +//Theo Beisch +#define cg_upnp_event_notify_request_hassid(soapReq) cg_http_packet_hasheader(((CgHttpPacket*)(soapReq->httpReq)), CG_HTTP_SID) + +/**** SEQ ****/ + +/** + * Set sequence number for notification request + * + * @param soapReq Notification request + * @param value Sequence number + */ +#define cg_upnp_event_notify_request_setseq(soapReq, value) cg_http_packet_setheaderlong((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_SEQ, value) + +/** + * Get sequence number from notification request + * + * @param soapReq Notification request + */ +#define cg_upnp_event_notify_request_getseq(soapReq) cg_http_packet_getheaderlong((CgHttpPacket*)(soapReq->httpReq), CG_HTTP_SEQ) + +/** + * \todo Check what this does exactly... + */ +BOOL cg_upnp_event_notify_request_setpropertysetnode(CgUpnpNotifyRequest *notifyReq, CgUpnpSubscriber *sub, /* CgUpnpService */void *service, CgUpnpStateVariable *statVar); + +/**************************************** +* Function (Response) +****************************************/ + +/** + * Check if notification response was successfull + * + * @param notifyRes Notification response + */ +#define cg_upnp_event_notify_response_issuccessful(notifyRes) cg_soap_response_issuccessful(notifyRes) + +/** + * Get the status code of the specified response + * + * @param notifyRes Notification response + */ +#define cg_upnp_event_notify_response_getstatuscode(notifyRes) cg_soap_response_getstatuscode(notifyRes) + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/event/cproperty.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/event/cproperty.h new file mode 100644 index 0000000..8eb4551 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/event/cproperty.h @@ -0,0 +1,196 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cproperty.h +* +* Revision: +* +* 06/21/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UPNP_CPROPERTY_H_ +#define _CG_UPNP_CPROPERTY_H_ + +#include + +#include +#include +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Type definition for UPnP property + */ +typedef struct _CgUpnpProperty { + BOOL headFlag; + struct _CgUpnpProperty *prev; + struct _CgUpnpProperty *next; + + CgString *name; + CgString *value; + CgString *sid; + long seq; +} CgUpnpProperty, CgUpnpPropertyList; + +/**************************************** +* Function (Property) +****************************************/ + +/** + * Construct new UPnP property object + */ +CgUpnpProperty *cg_upnp_property_new(); + +/** + * Delete UPnP property object + * + * @param prop UPnP property + */ +void cg_upnp_property_delete(CgUpnpProperty *prop); + +/** + * Clear UPnP property + * + * @param prop UPnP property + */ +void cg_upnp_property_clear(CgUpnpProperty *prop); + +/** + * Fetches next UPnP property from property list + * + * @param prop UPnP property + */ +#define cg_upnp_property_next(prop) (CgUpnpProperty *)cg_list_next((CgList *)prop) + +/**** name ****/ +/** + * Set property name + * + * @param prop UPnP property + * @param value Name + */ +#define cg_upnp_property_setname(prop, value) cg_string_setvalue(prop->name, value) + +/** + * Get property name + * + * @param prop UPnP property + */ +#define cg_upnp_property_getname(prop) cg_string_getvalue(prop->name) + +/**** value ****/ + +/** + * Set value for UPnP property + * + * @param prop UPnP property + * @param nvalue Value + */ +#define cg_upnp_property_setvalue(prop, nvalue) cg_string_setvalue(prop->value, nvalue) + +/** + * Get value from property + * + * @param prop UPnP property + */ +#define cg_upnp_property_getvalue(prop) cg_string_getvalue(prop->value) + +/**** sid ****/ + +/** + * Set SID for UPnP property + * + * @param prop UPnP property + * @param value Value + */ +#define cg_upnp_property_setsid(prop, value) cg_string_setvalue(prop->sid, value) + +/** + * Get SID from UPnP property + * + * @param prop UPnP property + */ +#define cg_upnp_property_getsid(prop) cg_string_getvalue(prop->sid) + +/**** seq ****/ + +/** + * Set sequence number for UPnP property + * + * @param prop UPnP property + * @param value + */ +#define cg_upnp_property_setseq(prop, value) (prop->seq = value) + +/** + * Get sequence number from UPnP property + * + * @param prop UPnP property + */ +#define cg_upnp_property_getseq(prop) (prop->seq) + +/**************************************** +* Function (PropertyList) +****************************************/ + +/** + * Create new UPnP property list + */ +CgUpnpPropertyList *cg_upnp_propertylist_new(); + +/** + * Delete UPnP property list + * + * @param propertylist UPnP property list + */ +void cg_upnp_propertylist_delete(CgUpnpPropertyList *propertylist); + +/** + * Clear UPnP propertylist + * + * @param propList UPnP property list + */ +#define cg_upnp_propertylist_clear(propList) cg_list_clear((CgList *)propList, (CG_LIST_DESTRUCTORFUNC)cg_upnp_property_delete) + +/** + * Get size of property list + * + * @param propList UPnP property list + */ +#define cg_upnp_propertylist_size(propList) cg_list_size((CgList *)propList) + +/** + * Get next list element from property list + * + * @param propList UPnP property list + */ +#define cg_upnp_propertylist_gets(propList) (CgUpnpProperty *)cg_list_next((CgList *)propList) + +/** + * Add new property into property list + * + * @param propList UPnP property list + * @param prop UPnP property + */ +#define cg_upnp_propertylist_add(propList, prop) cg_list_add((CgList *)propList, (CgList *)prop) + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/event/csubscriber.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/event/csubscriber.h new file mode 100644 index 0000000..29856d5 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/event/csubscriber.h @@ -0,0 +1,311 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: csubscriber.h +* +* Revision: +* +* 06/21/05 +* - first revision +* +* 12-Jan-06 Heikki Junnila +* - Added API comments +* 04/05/06 +* - changed timing values to type CgSysTime +* - added cg_upnp_subscriberlist_get(CgUpnpSubscriberList *subscriberList, char *sid) +******************************************************************/ + +#ifndef _CG_UPNP_CSUBSCRIBER_H_ +#define _CG_UPNP_CSUBSCRIBER_H_ + +#include + +#include +#include +#include +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +/**************************************** +* Data Type +****************************************/ + +/** + * The device-side structure for an event subscriber + */ +typedef struct _CgUpnpSubscriber { + BOOL headFlag; + struct _CgUpnpSubscriber *prev; + struct _CgUpnpSubscriber *next; + + CgString *sid; + CgString *ifAddr; + CgNetURL *deliveryURL; + + CgSysTime timeout; + long notifyCount; + CgSysTime subscriptionTime; +} CgUpnpSubscriber, CgUpnpSubscriberList; + +/**************************************** +* Function (Subscriber) +****************************************/ + +/** + * Create a new event subscriber + */ +CgUpnpSubscriber *cg_upnp_subscriber_new(); + +/** + * Destroy an event subscriber + * + * @param sub The event subscriber + */ +void cg_upnp_subscriber_delete(CgUpnpSubscriber *sub); + +/** + * Clear the contents of an event subscriber + * + * @todo Lacks implementation (is it necessary?) + * + * @param sub The event subscriber + */ +void cg_upnp_subscriber_clear(CgUpnpSubscriber *sub); + +/** + * Renew a subscription. Essentially sets subscription time (duration) + * to zero and resets notify count (== event key). + * + * @param sub The event subscriber + */ +void cg_upnp_subscriber_renew(CgUpnpSubscriber *sub); + +/** + * Get the next subscriber in a subscriber list. Use as an iterator. + * + * @param sub The current event subscriber + * @return Next subscriber or NULL + */ +#define cg_upnp_subscriber_next(sub) (CgUpnpSubscriber *)cg_list_next((CgList *)sub) + +/** + * Remove the event subscriber from a subscriber list. + * + * @param sub The event subscriber to remove + */ +#define cg_upnp_subscriber_remove(sub) cg_list_remove((CgList *)sub) + +/**************************************************************************** + * sid + ****************************************************************************/ + +/** + * Set the subscriber's SID (Subscription IDentifier) value + * + * @param sub The event subscriber + * @param value The SID value + */ +#define cg_upnp_subscriber_setsid(sub, value) cg_string_setvalue(sub->sid, value) + +/** + * Get the subscriber's SID (Subscription IDentifier) value + * + * @param sub The current event subscriber + * @return Subscriber's SID + */ +#define cg_upnp_subscriber_getsid(sub) cg_string_getvalue(sub->sid) + +/**************************************************************************** + * timeout + ****************************************************************************/ + +/** + * Set the subscription timeout (expiration time) to a certain value. + * + * @param sub The event subscriber + * @param value Timeout + */ +#define cg_upnp_subscriber_settimeout(sub, value) (sub->timeout = value) + +/** + * Get the subscription timeout (expiration time) + * + * @param sub The event subscriber + * @return Timeout + */ +#define cg_upnp_subscriber_gettimeout(sub) (sub->timeout) + +/**************************************************************************** + * subscriptionTime + ****************************************************************************/ + +/** + * Set the subscription time (duration) to a certain value. + * + * @param sub The event subscriber + * @param value Subscription time + */ +#define cg_upnp_subscriber_setsubscriptiontime(sub, value) (sub->subscriptionTime = value) + +/** + * Get the subscription time (duration) + * + * @param sub The event subscriber + * @return Subscription time + */ +#define cg_upnp_subscriber_getsubscriptiontime(sub) (sub->subscriptionTime) + +/**************************************************************************** + * notifycount + ****************************************************************************/ + +/** + * Set the notify count to a certain value. + * + * @param sub The event subscriber + * @param value Notify count + */ +#define cg_upnp_subscriber_setnotifycount(sub, value) (sub->notifyCount = value) + +/** + * Get the notify count + * + * @param sub The event subscriber + * @return Notify count + */ +#define cg_upnp_subscriber_getnotifycount(sub) (sub->notifyCount) + +/** + * Increment the event notify count by one + * + * @param sub The event subscriber + * @return The new notify count + */ +long cg_upnp_subscriber_incrementnotifycount(CgUpnpSubscriber *sub); + +/**************************************************************************** + * Delivery URL + ****************************************************************************/ + +/** + * Set the subscriber's delivery URL + * + * @param sub The event subscriber + * @param value The delivery URL + */ +#define cg_upnp_subscriber_setdeliveryurl(sub, value) cg_net_url_set(sub->deliveryURL, value) + +/** + * Set the subscriber's delivery host + * + * @param sub The event subscriber + */ +#define cg_upnp_subscriber_getdeliveryhost(sub) cg_net_url_gethost(sub->deliveryURL) + +/** + * Set the subscriber's delivery path + * + * @param sub The event subscriber + */ +#define cg_upnp_subscriber_getdeliverypath(sub) cg_net_url_getpath(sub->deliveryURL) + +/** + * Set the subscriber's delivery port + * + * @param sub The event subscriber + */ +#define cg_upnp_subscriber_getdeliveryport(sub) cg_net_url_getport(sub->deliveryURL) + +/** + * Check, whether a subscriber's event subscription has been expired + * + * @param sub The subscriber + * @return TRUE if the subscription has been expired; otherwise FALSE + */ +BOOL cg_upnp_subscriber_isexpired(CgUpnpSubscriber *sub); + +/** + * Post a notification to an event subscriber. This is called in a device. + * + * @param sub The event subscriber + * @param statVar The evented state variable + * @return TRUE if succesful; otherwise FALSE + */ +BOOL cg_upnp_subscriber_notify(CgUpnpSubscriber *sub, CgUpnpStateVariable *statVar); + +/** + * Post a notification to an event subscriber. This is called in a device. + * + * @param sub The event subscriber + * @param service The evented service + * @return TRUE if succesful; otherwise FALSE + */ +BOOL cg_upnp_subscriber_notifyall(CgUpnpSubscriber *sub, void *service); + +/**************************************** +* Function (SubscriberList) +****************************************/ + +/** + * Create a new event subscriber list + */ +CgUpnpSubscriberList *cg_upnp_subscriberlist_new(); + +/** + * Destroy an event subscriber list + * + * @param subscriberlist The list to destroy + */ +void cg_upnp_subscriberlist_delete(CgUpnpSubscriberList *subscriberlist); + +/** + * Clear the contents of a subscriber list + * + * @param subList The subscriber list to clear + */ +#define cg_upnp_subscriberlist_clear(subList) cg_list_clear((CgList *)subList, (CG_LIST_DESTRUCTORFUNC)cg_upnp_subscriber_delete) + +/** + * Get the size (node count) of a subscriber list + * + * @param subList The subscriber list to evaluate + */ +#define cg_upnp_subscriberlist_size(subList) cg_list_size((CgList *)subList) + +/** + * Get the first item in a subscriber list (use as the first step in iteration). + * + * @param subList The subscriber list to evaluate + */ +#define cg_upnp_subscriberlist_gets(subList) (CgUpnpSubscriber *)cg_list_next((CgList *)subList) + +/** + * Add a new event subscriber to a subscriber list + * + * @param subList The subscriber list to add to + * @param sub The subscriber to add + */ +#define cg_upnp_subscriberlist_add(subList, sub) cg_list_add((CgList *)subList, (CgList *)sub) + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/event/csubscription.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/event/csubscription.h new file mode 100644 index 0000000..7254350 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/event/csubscription.h @@ -0,0 +1,166 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: csubscription.h +* +* Revision: +* +* 06/20/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UPNP_CSUBSCRIPTION_H_ +#define _CG_UPNP_CSUBSCRIPTION_H_ + +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + + +/**************************************** +* Data Type +****************************************/ + +/** + * Data type for subscription request + */ +typedef CgHttpRequest CgUpnpSubscriptionRequest; + +/**************************************** +* Function (Request) +****************************************/ + +/** + * Create new subscription request + */ +CgUpnpSubscriptionRequest *cg_upnp_event_subscription_request_new(); + +/** + * Delete subscription request + * + * @param subReq subscription request + */ +#define cg_upnp_event_subscription_request_delete(subReq) cg_http_request_delete(subReq) + +/**** NT ****/ + +/** + * Set host header value into underlying HTTP packet + * + * @param subReq Subscription request + * @param ipaddr Host ip address + * @param port Host port + */ +#define cg_upnp_event_subscription_request_sethost(subReq, ipaddr, port) cg_http_request_sethost(subReq, ipaddr, port) + +/** + * Get host header value from subscription request + * + * @param subReq Subscription request + * @param value Not actually used anywhere + * + * \bug Value not needed here! (It is even processed out from to be compiled code) + */ +#define cg_upnp_event_subscription_request_gethost(subReq, value) cg_http_request_gethost(subReq) + +/**** NT ****/ + +/** + * Set NT (Notification type) for subscription request + * + * @param subReq Subscription request + * @param value Notification type + */ +#define cg_upnp_event_subscription_request_setnt(subReq, value) cg_http_request_setheadervalue(subReq, CG_HTTP_NT, value) + +/** + * Get NT from subscription request + * + * @param subReq Subscription request + * @param value Not actually used anywhere + * + * \bug Value not needed here! + */ +#define cg_upnp_event_subscription_request_getnt(subReq, value) cg_http_request_getheadervalue(subReq, CG_HTTP_NT) + +/**** CALLBACK ****/ + +/** + * Set callback URL for eventing + * + * @param subReq Subscription request + * @value value String which defines the callback URL + */ +#define cg_upnp_event_subscription_request_setcallback(subReq, value) cg_http_request_setheadervalue(subReq, CG_HTTP_CALLBACK, value) + +/** + * Get callback url from subscription request + * + * @subReq Subscription request + * @value Not actually used anywhere + * + * \bug Value not needed here! + */ +#define cg_upnp_event_subscription_request_getcallback(subReq, value) cg_http_request_getheadervalue(subReq, CG_HTTP_CALLBACK) + +/**** SID ****/ + +/** + * Set SID (Subscription ID) for subscription request + * + * @param subReq Subscription request + * @param value SID + */ +#define cg_upnp_event_subscription_request_setsid(subReq, value) cg_http_request_setheadervalue(subReq, CG_HTTP_SID, value) + +/** + * Get SID from subscription request object + * + * @param subReq Subscription request + * @param value Not used + * + * \bug Value not needed here! + */ +#define cg_upnp_event_subscription_request_getsid(subReq, value) cg_http_request_getheadervalue(subReq, CG_HTTP_SID) + +/**** Timeout ****/ + +/** + * Set timeout for subscription request + * + * @param subReq Subscription request + * @param timeout Timeout + */ +void cg_upnp_event_subscription_request_settimeout(CgUpnpSubscriptionRequest *subReq, long timeout); + +/** + * Get timeout value from subscription request + * + * @param subReq Subscription request + * + * @return Timeout + */ +long cg_upnp_event_subscription_request_gettimeout(CgUpnpSubscriptionRequest *subReq); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/ssdp/cssdp.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/ssdp/cssdp.h new file mode 100644 index 0000000..747b873 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/ssdp/cssdp.h @@ -0,0 +1,220 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cssdp.h +* +* Revision: +* +* 02/13/05 +* - first revision +* +* 10/31/05 +* - Added cg_upnp_ssdpresponse_setext and _setserver +* +******************************************************************/ + +#ifndef _CG_UPNP_CSSDP_H_ +#define _CG_UPNP_CSSDP_H_ + +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#define CG_UPNP_SSDP_PORT 1900 + +#define CG_UPNP_SSDP_ADDRESS "239.255.255.250" + +#define CG_UPNP_SSDP_MULTICAST_ADDRESS "239.255.255.250:1900" + +#define CG_AUTO_IP_NET 0xa9fe0000 +#define CG_AUTO_IP_MASK 0xffff0000 + +/* Default time to live specified in UPnP DA spec */ +#define CG_UPNP_SSDP_MULTICAST_DEFAULT_TTL 4 + +#define CG_UPNP_SSDP_IPV6_IF_LOCAL_ADDRESS "FF01::C" +#define CG_UPNP_SSDP_IPV6_LINK_LOCAL_ADDRESS "FF02::C" +#define CG_UPNP_SSDP_IPV6_SUBNET_ADDRESS "FF03::C" +#define CG_UPNP_SSDP_IPV6_ADMINISTRATIVE_ADDRESS "FF04::C" +#define CG_UPNP_SSDP_IPV6_SITE_LOCAL_ADDRESS "FF05::C" +#define CG_UPNP_SSDP_IPV6_GLOBAL_ADDRESS "FF0E::C" + +#define CG_UPNP_SSDP_DEFAULT_MSEARCH_MX 3 +#define CG_UPNP_SSDP_DEFAULT_ANNOUNCE_COUNT 3 + +#define CG_UPNP_SSDP_HEADER_LINE_MAXSIZE 128 + +#define CG_UPNP_SSDP_ST "ST" +#define CG_UPNP_SSDP_MX "MX" +#define CG_UPNP_SSDP_MAN "MAN" +#define CG_UPNP_SSDP_NT "NT" +#define CG_UPNP_SSDP_NTS "NTS" + #define CG_UPNP_SSDP_NTS_ALIVE "ssdp:alive" + #define CG_UPNP_SSDP_NTS_BYEBYE "ssdp:byebye" + #define CG_UPNP_SSDP_NTS_PROPCHANGE "upnp:propchange" +#define CG_UPNP_SSDP_USN "USN" +#define CG_UPNP_SSDP_EXT "EXT" +#define CG_UPNP_SSDP_SID "SID" +#define CG_UPNP_SSDP_SEQ "SEQ" +#define CG_UPNP_SSDP_CALBACK "CALLBACK" +#define CG_UPNP_SSDP_TIMEOUT "TIMEOUT" +#define CG_UPNP_SSDP_SERVER "SERVER" + +#define CG_UPNP_SSDP_FILTER_TABLE_SIZE 101 + +/**************************************** +* Data Type +****************************************/ + +typedef CgHttpResponse CgUpnpSSDPResponse; +typedef CgHttpRequest CgUpnpSSDPRequest; + +typedef CgSocket CgUpnpSSDPSocket; + +/**************************************** +* Function +****************************************/ + +void cg_upnp_ssdp_setipv6address(char *addr); +char *cg_upnp_ssdp_getipv6address(); + +void cg_upnp_ssdp_setannouncecount(int count); +int cg_upnp_ssdp_getannouncecount(); + +int cg_upnp_ssdp_getleasetime(char *cacheCont); + +char *cg_upnp_ssdp_gethostaddress(char *ifAddr); + +/**************************************** +* Function (SSDPRequest) +****************************************/ + +CgUpnpSSDPRequest *cg_upnp_ssdprequest_new(); +void cg_upnp_ssdprequest_delete(CgUpnpSSDPRequest *ssdpReq); + +/**** Method ****/ +#define cg_upnp_ssdprequest_setmethod(ssdpReq,value) cg_http_request_setmethod(ssdpReq,value) +#define cg_upnp_ssdprequest_getmethod(ssdpReq) cg_http_request_getmethod(ssdpReq) + +/**** URI ****/ +#define cg_upnp_ssdprequest_seturi(ssdpReq,value) cg_http_request_seturi(ssdpReq,value) +#define cg_upnp_ssdprequest_geturi(ssdpReq) cg_http_request_geturi(ssdpReq) + +/**** HOST ****/ +#define cg_upnp_ssdprequest_sethost(ssdpReq,addr,port) cg_http_packet_sethost((CgHttpPacket*)ssdpReq, addr, port) +#define cg_upnp_ssdprequest_gethost(ssdpReq) cg_http_packet_gethost((CgHttpPacket*)ssdpReq) + +/**** Server ****/ +#define cg_upnp_ssdprequest_setserver(ssdpReq,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpReq, CG_HTTP_SERVER, value) +#define cg_upnp_ssdprequest_getserver(ssdpReq) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpReq,CG_HTTP_SERVER) + +/**** ST ****/ +#define cg_upnp_ssdprequest_setst(ssdpReq,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpReq, CG_UPNP_SSDP_ST, value) +#define cg_upnp_ssdprequest_getst(ssdpReq) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpReq,CG_UPNP_SSDP_ST) + +/**** NT ****/ +#define cg_upnp_ssdprequest_setnt(ssdpReq,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpReq, CG_UPNP_SSDP_NT, value) +#define cg_upnp_ssdprequest_getnt(ssdpReq) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpReq,CG_UPNP_SSDP_NT) + +/**** NTS ****/ +#define cg_upnp_ssdprequest_setnts(ssdpReq,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpReq, CG_UPNP_SSDP_NTS, value) +#define cg_upnp_ssdprequest_getnts(ssdpReq) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpReq,CG_UPNP_SSDP_NTS) + +/**** Location ****/ +#define cg_upnp_ssdprequest_setlocation(ssdpReq,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpReq, CG_HTTP_LOCATION, value) +#define cg_upnp_ssdprequest_getlocation(ssdpReq) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpReq,CG_HTTP_LOCATION) + +/**** USN ****/ +#define cg_upnp_ssdprequest_setusn(ssdpReq,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpReq, CG_UPNP_SSDP_USN, value) +#define cg_upnp_ssdprequest_getusn(ssdpReq) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpReq,CG_UPNP_SSDP_USN) + +/**** MX ****/ +#define cg_upnp_ssdprequest_setmx(ssdpReq,value) cg_http_packet_setheaderinteger((CgHttpPacket*)ssdpReq, CG_UPNP_SSDP_MX, value) +#define cg_upnp_ssdprequest_getmx(ssdpReq) cg_http_packet_getheaderinteger((CgHttpPacket*)ssdpReq,CG_UPNP_SSDP_MX) + +/**** MAN ****/ +#define cg_upnp_ssdprequest_setman(ssdpReq,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpReq, CG_UPNP_SSDP_MAN, value) +#define cg_upnp_ssdprequest_getman(ssdpReq) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpReq,CG_UPNP_SSDP_MAN) + +/**** CacheControl ****/ +void cg_upnp_ssdprequest_setleasetime(CgUpnpSSDPRequest *ssdpReq, int value); +int cg_upnp_ssdprequest_getleasetime(CgUpnpSSDPRequest *ssdpReq); + +/**** toString ****/ +char *cg_upnp_ssdprequest_tostring(CgUpnpSSDPRequest *ssdpReq, CgString *ssdpMsg); + +/**** Print ****/ +#define cg_upnp_ssdprequest_print(ssdpReq) cg_http_request_print(ssdpReq) + +/**************************************** +* Function (SSDPResponse) +****************************************/ + +CgUpnpSSDPResponse *cg_upnp_ssdpresponse_new(); +void cg_upnp_ssdpresponse_delete(CgUpnpSSDPResponse *ssdpRes); + +/**** ST ****/ +#define cg_upnp_ssdpresponse_setst(ssdpRes,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpRes, CG_UPNP_SSDP_ST, value) +#define cg_upnp_ssdpresponse_getst(ssdpRes) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpRes,CG_UPNP_SSDP_ST) + +/**** EXT ****/ +#define cg_upnp_ssdpresponse_setext(ssdpRes) cg_http_packet_setheadervalue((CgHttpPacket*) ssdpRes, CG_UPNP_SSDP_EXT, "") + +/**** SERVER ****/ +#define cg_upnp_ssdpresponse_setserver(ssdpRes, value) cg_http_packet_setheadervalue((CgHttpPacket*) ssdpRes, CG_UPNP_SSDP_SERVER, value) + +/**** Location ****/ +#define cg_upnp_ssdpresponse_setlocation(ssdpRes,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpRes, CG_HTTP_LOCATION, value) +#define cg_upnp_ssdpresponse_getlocation(ssdpRes) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpRes,CG_HTTP_LOCATION) + +/**** USN ****/ +#define cg_upnp_ssdpresponse_setusn(ssdpRes,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpRes, CG_UPNP_SSDP_USN, value) +#define cg_upnp_ssdpresponse_getusn(ssdpRes) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpRes,CG_UPNP_SSDP_USN) + +/**** CacheControl ****/ +void cg_upnp_ssdpresponse_setleasetime(CgUpnpSSDPResponse *ssdpRes, int value); +int cg_upnp_ssdpresponse_getleasetime(CgUpnpSSDPResponse *ssdpRes); + +/**** Date ****/ +#define cg_upnp_ssdpresponse_setdate(ssdpRes,value) cg_http_packet_setheadervalue((CgHttpPacket*)ssdpRes, CG_HTTP_DATE, value) +#define cg_upnp_ssdpresponse_getdate(ssdpRes) cg_http_packet_getheadervalue((CgHttpPacket*)ssdpRes,CG_HTTP_DATE) + +/**** toString ****/ +char *cg_upnp_ssdpresponse_tostring(CgUpnpSSDPResponse *ssdpRes, CgString *ssdpMsg); + +/**** Print ****/ +#define cg_upnp_ssdpresponse_print(ssdpReq) cg_http_response_print(ssdpReq) + +/**************************************** +* Function (SSDPSocket) +****************************************/ + +#define cg_upnp_ssdp_socket_new() cg_socket_new(CG_NET_SOCKET_DGRAM) +#define cg_upnp_ssdp_socket_delete(socket) cg_socket_delete(socket) +#define cg_upnp_ssdp_socket_close(socket) cg_socket_close(socket) + +BOOL cg_upnp_ssdp_socket_notifyfrom(CgUpnpSSDPSocket *ssdpSock, CgUpnpSSDPRequest *ssdpReq, char *bindAddr); +BOOL cg_upnp_ssdp_socket_postresponse(CgUpnpSSDPSocket *ssdpSock, CgUpnpSSDPResponse *ssdpReq, char *host, int port); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/ssdp/cssdp_server.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/ssdp/cssdp_server.h new file mode 100644 index 0000000..6eea2c1 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/upnp/ssdp/cssdp_server.h @@ -0,0 +1,247 @@ +/****************************************************************** +* +* CyberLink for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cssdp_server.h +* +* Revision: +* +* 05/26/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UPNP_CSSDP_SERVER_H_ +#define _CG_UPNP_CSSDP_SERVER_H_ + +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +/**************************************** +* Data Type +****************************************/ + +typedef CgSocket CgUpnpHttpMuSocket; +typedef CgSocket CgUpnpHttpUSocket; + +typedef struct _CgUpnpSSDPPacket { + CgDatagramPacket *dgmPkt; + CgHttpHeaderList *headerList; + void *userData; + CgSysTime timeStamp; + + /* These are used when filtering out duplicate + * M-SEARCHes + */ + CgSysTime *timestamps; + int initialized; +} CgUpnpSSDPPacket; + +typedef void (*CG_UPNP_SSDP_LISTNER)(CgUpnpSSDPPacket *); + +typedef struct _CgUpnpSSDPServer { + BOOL headFlag; + struct _CgUpnpSSDPServer *prev; + struct _CgUpnpSSDPServer *next; + CgUpnpHttpMuSocket *httpmuSock; + CgThread *recvThread; + CG_UPNP_SSDP_LISTNER listener; + void *userData; +} CgUpnpSSDPServer, CgUpnpSSDPServerList; + +typedef void (*CG_UPNP_SSDP_RESPONSE_LISTNER)(CgUpnpSSDPPacket *); + +typedef struct _CgUpnpSSDPResponseServer { + BOOL headFlag; + struct _CgUpnpSSDPServer *prev; + struct _CgUpnpSSDPServer *next; + CgUpnpHttpUSocket *httpuSock; + CgThread *recvThread; + CG_UPNP_SSDP_RESPONSE_LISTNER listener; + void *userData; +} CgUpnpSSDPResponseServer, CgUpnpSSDPResponseServerList; + +/**************************************** +* Function (HTTPMU) +****************************************/ + +#define cg_upnp_httpmu_socket_new() cg_socket_dgram_new() +#define cg_upnp_httpmu_socket_delete(sock) cg_socket_delete(sock) +#define cg_upnp_httpmu_socket_close(sock) cg_socket_close(sock) + +BOOL cg_upnp_httpmu_socket_bind(CgUpnpHttpMuSocket *sock, char *mcastAddr, int port, char *bindAddr); +int cg_upnp_httpmu_socket_recv(CgUpnpHttpMuSocket *sock, CgUpnpSSDPPacket *ssdpPkt); + +/**************************************** +* Function (HTTPU) +****************************************/ + +#define cg_upnp_httpu_socket_new() cg_socket_dgram_new() +#define cg_upnp_httpu_socket_delete(sock) cg_socket_delete(sock) +#define cg_upnp_httpu_socket_close(sock) cg_socket_close(sock) +#define cg_upnp_httpu_socket_new() cg_socket_dgram_new() +#define cg_upnp_httpu_socket_bind(sock, bindPort, bindAddr) cg_socket_bind(sock, bindPort, bindAddr, FALSE, FALSE) +int cg_upnp_httpu_socket_recv(CgUpnpHttpUSocket *sock, CgUpnpSSDPPacket *ssdpPkt); + +/**************************************** +* Function (SSDPPacket) +****************************************/ + +CgUpnpSSDPPacket *cg_upnp_ssdp_packet_new(); +void cg_upnp_ssdp_packet_delete(CgUpnpSSDPPacket *ssdpPkt); +void cg_upnp_ssdp_packet_clear(CgUpnpSSDPPacket *ssdpPkt); + +#define cg_upnp_ssdp_packet_setdatagrampacket(ssdpPkt, value) (ssdpPkt->dgmPkt = value) +#define cg_upnp_ssdp_packet_getdatagrampacket(ssdpPkt) (ssdpPkt->dgmPkt) +#define cg_upnp_ssdp_packet_setdata(ssdpPkt, value) cg_string_setvalue(ssdpPkt->dgmPkt->data, value) +#define cg_upnp_ssdp_packet_getdata(ssdpPkt) cg_string_getvalue(ssdpPkt->dgmPkt->data) +#define cg_upnp_ssdp_packet_setuserdata(ssdpPkt, data) (ssdpPkt->userData = data) +#define cg_upnp_ssdp_packet_getuserdata(ssdpPkt) (ssdpPkt->userData) +#define cg_upnp_ssdp_packet_settimestamp(ssdpPkt, value) (ssdpPkt->timeStamp = value) +#define cg_upnp_ssdp_packet_gettimestamp(ssdpPkt) (ssdpPkt->timeStamp) +#define cg_upnp_ssdp_packet_getexpiration(ssdpPkt) (cg_upnp_ssdp_packet_getmaxage(ssdpPkt) == 0 ? 0 : cg_upnp_ssdp_packet_gettimestamp(ssdpPkt) + cg_upnp_ssdp_packet_getmaxage(ssdpPkt)) + +void cg_upnp_ssdp_packet_setheader(CgUpnpSSDPPacket *ssdpPkt, char *ssdpMsg); +#define cg_upnp_ssdp_packet_addheader(ssdpPkt, header) cg_http_headerlist_add(ssdpPkt->headerList, header) +#define cg_upnp_ssdp_packet_getheaders(ssdpPkt) cg_http_headerlist_gets(ssdpPkt->headerList) + +#define cg_upnp_ssdp_packet_gethost(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_HOST) +#define cg_upnp_ssdp_packet_getserver(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_SERVER) +#define cg_upnp_ssdp_packet_getcachecontrol(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_CACHE_CONTROL) +#define cg_upnp_ssdp_packet_getdate(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_DATE) +#define cg_upnp_ssdp_packet_getext(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_EXT) +#define cg_upnp_ssdp_packet_getlocation(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_LOCATION) +#define cg_upnp_ssdp_packet_getst(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_ST) +#define cg_upnp_ssdp_packet_getusn(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_USN) +#define cg_upnp_ssdp_packet_getmx(ssdpPkt) cg_str2int(cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_MX)) +#define cg_upnp_ssdp_packet_getman(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_MAN) +#define cg_upnp_ssdp_packet_getnt(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_NT) +#define cg_upnp_ssdp_packet_getnts(ssdpPkt) cg_http_headerlist_getvalue(ssdpPkt->headerList, CG_HTTP_NTS) +long cg_upnp_ssdp_packet_getmaxage(CgUpnpSSDPPacket *ssdpPkt); + +#define cg_upnp_ssdp_packet_isdiscover(ssdpPkt) cg_upnp_man_isdiscover(cg_upnp_ssdp_packet_getman(ssdpPkt)) +#define cg_upnp_ssdp_packet_isalive(ssdpPkt) cg_upnp_nts_isalive(cg_upnp_ssdp_packet_getnts(ssdpPkt)) +#define cg_upnp_ssdp_packet_isbyebye(ssdpPkt) cg_upnp_nts_isbyebye(cg_upnp_ssdp_packet_getnts(ssdpPkt)) + +BOOL cg_upnp_ssdp_packet_isrootdevice(CgUpnpSSDPPacket *ssdpPkt); + +#define cg_upnp_ssdp_packet_getlocaladdress(ssdpPkt) cg_socket_datagram_packet_getlocaladdress(ssdpPkt->dgmPkt) +#define cg_upnp_ssdp_packet_getlocalport(ssdpPkt) cg_socket_datagram_packet_getlocalport(ssdpPkt->dgmPkt) +#define cg_upnp_ssdp_packet_getremoteaddress(ssdpPkt) cg_socket_datagram_packet_getremoteaddress(ssdpPkt->dgmPkt) +#define cg_upnp_ssdp_packet_getremoteport(ssdpPkt) cg_socket_datagram_packet_getremoteport(ssdpPkt->dgmPkt) + +void cg_upnp_ssdp_packet_copy(CgUpnpSSDPPacket *destSsdpPkt, CgUpnpSSDPPacket *srcSsdpPkt); +void cg_upnp_ssdp_packet_print(CgUpnpSSDPPacket *ssdpPkt); + +/**************************************** +* Function (SSDPServer) +****************************************/ + +CgUpnpSSDPServer *cg_upnp_ssdp_server_new(); +void cg_upnp_ssdp_server_delete(CgUpnpSSDPServer *server); + +#define cg_upnp_ssdp_server_next(server) (CgUpnpSSDPServer *)cg_list_next((CgList *)server) + +BOOL cg_upnp_ssdp_server_open(CgUpnpSSDPServer *server, char *bindAddr); +BOOL cg_upnp_ssdp_server_close(CgUpnpSSDPServer *server); + +#define cg_upnp_ssdp_server_isopened(server) ((server->httpmuSock != NULL) ? TRUE : FALSE) +#define cg_upnp_ssdp_server_getsocket(server) (server->httpmuSock) + +#define cg_upnp_ssdp_server_setlistener(server, func) (server->listener = func) +#define cg_upnp_ssdp_server_getlistener(server) (server->listener) +void cg_upnp_ssdp_server_performlistener(CgUpnpSSDPServer *server, CgUpnpSSDPPacket *ssdpPkt); + +#define cg_upnp_ssdp_server_setuserdata(server, data) (server->userData = data) +#define cg_upnp_ssdp_server_getuserdata(server) (server->userData) + +BOOL cg_upnp_ssdp_server_start(CgUpnpSSDPServer *server); +BOOL cg_upnp_ssdp_server_stop(CgUpnpSSDPServer *server); + +/**************************************** +* Function (SSDPServerList) +****************************************/ + +CgUpnpSSDPServerList *cg_upnp_ssdp_serverlist_new(); +void cg_upnp_ssdp_serverlist_delete(CgUpnpSSDPServerList *serverList); + +#define cg_upnp_ssdp_serverlist_clear(serverList) cg_list_clear((CgList *)serverList, (CG_LIST_DESTRUCTORFUNC)cg_upnp_ssdp_server_delete) +#define cg_upnp_ssdp_serverlist_size(serverList) cg_list_size((CgList *)serverList) +#define cg_upnp_ssdp_serverlist_gets(serverList) (CgUpnpSSDPServer *)cg_list_next((CgList *)serverList) +#define cg_upnp_ssdp_serverlist_add(serverList, server) cg_list_add((CgList *)serverList, (CgList *)server) + +BOOL cg_upnp_ssdp_serverlist_open(CgUpnpSSDPServerList *ssdpServerList); +BOOL cg_upnp_ssdp_serverlist_close(CgUpnpSSDPServerList *ssdpServerList); +BOOL cg_upnp_ssdp_serverlist_start(CgUpnpSSDPServerList *ssdpServerList); +BOOL cg_upnp_ssdp_serverlist_stop(CgUpnpSSDPServerList *ssdpServerList); +void cg_upnp_ssdp_serverlist_setlistener(CgUpnpSSDPServerList *ssdpServerList, CG_UPNP_SSDP_LISTNER listener); +void cg_upnp_ssdp_serverlist_setuserdata(CgUpnpSSDPServerList *ssdpServerList, void *data); + +/**************************************** +* Function (SSDPResponseServer) +****************************************/ + +CgUpnpSSDPResponseServer *cg_upnp_ssdpresponse_server_new(); +void cg_upnp_ssdpresponse_server_delete(CgUpnpSSDPResponseServer *server); + +#define cg_upnp_ssdpresponse_server_next(server) (CgUpnpSSDPResponseServer *)cg_list_next((CgList *)server) + +BOOL cg_upnp_ssdpresponse_server_open(CgUpnpSSDPResponseServer *server, int bindPort, char *bindAddr); +BOOL cg_upnp_ssdpresponse_server_close(CgUpnpSSDPResponseServer *server); + +#define cg_upnp_ssdpresponse_server_isopened(server) ((server->httpuSock != NULL) ? TRUE : FALSE) +#define cg_upnp_ssdpresponse_server_getsocket(server) (server->httpuSock) + +#define cg_upnp_ssdpresponse_server_setlistener(server, func) (server->listener = func) +#define cg_upnp_ssdpresponse_server_getlistener(server) (server->listener) +void cg_upnp_ssdpresponse_server_performlistener(CgUpnpSSDPResponseServer *server, CgUpnpSSDPPacket *ssdpPkt); + +#define cg_upnp_ssdpresponse_server_setuserdata(server, data) (server->userData = data) +#define cg_upnp_ssdpresponse_server_getuserdata(server) (server->userData) + +BOOL cg_upnp_ssdpresponse_server_start(CgUpnpSSDPResponseServer *server); +BOOL cg_upnp_ssdpresponse_server_stop(CgUpnpSSDPResponseServer *server); + +BOOL cg_upnp_ssdpresponse_server_post(CgUpnpSSDPResponseServer *server, CgUpnpSSDPRequest *ssdpReq); + +/**************************************** +* Function (SSDPResponseServerList) +****************************************/ + +CgUpnpSSDPResponseServerList *cg_upnp_ssdpresponse_serverlist_new(); +void cg_upnp_ssdpresponse_serverlist_delete(CgUpnpSSDPResponseServerList *serverList); + +#define cg_upnp_ssdpresponse_serverlist_clear(serverList) cg_list_clear((CgList *)serverList, (CG_LIST_DESTRUCTORFUNC)cg_upnp_ssdpresponse_server_delete) +#define cg_upnp_ssdpresponse_serverlist_size(serverList) cg_list_size((CgList *)serverList) +#define cg_upnp_ssdpresponse_serverlist_gets(serverList) (CgUpnpSSDPResponseServer *)cg_list_next((CgList *)serverList) +#define cg_upnp_ssdpresponse_serverlist_add(serverList, server) cg_list_add((CgList *)serverList, (CgList *)server) + +BOOL cg_upnp_ssdpresponse_serverlist_open(CgUpnpSSDPResponseServerList *ssdpServerList, int bindPort); +BOOL cg_upnp_ssdpresponse_serverlist_close(CgUpnpSSDPResponseServerList *ssdpServerList); +BOOL cg_upnp_ssdpresponse_serverlist_start(CgUpnpSSDPResponseServerList *ssdpServerList); +BOOL cg_upnp_ssdpresponse_serverlist_stop(CgUpnpSSDPResponseServerList *ssdpServerList); +void cg_upnp_ssdpresponse_serverlist_setlistener(CgUpnpSSDPResponseServerList *ssdpServerList, CG_UPNP_SSDP_LISTNER listener); +void cg_upnp_ssdpresponse_serverlist_setuserdata(CgUpnpSSDPResponseServerList *ssdpServerList, void *data); +BOOL cg_upnp_ssdpresponse_serverlist_post(CgUpnpSSDPResponseServerList *ssdpServerList, CgUpnpSSDPRequest *ssdpReq); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/ccond.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/ccond.h new file mode 100644 index 0000000..ef425fd --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/ccond.h @@ -0,0 +1,110 @@ +/****************************************************************** +* +* CyberUtil for C +* +* Copyright (C) 2006 Nokia Corporation +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: ccond.h +* +* Revision: +* +* 16-Jan-06 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UTIL_CCOND_H_ +#define _CG_UTIL_CCOND_H_ + +#include +#include + +#if defined(WIN32) && !defined(ITRON) +#include +#elif defined(BTRON) +#include +#elif defined(ITRON) +#include +#elif defined(TENGINE) && !defined(PROCESS_BASE) +#include +#elif defined(TENGINE) && defined(PROCESS_BASE) +#include +#else +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** + * Data Types + ****************************************/ + +/** + * \brief The generic wrapper struct for CyberLinkC's conds. + * + * This wrapper has been created to enable 100% code + * compatibility for different platforms (Linux, Win32 etc..) + */ +typedef struct _CgCond { +#if defined(WIN32) && !defined(ITRON) + HANDLE condID; +#elif defined(BTRON) + WERR condID; +#elif defined(ITRON) + ER_ID condID; +#elif defined(TENGINE) && !defined(PROCESS_BASE) + ID condID; +#elif defined(TENGINE) && defined(PROCESS_BASE) + WERR condID; +#else + /** The cond entity */ + pthread_cond_t condID; +#endif +} CgCond; + +/**************************************** + * Functions + ****************************************/ + +/** + * Create a new condition variable + */ +CgCond *cg_cond_new(); + +/** + * Destroy a condition variable + * + * \param cond The cond to destroy + */ +BOOL cg_cond_delete(CgCond *cond); + +/** + * Wait for condition variable to be signalled. + * + * \param cond Cond to be waited + * \param mutex Mutex used for synchronization + * \param timeout Maximum time in seconds to wait, 0 to wait forever + */ +BOOL cg_cond_wait(CgCond *cond, CgMutex *mutex, unsigned long timeout); + +/** + * Signal a condition variable + * + * \param cond Cond to be signalled + */ +BOOL cg_cond_signal(CgCond *cond); + +#ifdef __cplusplus + +} /* extern "C" */ + +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/cdictionary.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/cdictionary.h new file mode 100644 index 0000000..f7a1cdd --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/cdictionary.h @@ -0,0 +1,188 @@ +/****************************************************************** +* +* CyberUtil for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cdictionary.h +* +* Revision: +* +* 05/26/09 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UTIL_CDICTIONARY_H_ +#define _CG_UTIL_CDICTIONARY_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** + * Define + ****************************************/ + +/**************************************** + * Data Type + ****************************************/ + +/** + * \brief The generic wrapper struct for CyberLinkC's dictionarys. + * + * This wrapper has been created to enable 100% code + * compatibility between different platforms (Linux, Win32 etc..) + */ +typedef struct _CgDictionary { + BOOL headFlag; + struct _CgDictionary *prev; + struct _CgDictionary *next; + CgString *key; + CgString *value; +} CgDictionaryElement, CgDictionary; + +/**************************************** +* Function +****************************************/ + +/** + * Create a new dictionary + */ +CgDictionaryElement *cg_dictionary_element_new(); + +/** + * Destroy a dictionary. + * + * \param dirElem Dictionary to destroy + */ +BOOL cg_dictionary_element_delete(CgDictionaryElement *dirElem); + +/** + * Set a key + * + * \param dirElem Dictionary struct + * \param name String to set + */ +#define cg_dictionary_element_setkey(dirElem, name) cg_string_setvalue(dirElem->key, name) +/** + * Get a key + * + * \param dirElem Dictionary struct + */ +#define cg_dictionary_element_getkey(dirElem) cg_string_getvalue(dirElem->key) + +/** + * Set a value + * + * \param dirElem Dictionary struct + * \param value String to set + */ +#define cg_dictionary_element_setvalue(dirElem, val) cg_string_setvalue(dirElem->value, val) +/** + * Get a value + * + * \param dirElem Dictionary struct + */ +#define cg_dictionary_element_getvalue(dirElem) cg_string_getvalue(dirElem->value) + +#define cg_dictionary_element_next(dirElem) (CgDictionaryElement *)cg_list_next((CgList *)dirElem) +#define cg_dictionary_element_remove(dirElem) cg_list_remove((CgList *)dirElem) + +/**************************************** +* Function (Dictionary List) +****************************************/ + +/** + * Create a new dictionary list + * + * \return Dictionary list + */ +CgDictionary *cg_dictionary_new(); + +/** + * Destroy a dictionary list + * + * \param dir The dictionary list in question + */ +void cg_dictionary_delete(CgDictionary *dir); + +/** + * Clear the contents of a dictionary list + * + * \param dir Dictionary list in question + */ +#define cg_dictionary_clear(dir) cg_list_clear((CgList *)dir, (CG_LIST_DESTRUCTORFUNC)cg_dictionary_element_delete) + +/** + * Get the size of a dictionary list + * + * \param dir The dictionary list in question + */ +#define cg_dictionary_size(dir) cg_list_size((CgList *)dir) + +/** + * Get the first actual item from a dictionary list to use as an iterator + * + * \param dir The dictionary list in question + */ +#define cg_dictionary_gets(dir) (CgDictionaryElement *)cg_list_next((CgList *)dir) + +/** + * Add a dictionary into a dictionary list + * + * \param dir The dictionary list in question + * \param dirElem The dictionary to add to the list + */ +#define cg_dictionary_add(dir, dirElem) cg_list_add((CgList *)dir, (CgList *)dirElem) + +/** + * Remove a dictionary from dictionary list + * + * \param dirElem The dictionary to be removed + */ +#define cg_dictionary_remove(dirElem) cg_list_remove((CgList *)dirElem) + +/** + * Get a element of the specified key + * + * \param dir The dictionary list in question + * \param key Name to search. + * \return Element of the specified key. + */ +CgDictionaryElement *cg_dictionary_get(CgDictionary *dir, char *key); + +/** + * Set a new element into a dictionary + * + * \param dir The dictionary list in question + * \param key Name to set. + * \param value Value to set. + */ +void cg_dictionary_setvalue(CgDictionary *dir, char *key, char *value); + +/** + * Get a value of the specified key + * + * \param dir The dictionary list in question + * \param key Name to search. + * \return Value of the specified key. + */ +char *cg_dictionary_getvalue(CgDictionary *dir, char *key); + +#ifdef __cplusplus + +} /* extern "C" */ + +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/clist.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/clist.h new file mode 100644 index 0000000..c1be2cf --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/clist.h @@ -0,0 +1,171 @@ +/****************************************************************** +* +* CyberUtil for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: clist.h +* +* Revision: +* +* 01/18/05 +* - first revision +* +* 10/31/05 +* - Added comments to all functions and structs +* +******************************************************************/ + +#ifndef _CG_UTIL_CLIST_H_ +#define _CG_UTIL_CLIST_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** + * Define + ****************************************/ + +/** + * Prototype for individual list node destructor functions + * + */ +typedef void (*CG_LIST_DESTRUCTORFUNC)(void *); + +/**************************************** + * Data Type + ****************************************/ + +/** + * \brief The generic list interface in CyberLinkC. + * + * Each struct in CyberLinkC, that is designed to be a part of + * a list, must have these elements in their definition before the + * actual struct definition. The struct pointers are then cast to + * CgList* and operated with cg_list_* functions. + */ +typedef struct _CgList { + + /** Marks the beginning of a list */ + BOOL headFlag; + /** Pointer to the next list node */ + struct _CgList *prev; + /** Pointer to the previous list node */ + struct _CgList *next; + +} CgList; + +/**************************************** + * Functions + ****************************************/ + +/** + * Initialize a list node to act as the first node + * + * \param list List node + */ +void cg_list_header_init(CgList *list); + +/** + * Initialize a list node to act as a regular node, part of a list. + * + * \param list List node + */ +void cg_list_node_init(CgList *list); + +/** + * Insert a list node or a complete list structure after the given node + * + * \param prevList Insert after this node + * \param list List node or list structure to insert + */ +void cg_list_insert(CgList *prevList, CgList *list); + +/** + * \todo This works essentially like insert, although it is more error-prone?! + * \todo There might be a bug in this function. + * + */ +void cg_list_add(CgList *headList, CgList *list); + +/** + * Remove a node from a list. Does not free any memory, but only removes + * the next and previous link associations regarding the given node. + * + * \param list List node to remove + */ +void cg_list_remove(CgList *list); + +/** + * Get the number of nodes in the current list structure. Counts forwards from the given + * node, so if you want to get the complete size, give a header node as the parameter. + * + * \param headList List header + */ +int cg_list_size(CgList *headList); + +/** + * Get an item from the list by the item's index + * + * \param headList List header + * \param index The index of the item to get + */ +CgList *cg_list_get(CgList *headList, int index); + +/** + * Get the previous node. Wrap around if the beginning has been reached. + * + * + * \param list Current node + */ +CgList *cg_list_prev_circular(CgList *list); + +/** + * Get the previous node. Returns NULL if beginning has been reached + * + * \param list Current node + */ +CgList *cg_list_prev(CgList *list); + +/** + * Get the next node. Wrap around if the end has been reached. + * + * \param list Current node + */ +CgList *cg_list_next_circular(CgList *list); + +/** + * Get the next node. Returns NULL if end has been reached. + * + * \param list Current node + */ +CgList *cg_list_next(CgList *list); + +/** + * Clear the list and delete all of its contents with \ref CG_LIST_DESTRUCTORFUNC + * + * \param headList List header + * \param destructorFunc Function pointer that clears the contents of individual nodes + */ +void cg_list_clear(CgList *headList, CG_LIST_DESTRUCTORFUNC destructorFunc); + +/** + * Get the first actual item from a list for iteration + * + * \param headList List header + */ +#define cg_list_gets(headList) cg_list_next(headList) + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/clog.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/clog.h new file mode 100644 index 0000000..2e8f557 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/clog.h @@ -0,0 +1,174 @@ +/****************************************************************** +* +* CyberUtil for C +* +* Copyright (C) 2006 Nokia Corporation +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: clog.h +* +* Revision: +* +* 06-Feb-06 +* - first revision +* +******************************************************************/ + +#ifndef __CLOG_H +#define __CLOG_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define MAX_LOG_STRING 2048 + +/* Message masks and descriptions */ +#define SEV_UNKNOWN_S "Unknown" + +#define SEV_ERROR 1 +#define SEV_ERROR_S "Error" + +#define SEV_WARNING 2 +#define SEV_WARNING_S "Warning" + +#define SEV_INFO 4 +#define SEV_INFO_S "Info" + +#define SEV_DEBUG_L1 8 +#define SEV_DEBUG_L1_S "Debug (general)" + +#define SEV_DEBUG_L2 16 +#define SEV_DEBUG_L2_S "Debug (stack)" + +#define SEV_DEBUG_L3 32 +#define SEV_DEBUG_L3_S "Debug (application)" + +/* Low level debug messages like when printing out (important) function + * entry/leaving points */ +#define SEV_DEBUG_L4 64 +#define SEV_DEBUG_L4_S "Debug (low level L4)" + +/* Low level debug messages to be used e.g. when printing out less important + * function entry/leaving points */ +#define SEV_DEBUG_L5 128 +#define SEV_DEBUG_L5_S "Debug (low level L5)" + +/* Mask for all message types */ +#define SEV_ALL ( SEV_ERROR | SEV_WARNING | SEV_INFO | SEV_DEBUG_L1 | SEV_DEBUG_L2 | SEV_DEBUG_L3 | SEV_DEBUG_L4 | SEV_DEBUG_L5 ) + +/* Filename, line_n and unique build number can be used to give unique id tag + * to all messages. + */ +void cg_log_print(int severity, const char *file, int line_n, const char *function, const char *format, ...); +void cg_log_set_separator(char *s); + +/* Target defines a file or stdout/stderr, in future it may also + * contain special targets like network addresses etc. + */ +int cg_log_add_target(char *target, int severity_mask); +int cg_log_clear_targets(); + +/* Standard error handling */ +#if defined(__USE_ISOC99) +#define cg_log_error(format, ...) cg_log_print(SEV_ERROR, __FILE__, __LINE__, __PRETTY_FUNCTION__, format, __VA_ARGS__) +#elif defined(WIN32) || defined(WINCE) +void cg_log_error(const char *format, ...); +#else +#define cg_log_error(format...) cg_log_print(SEV_ERROR, __FILE__, __LINE__, __PRETTY_FUNCTION__, format) +#endif + +#if defined(__USE_ISOC99) +#define cg_log_warning(format, ...) cg_log_print(SEV_WARNING, __FILE__, __LINE__, __PRETTY_FUNCTION__, format, __VA_ARGS__) +#elif defined(WIN32) || defined(WINCE) +void cg_log_warning(const char *format, ...); +#else +#define cg_log_warning(format...) cg_log_print(SEV_WARNING, __FILE__, __LINE__, __PRETTY_FUNCTION__, format) +#endif + +#if defined(__USE_ISOC99) +#define cg_log_info(format, ...) cg_log_print(SEV_INFO, __FILE__, __LINE__, __PRETTY_FUNCTION__, format, __VA_ARGS__) +#elif defined(WIN32) || defined(WINCE) +void cg_log_info(const char *format, ...); +#else +#define cg_log_info(format...) cg_log_print(SEV_INFO, __FILE__, __LINE__, __PRETTY_FUNCTION__, format) +#endif + +/* General and low level debug */ +#ifdef CLOG_DEBUG +#if defined(__USE_ISOC99) +# define cg_log_debug(format, ...) cg_log_print(SEV_DEBUG_L1, __FILE__, __LINE__, __PRETTY_FUNCTION__, format, __VA_ARGS__) +# define cg_log_debug_l4(format, ...) cg_log_print(SEV_DEBUG_L4, __FILE__, __LINE__, __PRETTY_FUNCTION__, format, __VA_ARGS__) +# define cg_log_debug_l5(format, ...) cg_log_print(SEV_DEBUG_L5, __FILE__, __LINE__, __PRETTY_FUNCTION__, format, __VA_ARGS__) +#elif defined(WIN32) +void cg_log_debug(const char *format, ...); +void cg_log_debug_l4(const char *format, ...); +void cg_log_debug_l5(const char *format, ...); +#else +# define cg_log_debug(format...) cg_log_print(SEV_DEBUG_L1, __FILE__, __LINE__, __PRETTY_FUNCTION__, format) +# define cg_log_debug_l4(format...) cg_log_print(SEV_DEBUG_L4, __FILE__, __LINE__, __PRETTY_FUNCTION__, format) +# define cg_log_debug_l5(format...) cg_log_print(SEV_DEBUG_L5, __FILE__, __LINE__, __PRETTY_FUNCTION__, format) +#endif +#else +#if defined(__USE_ISOC99) +# define cg_log_debug(format, ...) +# define cg_log_debug_l4(format, ...) +# define cg_log_debug_l5(format, ...) +#elif defined(WIN32) || defined(WINCE) +void cg_log_debug(const char *format, ...); +void cg_log_debug_l4(const char *format, ...); +void cg_log_debug_l5(const char *format, ...); +#else +# define cg_log_debug(format...) +# define cg_log_debug_l4(format...) +# define cg_log_debug_l5(format...) +#endif +#endif + +/* Debug messages coming from stack */ +#ifdef CLOG_DEBUG_STACK +#if defined(__USE_ISOC99) +# define cg_log_debug_s(format, ...) cg_log_print(SEV_DEBUG_L2, __FILE__, __LINE__, __PRETTY_FUNCTION__, format, __VA_ARGS__) +#elif defined(WIN32) +void cg_log_debug_s(const char *format, ...); +#else +# define cg_log_debug_s(format...) cg_log_print(SEV_DEBUG_L2, __FILE__, __LINE__, __PRETTY_FUNCTION__, format) +#endif +#else +#if defined(__USE_ISOC99) +# define cg_log_debug_s(format, ...) +#elif defined(WIN32) || defined(WINCE) +void cg_log_debug_s(const char *format, ...); +#else +# define cg_log_debug_s(format...) +#endif +#endif + +/* Debug messages coming from application */ +#ifdef CLOG_DEBUG_APPLICATION +#if defined(__USE_ISOC99) +# define cg_log_debug_a(format...) cg_log_print(SEV_DEBUG_L3, __FILE__, __LINE__, __PRETTY_FUNCTION__, format, __VA_ARGS__) +#elif defined(WIN32) +void cg_log_debug_a(const char *format, ...); +#else +# define cg_log_debug_a(format...) cg_log_print(SEV_DEBUG_L3, __FILE__, __LINE__, __PRETTY_FUNCTION__, format) +#endif +#else +#if defined(__USE_ISOC99) +# define cg_log_debug_a(format, ...) +#elif defined(WIN32) || defined(WINCE) +void cg_log_debug_a(const char *format, ...); +#else +# define cg_log_debug_a(format...) +#endif +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* __CLOG_H */ diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/cmutex.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/cmutex.h new file mode 100644 index 0000000..962a677 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/cmutex.h @@ -0,0 +1,131 @@ +/****************************************************************** +* +* CyberUtil for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cmutex.h +* +* Revision: +* +* 01/17/05 +* - first revision +* +* 10/31/05 +* - Added comments to all functions and structs +* +******************************************************************/ + +#ifndef _CG_UTIL_CMUTEX_H_ +#define _CG_UTIL_CMUTEX_H_ + +#include + +#if defined(WIN32) && !defined(ITRON) +#include +#elif defined(BTRON) +#include +#elif defined(ITRON) +#include +#elif defined(TENGINE) && !defined(PROCESS_BASE) +#include +#elif defined(TENGINE) && defined(PROCESS_BASE) +#include +#else +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** + * Data Types + ****************************************/ + +/** + * \brief The generic wrapper struct for CyberLinkC's mutexes. + * + * This wrapper has been created to enable 100% code + * compatibility for different platforms (Linux, Win32 etc..) + */ +typedef struct _CgMutex { +#if defined(WIN32) && !defined(ITRON) + HANDLE mutexID; +#elif defined(BTRON) + WERR mutexID; +#elif defined(ITRON) + ER_ID mutexID; +#elif defined(TENGINE) && !defined(PROCESS_BASE) + ID mutexID; +#elif defined(TENGINE) && defined(PROCESS_BASE) + WERR mutexID; +#else + /** The mutex entity */ + pthread_mutex_t mutexID; +#endif +} CgMutex; + +#if defined(WITH_THREAD_LOCK_TRACE) && defined(__USE_ISOC99) +#include + +typedef struct _CgLockInfo +{ + struct _CgLockInfo *next; + pthread_t thread_id; + char *file, *function; + int line, mutex_id; +} CgLockInfo; +#endif + +/**************************************** + * Functions + ****************************************/ + +/** + * Create a new mutex + */ +CgMutex *cg_mutex_new(); + +/** + * Destroy a mutex + * + * \param mutex The mutex to destroy + */ +BOOL cg_mutex_delete(CgMutex *mutex); + +/** + * Acquire a mutex lock + * + * \param mutex Mutex to lock + */ + +#if defined(WITH_THREAD_LOCK_TRACE) && defined(__USE_ISOC99) +# define cg_mutex_lock(mutex) cg_mutex_lock_trace(__FILE__, __LINE__, __PRETTY_FUNCTION__, mutex) +#else + BOOL cg_mutex_lock(CgMutex *mutex); +#endif + +/** + * Release a locked mutex + * + * \param mutex Mutex to unlock + */ +#if defined(WITH_THREAD_LOCK_TRACE) && defined(__USE_ISOC99) +# define cg_mutex_unlock(mutex) cg_mutex_unlock_trace(__FILE__, __LINE__, __PRETTY_FUNCTION__, mutex) +#else + BOOL cg_mutex_unlock(CgMutex *mutex); +#endif + +#ifdef __cplusplus + +} /* extern "C" */ + +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/cstring.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/cstring.h new file mode 100644 index 0000000..f4cdb24 --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/cstring.h @@ -0,0 +1,172 @@ +/****************************************************************** +* +* CyberUtil for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cstring.h +* +* Revision: +* +* 01/25/05 +* - first revision +* 03/01/06 Theo Beisch +* - introduced LONGLONG macro +* - added cg_strtrimwhite() to trim all +* leading and trailing non-printable chars +* +******************************************************************/ + +#ifndef _CG_UTIL_CSTRING_H_ +#define _CG_UTIL_CSTRING_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#define CG_STRING_MEMORY_ALLOCATION_UNIT 64 + +/* UINT_MAX : 4294967295U */ +#define CG_STRING_INTEGER_BUFLEN 16 + + /* ULONG_MAX : 4294967295UL */ +#define CG_STRING_LONG_BUFLEN 32 + + /* ULLONG_MAX : 18446744073709551615ULL */ +#define CG_STRING_LONGLONG_BUFLEN 32 + +#define CG_STRING_FLOAT_BUFLEN 64 +#define CG_STRING_DOUBLE_BUFLEN 64 + +/**************************************** +* Function +****************************************/ + +char *cg_strdup(char *str); +int cg_strlen(char *str); +char *cg_strcpy(char *dest, char *src); +char *cg_strcat(char *dest, char *src); +int cg_strcmp(char *str1, char *str2); +int cg_strncmp(char *str1, char *str2, int nchars); +int cg_strcasecmp(char *str1, char *str2); +BOOL cg_streq(char *str1, char *str2); +BOOL cg_strcaseeq(char *str1, char *str2); +int cg_strchr(char *str, char *chars, int nchars); +int cg_strrchr(char *str, char *chars, int nchars); +int cg_strstr(char *haystack, char *needle); +char *cg_strtrimwhite(char *str); +char *cg_strtrim(char *str, char *delim, int ndelim); +char *cg_strltrim(char *str, char *delim, int ndelim); +char *cg_strrtrim(char *str, char *delim, int ndelim); +char *cg_int2str(int value, char *buf, int bufSize); +char *cg_long2str(long value, char *buf, int bufSize); +char *cg_float2str(float value, char *buf, int bufSize); +char *cg_double2str(double value, char *buf, int bufSize); +char *cg_strncpy(char *str1, char *str2, size_t cnt); +char *cg_strncat(char *str1, char *str2, size_t cnt); + +#if defined(CG_USE_INT64) +char *cg_longlong2str(CgInt64 value, char *buf, int bufSize); +#endif + +#define cg_str2int(value) (value ? atoi(value) : 0) +#define cg_str2long(value) (value ? atol(value) : 0) +#define cg_strhex2long(value) (value ? strtol(value, NULL, 16) : 0) +#define cg_strhex2ulong(value) (value ? strtoul(value, NULL, 16) : 0) +#define cg_str2float(value) ((float)(value ? atof(value) : 0.0)) +#define cg_str2double(value) (value ? atof(value) : 0.0) + +#if defined(CG_USE_INT64) +#if defined(__USE_ISOC99) || defined(HAVE_LONGLONG) +#define cg_str2longlong(value) (value ? atoll(value) : 0) +#define cg_strhex2longlong(value) (value ? strtoll(value, NULL, 16) : 0) +#define cg_strhex2ulonglong(value) (value ? strtoull(value, NULL, 16) : 0) +#elif (defined(WIN32) || defined(WINCE)) +#define cg_str2longlong(value) (value ? _atoi64(value) : 0) +#endif +#endif + +/**************************************** +* Data Type +****************************************/ + +typedef struct _CgString { + char *value; + int memSize; + int valueSize; +} CgString; + +typedef struct _CgStringTokenizer { + char *value; + char *delim; + int delimCnt; + int nextStartPos; + int lastPos; + char *currToken; + char *nextToken; + char repToken; + BOOL hasNextTokens; +} CgStringTokenizer; + +/**************************************** +* Function (StringTokenizer) +****************************************/ + +CgStringTokenizer *cg_string_tokenizer_new(char *str, char *delim); +void cg_string_tokenizer_delete(CgStringTokenizer *strToken); +BOOL cg_string_tokenizer_hasmoretoken(CgStringTokenizer *strToken); +char *cg_string_tokenizer_nexttoken(CgStringTokenizer *strToken); +char *cg_string_tokenizer_nextalltoken(CgStringTokenizer *strToken); + +void cg_string_tokenizer_print(CgStringTokenizer *strToken); + +/**************************************** +* Function (String) +****************************************/ + +CgString *cg_string_new(); +void cg_string_delete(CgString *str); +void cg_string_clear(CgString *str); + +void cg_string_setvalue(CgString *str, char *value); +void cg_string_setintvalue(CgString *str, int value); +void cg_string_setlongvalue(CgString *str, long value); +void cg_string_setfloatvalue(CgString *str, float value); +void cg_string_setdoublevalue(CgString *str, double value); +void cg_string_setnvalue(CgString *str, char *value, int len); +void cg_string_setpointervalue(CgString *str, char *value, int len); + +char *cg_string_getvalue(CgString *str); +#define cg_string_getintvalue(str) cg_str2int(cg_string_getvalue(str)) +#define cg_string_getlongvalue(str) cg_str2long(cg_string_getvalue(str)) +#define cg_string_getfloatvalue(str) cg_str2float(cg_string_getvalue(str)) +#define cg_string_getdoublevalue(str) cg_str2double(cg_string_getvalue(str)) + +int cg_string_length(CgString *str); + +char *cg_string_addvalue(CgString *str, char *value); +char *cg_string_naddvalue(CgString *str, char *value, int valueLen); +char *cg_string_addrepvalue(CgString *str, char *value, int repeatCnt); +char *cg_string_naddrepvalue(CgString *str, char *value, int valueLen, int repeatCnt); + +char *cg_string_replace(CgString *str, char *fromStr[], char *toStr[], int fromStrCnt); + +int cg_string_getmemorysize(CgString *str); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/cthread.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/cthread.h new file mode 100644 index 0000000..01e917d --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/cthread.h @@ -0,0 +1,298 @@ +/****************************************************************** +* +* CyberUtil for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cthread.h +* +* Revision: +* +* 02/07/05 +* - first revision +* +* 10/31/05 +* - Modified the thread struct to use the cg_list concept +* 02/13/06 Theo Beisch +* - added WINCE support +* 03/20/06 Theo Beisch +* - added thread->deletePending and thread->selfDelete (WINCE only) +* so that a thread can delete its own cg_thread context when truly +* finished (as cg_thread_stop is not reliable under WINCE) +* - added cg_threadlist_remove +* 06/13/07 Fabrice Fontaine Orange +* - Bug correction : Variable used to wait for thread termination by sleeping instead of joining. +* +******************************************************************/ + +#ifndef _CG_UTIL_CTHREAD_H_ +#define _CG_UTIL_CTHREAD_H_ + +#include +#include +#include + +#include +#if defined(WIN32) && !defined(ITRON) +#include +#elif defined(BTRON) +#include +#elif defined(ITRON) +#include +#elif defined(TENGINE) && !defined(PROCESS_BASE) +#include +#elif defined(TENGINE) && defined(PROCESS_BASE) +#include +#else +#include +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** + * Define + ****************************************/ + +#if defined (WINCE) +#define CG_THREAD_SHUTDOWN_ATTEMPTS 10 +#define CG_THREAD_MIN_SLEEP 1000 +/* ADD Fabrice Fontaine Orange 24/04/2007 */ +/* Bug correction : Variable used to wait for thread termination by sleeping */ +/* instead of joining */ +#else +#define CG_THREAD_MIN_SLEEP 1000 +/* ADD END Fabrice Fontaine Orange 24/04/2007 */ +#endif + +/**************************************** + * Data Type + ****************************************/ + +/** + * \brief The generic wrapper struct for CyberLinkC's threads. + * + * This wrapper has been created to enable 100% code + * compatibility between different platforms (Linux, Win32 etc..) + */ +typedef struct _CgThread { + BOOL headFlag; + struct _CgThread *prev; + struct _CgThread *next; + + /** Indicates whether this thread is ready to run */ + BOOL runnableFlag; +#if defined WINCE + /** serves as look ahead to have the thread manage its own delete(thread) on exit */ + BOOL isRunning; + BOOL deletePending; + CgSysTime sleep; +#endif //WINCE + +#if defined DEBUG + char friendlyName[32]; +#endif + +#if defined(WIN32) && !defined(ITRON) + HANDLE hThread; + DWORD threadID; +#elif defined(BTRON) + W taskID; +#elif defined(ITRON) + ER_ID taskID; +#elif defined(TENGINE) && !defined(PROCESS_BASE) + ID taskID; +#elif defined(TENGINE) && defined(PROCESS_BASE) + WERR taskID; +#else + + /** The POSIX thread handle */ + pthread_t pThread; + +#endif + + /** Thread's worker function */ + void (*action)(struct _CgThread *); + + /** Arbitrary data pointer */ + void *userData; +} CgThread, CgThreadList; + +/** + * Prototype for the threads' worker functions + */ +typedef void (*CG_THREAD_FUNC)(CgThread *); + +/**************************************** +* Function +****************************************/ + +/** + * Create a new thread + */ +CgThread *cg_thread_new(); + +/** + * Get a self reference to thread. + */ + +CgThread *cg_thread_self(); + +/** + * Stop and destroy a thread. + * + * \param thread Thread to destroy + */ +BOOL cg_thread_delete(CgThread *thread); + +/** + * Start a thread (must be created first with ch_thread_new()) + * + * \param thread Thread to start + */ +BOOL cg_thread_start(CgThread *thread); + +/** + * Stop a running thread. + * + * \param thread Thread to stop + */ +BOOL cg_thread_stop(CgThread *thread); + +/** + * Stop the running thread and signal the given CGCond. + */ +BOOL cg_thread_stop_with_cond(CgThread *thread, CgCond *cond); + +/** + * Restart a thread. Essentially calls cg_thread_stop() and cg_thread_start() + * + * \param thread Thread to restart + */ +BOOL cg_thread_restart(CgThread *thread); + +/** + * Check if a thread has been started + * + * \param thread Thread to check + */ +BOOL cg_thread_isrunnable(CgThread *thread); + +/** + * Set the thread's worker function. + * + * \param thread Thread struct + * \param actionFunc Function pointer to set as the worker function + */ +void cg_thread_setaction(CgThread *thread, CG_THREAD_FUNC actionFunc); + +/** + * Set the user data pointer + * + * \param thread Thread struct + * \param data Pointer to user data + */ +void cg_thread_setuserdata(CgThread *thread, void *data); + +/** + * Get the user data pointer + * + * \param thread Thread from which to get the pointer + */ +void *cg_thread_getuserdata(CgThread *thread); + +#if defined (WINCE) +void cg_thread_sleep(CgThread *thread); +void cg_thread_exit(DWORD exitCode); +#if defined DEBUG_MEM +void cg_thread_monitor(CgThread *thread); +#endif //DEBUG_MEM +#endif //WIN32_WCE + +#define cg_thread_next(thread) (CgThread *)cg_list_next((CgList *)thread) +#define cg_thread_remove(thread) cg_list_remove((CgList *)thread) + +/**************************************** +* Function (Thread List) +****************************************/ + +/** + * Create a new thread list + * + * \return Thread list + */ +CgThreadList *cg_threadlist_new(); + +/** + * Destroy a thread list + * + * \param threadList The thread list in question + */ +void cg_threadlist_delete(CgThreadList *threadList); + +/** + * Clear the contents of a thread list + * + * \param threadList Thread list in question + */ +#define cg_threadlist_clear(threadList) cg_list_clear((CgList *)threadList, (CG_LIST_DESTRUCTORFUNC)cg_thread_delete) + +/** + * Get the size of a thread list + * + * \param threadList The thread list in question + */ +#define cg_threadlist_size(threadList) cg_list_size((CgList *)threadList) + +/** + * Get the first actual item from a thread list to use as an iterator + * + * \param threadList The thread list in question + */ +#define cg_threadlist_gets(threadList) (CgThread *)cg_list_next((CgList *)threadList) + +/** + * Add a thread into a thread list + * + * \param threadList The thread list in question + * \param thread The thread to add to the list + */ +#define cg_threadlist_add(threadList, thread) cg_list_add((CgList *)threadList, (CgList *)thread) + +/** + * Remove a thread from thread list + * + * \param threadList The thread list in question + * \param thread The thread to be removed + */ +#define cg_threadlist_remove(thread) cg_list_remove((CgList *)thread) + +/** + + * Start all threads in the thread list + * + * \param threadList The thread list in question + */ +BOOL cg_threadlist_start(CgThreadList *threadList); + +/** + * Stop all threads in the thread list + * + * \param threadList The thread list in question + */ +BOOL cg_threadlist_stop(CgThreadList *threadList); + +#ifdef __cplusplus + +} /* extern "C" */ + +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/ctime.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/ctime.h new file mode 100644 index 0000000..83b928f --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/util/ctime.h @@ -0,0 +1,62 @@ +/****************************************************************** +* +* CyberUtil for C +* +* Copyright (C) Satoshi Konno 2005 +* +* File: ctime.h +* +* Revision: +* +* 02/07/05 +* - first revision +* +******************************************************************/ + +#ifndef _CG_UTIL_CTIME_H_ +#define _CG_UTIL_CTIME_H_ + +#include + +#if defined(BTRON) +#include +#include +#elif defined(ITRON) +#include +#else +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#if defined(BTRON) || defined(ITRON) +typedef long CgSysTime; +#else +typedef time_t CgSysTime; +#endif + +/**************************************** +* Function +****************************************/ + +float cg_random(); + +void cg_wait(CgSysTime mtime); +void cg_waitrandom(CgSysTime mtime); + +#define cg_sleep(val) cg_wait(val) +#define cg_sleeprandom(val) cg_waitrandom(val) + +CgSysTime cg_getcurrentsystemtime(); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/headers/cybergarage/xml/cxml.h b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/xml/cxml.h new file mode 100644 index 0000000..02eb2ef --- /dev/null +++ b/Audio-Frameworks/bin/cyberlink/headers/cybergarage/xml/cxml.h @@ -0,0 +1,208 @@ +/****************************************************************** +* +* CyberNet for C +* +* Copyright (C) Satoshi Konno 2005 +* +* Copyright (C) 2006-2007 Nokia Corporation. All rights reserved. +* +* This is licensed under BSD-style license, +* see file COPYING. +* +* File: cxml.h +* +* Revision: +* +* 02/07/05 +* - first revision +* 10/22/07 Aapo Makela +* - Added NULL check to cg_xml_node_getchildnode() macro +* +******************************************************************/ + +#ifndef _CG_XML_CXML_H_ +#define _CG_XML_CXML_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/**************************************** +* Define +****************************************/ + +#define CG_XML_INDENT_STRING " " +#define CG_XML_VERSION_HEADER "" +#define CG_XML_CONTENT_TYPE "text/xml; charset=\"utf-8\"" +#define CG_XML_CONTENT_LF "\n" + +typedef void (*CG_XML_NODE_USERDATA_DESTRUCTORFUNC)(void *); + +/**************************************** +* Data Type +****************************************/ + +typedef struct _CgXmlAttribute { + BOOL headFlag; + struct _CgXmlAttribute *prev; + struct _CgXmlAttribute *next; + CgString *name; + CgString *value; +} CgXmlAttribute, CgXmlAttributeList; + +typedef struct _CgXmlNode { + BOOL headFlag; + struct _CgXmlNode *prev; + struct _CgXmlNode *next; + CgString *name; + CgString *value; + struct _CgXmlAttribute *attrList; + struct _CgXmlNode *nodeList; + struct _CgXmlNode *parentNode; + void *userData; + CG_XML_NODE_USERDATA_DESTRUCTORFUNC userDataDestructorFunc; +} CgXmlNode, CgXmlNodeList; + +typedef struct _CgXmlParser { + BOOL parseResult; +} CgXmlParser; + +/**************************************** +* Function (AttribureList) +****************************************/ + +CgXmlAttributeList *cg_xml_attributelist_new(); +void cg_xml_attributelist_delete(CgXmlAttributeList *attrList); + +#define cg_xml_attributelist_clear(attrList) cg_list_clear((CgList *)attrList, (CG_LIST_DESTRUCTORFUNC)cg_xml_attribute_delete) +#define cg_xml_attributelist_size(attrList) cg_list_size((CgList *)attrList) +#define cg_xml_attributelist_gets(attrList) (CgXmlAttribute *)cg_list_next((CgList *)attrList) +#define cg_xml_attributelist_add(attrList, attr) cg_list_add((CgList *)attrList, (CgList *)attr) + +void cg_xml_attributelist_set(CgXmlAttributeList *attrList, char *name, char *value); +CgXmlAttribute *cg_xml_attributelist_get(CgXmlAttributeList *attrList, char *name); +char *cg_xml_attributelist_getvalue(CgXmlAttributeList *attrList, char *name); + +/**************************************** +* Function (Attributes) +****************************************/ + +CgXmlAttribute *cg_xml_attribute_new(); +void cg_xml_attribute_delete(CgXmlAttribute *attr); + +#define cg_xml_attribute_next(attr) (CgXmlAttribute *)cg_list_next((CgList *)attr) +#define cg_xml_attribute_remove(attr) cg_list_remove((CgList *)attr) + +void cg_xml_attribute_setname(CgXmlAttribute *attr, char *name); +char *cg_xml_attribute_getname(CgXmlAttribute *attr); +BOOL cg_xml_attribute_isname(CgXmlAttribute *attr, char *name); + +void cg_xml_attribute_setvalue(CgXmlAttribute *attr, char *value); +char *cg_xml_attribute_getvalue(CgXmlAttribute *attr); + +/**************************************** +* Function (NodeList) +****************************************/ + +CgXmlNodeList *cg_xml_nodelist_new(); +void cg_xml_nodelist_delete(CgXmlNodeList *nodeList); + +#define cg_xml_nodelist_clear(nodeList) cg_list_clear((CgList *)(nodeList), (CG_LIST_DESTRUCTORFUNC)cg_xml_node_delete) +#define cg_xml_nodelist_size(nodeList) cg_list_size((CgList *)(nodeList)) +#define cg_xml_nodelist_gets(nodeList) (CgXmlNode *)cg_list_next((CgList *)(nodeList)) +#define cg_xml_nodelist_add(nodeList, node) cg_list_add((CgList *)(nodeList), (CgList *)(node)) + +/* Deprecated : Use cg_xml_nodelist_getbyname */ +#define cg_xml_nodelist_get(nodeList, name) cg_xml_nodelist_getbyname(nodeList, name) +CgXmlNode *cg_xml_nodelist_getbyname(CgXmlNodeList *nodeList, char *name); +CgXmlNode *cg_xml_nodelist_getbyxpath(CgXmlNodeList *nodeList, char *xpath); + +/**************************************** +* Function (Node) +****************************************/ + +CgXmlNode *cg_xml_node_new(); +void cg_xml_node_delete(CgXmlNode *node); + +#define cg_xml_node_next(node) (CgXmlNode *)cg_list_next((CgList *)node) +#define cg_xml_node_remove(node) cg_list_remove((CgList *)node) + +#define cg_xml_node_setname(node, nodename) cg_string_setvalue(node->name, nodename) +#define cg_xml_node_getname(node) cg_string_getvalue(node->name) +#define cg_xml_node_isname(node, nodename) (cg_strcmp(cg_xml_node_getname(node), nodename) == 0 ? TRUE : FALSE) + +#define cg_xml_node_setvalue(node, nodevalue) cg_string_setvalue(node->value, nodevalue) +#define cg_xml_node_setintvalue(node, nodevalue) cg_string_setintvalue(node->value, nodevalue) +#define cg_xml_node_setlongvalue(node, nodevalue) cg_string_setlongvalue(node->value, nodevalue) +#define cg_xml_node_setnvalue(node, nodevalue, nodevaluelen) cg_string_setnvalue(node->value, nodevalue, nodevaluelen) +#define cg_xml_node_addvalue(node, nodevalue) cg_string_addvalue(node->value, nodevalue) +#define cg_xml_node_naddvalue(node, nodevalue, len) cg_string_naddvalue(node->value, nodevalue, len) +#define cg_xml_node_getvalue(node) cg_string_getvalue(node->value) +#define cg_xml_node_getintvalue(node) cg_string_getintvalue(node->value) +#define cg_xml_node_getlongvalue(node) cg_string_getlongvalue(node->value) + +#define cg_xml_node_setparentnode(node, pnode) (node->parentNode = pnode) +#define cg_xml_node_getparentnode(node) (node->parentNode) +CgXmlNode *cg_xml_node_getrootnode(CgXmlNode *node); + +#define cg_xml_node_getchildnodelist(node) (node->nodeList) +void cg_xml_node_addchildnode(CgXmlNode *node, CgXmlNode *cnode); +void cg_xml_node_setchildnode(CgXmlNode *node, char *name, char *value); +char *cg_xml_node_getchildnodevalue(CgXmlNode *node, char *name); +#define cg_xml_node_getchildnodeintvalue(node, name) cg_str2int(cg_xml_node_getchildnodevalue(node, name)) +#define cg_xml_node_getchildnodelongvalue(node, name) cg_str2long(cg_xml_node_getchildnodevalue(node, name)) + +#define cg_xml_node_setuserdata(node, data) (node->userData = data) +#define cg_xml_node_getuserdata(node) (node->userData) +#define cg_xml_node_setuserdatadestructor(node, func) (node->userDataDestructorFunc = func) + +#define cg_xml_node_getchildnodes(node) cg_xml_nodelist_gets(node->nodeList) +#define cg_xml_node_haschildnodes(node) ((cg_xml_node_getchildnodes(node) != NULL) ? TRUE : FALSE) +/* Deprecated : Use cg_xml_node_getchildnodebyname */ +#define cg_xml_node_getchildnode(node,name) ((node != NULL) ? cg_xml_nodelist_getbyname(node->nodeList,name) : NULL) +#define cg_xml_node_getchildnodebyname(node,name) ((node != NULL) ? cg_xml_nodelist_getbyname(node->nodeList,name) : NULL) +#define cg_xml_node_getchildnodebyxpath(node,xpath) ((node != NULL) ? cg_xml_nodelist_getbyxpath(node->nodeList,xpath) : NULL) + +/* Get childnode with some specific namespace prefix, or ignore namespace prefix. + If ns is NULL, name string must match completely */ +CgXmlNode *cg_xml_node_getchildnodewithnamespace(CgXmlNode *node, char *name, char *ns, BOOL ignoreNs); + +#define cg_xml_node_getattributes(node) cg_xml_attributelist_gets(node->attrList) +#define cg_xml_node_getattribute(node, name) cg_xml_attributelist_get(node->attrList,name) +#define cg_xml_node_addattribute(node, attr) cg_xml_attributelist_add(node->attrList,attr) +#define cg_xml_node_setattribute(node, name, value) cg_xml_attributelist_set(node->attrList,name,value) +#define cg_xml_node_getattributevalue(node, name) cg_xml_attributelist_getvalue(node->attrList, name) +void cg_xml_node_removeattribute(CgXmlNode *node, char *name); + +#define cg_xml_node_setnamespace(node, ns, value) cg_xml_node_setattribute(node, "xmlns:" ns , value) + +char *cg_xml_node_tostring(CgXmlNode *node, BOOL withChildNode, CgString *str); +void cg_xml_node_print(CgXmlNode *node); + +void cg_xml_node_copy(CgXmlNode *dstNode, CgXmlNode *srcNode); + +/**************************************** +* Function (Parser) +****************************************/ + +CgXmlParser *cg_xml_parser_new(); +void cg_xml_parser_delete(CgXmlParser *parser); +BOOL cg_xml_parse(CgXmlParser *parser, CgXmlNodeList *nodeList, char *data, int len); + +/**************************************** +* Function (Other) +****************************************/ + +char *cg_xml_escapechars(CgString *str); +char *cg_xml_unescapechars(CgString *str); + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/cyberlink/libCyberLink.a b/Audio-Frameworks/bin/cyberlink/libCyberLink.a new file mode 100644 index 0000000000000000000000000000000000000000..db307d91712517990384e83a1b2ed3b87b15a771 GIT binary patch literal 1087752 zcmdqK349gR*#~^)-aAQ1LI6RFhkXQn-PNI8nWDwNH(*uC@P|L7pYaN z)>@&~ip2_6TToC`YN@q~)~Xe2sr9v}Y*H1s%J=`D^UU0HmkIcOzwiBh?>jL0pJzGG zS?0`Ho;fqO_bKJgl{KTY`wkmAyf7L+hK(p1Sy(jk_!Ekv(UFD2Au!@$g@wl#fj4}3 z;fdr%qjR#$$_i$lJ8iF!7aco-SX7Q zCn*&joTtted{_8i2zCaadVK}EpQ_aMKjo=o1vADd)p=eg)f?%~S*q0JETtB{=&0eK zAG$-SGX%>8FBM!S_@Ll3z~!rydRuUxU?<1$j}<%(c-ON^%@Uj^xJ2+rg6jm|5d2iI zYskdU7d%DqEWx>giv{l#Tr2pp;2yz_VPkKw-~`~7BOFyDc#Ghpg0BgFCiuOG(LYh} zBH*aej=Dnd4#8gvJ}>yL;Fp43ToZ4o;1t0*g7XD`Ao!Tzp9Oab=4Kc>g9IlFmJ2Qr zyiM>C!QTn~Q}6(A-QAA*UZ%kU!P5n61#b|1P;i6b>w+H(c0{|Py&;0-(#{qLE)!fS z_*=n03w|j0Ein>O-8&c@Avi^_O7I%N2LzuMM6*=O&sJ)rwEtGz7wb;WQ&$Nt7yOCf zV}j2KZWa8O;8%iKCmTD*2o4oI75K$@d8$OPTCi1ctmNZH(9!Gi)Q<%p7F;JdI!CF! zEg?0(6ZEbOtG|KX{#Z!eAoQqg+`ltJYP#TD!D|G6BKTXu*9AWk%!ED0?=3hFxb?1( zx?XUl;PZl?0-1hxuEE)$nZI{Bq8>(u)owv2&(J*tPZTT>tP{LS@Ls_u1YZ{XNYF)j zX}^!)aKU21^97F?WBRoRKyUd$SZxMw`dL_Q6a2Se=gx-TUvRwOxq@wicL3ko9#)SC zz99I%;8%j*>tghdLA|VbE~JJDjuk8wj0wJpcDZG2NbMIq64!(DLXqDn_!Gg$1UC!* zS@55N`vo&m|4jc#!9ju(1?LFP7ra*RZo##Je-xZ9?es#yd4lr=uM)gj@JE6x1^<9{ zyzcHiwO#O2LH88H|DIr>-~_?51sepf7Q9XH=YksqUl;sPFoN`%?!eKw?>l!=69wlA zE)iTQ_^jY+$@gysHw$hRd`EDH;HQEP;&Xh>73?nf4)Fc~oz!kY_cTKvB{)d%RKaP2 z6@rTdZxp;o@NwYvXLnLB3jR%SpWtUlqx?>mIuY%1jEbld!Dhj`1&`@v^hOIlBK$uJ z?gKv5FQPhPZbFoNF^7AysBpAu1*2;L<4bHSOgzjtt!S|s?e;H!cM z1cw}B^v)8TFL=M;E5LRFBM!R_$R?H1&8!jDt~>JI#+O+;O_*#7JLTvwj>r& z9}6CFILi5XL}hg~{1JlZ3SJ>N>Ik&=3taU}q5mlOv0z3w6F(|=hTwd`(UQ&_!JiBN zIl*@YzwgNfzZCu!p+6F=ko?pfr&QBnIqDA3_pf%=kcM1HB@t%8pW9tXWi=VYp4!Iy=@m#9OMvUjbJb$O)q;D)PA}-w zei-@58kM8^2u={J6#Ty6Vricrz)s<%xhgc=U@zc9Kgd--Mg4s7w@mf8;0wU}_hhQS z3;s~zZ$|m<`bmy@NANSjoC2k~KboWR1qb%WIDJzGHA%2qaH(MBK=czcven%}uN8bv z@Dss~1B{))f>Qw1A@mMYvNB9Y!JLbaJAr#lAo1=8wH;g`9B4-@{PSg zg3|>54*mPD%T@)znxWZhvS5Vc$(C$2K(JBtZxeh%@GpY<1oIG|_4f;@_Y-lQmOq%Q zW(&3n-X{1VaLoE#6&Yc$m*7c)=L%jXc)Q@Eg4dpa_H=VcwL);C;2VN_1rHx(^a=$h z1J^v!QPm3GAo!r*X2A~y^G-DSLj)g@{J$hP1^i9#c2x5OUq=4cyq~K+63i_!bbrCq z1!KU@m>ez@{JEer68%Qsj;f#FB*9w2n*`ShzAgA4!DEic{W!a$Di&-I{Gs4_!M_XU zqMoRKqTn3CXCy!G30BHH<0`?`g0BmnhH?A)FS1ljaF6hhLVMu+@qN%3vkn;{I1U)S zrjt5fuuX8e;3~mq1pg}dDR9j_om7{x29Fb*ELbIY1@NuMI;n?%Te0YQPVjZX9fFzT zjJ!bbbivtz^8~LKTq(E?7(LKQZ58}jFmt@&PXx|BuCwY1tU02y8ZLMn(q+D8gD$I_ zTUOKB+EmukTHe~$QrTD)8{Ql%Z)t33s%b87iNzJ>##*b&TP;RSth_4LTvipUi=|;h zy`j85RUQ2K<#lbTf`-_Fcw%C^CBO*yX^qs?wzLLhNQ;noavB~#*j}29=}5>#+*nh2 z<-AyHS!G?Uydf>OIhEVkv?zs{T$^GS88=l@+t3=D8%s6jE7UbM%uTWCOIvC$wQ4@u zcv2mRxVE7-wV(-=B8p9oEvbr4&B$^}hS0>S(lW~`8mm%kh3aLMHEj*^(nm6N(~=^@ zC2GIge1){t=1bF848@5>jy1QS1;!d$D;pacVwJ76jSad<*w-taPRdnJr0{ zU8!^`b&ZvF9i~%BytL^wn%e9unogswAu*xm*d=W-+?(Z9RjrL}EwSeExu~W1_44Gr zf2_*#*$KCb$4#y^kB^F~=cTb)m?dgK4cK?CC2DJ~P0bRlwUc2;=d%JDt-Ic{m{5@( zGw~*|xn=d`wP~y{f^Pb;D)hhQsTs5s5^rzYcyQFZa=MmU!!XT--}R*9@YdYX(u;Yes%>BZD-}H8aIbzFocImsKV;K~Ya_gCan~NI#DH z7NL>8`r;OXvzgSkBuY|e>nD|5=c0~^I7l9$(QY2oRVB+6Yev=+$A7~^{WjW-Nw~?? zDC~q%3a_y#X5A&iL_Rns#~SRR(UY~7H(One&uwgqw^_r~!+P2bYDxM`YEhbuYJR%R zYC$_0_T+5AiMOqlOI(%ILYbJYQZRGVl+nc8=JNV78KwP(93Zz!8KB`6wgD3!&PST7 z%PV7LmG!1R6S;3lIjR zL`hOgC=6!;er3eV)PmV@rA|gSwuEfy%N0~XS_r!V(IBa;DQ}n?iznr$uA|yThH`Dw z{NpjZZ;I8LQBh~4h1`@XXhFlXnbHc%D=TA7COg8ZsBJLDgw~VaHq#1xmUp*%3^Os( zr4p7^1H!3osc39Vw0&`7ZNuE=#zgBZsB{Jr(<`-*e!pkYb+rv<3heVL=iAw7i8Wx3 zlE`V5T9YVf0rhQlt+kaHI$K-ol60G6=_?SiT5IcLjWT)iY|X1ps4;zGCl<4{k-EGj zGCz>0HorO{#|xTkWl6^Cj3Lq*);x|??H()EQd!=FX&TZoYY0z(288)r^P;L+J*O>i zj^CR!4zY~mx+<(#ZA}eL6<9_#mABR;%i@!2FG6igd0i7)bz42!wwVUTMVLX>B8oR{ zv;;cW>0)R>RhshDwxHwT7*&-fT3bV)&}&{^;?1#&w%WS*9mUGPWlk+wTSMBqMa8k- zXlpiYh-Sg6Z>*}Vu8lR@qL#+;rm{-3=hj%PVScO*cQRK>4Op*B^Ml-*OvPu>I-19} zu6P0;Ne0{UikuLmsl2%*R*$|L)A-cn{V8rj9MlU|MO+-E#(<1Y2)hwUT$!n)lt}og zMG`?knM9gYDB-5hVO(gkXlPvqw(hcWv&^${VzZHt^5(g1^(c15B7Z;$(9rEBK+Vgt z9Tgcisr$_!St?1lV>o#bvMeNwBZe>bY#&RaATgVwo<0p*h-$KG)RqJrMCs#k*tD7( z>zXi3=v8J_Y<_KJtYT41OI4GZ_yp)CU$+E9$d+d)wh&d_x~R#tcU|Zp)kD*2t1{Er zw5DS7(O_EIDk{tC>MGz`@_L9=<=Q4Q4=|lj8hJ}|TSJ4_p{L6Ib$Y5Oq3RO~tMC7o zN_L^B<(A5(pwx|`s8u&Mo7xPx6wR^vMs&%CdgU-n!Ir-OTk-jEYPnjx8FH$~@>`?| zV+)&Vo6G6c!5CFlCrgb~Jq#ah6)ly`wG}~)#nQk94l2SyjQEKJn`mqBl>!p6G!o31 ztH9Byy0#g!EK~GYm0a=wYgQ-T9IK4g;%WwHwl!g0f~f}nw3b)Y#j2Yd>zkS}sx`No zxrMG)$pxl9wP=5FQy#ye0rSL4tCo`lw3-sDViEd<)HsHnHb#8(v2&H&bHuBxyrQMC zuB|o3OefsAmWm!VlKc9&+=MC?RpIVxu5DtY^E@4P9@_7qQq3iHO{wyPPAM)%C!yPY zKw%mhTWhP4Rdxn4yeDPS)?gkEO{=XX^_ru^wy^+}=Eg?pxl=Ab3`ircSR|cVK(Tx^ zuQxuZUg{VTuS4G&yUT-F5@lI-BvoeI(m~`wSG%Pi_d0IAv^N#&$C6hps>h-w&=POp z`Q^>EyoUo?bD9xKY6a8qoO{~5=T^sOhv?pt8PPvP{XtsaTu8Z<2NLp*r(943`h^3S?+DpA8D2P+c zP9<@)s>NMyjaFgZWa*Ankseh(6SME5t4`F05#kWV$^#&tqX8aZEvC7o_0dr23YhL$L$&NyP$(sCN#NHwpY&S z4a+k2V3jXw2dzxe^J~-VO%r>>lsbqnG#Zpmk4t%jw%TQj-JVT6M?dzZX!u5ZEvB+&NQy9gl3YYgjJbYOL#d*UoDBT zg4%eZ777ZZiJlv;SqEtzO6qA_YofvQT}7hK!S4T5ZF|NRzoyAWk~<)vyYQ@v*1>90 z)bzcK;S{Sj@mi+6rpelIZ)$t$?bfH5Z1?6*DwAKaCT_f@WcJOi4F2NU>d1VttW6Ua zl%6!*V$+i))w#z`u4IpoS~UY&^7K1JfunY6IsEw6Xm3T8hLJFrw!~@Y$ka|IH($PhESVQa5kP}wYvgc2g<#s#q|-DB&zNsuPo zFsY{Pfr;~rWMfug5>#tj%0#s+X{bm{u${cHv$t&~4p0fA#OHhFg4t1h`GQ)^3ERY3 z70a86!+HP%21AL-*8ko>%ThlO+fwmTGQNre3>uIN-Iml8*4-+M! zPIO=G-KzTXVT_CCJXM@*G*#mu_LG}A7g%Czf4@BLPq@NqwAgvrjUc^>z4JsDBaIsN zlhjtpR_gd3kYH`GdB`!W)iP?-E^54r(qzkurZ2^RC*r|s$V%f-YRXdgAE4=Lc94R^ z*C7YbP+a#=aujcN;@0Lkrpqbzs`5if?02WELYX);dI_O`fLZ!e_3-8@y~ z?e|TQq;z2{p%}!?SYN)-+ZB@%70&E552kc!#6V(KV_A-G?M<L!JPs9waLIlca8hCG{F*>XgJ5wwE!vGt%TNe$NDEO;iq&H!~fxHY@v; z?q^?A($}t^5zgw$+RLd{@V5yECS!Tj{7ufm$_b9Ogi4oO<6e~Q!+}N;cS)o%qQ|iK zZs{OH=|@TXTAMtj4v9f&9<;W!sYLHtkS(@i%=8Xgr`jZx6E4G=$vBfq!K0ZwX?K%IUs3I>KW8k?=3Gi z5qEoP5_#2`)Pxz{@UnrFR5NSwR+4mLnr?_Kw4#tItE_FVY^#&4#6}5gG{>6a7b(t8;l(Rml&rf^I4D&;Hs&?Mfhq5f#sw+%uswUO z?DQ6`hJf6VpAy|GnZ!jY>hNlbZU@3boneP(N<`l2c=0tIzabq{?-NBg>%WN{Hy`I! zHMU__3q2}22i0|r<*h!2T=-!o?GsSPdjT=;br>OImw2VXPAWfGV=Plg-kxDlUJFLB z%6kz2eS~iSb?h0ybHG}&!41j{mgNS^UV~*28z%iEo9)Pm?-{k(3@@nhUM7GNHjX zs6Yp1S9YQRN%#*^QzY^GE>Q$8sJBxiQQ(y@k&B8C(1#=-jpS-fu&9N|xxSETCGA;F zn@LmgmPzw+2;W69V+E7(UKvT`(ksXgzOn}Io%k+7>T8Mra-Yw!T8Gc$rS{?{W?mby z#cXw~&lapt%`IVD;c7ND6Ly)k!T9ayM>gZB-)8*E)%v(ne*O|A3ClLmSh~wcJKmME zp5Y}#K{+cHE%aYaN|4!Q(9g>fIy_WS(Jf4QA5AvBAn*vdAL#~&?9C-&J#g>l$BwY z(JBO>tgLk6?9w>R(EN~z4^VaZ?$iThM${4l4`ZXUu^bJLrjl(iK93i&40?Za@ToH| zT*mGU5720ZyzgMcGl4iwwUsT4>MI)S@E%n~(V^P#vej9qI}=YsYAes+^zu981FB1? z&!Y^zUPaqnOfB&yo~9?9Gj>KXgZf~742i_+z6~5Z1iD6z|q{%p!GM!MtymuE>3bjzKae0wj~ltXXEEqKHl$b z+A~-w`M~s7XEWKx?@^Y?kbEysi`7opkg7?s(bQJK2fZ!HHoBl89ERxSV#8R{e^YF5 zj>IF`Mqk(%jr*|W5Nyb0NwHBb*JEv0orL|z&IdmL;UCDy*wV2+soJsOE6F`)(TVpy zZQOtq)8xa7Q{L267c0}_0=UWb@lhwGs?gR?I>JPm+D9qrUaYbh8;ung>x-LgV|q8G z`XTy#_{Lt+kz&IepOS4fi;d?F!G>-eNGRFHov=|2{s&@XCo+Yi@v!n??)_@KWgmke z*~T}p5e0uL`cX#8?VsA#$?uM{8)W!wmdZU=sl`YL{iQ0w$pfEP)29QZ&VT1{ihn<_ z^E+ccpH@;eaMM0~cX2}2Gfk(*29DW#>{VkvA6H^{O{cH@?9MB*-(K;_7L}2&_8ocE z-*>3JBThVR;*_(_QENZ@>dM}4ul;Pxm3eQk`0UQ6OlV|5qx0UWYKEGvE>czMVwK@E zsTH4XY3c&$mrEFbZhgz5E5Co!4}SEMpRIcIiKm|Z{hwBR_EnP$`G;Em{2yNV%eH@v z`F!gbFBfAz|GgD{-U@HB!mnB3SFP}$t?-*x_#G?!o)xzFZ(ICrR`{=0czZzj9~S=u zEBw9{w$uI4;_tM=-&*0Ye`UseuB`Bvmd<~yuxsfYW`%oN;bX1v$yPYt3dVds)#8@~ zglAj)3$1XSA0CL7Y;Knb8!vk4DOTfs9APK)4gO|0;l6-K#C6%gGw=a7m8CM@0}RLM zba%t-pyI-=D${|*GbudM4PTrf45`ecAmrS_>EVX2NDyYK%#je@K;cnt_$ml9&jdrK z)6)&#kf43E%B+R(x70q`4d0d^%vPCKL-;y{z1;Ac1Yt*&`4b2~q3{?t{8WOllgj)p zgn2lfs2l!6g0Qp7d=-M@DD3Tq|C%7|qB1{*U=oFW-0(*ULRV$FsO}hreckXk3BnF4 z^B4%1QrOQ8hcIZx>oZqno(SPjDeUitb0N&cm&lFw05^POg7#r5vmU}fQTtdo+&4j( zqcX39@FNQI-SF`=wZgMK&<&3x<0&w70SCF^Gs*Z17&>dmx#2lv@W%l(V=yi+867YM z)+r8g!>wS%GoPn2`$BjDVmJkE7+-K#nWuuGui8*Id?y*_fT2??bi)|W-eBPpFN#UH+VWj4>2>Qt8 zjUGA)Og9palIwJF`sa0Z!+A5D&KXDL{o_i^=|cTfIB#@L4u-?<0Cff?Ns)dkCx>6+ zcO8dxMsKi(g3c_0>KR>6$~ieFl#P58IN>}J$L5~V^|ai7UYXm)Im{UYNe35-l$_Bu zgqd}ACv8`)V1D#G+i||m>xj(j?6VmUodu6`%h2+sqD4dJVqx4?F?4KORc&Lmm?Qs! z#^!k~L&qIY(p))|r{>Is|95U|DA#;SnWbN)Ug~8i z-oz;I7Uj61jO<~q6E4^ndOsrdNui@k2>9?Xf@kFe@Xb;NCjibf!3MxW6I=$k%LMUP zA83`*HFJ5wV=O0k(aJh3AfmGIFqQG1i6$aIHQ9I=s6}gCxU( z+FQ}Ep!QZYEa=J=4GX$*MZ(d74MWDZVXrX0*#s}t{8;o1_>h|MzAZm0IlVDTi+p4|1D`Bv z^{EnU;J_PXK0S>eq+-WCzNV4i5{z)*scH8H+{F#D<|}*lvwZ zGv6AjQW)Bp(S?gtX{^4fu^HcZiq42t)nc<(s~T5c1p-_7u_ty`L%GTArO13q`650} z)6f@F^;FdLzE&HB~=zjH{O*%XmzJ7wll9xV*Lw+44+Gg!$G*(bC4o=u|$i z^#ns^%{as2&cb&ynotS2KGA8Ygz{)9UmXxDU}`r`6kAH8Ey!$3wSNCyO$NhsOR~}ysjUS#cP1W zSM+T2;Zc(fFTc1x^BNi#G^j~4$8vR`y}q1dc}_#}9EAywM&nV&>`Qa#6~)X*>vCd1 z@91GT={Y_UC+8XXkq^}eXFr?+aKcfcIPsu&VsF0#+djdWGw{H+eZX8`N1QJroCo|P zuoJK|&X*9rA$nljpMW<4Uk2U;d<8hE=YefEBfJ&iRSo^VJp=SDpkD<&8R2CJzlLyT z_XFFefc`VWSqM)>csXRnTW!j{a2L+qIQQV(j7oSN=leMMYi9TnE7c8W zKb%E4C*Ul_S%tF|=QTKQ$N2!x$8m1P`8v+`aej(3f|+nPoc(YX;p8uumEx?z*^2WT zoVVkA0O#X4H{*OA=leK6#TmiWs~gUKIE!#jz*&lus{mwA4TBC3&YDS27n;+2(oI5h z9YDHFXwLdcUnMjr{iJUbnhP}2pYsn6t^pXtk2C3m>owAuKptEYkY*Wpa1}uMRiU|@ zBi&u}xqc;m0{`IP>W;yIBIgp8bg9U>*kkY{k#hn}`Vx_I?Z@C0k#l)Zn$uezT-cIc z#y>c?9AvOY^!1tqG?!jH=mDVo4oxY=wJ+&k@(&KK9vNID@#!ES{UC)nxHKlcfq!st zamnC~qW>Pkq(|fAK_3F?=QV|LiT;m8pDPW@&lfq}3Z%CS&DA#Pzw!?bF1i?e4|aIa z(?I$^no^3(SJLamKAjDud+-kqu4WnhgUGpVP6$iF8*P0r)m5O$dc=GDx-HS9s_zNPA(sr2d*Fc0ddfsL{?v% z!eZ{2BS$%l*}HkUMNmKQY6z+IT)NhERBM}&jf+ES6=@tRNLN74weE$GSA)I?a?+HO zJ{xi_l<`vvYtI8c19H-olb#GYSJowvPX}ELIcdsCkA|E}amvSm#$B+AH07j+L(aAP zRLGA9T>v?0%1IA^oQwT&kPiag2XfMslkNdIy#psh-V5{*kdvmIbROh%Cmaj;VW6`i zCrvr&5ajel^n^SE^tX;$MVfNb=tb7kk#QL0U!m^zK~9=-(r`Dd*Ip3FcZ2=_a?+HO zeiw4OQ2vvv*1iY&ZOBPePWm;->2vuK@;5-g3^{4aNxuL&oiqyeUj+Re zNmEX`8ge?({sH;LperCJO*!fFAg9-DJLDIEJ{xk+y?ncpoc?FnsU;EAg4$1ZO98i4}hFB<)nK-PIu%xkoN)I z19H-olRgY``Z8I6M}W?QoHXU6Ga#oUl<~7chae|SIq9#IT2C+Pn~;AC=I0pjNK;OF zH{^7|;&=Sk?gRZ1EzxD`NN=BLQWdT3er)?=^FuLV~MeqXRg zaEjn9K$wV}EQp`q(R88UV8Q-^y#;#+9wErCmUcK!5^PeGTa87QF=YXp3G9y1=3rg6?I}t)TNPx(W2RhsDcZ z2YR z{VR(;1zpyM(%$&o9j@$^Z&-A9B+Yi+2bhN&jeXOp5@tU(Tf*$~S|rT=ahZhKm#&g9 z``yhFW*_}`39~={O2X{>4@ZJbi{k{!ufrTurbw9MPql%{)lOD%H+w;6GNC-VIOBep!%cSdfTr z{eW2X>j#R42a84oi;99pBZEc92Z`w256B_i`+=gs%+tXi7%MRIbnyqqIw43zCx1XJ zdieuIftjbDKQLBc=IQAVj1^e(^z{eE8Wk)$F;E0|e~>}=`vXP6wE>TRV65QUfX_cL zR&Z^=>mLw{ZvQ}0V7ch{4~!L9F1r2$V+EGWbN-|A!G7N1h0*wNu>HJ6qfR*9Xv=+54Nwj9UGnrN$z29K`UxElzjl)kB!3M7fFzFx-hPU`y^K=@FPy-$Q69rB^-c>S8p<(Us%UwmNy=X=KN zd-oFTq;;0oE}D=rDC4a$`{rnR(FEt?rOudrPq#uE+4^Dlmy0Jn^+`^rENF~w1}}8! zgwV$~g+ib7j7+TQ_(^Vur8OBfV`|6jt7(BWe9Mkd!u zh9B6!Vb7T2tTh{VsE&I#as^{b648~CxaV^{3g(19#b50CjJT1$2r~NFeKK97=bY<&Mz&7+Hipj0g1-`ctkPBJ@}3>A zng>NC9v!gQ2Z<%K>IE{J{SBk#EGECaH%f9k$lPN<@^G3v4ngod1UqISP_MZvkLBpZ zMWa(F8R(2lOf~r%0vL_`dO^Pe&Aoj&U$&G}HHFV*kQ$K>bs0;nEWjLL4x?Bk0 z64V)Z*fzl6(0N_?+=#Y9=ZE?#r|XR#c|oXe#OeA2kGwF{H_PdIw?|$S>YM9yUEz^s zp}w7+t`B+SoKW9xPS-UaSsv=!-RZi{BP&9Edpcb=d1Pg%Z`A2ZhZ^%7stWb(=XCuu zf~@aQEYugig1i>c2i@)GZS#wmZGNt|%`YQyn_p(&Hoq)un;!o z_-?@5qn%-0XJyRJITxLOM^_Egdj#{$9>Gp_V%Sj_g-+*qGD>wh0(%LKIk>I6Vh3VQ z4s9#dwWGf~aa8tj4lHbyXkGaGKfm8l@8*;J7A-?(a}!Ge#(<%+<)mfk1bmN)zctl7 zw4|=QmD^HUhSrwUVB5u+GYjx?wq{vcGbc=mD~v1{R?t#4Z)jUf^H6-;tF8@OWXujn zGa1&~9Qm4QL5=Py+}_#B)m=vTEo^zr2_Lr44Lut^Z?YSn;)cTgvu20KRlDK22%nl2 z4R;R}I@sZ9ZgJkP*!DU&2gdQXC6_>|wXv)oJDO_ni{tut=0Goq#pZdWc^{QKsqh*ycl;>6T^}U_^XT&C z1+@)jY%^u8N?`olnW9B`!!=eQg5)-(+moWEJ+>klm=+ zi}<_4AQuRGkzj2Lem{e@BKe??=jcuEY9Y9U$Ozdu&-Z)=P zK<4|m4373M99|Xe-vTTGf;h?l6Fq%eY5Y+}?|J?Am+qre% z^sjpLiXOG|*2R$DigP8-Cva}Txee!ToZfa14z_xs3=x7%f_HgWosi-fO%?~-en1?0 zI0kaAArU#%p%y0yqNT@gkQ~58ivvBiIBJTPsTLL|-M$6RQLe#>BG=d8`5ou^HJNHH zFJl$l-K24>AdRkXJ!ev*A)gMq7;@4$R**g(a!%-Kmc$46Dg3Ulo%Og_-JDW<0Tq1IIu8e4IPp*|F zfxg6|Cx9-u=rN$rvgn1Ne{XyME4V&s1^u{1;~K79VbOJvdS9#5O3ME z7&ci}onF^iQI74eI0F4>C!~Kb9=myy{AlJ|K%OTpogZy4@A;@H%k>PWIhLRva^a{U z@)qEU_NtFVc|X1anv9S8PTh>UW7|N#yM(~wV16{l=g}a}B17qQ;Sw)=Fh5#5Haru^ zNBe%XARDGxntS$OezYJP$b?mv_TP`EjW5u^y!zOQIt^Nn2l>&s$Ld+wsrE9DupE$> z!}rAn_|cByn1SP1bDtQ({7tbD{t_z6dOT)v;%UVi4 zcgjB&8~YEzMvxDz6YdkPo{o|mZ36sxLHAtHyX~EEpERK?J#oMCLeRe{m&(5`3~;P@ zU+mKtMxP0rLkUj%U|gQ5x3I01KD_)1=h1G_1N*<(6DgjsHmZGK2ljuuXZxH3`}ggM zmPd=1Z=_BHl8^RmuQ{;)gFVsO1N-0K6D{7jWBHf^``>+L6S&)+Q5xR_D#-sV_{uY% zBG;x^5rlZrx0*LAM)?f-61zCQ(kH3oG=T;VB{T2j-ecrQ_h;*NCs=61A?K` zGU*s|`y!m-WX?r6i_^>8aBYX9fem1UFQ!kY0~{#2^1}1z)9Jvy3A7TfqfbX=aIn=L zp!&>Jv@#9yZlO&bz5#I#&d{^k3bxRx3X;!hD_uSEd0OefOg>KOW_pHn4m9~YdWKX6 zvwA*MoEI`X0&HeXik9ORnGP3941!(uMxo%hZk!syR+2Ib8-O$BT=FZIy zcf8N-fWJ%Kkp8Q~s94jW2eI;031N&5vYF|F&94}zrz{m?t>X6SZjJ>{OOn z&-fA9F3nQM?<@h*018k>P@KY zq~zu6Ye`(Z$EVXxVq-Oxjty4ImZa)>oOj`T2`xc-;} z`WF_B`d|4Yi=GYoI*Z2jTDicY(cD(fwP@VrEB}KFLi=13w1WP~qMJa!Y0-6{H(PWK z=(QHj{N88L%=u@n9SE!qryzIV&vf0339Z79aKH$35H%>rYkkJ03DGG2i{?Z)xKLcJ!I) z4^rwcT>4+KHV;AkUkI>cTVL+f5v@;9ODs>Lx;bXP&1pyX1{o$S`u<4bJMiK|i5__@ zU4L{*)@{#-8IQ7Y(9bt28b1!UU+(zA6NejZZ@-*mjYapIeW>en{=P%`9_BUZkht%S z$fnPe*N(@b`1`g(&)YZ0eJ@zT;!aje2s{qv?_+!(QFGrJ0)LU6B_44we_uN`JQD}? z_XXK7x96ex`+{sB6INN;_xI68DP|&GeN>@BJDXB)exeWGR~PU-%zhZ9--Ko>2AQNI z)kc87?`w|qIHq90Njg$&1o`{Ei;WVsI@GJ3{ z+KsoHKJ0w7>+j2vc5%MgFwqnL9?aiI8>)$(Z0X$x3JLhh+QM8XU#l{AdCH0gTnmd7-{Nd|cRYal~2R%4F9d)df4n|29K`(Rw2 zsm(2}RRue8KgF2{**?R;;xkmy?Q^2qTd1B{{zRmB%;&qK*!QNKM;A_TYUo#tdkp^$ z-{6`ja*Lf}6~)%8N3)(;voWh!ZO@0+YkOR9XRT%Ur9CSD)2+P`dI6#Q;@z*V*~mS6 z)4qt@vb?xsF@2KT4rCOcz5c-d-|WdKjusCCXU(3%;(@@`z_G;_ei6B8}0Pp5f=fOeIEiaT7h1n^0mWw3~l>(!1qo9X$^<9!dry zA5hYZa?~q5gyNy(HYv|TiFdzz59N4->7g6|q#6x*D z!t_vbQN)?FcqqRIvVx@XQ1Nl1R1^&e;6-MCsW2` zc7Q|)UZi4+cr~fA6{lyuh2}GG8uKkQex7qdgtBuW^iCJ=6^ibBDtzTJ46WyTh+= zL&JaSjspFp8@jbo6O>vz%H+x_x3zZ#3l^3wuRVkrR2mMZc0!R{&5=wROEQ0Zimd-)& zQq3h(AMrS6#p9GvJR2wW1sXNu_HWfJKRw=myqDm;B|M~qzGX_U*Q~P$Mmh^2eNcKW zPV6lttkFRxsgLFOdmBzioqZR;#O10F1N*A$_p= zOmEM*^#5f)u-Bgd-#CNK@*BV9%BAK1kVAMXe?~ab&#SYM)-kLlSa_@Pw);L!Y^=f4 z8THrfX6>xgHo@t1bDN-km1H^^4qFi$uy=SqRc|_#D*_Gz^q10=NERC$!(2J-e&>1IG@G&I?jLL{0b+XxO!%QFsBBX>GI&j3;*?H>ZdvU z0E%XDdL&vLqNz0(r)cR34@k>7JYKZYxT9CaZE*%hTb73!l=j&M`jI*L@fu1L;XW44 zUU`&7vq79<(d_QJ<9rDxDzSb85b4Jr2WEqQ0Ei_^JsS|_{q^iiagpjxZ>_LPR__z6 zuLj~m)N_2u1C9oE1{ML4xB7e(iR+f#+4$}Zc&MjUq;aeu4PEVD=EcO4q@M5FBOeib ze@Wxvf?Wi6n|g|TB={S_#{_2zdj99{>UWmM0ues6#sA0&f_%nLTCRCSKg|Zs=^Odk zf}Guv)>9kczfmsII|X+L{#EcVf-eicDEO4%Zw1!~t`_`>;N5~|tW%L?LSHG!$uQHe z6RZ&|7raoALnHM#zb1|s^!)T}OXTyq5{C#56zn6&Hc2^`{X|}BVnh(2X|xTEXj5tB zv*EY?1sWiZ74!p?g8q?3mw>*`qNjphV9}F6&$Z}lK<7%k<63+P=r7UGX`eLikCh)- z^g_^ow&+&Sn=HBs^dlCH`dxXCMWdcqUT4uLk1i+jrO~U;e4)DwvST|QCw=ZwAnz}R zCji;z7+!}kg1*oF*AhkT(x@qzgv7xh&+C8D}03& ze!vRPvBF1M;bb4Z9&+_>I3@e(&1f0_tw_taZjaz}k84_fN->=;UduVI`^x@rRa#d0 zBignXz7n6*uB>lLn`2G@k{$EjFHz~#@DpJv3W(&}x6=*s=zG~VUj5|c{K-bLK&Ce6 z!{s?Z+V|!I_WKSWc0$ppC=c&B0Gwg-V*Vq5bpHQ^?6{+*eRO6x&2jTke1Q`(A_r`q zGK3zI|9=_cGCqa?6~)cLF%pijB?KM^^ZzqGk3LCGDs%@+v;cn&=KpWUhGzmc+TZUR zWFt!~a4bC7e%~M)h`L0~z()K2f7-Ya9k5p)J5Dxk9>ixA>%+4VwBNUTSA0_r+N*hk zCmyLb0{s8u;1}fa#!&{XzbQ6?{Quv@Mv(uXHux1)FCSlE5+nUxNx2JuhAkzymr|Nj@*;Fn2j55Y!||NkWnN^_9>9Ne!w z)|`>fSB)3S%8i_VlYP~L2O8NXu@TpdhYt4MJZ*67Nw(ov24n|&hHyD-%t3@Mg(ls? z$>xj6pnNl)ji5cle>=|1?=Kl{Y*>F&Yy>?+a0VM2cN~I^pl1mEVWTTjTrW17rkFW@ zVp-aMhA;|~ZZr?|5+-tf=0Qsrsf*^_`$5kTPJxXQwC$~8W64y1@#dRkfODFD)9}qx z;Epr#wPhrXK3A`*0RGVpA)d$joYX)RcI2K+5b_y9R@Ce}9=!Iz{x9}K=WyTgoH^Wa z%x4H@&+$&p-vK`NAxDaxN2AznynW9c{C(HogZ!3$=3r#6L1uO){|V0-mOnA>^QX^> z6ysTh6Rp8p{Ev1(%uUcyy^YqB&nR$ytDi}P9=&EwZn0b3xwy8tb00oK2o>ko@Cn32 zdm?MrAYW^q2t9heuM>sNJ-*JJd$P0+?cEA{OP)|QeBy8;o?h5b9Imoti<4w6ka^EI zmafSw?pC~{SQSj%S_nJUdrm4mu)l&&NQRuEIT!4426x$3GPu)LCqMJmar<7<-x|Po z2JUoj@49{5zRf~^{xAHT5adq^9f9oEzHYw%ErOywZ+!tL|GvBQHxC9CFPd;*|DZkj z#i2Fv=O}%iG1OlDEQa4txN41Bo?FaPcf(T{RWN$%xP9kbh8oWSUJA_qdcs!|Sb_-h zKJC|hwxdvMQT?3etKH-F9d}7oUm>RtQ{1;ZT6}J?gSy?ho3TFHy`*^EC#qBC)-j;o z+s&9`5qcMTXBCH__meTO5#{_lo<#AAhqS#HcdPrFkh>R<(w1^pOA2+_PB{=N z?zq+&6n@*0FEB7qCTyM>{qkvZJy_1G*Bo9P`r$1*!YT_|J&=QYcZc(*Y#X=l`&CFS zvUoy%G26;*$j5>G%XXi+7hCr8!>_Uo*P{%?Ysk%Z@^dtI@$RK4%Ypq1QKk|dw{x3qXR%6(w}MZ48q=jwW&t;>J*Zs)Fn#i4r+ z>@V3J%3t?RSjyym=VIxa9~S2otL25L-5$lx4-f1=Ww+}06fBR}IvZ`Eb05|3!2aR8 z-C}3Rplvlh59}X|{HcCSyU*4$_c~eGU$|qkKaMzqj$&DQ?T$=XJfC&XDqLD%!hv&a6Sj+rEgv#&f&Q*}hG;@=arz8e81DUCscN zKlN3^-{|vK?;5x7S)Y1vmy_S|RW*RMKd87bQk`)iV}i>6{GDHXGRi3|?zO!ZSMkhG zmsA|szkC<&(tgg6F56VU2A%RS#KHC7Rf4CKM(2uMgC{^Me~*qIEoN`hx+?^2-h+Mo zbT3Bk3X40Umb_N#*PYw3c--gP9hM^lwN_Zuvv_$id$^KaP3Ykc?4P>p%`dX<=M&LB z#WRuq-QTi(g||9Ud~w9xyU~-7GA+Ky?|*nl4@QlLqMO&M{%oiHcJV3ef&I~4rZx9O zt@EDjzAJx%do(58c!dV@iFq!RNKtBcG#mK3(K9zlM4Ic4v*w<5xS`>m0rv z{r}F0zDxG*baXm9ce0&*B-95xO<(+;=Dxd=cl-OVzJ;q=2WxL=t$086@`m_$v1O;q z|N7NA(AvCn+`bojo8Dp31TzAhxba%dsyXsujMalx;uGMfz?XMa#_El^T1R_KtS7)% zVJ7N~r#zg82t9DRkAw0E2cy2qz&jv#G@MzBa5n@)r)9lHb^*c}PSz5HJ4{3vkA}1J zf!Bdy9t~%Y0Lf_P(Qq~$U79qHhBI%5h|aT6eb#fdG8taG4A^JqAeS*?aj=!L8SfDTvUPgZD4_BY@UBmWP4K_+_v zf;!rZd_hKK9uN8!oX#J!E(GMx*5@)xNZ8UUHb@?kbu7XAl^jUAnjLE=N)U5|c zbNxM>h2MZYd=dgC)%VDI2RxlBS2@lH zR;tSxIi9Ng*hB_@OvR0Ke+1y*>pqUdy&by6pL3+vjyO#EE69&r&PEf_^;v-6k#`uH z^~B%Y2-79bs6FnXAX8W15(InbU%1H75q}8!D7H5~WLb^V8Rl3Qb_2xLg?)u&yuryY zY;@-@zc{Bbw@i*-+I1wir|8^%hG<7Vj6YD?fVR{NbsBzIRC{Q9r|I0B4nYrn%?!<# zb$hV4amHwQJ!z)ujCG!cp_@SWq;+Ss^CoC4ZQf$)<;=@!gz6}hyp-#_@Yh^SUdnY| zeovYo;6)@}u@6XhF*Iv30>^LoX))E~XbNJwCi_Crqd)0NXF)EW+L6|Iuhxc2N$av1 zx|y`jYn9IH_d&yT{3-K$gCp&X`3=#gY4s)7~vwfDkhAAQ?C76uV$~X$p0drcWWQD}0%@d_HJoGLO}`(Q!D=I1Zl~ z@Ta}KOm5VfycMb@lN)s=A0e$XxlxbuGe#hy$>X!y@CBsxg?UDop%L^^ywk6M&D&`AJ?Z`R{rx1w)_wRVkScs9)Cy1} z9gl>*?LV~RZBLB%Zyj#~RNugP)J|N+*Mx9BaqN!s2a~MsH3L3Hb3^IA_(+gQ{w>7R z$tHj36V03kQjZ#Zt6aymd*>OxvhJN@B;z;nLXhS-`dD7(tdLyhF|c(n z^C4|9E5x3M?<|L0XbU=A0i|L~{ zG>~XuI=LZJGgmR4e$c~l^vTTAQ6YWh9f$eZL0!qyQ94ijen)4Hrw%%jaQc3I{7q}_FIRm!w!jNV|coTWPLLYNF+EFzQd zv$gG>`j$OMm#L@jA7_Wyf|ZJLh8jhHQ!#J!G7~8WMh}&lg zu1^+QrR^+4(92UAo&dq)lI0Kpyd?gRl#PuMl6`8|nV)oM>iLc~k zIoVr4auONASMqY5Yz|&p8DGi696Iwt*wMeVRF}0D!Aurs7j&G9^epuo24BeHmrOfc z22sCoV|+f{q>~>EHd|o$5}o{TkW3)ltdl?4BU^OxlRUDO$!C{%aohNTzif^}+SGi0 z;4ixh9b{@5c+R4%I`n6{*7~sq6`ARN$oISL8$22x z-sAWA%y;-Q;xAEW+AmROnU|nswK>V#4N0s&)&IVY+2DF&<&r%D{xn{!C$aiR>no@JK14 zYkugshnNuZD67D@WqZb@=#t_V6S9hVOE7!9#8%8hdXc>W&v4~Ec6r9x?sm<}mPY*`w1&49eC6_`#AorP zMEzEK_i&%3?&176Vs*8fpB+BD+UhqSbT5Rn_jm?C|&Q!%OdT8RE{) z;qJiK@RzT^Kj{{Mx6~c_0Q4_;61zPQTj~zWt}~1ZGI}rNYx3Qy-4WS0xE;79bi_!5 zp>UVU?orjye-@0I0(V%rdw~gs!hN*pxa@Ebr1+)VX`0&sn?!5e%y3t{fgf`-uXZC- zK6NuU0yZG=53a~+4d3r%o#Hy5p+MJT&uR93ZupC9uNdxThZhvM$E` z>27A$scz0wOh5Ncci7c#_*1uIEi&PD9O6cXo}SeYtosq84j-TVDa!x7$!-C%lN-*) z_bK0UbFfwRO}E=rH+264ZXWi!zW(J?HEwvC>pb8N$=-zTSW++RJYI|NQ`ftlirmPj zZn(mY;78?G)(#np3fgh`lhC^-gq(Ee9gH$%6btmUwXy~5KF8}&T{)g9`Fd28@DmKuiQbcUygypIDsb z=Z-FqcN1-q^`2(=iSGcZ9USrN@V?LTGZAO`5kG>~Zf(ogBKfIdeGV{YeQ5-9zaBWP z>w>Vbe62XkPl??TkxzXv zjvoBfSp*a3?06iud0%mmjyr>36icbtq`7|mj{n2n^ov2o*RQ z&;-4#d<7|gz0Jx>A;@CQVlSYN#UPE1S#cYF>%7sI&Y)DgZ1gKUIxamYba~)ndY%vD zSqv*mH)-iv1nsg=mq%>zIxU_-sNzID-a|05b{DCc1c{6_qB*vJ_YzK|JO>d?WdCYy zhs3b_TH68EP90%(HX`)Ush#JUqjN<&SmKu`9~vcE>wHg(nV`1>iF!^GtGJY2s-qH)Q>6rB^E}Tc6g-=BHN6@x6r$toin@vJQfnj)0Ek08J0hdR%I$!uMk5`rn1pI=6$SIDZLn|+pl zt5f62M6CxvuGTDH%PNO=C72ykG{5DfDI)Wfbdh{_PyF5;1g!#H5Z_ju-iXrkv~(uHNK4~p{Of4t z#?FF?a2_MvuFd#ujvk>0HOucN=m~lqCoeqlJuRL^*r9{I=93_|YnET&=X{o*c}Dt1 zYn2ejV2OzqGZ`?)1ihS6ksco0GX$eJn~E1`Mc*RLbW4oe1Eh)I*9DzG^!A`l6Y6xZ zgm9zbdg;axKu?E*y9aLu#=pk6+q2FV=uh zhc|2U|NB0e7+@V$DJoQB|Bt>Zg-^rB_^o&I3Y1*O1j2hCN-~`E zCY5mY2Ue0axkJ0be{V_@&9?0%P3(v^+rJY(yd_b5DLzUcn~U}m6q{eJPZna^bUUVf zX@F^8u1))2#!r)hM(e#Z$#+v4UNf$*e6FS?IjdS$S<}`qFRi4av1(B|K{C(Ja|^%A zpOn?g#-6r0*-oN=PO;e+t@pI2;Xg$8jdqd7Nw@IiPTwLzh9fuzl z5Y*p=2OS&G(`}CYv*L@T|_7}qyYiwXXm>=e`v7v5}WZN_{o!hEdOY0=BHk&KGpk|vg zwt#CwAE5K&vdmjy>AnzuY(Cdk-Vs8d8^P(VlhX0ILh_FD`?p+pQvWLarUCzwLQqXQ zb7m=)|54R3Tgh*a3_-c(w$^|XJqZIi_6fIC$C`&sY`~9{)Z(@p&vqHB^1l`bN2A`r ziBUlxOp|Z$@n9J9LxrJ8@mUt<;MB{**$L-iIMq|5*8a==^tQi0Qn>cU>U%$#y}bV7 z<9;~d&9A3iSCn7$e(4SWD($$oV8mPdFI@ZVc(x)$Tyi^Av2 z0>rEpl)Bqgk>W-Y))605@g=9L#m-xj&WALHLqDVfu9tiahMe)ZGMNM0zYzOeEiivS z7d!WWAYIQtIP{(aAfHw6Fe@ee7=on3Ju3|IfjzefOoY9o!T6`x*E=O3-@wFie29~# z`;x$+w-o>%75i%-gc<#533=&C?-(HOZpgZ0D!@ZO{{`Yl67=z1-XdlCJd)cW-eS_jrix01a^#CH1#iv{n zkx#YA;&eEijoqF3XpZ?b514|iHLm&qp~j+ehNxCbt<zC7F#qI z5Q9LQ<${VW$x!R355%_<`lz+nKz3<{T16Vi3exj&4n}XpB?juLeh#n@$Zx!nKSuZ` z0Z~u&!-1&p`awXvW>en}coeWFuse`T9MngBHjsAsg^|9%&t0{i?>mgjS8KTx!eVI^ zY376U8#tN%OTgoSn*}!jna<-t+UL5DdS=b4V)H?xx?2T1Gmz;&21LErW97fT z4fdXey*1$B?p{TjdfkF}OTn9ucwW7d=H5ZJ|BHc)R{{Mg2>c!THQ-$UebP*a z^bDN+pf^?Y#|e%CvOI%;`hF394?zs;>raQBw*oOpgnzX$mlh)6l75br`xns!OkG0psP%Ejx>=~onZKjMvp-d%|I zAb9s89%;rSeLGI{zxCHZ?=S63Hf5st&o$ZoHT~k^+ljJ zLtY2E3Ubnvlg7xgp6{H!1o;J^OCgu{*jA99fO7!yF$&1`IULCPIRbbDFayZ@=PMXI z9QYBC^t*x_k)oit0C|7^O6UiGy+JP%`g$Py751@xflZk4vEO=nh*~=zyo<4Y*6YVe zSKvGjdb5G}&T2jTYS!;K;h!RWv@L%7rygZccui4%>z8z%(C9XGxq4%mL{TC~3x)*0 z%{Kg31pg@bxZoPWn+2~ItQ0I093@yJ_^%Ge?mq=z65Jwqzu>)sKNP%GaFk$?;La># zZ-?L-!PSC46a1-Qtsr--vD_C3&K4XdI7G0YU{vtSOcU=j!FvVo5( zI|P3q$muiwNAzwr;2gAT(iaHM6y)AB^6{#!#*+m(zat;_phiwXNl%vcS}b^);K_ns zd*=Q*>f#P&Cdl7UrycHeCe9J$PH56ze|Cn@ z;{>^Ur~Cv#?xZH&PcSNYq~PI#d4k-sP5rN>|MU7we%qG(or3=*_z%I?1YZ{Xz2NhL z8wA%0t`+1Ka@xI5@E*Y*3UbRi%C6<+~ZQzfSORLH)7-_^X7*dP(c?0W9@z73Aw7 zr0M1(a(zU+M35VINna#*p5XsO-J8HyRb6f4=iGZwax*Yb5fLvCG)zfAphz9UU}RDP zGN~vD5J)fyF$stR5&<5z1Nrw80#d{U`$)9}AAt3%-k&Ams z^F57Nt9Y?ux#9xFxr*m2aupHdjZ++}c&g&bibE8$6^~auR-nH<^nB-->hin!#I(vlwPig_dSv0dmiNz`#l_L zCZF$f#8VZy?2I(u=ZGgLc2nf?HS!~h9BU;!BEuQQWP#OYvdF&59cp*DL-^@j6AmuQ4CX6fagR zSG-X1JjKL*XrA)5XMXrj z(4SZ|%lB7{X8E4BXqNAH7R~Z)uxOU=Cl<}}U1rfN-$IMt0D785vwWj0n&r#3=$k7B{nW!xVdU>eU*%lo4+ZW(M#+B<{`b_+%-pE* z>~meE{5K#oR^!HiUz5bCexD9d%NV}9E;DfLO-9cSb6Sb`L+Kdai>}QVU}OVP()^_#s8J1A7hk3 zTIp6E;>HVg@=BtOM$3Sq*eUd_AL>>|J}F|VBG`1vX6p2z1S5u`(h5?oKBuXXM^$g8 z7X^weF1FFYv=`B-Rw6;F%I3xwHDWN!s73ROq6{L<>M4lk&mdyb@DD+HtqaR^BFQAC zEVU>a%;IT1I}k|-)S?7&gFF@0EG})9n?TIu1~O&MWLP{-V`5%WqB2Z=p%-hZ=9E^K zRxTaR**?Y9m_(DX6+MLP(=KzNq`;WvhUm+znlw{qnwsO3`GRvUsVc2$zSCBda_ebr z!m|@@GT}-}VN{bZ#sRftnBy|1#-EWG><^~e;{ljCRKB>XSQvh#Bt~6U^DV*Hp{$8S z6($#z$E#lJqsb+uJe-biHz_J@73Zbp{Q1{Z!U>XkGLz4EqW!jD7QxM7sI9I7>RWDm zqDQ8xSrvegylb{U8<_mOBIiLvk59I5&6r(4m4VAJ|JRuBt|x#w5x)m>pJOroja} zsI_E2bts+xQkBhQ`G4-p%8??4QQ>QN{;25qtn;KL%q2wFDmD zWpw<1W0QY9FRqK3cP%%5N$h-&o6&h~qx!m|?ul zbhKtawGwq%ia0wvnuykaGab0&NO0o0{VR0biF4bplNH-|o9SrHe(DukhUf56IN`8$ z9Myj6QFH_<=ggUlhi&{ww86^zg@0`X2}9iPUoxg|`&8_f3O#n_sHyo3l7so+$~C_% zvwNAjPzVfE`Z`*(pSrt)eD`-U_@dPGXr`kz`>CI(j#Ivaj@Im_wnw|*SXrU!_zGp| zZSrH~!(4N%**?ugo!)>rHJCucNa=loIu3Nu!z3mljPE9!GBNi6Ox!Q!y$~Shfaihd z2cN%!DT(lY=cDf7Q3p4k;by{WpBH*?IjrI3{+_l^oy?NL=`#_Nm&O^wz+dYUAN+8b%$g8<~`k+@w0O zFUP)q1Z!{l4c(KrZ$s%Rxz~(Nd6TvSYoG!7Z)9jR-`PiM5%S^;{P+d%aO0*mz(U#> zjXkpY0Mb9Nfjhm;YM_19+|s-=>cy&NK?9|^7u3+p>WV5$jkUvgzD6C4jcCjK zL?ih}#@+;tutA7CowbK4(?aP$*ed3qk zHWi(;kJbxm`_#)y`J3^#MO@gvgyq!6!zGPwj21Lwu<3brqlc87K}jzhBWZkD&yaR| z_KS_#&+D^`o;uQbL*wE4`b|as@{O+j^&ycR3q7V3Y(MieLk}YNusIsTx#bReMJ2~< zjv~E1^|6x4ht4Vb%b~`LY1?u)XxcvI`RtcpC~f4i`l1rbZm%yctlLqK`=+@FB5c~2 zPdL$P%g@3OL#hbzBB7yxBsU!KA{_7XIKp|NlXNn;14CnyIk13h#|e$0g_Yz1Acram z&Cxvgr+^n;7F`JMB6_DKT?QB!J~_EFkoWd*J|jEP$b)M$L_KZ)2munq;oJgr7s!|eVlEkT@Rwf0)XLn;2<|#?9%InVHtW^fZUv&a z6%5C%lli}eq9>&+2DGoE|2mj8+KJG2;M|!V)-b|#CIUF=oS)}zbfs3@_rPJZft-Bn z*vRwCGIU@?x*J)QQ{mbiz#j!W{)Fo8W+h$&R!5l`bI(qA?}BS5iQQ!qOaFo?eV{dW z1!Clpp(%a9l(xc|ls;fepOBPqYacLsF}OCXHC{(i{UKFP1FNIdgODy*c&u?QBdpWm zU^48XqS}0KXP%oG;1!a8hTEAne+B$9GjTi=c9Cyv(;46GBH!iaiN7mjmLP#E;oO;B z8L<}LwL-RRWhibaDC}FGfr-KK=ummS^_e8wT2OMLwVTd#8q0=IkT{=r#Kt? z=;rA9pX!{k#Y>CJ7FQNmMF-3NOq3v+V4 z=wL4&Qi!%_(ZWTrR1;3!?j5(oixzmtg)f`nMTdGB;dI!RiLF`aog7}WVD&(l>FKn- zWT4k`qn8oAV4>H4gO_m;5>L&B0h={m^vB-d=-NpLzlP!7kP@$R7{+2o?eH>gpLng; zr^L%x6<&xG!@U-G?MqjACzN>YOLllJ;--dSAIFshqsaS2Skd|Cs_^mf%$u;v!($+X zwzm_t^E4cm{}OhK7q@3~@D|CtA69S^`m?z@({llQdxdv2V7Bp^82F9>PrbyMLNIY= z#pBG1$KmZ?4$hf1f-@+{{(-eTJRKzOzg%kVAH1dBAYuiCyTm)~H-O#7y9Y3YH@vtl z0>-&kLZ=W+oEh;rGvaadn?^Wt&Ni^t)IT{)PcwGyX*{fQ06yAfcb z7clw*hPxf`nDIUV*k!yd!*j+<{VyBu8-RVrdjN3Ic#i>ZKL^obR(L zbGi1q;-VbftD4=euu?N;9wioHL}p=e4hJ1`=9!_#pj`IA-@Naayo38~^WnoeQjL!M zj~|N{_Uh7wPO$oTj#fI1nHAw1Ln~(hBS}S7my}jCJ2i=?DmV@P>6lkEuf*(L+1g5U z`6OV5a?6X$Wznlp;)^#Be-*7+M=WZ`as;HN6q~Ns6mhRDKa*sk*(f05rPb5GI%*pl zBfEAM1Qi%>UX$!yK;tzWAD=bbj0J|NP^q^$CgM1$U`P2miwp}o+-K8(z`o}xo?ez2fJr@l4^w$>* z7=C@1pYQ8YaQo-$dSCil+v6tlWndE=`^+!H@fq_uTm%XBfEx&R3Y@$_fY0yJJorw7 zpYu5XaIkO7y!1qP4jkvUaXuUmdDj8Hq_Wb32i-=)<=p`^=X>#BpP4~lL;e@=a6TOm zc@F`uP&w(FgT7qDkHF6)?uO&x*QF-gVqJb88ICDoxGWe`VzP3PpsauXIE>7G zHJ7;_cxCZEE^#g0U-KE4xW1jbc1*{juX{dm;n3sHKmUsNxZL%=-8Hw@OwWId%U!?z z@tZeu!__mt?Ai0d+cWy?fu48a4#B0MU_3`TaD4QC*JZA^LKZ)Hqs;{3kk>sR-}kx- z$LXz7eL$*|yk~=CqADe?^Z`L6BYON7DXu*gJ;gt2PviLMrT{0d3l5d$RWgh={?TNF@vl+uCahA>p zl;^F#%$3(Aud|lcxGq4Lf8CbA&%}JXHi72#cY+nZ6aL;7{T}>lE&2*%YnMf{&rtxH z-wDu%E3XCO9jv?x$TfLoK)fQAFTmQgosgUQjkB5S;O1g&8fk2QdY; zoB17`&73be8gis@+(FuOcbwvZ@S}Z~$AB1TE$<4%&}}(8Noeoo>^tFC%&`$7J458} z17eV)oHdVYqMZFP#@_-&J(aWbmH}jcj&j#x?HJRKb#gYd_qQ5r$Nc<|E`wwI5+L() zA&}{u4WzztK;n8V z5ZRNpXPBoXYtN1Wa%80k@CG2y$7dOP7O_h%Twg++mi2O_-)0NQ{Ao5025am(TyAgU(UI(Ws&`bJb+_+H8$OnpVDDG8! zNbv#1#5v2f|IGL|DqgF2jiNsn`5dJa=NP|*3^D%eiVrJpR{V+Lj}}dIyXgtLgc3jN2=nuE@7)M2&FxiD+I$oCw!>lKw#PUBx#P_bR@i_`KrNihKpa zFY8zi~d`4fc^fp!6q-Zz}#(@kK>m=ZyD9#U~XXRotq$N%1a4 zKHeDbM#XCtuTi{2v04$=zsTdd7c5e|KyilRRK+ohrz`S)!1RVH4pQu=*jthJ2gdz<9Ep2pufhA(5H8S{>Y+tf_}}SasD>$vS^&gjhiic z3+VM0T?hI)i@p!^GKr zOdRpU>(s)L&op)dl*W>5g3>XKq z{92D-Wm)6c95a(}UfJSmGf7b=%lRS+vsPQGR}KQOf`BwwhDl_2^{y!{mzQq_NJUi@ zmoHvwk`OwWKB;*^?56YTbQg0G_9p_iUPul!1Zf4+>r^+U?!|Stt|LCrRuWZm&RG~Z zE1rL5+2XlHWz}qSeFo>433V}ZeA|4xAt#+Q9MkS_`19?miZR|;?Qc;2U!7mahY;t- z5tETGI`o<4_%8G79>TzeKfjI^)Ok%`(Kc029zW>|i*BwQN zuLAiv`uw`qbVOAHZnw|@>v}b%^Tt<{){s4C&a^XTO;Z6tYdR2A>r46b+FF}mM;)a| z%&(7|^UQk(;^XdR4qr!W^XrbqOVu~H2VT^}j}c&V9j(l-JBAM%9Hs1pG(DQ>Xl;Jo z_tDYX{5tA5g7*9rx3<*xm$9a9twep+qprf_s4RYe59XcCP^S_pvKqH+WfkkbIhRA zd&8O)q?wM^=GSdi9ns<6uA{a2b#Fk&kC5U()p6U|W+5G%s`D$Ho(47)=3_cv_7|N9NGxv|pGhu#>BSyi$p@Ee%bHu}&j z0sV4=6YJS)U(v1)Q(Uu0xr4cH&tR@w9`GsPABrl^^!F`)tYHIYU2SiOA#7^{=gMu7 zS#l3GYyjthhS(zRE*{G_JJ8-E`-(@9(~XGd^m6)QZ)wEh4!-N4gNXTch;vgz@m$Wq ztA)nvkmgR{k2DXffaI?LGH;hF{}LeOxVQMu(#kXa{h%ZHUGg`SwneH7Wai!c1{bwf z*l@?9TJUB!8b%-5)hon#bf^=~HXAMFKCNL@ z{ywBQvSDRDYhZW-cbWF`Gal!BH)qdrqHkcsOCNA{-MRVPFFO;ut{#v}U1|Rw%iW@T zG~~)Y*BL<4oq?S1*B+7=^b$!qQ&I5E-r_{=ES@KFU&*f6N3iEKcMJc#enZJU$jgEH z(T6g7`Dghf?7W>T;qTS6jPJ<*TlG9kZ{Qy@?%EtceK#I{`7!Lh9?WaJ{|je%I`(F7 zJlwmn0(%v6PiLnJGc4=f{Bb=)Szo+_i9r2!9$Zs9`p~uxB~nAIpNC{`@CUF9xQkuD zQ)Is4CdAo$B@O2WNj_{l6r_27xKdpDOBC-Sgwe?PHy3C7Q zEmG|vRV(Gb0wM08GcoIM8Pa@f^WG!WPz5RKuc+sa=!>8y?Qf(P)Q{LqoExMyTeO@f z^)aJ<5$d!T%UI3b#W^!^G&Ys@Ycaom);7a?C*Yj|O>XSu&34Qo^=_;UYR=4K^xNTG zb?Ny}p}sTgQJeLVduy=|c2At8yIi|vb;fyYJlqjwA-2VS>cmv;P@auF)g9BePTlh{ za(Zrld+7M;QNp9~e$CCHar?c??zR0kRz4Iw$UBrF^ zJ9Rf6eqBPi+xpAc3;Z7!OKja&{<%+?gWdRNtK9Xe8_R66w|QHc`?~eh!TG$hw;=vz z-RItsed+H*TAW#WIc9}Y(_Nt1)@mPKobUF(3)d=U*g|V9c$}MiUESz|*Hx!7|KVMw zqYuu!ICMYHz~y5v9qZiW-k60w+MvZ5(~@?V?a`rn;|`?Rf$u zZjk(?qqG}JLJu|`&imBO--On6%BQ>si~z-1v_n7TonQ#4EMT^jeaHT~yvD;P?kHxj zQEu`P>Dx4&fr>E{%s`d5;c;Ul@Qcg>a?SqR^hRXM(FqKf{kP|W=h0FL9!Ros#yu~o zKs)S?R|VfV1k8qW&rezoQU*c12k<;1^Fjt(khC4-3Gnhr?uc|T+w^YuIjkQ#J*6!m znXmXsZVGdmdM5nXyE~1a0iFcI?A@I<3?!qOy}Q#mu|i0lbh;ZsQ@{(Ar+h;#=fU4O zv@?w#;O+w>^aoBUP2=ps|0F4Ucc;aCQugjn>kE<*Lb7+aucZ6~AQj0^evy%>G+&4pg*?erEfw?ofj2Z|2O#xU{0;O@OIxFI-szGC zKP)numnUhQ;*+B!4Sx8R(9x2{1fRrIYSgS>HgBxdEWbjC@ENSxG$|f6W9oDdH;vyc zB=pP>Hk?eG=ab_?eKOs&i$Ly%^TvnzWMMY(^YGsV7wVV758bKv!#@z)h6e3oZ_{@1 zSIPZVTDH*Zl6$|Xp}$G)gI4o~8J9V8z`4ENm>E|YKbEd6De1A7IU%@#O!W?Q*4l=05+TQHn9 zZ&PM9WElRAC9|3`&wvr$t|49<&rD|KCF=e-DFft5$ZryD8|A~}crU`o&^?s6Ht9`} z{5X(Aives$<}Sq0y_C4lWamyM^#K@d*_zxtd9%PbLLTi7Gk0|7f(;PPMh%*#s<&s=SZH}^lNno zMejxlOfhy)$yOG+T?wN+EBd7n&&HKL8&4{c>vWJA(yzG`aow-*FJD$>x~AG*qn1B0 zfexIx;l8JWd~Bq`VY_%E_#Oq{62UDL{7ePY!Qy>95d4gSpNZfL6#QBRJA>8T7W|rm z5u6&Q<9-UJvTSZAwqE$zfICS+Q(X$$eB8^yal5%9W%g`m%RnBwNR)08g`e!4u01Gv zg6r}Eab1eZ^p=@M@&u9W56Ld_MehX3Ek3F{U3iN?#Ji#7V$%6&f1vsN;0-A}P*ru4 z9A`;hb|Rn~FJ-r%DEb#^Udu}NM?t&sVpf{7aJo&V;z2Gi=u1Io%*6NIp&&Jwh;z(rJUw~16ZEV|WxvF*j8ueOi5S-~)+GD%zAxcdBb;GBW%yYdF6W>d5_OI_ z3E_O1bkDZW_&5op?p%hI*m|#L7;1PpYk0X|!?TbYCnvaC!^@?H`8nFu@N%h`r$|c; zFP9qTXKSac7y|n|Bz5e%)UpYDU(@FyHUxh7?jlwGd5DdKMk&H&D%$;A*5#qlkJ_P~ zFL#bDBKc*A=L}+~YcUOaBy>0Yr-IY1k^+ZAIp{AHkd|}xuh8kBUjd!L+tn5*=ZSSw z!{(}#o5nl@n@dA(Crd#(8N7GB3{m+y-d4rs^89fiE|=(SB7O$Mzl3;*rR=EUazCM& z6zj(J1jWOgKSi6P89bLHVvKiu*a*tG+%JMO^2{?Q`N>nl&9w9L?;rumPg~?fj;@6W za8C*AIbi*-BuCHYDPf+2UXbp>rw#;pT@3{t=52wZ-NiiX>EW@c!_e~f-Nh>3=x~9M zj=5S+3-i_X?BTR6TTUA#@|tPCiMuMn;*6>_^Ajt zmk$HCQ((Lb?3H{kqX4RoyXU#(ei>JT5>v2R#&VI}1=%iXNDP8^Bhsg!!?X-e(QZ=s z#ZvgLkm;5|!OAcjT0eM^2G6j&%1>h_C^5IEX{?eoXz;L0j8RvG+0UCyy04*`=3IEg zyELkl{Am!+QuCT7C8q^OCMp}l-{>d$G6ea6^-tc7lIWTsksGC8zhojbO+(S{gFv}A zhiA*#ikh?aA9A*yLx|+zJ;=V#JgjY!hiwRF9(dijcl&vuQobhmdAM8hFc_Z}Ou_G# zf=5Y9!S9wl@g#?7wwF;&CVnlMD2JeAA{zm@)O&xEOq_>sW-tg6TZ01MT$W{rf$5DFW_$5e*yF^|D?)J&0@*?mcNai4XiM$AG1<4y!co|;= zoaoKS*I&VNFHOnBb2 zq~oUVuO~~`u08B8M#J|-SraC!&pd1EcMM!7`Fq_b$CuBwxDL)!bYM8ye4Yvie!Z?MeY(8WJbES zB8oepwX;10Gps7Z`8tN=^rTs7?EG}ML{l;KF;4aX*(07rlSO;SrMc6gxMwyr`OE)~ z_ZKb3%%a6!vS<-W^!8UT$_5r8*$&|U{nEW=t5WqAZ?l>Vlbba{TmEq!*3n>}ma=z5?P{gfX>7}HGd%#Ccbm`b- zJvH2Yr8g4MCm{89+r#&H5DWkPG6bFFr3~;wgT17Q*j3&OVTe#3*f(h z#RTzZ!~Y*Ewuetx8D7Y3;@_9hTM-%#f8cEQ+J;lWp6In5s;#j0;S4@pP5OE)}UnJZ~<5M4MS;D!|z9=4C^nS;Pp=pe-WZs>Orr~ zA}{pXYA>zSON#dLPC#D6H(b8bOA7xpvfb-La;K0_Mo>o^y%T>4&MlX(4A)0iuJ)pn zk?scw4~K6Qr&E`+~*`S$QGFFX7Z z)<~vDpY__we)pl(UwFOlK*_ul5dm<*?f8%ODfQety`hMh{$tify3_^Y_3}cua|va+ z7n&4acX_tgG5m340vBQqOD#YuDGS1@E?*!1I+E@6jXvOoqP-C?1*JGE{MltI!#8@_ zw|j2%bnm3pp*Ta6aN^d7@9?r$qkg8KTx%~|;PnrGg2S>r!?1b^@%`5; z5yr>8B}JC>5aLonHz2Mn&YI$@XGdYB(M6~eFEcC07W{K)3MmoZ5pNK>>u9X$2$bXh zOR4vu@qIX}u{g@p zwkeC_IUKdOq&P>vXH!-Tq>P<81q8FQD5zkDaM$!$K_Cpi4dea7Ay`3TU*JOfMpU5q-vY9IDm2&95$xD5Adk*`YCbn zAVCL5TTF!W7{MgU3qy_@nnzd{M3~M9U&3KMsvlts$R3jM89u8!NTW8$c+e@0Um3xu zOiQfbVu?#l_0@9_hNCMu&4m5poplgkte?-a1s6%^6oL_)78eY1SBubVjG!NP1IV`M zGg~X2gF%;gQ{@oGX%n%f7m zr|1e=#Qq>+km~~hD`+R!xOtsox|RuGXAh83hp)^9{ANby#b7neT{&ZOK8j4#FJ zmpV{q7uQUmI$oY{pvGY_`#7@?F(Xo1`tJ_EjA{5(Gu_tV2iSmBT?rc^#SY)9842b~ zD;7@kji);NrU~}gpwlmT`ro&}KmN+|y(|g@tGYG5Ofxrg-6#D|Zt-4DQ@-;Zyp=g> zV8K~ZU0gM4A@_ghJKj`maE)d8HA||;a3whGIaDvMC@86dkp+2^yPG!~Nn#J>Am6-W-DvPSCFIikQ-|RwOS%l51F%!J% zQU`YX7M8ORTH%ImHNT6BFHLBWOk$0&tMmO6*-e+{ z`@)z{uO}i=o-^&aMgW_rw-CfCfB_1WGBFSn{A(7s9t^cS<%zMdW}uaPa5X_I`9M(X z2{EvRgpj^j7tvA{S_xqTz=D#}<~1R9q!Y^`27?osl!Rq!(>hxUG)51IFCD{0? ziYtu=7O&4nBq3ntyZPh=9EbPaudZPiDY{o?tzrWU6Ctiz7yUOVB2y^r3Rb6`{LH-~4fTDQ0Oj!@$lC40Ml zw0_uCqfhVo*)MN=_VDRbZ|u0@%3sWX_r*WuWgv4|a3kRO2FiELS~$M;@#Ste++Mf? zaO`Vj!VQHR3&(f3`EWIGv|_gbZVTLVaD2u21nw(1`Ot;vTrAH+_tJ76F<)#P&S60h zSGJsg6P|lgaAsKHPu`#z9Y1brgbTwTy&b9-Q&P z^T{uRuY>n8;?Kf~eG_i9>XunGkhxu3rhJJ6eYrLknWqGr`;hT?7HKn$@k&3eX&%77Lwg+AVPQ&K}>XZ~vL^(^g8a(Z73i%l@w~s(5<%U)KHh zg|B+fp8ZSb?djjpPRc(XyY@d1Kh)tD7fk-uca8eI;zQ7{ zUBB;1+E+OOy|nnjv8BOq9KM+ew+L=I9IvN4;U0l|2JQ{G1~^V{>;jhs_d~d|;fmmR zO>rV4MC3Z_3dHdfWpU1-vdjRN`D~^v`Ci$7&?8YWqsd#S8PRXwNG zDT|XgDaF~F%6b|VOBP=v)OHEyz>>8aPFc6AF22Dii!+2M#n%*NaYiaxd`(f-6lHP9 zPg9gnejxeHPg$HV%ZMEE(}*(13#_~0GU0Hn&=mP3b7J6IZeCt0AG~cw3$E|ZC5b?|TLOu$3v(kLCCw-05>^YEL1UwZu*K@X= zHPCV1<{s|g&GwvoN#nSKv>DEDipQyZp2~-@2YEhtBQ1H-!&R<75Y}uJNJ^NUeZs%(cTVcUv&p^$P(?Td>yb4kb7hH z0A2|_C5ZP9^sEH$GUy>qJ)|pDZV}{IpC3T30=xx~^Xr%Ng>aeBR{-n@oB+fcw{q^C zITkn)I21TUF$*{vbZ_8rV0R$fDF=gx0VBXOfZyOcWBkv7&2p2z4DN@JGh^;f@hs46Z@e$` z2A{ST*lzNGm`_ta68Hn)P+$(QKM>bzIr@^@3ZOT$zq6UozZlXX&2&ijfMdBk1KA$a zfqB3rAlu_tNOUytb0FpFfv{Opz906Tc->wAy`O;h4(vPm*D>k0RPI&9KPx`1_!#1| z9b*5#%};>074iLcNqURQ-3J_l^zH$&e0;`_0(G*+AU?%Gswl1$YV&_s{a-z}`SUtFnMyfun$YBodPp`5+~I z2*~=W2eRF~ugH7z5YR6x{hZ=1#qB`0+dAL`;5|UL-wijixj6Ro{gq90QK<70B7@5@Q}v6q;cFq8gV2Z+RQet<9!2iIPa{3dv$H_9i&kP zxjq<`_c7GDoS&Ftcg4<%=u9{<$RzH6;D_Ep<)NcHi~bzHS%vN{!Z~h z#j6#sQj96~P<#jdbf))~VvS;@;zY$W6|)ulD|S+Br}%!l(f5wxGm1|s{#5Z=#UjNE z6o)AeR!mh)QhXEd5zOyj756AUr+ACvjf%4sXDJR=9HdACLDa{tJMrCAgMU|CrdXqR zmg0ED_KN9>Va3K2qvr#~cNJe(d{yy5#osE{Dqf*DMe!`f&!a}~0mWw&pHf_*c)8-S zirp0djrSs!)89M(DW(6QSfV&z@i;|)@AZRdsEl8)_;W>n@AC?!7b(iLPRNf^x`(1n z1P1?p^h2ocUd8t#hJHtJmm>RTl-sC?{)EuCD02TxhF`9DiQ-H}-7_(A6RtDL{Z#Q% z#U+Y`inA5@d7Sc-6>;wp8qXfVp^E6c2t5_Tl)p{un=?X5|5%X|MoBMKBxWRgtq-N%vReY**6$`Q>C-(h)@(>?Hj!J&&AgOZt69&ZQ;&lHy+!cPnx( zF2f&Iv=gIZK@3 z*DG=sIq6FkIRl;a0!2<;Cw-10r?!*MQ{>cl(lXy1$XWBGyDM^5J?Uh{u;N#GJsnZ} zOp(*`DgTz@>xwTa{zY-O;x5I96}h&6@%es3T(9^uMXpUCpQED0Ws0SW#fmc&rz(z7 zJY8{w;!wrDid<4by&V<#K0~@uuXC=~AdUAKK`!(l{Z~aD>xw+B^b?A|Q{;jY%5PBA z@vF#Bl;-*rhF_-0^(>?pDss6CX}*ULxmt!eN|CE+NM|eZJ%n^0#p4w-6gw+=imu|9 z=zlZbA;ktoF8d)r(az;F%IAV2hVy-c$OT8lI~6%4oAeEe*DEepRvxB#d9Hc!lB;MJ{n;_*}&c6=y1*qc}-%oZ`uf!xXa> z`5r=jiS{$2%8w{=fQ)inF-Uwzk?#?tbqp)QHHxGkRm6LP(Dy2G%_M$--OHPlUZuD~ zu~HH52O@ugBG&`p7nz`#ulNH+E>guWlBpO|?4an|ujKmx<-Sz>Sn&hJy^1d@KCk$U z;&#PH6dzRlt>SHp>lA;ic(vkE#VW;ligOeT6elU-T~G3hcOk+4iYF*`Q|zRO%T(k5 zf@O*&it`l<75N^*`bbQ7obvI`CE*-{qFiFXBUAY?#U6?ois(K|Jah*H6Z41hw~e(q z2*mr&>VX)i23={<>7WZOItseLqA|X=afC%9k&T%a{S`i_b++guppRt7)B7Csev3W; zdap%)0(!Sa?+3lrqTd6($)fjxUTx8DfUdFVy`X1XG}_t5Nfx~abgo4|2fDLG?*<*Q z=v|;c85A$iPSATT`ccr2TJ%=X_gVB7(6?DM>!W}#lQ1J~A8%PS>*G%r&HC7C(X5ZVEt>UllSQ*WR#-Iaqs*drf?FR#-i^7{bg>vJexp&V9|Ghe%Yee>HUY}BD{V$)f) zS&A8oQN<%j8r}%%T@dvrh9X%inU^CN15rQU+cv15W9G-eQDzhLy{7)vkl{B(@;QFT z37+(G41Xokp#MGOf%kg)S$DruKCT02o$@PzEHhK_gC`P(d=8!i7~EACFqug`nYWG12;rP?nRVwR;}-@k=F+0y?{EB{Fr zpX0xN-n36Eao@D~RhB%*!F~Bx;PL&9Rvxr(Bzg)hd5jAN@_K!V%u4HAYkyq$Sr%XW z@4|o1s-IJ>Jao16$8F#GleEN6tYy%a6ISNv?&N{FTC?z}sS#O!!coA*3aUAn6&27L ziF3V*%9dDr+xtmdv%qMRRZ_OX;?u8M3f1XU&4PT3w7xPbH;g5W)7UC%}i&TlTd4VI^+A@8=dh+XABji z=4e+~W^b}~3|Gx8n`U5G{;5qkdx$R^KLz>Gbjg=l#PMqLb;nI3%N*f3WoGshHK@oX zRoG)Fem4E0pztO~n8SB*JUD2OGUYGGNWhL)L6ZxoHMXBh6X8I$=8&|QX_Z`?a@6>f zo#Ss&0Rbnb7uV*{`JB(>DRS{B7VzutEEN}iV1zz+4bYn-gOIClD2LH zT5~h4OvJ-cFw9M^G;@1fUV z_V>}zn*D9+I3Fqc`PkPt=#MtbM{D-Cr?$nkGW1I~b~a_%4;^faIGX8b&Hi>F>fs_p zsN>6H)1#RV-v4+c+TZ>YbbNun^|8k^RRF4)j@ImN??i{0uj1|T0iMU2er6vzcx@d= zwZDCUoo*a?s>4uC|G&-tHg&XVK}V1Yg!#6!TeH9YHFVUWot~xn*p0Gi^#*Eu9j)2l zz8?`Xk=ECInQVGA)6ts!?H5!>uj8940M$%KYxcLlfR5KumNQhx8VqXoFzPHFN4LMd z2NN3hAWp28Nw{P{Fo!PCK@aO_H^O=Y3o*{s9&HMjNqj*f{5;at>FE~Ucm1Qi*d8%s zfBUP=v~1hd{`Q8FQ3szWq77MEklo)f`SabC`wICF`@0RUSd4zFf!4NnedwvJZQ8Yd z3HGaveeG!e+l7sXpA%VQL7VosecRhR#Rm1GVtX4FxYfq?mcYh#U0`GTH%R+SN&8Er zeV3-aK`n0I)=*qTTiXuo)!qXA%)^bep%#{Tp1^V|Hne8CI_A9**1a?TOTA!?!!Ekncz8T|v`sZ%3)swo0Wo(1NkC z;v0dD?9k(!BW@ZTN3Ph8CR)vA2mEg6WBwl}Ur3D{VCEv5bgS`y2 zZFq*lxdW2YLCWFHgpbS#aPGk5xgaAqAgXsie0hGr6-iq`@}qzpQ4Y6xk(7HtaYQk6 zdTKjBlrvkC+*D>WZ9M!i<(obbxC;zp$~T=KSQyQi@=ZV8CygoJlxGlh4tSyRR1T4( z&4#~oXlFX-gWnH^G3A?n9LTLC#guP)Z=V!XzUe1|OocP1d?g1$K1Cx+P71TSh`~>% z&I7bb<0Leg@`b4jESqJ3nDR~M{zno|O!=ns(~^*4$~T=)c^1T&@=agshl(lR^gBUv z9=0*%n|_}!Y)tv4)PUXv=f0BqKA`PO^#2fMww6KTIyiS`JNZ=jL!QPv!EoAsOqq$0 zVfdddnTeG70~q1;8X~8ABZxYR6&O{sDdxeo<0)}x^Q7?PIno9w`2?k>80n>y9st)~ zq?fX&kgbKSl8e~Z4Eu1Thpxw@9w=)ifC?$WqcDUZ=AB{f=w>vTGo z!dJU2vg_`{|9kZLTCb*7j@vpNmQnDgxK=5*(JD1!vo$xmrugh8FKkx*^ zLdzpvr<2;uk{yRsx?Vu?!9}>~n=uGARV=4u21wJ2 zIBlqq(vKTysZcH$Fw#=h8>yOi7miJf@D)}w;D>6fk^GFRaqocW&2SR$dL`T^t$4ee z#`~MZ!&S2f9`{9@B39xNI8@|YEar=>$m8K__fbIBL%3T863pOteID+sR#W0#(<=6< zB;#$AQ<5Ez6P`HYoCoIz z%PBtr46E$?oa`LKXUS}MmcsecQrJmg7-=c&B9P&^Dk!BcQ^K`Ny*!8|rM>|qj$_z# z*j0NK&QC?kIUm`!TErzF9eG5xL5#@Av>X78q^G9>3vfLcBkAd#LGpqyM$*%d@kud~ zp56x}@A}3_dOGKMh_Eq|o^n3)$efU})Cb}19`TOl)33+lAaEU~{SNXl0vLY^iV?u{ z`C#)hGe!W@7pYcb1TekYC&dV0daX~25y12{eq1pEn0}K_iV?tcHWlW;7y(Sb8zk=u zY6LKa^WrdvA6>^(F%kLSXwZ+A{b+FFnz+ALj=< zZPkojT7qT2c5$Q{$tGb~VHUS$7(yyt zEfRU?W-RN8$v&~shnIt6Y%_b^eKUK<8Z&!6d^39vr{08&^(6P-ZQJ19@3IBMx!=q7 zLXIrT#j@y&a$w-DnTvEtp!%g%P;$?~x%t^`vnB1zy_iUhYCKZM>J8gWze=S>c?OkJ7;0K-h^(3I7t7 z+6IRI;m~&5FIUiZTlIo)zXjoovja6L;Wo71R=qO3ixvVqZVyG!kOrb1En7Ma<;~nuOR`E>)Fwx8yN|0~hJY*K zpq6m6c!LP+@~$_b1nK?8P1S5V8f!WN<@jz=><1^PXJ@ws*3)2H#pEODMPUWCN0vOL z;>Bbi_4TGw`#`?al*QiR`%PJ&fc(a=2oLbK5H}jc(61zP3c-Z(p)ChPzl4K1HG&D9 zB|-SZE0J1u3mOM!ix{ck42%Fv`hoGXkTfi|8adein+0dtlL~ry@rZ?xptB0l0&6KG z*ypqCp|!vYI)m}b*osI`NW^J`-Qo?(_83U^c&tVnk1(APo|e$yEHb`{5HuyS_KH-X zc26J`RN0FGD~L$es}eC#Pdy3h$>M9F)w=e9|Mymn;@?BHocfKn8Q*-MZ^q{L+h(S9RF(Bf zw552~hskEaO+T163r4CVW%@H=wzlbm3#M$2KowX?s3i^SnKbfTFnSKCkOX^u%QFf_biN28=<^(2G{wJ;5 zm{0a`t28L2ZZFy&dlP z*)QH6IdA^C4{bTP=8|KQe_n?;JK^~3-UoL8j*0hx%Y~Z+R|v-&;RZMvUw{ZFGP%uDw9NQv~;}o1Y$AiOIcoK*)6OPWj0LKZ1$0M8zaJX2G z3zc}t;1n>-L~;1%ON%S#jC|7m`T9OGZ4r;IGaL_OQ}oz|NqCN_pXH#RSz%G=XEs?D zo`1ZaNq*V@X{dw-NoaJ0hDvB?goa9Ju*5e~LSrN}LgE`Kp-~gIgLmN$!KENkwu2nF z(Qwn@O5iw9{8P9);I_bVlPz5+;&4=;E8^mi0bd}W(#o0*FMjgaRcjgYb`BO_&sA!O zO7Xou6AlN5G#HWN7%IgvGO{?Ptt^f{ki{pos^_pgS$ym(tFyB10ZY|$sDx5{_^T8P zMiv{svN%vr7B5CkF+*7#b5NF?0-l^QNN`ZV7qx?40~5n>k2mxAFI z%~NH^XJ6Z<_km_p@%6u#5dI11=dAFpC`+D2^Pa`{#12^F{5cTA6I>(D?}Fv~fGBf0 zzeSQ}XAc7$<ZzQKiF&31neN#@l(l>U@Hk)|ka8n|lw-3ZKTG+&ftZR?jwUYY zzJhdP;B~dqCC%Y5T%P6Tb;K!t9~qKzEAlOf`kz*OOz{yQ^R-Fo^*~(everEYycTp9 z;A+Jyfw**KtvmHC0L}O_fTTw&j#U0YrBA@xc77v&qN}sHKX|>dwq3uw-$9yf3hP|T zd5a;o2g1qP^?8y9DXPwTT?cCZ8WYh@87X z{rOn5r07WZ!||=1m#rQE8gxBA=hr zh`fIj*@q?au}`xY^1B6Tb|;8a6xqcf zeVQV>9i;hHmdLIMF+-8v6Vm*~OFX3Q`k>;wihoz+^OACW<`JJ#{Da~{iVrCMTJcWB zn-yTBcIEQIPuy>0x|qOS-2rbVv-{k%o52ED_gYeC;{(a(W?ln*!P=bWhBpzpQlU7*)m z^iI&LEc#Kf)S&A8oUje!1Y8{aGF#5Nmp**boWk6or zTm6Bhu*2kDMl&cunj~h{+K~S5UR_dDv)C+{(gHSJf`XRRWEG0Pb^^jx zXg1|?I-A98<%|Z!lhYiWiq@ATG_RqA#X8zl4A<#1I7inb#N-%!($HbKLx&9?HX;@q zmOBJI6FfLKclgkuvDo0DKNx`^9RB(REYiXltXaK)d&`%fev^*tjYB59=FlB<_>SVl z49)d}EgiG^VEh4cM7%0}@AV5=NXTEmu&E#Hlcoq z!&mXG>la$n5mgQCf#0@%p*0-*KH+GlqqX%5-$zGl>ldhl6K(u_>>d<6Q<~+Y zwe<`4bi`+JNFT~DCD{WVlZ>~Sj@H&M9O!I@4D&F!l5jNBfqRUIB(7gL9{tf1ajh-x zk)WZ4bKBbbg?z+iG1m4rI&yP)xyfPYJFdpW7sQD;BS@aYIYJ457tzSs#X~sLx&1{-~P|b9-wtiud>RA3AbhNg9 zVG4B6zS|wDqy1nrHKS=hj=p|j6Y8N35ssi!%gh&^WQMJWw`oUew#kL!b< zNebY2P==28F5F6JJM()VTt|?l>ley&{eshLS?uk?UPVPkcND!{6r0<4_>+dhxv~5k zus*=7J8%wkI1DxMMK`flU%M>h!t_2Mh$Y?3u^`{u_B?Op|FT~$NGi7dE4k) z09}1iipIl*ST&KA&vg_2+K82iHKW1Hf8|Je-S0nh+6~{6cksz5G)Iq&9k7pi&2LD` zpOrrta-$mxe%EhNE_|mnL=iF)>m;0kJsv-yu(+`C@Q{X4vce*}As6coxPGBzQRCsP zhLTdo%@itzu*SnZ8w&8>9jhe%yvM9=$i-Q3+U(eWAg}Ro+sCgesywsq;n0Kke{o0o zs6&OlB3wTq>rtGB(EVA6`&E7Awo!*B_wl}Pst^`-Zn=D{dlSxZugM1*hv59z$MV}C zcAcDqK_5D8uBxj=ynXe1K7{Gr8(ulmV?*QN*Xw&pj$f^h?90WPklhzI9^O-La{pYt zoAtvN@(|}~_=dm0d_Pe?>d-$rtO|0oy?z{W@kWQ-fKylRWc_u|rqbBvr;lWA$j!gE zbj_Kg4n5vsRv@vVzIOAdLyuT-)shmxfoeRwO#C(QyLIt8EPE^o7Z|TK+=X!`<5>Mff*!vIx}gvGKj13d`CXC8 zCT-Sw&>NY?G2cN9$0slj{CJThUdtQ{3Z0((8iIw6few%K#sHGsWIkh}=fR&IDNQ*Q zcqtf>MWH^9n=%e0HAF7r{?sW2K4}(cBymul16JYkWQ+$m(JJ^mhtEwp4!95u?5IvH zT!KL@;X=_e&?jY5ZOU+vk27>Gcezd}_e0I3+N50wx&pjVSu)4Ak~u)<-Os;BYMPrq z6h0?;82+Pg;x9dEWXjV(mLusDNqrBzlu9~PQs;~AGLolpk8LNJ18Z#}URzc}yX7EY z?W{fDVrPev#-;okj6swhC%PViS0aN%eS8VBRzs=lC-n2nUKhmoRwg|IF9)o>a^y4% zgp>St{6{&c-NT!n@)bCI3HN4*_O=v<^Ja?nPChw{IZe3jPPmnn>yzwON-*4>1jXXpw*@+$mAe~iD*p`Agt%=(%X zX6s7I%KDlVW=lv}Uz5U@f1W<OF%`6SwIrklbK2G7GKj}P@hqf2@betvWa^-Hcr|0Bu| zI|DRWyt@0q zh5jzN=S=+Tkde?n$-Up8LvKs&gOmJ@$^8wGJY#IJGGG458ps24CANZgB)s^I?!qAAOgegQA%I;2dCb^;7c zIXUH7gxm#o3hLZ}^n>toPnXcRp zyOd<3ce?xsB@2AX*oQg@MP_#WGmExV_;{G< zxwj*wW1plyS>oYE37`3M!R2?Tb#QKXx94e~(HP`7zMffn1PuUcIf#H$A~|}5>HH_8 z!l!6ROcLD26YvW7G0ER{X78UQ)4_Lt&xcS4M2HV8T&nFGkZRZ55uN&8l&-A8hDD|2OW`9fS){M?bR(D|E1pn4iZGD(@((YE*&OY`sla zRpE{AL>1lQg0iZIb&-dTbcWUj#Xw@sjU)_x@2*Jqg}Pfp&~Q4bF)`ia<0Z5d#^UFILcNZIv_?j)^llP|>yP@x>jUjM9z4Dilv1E?8qTa! zh>I{}rVjpZUkU^ZP2Xe9P!1=Im(DAy!49C+IkT`WU~zU)Wo3@;99W$*ws>iA+2YFL zs+@wdqM8MZtIDf$N()LBR}@b^C%aNvmee_8C&mSaWe?7-o_|r!lIp6Q(u#RyOXe5n zR9{-{V5>zMx6@Jac@9p2aI#DIem2k8zyg7@GS7Sj0D*hvyqXe@^&4W24DY~?Rs(xb zr7Ax^*a2AMlrO0%US|ADYN|P|Wa40|nupYIvmM}i$D6fGciiK38|;NH^7^Nib74}6 z7oO;aN=m$})bJNB*D8TA5i5%ZD^B+MrH0pEIRPP)0v3d4V6o8aUY9$(q={aaVlOGj z3$OB$&c^>L&mG1{TU;!TTIBWX?;SVA3r+NnyUGjYEcAL_?Ij`A+gA-<=()qWENUwj zAsru1g*5o#w(Gt2;Y(iik{5d6JH3A4A90Np0tS0s!-vqPLVmjr^1?Y2uU@#S1k08x z7GPCz*Y#c`T#j{0so}lOt6WdjCv_-RE%n6esAw-Qd=305(cRujso|TiTnVjdDC(qz zUiu{FEPW7i=6T`t1<-fNdhfLDUYiZfK%4Pia*h{$%nL`ycx@(nk%?aNqUecUDAfCy zl7->X3&MYJ7F@k>;i6D`Jj~hK84ib~Dufy0*s!(8;rkE5&f<;DVMkZ*YYyLz5n$~?%}V;;w@AI`IOx6_5 zgT=l%RWPE-y_fNsr3$tHQNCpqJ4#!gqb;sk%WENCjpJVpHBOOPDMQ<$(%?`|&1B%2 zC(Y4tt5JO8lZ96_@>pDf&C{*LSbXgI?O87p`-+ixFbc}uic!!17kkDB#zu|$ss5U| z1d`?v|9`yO`>ZmZ=CX235hdlh*vlMF?mtUd58T`woocC)3iRK_Q-$&r zRTn$>++V_bhW~`1=5r+9+%#O$BnwX|*?JV zlh2vvQ@Px3yh0b*nRD;2L&9sWECM0&pmq$5$@(EKRPlNA^TAH^4^DK!Q(k!8|2gni ze>>$zJDwV`@ej`w*607?XE*n0(>wW^4ySL={G!Jv`L9&`Y5hOOzxk)7z5f04>uUZmkN8U}i_ zhRb*x=mSak!|@>;)COzKWSk9jhRVw*A82k0#Y4u-fMpskqhX*oDlH?2ps!JR8MOhO zf<6EbzrL9!kCy8D`^a>Jj=pf6sSF3Y7bs8DO{>X6cPIFOjdyA}S8WxkqpSKk$&lxj z^D;P0#*xC_M645w9s9}8p7`alb4syQIoE|fapBP8xn8Ve(bqkH^sf`UoPYim?{SlB ze{<`%Q`e61H@H6iS5FOi^6x`Ff9glQFMnzH;zzhaHrJJLqw6c@e0Z*Gfc>*cdHZ%x zIqRB!k3YqAX50XqYt%+R({Vi4q}5E%f2;V{AMWOQHLg|Tz};`*xQOxvI9?Km;n-W| zgm?Cf$G~y2JcsQ#sh$(}mc3?#TaP?@QpTDz5+Ueed1mUWnRDjMxifR;&VFWKlaa94mnak6l6 zMNUY6lt^$KCjmusM9ujNmnem(3wVVzO9H+ejXl@A7zy^oMHc5lNn(#)NK+)>(;$m1 zwLk!rD+EH~V2lB|0x2XeYLdjIMv=vZXOg&7AY7u?VsVX0NL<||7gs%m#K~2XIDimY zKN9ipL^Fr0GUVd2j0EIz3rQS!Nx+*VAcsOix)3bnngyE+3&ZM&pMP_DiCkQFtE--H zpJCvf8!-KE0UkE|ABTIGfpe%n+`u^^zu&<5DI*Qu^EehBWZ?X?DT5=?PIz(rbh81| z08tfI1p$#4RX)Hxz^}lM_^G>$QLR<+lSdU-wFeMss`>yh4EQeY4898tKRemluoJYm zaAz=am^H+=!=n1E`VIJ2fc`A_UIz`s-}S`FNBjlY9Pn)f-wmL@2)^e*dkTES$w&Nt zSjxK_eAj`#6MXlARs%lbZ ztm3->a-F6J;Bvsz0Ivf)8E_^bny9K$#DitxC0s*36|}1n58{kBaZd9vodW>B1K1m| z6JQ=7;}Zt#2G|~u&(8wn^HU&q5Zt{Xw-sOza*0ze@c=C2_b~`e=T1QCkG=`m4)A3_ z#;+ET{`Ug1+}#O?pe3wT8K3!p*hX1Z3CMVr0^<8pdYvq{{B~HbBY@aKS~UQW;rj_h z+C05YEPW`wP3BiC)Etavn!qQ68h=dS4+Y*KaE?Hpg2Hee1hy0C7f79Q`tK6BQ(){} zqSp)kT7hE)772{iEAD+sxyN67k#aF@XM1abwCbUhtt1z6sRKPQkYhs4(j zd{E$z1>Pg@PJvuF#ed)ifv Kl)s=|4#zmuQI(7dS-VxdP7;m?tn-U>kv%0z(25 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%0DU&-@O|(n#g2;eE=(-q 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
U#w;gPI&K~-9@xzRo&dCYCbpV^sO&CN+x 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⪻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ⅇMoURv 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

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

IIg 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

wnsb%!mp=Fn#MF}J9Nn>Bay~i#xlEdK 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

UOWTbCT;^S5-$fY5w8Q^ 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:X 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 K&3LH{U;qFu$8Wg+ literal 0 HcmV?d00001 diff --git a/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/all.h b/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/all.h new file mode 100644 index 0000000..c542c0d --- /dev/null +++ b/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/all.h @@ -0,0 +1,370 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__ALL_H +#define FLAC__ALL_H + +#include "export.h" + +#include "assert.h" +#include "callback.h" +#include "format.h" +#include "metadata.h" +#include "ordinals.h" +#include "stream_decoder.h" +#include "stream_encoder.h" + +/** \mainpage + * + * \section intro Introduction + * + * This is the documentation for the FLAC C and C++ APIs. It is + * highly interconnected; this introduction should give you a top + * level idea of the structure and how to find the information you + * need. As a prerequisite you should have at least a basic + * knowledge of the FLAC format, documented + * here. + * + * \section c_api FLAC C API + * + * The FLAC C API is the interface to libFLAC, a set of structures + * describing the components of FLAC streams, and functions for + * encoding and decoding streams, as well as manipulating FLAC + * metadata in files. The public include files will be installed + * in your include area (for example /usr/include/FLAC/...). + * + * By writing a little code and linking against libFLAC, it is + * relatively easy to add FLAC support to another program. The + * library is licensed under Xiph's BSD license. + * Complete source code of libFLAC as well as the command-line + * encoder and plugins is available and is a useful source of + * examples. + * + * Aside from encoders and decoders, libFLAC provides a powerful + * metadata interface for manipulating metadata in FLAC files. It + * allows the user to add, delete, and modify FLAC metadata blocks + * and it can automatically take advantage of PADDING blocks to avoid + * rewriting the entire FLAC file when changing the size of the + * metadata. + * + * libFLAC usually only requires the standard C library and C math + * library. In particular, threading is not used so there is no + * dependency on a thread library. However, libFLAC does not use + * global variables and should be thread-safe. + * + * libFLAC also supports encoding to and decoding from Ogg FLAC. + * However the metadata editing interfaces currently have limited + * read-only support for Ogg FLAC files. + * + * \section cpp_api FLAC C++ API + * + * The FLAC C++ API is a set of classes that encapsulate the + * structures and functions in libFLAC. They provide slightly more + * functionality with respect to metadata but are otherwise + * equivalent. For the most part, they share the same usage as + * their counterparts in libFLAC, and the FLAC C API documentation + * can be used as a supplement. The public include files + * for the C++ API will be installed in your include area (for + * example /usr/include/FLAC++/...). + * + * libFLAC++ is also licensed under + * Xiph's BSD license. + * + * \section getting_started Getting Started + * + * A good starting point for learning the API is to browse through + * the modules. Modules are logical + * groupings of related functions or classes, which correspond roughly + * to header files or sections of header files. Each module includes a + * detailed description of the general usage of its functions or + * classes. + * + * From there you can go on to look at the documentation of + * individual functions. You can see different views of the individual + * functions through the links in top bar across this page. + * + * If you prefer a more hands-on approach, you can jump right to some + * example code. + * + * \section porting_guide Porting Guide + * + * Starting with FLAC 1.1.3 a \link porting Porting Guide \endlink + * has been introduced which gives detailed instructions on how to + * port your code to newer versions of FLAC. + * + * \section embedded_developers Embedded Developers + * + * libFLAC has grown larger over time as more functionality has been + * included, but much of it may be unnecessary for a particular embedded + * implementation. Unused parts may be pruned by some simple editing of + * src/libFLAC/Makefile.am. In general, the decoders, encoders, and + * metadata interface are all independent from each other. + * + * It is easiest to just describe the dependencies: + * + * - All modules depend on the \link flac_format Format \endlink module. + * - The decoders and encoders depend on the bitbuffer. + * - The decoder is independent of the encoder. The encoder uses the + * decoder because of the verify feature, but this can be removed if + * not needed. + * - Parts of the metadata interface require the stream decoder (but not + * the encoder). + * - Ogg support is selectable through the compile time macro + * \c FLAC__HAS_OGG. + * + * For example, if your application only requires the stream decoder, no + * encoder, and no metadata interface, you can remove the stream encoder + * and the metadata interface, which will greatly reduce the size of the + * library. + * + * Also, there are several places in the libFLAC code with comments marked + * with "OPT:" where a #define can be changed to enable code that might be + * faster on a specific platform. Experimenting with these can yield faster + * binaries. + */ + +/** \defgroup porting Porting Guide for New Versions + * + * This module describes differences in the library interfaces from + * version to version. It assists in the porting of code that uses + * the libraries to newer versions of FLAC. + * + * One simple facility for making porting easier that has been added + * in FLAC 1.1.3 is a set of \c #defines in \c export.h of each + * library's includes (e.g. \c include/FLAC/export.h). The + * \c #defines mirror the libraries' + * libtool version numbers, + * e.g. in libFLAC there are \c FLAC_API_VERSION_CURRENT, + * \c FLAC_API_VERSION_REVISION, and \c FLAC_API_VERSION_AGE. + * These can be used to support multiple versions of an API during the + * transition phase, e.g. + * + * \code + * #if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT <= 7 + * legacy code + * #else + * new code + * #endif + * \endcode + * + * The the source will work for multiple versions and the legacy code can + * easily be removed when the transition is complete. + * + * Another available symbol is FLAC_API_SUPPORTS_OGG_FLAC (defined in + * include/FLAC/export.h), which can be used to determine whether or not + * the library has been compiled with support for Ogg FLAC. This is + * simpler than trying to call an Ogg init function and catching the + * error. + */ + +/** \defgroup porting_1_1_2_to_1_1_3 Porting from FLAC 1.1.2 to 1.1.3 + * \ingroup porting + * + * \brief + * This module describes porting from FLAC 1.1.2 to FLAC 1.1.3. + * + * The main change between the APIs in 1.1.2 and 1.1.3 is that they have + * been simplified. First, libOggFLAC has been merged into libFLAC and + * libOggFLAC++ has been merged into libFLAC++. Second, both the three + * decoding layers and three encoding layers have been merged into a + * single stream decoder and stream encoder. That is, the functionality + * of FLAC__SeekableStreamDecoder and FLAC__FileDecoder has been merged + * into FLAC__StreamDecoder, and FLAC__SeekableStreamEncoder and + * FLAC__FileEncoder into FLAC__StreamEncoder. Only the + * FLAC__StreamDecoder and FLAC__StreamEncoder remain. What this means + * is there is now a single API that can be used to encode or decode + * streams to/from native FLAC or Ogg FLAC and the single API can work + * on both seekable and non-seekable streams. + * + * Instead of creating an encoder or decoder of a certain layer, now the + * client will always create a FLAC__StreamEncoder or + * FLAC__StreamDecoder. The old layers are now differentiated by the + * initialization function. For example, for the decoder, + * FLAC__stream_decoder_init() has been replaced by + * FLAC__stream_decoder_init_stream(). This init function takes + * callbacks for the I/O, and the seeking callbacks are optional. This + * allows the client to use the same object for seekable and + * non-seekable streams. For decoding a FLAC file directly, the client + * can use FLAC__stream_decoder_init_file() and pass just a filename + * and fewer callbacks; most of the other callbacks are supplied + * internally. For situations where fopen()ing by filename is not + * possible (e.g. Unicode filenames on Windows) the client can instead + * open the file itself and supply the FILE* to + * FLAC__stream_decoder_init_FILE(). The init functions now returns a + * FLAC__StreamDecoderInitStatus instead of FLAC__StreamDecoderState. + * Since the callbacks and client data are now passed to the init + * function, the FLAC__stream_decoder_set_*_callback() functions and + * FLAC__stream_decoder_set_client_data() are no longer needed. The + * rest of the calls to the decoder are the same as before. + * + * There are counterpart init functions for Ogg FLAC, e.g. + * FLAC__stream_decoder_init_ogg_stream(). All the rest of the calls + * and callbacks are the same as for native FLAC. + * + * As an example, in FLAC 1.1.2 a seekable stream decoder would have + * been set up like so: + * + * \code + * FLAC__SeekableStreamDecoder *decoder = FLAC__seekable_stream_decoder_new(); + * if(decoder == NULL) do_something; + * FLAC__seekable_stream_decoder_set_md5_checking(decoder, true); + * [... other settings ...] + * FLAC__seekable_stream_decoder_set_read_callback(decoder, my_read_callback); + * FLAC__seekable_stream_decoder_set_seek_callback(decoder, my_seek_callback); + * FLAC__seekable_stream_decoder_set_tell_callback(decoder, my_tell_callback); + * FLAC__seekable_stream_decoder_set_length_callback(decoder, my_length_callback); + * FLAC__seekable_stream_decoder_set_eof_callback(decoder, my_eof_callback); + * FLAC__seekable_stream_decoder_set_write_callback(decoder, my_write_callback); + * FLAC__seekable_stream_decoder_set_metadata_callback(decoder, my_metadata_callback); + * FLAC__seekable_stream_decoder_set_error_callback(decoder, my_error_callback); + * FLAC__seekable_stream_decoder_set_client_data(decoder, my_client_data); + * if(FLAC__seekable_stream_decoder_init(decoder) != FLAC__SEEKABLE_STREAM_DECODER_OK) do_something; + * \endcode + * + * In FLAC 1.1.3 it is like this: + * + * \code + * FLAC__StreamDecoder *decoder = FLAC__stream_decoder_new(); + * if(decoder == NULL) do_something; + * FLAC__stream_decoder_set_md5_checking(decoder, true); + * [... other settings ...] + * if(FLAC__stream_decoder_init_stream( + * decoder, + * my_read_callback, + * my_seek_callback, // or NULL + * my_tell_callback, // or NULL + * my_length_callback, // or NULL + * my_eof_callback, // or NULL + * my_write_callback, + * my_metadata_callback, // or NULL + * my_error_callback, + * my_client_data + * ) != FLAC__STREAM_DECODER_INIT_STATUS_OK) do_something; + * \endcode + * + * or you could do; + * + * \code + * [...] + * FILE *file = fopen("somefile.flac","rb"); + * if(file == NULL) do_somthing; + * if(FLAC__stream_decoder_init_FILE( + * decoder, + * file, + * my_write_callback, + * my_metadata_callback, // or NULL + * my_error_callback, + * my_client_data + * ) != FLAC__STREAM_DECODER_INIT_STATUS_OK) do_something; + * \endcode + * + * or just: + * + * \code + * [...] + * if(FLAC__stream_decoder_init_file( + * decoder, + * "somefile.flac", + * my_write_callback, + * my_metadata_callback, // or NULL + * my_error_callback, + * my_client_data + * ) != FLAC__STREAM_DECODER_INIT_STATUS_OK) do_something; + * \endcode + * + * Another small change to the decoder is in how it handles unparseable + * streams. Before, when the decoder found an unparseable stream + * (reserved for when the decoder encounters a stream from a future + * encoder that it can't parse), it changed the state to + * \c FLAC__STREAM_DECODER_UNPARSEABLE_STREAM. Now the decoder instead + * drops sync and calls the error callback with a new error code + * \c FLAC__STREAM_DECODER_ERROR_STATUS_UNPARSEABLE_STREAM. This is + * more robust. If your error callback does not discriminate on the the + * error state, your code does not need to be changed. + * + * The encoder now has a new setting: + * FLAC__stream_encoder_set_apodization(). This is for setting the + * method used to window the data before LPC analysis. You only need to + * add a call to this function if the default is not suitable. There + * are also two new convenience functions that may be useful: + * FLAC__metadata_object_cuesheet_calculate_cddb_id() and + * FLAC__metadata_get_cuesheet(). + * + * The \a bytes parameter to FLAC__StreamDecoderReadCallback, + * FLAC__StreamEncoderReadCallback, and FLAC__StreamEncoderWriteCallback + * is now \c size_t instead of \c unsigned. + */ + +/** \defgroup porting_1_1_3_to_1_1_4 Porting from FLAC 1.1.3 to 1.1.4 + * \ingroup porting + * + * \brief + * This module describes porting from FLAC 1.1.3 to FLAC 1.1.4. + * + * There were no changes to any of the interfaces from 1.1.3 to 1.1.4. + * There was a slight change in the implementation of + * FLAC__stream_encoder_set_metadata(); the function now makes a copy + * of the \a metadata array of pointers so the client no longer needs + * to maintain it after the call. The objects themselves that are + * pointed to by the array are still not copied though and must be + * maintained until the call to FLAC__stream_encoder_finish(). + */ + +/** \defgroup porting_1_1_4_to_1_2_0 Porting from FLAC 1.1.4 to 1.2.0 + * \ingroup porting + * + * \brief + * This module describes porting from FLAC 1.1.4 to FLAC 1.2.0. + * + * There were only very minor changes to the interfaces from 1.1.4 to 1.2.0. + * In libFLAC, \c FLAC__format_sample_rate_is_subset() was added. + * In libFLAC++, \c FLAC::Decoder::Stream::get_decode_position() was added. + * + * Finally, value of the constant \c FLAC__FRAME_HEADER_RESERVED_LEN + * has changed to reflect the conversion of one of the reserved bits + * into active use. It used to be \c 2 and now is \c 1. However the + * FLAC frame header length has not changed, so to skip the proper + * number of bits, use \c FLAC__FRAME_HEADER_RESERVED_LEN + + * \c FLAC__FRAME_HEADER_BLOCKING_STRATEGY_LEN + */ + +/** \defgroup flac FLAC C API + * + * The FLAC C API is the interface to libFLAC, a set of structures + * describing the components of FLAC streams, and functions for + * encoding and decoding streams, as well as manipulating FLAC + * metadata in files. + * + * You should start with the format components as all other modules + * are dependent on it. + */ + +#endif diff --git a/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/assert.h b/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/assert.h new file mode 100644 index 0000000..3fc03f3 --- /dev/null +++ b/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/assert.h @@ -0,0 +1,45 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__ASSERT_H +#define FLAC__ASSERT_H + +/* we need this since some compilers (like MSVC) leave assert()s on release code (and we don't want to use their ASSERT) */ +#ifdef DEBUG +#include +#define FLAC__ASSERT(x) assert(x) +#define FLAC__ASSERT_DECLARATION(x) x +#else +#define FLAC__ASSERT(x) +#define FLAC__ASSERT_DECLARATION(x) +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/callback.h b/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/callback.h new file mode 100644 index 0000000..c954121 --- /dev/null +++ b/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/callback.h @@ -0,0 +1,184 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__CALLBACK_H +#define FLAC__CALLBACK_H + +#include "ordinals.h" +#include /* for size_t */ + +/** \file include/FLAC/callback.h + * + * \brief + * This module defines the structures for describing I/O callbacks + * to the other FLAC interfaces. + * + * See the detailed documentation for callbacks in the + * \link flac_callbacks callbacks \endlink module. + */ + +/** \defgroup flac_callbacks FLAC/callback.h: I/O callback structures + * \ingroup flac + * + * \brief + * This module defines the structures for describing I/O callbacks + * to the other FLAC interfaces. + * + * The purpose of the I/O callback functions is to create a common way + * for the metadata interfaces to handle I/O. + * + * Originally the metadata interfaces required filenames as the way of + * specifying FLAC files to operate on. This is problematic in some + * environments so there is an additional option to specify a set of + * callbacks for doing I/O on the FLAC file, instead of the filename. + * + * In addition to the callbacks, a FLAC__IOHandle type is defined as an + * opaque structure for a data source. + * + * The callback function prototypes are similar (but not identical) to the + * stdio functions fread, fwrite, fseek, ftell, feof, and fclose. If you use + * stdio streams to implement the callbacks, you can pass fread, fwrite, and + * fclose anywhere a FLAC__IOCallback_Read, FLAC__IOCallback_Write, or + * FLAC__IOCallback_Close is required, and a FILE* anywhere a FLAC__IOHandle + * is required. \warning You generally CANNOT directly use fseek or ftell + * for FLAC__IOCallback_Seek or FLAC__IOCallback_Tell since on most systems + * these use 32-bit offsets and FLAC requires 64-bit offsets to deal with + * large files. You will have to find an equivalent function (e.g. ftello), + * or write a wrapper. The same is true for feof() since this is usually + * implemented as a macro, not as a function whose address can be taken. + * + * \{ + */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** This is the opaque handle type used by the callbacks. Typically + * this is a \c FILE* or address of a file descriptor. + */ +typedef void* FLAC__IOHandle; + +/** Signature for the read callback. + * The signature and semantics match POSIX fread() implementations + * and can generally be used interchangeably. + * + * \param ptr The address of the read buffer. + * \param size The size of the records to be read. + * \param nmemb The number of records to be read. + * \param handle The handle to the data source. + * \retval size_t + * The number of records read. + */ +typedef size_t (*FLAC__IOCallback_Read) (void *ptr, size_t size, size_t nmemb, FLAC__IOHandle handle); + +/** Signature for the write callback. + * The signature and semantics match POSIX fwrite() implementations + * and can generally be used interchangeably. + * + * \param ptr The address of the write buffer. + * \param size The size of the records to be written. + * \param nmemb The number of records to be written. + * \param handle The handle to the data source. + * \retval size_t + * The number of records written. + */ +typedef size_t (*FLAC__IOCallback_Write) (const void *ptr, size_t size, size_t nmemb, FLAC__IOHandle handle); + +/** Signature for the seek callback. + * The signature and semantics mostly match POSIX fseek() WITH ONE IMPORTANT + * EXCEPTION: the offset is a 64-bit type whereas fseek() is generally 'long' + * and 32-bits wide. + * + * \param handle The handle to the data source. + * \param offset The new position, relative to \a whence + * \param whence \c SEEK_SET, \c SEEK_CUR, or \c SEEK_END + * \retval int + * \c 0 on success, \c -1 on error. + */ +typedef int (*FLAC__IOCallback_Seek) (FLAC__IOHandle handle, FLAC__int64 offset, int whence); + +/** Signature for the tell callback. + * The signature and semantics mostly match POSIX ftell() WITH ONE IMPORTANT + * EXCEPTION: the offset is a 64-bit type whereas ftell() is generally 'long' + * and 32-bits wide. + * + * \param handle The handle to the data source. + * \retval FLAC__int64 + * The current position on success, \c -1 on error. + */ +typedef FLAC__int64 (*FLAC__IOCallback_Tell) (FLAC__IOHandle handle); + +/** Signature for the EOF callback. + * The signature and semantics mostly match POSIX feof() but WATCHOUT: + * on many systems, feof() is a macro, so in this case a wrapper function + * must be provided instead. + * + * \param handle The handle to the data source. + * \retval int + * \c 0 if not at end of file, nonzero if at end of file. + */ +typedef int (*FLAC__IOCallback_Eof) (FLAC__IOHandle handle); + +/** Signature for the close callback. + * The signature and semantics match POSIX fclose() implementations + * and can generally be used interchangeably. + * + * \param handle The handle to the data source. + * \retval int + * \c 0 on success, \c EOF on error. + */ +typedef int (*FLAC__IOCallback_Close) (FLAC__IOHandle handle); + +/** A structure for holding a set of callbacks. + * Each FLAC interface that requires a FLAC__IOCallbacks structure will + * describe which of the callbacks are required. The ones that are not + * required may be set to NULL. + * + * If the seek requirement for an interface is optional, you can signify that + * a data sorce is not seekable by setting the \a seek field to \c NULL. + */ +typedef struct { + FLAC__IOCallback_Read read; + FLAC__IOCallback_Write write; + FLAC__IOCallback_Seek seek; + FLAC__IOCallback_Tell tell; + FLAC__IOCallback_Eof eof; + FLAC__IOCallback_Close close; +} FLAC__IOCallbacks; + +/* \} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/export.h b/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/export.h new file mode 100644 index 0000000..a525f29 --- /dev/null +++ b/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/export.h @@ -0,0 +1,91 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__EXPORT_H +#define FLAC__EXPORT_H + +/** \file include/FLAC/export.h + * + * \brief + * This module contains #defines and symbols for exporting function + * calls, and providing version information and compiled-in features. + * + * See the \link flac_export export \endlink module. + */ + +/** \defgroup flac_export FLAC/export.h: export symbols + * \ingroup flac + * + * \brief + * This module contains #defines and symbols for exporting function + * calls, and providing version information and compiled-in features. + * + * If you are compiling with MSVC and will link to the static library + * (libFLAC.lib) you should define FLAC__NO_DLL in your project to + * make sure the symbols are exported properly. + * + * \{ + */ + +#if defined(FLAC__NO_DLL) || !defined(_MSC_VER) +#define FLAC_API + +#else + +#ifdef FLAC_API_EXPORTS +#define FLAC_API _declspec(dllexport) +#else +#define FLAC_API _declspec(dllimport) + +#endif +#endif + +/** These #defines will mirror the libtool-based library version number, see + * http://www.gnu.org/software/libtool/manual.html#Libtool-versioning + */ +#define FLAC_API_VERSION_CURRENT 10 +#define FLAC_API_VERSION_REVISION 0 /**< see above */ +#define FLAC_API_VERSION_AGE 2 /**< see above */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** \c 1 if the library has been compiled with support for Ogg FLAC, else \c 0. */ +extern FLAC_API int FLAC_API_SUPPORTS_OGG_FLAC; + +#ifdef __cplusplus +} +#endif + +/* \} */ + +#endif diff --git a/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/format.h b/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/format.h new file mode 100644 index 0000000..77e2d01 --- /dev/null +++ b/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/format.h @@ -0,0 +1,1010 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__FORMAT_H +#define FLAC__FORMAT_H + +#include "export.h" +#include "ordinals.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** \file include/FLAC/format.h + * + * \brief + * This module contains structure definitions for the representation + * of FLAC format components in memory. These are the basic + * structures used by the rest of the interfaces. + * + * See the detailed documentation in the + * \link flac_format format \endlink module. + */ + +/** \defgroup flac_format FLAC/format.h: format components + * \ingroup flac + * + * \brief + * This module contains structure definitions for the representation + * of FLAC format components in memory. These are the basic + * structures used by the rest of the interfaces. + * + * First, you should be familiar with the + * FLAC format. Many of the values here + * follow directly from the specification. As a user of libFLAC, the + * interesting parts really are the structures that describe the frame + * header and metadata blocks. + * + * The format structures here are very primitive, designed to store + * information in an efficient way. Reading information from the + * structures is easy but creating or modifying them directly is + * more complex. For the most part, as a user of a library, editing + * is not necessary; however, for metadata blocks it is, so there are + * convenience functions provided in the \link flac_metadata metadata + * module \endlink to simplify the manipulation of metadata blocks. + * + * \note + * It's not the best convention, but symbols ending in _LEN are in bits + * and _LENGTH are in bytes. _LENGTH symbols are \#defines instead of + * global variables because they are usually used when declaring byte + * arrays and some compilers require compile-time knowledge of array + * sizes when declared on the stack. + * + * \{ + */ + + +/* + Most of the values described in this file are defined by the FLAC + format specification. There is nothing to tune here. +*/ + +/** The largest legal metadata type code. */ +#define FLAC__MAX_METADATA_TYPE_CODE (126u) + +/** The minimum block size, in samples, permitted by the format. */ +#define FLAC__MIN_BLOCK_SIZE (16u) + +/** The maximum block size, in samples, permitted by the format. */ +#define FLAC__MAX_BLOCK_SIZE (65535u) + +/** The maximum block size, in samples, permitted by the FLAC subset for + * sample rates up to 48kHz. */ +#define FLAC__SUBSET_MAX_BLOCK_SIZE_48000HZ (4608u) + +/** The maximum number of channels permitted by the format. */ +#define FLAC__MAX_CHANNELS (8u) + +/** The minimum sample resolution permitted by the format. */ +#define FLAC__MIN_BITS_PER_SAMPLE (4u) + +/** The maximum sample resolution permitted by the format. */ +#define FLAC__MAX_BITS_PER_SAMPLE (32u) + +/** The maximum sample resolution permitted by libFLAC. + * + * \warning + * FLAC__MAX_BITS_PER_SAMPLE is the limit of the FLAC format. However, + * the reference encoder/decoder is currently limited to 24 bits because + * of prevalent 32-bit math, so make sure and use this value when + * appropriate. + */ +#define FLAC__REFERENCE_CODEC_MAX_BITS_PER_SAMPLE (24u) + +/** The maximum sample rate permitted by the format. The value is + * ((2 ^ 16) - 1) * 10; see FLAC format + * as to why. + */ +#define FLAC__MAX_SAMPLE_RATE (655350u) + +/** The maximum LPC order permitted by the format. */ +#define FLAC__MAX_LPC_ORDER (32u) + +/** The maximum LPC order permitted by the FLAC subset for sample rates + * up to 48kHz. */ +#define FLAC__SUBSET_MAX_LPC_ORDER_48000HZ (12u) + +/** The minimum quantized linear predictor coefficient precision + * permitted by the format. + */ +#define FLAC__MIN_QLP_COEFF_PRECISION (5u) + +/** The maximum quantized linear predictor coefficient precision + * permitted by the format. + */ +#define FLAC__MAX_QLP_COEFF_PRECISION (15u) + +/** The maximum order of the fixed predictors permitted by the format. */ +#define FLAC__MAX_FIXED_ORDER (4u) + +/** The maximum Rice partition order permitted by the format. */ +#define FLAC__MAX_RICE_PARTITION_ORDER (15u) + +/** The maximum Rice partition order permitted by the FLAC Subset. */ +#define FLAC__SUBSET_MAX_RICE_PARTITION_ORDER (8u) + +/** The version string of the release, stamped onto the libraries and binaries. + * + * \note + * This does not correspond to the shared library version number, which + * is used to determine binary compatibility. + */ +extern FLAC_API const char *FLAC__VERSION_STRING; + +/** The vendor string inserted by the encoder into the VORBIS_COMMENT block. + * This is a NUL-terminated ASCII string; when inserted into the + * VORBIS_COMMENT the trailing null is stripped. + */ +extern FLAC_API const char *FLAC__VENDOR_STRING; + +/** The byte string representation of the beginning of a FLAC stream. */ +extern FLAC_API const FLAC__byte FLAC__STREAM_SYNC_STRING[4]; /* = "fLaC" */ + +/** The 32-bit integer big-endian representation of the beginning of + * a FLAC stream. + */ +extern FLAC_API const unsigned FLAC__STREAM_SYNC; /* = 0x664C6143 */ + +/** The length of the FLAC signature in bits. */ +extern FLAC_API const unsigned FLAC__STREAM_SYNC_LEN; /* = 32 bits */ + +/** The length of the FLAC signature in bytes. */ +#define FLAC__STREAM_SYNC_LENGTH (4u) + + +/***************************************************************************** + * + * Subframe structures + * + *****************************************************************************/ + +/*****************************************************************************/ + +/** An enumeration of the available entropy coding methods. */ +typedef enum { + FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE = 0, + /**< Residual is coded by partitioning into contexts, each with it's own + * 4-bit Rice parameter. */ + + FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE2 = 1 + /**< Residual is coded by partitioning into contexts, each with it's own + * 5-bit Rice parameter. */ +} FLAC__EntropyCodingMethodType; + +/** Maps a FLAC__EntropyCodingMethodType to a C string. + * + * Using a FLAC__EntropyCodingMethodType as the index to this array will + * give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__EntropyCodingMethodTypeString[]; + + +/** Contents of a Rice partitioned residual + */ +typedef struct { + + unsigned *parameters; + /**< The Rice parameters for each context. */ + + unsigned *raw_bits; + /**< Widths for escape-coded partitions. Will be non-zero for escaped + * partitions and zero for unescaped partitions. + */ + + unsigned capacity_by_order; + /**< The capacity of the \a parameters and \a raw_bits arrays + * specified as an order, i.e. the number of array elements + * allocated is 2 ^ \a capacity_by_order. + */ +} FLAC__EntropyCodingMethod_PartitionedRiceContents; + +/** Header for a Rice partitioned residual. (c.f. format specification) + */ +typedef struct { + + unsigned order; + /**< The partition order, i.e. # of contexts = 2 ^ \a order. */ + + const FLAC__EntropyCodingMethod_PartitionedRiceContents *contents; + /**< The context's Rice parameters and/or raw bits. */ + +} FLAC__EntropyCodingMethod_PartitionedRice; + +extern FLAC_API const unsigned FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_ORDER_LEN; /**< == 4 (bits) */ +extern FLAC_API const unsigned FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_PARAMETER_LEN; /**< == 4 (bits) */ +extern FLAC_API const unsigned FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE2_PARAMETER_LEN; /**< == 5 (bits) */ +extern FLAC_API const unsigned FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_RAW_LEN; /**< == 5 (bits) */ + +extern FLAC_API const unsigned FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_ESCAPE_PARAMETER; +/**< == (1<format specification) + */ +typedef struct { + FLAC__EntropyCodingMethodType type; + union { + FLAC__EntropyCodingMethod_PartitionedRice partitioned_rice; + } data; +} FLAC__EntropyCodingMethod; + +extern FLAC_API const unsigned FLAC__ENTROPY_CODING_METHOD_TYPE_LEN; /**< == 2 (bits) */ + +/*****************************************************************************/ + +/** An enumeration of the available subframe types. */ +typedef enum { + FLAC__SUBFRAME_TYPE_CONSTANT = 0, /**< constant signal */ + FLAC__SUBFRAME_TYPE_VERBATIM = 1, /**< uncompressed signal */ + FLAC__SUBFRAME_TYPE_FIXED = 2, /**< fixed polynomial prediction */ + FLAC__SUBFRAME_TYPE_LPC = 3 /**< linear prediction */ +} FLAC__SubframeType; + +/** Maps a FLAC__SubframeType to a C string. + * + * Using a FLAC__SubframeType as the index to this array will + * give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__SubframeTypeString[]; + + +/** CONSTANT subframe. (c.f. format specification) + */ +typedef struct { + FLAC__int32 value; /**< The constant signal value. */ +} FLAC__Subframe_Constant; + + +/** VERBATIM subframe. (c.f. format specification) + */ +typedef struct { + const FLAC__int32 *data; /**< A pointer to verbatim signal. */ +} FLAC__Subframe_Verbatim; + + +/** FIXED subframe. (c.f. format specification) + */ +typedef struct { + FLAC__EntropyCodingMethod entropy_coding_method; + /**< The residual coding method. */ + + unsigned order; + /**< The polynomial order. */ + + FLAC__int32 warmup[FLAC__MAX_FIXED_ORDER]; + /**< Warmup samples to prime the predictor, length == order. */ + + const FLAC__int32 *residual; + /**< The residual signal, length == (blocksize minus order) samples. */ +} FLAC__Subframe_Fixed; + + +/** LPC subframe. (c.f. format specification) + */ +typedef struct { + FLAC__EntropyCodingMethod entropy_coding_method; + /**< The residual coding method. */ + + unsigned order; + /**< The FIR order. */ + + unsigned qlp_coeff_precision; + /**< Quantized FIR filter coefficient precision in bits. */ + + int quantization_level; + /**< The qlp coeff shift needed. */ + + FLAC__int32 qlp_coeff[FLAC__MAX_LPC_ORDER]; + /**< FIR filter coefficients. */ + + FLAC__int32 warmup[FLAC__MAX_LPC_ORDER]; + /**< Warmup samples to prime the predictor, length == order. */ + + const FLAC__int32 *residual; + /**< The residual signal, length == (blocksize minus order) samples. */ +} FLAC__Subframe_LPC; + +extern FLAC_API const unsigned FLAC__SUBFRAME_LPC_QLP_COEFF_PRECISION_LEN; /**< == 4 (bits) */ +extern FLAC_API const unsigned FLAC__SUBFRAME_LPC_QLP_SHIFT_LEN; /**< == 5 (bits) */ + + +/** FLAC subframe structure. (c.f. format specification) + */ +typedef struct { + FLAC__SubframeType type; + union { + FLAC__Subframe_Constant constant; + FLAC__Subframe_Fixed fixed; + FLAC__Subframe_LPC lpc; + FLAC__Subframe_Verbatim verbatim; + } data; + unsigned wasted_bits; +} FLAC__Subframe; + +/** == 1 (bit) + * + * This used to be a zero-padding bit (hence the name + * FLAC__SUBFRAME_ZERO_PAD_LEN) but is now a reserved bit. It still has a + * mandatory value of \c 0 but in the future may take on the value \c 0 or \c 1 + * to mean something else. + */ +extern FLAC_API const unsigned FLAC__SUBFRAME_ZERO_PAD_LEN; +extern FLAC_API const unsigned FLAC__SUBFRAME_TYPE_LEN; /**< == 6 (bits) */ +extern FLAC_API const unsigned FLAC__SUBFRAME_WASTED_BITS_FLAG_LEN; /**< == 1 (bit) */ + +extern FLAC_API const unsigned FLAC__SUBFRAME_TYPE_CONSTANT_BYTE_ALIGNED_MASK; /**< = 0x00 */ +extern FLAC_API const unsigned FLAC__SUBFRAME_TYPE_VERBATIM_BYTE_ALIGNED_MASK; /**< = 0x02 */ +extern FLAC_API const unsigned FLAC__SUBFRAME_TYPE_FIXED_BYTE_ALIGNED_MASK; /**< = 0x10 */ +extern FLAC_API const unsigned FLAC__SUBFRAME_TYPE_LPC_BYTE_ALIGNED_MASK; /**< = 0x40 */ + +/*****************************************************************************/ + + +/***************************************************************************** + * + * Frame structures + * + *****************************************************************************/ + +/** An enumeration of the available channel assignments. */ +typedef enum { + FLAC__CHANNEL_ASSIGNMENT_INDEPENDENT = 0, /**< independent channels */ + FLAC__CHANNEL_ASSIGNMENT_LEFT_SIDE = 1, /**< left+side stereo */ + FLAC__CHANNEL_ASSIGNMENT_RIGHT_SIDE = 2, /**< right+side stereo */ + FLAC__CHANNEL_ASSIGNMENT_MID_SIDE = 3 /**< mid+side stereo */ +} FLAC__ChannelAssignment; + +/** Maps a FLAC__ChannelAssignment to a C string. + * + * Using a FLAC__ChannelAssignment as the index to this array will + * give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__ChannelAssignmentString[]; + +/** An enumeration of the possible frame numbering methods. */ +typedef enum { + FLAC__FRAME_NUMBER_TYPE_FRAME_NUMBER, /**< number contains the frame number */ + FLAC__FRAME_NUMBER_TYPE_SAMPLE_NUMBER /**< number contains the sample number of first sample in frame */ +} FLAC__FrameNumberType; + +/** Maps a FLAC__FrameNumberType to a C string. + * + * Using a FLAC__FrameNumberType as the index to this array will + * give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__FrameNumberTypeString[]; + + +/** FLAC frame header structure. (c.f. format specification) + */ +typedef struct { + unsigned blocksize; + /**< The number of samples per subframe. */ + + unsigned sample_rate; + /**< The sample rate in Hz. */ + + unsigned channels; + /**< The number of channels (== number of subframes). */ + + FLAC__ChannelAssignment channel_assignment; + /**< The channel assignment for the frame. */ + + unsigned bits_per_sample; + /**< The sample resolution. */ + + FLAC__FrameNumberType number_type; + /**< The numbering scheme used for the frame. As a convenience, the + * decoder will always convert a frame number to a sample number because + * the rules are complex. */ + + union { + FLAC__uint32 frame_number; + FLAC__uint64 sample_number; + } number; + /**< The frame number or sample number of first sample in frame; + * use the \a number_type value to determine which to use. */ + + FLAC__uint8 crc; + /**< CRC-8 (polynomial = x^8 + x^2 + x^1 + x^0, initialized with 0) + * of the raw frame header bytes, meaning everything before the CRC byte + * including the sync code. + */ +} FLAC__FrameHeader; + +extern FLAC_API const unsigned FLAC__FRAME_HEADER_SYNC; /**< == 0x3ffe; the frame header sync code */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_SYNC_LEN; /**< == 14 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_RESERVED_LEN; /**< == 1 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_BLOCKING_STRATEGY_LEN; /**< == 1 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_BLOCK_SIZE_LEN; /**< == 4 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_SAMPLE_RATE_LEN; /**< == 4 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_CHANNEL_ASSIGNMENT_LEN; /**< == 4 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_BITS_PER_SAMPLE_LEN; /**< == 3 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_ZERO_PAD_LEN; /**< == 1 (bit) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_CRC_LEN; /**< == 8 (bits) */ + + +/** FLAC frame footer structure. (c.f. format specification) + */ +typedef struct { + FLAC__uint16 crc; + /**< CRC-16 (polynomial = x^16 + x^15 + x^2 + x^0, initialized with + * 0) of the bytes before the crc, back to and including the frame header + * sync code. + */ +} FLAC__FrameFooter; + +extern FLAC_API const unsigned FLAC__FRAME_FOOTER_CRC_LEN; /**< == 16 (bits) */ + + +/** FLAC frame structure. (c.f. format specification) + */ +typedef struct { + FLAC__FrameHeader header; + FLAC__Subframe subframes[FLAC__MAX_CHANNELS]; + FLAC__FrameFooter footer; +} FLAC__Frame; + +/*****************************************************************************/ + + +/***************************************************************************** + * + * Meta-data structures + * + *****************************************************************************/ + +/** An enumeration of the available metadata block types. */ +typedef enum { + + FLAC__METADATA_TYPE_STREAMINFO = 0, + /**< STREAMINFO block */ + + FLAC__METADATA_TYPE_PADDING = 1, + /**< PADDING block */ + + FLAC__METADATA_TYPE_APPLICATION = 2, + /**< APPLICATION block */ + + FLAC__METADATA_TYPE_SEEKTABLE = 3, + /**< SEEKTABLE block */ + + FLAC__METADATA_TYPE_VORBIS_COMMENT = 4, + /**< VORBISCOMMENT block (a.k.a. FLAC tags) */ + + FLAC__METADATA_TYPE_CUESHEET = 5, + /**< CUESHEET block */ + + FLAC__METADATA_TYPE_PICTURE = 6, + /**< PICTURE block */ + + FLAC__METADATA_TYPE_UNDEFINED = 7 + /**< marker to denote beginning of undefined type range; this number will increase as new metadata types are added */ + +} FLAC__MetadataType; + +/** Maps a FLAC__MetadataType to a C string. + * + * Using a FLAC__MetadataType as the index to this array will + * give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__MetadataTypeString[]; + + +/** FLAC STREAMINFO structure. (c.f. format specification) + */ +typedef struct { + unsigned min_blocksize, max_blocksize; + unsigned min_framesize, max_framesize; + unsigned sample_rate; + unsigned channels; + unsigned bits_per_sample; + FLAC__uint64 total_samples; + FLAC__byte md5sum[16]; +} FLAC__StreamMetadata_StreamInfo; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_MIN_BLOCK_SIZE_LEN; /**< == 16 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_MAX_BLOCK_SIZE_LEN; /**< == 16 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_MIN_FRAME_SIZE_LEN; /**< == 24 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_MAX_FRAME_SIZE_LEN; /**< == 24 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_SAMPLE_RATE_LEN; /**< == 20 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_CHANNELS_LEN; /**< == 3 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_BITS_PER_SAMPLE_LEN; /**< == 5 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_TOTAL_SAMPLES_LEN; /**< == 36 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_MD5SUM_LEN; /**< == 128 (bits) */ + +/** The total stream length of the STREAMINFO block in bytes. */ +#define FLAC__STREAM_METADATA_STREAMINFO_LENGTH (34u) + +/** FLAC PADDING structure. (c.f. format specification) + */ +typedef struct { + int dummy; + /**< Conceptually this is an empty struct since we don't store the + * padding bytes. Empty structs are not allowed by some C compilers, + * hence the dummy. + */ +} FLAC__StreamMetadata_Padding; + + +/** FLAC APPLICATION structure. (c.f. format specification) + */ +typedef struct { + FLAC__byte id[4]; + FLAC__byte *data; +} FLAC__StreamMetadata_Application; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_APPLICATION_ID_LEN; /**< == 32 (bits) */ + +/** SeekPoint structure used in SEEKTABLE blocks. (c.f. format specification) + */ +typedef struct { + FLAC__uint64 sample_number; + /**< The sample number of the target frame. */ + + FLAC__uint64 stream_offset; + /**< The offset, in bytes, of the target frame with respect to + * beginning of the first frame. */ + + unsigned frame_samples; + /**< The number of samples in the target frame. */ +} FLAC__StreamMetadata_SeekPoint; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_SEEKPOINT_SAMPLE_NUMBER_LEN; /**< == 64 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_SEEKPOINT_STREAM_OFFSET_LEN; /**< == 64 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_SEEKPOINT_FRAME_SAMPLES_LEN; /**< == 16 (bits) */ + +/** The total stream length of a seek point in bytes. */ +#define FLAC__STREAM_METADATA_SEEKPOINT_LENGTH (18u) + +/** The value used in the \a sample_number field of + * FLAC__StreamMetadataSeekPoint used to indicate a placeholder + * point (== 0xffffffffffffffff). + */ +extern FLAC_API const FLAC__uint64 FLAC__STREAM_METADATA_SEEKPOINT_PLACEHOLDER; + + +/** FLAC SEEKTABLE structure. (c.f. format specification) + * + * \note From the format specification: + * - The seek points must be sorted by ascending sample number. + * - Each seek point's sample number must be the first sample of the + * target frame. + * - Each seek point's sample number must be unique within the table. + * - Existence of a SEEKTABLE block implies a correct setting of + * total_samples in the stream_info block. + * - Behavior is undefined when more than one SEEKTABLE block is + * present in a stream. + */ +typedef struct { + unsigned num_points; + FLAC__StreamMetadata_SeekPoint *points; +} FLAC__StreamMetadata_SeekTable; + + +/** Vorbis comment entry structure used in VORBIS_COMMENT blocks. (c.f. format specification) + * + * For convenience, the APIs maintain a trailing NUL character at the end of + * \a entry which is not counted toward \a length, i.e. + * \code strlen(entry) == length \endcode + */ +typedef struct { + FLAC__uint32 length; + FLAC__byte *entry; +} FLAC__StreamMetadata_VorbisComment_Entry; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_VORBIS_COMMENT_ENTRY_LENGTH_LEN; /**< == 32 (bits) */ + + +/** FLAC VORBIS_COMMENT structure. (c.f. format specification) + */ +typedef struct { + FLAC__StreamMetadata_VorbisComment_Entry vendor_string; + FLAC__uint32 num_comments; + FLAC__StreamMetadata_VorbisComment_Entry *comments; +} FLAC__StreamMetadata_VorbisComment; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_VORBIS_COMMENT_NUM_COMMENTS_LEN; /**< == 32 (bits) */ + + +/** FLAC CUESHEET track index structure. (See the + * format specification for + * the full description of each field.) + */ +typedef struct { + FLAC__uint64 offset; + /**< Offset in samples, relative to the track offset, of the index + * point. + */ + + FLAC__byte number; + /**< The index point number. */ +} FLAC__StreamMetadata_CueSheet_Index; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_INDEX_OFFSET_LEN; /**< == 64 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_INDEX_NUMBER_LEN; /**< == 8 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_INDEX_RESERVED_LEN; /**< == 3*8 (bits) */ + + +/** FLAC CUESHEET track structure. (See the + * format specification for + * the full description of each field.) + */ +typedef struct { + FLAC__uint64 offset; + /**< Track offset in samples, relative to the beginning of the FLAC audio stream. */ + + FLAC__byte number; + /**< The track number. */ + + char isrc[13]; + /**< Track ISRC. This is a 12-digit alphanumeric code plus a trailing \c NUL byte */ + + unsigned type:1; + /**< The track type: 0 for audio, 1 for non-audio. */ + + unsigned pre_emphasis:1; + /**< The pre-emphasis flag: 0 for no pre-emphasis, 1 for pre-emphasis. */ + + FLAC__byte num_indices; + /**< The number of track index points. */ + + FLAC__StreamMetadata_CueSheet_Index *indices; + /**< NULL if num_indices == 0, else pointer to array of index points. */ + +} FLAC__StreamMetadata_CueSheet_Track; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_OFFSET_LEN; /**< == 64 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_NUMBER_LEN; /**< == 8 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_ISRC_LEN; /**< == 12*8 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_TYPE_LEN; /**< == 1 (bit) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_PRE_EMPHASIS_LEN; /**< == 1 (bit) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_RESERVED_LEN; /**< == 6+13*8 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_NUM_INDICES_LEN; /**< == 8 (bits) */ + + +/** FLAC CUESHEET structure. (See the + * format specification + * for the full description of each field.) + */ +typedef struct { + char media_catalog_number[129]; + /**< Media catalog number, in ASCII printable characters 0x20-0x7e. In + * general, the media catalog number may be 0 to 128 bytes long; any + * unused characters should be right-padded with NUL characters. + */ + + FLAC__uint64 lead_in; + /**< The number of lead-in samples. */ + + FLAC__bool is_cd; + /**< \c true if CUESHEET corresponds to a Compact Disc, else \c false. */ + + unsigned num_tracks; + /**< The number of tracks. */ + + FLAC__StreamMetadata_CueSheet_Track *tracks; + /**< NULL if num_tracks == 0, else pointer to array of tracks. */ + +} FLAC__StreamMetadata_CueSheet; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_MEDIA_CATALOG_NUMBER_LEN; /**< == 128*8 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_LEAD_IN_LEN; /**< == 64 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_IS_CD_LEN; /**< == 1 (bit) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_RESERVED_LEN; /**< == 7+258*8 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_NUM_TRACKS_LEN; /**< == 8 (bits) */ + + +/** An enumeration of the PICTURE types (see FLAC__StreamMetadataPicture and id3 v2.4 APIC tag). */ +typedef enum { + FLAC__STREAM_METADATA_PICTURE_TYPE_OTHER = 0, /**< Other */ + FLAC__STREAM_METADATA_PICTURE_TYPE_FILE_ICON_STANDARD = 1, /**< 32x32 pixels 'file icon' (PNG only) */ + FLAC__STREAM_METADATA_PICTURE_TYPE_FILE_ICON = 2, /**< Other file icon */ + FLAC__STREAM_METADATA_PICTURE_TYPE_FRONT_COVER = 3, /**< Cover (front) */ + FLAC__STREAM_METADATA_PICTURE_TYPE_BACK_COVER = 4, /**< Cover (back) */ + FLAC__STREAM_METADATA_PICTURE_TYPE_LEAFLET_PAGE = 5, /**< Leaflet page */ + FLAC__STREAM_METADATA_PICTURE_TYPE_MEDIA = 6, /**< Media (e.g. label side of CD) */ + FLAC__STREAM_METADATA_PICTURE_TYPE_LEAD_ARTIST = 7, /**< Lead artist/lead performer/soloist */ + FLAC__STREAM_METADATA_PICTURE_TYPE_ARTIST = 8, /**< Artist/performer */ + FLAC__STREAM_METADATA_PICTURE_TYPE_CONDUCTOR = 9, /**< Conductor */ + FLAC__STREAM_METADATA_PICTURE_TYPE_BAND = 10, /**< Band/Orchestra */ + FLAC__STREAM_METADATA_PICTURE_TYPE_COMPOSER = 11, /**< Composer */ + FLAC__STREAM_METADATA_PICTURE_TYPE_LYRICIST = 12, /**< Lyricist/text writer */ + FLAC__STREAM_METADATA_PICTURE_TYPE_RECORDING_LOCATION = 13, /**< Recording Location */ + FLAC__STREAM_METADATA_PICTURE_TYPE_DURING_RECORDING = 14, /**< During recording */ + FLAC__STREAM_METADATA_PICTURE_TYPE_DURING_PERFORMANCE = 15, /**< During performance */ + FLAC__STREAM_METADATA_PICTURE_TYPE_VIDEO_SCREEN_CAPTURE = 16, /**< Movie/video screen capture */ + FLAC__STREAM_METADATA_PICTURE_TYPE_FISH = 17, /**< A bright coloured fish */ + FLAC__STREAM_METADATA_PICTURE_TYPE_ILLUSTRATION = 18, /**< Illustration */ + FLAC__STREAM_METADATA_PICTURE_TYPE_BAND_LOGOTYPE = 19, /**< Band/artist logotype */ + FLAC__STREAM_METADATA_PICTURE_TYPE_PUBLISHER_LOGOTYPE = 20, /**< Publisher/Studio logotype */ + FLAC__STREAM_METADATA_PICTURE_TYPE_UNDEFINED +} FLAC__StreamMetadata_Picture_Type; + +/** Maps a FLAC__StreamMetadata_Picture_Type to a C string. + * + * Using a FLAC__StreamMetadata_Picture_Type as the index to this array + * will give the string equivalent. The contents should not be + * modified. + */ +extern FLAC_API const char * const FLAC__StreamMetadata_Picture_TypeString[]; + +/** FLAC PICTURE structure. (See the + * format specification + * for the full description of each field.) + */ +typedef struct { + FLAC__StreamMetadata_Picture_Type type; + /**< The kind of picture stored. */ + + char *mime_type; + /**< Picture data's MIME type, in ASCII printable characters + * 0x20-0x7e, NUL terminated. For best compatibility with players, + * use picture data of MIME type \c image/jpeg or \c image/png. A + * MIME type of '-->' is also allowed, in which case the picture + * data should be a complete URL. In file storage, the MIME type is + * stored as a 32-bit length followed by the ASCII string with no NUL + * terminator, but is converted to a plain C string in this structure + * for convenience. + */ + + FLAC__byte *description; + /**< Picture's description in UTF-8, NUL terminated. In file storage, + * the description is stored as a 32-bit length followed by the UTF-8 + * string with no NUL terminator, but is converted to a plain C string + * in this structure for convenience. + */ + + FLAC__uint32 width; + /**< Picture's width in pixels. */ + + FLAC__uint32 height; + /**< Picture's height in pixels. */ + + FLAC__uint32 depth; + /**< Picture's color depth in bits-per-pixel. */ + + FLAC__uint32 colors; + /**< For indexed palettes (like GIF), picture's number of colors (the + * number of palette entries), or \c 0 for non-indexed (i.e. 2^depth). + */ + + FLAC__uint32 data_length; + /**< Length of binary picture data in bytes. */ + + FLAC__byte *data; + /**< Binary picture data. */ + +} FLAC__StreamMetadata_Picture; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_TYPE_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_MIME_TYPE_LENGTH_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_DESCRIPTION_LENGTH_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_WIDTH_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_HEIGHT_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_DEPTH_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_COLORS_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_DATA_LENGTH_LEN; /**< == 32 (bits) */ + + +/** Structure that is used when a metadata block of unknown type is loaded. + * The contents are opaque. The structure is used only internally to + * correctly handle unknown metadata. + */ +typedef struct { + FLAC__byte *data; +} FLAC__StreamMetadata_Unknown; + + +/** FLAC metadata block structure. (c.f. format specification) + */ +typedef struct { + FLAC__MetadataType type; + /**< The type of the metadata block; used determine which member of the + * \a data union to dereference. If type >= FLAC__METADATA_TYPE_UNDEFINED + * then \a data.unknown must be used. */ + + FLAC__bool is_last; + /**< \c true if this metadata block is the last, else \a false */ + + unsigned length; + /**< Length, in bytes, of the block data as it appears in the stream. */ + + union { + FLAC__StreamMetadata_StreamInfo stream_info; + FLAC__StreamMetadata_Padding padding; + FLAC__StreamMetadata_Application application; + FLAC__StreamMetadata_SeekTable seek_table; + FLAC__StreamMetadata_VorbisComment vorbis_comment; + FLAC__StreamMetadata_CueSheet cue_sheet; + FLAC__StreamMetadata_Picture picture; + FLAC__StreamMetadata_Unknown unknown; + } data; + /**< Polymorphic block data; use the \a type value to determine which + * to use. */ +} FLAC__StreamMetadata; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_IS_LAST_LEN; /**< == 1 (bit) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_TYPE_LEN; /**< == 7 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_LENGTH_LEN; /**< == 24 (bits) */ + +/** The total stream length of a metadata block header in bytes. */ +#define FLAC__STREAM_METADATA_HEADER_LENGTH (4u) + +/*****************************************************************************/ + + +/***************************************************************************** + * + * Utility functions + * + *****************************************************************************/ + +/** Tests that a sample rate is valid for FLAC. + * + * \param sample_rate The sample rate to test for compliance. + * \retval FLAC__bool + * \c true if the given sample rate conforms to the specification, else + * \c false. + */ +FLAC_API FLAC__bool FLAC__format_sample_rate_is_valid(unsigned sample_rate); + +/** Tests that a sample rate is valid for the FLAC subset. The subset rules + * for valid sample rates are slightly more complex since the rate has to + * be expressible completely in the frame header. + * + * \param sample_rate The sample rate to test for compliance. + * \retval FLAC__bool + * \c true if the given sample rate conforms to the specification for the + * subset, else \c false. + */ +FLAC_API FLAC__bool FLAC__format_sample_rate_is_subset(unsigned sample_rate); + +/** Check a Vorbis comment entry name to see if it conforms to the Vorbis + * comment specification. + * + * Vorbis comment names must be composed only of characters from + * [0x20-0x3C,0x3E-0x7D]. + * + * \param name A NUL-terminated string to be checked. + * \assert + * \code name != NULL \endcode + * \retval FLAC__bool + * \c false if entry name is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__format_vorbiscomment_entry_name_is_legal(const char *name); + +/** Check a Vorbis comment entry value to see if it conforms to the Vorbis + * comment specification. + * + * Vorbis comment values must be valid UTF-8 sequences. + * + * \param value A string to be checked. + * \param length A the length of \a value in bytes. May be + * \c (unsigned)(-1) to indicate that \a value is a plain + * UTF-8 NUL-terminated string. + * \assert + * \code value != NULL \endcode + * \retval FLAC__bool + * \c false if entry name is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__format_vorbiscomment_entry_value_is_legal(const FLAC__byte *value, unsigned length); + +/** Check a Vorbis comment entry to see if it conforms to the Vorbis + * comment specification. + * + * Vorbis comment entries must be of the form 'name=value', and 'name' and + * 'value' must be legal according to + * FLAC__format_vorbiscomment_entry_name_is_legal() and + * FLAC__format_vorbiscomment_entry_value_is_legal() respectively. + * + * \param entry An entry to be checked. + * \param length The length of \a entry in bytes. + * \assert + * \code value != NULL \endcode + * \retval FLAC__bool + * \c false if entry name is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__format_vorbiscomment_entry_is_legal(const FLAC__byte *entry, unsigned length); + +/** Check a seek table to see if it conforms to the FLAC specification. + * See the format specification for limits on the contents of the + * seek table. + * + * \param seek_table A pointer to a seek table to be checked. + * \assert + * \code seek_table != NULL \endcode + * \retval FLAC__bool + * \c false if seek table is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__format_seektable_is_legal(const FLAC__StreamMetadata_SeekTable *seek_table); + +/** Sort a seek table's seek points according to the format specification. + * This includes a "unique-ification" step to remove duplicates, i.e. + * seek points with identical \a sample_number values. Duplicate seek + * points are converted into placeholder points and sorted to the end of + * the table. + * + * \param seek_table A pointer to a seek table to be sorted. + * \assert + * \code seek_table != NULL \endcode + * \retval unsigned + * The number of duplicate seek points converted into placeholders. + */ +FLAC_API unsigned FLAC__format_seektable_sort(FLAC__StreamMetadata_SeekTable *seek_table); + +/** Check a cue sheet to see if it conforms to the FLAC specification. + * See the format specification for limits on the contents of the + * cue sheet. + * + * \param cue_sheet A pointer to an existing cue sheet to be checked. + * \param check_cd_da_subset If \c true, check CUESHEET against more + * stringent requirements for a CD-DA (audio) disc. + * \param violation Address of a pointer to a string. If there is a + * violation, a pointer to a string explanation of the + * violation will be returned here. \a violation may be + * \c NULL if you don't need the returned string. Do not + * free the returned string; it will always point to static + * data. + * \assert + * \code cue_sheet != NULL \endcode + * \retval FLAC__bool + * \c false if cue sheet is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__format_cuesheet_is_legal(const FLAC__StreamMetadata_CueSheet *cue_sheet, FLAC__bool check_cd_da_subset, const char **violation); + +/** Check picture data to see if it conforms to the FLAC specification. + * See the format specification for limits on the contents of the + * PICTURE block. + * + * \param picture A pointer to existing picture data to be checked. + * \param violation Address of a pointer to a string. If there is a + * violation, a pointer to a string explanation of the + * violation will be returned here. \a violation may be + * \c NULL if you don't need the returned string. Do not + * free the returned string; it will always point to static + * data. + * \assert + * \code picture != NULL \endcode + * \retval FLAC__bool + * \c false if picture data is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__format_picture_is_legal(const FLAC__StreamMetadata_Picture *picture, const char **violation); + +/* \} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/metadata.h b/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/metadata.h new file mode 100644 index 0000000..fff90b0 --- /dev/null +++ b/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/metadata.h @@ -0,0 +1,2181 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__METADATA_H +#define FLAC__METADATA_H + +#include /* for off_t */ +#include "export.h" +#include "callback.h" +#include "format.h" + +/* -------------------------------------------------------------------- + (For an example of how all these routines are used, see the source + code for the unit tests in src/test_libFLAC/metadata_*.c, or + metaflac in src/metaflac/) + ------------------------------------------------------------------*/ + +/** \file include/FLAC/metadata.h + * + * \brief + * This module provides functions for creating and manipulating FLAC + * metadata blocks in memory, and three progressively more powerful + * interfaces for traversing and editing metadata in FLAC files. + * + * See the detailed documentation for each interface in the + * \link flac_metadata metadata \endlink module. + */ + +/** \defgroup flac_metadata FLAC/metadata.h: metadata interfaces + * \ingroup flac + * + * \brief + * This module provides functions for creating and manipulating FLAC + * metadata blocks in memory, and three progressively more powerful + * interfaces for traversing and editing metadata in native FLAC files. + * Note that currently only the Chain interface (level 2) supports Ogg + * FLAC files, and it is read-only i.e. no writing back changed + * metadata to file. + * + * There are three metadata interfaces of increasing complexity: + * + * Level 0: + * Read-only access to the STREAMINFO, VORBIS_COMMENT, CUESHEET, and + * PICTURE blocks. + * + * Level 1: + * Read-write access to all metadata blocks. This level is write- + * efficient in most cases (more on this below), and uses less memory + * than level 2. + * + * Level 2: + * Read-write access to all metadata blocks. This level is write- + * efficient in all cases, but uses more memory since all metadata for + * the whole file is read into memory and manipulated before writing + * out again. + * + * What do we mean by efficient? Since FLAC metadata appears at the + * beginning of the file, when writing metadata back to a FLAC file + * it is possible to grow or shrink the metadata such that the entire + * file must be rewritten. However, if the size remains the same during + * changes or PADDING blocks are utilized, only the metadata needs to be + * overwritten, which is much faster. + * + * Efficient means the whole file is rewritten at most one time, and only + * when necessary. Level 1 is not efficient only in the case that you + * cause more than one metadata block to grow or shrink beyond what can + * be accomodated by padding. In this case you should probably use level + * 2, which allows you to edit all the metadata for a file in memory and + * write it out all at once. + * + * All levels know how to skip over and not disturb an ID3v2 tag at the + * front of the file. + * + * All levels access files via their filenames. In addition, level 2 + * has additional alternative read and write functions that take an I/O + * handle and callbacks, for situations where access by filename is not + * possible. + * + * In addition to the three interfaces, this module defines functions for + * creating and manipulating various metadata objects in memory. As we see + * from the Format module, FLAC metadata blocks in memory are very primitive + * structures for storing information in an efficient way. Reading + * information from the structures is easy but creating or modifying them + * directly is more complex. The metadata object routines here facilitate + * this by taking care of the consistency and memory management drudgery. + * + * Unless you will be using the level 1 or 2 interfaces to modify existing + * metadata however, you will not probably not need these. + * + * From a dependency standpoint, none of the encoders or decoders require + * the metadata module. This is so that embedded users can strip out the + * metadata module from libFLAC to reduce the size and complexity. + */ + +#ifdef __cplusplus +extern "C" { +#endif + + +/** \defgroup flac_metadata_level0 FLAC/metadata.h: metadata level 0 interface + * \ingroup flac_metadata + * + * \brief + * The level 0 interface consists of individual routines to read the + * STREAMINFO, VORBIS_COMMENT, CUESHEET, and PICTURE blocks, requiring + * only a filename. + * + * They try to skip any ID3v2 tag at the head of the file. + * + * \{ + */ + +/** Read the STREAMINFO metadata block of the given FLAC file. This function + * will try to skip any ID3v2 tag at the head of the file. + * + * \param filename The path to the FLAC file to read. + * \param streaminfo A pointer to space for the STREAMINFO block. Since + * FLAC__StreamMetadata is a simple structure with no + * memory allocation involved, you pass the address of + * an existing structure. It need not be initialized. + * \assert + * \code filename != NULL \endcode + * \code streaminfo != NULL \endcode + * \retval FLAC__bool + * \c true if a valid STREAMINFO block was read from \a filename. Returns + * \c false if there was a memory allocation error, a file decoder error, + * or the file contained no STREAMINFO block. (A memory allocation error + * is possible because this function must set up a file decoder.) + */ +FLAC_API FLAC__bool FLAC__metadata_get_streaminfo(const char *filename, FLAC__StreamMetadata *streaminfo); + +/** Read the VORBIS_COMMENT metadata block of the given FLAC file. This + * function will try to skip any ID3v2 tag at the head of the file. + * + * \param filename The path to the FLAC file to read. + * \param tags The address where the returned pointer will be + * stored. The \a tags object must be deleted by + * the caller using FLAC__metadata_object_delete(). + * \assert + * \code filename != NULL \endcode + * \code tags != NULL \endcode + * \retval FLAC__bool + * \c true if a valid VORBIS_COMMENT block was read from \a filename, + * and \a *tags will be set to the address of the metadata structure. + * Returns \c false if there was a memory allocation error, a file + * decoder error, or the file contained no VORBIS_COMMENT block, and + * \a *tags will be set to \c NULL. + */ +FLAC_API FLAC__bool FLAC__metadata_get_tags(const char *filename, FLAC__StreamMetadata **tags); + +/** Read the CUESHEET metadata block of the given FLAC file. This + * function will try to skip any ID3v2 tag at the head of the file. + * + * \param filename The path to the FLAC file to read. + * \param cuesheet The address where the returned pointer will be + * stored. The \a cuesheet object must be deleted by + * the caller using FLAC__metadata_object_delete(). + * \assert + * \code filename != NULL \endcode + * \code cuesheet != NULL \endcode + * \retval FLAC__bool + * \c true if a valid CUESHEET block was read from \a filename, + * and \a *cuesheet will be set to the address of the metadata + * structure. Returns \c false if there was a memory allocation + * error, a file decoder error, or the file contained no CUESHEET + * block, and \a *cuesheet will be set to \c NULL. + */ +FLAC_API FLAC__bool FLAC__metadata_get_cuesheet(const char *filename, FLAC__StreamMetadata **cuesheet); + +/** Read a PICTURE metadata block of the given FLAC file. This + * function will try to skip any ID3v2 tag at the head of the file. + * Since there can be more than one PICTURE block in a file, this + * function takes a number of parameters that act as constraints to + * the search. The PICTURE block with the largest area matching all + * the constraints will be returned, or \a *picture will be set to + * \c NULL if there was no such block. + * + * \param filename The path to the FLAC file to read. + * \param picture The address where the returned pointer will be + * stored. The \a picture object must be deleted by + * the caller using FLAC__metadata_object_delete(). + * \param type The desired picture type. Use \c -1 to mean + * "any type". + * \param mime_type The desired MIME type, e.g. "image/jpeg". The + * string will be matched exactly. Use \c NULL to + * mean "any MIME type". + * \param description The desired description. The string will be + * matched exactly. Use \c NULL to mean "any + * description". + * \param max_width The maximum width in pixels desired. Use + * \c (unsigned)(-1) to mean "any width". + * \param max_height The maximum height in pixels desired. Use + * \c (unsigned)(-1) to mean "any height". + * \param max_depth The maximum color depth in bits-per-pixel desired. + * Use \c (unsigned)(-1) to mean "any depth". + * \param max_colors The maximum number of colors desired. Use + * \c (unsigned)(-1) to mean "any number of colors". + * \assert + * \code filename != NULL \endcode + * \code picture != NULL \endcode + * \retval FLAC__bool + * \c true if a valid PICTURE block was read from \a filename, + * and \a *picture will be set to the address of the metadata + * structure. Returns \c false if there was a memory allocation + * error, a file decoder error, or the file contained no PICTURE + * block, and \a *picture will be set to \c NULL. + */ +FLAC_API FLAC__bool FLAC__metadata_get_picture(const char *filename, FLAC__StreamMetadata **picture, FLAC__StreamMetadata_Picture_Type type, const char *mime_type, const FLAC__byte *description, unsigned max_width, unsigned max_height, unsigned max_depth, unsigned max_colors); + +/* \} */ + + +/** \defgroup flac_metadata_level1 FLAC/metadata.h: metadata level 1 interface + * \ingroup flac_metadata + * + * \brief + * The level 1 interface provides read-write access to FLAC file metadata and + * operates directly on the FLAC file. + * + * The general usage of this interface is: + * + * - Create an iterator using FLAC__metadata_simple_iterator_new() + * - Attach it to a file using FLAC__metadata_simple_iterator_init() and check + * the exit code. Call FLAC__metadata_simple_iterator_is_writable() to + * see if the file is writable, or only read access is allowed. + * - Use FLAC__metadata_simple_iterator_next() and + * FLAC__metadata_simple_iterator_prev() to traverse the blocks. + * This is does not read the actual blocks themselves. + * FLAC__metadata_simple_iterator_next() is relatively fast. + * FLAC__metadata_simple_iterator_prev() is slower since it needs to search + * forward from the front of the file. + * - Use FLAC__metadata_simple_iterator_get_block_type() or + * FLAC__metadata_simple_iterator_get_block() to access the actual data at + * the current iterator position. The returned object is yours to modify + * and free. + * - Use FLAC__metadata_simple_iterator_set_block() to write a modified block + * back. You must have write permission to the original file. Make sure to + * read the whole comment to FLAC__metadata_simple_iterator_set_block() + * below. + * - Use FLAC__metadata_simple_iterator_insert_block_after() to add new blocks. + * Use the object creation functions from + * \link flac_metadata_object here \endlink to generate new objects. + * - Use FLAC__metadata_simple_iterator_delete_block() to remove the block + * currently referred to by the iterator, or replace it with padding. + * - Destroy the iterator with FLAC__metadata_simple_iterator_delete() when + * finished. + * + * \note + * The FLAC file remains open the whole time between + * FLAC__metadata_simple_iterator_init() and + * FLAC__metadata_simple_iterator_delete(), so make sure you are not altering + * the file during this time. + * + * \note + * Do not modify the \a is_last, \a length, or \a type fields of returned + * FLAC__StreamMetadata objects. These are managed automatically. + * + * \note + * If any of the modification functions + * (FLAC__metadata_simple_iterator_set_block(), + * FLAC__metadata_simple_iterator_delete_block(), + * FLAC__metadata_simple_iterator_insert_block_after(), etc.) return \c false, + * you should delete the iterator as it may no longer be valid. + * + * \{ + */ + +struct FLAC__Metadata_SimpleIterator; +/** The opaque structure definition for the level 1 iterator type. + * See the + * \link flac_metadata_level1 metadata level 1 module \endlink + * for a detailed description. + */ +typedef struct FLAC__Metadata_SimpleIterator FLAC__Metadata_SimpleIterator; + +/** Status type for FLAC__Metadata_SimpleIterator. + * + * The iterator's current status can be obtained by calling FLAC__metadata_simple_iterator_status(). + */ +typedef enum { + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_OK = 0, + /**< The iterator is in the normal OK state */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_ILLEGAL_INPUT, + /**< The data passed into a function violated the function's usage criteria */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_ERROR_OPENING_FILE, + /**< The iterator could not open the target file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_NOT_A_FLAC_FILE, + /**< The iterator could not find the FLAC signature at the start of the file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_NOT_WRITABLE, + /**< The iterator tried to write to a file that was not writable */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_BAD_METADATA, + /**< The iterator encountered input that does not conform to the FLAC metadata specification */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_READ_ERROR, + /**< The iterator encountered an error while reading the FLAC file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_SEEK_ERROR, + /**< The iterator encountered an error while seeking in the FLAC file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_WRITE_ERROR, + /**< The iterator encountered an error while writing the FLAC file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_RENAME_ERROR, + /**< The iterator encountered an error renaming the FLAC file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_UNLINK_ERROR, + /**< The iterator encountered an error removing the temporary file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_MEMORY_ALLOCATION_ERROR, + /**< Memory allocation failed */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_INTERNAL_ERROR + /**< The caller violated an assertion or an unexpected error occurred */ + +} FLAC__Metadata_SimpleIteratorStatus; + +/** Maps a FLAC__Metadata_SimpleIteratorStatus to a C string. + * + * Using a FLAC__Metadata_SimpleIteratorStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__Metadata_SimpleIteratorStatusString[]; + + +/** Create a new iterator instance. + * + * \retval FLAC__Metadata_SimpleIterator* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__Metadata_SimpleIterator *FLAC__metadata_simple_iterator_new(void); + +/** Free an iterator instance. Deletes the object pointed to by \a iterator. + * + * \param iterator A pointer to an existing iterator. + * \assert + * \code iterator != NULL \endcode + */ +FLAC_API void FLAC__metadata_simple_iterator_delete(FLAC__Metadata_SimpleIterator *iterator); + +/** Get the current status of the iterator. Call this after a function + * returns \c false to get the reason for the error. Also resets the status + * to FLAC__METADATA_SIMPLE_ITERATOR_STATUS_OK. + * + * \param iterator A pointer to an existing iterator. + * \assert + * \code iterator != NULL \endcode + * \retval FLAC__Metadata_SimpleIteratorStatus + * The current status of the iterator. + */ +FLAC_API FLAC__Metadata_SimpleIteratorStatus FLAC__metadata_simple_iterator_status(FLAC__Metadata_SimpleIterator *iterator); + +/** Initialize the iterator to point to the first metadata block in the + * given FLAC file. + * + * \param iterator A pointer to an existing iterator. + * \param filename The path to the FLAC file. + * \param read_only If \c true, the FLAC file will be opened + * in read-only mode; if \c false, the FLAC + * file will be opened for edit even if no + * edits are performed. + * \param preserve_file_stats If \c true, the owner and modification + * time will be preserved even if the FLAC + * file is written to. + * \assert + * \code iterator != NULL \endcode + * \code filename != NULL \endcode + * \retval FLAC__bool + * \c false if a memory allocation error occurs, the file can't be + * opened, or another error occurs, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_init(FLAC__Metadata_SimpleIterator *iterator, const char *filename, FLAC__bool read_only, FLAC__bool preserve_file_stats); + +/** Returns \c true if the FLAC file is writable. If \c false, calls to + * FLAC__metadata_simple_iterator_set_block() and + * FLAC__metadata_simple_iterator_insert_block_after() will fail. + * + * \param iterator A pointer to an existing iterator. + * \assert + * \code iterator != NULL \endcode + * \retval FLAC__bool + * See above. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_is_writable(const FLAC__Metadata_SimpleIterator *iterator); + +/** Moves the iterator forward one metadata block, returning \c false if + * already at the end. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__bool + * \c false if already at the last metadata block of the chain, else + * \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_next(FLAC__Metadata_SimpleIterator *iterator); + +/** Moves the iterator backward one metadata block, returning \c false if + * already at the beginning. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__bool + * \c false if already at the first metadata block of the chain, else + * \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_prev(FLAC__Metadata_SimpleIterator *iterator); + +/** Returns a flag telling if the current metadata block is the last. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__bool + * \c true if the current metadata block is the last in the file, + * else \c false. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_is_last(const FLAC__Metadata_SimpleIterator *iterator); + +/** Get the offset of the metadata block at the current position. This + * avoids reading the actual block data which can save time for large + * blocks. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval off_t + * The offset of the metadata block at the current iterator position. + * This is the byte offset relative to the beginning of the file of + * the current metadata block's header. + */ +FLAC_API off_t FLAC__metadata_simple_iterator_get_block_offset(const FLAC__Metadata_SimpleIterator *iterator); + +/** Get the type of the metadata block at the current position. This + * avoids reading the actual block data which can save time for large + * blocks. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__MetadataType + * The type of the metadata block at the current iterator position. + */ +FLAC_API FLAC__MetadataType FLAC__metadata_simple_iterator_get_block_type(const FLAC__Metadata_SimpleIterator *iterator); + +/** Get the length of the metadata block at the current position. This + * avoids reading the actual block data which can save time for large + * blocks. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval unsigned + * The length of the metadata block at the current iterator position. + * The is same length as that in the + * metadata block header, + * i.e. the length of the metadata body that follows the header. + */ +FLAC_API unsigned FLAC__metadata_simple_iterator_get_block_length(const FLAC__Metadata_SimpleIterator *iterator); + +/** Get the application ID of the \c APPLICATION block at the current + * position. This avoids reading the actual block data which can save + * time for large blocks. + * + * \param iterator A pointer to an existing initialized iterator. + * \param id A pointer to a buffer of at least \c 4 bytes where + * the ID will be stored. + * \assert + * \code iterator != NULL \endcode + * \code id != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__bool + * \c true if the ID was successfully read, else \c false, in which + * case you should check FLAC__metadata_simple_iterator_status() to + * find out why. If the status is + * \c FLAC__METADATA_SIMPLE_ITERATOR_STATUS_ILLEGAL_INPUT, then the + * current metadata block is not an \c APPLICATION block. Otherwise + * if the status is + * \c FLAC__METADATA_SIMPLE_ITERATOR_STATUS_READ_ERROR or + * \c FLAC__METADATA_SIMPLE_ITERATOR_STATUS_SEEK_ERROR, an I/O error + * occurred and the iterator can no longer be used. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_get_application_id(FLAC__Metadata_SimpleIterator *iterator, FLAC__byte *id); + +/** Get the metadata block at the current position. You can modify the + * block but must use FLAC__metadata_simple_iterator_set_block() to + * write it back to the FLAC file. + * + * You must call FLAC__metadata_object_delete() on the returned object + * when you are finished with it. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__StreamMetadata* + * The current metadata block, or \c NULL if there was a memory + * allocation error. + */ +FLAC_API FLAC__StreamMetadata *FLAC__metadata_simple_iterator_get_block(FLAC__Metadata_SimpleIterator *iterator); + +/** Write a block back to the FLAC file. This function tries to be + * as efficient as possible; how the block is actually written is + * shown by the following: + * + * Existing block is a STREAMINFO block and the new block is a + * STREAMINFO block: the new block is written in place. Make sure + * you know what you're doing when changing the values of a + * STREAMINFO block. + * + * Existing block is a STREAMINFO block and the new block is a + * not a STREAMINFO block: this is an error since the first block + * must be a STREAMINFO block. Returns \c false without altering the + * file. + * + * Existing block is not a STREAMINFO block and the new block is a + * STREAMINFO block: this is an error since there may be only one + * STREAMINFO block. Returns \c false without altering the file. + * + * Existing block and new block are the same length: the existing + * block will be replaced by the new block, written in place. + * + * Existing block is longer than new block: if use_padding is \c true, + * the existing block will be overwritten in place with the new + * block followed by a PADDING block, if possible, to make the total + * size the same as the existing block. Remember that a padding + * block requires at least four bytes so if the difference in size + * between the new block and existing block is less than that, the + * entire file will have to be rewritten, using the new block's + * exact size. If use_padding is \c false, the entire file will be + * rewritten, replacing the existing block by the new block. + * + * Existing block is shorter than new block: if use_padding is \c true, + * the function will try and expand the new block into the following + * PADDING block, if it exists and doing so won't shrink the PADDING + * block to less than 4 bytes. If there is no following PADDING + * block, or it will shrink to less than 4 bytes, or use_padding is + * \c false, the entire file is rewritten, replacing the existing block + * with the new block. Note that in this case any following PADDING + * block is preserved as is. + * + * After writing the block, the iterator will remain in the same + * place, i.e. pointing to the new block. + * + * \param iterator A pointer to an existing initialized iterator. + * \param block The block to set. + * \param use_padding See above. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \code block != NULL \endcode + * \retval FLAC__bool + * \c true if successful, else \c false. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_set_block(FLAC__Metadata_SimpleIterator *iterator, FLAC__StreamMetadata *block, FLAC__bool use_padding); + +/** This is similar to FLAC__metadata_simple_iterator_set_block() + * except that instead of writing over an existing block, it appends + * a block after the existing block. \a use_padding is again used to + * tell the function to try an expand into following padding in an + * attempt to avoid rewriting the entire file. + * + * This function will fail and return \c false if given a STREAMINFO + * block. + * + * After writing the block, the iterator will be pointing to the + * new block. + * + * \param iterator A pointer to an existing initialized iterator. + * \param block The block to set. + * \param use_padding See above. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \code block != NULL \endcode + * \retval FLAC__bool + * \c true if successful, else \c false. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_insert_block_after(FLAC__Metadata_SimpleIterator *iterator, FLAC__StreamMetadata *block, FLAC__bool use_padding); + +/** Deletes the block at the current position. This will cause the + * entire FLAC file to be rewritten, unless \a use_padding is \c true, + * in which case the block will be replaced by an equal-sized PADDING + * block. The iterator will be left pointing to the block before the + * one just deleted. + * + * You may not delete the STREAMINFO block. + * + * \param iterator A pointer to an existing initialized iterator. + * \param use_padding See above. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__bool + * \c true if successful, else \c false. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_delete_block(FLAC__Metadata_SimpleIterator *iterator, FLAC__bool use_padding); + +/* \} */ + + +/** \defgroup flac_metadata_level2 FLAC/metadata.h: metadata level 2 interface + * \ingroup flac_metadata + * + * \brief + * The level 2 interface provides read-write access to FLAC file metadata; + * all metadata is read into memory, operated on in memory, and then written + * to file, which is more efficient than level 1 when editing multiple blocks. + * + * Currently Ogg FLAC is supported for read only, via + * FLAC__metadata_chain_read_ogg() but a subsequent + * FLAC__metadata_chain_write() will fail. + * + * The general usage of this interface is: + * + * - Create a new chain using FLAC__metadata_chain_new(). A chain is a + * linked list of FLAC metadata blocks. + * - Read all metadata into the the chain from a FLAC file using + * FLAC__metadata_chain_read() or FLAC__metadata_chain_read_ogg() and + * check the status. + * - Optionally, consolidate the padding using + * FLAC__metadata_chain_merge_padding() or + * FLAC__metadata_chain_sort_padding(). + * - Create a new iterator using FLAC__metadata_iterator_new() + * - Initialize the iterator to point to the first element in the chain + * using FLAC__metadata_iterator_init() + * - Traverse the chain using FLAC__metadata_iterator_next and + * FLAC__metadata_iterator_prev(). + * - Get a block for reading or modification using + * FLAC__metadata_iterator_get_block(). The pointer to the object + * inside the chain is returned, so the block is yours to modify. + * Changes will be reflected in the FLAC file when you write the + * chain. You can also add and delete blocks (see functions below). + * - When done, write out the chain using FLAC__metadata_chain_write(). + * Make sure to read the whole comment to the function below. + * - Delete the chain using FLAC__metadata_chain_delete(). + * + * \note + * Even though the FLAC file is not open while the chain is being + * manipulated, you must not alter the file externally during + * this time. The chain assumes the FLAC file will not change + * between the time of FLAC__metadata_chain_read()/FLAC__metadata_chain_read_ogg() + * and FLAC__metadata_chain_write(). + * + * \note + * Do not modify the is_last, length, or type fields of returned + * FLAC__StreamMetadata objects. These are managed automatically. + * + * \note + * The metadata objects returned by FLAC__metadata_iterator_get_block() + * are owned by the chain; do not FLAC__metadata_object_delete() them. + * In the same way, blocks passed to FLAC__metadata_iterator_set_block() + * become owned by the chain and they will be deleted when the chain is + * deleted. + * + * \{ + */ + +struct FLAC__Metadata_Chain; +/** The opaque structure definition for the level 2 chain type. + */ +typedef struct FLAC__Metadata_Chain FLAC__Metadata_Chain; + +struct FLAC__Metadata_Iterator; +/** The opaque structure definition for the level 2 iterator type. + */ +typedef struct FLAC__Metadata_Iterator FLAC__Metadata_Iterator; + +typedef enum { + FLAC__METADATA_CHAIN_STATUS_OK = 0, + /**< The chain is in the normal OK state */ + + FLAC__METADATA_CHAIN_STATUS_ILLEGAL_INPUT, + /**< The data passed into a function violated the function's usage criteria */ + + FLAC__METADATA_CHAIN_STATUS_ERROR_OPENING_FILE, + /**< The chain could not open the target file */ + + FLAC__METADATA_CHAIN_STATUS_NOT_A_FLAC_FILE, + /**< The chain could not find the FLAC signature at the start of the file */ + + FLAC__METADATA_CHAIN_STATUS_NOT_WRITABLE, + /**< The chain tried to write to a file that was not writable */ + + FLAC__METADATA_CHAIN_STATUS_BAD_METADATA, + /**< The chain encountered input that does not conform to the FLAC metadata specification */ + + FLAC__METADATA_CHAIN_STATUS_READ_ERROR, + /**< The chain encountered an error while reading the FLAC file */ + + FLAC__METADATA_CHAIN_STATUS_SEEK_ERROR, + /**< The chain encountered an error while seeking in the FLAC file */ + + FLAC__METADATA_CHAIN_STATUS_WRITE_ERROR, + /**< The chain encountered an error while writing the FLAC file */ + + FLAC__METADATA_CHAIN_STATUS_RENAME_ERROR, + /**< The chain encountered an error renaming the FLAC file */ + + FLAC__METADATA_CHAIN_STATUS_UNLINK_ERROR, + /**< The chain encountered an error removing the temporary file */ + + FLAC__METADATA_CHAIN_STATUS_MEMORY_ALLOCATION_ERROR, + /**< Memory allocation failed */ + + FLAC__METADATA_CHAIN_STATUS_INTERNAL_ERROR, + /**< The caller violated an assertion or an unexpected error occurred */ + + FLAC__METADATA_CHAIN_STATUS_INVALID_CALLBACKS, + /**< One or more of the required callbacks was NULL */ + + FLAC__METADATA_CHAIN_STATUS_READ_WRITE_MISMATCH, + /**< FLAC__metadata_chain_write() was called on a chain read by + * FLAC__metadata_chain_read_with_callbacks()/FLAC__metadata_chain_read_ogg_with_callbacks(), + * or + * FLAC__metadata_chain_write_with_callbacks()/FLAC__metadata_chain_write_with_callbacks_and_tempfile() + * was called on a chain read by + * FLAC__metadata_chain_read()/FLAC__metadata_chain_read_ogg(). + * Matching read/write methods must always be used. */ + + FLAC__METADATA_CHAIN_STATUS_WRONG_WRITE_CALL + /**< FLAC__metadata_chain_write_with_callbacks() was called when the + * chain write requires a tempfile; use + * FLAC__metadata_chain_write_with_callbacks_and_tempfile() instead. + * Or, FLAC__metadata_chain_write_with_callbacks_and_tempfile() was + * called when the chain write does not require a tempfile; use + * FLAC__metadata_chain_write_with_callbacks() instead. + * Always check FLAC__metadata_chain_check_if_tempfile_needed() + * before writing via callbacks. */ + +} FLAC__Metadata_ChainStatus; + +/** Maps a FLAC__Metadata_ChainStatus to a C string. + * + * Using a FLAC__Metadata_ChainStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__Metadata_ChainStatusString[]; + +/*********** FLAC__Metadata_Chain ***********/ + +/** Create a new chain instance. + * + * \retval FLAC__Metadata_Chain* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__Metadata_Chain *FLAC__metadata_chain_new(void); + +/** Free a chain instance. Deletes the object pointed to by \a chain. + * + * \param chain A pointer to an existing chain. + * \assert + * \code chain != NULL \endcode + */ +FLAC_API void FLAC__metadata_chain_delete(FLAC__Metadata_Chain *chain); + +/** Get the current status of the chain. Call this after a function + * returns \c false to get the reason for the error. Also resets the + * status to FLAC__METADATA_CHAIN_STATUS_OK. + * + * \param chain A pointer to an existing chain. + * \assert + * \code chain != NULL \endcode + * \retval FLAC__Metadata_ChainStatus + * The current status of the chain. + */ +FLAC_API FLAC__Metadata_ChainStatus FLAC__metadata_chain_status(FLAC__Metadata_Chain *chain); + +/** Read all metadata from a FLAC file into the chain. + * + * \param chain A pointer to an existing chain. + * \param filename The path to the FLAC file to read. + * \assert + * \code chain != NULL \endcode + * \code filename != NULL \endcode + * \retval FLAC__bool + * \c true if a valid list of metadata blocks was read from + * \a filename, else \c false. On failure, check the status with + * FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_read(FLAC__Metadata_Chain *chain, const char *filename); + +/** Read all metadata from an Ogg FLAC file into the chain. + * + * \note Ogg FLAC metadata data writing is not supported yet and + * FLAC__metadata_chain_write() will fail. + * + * \param chain A pointer to an existing chain. + * \param filename The path to the Ogg FLAC file to read. + * \assert + * \code chain != NULL \endcode + * \code filename != NULL \endcode + * \retval FLAC__bool + * \c true if a valid list of metadata blocks was read from + * \a filename, else \c false. On failure, check the status with + * FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_read_ogg(FLAC__Metadata_Chain *chain, const char *filename); + +/** Read all metadata from a FLAC stream into the chain via I/O callbacks. + * + * The \a handle need only be open for reading, but must be seekable. + * The equivalent minimum stdio fopen() file mode is \c "r" (or \c "rb" + * for Windows). + * + * \param chain A pointer to an existing chain. + * \param handle The I/O handle of the FLAC stream to read. The + * handle will NOT be closed after the metadata is read; + * that is the duty of the caller. + * \param callbacks + * A set of callbacks to use for I/O. The mandatory + * callbacks are \a read, \a seek, and \a tell. + * \assert + * \code chain != NULL \endcode + * \retval FLAC__bool + * \c true if a valid list of metadata blocks was read from + * \a handle, else \c false. On failure, check the status with + * FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_read_with_callbacks(FLAC__Metadata_Chain *chain, FLAC__IOHandle handle, FLAC__IOCallbacks callbacks); + +/** Read all metadata from an Ogg FLAC stream into the chain via I/O callbacks. + * + * The \a handle need only be open for reading, but must be seekable. + * The equivalent minimum stdio fopen() file mode is \c "r" (or \c "rb" + * for Windows). + * + * \note Ogg FLAC metadata data writing is not supported yet and + * FLAC__metadata_chain_write() will fail. + * + * \param chain A pointer to an existing chain. + * \param handle The I/O handle of the Ogg FLAC stream to read. The + * handle will NOT be closed after the metadata is read; + * that is the duty of the caller. + * \param callbacks + * A set of callbacks to use for I/O. The mandatory + * callbacks are \a read, \a seek, and \a tell. + * \assert + * \code chain != NULL \endcode + * \retval FLAC__bool + * \c true if a valid list of metadata blocks was read from + * \a handle, else \c false. On failure, check the status with + * FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_read_ogg_with_callbacks(FLAC__Metadata_Chain *chain, FLAC__IOHandle handle, FLAC__IOCallbacks callbacks); + +/** Checks if writing the given chain would require the use of a + * temporary file, or if it could be written in place. + * + * Under certain conditions, padding can be utilized so that writing + * edited metadata back to the FLAC file does not require rewriting the + * entire file. If rewriting is required, then a temporary workfile is + * required. When writing metadata using callbacks, you must check + * this function to know whether to call + * FLAC__metadata_chain_write_with_callbacks() or + * FLAC__metadata_chain_write_with_callbacks_and_tempfile(). When + * writing with FLAC__metadata_chain_write(), the temporary file is + * handled internally. + * + * \param chain A pointer to an existing chain. + * \param use_padding + * Whether or not padding will be allowed to be used + * during the write. The value of \a use_padding given + * here must match the value later passed to + * FLAC__metadata_chain_write_with_callbacks() or + * FLAC__metadata_chain_write_with_callbacks_with_tempfile(). + * \assert + * \code chain != NULL \endcode + * \retval FLAC__bool + * \c true if writing the current chain would require a tempfile, or + * \c false if metadata can be written in place. + */ +FLAC_API FLAC__bool FLAC__metadata_chain_check_if_tempfile_needed(FLAC__Metadata_Chain *chain, FLAC__bool use_padding); + +/** Write all metadata out to the FLAC file. This function tries to be as + * efficient as possible; how the metadata is actually written is shown by + * the following: + * + * If the current chain is the same size as the existing metadata, the new + * data is written in place. + * + * If the current chain is longer than the existing metadata, and + * \a use_padding is \c true, and the last block is a PADDING block of + * sufficient length, the function will truncate the final padding block + * so that the overall size of the metadata is the same as the existing + * metadata, and then just rewrite the metadata. Otherwise, if not all of + * the above conditions are met, the entire FLAC file must be rewritten. + * If you want to use padding this way it is a good idea to call + * FLAC__metadata_chain_sort_padding() first so that you have the maximum + * amount of padding to work with, unless you need to preserve ordering + * of the PADDING blocks for some reason. + * + * If the current chain is shorter than the existing metadata, and + * \a use_padding is \c true, and the final block is a PADDING block, the padding + * is extended to make the overall size the same as the existing data. If + * \a use_padding is \c true and the last block is not a PADDING block, a new + * PADDING block is added to the end of the new data to make it the same + * size as the existing data (if possible, see the note to + * FLAC__metadata_simple_iterator_set_block() about the four byte limit) + * and the new data is written in place. If none of the above apply or + * \a use_padding is \c false, the entire FLAC file is rewritten. + * + * If \a preserve_file_stats is \c true, the owner and modification time will + * be preserved even if the FLAC file is written. + * + * For this write function to be used, the chain must have been read with + * FLAC__metadata_chain_read()/FLAC__metadata_chain_read_ogg(), not + * FLAC__metadata_chain_read_with_callbacks()/FLAC__metadata_chain_read_ogg_with_callbacks(). + * + * \param chain A pointer to an existing chain. + * \param use_padding See above. + * \param preserve_file_stats See above. + * \assert + * \code chain != NULL \endcode + * \retval FLAC__bool + * \c true if the write succeeded, else \c false. On failure, + * check the status with FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_write(FLAC__Metadata_Chain *chain, FLAC__bool use_padding, FLAC__bool preserve_file_stats); + +/** Write all metadata out to a FLAC stream via callbacks. + * + * (See FLAC__metadata_chain_write() for the details on how padding is + * used to write metadata in place if possible.) + * + * The \a handle must be open for updating and be seekable. The + * equivalent minimum stdio fopen() file mode is \c "r+" (or \c "r+b" + * for Windows). + * + * For this write function to be used, the chain must have been read with + * FLAC__metadata_chain_read_with_callbacks()/FLAC__metadata_chain_read_ogg_with_callbacks(), + * not FLAC__metadata_chain_read()/FLAC__metadata_chain_read_ogg(). + * Also, FLAC__metadata_chain_check_if_tempfile_needed() must have returned + * \c false. + * + * \param chain A pointer to an existing chain. + * \param use_padding See FLAC__metadata_chain_write() + * \param handle The I/O handle of the FLAC stream to write. The + * handle will NOT be closed after the metadata is + * written; that is the duty of the caller. + * \param callbacks A set of callbacks to use for I/O. The mandatory + * callbacks are \a write and \a seek. + * \assert + * \code chain != NULL \endcode + * \retval FLAC__bool + * \c true if the write succeeded, else \c false. On failure, + * check the status with FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_write_with_callbacks(FLAC__Metadata_Chain *chain, FLAC__bool use_padding, FLAC__IOHandle handle, FLAC__IOCallbacks callbacks); + +/** Write all metadata out to a FLAC stream via callbacks. + * + * (See FLAC__metadata_chain_write() for the details on how padding is + * used to write metadata in place if possible.) + * + * This version of the write-with-callbacks function must be used when + * FLAC__metadata_chain_check_if_tempfile_needed() returns true. In + * this function, you must supply an I/O handle corresponding to the + * FLAC file to edit, and a temporary handle to which the new FLAC + * file will be written. It is the caller's job to move this temporary + * FLAC file on top of the original FLAC file to complete the metadata + * edit. + * + * The \a handle must be open for reading and be seekable. The + * equivalent minimum stdio fopen() file mode is \c "r" (or \c "rb" + * for Windows). + * + * The \a temp_handle must be open for writing. The + * equivalent minimum stdio fopen() file mode is \c "w" (or \c "wb" + * for Windows). It should be an empty stream, or at least positioned + * at the start-of-file (in which case it is the caller's duty to + * truncate it on return). + * + * For this write function to be used, the chain must have been read with + * FLAC__metadata_chain_read_with_callbacks()/FLAC__metadata_chain_read_ogg_with_callbacks(), + * not FLAC__metadata_chain_read()/FLAC__metadata_chain_read_ogg(). + * Also, FLAC__metadata_chain_check_if_tempfile_needed() must have returned + * \c true. + * + * \param chain A pointer to an existing chain. + * \param use_padding See FLAC__metadata_chain_write() + * \param handle The I/O handle of the original FLAC stream to read. + * The handle will NOT be closed after the metadata is + * written; that is the duty of the caller. + * \param callbacks A set of callbacks to use for I/O on \a handle. + * The mandatory callbacks are \a read, \a seek, and + * \a eof. + * \param temp_handle The I/O handle of the FLAC stream to write. The + * handle will NOT be closed after the metadata is + * written; that is the duty of the caller. + * \param temp_callbacks + * A set of callbacks to use for I/O on temp_handle. + * The only mandatory callback is \a write. + * \assert + * \code chain != NULL \endcode + * \retval FLAC__bool + * \c true if the write succeeded, else \c false. On failure, + * check the status with FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_write_with_callbacks_and_tempfile(FLAC__Metadata_Chain *chain, FLAC__bool use_padding, FLAC__IOHandle handle, FLAC__IOCallbacks callbacks, FLAC__IOHandle temp_handle, FLAC__IOCallbacks temp_callbacks); + +/** Merge adjacent PADDING blocks into a single block. + * + * \note This function does not write to the FLAC file, it only + * modifies the chain. + * + * \warning Any iterator on the current chain will become invalid after this + * call. You should delete the iterator and get a new one. + * + * \param chain A pointer to an existing chain. + * \assert + * \code chain != NULL \endcode + */ +FLAC_API void FLAC__metadata_chain_merge_padding(FLAC__Metadata_Chain *chain); + +/** This function will move all PADDING blocks to the end on the metadata, + * then merge them into a single block. + * + * \note This function does not write to the FLAC file, it only + * modifies the chain. + * + * \warning Any iterator on the current chain will become invalid after this + * call. You should delete the iterator and get a new one. + * + * \param chain A pointer to an existing chain. + * \assert + * \code chain != NULL \endcode + */ +FLAC_API void FLAC__metadata_chain_sort_padding(FLAC__Metadata_Chain *chain); + + +/*********** FLAC__Metadata_Iterator ***********/ + +/** Create a new iterator instance. + * + * \retval FLAC__Metadata_Iterator* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__Metadata_Iterator *FLAC__metadata_iterator_new(void); + +/** Free an iterator instance. Deletes the object pointed to by \a iterator. + * + * \param iterator A pointer to an existing iterator. + * \assert + * \code iterator != NULL \endcode + */ +FLAC_API void FLAC__metadata_iterator_delete(FLAC__Metadata_Iterator *iterator); + +/** Initialize the iterator to point to the first metadata block in the + * given chain. + * + * \param iterator A pointer to an existing iterator. + * \param chain A pointer to an existing and initialized (read) chain. + * \assert + * \code iterator != NULL \endcode + * \code chain != NULL \endcode + */ +FLAC_API void FLAC__metadata_iterator_init(FLAC__Metadata_Iterator *iterator, FLAC__Metadata_Chain *chain); + +/** Moves the iterator forward one metadata block, returning \c false if + * already at the end. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__bool + * \c false if already at the last metadata block of the chain, else + * \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_iterator_next(FLAC__Metadata_Iterator *iterator); + +/** Moves the iterator backward one metadata block, returning \c false if + * already at the beginning. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__bool + * \c false if already at the first metadata block of the chain, else + * \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_iterator_prev(FLAC__Metadata_Iterator *iterator); + +/** Get the type of the metadata block at the current position. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__MetadataType + * The type of the metadata block at the current iterator position. + */ +FLAC_API FLAC__MetadataType FLAC__metadata_iterator_get_block_type(const FLAC__Metadata_Iterator *iterator); + +/** Get the metadata block at the current position. You can modify + * the block in place but must write the chain before the changes + * are reflected to the FLAC file. You do not need to call + * FLAC__metadata_iterator_set_block() to reflect the changes; + * the pointer returned by FLAC__metadata_iterator_get_block() + * points directly into the chain. + * + * \warning + * Do not call FLAC__metadata_object_delete() on the returned object; + * to delete a block use FLAC__metadata_iterator_delete_block(). + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__StreamMetadata* + * The current metadata block. + */ +FLAC_API FLAC__StreamMetadata *FLAC__metadata_iterator_get_block(FLAC__Metadata_Iterator *iterator); + +/** Set the metadata block at the current position, replacing the existing + * block. The new block passed in becomes owned by the chain and it will be + * deleted when the chain is deleted. + * + * \param iterator A pointer to an existing initialized iterator. + * \param block A pointer to a metadata block. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \code block != NULL \endcode + * \retval FLAC__bool + * \c false if the conditions in the above description are not met, or + * a memory allocation error occurs, otherwise \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_iterator_set_block(FLAC__Metadata_Iterator *iterator, FLAC__StreamMetadata *block); + +/** Removes the current block from the chain. If \a replace_with_padding is + * \c true, the block will instead be replaced with a padding block of equal + * size. You can not delete the STREAMINFO block. The iterator will be + * left pointing to the block before the one just "deleted", even if + * \a replace_with_padding is \c true. + * + * \param iterator A pointer to an existing initialized iterator. + * \param replace_with_padding See above. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__bool + * \c false if the conditions in the above description are not met, + * otherwise \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_iterator_delete_block(FLAC__Metadata_Iterator *iterator, FLAC__bool replace_with_padding); + +/** Insert a new block before the current block. You cannot insert a block + * before the first STREAMINFO block. You cannot insert a STREAMINFO block + * as there can be only one, the one that already exists at the head when you + * read in a chain. The chain takes ownership of the new block and it will be + * deleted when the chain is deleted. The iterator will be left pointing to + * the new block. + * + * \param iterator A pointer to an existing initialized iterator. + * \param block A pointer to a metadata block to insert. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__bool + * \c false if the conditions in the above description are not met, or + * a memory allocation error occurs, otherwise \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_iterator_insert_block_before(FLAC__Metadata_Iterator *iterator, FLAC__StreamMetadata *block); + +/** Insert a new block after the current block. You cannot insert a STREAMINFO + * block as there can be only one, the one that already exists at the head when + * you read in a chain. The chain takes ownership of the new block and it will + * be deleted when the chain is deleted. The iterator will be left pointing to + * the new block. + * + * \param iterator A pointer to an existing initialized iterator. + * \param block A pointer to a metadata block to insert. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__bool + * \c false if the conditions in the above description are not met, or + * a memory allocation error occurs, otherwise \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_iterator_insert_block_after(FLAC__Metadata_Iterator *iterator, FLAC__StreamMetadata *block); + +/* \} */ + + +/** \defgroup flac_metadata_object FLAC/metadata.h: metadata object methods + * \ingroup flac_metadata + * + * \brief + * This module contains methods for manipulating FLAC metadata objects. + * + * Since many are variable length we have to be careful about the memory + * management. We decree that all pointers to data in the object are + * owned by the object and memory-managed by the object. + * + * Use the FLAC__metadata_object_new() and FLAC__metadata_object_delete() + * functions to create all instances. When using the + * FLAC__metadata_object_set_*() functions to set pointers to data, set + * \a copy to \c true to have the function make it's own copy of the data, or + * to \c false to give the object ownership of your data. In the latter case + * your pointer must be freeable by free() and will be free()d when the object + * is FLAC__metadata_object_delete()d. It is legal to pass a null pointer as + * the data pointer to a FLAC__metadata_object_set_*() function as long as + * the length argument is 0 and the \a copy argument is \c false. + * + * The FLAC__metadata_object_new() and FLAC__metadata_object_clone() function + * will return \c NULL in the case of a memory allocation error, otherwise a new + * object. The FLAC__metadata_object_set_*() functions return \c false in the + * case of a memory allocation error. + * + * We don't have the convenience of C++ here, so note that the library relies + * on you to keep the types straight. In other words, if you pass, for + * example, a FLAC__StreamMetadata* that represents a STREAMINFO block to + * FLAC__metadata_object_application_set_data(), you will get an assertion + * failure. + * + * For convenience the FLAC__metadata_object_vorbiscomment_*() functions + * maintain a trailing NUL on each Vorbis comment entry. This is not counted + * toward the length or stored in the stream, but it can make working with plain + * comments (those that don't contain embedded-NULs in the value) easier. + * Entries passed into these functions have trailing NULs added if missing, and + * returned entries are guaranteed to have a trailing NUL. + * + * The FLAC__metadata_object_vorbiscomment_*() functions that take a Vorbis + * comment entry/name/value will first validate that it complies with the Vorbis + * comment specification and return false if it does not. + * + * There is no need to recalculate the length field on metadata blocks you + * have modified. They will be calculated automatically before they are + * written back to a file. + * + * \{ + */ + + +/** Create a new metadata object instance of the given type. + * + * The object will be "empty"; i.e. values and data pointers will be \c 0, + * with the exception of FLAC__METADATA_TYPE_VORBIS_COMMENT, which will have + * the vendor string set (but zero comments). + * + * Do not pass in a value greater than or equal to + * \a FLAC__METADATA_TYPE_UNDEFINED unless you really know what you're + * doing. + * + * \param type Type of object to create + * \retval FLAC__StreamMetadata* + * \c NULL if there was an error allocating memory or the type code is + * greater than FLAC__MAX_METADATA_TYPE_CODE, else the new instance. + */ +FLAC_API FLAC__StreamMetadata *FLAC__metadata_object_new(FLAC__MetadataType type); + +/** Create a copy of an existing metadata object. + * + * The copy is a "deep" copy, i.e. dynamically allocated data within the + * object is also copied. The caller takes ownership of the new block and + * is responsible for freeing it with FLAC__metadata_object_delete(). + * + * \param object Pointer to object to copy. + * \assert + * \code object != NULL \endcode + * \retval FLAC__StreamMetadata* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__StreamMetadata *FLAC__metadata_object_clone(const FLAC__StreamMetadata *object); + +/** Free a metadata object. Deletes the object pointed to by \a object. + * + * The delete is a "deep" delete, i.e. dynamically allocated data within the + * object is also deleted. + * + * \param object A pointer to an existing object. + * \assert + * \code object != NULL \endcode + */ +FLAC_API void FLAC__metadata_object_delete(FLAC__StreamMetadata *object); + +/** Compares two metadata objects. + * + * The compare is "deep", i.e. dynamically allocated data within the + * object is also compared. + * + * \param block1 A pointer to an existing object. + * \param block2 A pointer to an existing object. + * \assert + * \code block1 != NULL \endcode + * \code block2 != NULL \endcode + * \retval FLAC__bool + * \c true if objects are identical, else \c false. + */ +FLAC_API FLAC__bool FLAC__metadata_object_is_equal(const FLAC__StreamMetadata *block1, const FLAC__StreamMetadata *block2); + +/** Sets the application data of an APPLICATION block. + * + * If \a copy is \c true, a copy of the data is stored; otherwise, the object + * takes ownership of the pointer. The existing data will be freed if this + * function is successful, otherwise the original data will remain if \a copy + * is \c true and malloc() fails. + * + * \note It is safe to pass a const pointer to \a data if \a copy is \c true. + * + * \param object A pointer to an existing APPLICATION object. + * \param data A pointer to the data to set. + * \param length The length of \a data in bytes. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_APPLICATION \endcode + * \code (data != NULL && length > 0) || + * (data == NULL && length == 0 && copy == false) \endcode + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_application_set_data(FLAC__StreamMetadata *object, FLAC__byte *data, unsigned length, FLAC__bool copy); + +/** Resize the seekpoint array. + * + * If the size shrinks, elements will truncated; if it grows, new placeholder + * points will be added to the end. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param new_num_points The desired length of the array; may be \c 0. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \code (object->data.seek_table.points == NULL && object->data.seek_table.num_points == 0) || + * (object->data.seek_table.points != NULL && object->data.seek_table.num_points > 0) \endcode + * \retval FLAC__bool + * \c false if memory allocation error, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_resize_points(FLAC__StreamMetadata *object, unsigned new_num_points); + +/** Set a seekpoint in a seektable. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param point_num Index into seekpoint array to set. + * \param point The point to set. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \code object->data.seek_table.num_points > point_num \endcode + */ +FLAC_API void FLAC__metadata_object_seektable_set_point(FLAC__StreamMetadata *object, unsigned point_num, FLAC__StreamMetadata_SeekPoint point); + +/** Insert a seekpoint into a seektable. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param point_num Index into seekpoint array to set. + * \param point The point to set. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \code object->data.seek_table.num_points >= point_num \endcode + * \retval FLAC__bool + * \c false if memory allocation error, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_insert_point(FLAC__StreamMetadata *object, unsigned point_num, FLAC__StreamMetadata_SeekPoint point); + +/** Delete a seekpoint from a seektable. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param point_num Index into seekpoint array to set. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \code object->data.seek_table.num_points > point_num \endcode + * \retval FLAC__bool + * \c false if memory allocation error, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_delete_point(FLAC__StreamMetadata *object, unsigned point_num); + +/** Check a seektable to see if it conforms to the FLAC specification. + * See the format specification for limits on the contents of the + * seektable. + * + * \param object A pointer to an existing SEEKTABLE object. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \retval FLAC__bool + * \c false if seek table is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_is_legal(const FLAC__StreamMetadata *object); + +/** Append a number of placeholder points to the end of a seek table. + * + * \note + * As with the other ..._seektable_template_... functions, you should + * call FLAC__metadata_object_seektable_template_sort() when finished + * to make the seek table legal. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param num The number of placeholder points to append. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \retval FLAC__bool + * \c false if memory allocation fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_placeholders(FLAC__StreamMetadata *object, unsigned num); + +/** Append a specific seek point template to the end of a seek table. + * + * \note + * As with the other ..._seektable_template_... functions, you should + * call FLAC__metadata_object_seektable_template_sort() when finished + * to make the seek table legal. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param sample_number The sample number of the seek point template. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \retval FLAC__bool + * \c false if memory allocation fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_point(FLAC__StreamMetadata *object, FLAC__uint64 sample_number); + +/** Append specific seek point templates to the end of a seek table. + * + * \note + * As with the other ..._seektable_template_... functions, you should + * call FLAC__metadata_object_seektable_template_sort() when finished + * to make the seek table legal. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param sample_numbers An array of sample numbers for the seek points. + * \param num The number of seek point templates to append. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \retval FLAC__bool + * \c false if memory allocation fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_points(FLAC__StreamMetadata *object, FLAC__uint64 sample_numbers[], unsigned num); + +/** Append a set of evenly-spaced seek point templates to the end of a + * seek table. + * + * \note + * As with the other ..._seektable_template_... functions, you should + * call FLAC__metadata_object_seektable_template_sort() when finished + * to make the seek table legal. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param num The number of placeholder points to append. + * \param total_samples The total number of samples to be encoded; + * the seekpoints will be spaced approximately + * \a total_samples / \a num samples apart. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \code total_samples > 0 \endcode + * \retval FLAC__bool + * \c false if memory allocation fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_spaced_points(FLAC__StreamMetadata *object, unsigned num, FLAC__uint64 total_samples); + +/** Append a set of evenly-spaced seek point templates to the end of a + * seek table. + * + * \note + * As with the other ..._seektable_template_... functions, you should + * call FLAC__metadata_object_seektable_template_sort() when finished + * to make the seek table legal. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param samples The number of samples apart to space the placeholder + * points. The first point will be at sample \c 0, the + * second at sample \a samples, then 2*\a samples, and + * so on. As long as \a samples and \a total_samples + * are greater than \c 0, there will always be at least + * one seekpoint at sample \c 0. + * \param total_samples The total number of samples to be encoded; + * the seekpoints will be spaced + * \a samples samples apart. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \code samples > 0 \endcode + * \code total_samples > 0 \endcode + * \retval FLAC__bool + * \c false if memory allocation fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_spaced_points_by_samples(FLAC__StreamMetadata *object, unsigned samples, FLAC__uint64 total_samples); + +/** Sort a seek table's seek points according to the format specification, + * removing duplicates. + * + * \param object A pointer to a seek table to be sorted. + * \param compact If \c false, behaves like FLAC__format_seektable_sort(). + * If \c true, duplicates are deleted and the seek table is + * shrunk appropriately; the number of placeholder points + * present in the seek table will be the same after the call + * as before. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \retval FLAC__bool + * \c false if realloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_sort(FLAC__StreamMetadata *object, FLAC__bool compact); + +/** Sets the vendor string in a VORBIS_COMMENT block. + * + * For convenience, a trailing NUL is added to the entry if it doesn't have + * one already. + * + * If \a copy is \c true, a copy of the entry is stored; otherwise, the object + * takes ownership of the \c entry.entry pointer. + * + * \note If this function returns \c false, the caller still owns the + * pointer. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param entry The entry to set the vendor string to. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code (entry.entry != NULL && entry.length > 0) || + * (entry.entry == NULL && entry.length == 0) \endcode + * \retval FLAC__bool + * \c false if memory allocation fails or \a entry does not comply with the + * Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_set_vendor_string(FLAC__StreamMetadata *object, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool copy); + +/** Resize the comment array. + * + * If the size shrinks, elements will truncated; if it grows, new empty + * fields will be added to the end. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param new_num_comments The desired length of the array; may be \c 0. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code (object->data.vorbis_comment.comments == NULL && object->data.vorbis_comment.num_comments == 0) || + * (object->data.vorbis_comment.comments != NULL && object->data.vorbis_comment.num_comments > 0) \endcode + * \retval FLAC__bool + * \c false if memory allocation fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_resize_comments(FLAC__StreamMetadata *object, unsigned new_num_comments); + +/** Sets a comment in a VORBIS_COMMENT block. + * + * For convenience, a trailing NUL is added to the entry if it doesn't have + * one already. + * + * If \a copy is \c true, a copy of the entry is stored; otherwise, the object + * takes ownership of the \c entry.entry pointer. + * + * \note If this function returns \c false, the caller still owns the + * pointer. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param comment_num Index into comment array to set. + * \param entry The entry to set the comment to. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code comment_num < object->data.vorbis_comment.num_comments \endcode + * \code (entry.entry != NULL && entry.length > 0) || + * (entry.entry == NULL && entry.length == 0) \endcode + * \retval FLAC__bool + * \c false if memory allocation fails or \a entry does not comply with the + * Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_set_comment(FLAC__StreamMetadata *object, unsigned comment_num, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool copy); + +/** Insert a comment in a VORBIS_COMMENT block at the given index. + * + * For convenience, a trailing NUL is added to the entry if it doesn't have + * one already. + * + * If \a copy is \c true, a copy of the entry is stored; otherwise, the object + * takes ownership of the \c entry.entry pointer. + * + * \note If this function returns \c false, the caller still owns the + * pointer. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param comment_num The index at which to insert the comment. The comments + * at and after \a comment_num move right one position. + * To append a comment to the end, set \a comment_num to + * \c object->data.vorbis_comment.num_comments . + * \param entry The comment to insert. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code object->data.vorbis_comment.num_comments >= comment_num \endcode + * \code (entry.entry != NULL && entry.length > 0) || + * (entry.entry == NULL && entry.length == 0 && copy == false) \endcode + * \retval FLAC__bool + * \c false if memory allocation fails or \a entry does not comply with the + * Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_insert_comment(FLAC__StreamMetadata *object, unsigned comment_num, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool copy); + +/** Appends a comment to a VORBIS_COMMENT block. + * + * For convenience, a trailing NUL is added to the entry if it doesn't have + * one already. + * + * If \a copy is \c true, a copy of the entry is stored; otherwise, the object + * takes ownership of the \c entry.entry pointer. + * + * \note If this function returns \c false, the caller still owns the + * pointer. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param entry The comment to insert. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code (entry.entry != NULL && entry.length > 0) || + * (entry.entry == NULL && entry.length == 0 && copy == false) \endcode + * \retval FLAC__bool + * \c false if memory allocation fails or \a entry does not comply with the + * Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_append_comment(FLAC__StreamMetadata *object, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool copy); + +/** Replaces comments in a VORBIS_COMMENT block with a new one. + * + * For convenience, a trailing NUL is added to the entry if it doesn't have + * one already. + * + * Depending on the the value of \a all, either all or just the first comment + * whose field name(s) match the given entry's name will be replaced by the + * given entry. If no comments match, \a entry will simply be appended. + * + * If \a copy is \c true, a copy of the entry is stored; otherwise, the object + * takes ownership of the \c entry.entry pointer. + * + * \note If this function returns \c false, the caller still owns the + * pointer. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param entry The comment to insert. + * \param all If \c true, all comments whose field name matches + * \a entry's field name will be removed, and \a entry will + * be inserted at the position of the first matching + * comment. If \c false, only the first comment whose + * field name matches \a entry's field name will be + * replaced with \a entry. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code (entry.entry != NULL && entry.length > 0) || + * (entry.entry == NULL && entry.length == 0 && copy == false) \endcode + * \retval FLAC__bool + * \c false if memory allocation fails or \a entry does not comply with the + * Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_replace_comment(FLAC__StreamMetadata *object, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool all, FLAC__bool copy); + +/** Delete a comment in a VORBIS_COMMENT block at the given index. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param comment_num The index of the comment to delete. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code object->data.vorbis_comment.num_comments > comment_num \endcode + * \retval FLAC__bool + * \c false if realloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_delete_comment(FLAC__StreamMetadata *object, unsigned comment_num); + +/** Creates a Vorbis comment entry from NUL-terminated name and value strings. + * + * On return, the filled-in \a entry->entry pointer will point to malloc()ed + * memory and shall be owned by the caller. For convenience the entry will + * have a terminating NUL. + * + * \param entry A pointer to a Vorbis comment entry. The entry's + * \c entry pointer should not point to allocated + * memory as it will be overwritten. + * \param field_name The field name in ASCII, \c NUL terminated. + * \param field_value The field value in UTF-8, \c NUL terminated. + * \assert + * \code entry != NULL \endcode + * \code field_name != NULL \endcode + * \code field_value != NULL \endcode + * \retval FLAC__bool + * \c false if malloc() fails, or if \a field_name or \a field_value does + * not comply with the Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_entry_from_name_value_pair(FLAC__StreamMetadata_VorbisComment_Entry *entry, const char *field_name, const char *field_value); + +/** Splits a Vorbis comment entry into NUL-terminated name and value strings. + * + * The returned pointers to name and value will be allocated by malloc() + * and shall be owned by the caller. + * + * \param entry An existing Vorbis comment entry. + * \param field_name The address of where the returned pointer to the + * field name will be stored. + * \param field_value The address of where the returned pointer to the + * field value will be stored. + * \assert + * \code (entry.entry != NULL && entry.length > 0) \endcode + * \code memchr(entry.entry, '=', entry.length) != NULL \endcode + * \code field_name != NULL \endcode + * \code field_value != NULL \endcode + * \retval FLAC__bool + * \c false if memory allocation fails or \a entry does not comply with the + * Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_entry_to_name_value_pair(const FLAC__StreamMetadata_VorbisComment_Entry entry, char **field_name, char **field_value); + +/** Check if the given Vorbis comment entry's field name matches the given + * field name. + * + * \param entry An existing Vorbis comment entry. + * \param field_name The field name to check. + * \param field_name_length The length of \a field_name, not including the + * terminating \c NUL. + * \assert + * \code (entry.entry != NULL && entry.length > 0) \endcode + * \retval FLAC__bool + * \c true if the field names match, else \c false + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_entry_matches(const FLAC__StreamMetadata_VorbisComment_Entry entry, const char *field_name, unsigned field_name_length); + +/** Find a Vorbis comment with the given field name. + * + * The search begins at entry number \a offset; use an offset of 0 to + * search from the beginning of the comment array. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param offset The offset into the comment array from where to start + * the search. + * \param field_name The field name of the comment to find. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code field_name != NULL \endcode + * \retval int + * The offset in the comment array of the first comment whose field + * name matches \a field_name, or \c -1 if no match was found. + */ +FLAC_API int FLAC__metadata_object_vorbiscomment_find_entry_from(const FLAC__StreamMetadata *object, unsigned offset, const char *field_name); + +/** Remove first Vorbis comment matching the given field name. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param field_name The field name of comment to delete. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \retval int + * \c -1 for memory allocation error, \c 0 for no matching entries, + * \c 1 for one matching entry deleted. + */ +FLAC_API int FLAC__metadata_object_vorbiscomment_remove_entry_matching(FLAC__StreamMetadata *object, const char *field_name); + +/** Remove all Vorbis comments matching the given field name. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param field_name The field name of comments to delete. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \retval int + * \c -1 for memory allocation error, \c 0 for no matching entries, + * else the number of matching entries deleted. + */ +FLAC_API int FLAC__metadata_object_vorbiscomment_remove_entries_matching(FLAC__StreamMetadata *object, const char *field_name); + +/** Create a new CUESHEET track instance. + * + * The object will be "empty"; i.e. values and data pointers will be \c 0. + * + * \retval FLAC__StreamMetadata_CueSheet_Track* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__StreamMetadata_CueSheet_Track *FLAC__metadata_object_cuesheet_track_new(void); + +/** Create a copy of an existing CUESHEET track object. + * + * The copy is a "deep" copy, i.e. dynamically allocated data within the + * object is also copied. The caller takes ownership of the new object and + * is responsible for freeing it with + * FLAC__metadata_object_cuesheet_track_delete(). + * + * \param object Pointer to object to copy. + * \assert + * \code object != NULL \endcode + * \retval FLAC__StreamMetadata_CueSheet_Track* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__StreamMetadata_CueSheet_Track *FLAC__metadata_object_cuesheet_track_clone(const FLAC__StreamMetadata_CueSheet_Track *object); + +/** Delete a CUESHEET track object + * + * \param object A pointer to an existing CUESHEET track object. + * \assert + * \code object != NULL \endcode + */ +FLAC_API void FLAC__metadata_object_cuesheet_track_delete(FLAC__StreamMetadata_CueSheet_Track *object); + +/** Resize a track's index point array. + * + * If the size shrinks, elements will truncated; if it grows, new blank + * indices will be added to the end. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index of the track to modify. NOTE: this is not + * necessarily the same as the track's \a number field. + * \param new_num_indices The desired length of the array; may be \c 0. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks > track_num \endcode + * \code (object->data.cue_sheet.tracks[track_num].indices == NULL && object->data.cue_sheet.tracks[track_num].num_indices == 0) || + * (object->data.cue_sheet.tracks[track_num].indices != NULL && object->data.cue_sheet.tracks[track_num].num_indices > 0) \endcode + * \retval FLAC__bool + * \c false if memory allocation error, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_track_resize_indices(FLAC__StreamMetadata *object, unsigned track_num, unsigned new_num_indices); + +/** Insert an index point in a CUESHEET track at the given index. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index of the track to modify. NOTE: this is not + * necessarily the same as the track's \a number field. + * \param index_num The index into the track's index array at which to + * insert the index point. NOTE: this is not necessarily + * the same as the index point's \a number field. The + * indices at and after \a index_num move right one + * position. To append an index point to the end, set + * \a index_num to + * \c object->data.cue_sheet.tracks[track_num].num_indices . + * \param index The index point to insert. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks > track_num \endcode + * \code object->data.cue_sheet.tracks[track_num].num_indices >= index_num \endcode + * \retval FLAC__bool + * \c false if realloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_track_insert_index(FLAC__StreamMetadata *object, unsigned track_num, unsigned index_num, FLAC__StreamMetadata_CueSheet_Index index); + +/** Insert a blank index point in a CUESHEET track at the given index. + * + * A blank index point is one in which all field values are zero. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index of the track to modify. NOTE: this is not + * necessarily the same as the track's \a number field. + * \param index_num The index into the track's index array at which to + * insert the index point. NOTE: this is not necessarily + * the same as the index point's \a number field. The + * indices at and after \a index_num move right one + * position. To append an index point to the end, set + * \a index_num to + * \c object->data.cue_sheet.tracks[track_num].num_indices . + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks > track_num \endcode + * \code object->data.cue_sheet.tracks[track_num].num_indices >= index_num \endcode + * \retval FLAC__bool + * \c false if realloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_track_insert_blank_index(FLAC__StreamMetadata *object, unsigned track_num, unsigned index_num); + +/** Delete an index point in a CUESHEET track at the given index. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index into the track array of the track to + * modify. NOTE: this is not necessarily the same + * as the track's \a number field. + * \param index_num The index into the track's index array of the index + * to delete. NOTE: this is not necessarily the same + * as the index's \a number field. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks > track_num \endcode + * \code object->data.cue_sheet.tracks[track_num].num_indices > index_num \endcode + * \retval FLAC__bool + * \c false if realloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_track_delete_index(FLAC__StreamMetadata *object, unsigned track_num, unsigned index_num); + +/** Resize the track array. + * + * If the size shrinks, elements will truncated; if it grows, new blank + * tracks will be added to the end. + * + * \param object A pointer to an existing CUESHEET object. + * \param new_num_tracks The desired length of the array; may be \c 0. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code (object->data.cue_sheet.tracks == NULL && object->data.cue_sheet.num_tracks == 0) || + * (object->data.cue_sheet.tracks != NULL && object->data.cue_sheet.num_tracks > 0) \endcode + * \retval FLAC__bool + * \c false if memory allocation error, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_resize_tracks(FLAC__StreamMetadata *object, unsigned new_num_tracks); + +/** Sets a track in a CUESHEET block. + * + * If \a copy is \c true, a copy of the track is stored; otherwise, the object + * takes ownership of the \a track pointer. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num Index into track array to set. NOTE: this is not + * necessarily the same as the track's \a number field. + * \param track The track to set the track to. You may safely pass in + * a const pointer if \a copy is \c true. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code track_num < object->data.cue_sheet.num_tracks \endcode + * \code (track->indices != NULL && track->num_indices > 0) || + * (track->indices == NULL && track->num_indices == 0) + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_set_track(FLAC__StreamMetadata *object, unsigned track_num, FLAC__StreamMetadata_CueSheet_Track *track, FLAC__bool copy); + +/** Insert a track in a CUESHEET block at the given index. + * + * If \a copy is \c true, a copy of the track is stored; otherwise, the object + * takes ownership of the \a track pointer. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index at which to insert the track. NOTE: this + * is not necessarily the same as the track's \a number + * field. The tracks at and after \a track_num move right + * one position. To append a track to the end, set + * \a track_num to \c object->data.cue_sheet.num_tracks . + * \param track The track to insert. You may safely pass in a const + * pointer if \a copy is \c true. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks >= track_num \endcode + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_insert_track(FLAC__StreamMetadata *object, unsigned track_num, FLAC__StreamMetadata_CueSheet_Track *track, FLAC__bool copy); + +/** Insert a blank track in a CUESHEET block at the given index. + * + * A blank track is one in which all field values are zero. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index at which to insert the track. NOTE: this + * is not necessarily the same as the track's \a number + * field. The tracks at and after \a track_num move right + * one position. To append a track to the end, set + * \a track_num to \c object->data.cue_sheet.num_tracks . + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks >= track_num \endcode + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_insert_blank_track(FLAC__StreamMetadata *object, unsigned track_num); + +/** Delete a track in a CUESHEET block at the given index. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index into the track array of the track to + * delete. NOTE: this is not necessarily the same + * as the track's \a number field. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks > track_num \endcode + * \retval FLAC__bool + * \c false if realloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_delete_track(FLAC__StreamMetadata *object, unsigned track_num); + +/** Check a cue sheet to see if it conforms to the FLAC specification. + * See the format specification for limits on the contents of the + * cue sheet. + * + * \param object A pointer to an existing CUESHEET object. + * \param check_cd_da_subset If \c true, check CUESHEET against more + * stringent requirements for a CD-DA (audio) disc. + * \param violation Address of a pointer to a string. If there is a + * violation, a pointer to a string explanation of the + * violation will be returned here. \a violation may be + * \c NULL if you don't need the returned string. Do not + * free the returned string; it will always point to static + * data. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \retval FLAC__bool + * \c false if cue sheet is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_is_legal(const FLAC__StreamMetadata *object, FLAC__bool check_cd_da_subset, const char **violation); + +/** Calculate and return the CDDB/freedb ID for a cue sheet. The function + * assumes the cue sheet corresponds to a CD; the result is undefined + * if the cuesheet's is_cd bit is not set. + * + * \param object A pointer to an existing CUESHEET object. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \retval FLAC__uint32 + * The unsigned integer representation of the CDDB/freedb ID + */ +FLAC_API FLAC__uint32 FLAC__metadata_object_cuesheet_calculate_cddb_id(const FLAC__StreamMetadata *object); + +/** Sets the MIME type of a PICTURE block. + * + * If \a copy is \c true, a copy of the string is stored; otherwise, the object + * takes ownership of the pointer. The existing string will be freed if this + * function is successful, otherwise the original string will remain if \a copy + * is \c true and malloc() fails. + * + * \note It is safe to pass a const pointer to \a mime_type if \a copy is \c true. + * + * \param object A pointer to an existing PICTURE object. + * \param mime_type A pointer to the MIME type string. The string must be + * ASCII characters 0x20-0x7e, NUL-terminated. No validation + * is done. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_PICTURE \endcode + * \code (mime_type != NULL) \endcode + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_picture_set_mime_type(FLAC__StreamMetadata *object, char *mime_type, FLAC__bool copy); + +/** Sets the description of a PICTURE block. + * + * If \a copy is \c true, a copy of the string is stored; otherwise, the object + * takes ownership of the pointer. The existing string will be freed if this + * function is successful, otherwise the original string will remain if \a copy + * is \c true and malloc() fails. + * + * \note It is safe to pass a const pointer to \a description if \a copy is \c true. + * + * \param object A pointer to an existing PICTURE object. + * \param description A pointer to the description string. The string must be + * valid UTF-8, NUL-terminated. No validation is done. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_PICTURE \endcode + * \code (description != NULL) \endcode + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_picture_set_description(FLAC__StreamMetadata *object, FLAC__byte *description, FLAC__bool copy); + +/** Sets the picture data of a PICTURE block. + * + * If \a copy is \c true, a copy of the data is stored; otherwise, the object + * takes ownership of the pointer. Also sets the \a data_length field of the + * metadata object to what is passed in as the \a length parameter. The + * existing data will be freed if this function is successful, otherwise the + * original data and data_length will remain if \a copy is \c true and + * malloc() fails. + * + * \note It is safe to pass a const pointer to \a data if \a copy is \c true. + * + * \param object A pointer to an existing PICTURE object. + * \param data A pointer to the data to set. + * \param length The length of \a data in bytes. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_PICTURE \endcode + * \code (data != NULL && length > 0) || + * (data == NULL && length == 0 && copy == false) \endcode + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_picture_set_data(FLAC__StreamMetadata *object, FLAC__byte *data, FLAC__uint32 length, FLAC__bool copy); + +/** Check a PICTURE block to see if it conforms to the FLAC specification. + * See the format specification for limits on the contents of the + * PICTURE block. + * + * \param object A pointer to existing PICTURE block to be checked. + * \param violation Address of a pointer to a string. If there is a + * violation, a pointer to a string explanation of the + * violation will be returned here. \a violation may be + * \c NULL if you don't need the returned string. Do not + * free the returned string; it will always point to static + * data. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_PICTURE \endcode + * \retval FLAC__bool + * \c false if PICTURE block is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_picture_is_legal(const FLAC__StreamMetadata *object, const char **violation); + +/* \} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/ordinals.h b/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/ordinals.h new file mode 100644 index 0000000..a7a5cd9 --- /dev/null +++ b/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/ordinals.h @@ -0,0 +1,80 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__ORDINALS_H +#define FLAC__ORDINALS_H + +#if !(defined(_MSC_VER) || defined(__BORLANDC__) || defined(__EMX__)) +#include +#endif + +typedef signed char FLAC__int8; +typedef unsigned char FLAC__uint8; + +#if defined(_MSC_VER) || defined(__BORLANDC__) +typedef __int16 FLAC__int16; +typedef __int32 FLAC__int32; +typedef __int64 FLAC__int64; +typedef unsigned __int16 FLAC__uint16; +typedef unsigned __int32 FLAC__uint32; +typedef unsigned __int64 FLAC__uint64; +#elif defined(__EMX__) +typedef short FLAC__int16; +typedef long FLAC__int32; +typedef long long FLAC__int64; +typedef unsigned short FLAC__uint16; +typedef unsigned long FLAC__uint32; +typedef unsigned long long FLAC__uint64; +#else +typedef int16_t FLAC__int16; +typedef int32_t FLAC__int32; +typedef int64_t FLAC__int64; +typedef uint16_t FLAC__uint16; +typedef uint32_t FLAC__uint32; +typedef uint64_t FLAC__uint64; +#endif + +typedef int FLAC__bool; + +typedef FLAC__uint8 FLAC__byte; + +#ifdef true +#undef true +#endif +#ifdef false +#undef false +#endif +#ifndef __cplusplus +#define true 1 +#define false 0 +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/stream_decoder.h b/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/stream_decoder.h new file mode 100644 index 0000000..9ac1594 --- /dev/null +++ b/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/stream_decoder.h @@ -0,0 +1,1559 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__STREAM_DECODER_H +#define FLAC__STREAM_DECODER_H + +#include /* for FILE */ +#include "export.h" +#include "format.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +/** \file include/FLAC/stream_decoder.h + * + * \brief + * This module contains the functions which implement the stream + * decoder. + * + * See the detailed documentation in the + * \link flac_stream_decoder stream decoder \endlink module. + */ + +/** \defgroup flac_decoder FLAC/ \*_decoder.h: decoder interfaces + * \ingroup flac + * + * \brief + * This module describes the decoder layers provided by libFLAC. + * + * The stream decoder can be used to decode complete streams either from + * the client via callbacks, or directly from a file, depending on how + * it is initialized. When decoding via callbacks, the client provides + * callbacks for reading FLAC data and writing decoded samples, and + * handling metadata and errors. If the client also supplies seek-related + * callback, the decoder function for sample-accurate seeking within the + * FLAC input is also available. When decoding from a file, the client + * needs only supply a filename or open \c FILE* and write/metadata/error + * callbacks; the rest of the callbacks are supplied internally. For more + * info see the \link flac_stream_decoder stream decoder \endlink module. + */ + +/** \defgroup flac_stream_decoder FLAC/stream_decoder.h: stream decoder interface + * \ingroup flac_decoder + * + * \brief + * This module contains the functions which implement the stream + * decoder. + * + * The stream decoder can decode native FLAC, and optionally Ogg FLAC + * (check FLAC_API_SUPPORTS_OGG_FLAC) streams and files. + * + * The basic usage of this decoder is as follows: + * - The program creates an instance of a decoder using + * FLAC__stream_decoder_new(). + * - The program overrides the default settings using + * FLAC__stream_decoder_set_*() functions. + * - The program initializes the instance to validate the settings and + * prepare for decoding using + * - FLAC__stream_decoder_init_stream() or FLAC__stream_decoder_init_FILE() + * or FLAC__stream_decoder_init_file() for native FLAC, + * - FLAC__stream_decoder_init_ogg_stream() or FLAC__stream_decoder_init_ogg_FILE() + * or FLAC__stream_decoder_init_ogg_file() for Ogg FLAC + * - The program calls the FLAC__stream_decoder_process_*() functions + * to decode data, which subsequently calls the callbacks. + * - The program finishes the decoding with FLAC__stream_decoder_finish(), + * which flushes the input and output and resets the decoder to the + * uninitialized state. + * - The instance may be used again or deleted with + * FLAC__stream_decoder_delete(). + * + * In more detail, the program will create a new instance by calling + * FLAC__stream_decoder_new(), then call FLAC__stream_decoder_set_*() + * functions to override the default decoder options, and call + * one of the FLAC__stream_decoder_init_*() functions. + * + * There are three initialization functions for native FLAC, one for + * setting up the decoder to decode FLAC data from the client via + * callbacks, and two for decoding directly from a FLAC file. + * + * For decoding via callbacks, use FLAC__stream_decoder_init_stream(). + * You must also supply several callbacks for handling I/O. Some (like + * seeking) are optional, depending on the capabilities of the input. + * + * For decoding directly from a file, use FLAC__stream_decoder_init_FILE() + * or FLAC__stream_decoder_init_file(). Then you must only supply an open + * \c FILE* or filename and fewer callbacks; the decoder will handle + * the other callbacks internally. + * + * There are three similarly-named init functions for decoding from Ogg + * FLAC streams. Check \c FLAC_API_SUPPORTS_OGG_FLAC to find out if the + * library has been built with Ogg support. + * + * Once the decoder is initialized, your program will call one of several + * functions to start the decoding process: + * + * - FLAC__stream_decoder_process_single() - Tells the decoder to process at + * most one metadata block or audio frame and return, calling either the + * metadata callback or write callback, respectively, once. If the decoder + * loses sync it will return with only the error callback being called. + * - FLAC__stream_decoder_process_until_end_of_metadata() - Tells the decoder + * to process the stream from the current location and stop upon reaching + * the first audio frame. The client will get one metadata, write, or error + * callback per metadata block, audio frame, or sync error, respectively. + * - FLAC__stream_decoder_process_until_end_of_stream() - Tells the decoder + * to process the stream from the current location until the read callback + * returns FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM or + * FLAC__STREAM_DECODER_READ_STATUS_ABORT. The client will get one metadata, + * write, or error callback per metadata block, audio frame, or sync error, + * respectively. + * + * When the decoder has finished decoding (normally or through an abort), + * the instance is finished by calling FLAC__stream_decoder_finish(), which + * ensures the decoder is in the correct state and frees memory. Then the + * instance may be deleted with FLAC__stream_decoder_delete() or initialized + * again to decode another stream. + * + * Seeking is exposed through the FLAC__stream_decoder_seek_absolute() method. + * At any point after the stream decoder has been initialized, the client can + * call this function to seek to an exact sample within the stream. + * Subsequently, the first time the write callback is called it will be + * passed a (possibly partial) block starting at that sample. + * + * If the client cannot seek via the callback interface provided, but still + * has another way of seeking, it can flush the decoder using + * FLAC__stream_decoder_flush() and start feeding data from the new position + * through the read callback. + * + * The stream decoder also provides MD5 signature checking. If this is + * turned on before initialization, FLAC__stream_decoder_finish() will + * report when the decoded MD5 signature does not match the one stored + * in the STREAMINFO block. MD5 checking is automatically turned off + * (until the next FLAC__stream_decoder_reset()) if there is no signature + * in the STREAMINFO block or when a seek is attempted. + * + * The FLAC__stream_decoder_set_metadata_*() functions deserve special + * attention. By default, the decoder only calls the metadata_callback for + * the STREAMINFO block. These functions allow you to tell the decoder + * explicitly which blocks to parse and return via the metadata_callback + * and/or which to skip. Use a FLAC__stream_decoder_set_metadata_respond_all(), + * FLAC__stream_decoder_set_metadata_ignore() ... or FLAC__stream_decoder_set_metadata_ignore_all(), + * FLAC__stream_decoder_set_metadata_respond() ... sequence to exactly specify + * which blocks to return. Remember that metadata blocks can potentially + * be big (for example, cover art) so filtering out the ones you don't + * use can reduce the memory requirements of the decoder. Also note the + * special forms FLAC__stream_decoder_set_metadata_respond_application(id) + * and FLAC__stream_decoder_set_metadata_ignore_application(id) for + * filtering APPLICATION blocks based on the application ID. + * + * STREAMINFO and SEEKTABLE blocks are always parsed and used internally, but + * they still can legally be filtered from the metadata_callback. + * + * \note + * The "set" functions may only be called when the decoder is in the + * state FLAC__STREAM_DECODER_UNINITIALIZED, i.e. after + * FLAC__stream_decoder_new() or FLAC__stream_decoder_finish(), but + * before FLAC__stream_decoder_init_*(). If this is the case they will + * return \c true, otherwise \c false. + * + * \note + * FLAC__stream_decoder_finish() resets all settings to the constructor + * defaults, including the callbacks. + * + * \{ + */ + + +/** State values for a FLAC__StreamDecoder + * + * The decoder's state can be obtained by calling FLAC__stream_decoder_get_state(). + */ +typedef enum { + + FLAC__STREAM_DECODER_SEARCH_FOR_METADATA = 0, + /**< The decoder is ready to search for metadata. */ + + FLAC__STREAM_DECODER_READ_METADATA, + /**< The decoder is ready to or is in the process of reading metadata. */ + + FLAC__STREAM_DECODER_SEARCH_FOR_FRAME_SYNC, + /**< The decoder is ready to or is in the process of searching for the + * frame sync code. + */ + + FLAC__STREAM_DECODER_READ_FRAME, + /**< The decoder is ready to or is in the process of reading a frame. */ + + FLAC__STREAM_DECODER_END_OF_STREAM, + /**< The decoder has reached the end of the stream. */ + + FLAC__STREAM_DECODER_OGG_ERROR, + /**< An error occurred in the underlying Ogg layer. */ + + FLAC__STREAM_DECODER_SEEK_ERROR, + /**< An error occurred while seeking. The decoder must be flushed + * with FLAC__stream_decoder_flush() or reset with + * FLAC__stream_decoder_reset() before decoding can continue. + */ + + FLAC__STREAM_DECODER_ABORTED, + /**< The decoder was aborted by the read callback. */ + + FLAC__STREAM_DECODER_MEMORY_ALLOCATION_ERROR, + /**< An error occurred allocating memory. The decoder is in an invalid + * state and can no longer be used. + */ + + FLAC__STREAM_DECODER_UNINITIALIZED + /**< The decoder is in the uninitialized state; one of the + * FLAC__stream_decoder_init_*() functions must be called before samples + * can be processed. + */ + +} FLAC__StreamDecoderState; + +/** Maps a FLAC__StreamDecoderState to a C string. + * + * Using a FLAC__StreamDecoderState as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderStateString[]; + + +/** Possible return values for the FLAC__stream_decoder_init_*() functions. + */ +typedef enum { + + FLAC__STREAM_DECODER_INIT_STATUS_OK = 0, + /**< Initialization was successful. */ + + FLAC__STREAM_DECODER_INIT_STATUS_UNSUPPORTED_CONTAINER, + /**< The library was not compiled with support for the given container + * format. + */ + + FLAC__STREAM_DECODER_INIT_STATUS_INVALID_CALLBACKS, + /**< A required callback was not supplied. */ + + FLAC__STREAM_DECODER_INIT_STATUS_MEMORY_ALLOCATION_ERROR, + /**< An error occurred allocating memory. */ + + FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE, + /**< fopen() failed in FLAC__stream_decoder_init_file() or + * FLAC__stream_decoder_init_ogg_file(). */ + + FLAC__STREAM_DECODER_INIT_STATUS_ALREADY_INITIALIZED + /**< FLAC__stream_decoder_init_*() was called when the decoder was + * already initialized, usually because + * FLAC__stream_decoder_finish() was not called. + */ + +} FLAC__StreamDecoderInitStatus; + +/** Maps a FLAC__StreamDecoderInitStatus to a C string. + * + * Using a FLAC__StreamDecoderInitStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderInitStatusString[]; + + +/** Return values for the FLAC__StreamDecoder read callback. + */ +typedef enum { + + FLAC__STREAM_DECODER_READ_STATUS_CONTINUE, + /**< The read was OK and decoding can continue. */ + + FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM, + /**< The read was attempted while at the end of the stream. Note that + * the client must only return this value when the read callback was + * called when already at the end of the stream. Otherwise, if the read + * itself moves to the end of the stream, the client should still return + * the data and \c FLAC__STREAM_DECODER_READ_STATUS_CONTINUE, and then on + * the next read callback it should return + * \c FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM with a byte count + * of \c 0. + */ + + FLAC__STREAM_DECODER_READ_STATUS_ABORT + /**< An unrecoverable error occurred. The decoder will return from the process call. */ + +} FLAC__StreamDecoderReadStatus; + +/** Maps a FLAC__StreamDecoderReadStatus to a C string. + * + * Using a FLAC__StreamDecoderReadStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderReadStatusString[]; + + +/** Return values for the FLAC__StreamDecoder seek callback. + */ +typedef enum { + + FLAC__STREAM_DECODER_SEEK_STATUS_OK, + /**< The seek was OK and decoding can continue. */ + + FLAC__STREAM_DECODER_SEEK_STATUS_ERROR, + /**< An unrecoverable error occurred. The decoder will return from the process call. */ + + FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED + /**< Client does not support seeking. */ + +} FLAC__StreamDecoderSeekStatus; + +/** Maps a FLAC__StreamDecoderSeekStatus to a C string. + * + * Using a FLAC__StreamDecoderSeekStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderSeekStatusString[]; + + +/** Return values for the FLAC__StreamDecoder tell callback. + */ +typedef enum { + + FLAC__STREAM_DECODER_TELL_STATUS_OK, + /**< The tell was OK and decoding can continue. */ + + FLAC__STREAM_DECODER_TELL_STATUS_ERROR, + /**< An unrecoverable error occurred. The decoder will return from the process call. */ + + FLAC__STREAM_DECODER_TELL_STATUS_UNSUPPORTED + /**< Client does not support telling the position. */ + +} FLAC__StreamDecoderTellStatus; + +/** Maps a FLAC__StreamDecoderTellStatus to a C string. + * + * Using a FLAC__StreamDecoderTellStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderTellStatusString[]; + + +/** Return values for the FLAC__StreamDecoder length callback. + */ +typedef enum { + + FLAC__STREAM_DECODER_LENGTH_STATUS_OK, + /**< The length call was OK and decoding can continue. */ + + FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR, + /**< An unrecoverable error occurred. The decoder will return from the process call. */ + + FLAC__STREAM_DECODER_LENGTH_STATUS_UNSUPPORTED + /**< Client does not support reporting the length. */ + +} FLAC__StreamDecoderLengthStatus; + +/** Maps a FLAC__StreamDecoderLengthStatus to a C string. + * + * Using a FLAC__StreamDecoderLengthStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderLengthStatusString[]; + + +/** Return values for the FLAC__StreamDecoder write callback. + */ +typedef enum { + + FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE, + /**< The write was OK and decoding can continue. */ + + FLAC__STREAM_DECODER_WRITE_STATUS_ABORT + /**< An unrecoverable error occurred. The decoder will return from the process call. */ + +} FLAC__StreamDecoderWriteStatus; + +/** Maps a FLAC__StreamDecoderWriteStatus to a C string. + * + * Using a FLAC__StreamDecoderWriteStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderWriteStatusString[]; + + +/** Possible values passed back to the FLAC__StreamDecoder error callback. + * \c FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC is the generic catch- + * all. The rest could be caused by bad sync (false synchronization on + * data that is not the start of a frame) or corrupted data. The error + * itself is the decoder's best guess at what happened assuming a correct + * sync. For example \c FLAC__STREAM_DECODER_ERROR_STATUS_BAD_HEADER + * could be caused by a correct sync on the start of a frame, but some + * data in the frame header was corrupted. Or it could be the result of + * syncing on a point the stream that looked like the starting of a frame + * but was not. \c FLAC__STREAM_DECODER_ERROR_STATUS_UNPARSEABLE_STREAM + * could be because the decoder encountered a valid frame made by a future + * version of the encoder which it cannot parse, or because of a false + * sync making it appear as though an encountered frame was generated by + * a future encoder. + */ +typedef enum { + + FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC, + /**< An error in the stream caused the decoder to lose synchronization. */ + + FLAC__STREAM_DECODER_ERROR_STATUS_BAD_HEADER, + /**< The decoder encountered a corrupted frame header. */ + + FLAC__STREAM_DECODER_ERROR_STATUS_FRAME_CRC_MISMATCH, + /**< The frame's data did not match the CRC in the footer. */ + + FLAC__STREAM_DECODER_ERROR_STATUS_UNPARSEABLE_STREAM + /**< The decoder encountered reserved fields in use in the stream. */ + +} FLAC__StreamDecoderErrorStatus; + +/** Maps a FLAC__StreamDecoderErrorStatus to a C string. + * + * Using a FLAC__StreamDecoderErrorStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderErrorStatusString[]; + + +/*********************************************************************** + * + * class FLAC__StreamDecoder + * + ***********************************************************************/ + +struct FLAC__StreamDecoderProtected; +struct FLAC__StreamDecoderPrivate; +/** The opaque structure definition for the stream decoder type. + * See the \link flac_stream_decoder stream decoder module \endlink + * for a detailed description. + */ +typedef struct { + struct FLAC__StreamDecoderProtected *protected_; /* avoid the C++ keyword 'protected' */ + struct FLAC__StreamDecoderPrivate *private_; /* avoid the C++ keyword 'private' */ +} FLAC__StreamDecoder; + +/** Signature for the read callback. + * + * A function pointer matching this signature must be passed to + * FLAC__stream_decoder_init*_stream(). The supplied function will be + * called when the decoder needs more input data. The address of the + * buffer to be filled is supplied, along with the number of bytes the + * buffer can hold. The callback may choose to supply less data and + * modify the byte count but must be careful not to overflow the buffer. + * The callback then returns a status code chosen from + * FLAC__StreamDecoderReadStatus. + * + * Here is an example of a read callback for stdio streams: + * \code + * FLAC__StreamDecoderReadStatus read_cb(const FLAC__StreamDecoder *decoder, FLAC__byte buffer[], size_t *bytes, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * if(*bytes > 0) { + * *bytes = fread(buffer, sizeof(FLAC__byte), *bytes, file); + * if(ferror(file)) + * return FLAC__STREAM_DECODER_READ_STATUS_ABORT; + * else if(*bytes == 0) + * return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM; + * else + * return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE; + * } + * else + * return FLAC__STREAM_DECODER_READ_STATUS_ABORT; + * } + * \endcode + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param buffer A pointer to a location for the callee to store + * data to be decoded. + * \param bytes A pointer to the size of the buffer. On entry + * to the callback, it contains the maximum number + * of bytes that may be stored in \a buffer. The + * callee must set it to the actual number of bytes + * stored (0 in case of error or end-of-stream) before + * returning. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + * \retval FLAC__StreamDecoderReadStatus + * The callee's return status. Note that the callback should return + * \c FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM if and only if + * zero bytes were read and there is no more data to be read. + */ +typedef FLAC__StreamDecoderReadStatus (*FLAC__StreamDecoderReadCallback)(const FLAC__StreamDecoder *decoder, FLAC__byte buffer[], size_t *bytes, void *client_data); + +/** Signature for the seek callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_decoder_init*_stream(). The supplied function will be + * called when the decoder needs to seek the input stream. The decoder + * will pass the absolute byte offset to seek to, 0 meaning the + * beginning of the stream. + * + * Here is an example of a seek callback for stdio streams: + * \code + * FLAC__StreamDecoderSeekStatus seek_cb(const FLAC__StreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * if(file == stdin) + * return FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED; + * else if(fseeko(file, (off_t)absolute_byte_offset, SEEK_SET) < 0) + * return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR; + * else + * return FLAC__STREAM_DECODER_SEEK_STATUS_OK; + * } + * \endcode + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param absolute_byte_offset The offset from the beginning of the stream + * to seek to. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + * \retval FLAC__StreamDecoderSeekStatus + * The callee's return status. + */ +typedef FLAC__StreamDecoderSeekStatus (*FLAC__StreamDecoderSeekCallback)(const FLAC__StreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data); + +/** Signature for the tell callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_decoder_init*_stream(). The supplied function will be + * called when the decoder wants to know the current position of the + * stream. The callback should return the byte offset from the + * beginning of the stream. + * + * Here is an example of a tell callback for stdio streams: + * \code + * FLAC__StreamDecoderTellStatus tell_cb(const FLAC__StreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * off_t pos; + * if(file == stdin) + * return FLAC__STREAM_DECODER_TELL_STATUS_UNSUPPORTED; + * else if((pos = ftello(file)) < 0) + * return FLAC__STREAM_DECODER_TELL_STATUS_ERROR; + * else { + * *absolute_byte_offset = (FLAC__uint64)pos; + * return FLAC__STREAM_DECODER_TELL_STATUS_OK; + * } + * } + * \endcode + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param absolute_byte_offset A pointer to storage for the current offset + * from the beginning of the stream. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + * \retval FLAC__StreamDecoderTellStatus + * The callee's return status. + */ +typedef FLAC__StreamDecoderTellStatus (*FLAC__StreamDecoderTellCallback)(const FLAC__StreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data); + +/** Signature for the length callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_decoder_init*_stream(). The supplied function will be + * called when the decoder wants to know the total length of the stream + * in bytes. + * + * Here is an example of a length callback for stdio streams: + * \code + * FLAC__StreamDecoderLengthStatus length_cb(const FLAC__StreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * struct stat filestats; + * + * if(file == stdin) + * return FLAC__STREAM_DECODER_LENGTH_STATUS_UNSUPPORTED; + * else if(fstat(fileno(file), &filestats) != 0) + * return FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR; + * else { + * *stream_length = (FLAC__uint64)filestats.st_size; + * return FLAC__STREAM_DECODER_LENGTH_STATUS_OK; + * } + * } + * \endcode + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param stream_length A pointer to storage for the length of the stream + * in bytes. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + * \retval FLAC__StreamDecoderLengthStatus + * The callee's return status. + */ +typedef FLAC__StreamDecoderLengthStatus (*FLAC__StreamDecoderLengthCallback)(const FLAC__StreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data); + +/** Signature for the EOF callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_decoder_init*_stream(). The supplied function will be + * called when the decoder needs to know if the end of the stream has + * been reached. + * + * Here is an example of a EOF callback for stdio streams: + * FLAC__bool eof_cb(const FLAC__StreamDecoder *decoder, void *client_data) + * \code + * { + * FILE *file = ((MyClientData*)client_data)->file; + * return feof(file)? true : false; + * } + * \endcode + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + * \retval FLAC__bool + * \c true if the currently at the end of the stream, else \c false. + */ +typedef FLAC__bool (*FLAC__StreamDecoderEofCallback)(const FLAC__StreamDecoder *decoder, void *client_data); + +/** Signature for the write callback. + * + * A function pointer matching this signature must be passed to one of + * the FLAC__stream_decoder_init_*() functions. + * The supplied function will be called when the decoder has decoded a + * single audio frame. The decoder will pass the frame metadata as well + * as an array of pointers (one for each channel) pointing to the + * decoded audio. + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param frame The description of the decoded frame. See + * FLAC__Frame. + * \param buffer An array of pointers to decoded channels of data. + * Each pointer will point to an array of signed + * samples of length \a frame->header.blocksize. + * Channels will be ordered according to the FLAC + * specification; see the documentation for the + * frame header. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + * \retval FLAC__StreamDecoderWriteStatus + * The callee's return status. + */ +typedef FLAC__StreamDecoderWriteStatus (*FLAC__StreamDecoderWriteCallback)(const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data); + +/** Signature for the metadata callback. + * + * A function pointer matching this signature must be passed to one of + * the FLAC__stream_decoder_init_*() functions. + * The supplied function will be called when the decoder has decoded a + * metadata block. In a valid FLAC file there will always be one + * \c STREAMINFO block, followed by zero or more other metadata blocks. + * These will be supplied by the decoder in the same order as they + * appear in the stream and always before the first audio frame (i.e. + * write callback). The metadata block that is passed in must not be + * modified, and it doesn't live beyond the callback, so you should make + * a copy of it with FLAC__metadata_object_clone() if you will need it + * elsewhere. Since metadata blocks can potentially be large, by + * default the decoder only calls the metadata callback for the + * \c STREAMINFO block; you can instruct the decoder to pass or filter + * other blocks with FLAC__stream_decoder_set_metadata_*() calls. + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param metadata The decoded metadata block. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + */ +typedef void (*FLAC__StreamDecoderMetadataCallback)(const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data); + +/** Signature for the error callback. + * + * A function pointer matching this signature must be passed to one of + * the FLAC__stream_decoder_init_*() functions. + * The supplied function will be called whenever an error occurs during + * decoding. + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param status The error encountered by the decoder. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + */ +typedef void (*FLAC__StreamDecoderErrorCallback)(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data); + + +/*********************************************************************** + * + * Class constructor/destructor + * + ***********************************************************************/ + +/** Create a new stream decoder instance. The instance is created with + * default settings; see the individual FLAC__stream_decoder_set_*() + * functions for each setting's default. + * + * \retval FLAC__StreamDecoder* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__StreamDecoder *FLAC__stream_decoder_new(void); + +/** Free a decoder instance. Deletes the object pointed to by \a decoder. + * + * \param decoder A pointer to an existing decoder. + * \assert + * \code decoder != NULL \endcode + */ +FLAC_API void FLAC__stream_decoder_delete(FLAC__StreamDecoder *decoder); + + +/*********************************************************************** + * + * Public class method prototypes + * + ***********************************************************************/ + +/** Set the serial number for the FLAC stream within the Ogg container. + * The default behavior is to use the serial number of the first Ogg + * page. Setting a serial number here will explicitly specify which + * stream is to be decoded. + * + * \note + * This does not need to be set for native FLAC decoding. + * + * \default \c use serial number of first page + * \param decoder A decoder instance to set. + * \param serial_number See above. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_ogg_serial_number(FLAC__StreamDecoder *decoder, long serial_number); + +/** Set the "MD5 signature checking" flag. If \c true, the decoder will + * compute the MD5 signature of the unencoded audio data while decoding + * and compare it to the signature from the STREAMINFO block, if it + * exists, during FLAC__stream_decoder_finish(). + * + * MD5 signature checking will be turned off (until the next + * FLAC__stream_decoder_reset()) if there is no signature in the + * STREAMINFO block or when a seek is attempted. + * + * Clients that do not use the MD5 check should leave this off to speed + * up decoding. + * + * \default \c false + * \param decoder A decoder instance to set. + * \param value Flag value (see above). + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_md5_checking(FLAC__StreamDecoder *decoder, FLAC__bool value); + +/** Direct the decoder to pass on all metadata blocks of type \a type. + * + * \default By default, only the \c STREAMINFO block is returned via the + * metadata callback. + * \param decoder A decoder instance to set. + * \param type See above. + * \assert + * \code decoder != NULL \endcode + * \a type is valid + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_metadata_respond(FLAC__StreamDecoder *decoder, FLAC__MetadataType type); + +/** Direct the decoder to pass on all APPLICATION metadata blocks of the + * given \a id. + * + * \default By default, only the \c STREAMINFO block is returned via the + * metadata callback. + * \param decoder A decoder instance to set. + * \param id See above. + * \assert + * \code decoder != NULL \endcode + * \code id != NULL \endcode + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_metadata_respond_application(FLAC__StreamDecoder *decoder, const FLAC__byte id[4]); + +/** Direct the decoder to pass on all metadata blocks of any type. + * + * \default By default, only the \c STREAMINFO block is returned via the + * metadata callback. + * \param decoder A decoder instance to set. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_metadata_respond_all(FLAC__StreamDecoder *decoder); + +/** Direct the decoder to filter out all metadata blocks of type \a type. + * + * \default By default, only the \c STREAMINFO block is returned via the + * metadata callback. + * \param decoder A decoder instance to set. + * \param type See above. + * \assert + * \code decoder != NULL \endcode + * \a type is valid + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_metadata_ignore(FLAC__StreamDecoder *decoder, FLAC__MetadataType type); + +/** Direct the decoder to filter out all APPLICATION metadata blocks of + * the given \a id. + * + * \default By default, only the \c STREAMINFO block is returned via the + * metadata callback. + * \param decoder A decoder instance to set. + * \param id See above. + * \assert + * \code decoder != NULL \endcode + * \code id != NULL \endcode + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_metadata_ignore_application(FLAC__StreamDecoder *decoder, const FLAC__byte id[4]); + +/** Direct the decoder to filter out all metadata blocks of any type. + * + * \default By default, only the \c STREAMINFO block is returned via the + * metadata callback. + * \param decoder A decoder instance to set. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_metadata_ignore_all(FLAC__StreamDecoder *decoder); + +/** Get the current decoder state. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__StreamDecoderState + * The current decoder state. + */ +FLAC_API FLAC__StreamDecoderState FLAC__stream_decoder_get_state(const FLAC__StreamDecoder *decoder); + +/** Get the current decoder state as a C string. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval const char * + * The decoder state as a C string. Do not modify the contents. + */ +FLAC_API const char *FLAC__stream_decoder_get_resolved_state_string(const FLAC__StreamDecoder *decoder); + +/** Get the "MD5 signature checking" flag. + * This is the value of the setting, not whether or not the decoder is + * currently checking the MD5 (remember, it can be turned off automatically + * by a seek). When the decoder is reset the flag will be restored to the + * value returned by this function. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * See above. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_get_md5_checking(const FLAC__StreamDecoder *decoder); + +/** Get the total number of samples in the stream being decoded. + * Will only be valid after decoding has started and will contain the + * value from the \c STREAMINFO block. A value of \c 0 means "unknown". + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval unsigned + * See above. + */ +FLAC_API FLAC__uint64 FLAC__stream_decoder_get_total_samples(const FLAC__StreamDecoder *decoder); + +/** Get the current number of channels in the stream being decoded. + * Will only be valid after decoding has started and will contain the + * value from the most recently decoded frame header. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval unsigned + * See above. + */ +FLAC_API unsigned FLAC__stream_decoder_get_channels(const FLAC__StreamDecoder *decoder); + +/** Get the current channel assignment in the stream being decoded. + * Will only be valid after decoding has started and will contain the + * value from the most recently decoded frame header. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__ChannelAssignment + * See above. + */ +FLAC_API FLAC__ChannelAssignment FLAC__stream_decoder_get_channel_assignment(const FLAC__StreamDecoder *decoder); + +/** Get the current sample resolution in the stream being decoded. + * Will only be valid after decoding has started and will contain the + * value from the most recently decoded frame header. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval unsigned + * See above. + */ +FLAC_API unsigned FLAC__stream_decoder_get_bits_per_sample(const FLAC__StreamDecoder *decoder); + +/** Get the current sample rate in Hz of the stream being decoded. + * Will only be valid after decoding has started and will contain the + * value from the most recently decoded frame header. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval unsigned + * See above. + */ +FLAC_API unsigned FLAC__stream_decoder_get_sample_rate(const FLAC__StreamDecoder *decoder); + +/** Get the current blocksize of the stream being decoded. + * Will only be valid after decoding has started and will contain the + * value from the most recently decoded frame header. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval unsigned + * See above. + */ +FLAC_API unsigned FLAC__stream_decoder_get_blocksize(const FLAC__StreamDecoder *decoder); + +/** Returns the decoder's current read position within the stream. + * The position is the byte offset from the start of the stream. + * Bytes before this position have been fully decoded. Note that + * there may still be undecoded bytes in the decoder's read FIFO. + * The returned position is correct even after a seek. + * + * \warning This function currently only works for native FLAC, + * not Ogg FLAC streams. + * + * \param decoder A decoder instance to query. + * \param position Address at which to return the desired position. + * \assert + * \code decoder != NULL \endcode + * \code position != NULL \endcode + * \retval FLAC__bool + * \c true if successful, \c false if the stream is not native FLAC, + * or there was an error from the 'tell' callback or it returned + * \c FLAC__STREAM_DECODER_TELL_STATUS_UNSUPPORTED. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_get_decode_position(const FLAC__StreamDecoder *decoder, FLAC__uint64 *position); + +/** Initialize the decoder instance to decode native FLAC streams. + * + * This flavor of initialization sets up the decoder to decode from a + * native FLAC stream. I/O is performed via callbacks to the client. + * For decoding from a plain file via filename or open FILE*, + * FLAC__stream_decoder_init_file() and FLAC__stream_decoder_init_FILE() + * provide a simpler interface. + * + * This function should be called after FLAC__stream_decoder_new() and + * FLAC__stream_decoder_set_*() but before any of the + * FLAC__stream_decoder_process_*() functions. Will set and return the + * decoder state, which will be FLAC__STREAM_DECODER_SEARCH_FOR_METADATA + * if initialization succeeded. + * + * \param decoder An uninitialized decoder instance. + * \param read_callback See FLAC__StreamDecoderReadCallback. This + * pointer must not be \c NULL. + * \param seek_callback See FLAC__StreamDecoderSeekCallback. This + * pointer may be \c NULL if seeking is not + * supported. If \a seek_callback is not \c NULL then a + * \a tell_callback, \a length_callback, and \a eof_callback must also be supplied. + * Alternatively, a dummy seek callback that just + * returns \c FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param tell_callback See FLAC__StreamDecoderTellCallback. This + * pointer may be \c NULL if not supported by the client. If + * \a seek_callback is not \c NULL then a + * \a tell_callback must also be supplied. + * Alternatively, a dummy tell callback that just + * returns \c FLAC__STREAM_DECODER_TELL_STATUS_UNSUPPORTED + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param length_callback See FLAC__StreamDecoderLengthCallback. This + * pointer may be \c NULL if not supported by the client. If + * \a seek_callback is not \c NULL then a + * \a length_callback must also be supplied. + * Alternatively, a dummy length callback that just + * returns \c FLAC__STREAM_DECODER_LENGTH_STATUS_UNSUPPORTED + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param eof_callback See FLAC__StreamDecoderEofCallback. This + * pointer may be \c NULL if not supported by the client. If + * \a seek_callback is not \c NULL then a + * \a eof_callback must also be supplied. + * Alternatively, a dummy length callback that just + * returns \c false + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param write_callback See FLAC__StreamDecoderWriteCallback. This + * pointer must not be \c NULL. + * \param metadata_callback See FLAC__StreamDecoderMetadataCallback. This + * pointer may be \c NULL if the callback is not + * desired. + * \param error_callback See FLAC__StreamDecoderErrorCallback. This + * pointer must not be \c NULL. + * \param client_data This value will be supplied to callbacks in their + * \a client_data argument. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__StreamDecoderInitStatus + * \c FLAC__STREAM_DECODER_INIT_STATUS_OK if initialization was successful; + * see FLAC__StreamDecoderInitStatus for the meanings of other return values. + */ +FLAC_API FLAC__StreamDecoderInitStatus FLAC__stream_decoder_init_stream( + FLAC__StreamDecoder *decoder, + FLAC__StreamDecoderReadCallback read_callback, + FLAC__StreamDecoderSeekCallback seek_callback, + FLAC__StreamDecoderTellCallback tell_callback, + FLAC__StreamDecoderLengthCallback length_callback, + FLAC__StreamDecoderEofCallback eof_callback, + FLAC__StreamDecoderWriteCallback write_callback, + FLAC__StreamDecoderMetadataCallback metadata_callback, + FLAC__StreamDecoderErrorCallback error_callback, + void *client_data +); + +/** Initialize the decoder instance to decode Ogg FLAC streams. + * + * This flavor of initialization sets up the decoder to decode from a + * FLAC stream in an Ogg container. I/O is performed via callbacks to the + * client. For decoding from a plain file via filename or open FILE*, + * FLAC__stream_decoder_init_ogg_file() and FLAC__stream_decoder_init_ogg_FILE() + * provide a simpler interface. + * + * This function should be called after FLAC__stream_decoder_new() and + * FLAC__stream_decoder_set_*() but before any of the + * FLAC__stream_decoder_process_*() functions. Will set and return the + * decoder state, which will be FLAC__STREAM_DECODER_SEARCH_FOR_METADATA + * if initialization succeeded. + * + * \note Support for Ogg FLAC in the library is optional. If this + * library has been built without support for Ogg FLAC, this function + * will return \c FLAC__STREAM_DECODER_INIT_STATUS_UNSUPPORTED_CONTAINER. + * + * \param decoder An uninitialized decoder instance. + * \param read_callback See FLAC__StreamDecoderReadCallback. This + * pointer must not be \c NULL. + * \param seek_callback See FLAC__StreamDecoderSeekCallback. This + * pointer may be \c NULL if seeking is not + * supported. If \a seek_callback is not \c NULL then a + * \a tell_callback, \a length_callback, and \a eof_callback must also be supplied. + * Alternatively, a dummy seek callback that just + * returns \c FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param tell_callback See FLAC__StreamDecoderTellCallback. This + * pointer may be \c NULL if not supported by the client. If + * \a seek_callback is not \c NULL then a + * \a tell_callback must also be supplied. + * Alternatively, a dummy tell callback that just + * returns \c FLAC__STREAM_DECODER_TELL_STATUS_UNSUPPORTED + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param length_callback See FLAC__StreamDecoderLengthCallback. This + * pointer may be \c NULL if not supported by the client. If + * \a seek_callback is not \c NULL then a + * \a length_callback must also be supplied. + * Alternatively, a dummy length callback that just + * returns \c FLAC__STREAM_DECODER_LENGTH_STATUS_UNSUPPORTED + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param eof_callback See FLAC__StreamDecoderEofCallback. This + * pointer may be \c NULL if not supported by the client. If + * \a seek_callback is not \c NULL then a + * \a eof_callback must also be supplied. + * Alternatively, a dummy length callback that just + * returns \c false + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param write_callback See FLAC__StreamDecoderWriteCallback. This + * pointer must not be \c NULL. + * \param metadata_callback See FLAC__StreamDecoderMetadataCallback. This + * pointer may be \c NULL if the callback is not + * desired. + * \param error_callback See FLAC__StreamDecoderErrorCallback. This + * pointer must not be \c NULL. + * \param client_data This value will be supplied to callbacks in their + * \a client_data argument. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__StreamDecoderInitStatus + * \c FLAC__STREAM_DECODER_INIT_STATUS_OK if initialization was successful; + * see FLAC__StreamDecoderInitStatus for the meanings of other return values. + */ +FLAC_API FLAC__StreamDecoderInitStatus FLAC__stream_decoder_init_ogg_stream( + FLAC__StreamDecoder *decoder, + FLAC__StreamDecoderReadCallback read_callback, + FLAC__StreamDecoderSeekCallback seek_callback, + FLAC__StreamDecoderTellCallback tell_callback, + FLAC__StreamDecoderLengthCallback length_callback, + FLAC__StreamDecoderEofCallback eof_callback, + FLAC__StreamDecoderWriteCallback write_callback, + FLAC__StreamDecoderMetadataCallback metadata_callback, + FLAC__StreamDecoderErrorCallback error_callback, + void *client_data +); + +/** Initialize the decoder instance to decode native FLAC files. + * + * This flavor of initialization sets up the decoder to decode from a + * plain native FLAC file. For non-stdio streams, you must use + * FLAC__stream_decoder_init_stream() and provide callbacks for the I/O. + * + * This function should be called after FLAC__stream_decoder_new() and + * FLAC__stream_decoder_set_*() but before any of the + * FLAC__stream_decoder_process_*() functions. Will set and return the + * decoder state, which will be FLAC__STREAM_DECODER_SEARCH_FOR_METADATA + * if initialization succeeded. + * + * \param decoder An uninitialized decoder instance. + * \param file An open FLAC file. The file should have been + * opened with mode \c "rb" and rewound. The file + * becomes owned by the decoder and should not be + * manipulated by the client while decoding. + * Unless \a file is \c stdin, it will be closed + * when FLAC__stream_decoder_finish() is called. + * Note however that seeking will not work when + * decoding from \c stdout since it is not seekable. + * \param write_callback See FLAC__StreamDecoderWriteCallback. This + * pointer must not be \c NULL. + * \param metadata_callback See FLAC__StreamDecoderMetadataCallback. This + * pointer may be \c NULL if the callback is not + * desired. + * \param error_callback See FLAC__StreamDecoderErrorCallback. This + * pointer must not be \c NULL. + * \param client_data This value will be supplied to callbacks in their + * \a client_data argument. + * \assert + * \code decoder != NULL \endcode + * \code file != NULL \endcode + * \retval FLAC__StreamDecoderInitStatus + * \c FLAC__STREAM_DECODER_INIT_STATUS_OK if initialization was successful; + * see FLAC__StreamDecoderInitStatus for the meanings of other return values. + */ +FLAC_API FLAC__StreamDecoderInitStatus FLAC__stream_decoder_init_FILE( + FLAC__StreamDecoder *decoder, + FILE *file, + FLAC__StreamDecoderWriteCallback write_callback, + FLAC__StreamDecoderMetadataCallback metadata_callback, + FLAC__StreamDecoderErrorCallback error_callback, + void *client_data +); + +/** Initialize the decoder instance to decode Ogg FLAC files. + * + * This flavor of initialization sets up the decoder to decode from a + * plain Ogg FLAC file. For non-stdio streams, you must use + * FLAC__stream_decoder_init_ogg_stream() and provide callbacks for the I/O. + * + * This function should be called after FLAC__stream_decoder_new() and + * FLAC__stream_decoder_set_*() but before any of the + * FLAC__stream_decoder_process_*() functions. Will set and return the + * decoder state, which will be FLAC__STREAM_DECODER_SEARCH_FOR_METADATA + * if initialization succeeded. + * + * \note Support for Ogg FLAC in the library is optional. If this + * library has been built without support for Ogg FLAC, this function + * will return \c FLAC__STREAM_DECODER_INIT_STATUS_UNSUPPORTED_CONTAINER. + * + * \param decoder An uninitialized decoder instance. + * \param file An open FLAC file. The file should have been + * opened with mode \c "rb" and rewound. The file + * becomes owned by the decoder and should not be + * manipulated by the client while decoding. + * Unless \a file is \c stdin, it will be closed + * when FLAC__stream_decoder_finish() is called. + * Note however that seeking will not work when + * decoding from \c stdout since it is not seekable. + * \param write_callback See FLAC__StreamDecoderWriteCallback. This + * pointer must not be \c NULL. + * \param metadata_callback See FLAC__StreamDecoderMetadataCallback. This + * pointer may be \c NULL if the callback is not + * desired. + * \param error_callback See FLAC__StreamDecoderErrorCallback. This + * pointer must not be \c NULL. + * \param client_data This value will be supplied to callbacks in their + * \a client_data argument. + * \assert + * \code decoder != NULL \endcode + * \code file != NULL \endcode + * \retval FLAC__StreamDecoderInitStatus + * \c FLAC__STREAM_DECODER_INIT_STATUS_OK if initialization was successful; + * see FLAC__StreamDecoderInitStatus for the meanings of other return values. + */ +FLAC_API FLAC__StreamDecoderInitStatus FLAC__stream_decoder_init_ogg_FILE( + FLAC__StreamDecoder *decoder, + FILE *file, + FLAC__StreamDecoderWriteCallback write_callback, + FLAC__StreamDecoderMetadataCallback metadata_callback, + FLAC__StreamDecoderErrorCallback error_callback, + void *client_data +); + +/** Initialize the decoder instance to decode native FLAC files. + * + * This flavor of initialization sets up the decoder to decode from a plain + * native FLAC file. If POSIX fopen() semantics are not sufficient, (for + * example, with Unicode filenames on Windows), you must use + * FLAC__stream_decoder_init_FILE(), or FLAC__stream_decoder_init_stream() + * and provide callbacks for the I/O. + * + * This function should be called after FLAC__stream_decoder_new() and + * FLAC__stream_decoder_set_*() but before any of the + * FLAC__stream_decoder_process_*() functions. Will set and return the + * decoder state, which will be FLAC__STREAM_DECODER_SEARCH_FOR_METADATA + * if initialization succeeded. + * + * \param decoder An uninitialized decoder instance. + * \param filename The name of the file to decode from. The file will + * be opened with fopen(). Use \c NULL to decode from + * \c stdin. Note that \c stdin is not seekable. + * \param write_callback See FLAC__StreamDecoderWriteCallback. This + * pointer must not be \c NULL. + * \param metadata_callback See FLAC__StreamDecoderMetadataCallback. This + * pointer may be \c NULL if the callback is not + * desired. + * \param error_callback See FLAC__StreamDecoderErrorCallback. This + * pointer must not be \c NULL. + * \param client_data This value will be supplied to callbacks in their + * \a client_data argument. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__StreamDecoderInitStatus + * \c FLAC__STREAM_DECODER_INIT_STATUS_OK if initialization was successful; + * see FLAC__StreamDecoderInitStatus for the meanings of other return values. + */ +FLAC_API FLAC__StreamDecoderInitStatus FLAC__stream_decoder_init_file( + FLAC__StreamDecoder *decoder, + const char *filename, + FLAC__StreamDecoderWriteCallback write_callback, + FLAC__StreamDecoderMetadataCallback metadata_callback, + FLAC__StreamDecoderErrorCallback error_callback, + void *client_data +); + +/** Initialize the decoder instance to decode Ogg FLAC files. + * + * This flavor of initialization sets up the decoder to decode from a plain + * Ogg FLAC file. If POSIX fopen() semantics are not sufficient, (for + * example, with Unicode filenames on Windows), you must use + * FLAC__stream_decoder_init_ogg_FILE(), or FLAC__stream_decoder_init_ogg_stream() + * and provide callbacks for the I/O. + * + * This function should be called after FLAC__stream_decoder_new() and + * FLAC__stream_decoder_set_*() but before any of the + * FLAC__stream_decoder_process_*() functions. Will set and return the + * decoder state, which will be FLAC__STREAM_DECODER_SEARCH_FOR_METADATA + * if initialization succeeded. + * + * \note Support for Ogg FLAC in the library is optional. If this + * library has been built without support for Ogg FLAC, this function + * will return \c FLAC__STREAM_DECODER_INIT_STATUS_UNSUPPORTED_CONTAINER. + * + * \param decoder An uninitialized decoder instance. + * \param filename The name of the file to decode from. The file will + * be opened with fopen(). Use \c NULL to decode from + * \c stdin. Note that \c stdin is not seekable. + * \param write_callback See FLAC__StreamDecoderWriteCallback. This + * pointer must not be \c NULL. + * \param metadata_callback See FLAC__StreamDecoderMetadataCallback. This + * pointer may be \c NULL if the callback is not + * desired. + * \param error_callback See FLAC__StreamDecoderErrorCallback. This + * pointer must not be \c NULL. + * \param client_data This value will be supplied to callbacks in their + * \a client_data argument. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__StreamDecoderInitStatus + * \c FLAC__STREAM_DECODER_INIT_STATUS_OK if initialization was successful; + * see FLAC__StreamDecoderInitStatus for the meanings of other return values. + */ +FLAC_API FLAC__StreamDecoderInitStatus FLAC__stream_decoder_init_ogg_file( + FLAC__StreamDecoder *decoder, + const char *filename, + FLAC__StreamDecoderWriteCallback write_callback, + FLAC__StreamDecoderMetadataCallback metadata_callback, + FLAC__StreamDecoderErrorCallback error_callback, + void *client_data +); + +/** Finish the decoding process. + * Flushes the decoding buffer, releases resources, resets the decoder + * settings to their defaults, and returns the decoder state to + * FLAC__STREAM_DECODER_UNINITIALIZED. + * + * In the event of a prematurely-terminated decode, it is not strictly + * necessary to call this immediately before FLAC__stream_decoder_delete() + * but it is good practice to match every FLAC__stream_decoder_init_*() + * with a FLAC__stream_decoder_finish(). + * + * \param decoder An uninitialized decoder instance. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if MD5 checking is on AND a STREAMINFO block was available + * AND the MD5 signature in the STREAMINFO block was non-zero AND the + * signature does not match the one computed by the decoder; else + * \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_finish(FLAC__StreamDecoder *decoder); + +/** Flush the stream input. + * The decoder's input buffer will be cleared and the state set to + * \c FLAC__STREAM_DECODER_SEARCH_FOR_FRAME_SYNC. This will also turn + * off MD5 checking. + * + * \param decoder A decoder instance. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c true if successful, else \c false if a memory allocation + * error occurs (in which case the state will be set to + * \c FLAC__STREAM_DECODER_MEMORY_ALLOCATION_ERROR). + */ +FLAC_API FLAC__bool FLAC__stream_decoder_flush(FLAC__StreamDecoder *decoder); + +/** Reset the decoding process. + * The decoder's input buffer will be cleared and the state set to + * \c FLAC__STREAM_DECODER_SEARCH_FOR_METADATA. This is similar to + * FLAC__stream_decoder_finish() except that the settings are + * preserved; there is no need to call FLAC__stream_decoder_init_*() + * before decoding again. MD5 checking will be restored to its original + * setting. + * + * If the decoder is seekable, or was initialized with + * FLAC__stream_decoder_init*_FILE() or FLAC__stream_decoder_init*_file(), + * the decoder will also attempt to seek to the beginning of the file. + * If this rewind fails, this function will return \c false. It follows + * that FLAC__stream_decoder_reset() cannot be used when decoding from + * \c stdin. + * + * If the decoder was initialized with FLAC__stream_encoder_init*_stream() + * and is not seekable (i.e. no seek callback was provided or the seek + * callback returns \c FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED), it + * is the duty of the client to start feeding data from the beginning of + * the stream on the next FLAC__stream_decoder_process() or + * FLAC__stream_decoder_process_interleaved() call. + * + * \param decoder A decoder instance. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c true if successful, else \c false if a memory allocation occurs + * (in which case the state will be set to + * \c FLAC__STREAM_DECODER_MEMORY_ALLOCATION_ERROR) or a seek error + * occurs (the state will be unchanged). + */ +FLAC_API FLAC__bool FLAC__stream_decoder_reset(FLAC__StreamDecoder *decoder); + +/** Decode one metadata block or audio frame. + * This version instructs the decoder to decode a either a single metadata + * block or a single frame and stop, unless the callbacks return a fatal + * error or the read callback returns + * \c FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM. + * + * As the decoder needs more input it will call the read callback. + * Depending on what was decoded, the metadata or write callback will be + * called with the decoded metadata block or audio frame. + * + * Unless there is a fatal read error or end of stream, this function + * will return once one whole frame is decoded. In other words, if the + * stream is not synchronized or points to a corrupt frame header, the + * decoder will continue to try and resync until it gets to a valid + * frame, then decode one frame, then return. If the decoder points to + * a frame whose frame CRC in the frame footer does not match the + * computed frame CRC, this function will issue a + * FLAC__STREAM_DECODER_ERROR_STATUS_FRAME_CRC_MISMATCH error to the + * error callback, and return, having decoded one complete, although + * corrupt, frame. (Such corrupted frames are sent as silence of the + * correct length to the write callback.) + * + * \param decoder An initialized decoder instance. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if any fatal read, write, or memory allocation error + * occurred (meaning decoding must stop), else \c true; for more + * information about the decoder, check the decoder state with + * FLAC__stream_decoder_get_state(). + */ +FLAC_API FLAC__bool FLAC__stream_decoder_process_single(FLAC__StreamDecoder *decoder); + +/** Decode until the end of the metadata. + * This version instructs the decoder to decode from the current position + * and continue until all the metadata has been read, or until the + * callbacks return a fatal error or the read callback returns + * \c FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM. + * + * As the decoder needs more input it will call the read callback. + * As each metadata block is decoded, the metadata callback will be called + * with the decoded metadata. + * + * \param decoder An initialized decoder instance. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if any fatal read, write, or memory allocation error + * occurred (meaning decoding must stop), else \c true; for more + * information about the decoder, check the decoder state with + * FLAC__stream_decoder_get_state(). + */ +FLAC_API FLAC__bool FLAC__stream_decoder_process_until_end_of_metadata(FLAC__StreamDecoder *decoder); + +/** Decode until the end of the stream. + * This version instructs the decoder to decode from the current position + * and continue until the end of stream (the read callback returns + * \c FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM), or until the + * callbacks return a fatal error. + * + * As the decoder needs more input it will call the read callback. + * As each metadata block and frame is decoded, the metadata or write + * callback will be called with the decoded metadata or frame. + * + * \param decoder An initialized decoder instance. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if any fatal read, write, or memory allocation error + * occurred (meaning decoding must stop), else \c true; for more + * information about the decoder, check the decoder state with + * FLAC__stream_decoder_get_state(). + */ +FLAC_API FLAC__bool FLAC__stream_decoder_process_until_end_of_stream(FLAC__StreamDecoder *decoder); + +/** Skip one audio frame. + * This version instructs the decoder to 'skip' a single frame and stop, + * unless the callbacks return a fatal error or the read callback returns + * \c FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM. + * + * The decoding flow is the same as what occurs when + * FLAC__stream_decoder_process_single() is called to process an audio + * frame, except that this function does not decode the parsed data into + * PCM or call the write callback. The integrity of the frame is still + * checked the same way as in the other process functions. + * + * This function will return once one whole frame is skipped, in the + * same way that FLAC__stream_decoder_process_single() will return once + * one whole frame is decoded. + * + * This function can be used in more quickly determining FLAC frame + * boundaries when decoding of the actual data is not needed, for + * example when an application is separating a FLAC stream into frames + * for editing or storing in a container. To do this, the application + * can use FLAC__stream_decoder_skip_single_frame() to quickly advance + * to the next frame, then use + * FLAC__stream_decoder_get_decode_position() to find the new frame + * boundary. + * + * This function should only be called when the stream has advanced + * past all the metadata, otherwise it will return \c false. + * + * \param decoder An initialized decoder instance not in a metadata + * state. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if any fatal read, write, or memory allocation error + * occurred (meaning decoding must stop), or if the decoder + * is in the FLAC__STREAM_DECODER_SEARCH_FOR_METADATA or + * FLAC__STREAM_DECODER_READ_METADATA state, else \c true; for more + * information about the decoder, check the decoder state with + * FLAC__stream_decoder_get_state(). + */ +FLAC_API FLAC__bool FLAC__stream_decoder_skip_single_frame(FLAC__StreamDecoder *decoder); + +/** Flush the input and seek to an absolute sample. + * Decoding will resume at the given sample. Note that because of + * this, the next write callback may contain a partial block. The + * client must support seeking the input or this function will fail + * and return \c false. Furthermore, if the decoder state is + * \c FLAC__STREAM_DECODER_SEEK_ERROR, then the decoder must be flushed + * with FLAC__stream_decoder_flush() or reset with + * FLAC__stream_decoder_reset() before decoding can continue. + * + * \param decoder A decoder instance. + * \param sample The target sample number to seek to. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c true if successful, else \c false. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_seek_absolute(FLAC__StreamDecoder *decoder, FLAC__uint64 sample); + +/* \} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/stream_encoder.h b/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/stream_encoder.h new file mode 100644 index 0000000..dbbbb23 --- /dev/null +++ b/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Headers/stream_encoder.h @@ -0,0 +1,1768 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__STREAM_ENCODER_H +#define FLAC__STREAM_ENCODER_H + +#include /* for FILE */ +#include "export.h" +#include "format.h" +#include "stream_decoder.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +/** \file include/FLAC/stream_encoder.h + * + * \brief + * This module contains the functions which implement the stream + * encoder. + * + * See the detailed documentation in the + * \link flac_stream_encoder stream encoder \endlink module. + */ + +/** \defgroup flac_encoder FLAC/ \*_encoder.h: encoder interfaces + * \ingroup flac + * + * \brief + * This module describes the encoder layers provided by libFLAC. + * + * The stream encoder can be used to encode complete streams either to the + * client via callbacks, or directly to a file, depending on how it is + * initialized. When encoding via callbacks, the client provides a write + * callback which will be called whenever FLAC data is ready to be written. + * If the client also supplies a seek callback, the encoder will also + * automatically handle the writing back of metadata discovered while + * encoding, like stream info, seek points offsets, etc. When encoding to + * a file, the client needs only supply a filename or open \c FILE* and an + * optional progress callback for periodic notification of progress; the + * write and seek callbacks are supplied internally. For more info see the + * \link flac_stream_encoder stream encoder \endlink module. + */ + +/** \defgroup flac_stream_encoder FLAC/stream_encoder.h: stream encoder interface + * \ingroup flac_encoder + * + * \brief + * This module contains the functions which implement the stream + * encoder. + * + * The stream encoder can encode to native FLAC, and optionally Ogg FLAC + * (check FLAC_API_SUPPORTS_OGG_FLAC) streams and files. + * + * The basic usage of this encoder is as follows: + * - The program creates an instance of an encoder using + * FLAC__stream_encoder_new(). + * - The program overrides the default settings using + * FLAC__stream_encoder_set_*() functions. At a minimum, the following + * functions should be called: + * - FLAC__stream_encoder_set_channels() + * - FLAC__stream_encoder_set_bits_per_sample() + * - FLAC__stream_encoder_set_sample_rate() + * - FLAC__stream_encoder_set_ogg_serial_number() (if encoding to Ogg FLAC) + * - FLAC__stream_encoder_set_total_samples_estimate() (if known) + * - If the application wants to control the compression level or set its own + * metadata, then the following should also be called: + * - FLAC__stream_encoder_set_compression_level() + * - FLAC__stream_encoder_set_verify() + * - FLAC__stream_encoder_set_metadata() + * - The rest of the set functions should only be called if the client needs + * exact control over how the audio is compressed; thorough understanding + * of the FLAC format is necessary to achieve good results. + * - The program initializes the instance to validate the settings and + * prepare for encoding using + * - FLAC__stream_encoder_init_stream() or FLAC__stream_encoder_init_FILE() + * or FLAC__stream_encoder_init_file() for native FLAC + * - FLAC__stream_encoder_init_ogg_stream() or FLAC__stream_encoder_init_ogg_FILE() + * or FLAC__stream_encoder_init_ogg_file() for Ogg FLAC + * - The program calls FLAC__stream_encoder_process() or + * FLAC__stream_encoder_process_interleaved() to encode data, which + * subsequently calls the callbacks when there is encoder data ready + * to be written. + * - The program finishes the encoding with FLAC__stream_encoder_finish(), + * which causes the encoder to encode any data still in its input pipe, + * update the metadata with the final encoding statistics if output + * seeking is possible, and finally reset the encoder to the + * uninitialized state. + * - The instance may be used again or deleted with + * FLAC__stream_encoder_delete(). + * + * In more detail, the stream encoder functions similarly to the + * \link flac_stream_decoder stream decoder \endlink, but has fewer + * callbacks and more options. Typically the client will create a new + * instance by calling FLAC__stream_encoder_new(), then set the necessary + * parameters with FLAC__stream_encoder_set_*(), and initialize it by + * calling one of the FLAC__stream_encoder_init_*() functions. + * + * Unlike the decoders, the stream encoder has many options that can + * affect the speed and compression ratio. When setting these parameters + * you should have some basic knowledge of the format (see the + * user-level documentation + * or the formal description). The + * FLAC__stream_encoder_set_*() functions themselves do not validate the + * values as many are interdependent. The FLAC__stream_encoder_init_*() + * functions will do this, so make sure to pay attention to the state + * returned by FLAC__stream_encoder_init_*() to make sure that it is + * FLAC__STREAM_ENCODER_INIT_STATUS_OK. Any parameters that are not set + * before FLAC__stream_encoder_init_*() will take on the defaults from + * the constructor. + * + * There are three initialization functions for native FLAC, one for + * setting up the encoder to encode FLAC data to the client via + * callbacks, and two for encoding directly to a file. + * + * For encoding via callbacks, use FLAC__stream_encoder_init_stream(). + * You must also supply a write callback which will be called anytime + * there is raw encoded data to write. If the client can seek the output + * it is best to also supply seek and tell callbacks, as this allows the + * encoder to go back after encoding is finished to write back + * information that was collected while encoding, like seek point offsets, + * frame sizes, etc. + * + * For encoding directly to a file, use FLAC__stream_encoder_init_FILE() + * or FLAC__stream_encoder_init_file(). Then you must only supply a + * filename or open \c FILE*; the encoder will handle all the callbacks + * internally. You may also supply a progress callback for periodic + * notification of the encoding progress. + * + * There are three similarly-named init functions for encoding to Ogg + * FLAC streams. Check \c FLAC_API_SUPPORTS_OGG_FLAC to find out if the + * library has been built with Ogg support. + * + * The call to FLAC__stream_encoder_init_*() currently will also immediately + * call the write callback several times, once with the \c fLaC signature, + * and once for each encoded metadata block. Note that for Ogg FLAC + * encoding you will usually get at least twice the number of callbacks than + * with native FLAC, one for the Ogg page header and one for the page body. + * + * After initializing the instance, the client may feed audio data to the + * encoder in one of two ways: + * + * - Channel separate, through FLAC__stream_encoder_process() - The client + * will pass an array of pointers to buffers, one for each channel, to + * the encoder, each of the same length. The samples need not be + * block-aligned, but each channel should have the same number of samples. + * - Channel interleaved, through + * FLAC__stream_encoder_process_interleaved() - The client will pass a single + * pointer to data that is channel-interleaved (i.e. channel0_sample0, + * channel1_sample0, ... , channelN_sample0, channel0_sample1, ...). + * Again, the samples need not be block-aligned but they must be + * sample-aligned, i.e. the first value should be channel0_sample0 and + * the last value channelN_sampleM. + * + * Note that for either process call, each sample in the buffers should be a + * signed integer, right-justified to the resolution set by + * FLAC__stream_encoder_set_bits_per_sample(). For example, if the resolution + * is 16 bits per sample, the samples should all be in the range [-32768,32767]. + * + * When the client is finished encoding data, it calls + * FLAC__stream_encoder_finish(), which causes the encoder to encode any + * data still in its input pipe, and call the metadata callback with the + * final encoding statistics. Then the instance may be deleted with + * FLAC__stream_encoder_delete() or initialized again to encode another + * stream. + * + * For programs that write their own metadata, but that do not know the + * actual metadata until after encoding, it is advantageous to instruct + * the encoder to write a PADDING block of the correct size, so that + * instead of rewriting the whole stream after encoding, the program can + * just overwrite the PADDING block. If only the maximum size of the + * metadata is known, the program can write a slightly larger padding + * block, then split it after encoding. + * + * Make sure you understand how lengths are calculated. All FLAC metadata + * blocks have a 4 byte header which contains the type and length. This + * length does not include the 4 bytes of the header. See the format page + * for the specification of metadata blocks and their lengths. + * + * \note + * If you are writing the FLAC data to a file via callbacks, make sure it + * is open for update (e.g. mode "w+" for stdio streams). This is because + * after the first encoding pass, the encoder will try to seek back to the + * beginning of the stream, to the STREAMINFO block, to write some data + * there. (If using FLAC__stream_encoder_init*_file() or + * FLAC__stream_encoder_init*_FILE(), the file is managed internally.) + * + * \note + * The "set" functions may only be called when the encoder is in the + * state FLAC__STREAM_ENCODER_UNINITIALIZED, i.e. after + * FLAC__stream_encoder_new() or FLAC__stream_encoder_finish(), but + * before FLAC__stream_encoder_init_*(). If this is the case they will + * return \c true, otherwise \c false. + * + * \note + * FLAC__stream_encoder_finish() resets all settings to the constructor + * defaults. + * + * \{ + */ + + +/** State values for a FLAC__StreamEncoder. + * + * The encoder's state can be obtained by calling FLAC__stream_encoder_get_state(). + * + * If the encoder gets into any other state besides \c FLAC__STREAM_ENCODER_OK + * or \c FLAC__STREAM_ENCODER_UNINITIALIZED, it becomes invalid for encoding and + * must be deleted with FLAC__stream_encoder_delete(). + */ +typedef enum { + + FLAC__STREAM_ENCODER_OK = 0, + /**< The encoder is in the normal OK state and samples can be processed. */ + + FLAC__STREAM_ENCODER_UNINITIALIZED, + /**< The encoder is in the uninitialized state; one of the + * FLAC__stream_encoder_init_*() functions must be called before samples + * can be processed. + */ + + FLAC__STREAM_ENCODER_OGG_ERROR, + /**< An error occurred in the underlying Ogg layer. */ + + FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR, + /**< An error occurred in the underlying verify stream decoder; + * check FLAC__stream_encoder_get_verify_decoder_state(). + */ + + FLAC__STREAM_ENCODER_VERIFY_MISMATCH_IN_AUDIO_DATA, + /**< The verify decoder detected a mismatch between the original + * audio signal and the decoded audio signal. + */ + + FLAC__STREAM_ENCODER_CLIENT_ERROR, + /**< One of the callbacks returned a fatal error. */ + + FLAC__STREAM_ENCODER_IO_ERROR, + /**< An I/O error occurred while opening/reading/writing a file. + * Check \c errno. + */ + + FLAC__STREAM_ENCODER_FRAMING_ERROR, + /**< An error occurred while writing the stream; usually, the + * write_callback returned an error. + */ + + FLAC__STREAM_ENCODER_MEMORY_ALLOCATION_ERROR + /**< Memory allocation failed. */ + +} FLAC__StreamEncoderState; + +/** Maps a FLAC__StreamEncoderState to a C string. + * + * Using a FLAC__StreamEncoderState as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamEncoderStateString[]; + + +/** Possible return values for the FLAC__stream_encoder_init_*() functions. + */ +typedef enum { + + FLAC__STREAM_ENCODER_INIT_STATUS_OK = 0, + /**< Initialization was successful. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_ENCODER_ERROR, + /**< General failure to set up encoder; call FLAC__stream_encoder_get_state() for cause. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_UNSUPPORTED_CONTAINER, + /**< The library was not compiled with support for the given container + * format. + */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_CALLBACKS, + /**< A required callback was not supplied. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_NUMBER_OF_CHANNELS, + /**< The encoder has an invalid setting for number of channels. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_BITS_PER_SAMPLE, + /**< The encoder has an invalid setting for bits-per-sample. + * FLAC supports 4-32 bps but the reference encoder currently supports + * only up to 24 bps. + */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_SAMPLE_RATE, + /**< The encoder has an invalid setting for the input sample rate. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_BLOCK_SIZE, + /**< The encoder has an invalid setting for the block size. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_MAX_LPC_ORDER, + /**< The encoder has an invalid setting for the maximum LPC order. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_QLP_COEFF_PRECISION, + /**< The encoder has an invalid setting for the precision of the quantized linear predictor coefficients. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_BLOCK_SIZE_TOO_SMALL_FOR_LPC_ORDER, + /**< The specified block size is less than the maximum LPC order. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_NOT_STREAMABLE, + /**< The encoder is bound to the Subset but other settings violate it. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_METADATA, + /**< The metadata input to the encoder is invalid, in one of the following ways: + * - FLAC__stream_encoder_set_metadata() was called with a null pointer but a block count > 0 + * - One of the metadata blocks contains an undefined type + * - It contains an illegal CUESHEET as checked by FLAC__format_cuesheet_is_legal() + * - It contains an illegal SEEKTABLE as checked by FLAC__format_seektable_is_legal() + * - It contains more than one SEEKTABLE block or more than one VORBIS_COMMENT block + */ + + FLAC__STREAM_ENCODER_INIT_STATUS_ALREADY_INITIALIZED + /**< FLAC__stream_encoder_init_*() was called when the encoder was + * already initialized, usually because + * FLAC__stream_encoder_finish() was not called. + */ + +} FLAC__StreamEncoderInitStatus; + +/** Maps a FLAC__StreamEncoderInitStatus to a C string. + * + * Using a FLAC__StreamEncoderInitStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamEncoderInitStatusString[]; + + +/** Return values for the FLAC__StreamEncoder read callback. + */ +typedef enum { + + FLAC__STREAM_ENCODER_READ_STATUS_CONTINUE, + /**< The read was OK and decoding can continue. */ + + FLAC__STREAM_ENCODER_READ_STATUS_END_OF_STREAM, + /**< The read was attempted at the end of the stream. */ + + FLAC__STREAM_ENCODER_READ_STATUS_ABORT, + /**< An unrecoverable error occurred. */ + + FLAC__STREAM_ENCODER_READ_STATUS_UNSUPPORTED + /**< Client does not support reading back from the output. */ + +} FLAC__StreamEncoderReadStatus; + +/** Maps a FLAC__StreamEncoderReadStatus to a C string. + * + * Using a FLAC__StreamEncoderReadStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamEncoderReadStatusString[]; + + +/** Return values for the FLAC__StreamEncoder write callback. + */ +typedef enum { + + FLAC__STREAM_ENCODER_WRITE_STATUS_OK = 0, + /**< The write was OK and encoding can continue. */ + + FLAC__STREAM_ENCODER_WRITE_STATUS_FATAL_ERROR + /**< An unrecoverable error occurred. The encoder will return from the process call. */ + +} FLAC__StreamEncoderWriteStatus; + +/** Maps a FLAC__StreamEncoderWriteStatus to a C string. + * + * Using a FLAC__StreamEncoderWriteStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamEncoderWriteStatusString[]; + + +/** Return values for the FLAC__StreamEncoder seek callback. + */ +typedef enum { + + FLAC__STREAM_ENCODER_SEEK_STATUS_OK, + /**< The seek was OK and encoding can continue. */ + + FLAC__STREAM_ENCODER_SEEK_STATUS_ERROR, + /**< An unrecoverable error occurred. */ + + FLAC__STREAM_ENCODER_SEEK_STATUS_UNSUPPORTED + /**< Client does not support seeking. */ + +} FLAC__StreamEncoderSeekStatus; + +/** Maps a FLAC__StreamEncoderSeekStatus to a C string. + * + * Using a FLAC__StreamEncoderSeekStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamEncoderSeekStatusString[]; + + +/** Return values for the FLAC__StreamEncoder tell callback. + */ +typedef enum { + + FLAC__STREAM_ENCODER_TELL_STATUS_OK, + /**< The tell was OK and encoding can continue. */ + + FLAC__STREAM_ENCODER_TELL_STATUS_ERROR, + /**< An unrecoverable error occurred. */ + + FLAC__STREAM_ENCODER_TELL_STATUS_UNSUPPORTED + /**< Client does not support seeking. */ + +} FLAC__StreamEncoderTellStatus; + +/** Maps a FLAC__StreamEncoderTellStatus to a C string. + * + * Using a FLAC__StreamEncoderTellStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamEncoderTellStatusString[]; + + +/*********************************************************************** + * + * class FLAC__StreamEncoder + * + ***********************************************************************/ + +struct FLAC__StreamEncoderProtected; +struct FLAC__StreamEncoderPrivate; +/** The opaque structure definition for the stream encoder type. + * See the \link flac_stream_encoder stream encoder module \endlink + * for a detailed description. + */ +typedef struct { + struct FLAC__StreamEncoderProtected *protected_; /* avoid the C++ keyword 'protected' */ + struct FLAC__StreamEncoderPrivate *private_; /* avoid the C++ keyword 'private' */ +} FLAC__StreamEncoder; + +/** Signature for the read callback. + * + * A function pointer matching this signature must be passed to + * FLAC__stream_encoder_init_ogg_stream() if seeking is supported. + * The supplied function will be called when the encoder needs to read back + * encoded data. This happens during the metadata callback, when the encoder + * has to read, modify, and rewrite the metadata (e.g. seekpoints) gathered + * while encoding. The address of the buffer to be filled is supplied, along + * with the number of bytes the buffer can hold. The callback may choose to + * supply less data and modify the byte count but must be careful not to + * overflow the buffer. The callback then returns a status code chosen from + * FLAC__StreamEncoderReadStatus. + * + * Here is an example of a read callback for stdio streams: + * \code + * FLAC__StreamEncoderReadStatus read_cb(const FLAC__StreamEncoder *encoder, FLAC__byte buffer[], size_t *bytes, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * if(*bytes > 0) { + * *bytes = fread(buffer, sizeof(FLAC__byte), *bytes, file); + * if(ferror(file)) + * return FLAC__STREAM_ENCODER_READ_STATUS_ABORT; + * else if(*bytes == 0) + * return FLAC__STREAM_ENCODER_READ_STATUS_END_OF_STREAM; + * else + * return FLAC__STREAM_ENCODER_READ_STATUS_CONTINUE; + * } + * else + * return FLAC__STREAM_ENCODER_READ_STATUS_ABORT; + * } + * \endcode + * + * \note In general, FLAC__StreamEncoder functions which change the + * state should not be called on the \a encoder while in the callback. + * + * \param encoder The encoder instance calling the callback. + * \param buffer A pointer to a location for the callee to store + * data to be encoded. + * \param bytes A pointer to the size of the buffer. On entry + * to the callback, it contains the maximum number + * of bytes that may be stored in \a buffer. The + * callee must set it to the actual number of bytes + * stored (0 in case of error or end-of-stream) before + * returning. + * \param client_data The callee's client data set through + * FLAC__stream_encoder_set_client_data(). + * \retval FLAC__StreamEncoderReadStatus + * The callee's return status. + */ +typedef FLAC__StreamEncoderReadStatus (*FLAC__StreamEncoderReadCallback)(const FLAC__StreamEncoder *encoder, FLAC__byte buffer[], size_t *bytes, void *client_data); + +/** Signature for the write callback. + * + * A function pointer matching this signature must be passed to + * FLAC__stream_encoder_init*_stream(). The supplied function will be called + * by the encoder anytime there is raw encoded data ready to write. It may + * include metadata mixed with encoded audio frames and the data is not + * guaranteed to be aligned on frame or metadata block boundaries. + * + * The only duty of the callback is to write out the \a bytes worth of data + * in \a buffer to the current position in the output stream. The arguments + * \a samples and \a current_frame are purely informational. If \a samples + * is greater than \c 0, then \a current_frame will hold the current frame + * number that is being written; otherwise it indicates that the write + * callback is being called to write metadata. + * + * \note + * Unlike when writing to native FLAC, when writing to Ogg FLAC the + * write callback will be called twice when writing each audio + * frame; once for the page header, and once for the page body. + * When writing the page header, the \a samples argument to the + * write callback will be \c 0. + * + * \note In general, FLAC__StreamEncoder functions which change the + * state should not be called on the \a encoder while in the callback. + * + * \param encoder The encoder instance calling the callback. + * \param buffer An array of encoded data of length \a bytes. + * \param bytes The byte length of \a buffer. + * \param samples The number of samples encoded by \a buffer. + * \c 0 has a special meaning; see above. + * \param current_frame The number of the current frame being encoded. + * \param client_data The callee's client data set through + * FLAC__stream_encoder_init_*(). + * \retval FLAC__StreamEncoderWriteStatus + * The callee's return status. + */ +typedef FLAC__StreamEncoderWriteStatus (*FLAC__StreamEncoderWriteCallback)(const FLAC__StreamEncoder *encoder, const FLAC__byte buffer[], size_t bytes, unsigned samples, unsigned current_frame, void *client_data); + +/** Signature for the seek callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_encoder_init*_stream(). The supplied function will be called + * when the encoder needs to seek the output stream. The encoder will pass + * the absolute byte offset to seek to, 0 meaning the beginning of the stream. + * + * Here is an example of a seek callback for stdio streams: + * \code + * FLAC__StreamEncoderSeekStatus seek_cb(const FLAC__StreamEncoder *encoder, FLAC__uint64 absolute_byte_offset, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * if(file == stdin) + * return FLAC__STREAM_ENCODER_SEEK_STATUS_UNSUPPORTED; + * else if(fseeko(file, (off_t)absolute_byte_offset, SEEK_SET) < 0) + * return FLAC__STREAM_ENCODER_SEEK_STATUS_ERROR; + * else + * return FLAC__STREAM_ENCODER_SEEK_STATUS_OK; + * } + * \endcode + * + * \note In general, FLAC__StreamEncoder functions which change the + * state should not be called on the \a encoder while in the callback. + * + * \param encoder The encoder instance calling the callback. + * \param absolute_byte_offset The offset from the beginning of the stream + * to seek to. + * \param client_data The callee's client data set through + * FLAC__stream_encoder_init_*(). + * \retval FLAC__StreamEncoderSeekStatus + * The callee's return status. + */ +typedef FLAC__StreamEncoderSeekStatus (*FLAC__StreamEncoderSeekCallback)(const FLAC__StreamEncoder *encoder, FLAC__uint64 absolute_byte_offset, void *client_data); + +/** Signature for the tell callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_encoder_init*_stream(). The supplied function will be called + * when the encoder needs to know the current position of the output stream. + * + * \warning + * The callback must return the true current byte offset of the output to + * which the encoder is writing. If you are buffering the output, make + * sure and take this into account. If you are writing directly to a + * FILE* from your write callback, ftell() is sufficient. If you are + * writing directly to a file descriptor from your write callback, you + * can use lseek(fd, SEEK_CUR, 0). The encoder may later seek back to + * these points to rewrite metadata after encoding. + * + * Here is an example of a tell callback for stdio streams: + * \code + * FLAC__StreamEncoderTellStatus tell_cb(const FLAC__StreamEncoder *encoder, FLAC__uint64 *absolute_byte_offset, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * off_t pos; + * if(file == stdin) + * return FLAC__STREAM_ENCODER_TELL_STATUS_UNSUPPORTED; + * else if((pos = ftello(file)) < 0) + * return FLAC__STREAM_ENCODER_TELL_STATUS_ERROR; + * else { + * *absolute_byte_offset = (FLAC__uint64)pos; + * return FLAC__STREAM_ENCODER_TELL_STATUS_OK; + * } + * } + * \endcode + * + * \note In general, FLAC__StreamEncoder functions which change the + * state should not be called on the \a encoder while in the callback. + * + * \param encoder The encoder instance calling the callback. + * \param absolute_byte_offset The address at which to store the current + * position of the output. + * \param client_data The callee's client data set through + * FLAC__stream_encoder_init_*(). + * \retval FLAC__StreamEncoderTellStatus + * The callee's return status. + */ +typedef FLAC__StreamEncoderTellStatus (*FLAC__StreamEncoderTellCallback)(const FLAC__StreamEncoder *encoder, FLAC__uint64 *absolute_byte_offset, void *client_data); + +/** Signature for the metadata callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_encoder_init*_stream(). The supplied function will be called + * once at the end of encoding with the populated STREAMINFO structure. This + * is so the client can seek back to the beginning of the file and write the + * STREAMINFO block with the correct statistics after encoding (like + * minimum/maximum frame size and total samples). + * + * \note In general, FLAC__StreamEncoder functions which change the + * state should not be called on the \a encoder while in the callback. + * + * \param encoder The encoder instance calling the callback. + * \param metadata The final populated STREAMINFO block. + * \param client_data The callee's client data set through + * FLAC__stream_encoder_init_*(). + */ +typedef void (*FLAC__StreamEncoderMetadataCallback)(const FLAC__StreamEncoder *encoder, const FLAC__StreamMetadata *metadata, void *client_data); + +/** Signature for the progress callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_encoder_init*_file() or FLAC__stream_encoder_init*_FILE(). + * The supplied function will be called when the encoder has finished + * writing a frame. The \c total_frames_estimate argument to the + * callback will be based on the value from + * FLAC__stream_encoder_set_total_samples_estimate(). + * + * \note In general, FLAC__StreamEncoder functions which change the + * state should not be called on the \a encoder while in the callback. + * + * \param encoder The encoder instance calling the callback. + * \param bytes_written Bytes written so far. + * \param samples_written Samples written so far. + * \param frames_written Frames written so far. + * \param total_frames_estimate The estimate of the total number of + * frames to be written. + * \param client_data The callee's client data set through + * FLAC__stream_encoder_init_*(). + */ +typedef void (*FLAC__StreamEncoderProgressCallback)(const FLAC__StreamEncoder *encoder, FLAC__uint64 bytes_written, FLAC__uint64 samples_written, unsigned frames_written, unsigned total_frames_estimate, void *client_data); + + +/*********************************************************************** + * + * Class constructor/destructor + * + ***********************************************************************/ + +/** Create a new stream encoder instance. The instance is created with + * default settings; see the individual FLAC__stream_encoder_set_*() + * functions for each setting's default. + * + * \retval FLAC__StreamEncoder* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__StreamEncoder *FLAC__stream_encoder_new(void); + +/** Free an encoder instance. Deletes the object pointed to by \a encoder. + * + * \param encoder A pointer to an existing encoder. + * \assert + * \code encoder != NULL \endcode + */ +FLAC_API void FLAC__stream_encoder_delete(FLAC__StreamEncoder *encoder); + + +/*********************************************************************** + * + * Public class method prototypes + * + ***********************************************************************/ + +/** Set the serial number for the FLAC stream to use in the Ogg container. + * + * \note + * This does not need to be set for native FLAC encoding. + * + * \note + * It is recommended to set a serial number explicitly as the default of '0' + * may collide with other streams. + * + * \default \c 0 + * \param encoder An encoder instance to set. + * \param serial_number See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_ogg_serial_number(FLAC__StreamEncoder *encoder, long serial_number); + +/** Set the "verify" flag. If \c true, the encoder will verify it's own + * encoded output by feeding it through an internal decoder and comparing + * the original signal against the decoded signal. If a mismatch occurs, + * the process call will return \c false. Note that this will slow the + * encoding process by the extra time required for decoding and comparison. + * + * \default \c false + * \param encoder An encoder instance to set. + * \param value Flag value (see above). + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_verify(FLAC__StreamEncoder *encoder, FLAC__bool value); + +/** Set the Subset flag. If \c true, + * the encoder will comply with the Subset and will check the + * settings during FLAC__stream_encoder_init_*() to see if all settings + * comply. If \c false, the settings may take advantage of the full + * range that the format allows. + * + * Make sure you know what it entails before setting this to \c false. + * + * \default \c true + * \param encoder An encoder instance to set. + * \param value Flag value (see above). + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_streamable_subset(FLAC__StreamEncoder *encoder, FLAC__bool value); + +/** Set the number of channels to be encoded. + * + * \default \c 2 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_channels(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set the sample resolution of the input to be encoded. + * + * \warning + * Do not feed the encoder data that is wider than the value you + * set here or you will generate an invalid stream. + * + * \default \c 16 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_bits_per_sample(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set the sample rate (in Hz) of the input to be encoded. + * + * \default \c 44100 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_sample_rate(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set the compression level + * + * The compression level is roughly proportional to the amount of effort + * the encoder expends to compress the file. A higher level usually + * means more computation but higher compression. The default level is + * suitable for most applications. + * + * Currently the levels range from \c 0 (fastest, least compression) to + * \c 8 (slowest, most compression). A value larger than \c 8 will be + * treated as \c 8. + * + * This function automatically calls the following other \c _set_ + * functions with appropriate values, so the client does not need to + * unless it specifically wants to override them: + * - FLAC__stream_encoder_set_do_mid_side_stereo() + * - FLAC__stream_encoder_set_loose_mid_side_stereo() + * - FLAC__stream_encoder_set_apodization() + * - FLAC__stream_encoder_set_max_lpc_order() + * - FLAC__stream_encoder_set_qlp_coeff_precision() + * - FLAC__stream_encoder_set_do_qlp_coeff_prec_search() + * - FLAC__stream_encoder_set_do_escape_coding() + * - FLAC__stream_encoder_set_do_exhaustive_model_search() + * - FLAC__stream_encoder_set_min_residual_partition_order() + * - FLAC__stream_encoder_set_max_residual_partition_order() + * - FLAC__stream_encoder_set_rice_parameter_search_dist() + * + * The actual values set for each level are: + * + * + * + * + * + * + * + * + * + * + * + * + *
level + * do mid-side stereo + * loose mid-side stereo + * apodization + * max lpc order + * qlp coeff precision + * qlp coeff prec search + * escape coding + * exhaustive model search + * min residual partition order + * max residual partition order + * rice parameter search dist + *
0 false false tukey(0.5) 0 0 false false false 0 3 0
1 true true tukey(0.5) 0 0 false false false 0 3 0
2 true false tukey(0.5) 0 0 false false false 0 3 0
3 false false tukey(0.5) 6 0 false false false 0 4 0
4 true true tukey(0.5) 8 0 false false false 0 4 0
5 true false tukey(0.5) 8 0 false false false 0 5 0
6 true false tukey(0.5) 8 0 false false false 0 6 0
7 true false tukey(0.5) 8 0 false false true 0 6 0
8 true false tukey(0.5) 12 0 false false true 0 6 0
+ * + * \default \c 5 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_compression_level(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set the blocksize to use while encoding. + * + * The number of samples to use per frame. Use \c 0 to let the encoder + * estimate a blocksize; this is usually best. + * + * \default \c 0 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_blocksize(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set to \c true to enable mid-side encoding on stereo input. The + * number of channels must be 2 for this to have any effect. Set to + * \c false to use only independent channel coding. + * + * \default \c false + * \param encoder An encoder instance to set. + * \param value Flag value (see above). + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_do_mid_side_stereo(FLAC__StreamEncoder *encoder, FLAC__bool value); + +/** Set to \c true to enable adaptive switching between mid-side and + * left-right encoding on stereo input. Set to \c false to use + * exhaustive searching. Setting this to \c true requires + * FLAC__stream_encoder_set_do_mid_side_stereo() to also be set to + * \c true in order to have any effect. + * + * \default \c false + * \param encoder An encoder instance to set. + * \param value Flag value (see above). + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_loose_mid_side_stereo(FLAC__StreamEncoder *encoder, FLAC__bool value); + +/** Sets the apodization function(s) the encoder will use when windowing + * audio data for LPC analysis. + * + * The \a specification is a plain ASCII string which specifies exactly + * which functions to use. There may be more than one (up to 32), + * separated by \c ';' characters. Some functions take one or more + * comma-separated arguments in parentheses. + * + * The available functions are \c bartlett, \c bartlett_hann, + * \c blackman, \c blackman_harris_4term_92db, \c connes, \c flattop, + * \c gauss(STDDEV), \c hamming, \c hann, \c kaiser_bessel, \c nuttall, + * \c rectangle, \c triangle, \c tukey(P), \c welch. + * + * For \c gauss(STDDEV), STDDEV specifies the standard deviation + * (0blocksize / (2 ^ order). + * + * Set both min and max values to \c 0 to force a single context, + * whose Rice parameter is based on the residual signal variance. + * Otherwise, set a min and max order, and the encoder will search + * all orders, using the mean of each context for its Rice parameter, + * and use the best. + * + * \default \c 0 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_min_residual_partition_order(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set the maximum partition order to search when coding the residual. + * This is used in tandem with + * FLAC__stream_encoder_set_min_residual_partition_order(). + * + * The partition order determines the context size in the residual. + * The context size will be approximately blocksize / (2 ^ order). + * + * Set both min and max values to \c 0 to force a single context, + * whose Rice parameter is based on the residual signal variance. + * Otherwise, set a min and max order, and the encoder will search + * all orders, using the mean of each context for its Rice parameter, + * and use the best. + * + * \default \c 0 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_max_residual_partition_order(FLAC__StreamEncoder *encoder, unsigned value); + +/** Deprecated. Setting this value has no effect. + * + * \default \c 0 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_rice_parameter_search_dist(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set an estimate of the total samples that will be encoded. + * This is merely an estimate and may be set to \c 0 if unknown. + * This value will be written to the STREAMINFO block before encoding, + * and can remove the need for the caller to rewrite the value later + * if the value is known before encoding. + * + * \default \c 0 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_total_samples_estimate(FLAC__StreamEncoder *encoder, FLAC__uint64 value); + +/** Set the metadata blocks to be emitted to the stream before encoding. + * A value of \c NULL, \c 0 implies no metadata; otherwise, supply an + * array of pointers to metadata blocks. The array is non-const since + * the encoder may need to change the \a is_last flag inside them, and + * in some cases update seek point offsets. Otherwise, the encoder will + * not modify or free the blocks. It is up to the caller to free the + * metadata blocks after encoding finishes. + * + * \note + * The encoder stores only copies of the pointers in the \a metadata array; + * the metadata blocks themselves must survive at least until after + * FLAC__stream_encoder_finish() returns. Do not free the blocks until then. + * + * \note + * The STREAMINFO block is always written and no STREAMINFO block may + * occur in the supplied array. + * + * \note + * By default the encoder does not create a SEEKTABLE. If one is supplied + * in the \a metadata array, but the client has specified that it does not + * support seeking, then the SEEKTABLE will be written verbatim. However + * by itself this is not very useful as the client will not know the stream + * offsets for the seekpoints ahead of time. In order to get a proper + * seektable the client must support seeking. See next note. + * + * \note + * SEEKTABLE blocks are handled specially. Since you will not know + * the values for the seek point stream offsets, you should pass in + * a SEEKTABLE 'template', that is, a SEEKTABLE object with the + * required sample numbers (or placeholder points), with \c 0 for the + * \a frame_samples and \a stream_offset fields for each point. If the + * client has specified that it supports seeking by providing a seek + * callback to FLAC__stream_encoder_init_stream() or both seek AND read + * callback to FLAC__stream_encoder_init_ogg_stream() (or by using + * FLAC__stream_encoder_init*_file() or FLAC__stream_encoder_init*_FILE()), + * then while it is encoding the encoder will fill the stream offsets in + * for you and when encoding is finished, it will seek back and write the + * real values into the SEEKTABLE block in the stream. There are helper + * routines for manipulating seektable template blocks; see metadata.h: + * FLAC__metadata_object_seektable_template_*(). If the client does + * not support seeking, the SEEKTABLE will have inaccurate offsets which + * will slow down or remove the ability to seek in the FLAC stream. + * + * \note + * The encoder instance \b will modify the first \c SEEKTABLE block + * as it transforms the template to a valid seektable while encoding, + * but it is still up to the caller to free all metadata blocks after + * encoding. + * + * \note + * A VORBIS_COMMENT block may be supplied. The vendor string in it + * will be ignored. libFLAC will use it's own vendor string. libFLAC + * will not modify the passed-in VORBIS_COMMENT's vendor string, it + * will simply write it's own into the stream. If no VORBIS_COMMENT + * block is present in the \a metadata array, libFLAC will write an + * empty one, containing only the vendor string. + * + * \note The Ogg FLAC mapping requires that the VORBIS_COMMENT block be + * the second metadata block of the stream. The encoder already supplies + * the STREAMINFO block automatically. If \a metadata does not contain a + * VORBIS_COMMENT block, the encoder will supply that too. Otherwise, if + * \a metadata does contain a VORBIS_COMMENT block and it is not the + * first, the init function will reorder \a metadata by moving the + * VORBIS_COMMENT block to the front; the relative ordering of the other + * blocks will remain as they were. + * + * \note The Ogg FLAC mapping limits the number of metadata blocks per + * stream to \c 65535. If \a num_blocks exceeds this the function will + * return \c false. + * + * \default \c NULL, 0 + * \param encoder An encoder instance to set. + * \param metadata See above. + * \param num_blocks See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + * \c false if the encoder is already initialized, or if + * \a num_blocks > 65535 if encoding to Ogg FLAC, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_metadata(FLAC__StreamEncoder *encoder, FLAC__StreamMetadata **metadata, unsigned num_blocks); + +/** Get the current encoder state. + * + * \param encoder An encoder instance to query. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__StreamEncoderState + * The current encoder state. + */ +FLAC_API FLAC__StreamEncoderState FLAC__stream_encoder_get_state(const FLAC__StreamEncoder *encoder); + +/** Get the state of the verify stream decoder. + * Useful when the stream encoder state is + * \c FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR. + * + * \param encoder An encoder instance to query. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__StreamDecoderState + * The verify stream decoder state. + */ +FLAC_API FLAC__StreamDecoderState FLAC__stream_encoder_get_verify_decoder_state(const FLAC__StreamEncoder *encoder); + +/** Get the current encoder state as a C string. + * This version automatically resolves + * \c FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR by getting the + * verify decoder's state. + * + * \param encoder A encoder instance to query. + * \assert + * \code encoder != NULL \endcode + * \retval const char * + * The encoder state as a C string. Do not modify the contents. + */ +FLAC_API const char *FLAC__stream_encoder_get_resolved_state_string(const FLAC__StreamEncoder *encoder); + +/** Get relevant values about the nature of a verify decoder error. + * Useful when the stream encoder state is + * \c FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR. The arguments should + * be addresses in which the stats will be returned, or NULL if value + * is not desired. + * + * \param encoder An encoder instance to query. + * \param absolute_sample The absolute sample number of the mismatch. + * \param frame_number The number of the frame in which the mismatch occurred. + * \param channel The channel in which the mismatch occurred. + * \param sample The number of the sample (relative to the frame) in + * which the mismatch occurred. + * \param expected The expected value for the sample in question. + * \param got The actual value returned by the decoder. + * \assert + * \code encoder != NULL \endcode + */ +FLAC_API void FLAC__stream_encoder_get_verify_decoder_error_stats(const FLAC__StreamEncoder *encoder, FLAC__uint64 *absolute_sample, unsigned *frame_number, unsigned *channel, unsigned *sample, FLAC__int32 *expected, FLAC__int32 *got); + +/** Get the "verify" flag. + * + * \param encoder An encoder instance to query. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * See FLAC__stream_encoder_set_verify(). + */ +FLAC_API FLAC__bool FLAC__stream_encoder_get_verify(const FLAC__StreamEncoder *encoder); + +/** Get the frame header. + * + * \param encoder An initialized encoder instance in the OK state. + * \param buffer An array of pointers to each channel's signal. + * \param samples The number of samples in one channel. + * \assert + * \code encoder != NULL \endcode + * \code FLAC__stream_encoder_get_state(encoder) == FLAC__STREAM_ENCODER_OK \endcode + * \retval FLAC__bool + * \c true if successful, else \c false; in this case, check the + * encoder state with FLAC__stream_encoder_get_state() to see what + * went wrong. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_process(FLAC__StreamEncoder *encoder, const FLAC__int32 * const buffer[], unsigned samples); + +/** Submit data for encoding. + * This version allows you to supply the input data where the channels + * are interleaved into a single array (i.e. channel0_sample0, + * channel1_sample0, ... , channelN_sample0, channel0_sample1, ...). + * The samples need not be block-aligned but they must be + * sample-aligned, i.e. the first value should be channel0_sample0 + * and the last value channelN_sampleM. Each sample should be a signed + * integer, right-justified to the resolution set by + * FLAC__stream_encoder_set_bits_per_sample(). For example, if the + * resolution is 16 bits per sample, the samples should all be in the + * range [-32768,32767]. + * + * For applications where channel order is important, channels must + * follow the order as described in the + * frame header. + * + * \param encoder An initialized encoder instance in the OK state. + * \param buffer An array of channel-interleaved data (see above). + * \param samples The number of samples in one channel, the same as for + * FLAC__stream_encoder_process(). For example, if + * encoding two channels, \c 1000 \a samples corresponds + * to a \a buffer of 2000 values. + * \assert + * \code encoder != NULL \endcode + * \code FLAC__stream_encoder_get_state(encoder) == FLAC__STREAM_ENCODER_OK \endcode + * \retval FLAC__bool + * \c true if successful, else \c false; in this case, check the + * encoder state with FLAC__stream_encoder_get_state() to see what + * went wrong. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_process_interleaved(FLAC__StreamEncoder *encoder, const FLAC__int32 buffer[], unsigned samples); + +/* \} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Resources/Info.plist b/Audio-Frameworks/bin/flac/FLAC.framework/Versions/A/Resources/Info.plist new file mode 100644 index 0000000000000000000000000000000000000000..10be6df5ce5764f2289318cd08e0e5a0b63a6b18 GIT binary patch literal 736 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%0Ac;#3ajeA-7jHjhm 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

vR-;pzp{PbAx3vX|^kvEmNqp%`9hXdUHXk^o$Gy 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 literal 0 HcmV?d00001 diff --git a/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/all.h b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/all.h new file mode 100644 index 0000000..c542c0d --- /dev/null +++ b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/all.h @@ -0,0 +1,370 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__ALL_H +#define FLAC__ALL_H + +#include "export.h" + +#include "assert.h" +#include "callback.h" +#include "format.h" +#include "metadata.h" +#include "ordinals.h" +#include "stream_decoder.h" +#include "stream_encoder.h" + +/** \mainpage + * + * \section intro Introduction + * + * This is the documentation for the FLAC C and C++ APIs. It is + * highly interconnected; this introduction should give you a top + * level idea of the structure and how to find the information you + * need. As a prerequisite you should have at least a basic + * knowledge of the FLAC format, documented + * here. + * + * \section c_api FLAC C API + * + * The FLAC C API is the interface to libFLAC, a set of structures + * describing the components of FLAC streams, and functions for + * encoding and decoding streams, as well as manipulating FLAC + * metadata in files. The public include files will be installed + * in your include area (for example /usr/include/FLAC/...). + * + * By writing a little code and linking against libFLAC, it is + * relatively easy to add FLAC support to another program. The + * library is licensed under Xiph's BSD license. + * Complete source code of libFLAC as well as the command-line + * encoder and plugins is available and is a useful source of + * examples. + * + * Aside from encoders and decoders, libFLAC provides a powerful + * metadata interface for manipulating metadata in FLAC files. It + * allows the user to add, delete, and modify FLAC metadata blocks + * and it can automatically take advantage of PADDING blocks to avoid + * rewriting the entire FLAC file when changing the size of the + * metadata. + * + * libFLAC usually only requires the standard C library and C math + * library. In particular, threading is not used so there is no + * dependency on a thread library. However, libFLAC does not use + * global variables and should be thread-safe. + * + * libFLAC also supports encoding to and decoding from Ogg FLAC. + * However the metadata editing interfaces currently have limited + * read-only support for Ogg FLAC files. + * + * \section cpp_api FLAC C++ API + * + * The FLAC C++ API is a set of classes that encapsulate the + * structures and functions in libFLAC. They provide slightly more + * functionality with respect to metadata but are otherwise + * equivalent. For the most part, they share the same usage as + * their counterparts in libFLAC, and the FLAC C API documentation + * can be used as a supplement. The public include files + * for the C++ API will be installed in your include area (for + * example /usr/include/FLAC++/...). + * + * libFLAC++ is also licensed under + * Xiph's BSD license. + * + * \section getting_started Getting Started + * + * A good starting point for learning the API is to browse through + * the modules. Modules are logical + * groupings of related functions or classes, which correspond roughly + * to header files or sections of header files. Each module includes a + * detailed description of the general usage of its functions or + * classes. + * + * From there you can go on to look at the documentation of + * individual functions. You can see different views of the individual + * functions through the links in top bar across this page. + * + * If you prefer a more hands-on approach, you can jump right to some + * example code. + * + * \section porting_guide Porting Guide + * + * Starting with FLAC 1.1.3 a \link porting Porting Guide \endlink + * has been introduced which gives detailed instructions on how to + * port your code to newer versions of FLAC. + * + * \section embedded_developers Embedded Developers + * + * libFLAC has grown larger over time as more functionality has been + * included, but much of it may be unnecessary for a particular embedded + * implementation. Unused parts may be pruned by some simple editing of + * src/libFLAC/Makefile.am. In general, the decoders, encoders, and + * metadata interface are all independent from each other. + * + * It is easiest to just describe the dependencies: + * + * - All modules depend on the \link flac_format Format \endlink module. + * - The decoders and encoders depend on the bitbuffer. + * - The decoder is independent of the encoder. The encoder uses the + * decoder because of the verify feature, but this can be removed if + * not needed. + * - Parts of the metadata interface require the stream decoder (but not + * the encoder). + * - Ogg support is selectable through the compile time macro + * \c FLAC__HAS_OGG. + * + * For example, if your application only requires the stream decoder, no + * encoder, and no metadata interface, you can remove the stream encoder + * and the metadata interface, which will greatly reduce the size of the + * library. + * + * Also, there are several places in the libFLAC code with comments marked + * with "OPT:" where a #define can be changed to enable code that might be + * faster on a specific platform. Experimenting with these can yield faster + * binaries. + */ + +/** \defgroup porting Porting Guide for New Versions + * + * This module describes differences in the library interfaces from + * version to version. It assists in the porting of code that uses + * the libraries to newer versions of FLAC. + * + * One simple facility for making porting easier that has been added + * in FLAC 1.1.3 is a set of \c #defines in \c export.h of each + * library's includes (e.g. \c include/FLAC/export.h). The + * \c #defines mirror the libraries' + * libtool version numbers, + * e.g. in libFLAC there are \c FLAC_API_VERSION_CURRENT, + * \c FLAC_API_VERSION_REVISION, and \c FLAC_API_VERSION_AGE. + * These can be used to support multiple versions of an API during the + * transition phase, e.g. + * + * \code + * #if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT <= 7 + * legacy code + * #else + * new code + * #endif + * \endcode + * + * The the source will work for multiple versions and the legacy code can + * easily be removed when the transition is complete. + * + * Another available symbol is FLAC_API_SUPPORTS_OGG_FLAC (defined in + * include/FLAC/export.h), which can be used to determine whether or not + * the library has been compiled with support for Ogg FLAC. This is + * simpler than trying to call an Ogg init function and catching the + * error. + */ + +/** \defgroup porting_1_1_2_to_1_1_3 Porting from FLAC 1.1.2 to 1.1.3 + * \ingroup porting + * + * \brief + * This module describes porting from FLAC 1.1.2 to FLAC 1.1.3. + * + * The main change between the APIs in 1.1.2 and 1.1.3 is that they have + * been simplified. First, libOggFLAC has been merged into libFLAC and + * libOggFLAC++ has been merged into libFLAC++. Second, both the three + * decoding layers and three encoding layers have been merged into a + * single stream decoder and stream encoder. That is, the functionality + * of FLAC__SeekableStreamDecoder and FLAC__FileDecoder has been merged + * into FLAC__StreamDecoder, and FLAC__SeekableStreamEncoder and + * FLAC__FileEncoder into FLAC__StreamEncoder. Only the + * FLAC__StreamDecoder and FLAC__StreamEncoder remain. What this means + * is there is now a single API that can be used to encode or decode + * streams to/from native FLAC or Ogg FLAC and the single API can work + * on both seekable and non-seekable streams. + * + * Instead of creating an encoder or decoder of a certain layer, now the + * client will always create a FLAC__StreamEncoder or + * FLAC__StreamDecoder. The old layers are now differentiated by the + * initialization function. For example, for the decoder, + * FLAC__stream_decoder_init() has been replaced by + * FLAC__stream_decoder_init_stream(). This init function takes + * callbacks for the I/O, and the seeking callbacks are optional. This + * allows the client to use the same object for seekable and + * non-seekable streams. For decoding a FLAC file directly, the client + * can use FLAC__stream_decoder_init_file() and pass just a filename + * and fewer callbacks; most of the other callbacks are supplied + * internally. For situations where fopen()ing by filename is not + * possible (e.g. Unicode filenames on Windows) the client can instead + * open the file itself and supply the FILE* to + * FLAC__stream_decoder_init_FILE(). The init functions now returns a + * FLAC__StreamDecoderInitStatus instead of FLAC__StreamDecoderState. + * Since the callbacks and client data are now passed to the init + * function, the FLAC__stream_decoder_set_*_callback() functions and + * FLAC__stream_decoder_set_client_data() are no longer needed. The + * rest of the calls to the decoder are the same as before. + * + * There are counterpart init functions for Ogg FLAC, e.g. + * FLAC__stream_decoder_init_ogg_stream(). All the rest of the calls + * and callbacks are the same as for native FLAC. + * + * As an example, in FLAC 1.1.2 a seekable stream decoder would have + * been set up like so: + * + * \code + * FLAC__SeekableStreamDecoder *decoder = FLAC__seekable_stream_decoder_new(); + * if(decoder == NULL) do_something; + * FLAC__seekable_stream_decoder_set_md5_checking(decoder, true); + * [... other settings ...] + * FLAC__seekable_stream_decoder_set_read_callback(decoder, my_read_callback); + * FLAC__seekable_stream_decoder_set_seek_callback(decoder, my_seek_callback); + * FLAC__seekable_stream_decoder_set_tell_callback(decoder, my_tell_callback); + * FLAC__seekable_stream_decoder_set_length_callback(decoder, my_length_callback); + * FLAC__seekable_stream_decoder_set_eof_callback(decoder, my_eof_callback); + * FLAC__seekable_stream_decoder_set_write_callback(decoder, my_write_callback); + * FLAC__seekable_stream_decoder_set_metadata_callback(decoder, my_metadata_callback); + * FLAC__seekable_stream_decoder_set_error_callback(decoder, my_error_callback); + * FLAC__seekable_stream_decoder_set_client_data(decoder, my_client_data); + * if(FLAC__seekable_stream_decoder_init(decoder) != FLAC__SEEKABLE_STREAM_DECODER_OK) do_something; + * \endcode + * + * In FLAC 1.1.3 it is like this: + * + * \code + * FLAC__StreamDecoder *decoder = FLAC__stream_decoder_new(); + * if(decoder == NULL) do_something; + * FLAC__stream_decoder_set_md5_checking(decoder, true); + * [... other settings ...] + * if(FLAC__stream_decoder_init_stream( + * decoder, + * my_read_callback, + * my_seek_callback, // or NULL + * my_tell_callback, // or NULL + * my_length_callback, // or NULL + * my_eof_callback, // or NULL + * my_write_callback, + * my_metadata_callback, // or NULL + * my_error_callback, + * my_client_data + * ) != FLAC__STREAM_DECODER_INIT_STATUS_OK) do_something; + * \endcode + * + * or you could do; + * + * \code + * [...] + * FILE *file = fopen("somefile.flac","rb"); + * if(file == NULL) do_somthing; + * if(FLAC__stream_decoder_init_FILE( + * decoder, + * file, + * my_write_callback, + * my_metadata_callback, // or NULL + * my_error_callback, + * my_client_data + * ) != FLAC__STREAM_DECODER_INIT_STATUS_OK) do_something; + * \endcode + * + * or just: + * + * \code + * [...] + * if(FLAC__stream_decoder_init_file( + * decoder, + * "somefile.flac", + * my_write_callback, + * my_metadata_callback, // or NULL + * my_error_callback, + * my_client_data + * ) != FLAC__STREAM_DECODER_INIT_STATUS_OK) do_something; + * \endcode + * + * Another small change to the decoder is in how it handles unparseable + * streams. Before, when the decoder found an unparseable stream + * (reserved for when the decoder encounters a stream from a future + * encoder that it can't parse), it changed the state to + * \c FLAC__STREAM_DECODER_UNPARSEABLE_STREAM. Now the decoder instead + * drops sync and calls the error callback with a new error code + * \c FLAC__STREAM_DECODER_ERROR_STATUS_UNPARSEABLE_STREAM. This is + * more robust. If your error callback does not discriminate on the the + * error state, your code does not need to be changed. + * + * The encoder now has a new setting: + * FLAC__stream_encoder_set_apodization(). This is for setting the + * method used to window the data before LPC analysis. You only need to + * add a call to this function if the default is not suitable. There + * are also two new convenience functions that may be useful: + * FLAC__metadata_object_cuesheet_calculate_cddb_id() and + * FLAC__metadata_get_cuesheet(). + * + * The \a bytes parameter to FLAC__StreamDecoderReadCallback, + * FLAC__StreamEncoderReadCallback, and FLAC__StreamEncoderWriteCallback + * is now \c size_t instead of \c unsigned. + */ + +/** \defgroup porting_1_1_3_to_1_1_4 Porting from FLAC 1.1.3 to 1.1.4 + * \ingroup porting + * + * \brief + * This module describes porting from FLAC 1.1.3 to FLAC 1.1.4. + * + * There were no changes to any of the interfaces from 1.1.3 to 1.1.4. + * There was a slight change in the implementation of + * FLAC__stream_encoder_set_metadata(); the function now makes a copy + * of the \a metadata array of pointers so the client no longer needs + * to maintain it after the call. The objects themselves that are + * pointed to by the array are still not copied though and must be + * maintained until the call to FLAC__stream_encoder_finish(). + */ + +/** \defgroup porting_1_1_4_to_1_2_0 Porting from FLAC 1.1.4 to 1.2.0 + * \ingroup porting + * + * \brief + * This module describes porting from FLAC 1.1.4 to FLAC 1.2.0. + * + * There were only very minor changes to the interfaces from 1.1.4 to 1.2.0. + * In libFLAC, \c FLAC__format_sample_rate_is_subset() was added. + * In libFLAC++, \c FLAC::Decoder::Stream::get_decode_position() was added. + * + * Finally, value of the constant \c FLAC__FRAME_HEADER_RESERVED_LEN + * has changed to reflect the conversion of one of the reserved bits + * into active use. It used to be \c 2 and now is \c 1. However the + * FLAC frame header length has not changed, so to skip the proper + * number of bits, use \c FLAC__FRAME_HEADER_RESERVED_LEN + + * \c FLAC__FRAME_HEADER_BLOCKING_STRATEGY_LEN + */ + +/** \defgroup flac FLAC C API + * + * The FLAC C API is the interface to libFLAC, a set of structures + * describing the components of FLAC streams, and functions for + * encoding and decoding streams, as well as manipulating FLAC + * metadata in files. + * + * You should start with the format components as all other modules + * are dependent on it. + */ + +#endif diff --git a/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/assert.h b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/assert.h new file mode 100644 index 0000000..3fc03f3 --- /dev/null +++ b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/assert.h @@ -0,0 +1,45 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__ASSERT_H +#define FLAC__ASSERT_H + +/* we need this since some compilers (like MSVC) leave assert()s on release code (and we don't want to use their ASSERT) */ +#ifdef DEBUG +#include +#define FLAC__ASSERT(x) assert(x) +#define FLAC__ASSERT_DECLARATION(x) x +#else +#define FLAC__ASSERT(x) +#define FLAC__ASSERT_DECLARATION(x) +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/callback.h b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/callback.h new file mode 100644 index 0000000..c954121 --- /dev/null +++ b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/callback.h @@ -0,0 +1,184 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__CALLBACK_H +#define FLAC__CALLBACK_H + +#include "ordinals.h" +#include /* for size_t */ + +/** \file include/FLAC/callback.h + * + * \brief + * This module defines the structures for describing I/O callbacks + * to the other FLAC interfaces. + * + * See the detailed documentation for callbacks in the + * \link flac_callbacks callbacks \endlink module. + */ + +/** \defgroup flac_callbacks FLAC/callback.h: I/O callback structures + * \ingroup flac + * + * \brief + * This module defines the structures for describing I/O callbacks + * to the other FLAC interfaces. + * + * The purpose of the I/O callback functions is to create a common way + * for the metadata interfaces to handle I/O. + * + * Originally the metadata interfaces required filenames as the way of + * specifying FLAC files to operate on. This is problematic in some + * environments so there is an additional option to specify a set of + * callbacks for doing I/O on the FLAC file, instead of the filename. + * + * In addition to the callbacks, a FLAC__IOHandle type is defined as an + * opaque structure for a data source. + * + * The callback function prototypes are similar (but not identical) to the + * stdio functions fread, fwrite, fseek, ftell, feof, and fclose. If you use + * stdio streams to implement the callbacks, you can pass fread, fwrite, and + * fclose anywhere a FLAC__IOCallback_Read, FLAC__IOCallback_Write, or + * FLAC__IOCallback_Close is required, and a FILE* anywhere a FLAC__IOHandle + * is required. \warning You generally CANNOT directly use fseek or ftell + * for FLAC__IOCallback_Seek or FLAC__IOCallback_Tell since on most systems + * these use 32-bit offsets and FLAC requires 64-bit offsets to deal with + * large files. You will have to find an equivalent function (e.g. ftello), + * or write a wrapper. The same is true for feof() since this is usually + * implemented as a macro, not as a function whose address can be taken. + * + * \{ + */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** This is the opaque handle type used by the callbacks. Typically + * this is a \c FILE* or address of a file descriptor. + */ +typedef void* FLAC__IOHandle; + +/** Signature for the read callback. + * The signature and semantics match POSIX fread() implementations + * and can generally be used interchangeably. + * + * \param ptr The address of the read buffer. + * \param size The size of the records to be read. + * \param nmemb The number of records to be read. + * \param handle The handle to the data source. + * \retval size_t + * The number of records read. + */ +typedef size_t (*FLAC__IOCallback_Read) (void *ptr, size_t size, size_t nmemb, FLAC__IOHandle handle); + +/** Signature for the write callback. + * The signature and semantics match POSIX fwrite() implementations + * and can generally be used interchangeably. + * + * \param ptr The address of the write buffer. + * \param size The size of the records to be written. + * \param nmemb The number of records to be written. + * \param handle The handle to the data source. + * \retval size_t + * The number of records written. + */ +typedef size_t (*FLAC__IOCallback_Write) (const void *ptr, size_t size, size_t nmemb, FLAC__IOHandle handle); + +/** Signature for the seek callback. + * The signature and semantics mostly match POSIX fseek() WITH ONE IMPORTANT + * EXCEPTION: the offset is a 64-bit type whereas fseek() is generally 'long' + * and 32-bits wide. + * + * \param handle The handle to the data source. + * \param offset The new position, relative to \a whence + * \param whence \c SEEK_SET, \c SEEK_CUR, or \c SEEK_END + * \retval int + * \c 0 on success, \c -1 on error. + */ +typedef int (*FLAC__IOCallback_Seek) (FLAC__IOHandle handle, FLAC__int64 offset, int whence); + +/** Signature for the tell callback. + * The signature and semantics mostly match POSIX ftell() WITH ONE IMPORTANT + * EXCEPTION: the offset is a 64-bit type whereas ftell() is generally 'long' + * and 32-bits wide. + * + * \param handle The handle to the data source. + * \retval FLAC__int64 + * The current position on success, \c -1 on error. + */ +typedef FLAC__int64 (*FLAC__IOCallback_Tell) (FLAC__IOHandle handle); + +/** Signature for the EOF callback. + * The signature and semantics mostly match POSIX feof() but WATCHOUT: + * on many systems, feof() is a macro, so in this case a wrapper function + * must be provided instead. + * + * \param handle The handle to the data source. + * \retval int + * \c 0 if not at end of file, nonzero if at end of file. + */ +typedef int (*FLAC__IOCallback_Eof) (FLAC__IOHandle handle); + +/** Signature for the close callback. + * The signature and semantics match POSIX fclose() implementations + * and can generally be used interchangeably. + * + * \param handle The handle to the data source. + * \retval int + * \c 0 on success, \c EOF on error. + */ +typedef int (*FLAC__IOCallback_Close) (FLAC__IOHandle handle); + +/** A structure for holding a set of callbacks. + * Each FLAC interface that requires a FLAC__IOCallbacks structure will + * describe which of the callbacks are required. The ones that are not + * required may be set to NULL. + * + * If the seek requirement for an interface is optional, you can signify that + * a data sorce is not seekable by setting the \a seek field to \c NULL. + */ +typedef struct { + FLAC__IOCallback_Read read; + FLAC__IOCallback_Write write; + FLAC__IOCallback_Seek seek; + FLAC__IOCallback_Tell tell; + FLAC__IOCallback_Eof eof; + FLAC__IOCallback_Close close; +} FLAC__IOCallbacks; + +/* \} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/export.h b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/export.h new file mode 100644 index 0000000..a525f29 --- /dev/null +++ b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/export.h @@ -0,0 +1,91 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__EXPORT_H +#define FLAC__EXPORT_H + +/** \file include/FLAC/export.h + * + * \brief + * This module contains #defines and symbols for exporting function + * calls, and providing version information and compiled-in features. + * + * See the \link flac_export export \endlink module. + */ + +/** \defgroup flac_export FLAC/export.h: export symbols + * \ingroup flac + * + * \brief + * This module contains #defines and symbols for exporting function + * calls, and providing version information and compiled-in features. + * + * If you are compiling with MSVC and will link to the static library + * (libFLAC.lib) you should define FLAC__NO_DLL in your project to + * make sure the symbols are exported properly. + * + * \{ + */ + +#if defined(FLAC__NO_DLL) || !defined(_MSC_VER) +#define FLAC_API + +#else + +#ifdef FLAC_API_EXPORTS +#define FLAC_API _declspec(dllexport) +#else +#define FLAC_API _declspec(dllimport) + +#endif +#endif + +/** These #defines will mirror the libtool-based library version number, see + * http://www.gnu.org/software/libtool/manual.html#Libtool-versioning + */ +#define FLAC_API_VERSION_CURRENT 10 +#define FLAC_API_VERSION_REVISION 0 /**< see above */ +#define FLAC_API_VERSION_AGE 2 /**< see above */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** \c 1 if the library has been compiled with support for Ogg FLAC, else \c 0. */ +extern FLAC_API int FLAC_API_SUPPORTS_OGG_FLAC; + +#ifdef __cplusplus +} +#endif + +/* \} */ + +#endif diff --git a/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/format.h b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/format.h new file mode 100644 index 0000000..77e2d01 --- /dev/null +++ b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/format.h @@ -0,0 +1,1010 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__FORMAT_H +#define FLAC__FORMAT_H + +#include "export.h" +#include "ordinals.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** \file include/FLAC/format.h + * + * \brief + * This module contains structure definitions for the representation + * of FLAC format components in memory. These are the basic + * structures used by the rest of the interfaces. + * + * See the detailed documentation in the + * \link flac_format format \endlink module. + */ + +/** \defgroup flac_format FLAC/format.h: format components + * \ingroup flac + * + * \brief + * This module contains structure definitions for the representation + * of FLAC format components in memory. These are the basic + * structures used by the rest of the interfaces. + * + * First, you should be familiar with the + * FLAC format. Many of the values here + * follow directly from the specification. As a user of libFLAC, the + * interesting parts really are the structures that describe the frame + * header and metadata blocks. + * + * The format structures here are very primitive, designed to store + * information in an efficient way. Reading information from the + * structures is easy but creating or modifying them directly is + * more complex. For the most part, as a user of a library, editing + * is not necessary; however, for metadata blocks it is, so there are + * convenience functions provided in the \link flac_metadata metadata + * module \endlink to simplify the manipulation of metadata blocks. + * + * \note + * It's not the best convention, but symbols ending in _LEN are in bits + * and _LENGTH are in bytes. _LENGTH symbols are \#defines instead of + * global variables because they are usually used when declaring byte + * arrays and some compilers require compile-time knowledge of array + * sizes when declared on the stack. + * + * \{ + */ + + +/* + Most of the values described in this file are defined by the FLAC + format specification. There is nothing to tune here. +*/ + +/** The largest legal metadata type code. */ +#define FLAC__MAX_METADATA_TYPE_CODE (126u) + +/** The minimum block size, in samples, permitted by the format. */ +#define FLAC__MIN_BLOCK_SIZE (16u) + +/** The maximum block size, in samples, permitted by the format. */ +#define FLAC__MAX_BLOCK_SIZE (65535u) + +/** The maximum block size, in samples, permitted by the FLAC subset for + * sample rates up to 48kHz. */ +#define FLAC__SUBSET_MAX_BLOCK_SIZE_48000HZ (4608u) + +/** The maximum number of channels permitted by the format. */ +#define FLAC__MAX_CHANNELS (8u) + +/** The minimum sample resolution permitted by the format. */ +#define FLAC__MIN_BITS_PER_SAMPLE (4u) + +/** The maximum sample resolution permitted by the format. */ +#define FLAC__MAX_BITS_PER_SAMPLE (32u) + +/** The maximum sample resolution permitted by libFLAC. + * + * \warning + * FLAC__MAX_BITS_PER_SAMPLE is the limit of the FLAC format. However, + * the reference encoder/decoder is currently limited to 24 bits because + * of prevalent 32-bit math, so make sure and use this value when + * appropriate. + */ +#define FLAC__REFERENCE_CODEC_MAX_BITS_PER_SAMPLE (24u) + +/** The maximum sample rate permitted by the format. The value is + * ((2 ^ 16) - 1) * 10; see FLAC format + * as to why. + */ +#define FLAC__MAX_SAMPLE_RATE (655350u) + +/** The maximum LPC order permitted by the format. */ +#define FLAC__MAX_LPC_ORDER (32u) + +/** The maximum LPC order permitted by the FLAC subset for sample rates + * up to 48kHz. */ +#define FLAC__SUBSET_MAX_LPC_ORDER_48000HZ (12u) + +/** The minimum quantized linear predictor coefficient precision + * permitted by the format. + */ +#define FLAC__MIN_QLP_COEFF_PRECISION (5u) + +/** The maximum quantized linear predictor coefficient precision + * permitted by the format. + */ +#define FLAC__MAX_QLP_COEFF_PRECISION (15u) + +/** The maximum order of the fixed predictors permitted by the format. */ +#define FLAC__MAX_FIXED_ORDER (4u) + +/** The maximum Rice partition order permitted by the format. */ +#define FLAC__MAX_RICE_PARTITION_ORDER (15u) + +/** The maximum Rice partition order permitted by the FLAC Subset. */ +#define FLAC__SUBSET_MAX_RICE_PARTITION_ORDER (8u) + +/** The version string of the release, stamped onto the libraries and binaries. + * + * \note + * This does not correspond to the shared library version number, which + * is used to determine binary compatibility. + */ +extern FLAC_API const char *FLAC__VERSION_STRING; + +/** The vendor string inserted by the encoder into the VORBIS_COMMENT block. + * This is a NUL-terminated ASCII string; when inserted into the + * VORBIS_COMMENT the trailing null is stripped. + */ +extern FLAC_API const char *FLAC__VENDOR_STRING; + +/** The byte string representation of the beginning of a FLAC stream. */ +extern FLAC_API const FLAC__byte FLAC__STREAM_SYNC_STRING[4]; /* = "fLaC" */ + +/** The 32-bit integer big-endian representation of the beginning of + * a FLAC stream. + */ +extern FLAC_API const unsigned FLAC__STREAM_SYNC; /* = 0x664C6143 */ + +/** The length of the FLAC signature in bits. */ +extern FLAC_API const unsigned FLAC__STREAM_SYNC_LEN; /* = 32 bits */ + +/** The length of the FLAC signature in bytes. */ +#define FLAC__STREAM_SYNC_LENGTH (4u) + + +/***************************************************************************** + * + * Subframe structures + * + *****************************************************************************/ + +/*****************************************************************************/ + +/** An enumeration of the available entropy coding methods. */ +typedef enum { + FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE = 0, + /**< Residual is coded by partitioning into contexts, each with it's own + * 4-bit Rice parameter. */ + + FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE2 = 1 + /**< Residual is coded by partitioning into contexts, each with it's own + * 5-bit Rice parameter. */ +} FLAC__EntropyCodingMethodType; + +/** Maps a FLAC__EntropyCodingMethodType to a C string. + * + * Using a FLAC__EntropyCodingMethodType as the index to this array will + * give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__EntropyCodingMethodTypeString[]; + + +/** Contents of a Rice partitioned residual + */ +typedef struct { + + unsigned *parameters; + /**< The Rice parameters for each context. */ + + unsigned *raw_bits; + /**< Widths for escape-coded partitions. Will be non-zero for escaped + * partitions and zero for unescaped partitions. + */ + + unsigned capacity_by_order; + /**< The capacity of the \a parameters and \a raw_bits arrays + * specified as an order, i.e. the number of array elements + * allocated is 2 ^ \a capacity_by_order. + */ +} FLAC__EntropyCodingMethod_PartitionedRiceContents; + +/** Header for a Rice partitioned residual. (c.f. format specification) + */ +typedef struct { + + unsigned order; + /**< The partition order, i.e. # of contexts = 2 ^ \a order. */ + + const FLAC__EntropyCodingMethod_PartitionedRiceContents *contents; + /**< The context's Rice parameters and/or raw bits. */ + +} FLAC__EntropyCodingMethod_PartitionedRice; + +extern FLAC_API const unsigned FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_ORDER_LEN; /**< == 4 (bits) */ +extern FLAC_API const unsigned FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_PARAMETER_LEN; /**< == 4 (bits) */ +extern FLAC_API const unsigned FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE2_PARAMETER_LEN; /**< == 5 (bits) */ +extern FLAC_API const unsigned FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_RAW_LEN; /**< == 5 (bits) */ + +extern FLAC_API const unsigned FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_ESCAPE_PARAMETER; +/**< == (1<format specification) + */ +typedef struct { + FLAC__EntropyCodingMethodType type; + union { + FLAC__EntropyCodingMethod_PartitionedRice partitioned_rice; + } data; +} FLAC__EntropyCodingMethod; + +extern FLAC_API const unsigned FLAC__ENTROPY_CODING_METHOD_TYPE_LEN; /**< == 2 (bits) */ + +/*****************************************************************************/ + +/** An enumeration of the available subframe types. */ +typedef enum { + FLAC__SUBFRAME_TYPE_CONSTANT = 0, /**< constant signal */ + FLAC__SUBFRAME_TYPE_VERBATIM = 1, /**< uncompressed signal */ + FLAC__SUBFRAME_TYPE_FIXED = 2, /**< fixed polynomial prediction */ + FLAC__SUBFRAME_TYPE_LPC = 3 /**< linear prediction */ +} FLAC__SubframeType; + +/** Maps a FLAC__SubframeType to a C string. + * + * Using a FLAC__SubframeType as the index to this array will + * give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__SubframeTypeString[]; + + +/** CONSTANT subframe. (c.f. format specification) + */ +typedef struct { + FLAC__int32 value; /**< The constant signal value. */ +} FLAC__Subframe_Constant; + + +/** VERBATIM subframe. (c.f. format specification) + */ +typedef struct { + const FLAC__int32 *data; /**< A pointer to verbatim signal. */ +} FLAC__Subframe_Verbatim; + + +/** FIXED subframe. (c.f. format specification) + */ +typedef struct { + FLAC__EntropyCodingMethod entropy_coding_method; + /**< The residual coding method. */ + + unsigned order; + /**< The polynomial order. */ + + FLAC__int32 warmup[FLAC__MAX_FIXED_ORDER]; + /**< Warmup samples to prime the predictor, length == order. */ + + const FLAC__int32 *residual; + /**< The residual signal, length == (blocksize minus order) samples. */ +} FLAC__Subframe_Fixed; + + +/** LPC subframe. (c.f. format specification) + */ +typedef struct { + FLAC__EntropyCodingMethod entropy_coding_method; + /**< The residual coding method. */ + + unsigned order; + /**< The FIR order. */ + + unsigned qlp_coeff_precision; + /**< Quantized FIR filter coefficient precision in bits. */ + + int quantization_level; + /**< The qlp coeff shift needed. */ + + FLAC__int32 qlp_coeff[FLAC__MAX_LPC_ORDER]; + /**< FIR filter coefficients. */ + + FLAC__int32 warmup[FLAC__MAX_LPC_ORDER]; + /**< Warmup samples to prime the predictor, length == order. */ + + const FLAC__int32 *residual; + /**< The residual signal, length == (blocksize minus order) samples. */ +} FLAC__Subframe_LPC; + +extern FLAC_API const unsigned FLAC__SUBFRAME_LPC_QLP_COEFF_PRECISION_LEN; /**< == 4 (bits) */ +extern FLAC_API const unsigned FLAC__SUBFRAME_LPC_QLP_SHIFT_LEN; /**< == 5 (bits) */ + + +/** FLAC subframe structure. (c.f. format specification) + */ +typedef struct { + FLAC__SubframeType type; + union { + FLAC__Subframe_Constant constant; + FLAC__Subframe_Fixed fixed; + FLAC__Subframe_LPC lpc; + FLAC__Subframe_Verbatim verbatim; + } data; + unsigned wasted_bits; +} FLAC__Subframe; + +/** == 1 (bit) + * + * This used to be a zero-padding bit (hence the name + * FLAC__SUBFRAME_ZERO_PAD_LEN) but is now a reserved bit. It still has a + * mandatory value of \c 0 but in the future may take on the value \c 0 or \c 1 + * to mean something else. + */ +extern FLAC_API const unsigned FLAC__SUBFRAME_ZERO_PAD_LEN; +extern FLAC_API const unsigned FLAC__SUBFRAME_TYPE_LEN; /**< == 6 (bits) */ +extern FLAC_API const unsigned FLAC__SUBFRAME_WASTED_BITS_FLAG_LEN; /**< == 1 (bit) */ + +extern FLAC_API const unsigned FLAC__SUBFRAME_TYPE_CONSTANT_BYTE_ALIGNED_MASK; /**< = 0x00 */ +extern FLAC_API const unsigned FLAC__SUBFRAME_TYPE_VERBATIM_BYTE_ALIGNED_MASK; /**< = 0x02 */ +extern FLAC_API const unsigned FLAC__SUBFRAME_TYPE_FIXED_BYTE_ALIGNED_MASK; /**< = 0x10 */ +extern FLAC_API const unsigned FLAC__SUBFRAME_TYPE_LPC_BYTE_ALIGNED_MASK; /**< = 0x40 */ + +/*****************************************************************************/ + + +/***************************************************************************** + * + * Frame structures + * + *****************************************************************************/ + +/** An enumeration of the available channel assignments. */ +typedef enum { + FLAC__CHANNEL_ASSIGNMENT_INDEPENDENT = 0, /**< independent channels */ + FLAC__CHANNEL_ASSIGNMENT_LEFT_SIDE = 1, /**< left+side stereo */ + FLAC__CHANNEL_ASSIGNMENT_RIGHT_SIDE = 2, /**< right+side stereo */ + FLAC__CHANNEL_ASSIGNMENT_MID_SIDE = 3 /**< mid+side stereo */ +} FLAC__ChannelAssignment; + +/** Maps a FLAC__ChannelAssignment to a C string. + * + * Using a FLAC__ChannelAssignment as the index to this array will + * give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__ChannelAssignmentString[]; + +/** An enumeration of the possible frame numbering methods. */ +typedef enum { + FLAC__FRAME_NUMBER_TYPE_FRAME_NUMBER, /**< number contains the frame number */ + FLAC__FRAME_NUMBER_TYPE_SAMPLE_NUMBER /**< number contains the sample number of first sample in frame */ +} FLAC__FrameNumberType; + +/** Maps a FLAC__FrameNumberType to a C string. + * + * Using a FLAC__FrameNumberType as the index to this array will + * give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__FrameNumberTypeString[]; + + +/** FLAC frame header structure. (c.f. format specification) + */ +typedef struct { + unsigned blocksize; + /**< The number of samples per subframe. */ + + unsigned sample_rate; + /**< The sample rate in Hz. */ + + unsigned channels; + /**< The number of channels (== number of subframes). */ + + FLAC__ChannelAssignment channel_assignment; + /**< The channel assignment for the frame. */ + + unsigned bits_per_sample; + /**< The sample resolution. */ + + FLAC__FrameNumberType number_type; + /**< The numbering scheme used for the frame. As a convenience, the + * decoder will always convert a frame number to a sample number because + * the rules are complex. */ + + union { + FLAC__uint32 frame_number; + FLAC__uint64 sample_number; + } number; + /**< The frame number or sample number of first sample in frame; + * use the \a number_type value to determine which to use. */ + + FLAC__uint8 crc; + /**< CRC-8 (polynomial = x^8 + x^2 + x^1 + x^0, initialized with 0) + * of the raw frame header bytes, meaning everything before the CRC byte + * including the sync code. + */ +} FLAC__FrameHeader; + +extern FLAC_API const unsigned FLAC__FRAME_HEADER_SYNC; /**< == 0x3ffe; the frame header sync code */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_SYNC_LEN; /**< == 14 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_RESERVED_LEN; /**< == 1 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_BLOCKING_STRATEGY_LEN; /**< == 1 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_BLOCK_SIZE_LEN; /**< == 4 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_SAMPLE_RATE_LEN; /**< == 4 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_CHANNEL_ASSIGNMENT_LEN; /**< == 4 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_BITS_PER_SAMPLE_LEN; /**< == 3 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_ZERO_PAD_LEN; /**< == 1 (bit) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_CRC_LEN; /**< == 8 (bits) */ + + +/** FLAC frame footer structure. (c.f. format specification) + */ +typedef struct { + FLAC__uint16 crc; + /**< CRC-16 (polynomial = x^16 + x^15 + x^2 + x^0, initialized with + * 0) of the bytes before the crc, back to and including the frame header + * sync code. + */ +} FLAC__FrameFooter; + +extern FLAC_API const unsigned FLAC__FRAME_FOOTER_CRC_LEN; /**< == 16 (bits) */ + + +/** FLAC frame structure. (c.f. format specification) + */ +typedef struct { + FLAC__FrameHeader header; + FLAC__Subframe subframes[FLAC__MAX_CHANNELS]; + FLAC__FrameFooter footer; +} FLAC__Frame; + +/*****************************************************************************/ + + +/***************************************************************************** + * + * Meta-data structures + * + *****************************************************************************/ + +/** An enumeration of the available metadata block types. */ +typedef enum { + + FLAC__METADATA_TYPE_STREAMINFO = 0, + /**< STREAMINFO block */ + + FLAC__METADATA_TYPE_PADDING = 1, + /**< PADDING block */ + + FLAC__METADATA_TYPE_APPLICATION = 2, + /**< APPLICATION block */ + + FLAC__METADATA_TYPE_SEEKTABLE = 3, + /**< SEEKTABLE block */ + + FLAC__METADATA_TYPE_VORBIS_COMMENT = 4, + /**< VORBISCOMMENT block (a.k.a. FLAC tags) */ + + FLAC__METADATA_TYPE_CUESHEET = 5, + /**< CUESHEET block */ + + FLAC__METADATA_TYPE_PICTURE = 6, + /**< PICTURE block */ + + FLAC__METADATA_TYPE_UNDEFINED = 7 + /**< marker to denote beginning of undefined type range; this number will increase as new metadata types are added */ + +} FLAC__MetadataType; + +/** Maps a FLAC__MetadataType to a C string. + * + * Using a FLAC__MetadataType as the index to this array will + * give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__MetadataTypeString[]; + + +/** FLAC STREAMINFO structure. (c.f. format specification) + */ +typedef struct { + unsigned min_blocksize, max_blocksize; + unsigned min_framesize, max_framesize; + unsigned sample_rate; + unsigned channels; + unsigned bits_per_sample; + FLAC__uint64 total_samples; + FLAC__byte md5sum[16]; +} FLAC__StreamMetadata_StreamInfo; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_MIN_BLOCK_SIZE_LEN; /**< == 16 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_MAX_BLOCK_SIZE_LEN; /**< == 16 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_MIN_FRAME_SIZE_LEN; /**< == 24 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_MAX_FRAME_SIZE_LEN; /**< == 24 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_SAMPLE_RATE_LEN; /**< == 20 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_CHANNELS_LEN; /**< == 3 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_BITS_PER_SAMPLE_LEN; /**< == 5 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_TOTAL_SAMPLES_LEN; /**< == 36 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_MD5SUM_LEN; /**< == 128 (bits) */ + +/** The total stream length of the STREAMINFO block in bytes. */ +#define FLAC__STREAM_METADATA_STREAMINFO_LENGTH (34u) + +/** FLAC PADDING structure. (c.f. format specification) + */ +typedef struct { + int dummy; + /**< Conceptually this is an empty struct since we don't store the + * padding bytes. Empty structs are not allowed by some C compilers, + * hence the dummy. + */ +} FLAC__StreamMetadata_Padding; + + +/** FLAC APPLICATION structure. (c.f. format specification) + */ +typedef struct { + FLAC__byte id[4]; + FLAC__byte *data; +} FLAC__StreamMetadata_Application; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_APPLICATION_ID_LEN; /**< == 32 (bits) */ + +/** SeekPoint structure used in SEEKTABLE blocks. (c.f. format specification) + */ +typedef struct { + FLAC__uint64 sample_number; + /**< The sample number of the target frame. */ + + FLAC__uint64 stream_offset; + /**< The offset, in bytes, of the target frame with respect to + * beginning of the first frame. */ + + unsigned frame_samples; + /**< The number of samples in the target frame. */ +} FLAC__StreamMetadata_SeekPoint; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_SEEKPOINT_SAMPLE_NUMBER_LEN; /**< == 64 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_SEEKPOINT_STREAM_OFFSET_LEN; /**< == 64 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_SEEKPOINT_FRAME_SAMPLES_LEN; /**< == 16 (bits) */ + +/** The total stream length of a seek point in bytes. */ +#define FLAC__STREAM_METADATA_SEEKPOINT_LENGTH (18u) + +/** The value used in the \a sample_number field of + * FLAC__StreamMetadataSeekPoint used to indicate a placeholder + * point (== 0xffffffffffffffff). + */ +extern FLAC_API const FLAC__uint64 FLAC__STREAM_METADATA_SEEKPOINT_PLACEHOLDER; + + +/** FLAC SEEKTABLE structure. (c.f. format specification) + * + * \note From the format specification: + * - The seek points must be sorted by ascending sample number. + * - Each seek point's sample number must be the first sample of the + * target frame. + * - Each seek point's sample number must be unique within the table. + * - Existence of a SEEKTABLE block implies a correct setting of + * total_samples in the stream_info block. + * - Behavior is undefined when more than one SEEKTABLE block is + * present in a stream. + */ +typedef struct { + unsigned num_points; + FLAC__StreamMetadata_SeekPoint *points; +} FLAC__StreamMetadata_SeekTable; + + +/** Vorbis comment entry structure used in VORBIS_COMMENT blocks. (c.f. format specification) + * + * For convenience, the APIs maintain a trailing NUL character at the end of + * \a entry which is not counted toward \a length, i.e. + * \code strlen(entry) == length \endcode + */ +typedef struct { + FLAC__uint32 length; + FLAC__byte *entry; +} FLAC__StreamMetadata_VorbisComment_Entry; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_VORBIS_COMMENT_ENTRY_LENGTH_LEN; /**< == 32 (bits) */ + + +/** FLAC VORBIS_COMMENT structure. (c.f. format specification) + */ +typedef struct { + FLAC__StreamMetadata_VorbisComment_Entry vendor_string; + FLAC__uint32 num_comments; + FLAC__StreamMetadata_VorbisComment_Entry *comments; +} FLAC__StreamMetadata_VorbisComment; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_VORBIS_COMMENT_NUM_COMMENTS_LEN; /**< == 32 (bits) */ + + +/** FLAC CUESHEET track index structure. (See the + * format specification for + * the full description of each field.) + */ +typedef struct { + FLAC__uint64 offset; + /**< Offset in samples, relative to the track offset, of the index + * point. + */ + + FLAC__byte number; + /**< The index point number. */ +} FLAC__StreamMetadata_CueSheet_Index; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_INDEX_OFFSET_LEN; /**< == 64 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_INDEX_NUMBER_LEN; /**< == 8 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_INDEX_RESERVED_LEN; /**< == 3*8 (bits) */ + + +/** FLAC CUESHEET track structure. (See the + * format specification for + * the full description of each field.) + */ +typedef struct { + FLAC__uint64 offset; + /**< Track offset in samples, relative to the beginning of the FLAC audio stream. */ + + FLAC__byte number; + /**< The track number. */ + + char isrc[13]; + /**< Track ISRC. This is a 12-digit alphanumeric code plus a trailing \c NUL byte */ + + unsigned type:1; + /**< The track type: 0 for audio, 1 for non-audio. */ + + unsigned pre_emphasis:1; + /**< The pre-emphasis flag: 0 for no pre-emphasis, 1 for pre-emphasis. */ + + FLAC__byte num_indices; + /**< The number of track index points. */ + + FLAC__StreamMetadata_CueSheet_Index *indices; + /**< NULL if num_indices == 0, else pointer to array of index points. */ + +} FLAC__StreamMetadata_CueSheet_Track; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_OFFSET_LEN; /**< == 64 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_NUMBER_LEN; /**< == 8 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_ISRC_LEN; /**< == 12*8 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_TYPE_LEN; /**< == 1 (bit) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_PRE_EMPHASIS_LEN; /**< == 1 (bit) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_RESERVED_LEN; /**< == 6+13*8 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_NUM_INDICES_LEN; /**< == 8 (bits) */ + + +/** FLAC CUESHEET structure. (See the + * format specification + * for the full description of each field.) + */ +typedef struct { + char media_catalog_number[129]; + /**< Media catalog number, in ASCII printable characters 0x20-0x7e. In + * general, the media catalog number may be 0 to 128 bytes long; any + * unused characters should be right-padded with NUL characters. + */ + + FLAC__uint64 lead_in; + /**< The number of lead-in samples. */ + + FLAC__bool is_cd; + /**< \c true if CUESHEET corresponds to a Compact Disc, else \c false. */ + + unsigned num_tracks; + /**< The number of tracks. */ + + FLAC__StreamMetadata_CueSheet_Track *tracks; + /**< NULL if num_tracks == 0, else pointer to array of tracks. */ + +} FLAC__StreamMetadata_CueSheet; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_MEDIA_CATALOG_NUMBER_LEN; /**< == 128*8 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_LEAD_IN_LEN; /**< == 64 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_IS_CD_LEN; /**< == 1 (bit) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_RESERVED_LEN; /**< == 7+258*8 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_NUM_TRACKS_LEN; /**< == 8 (bits) */ + + +/** An enumeration of the PICTURE types (see FLAC__StreamMetadataPicture and id3 v2.4 APIC tag). */ +typedef enum { + FLAC__STREAM_METADATA_PICTURE_TYPE_OTHER = 0, /**< Other */ + FLAC__STREAM_METADATA_PICTURE_TYPE_FILE_ICON_STANDARD = 1, /**< 32x32 pixels 'file icon' (PNG only) */ + FLAC__STREAM_METADATA_PICTURE_TYPE_FILE_ICON = 2, /**< Other file icon */ + FLAC__STREAM_METADATA_PICTURE_TYPE_FRONT_COVER = 3, /**< Cover (front) */ + FLAC__STREAM_METADATA_PICTURE_TYPE_BACK_COVER = 4, /**< Cover (back) */ + FLAC__STREAM_METADATA_PICTURE_TYPE_LEAFLET_PAGE = 5, /**< Leaflet page */ + FLAC__STREAM_METADATA_PICTURE_TYPE_MEDIA = 6, /**< Media (e.g. label side of CD) */ + FLAC__STREAM_METADATA_PICTURE_TYPE_LEAD_ARTIST = 7, /**< Lead artist/lead performer/soloist */ + FLAC__STREAM_METADATA_PICTURE_TYPE_ARTIST = 8, /**< Artist/performer */ + FLAC__STREAM_METADATA_PICTURE_TYPE_CONDUCTOR = 9, /**< Conductor */ + FLAC__STREAM_METADATA_PICTURE_TYPE_BAND = 10, /**< Band/Orchestra */ + FLAC__STREAM_METADATA_PICTURE_TYPE_COMPOSER = 11, /**< Composer */ + FLAC__STREAM_METADATA_PICTURE_TYPE_LYRICIST = 12, /**< Lyricist/text writer */ + FLAC__STREAM_METADATA_PICTURE_TYPE_RECORDING_LOCATION = 13, /**< Recording Location */ + FLAC__STREAM_METADATA_PICTURE_TYPE_DURING_RECORDING = 14, /**< During recording */ + FLAC__STREAM_METADATA_PICTURE_TYPE_DURING_PERFORMANCE = 15, /**< During performance */ + FLAC__STREAM_METADATA_PICTURE_TYPE_VIDEO_SCREEN_CAPTURE = 16, /**< Movie/video screen capture */ + FLAC__STREAM_METADATA_PICTURE_TYPE_FISH = 17, /**< A bright coloured fish */ + FLAC__STREAM_METADATA_PICTURE_TYPE_ILLUSTRATION = 18, /**< Illustration */ + FLAC__STREAM_METADATA_PICTURE_TYPE_BAND_LOGOTYPE = 19, /**< Band/artist logotype */ + FLAC__STREAM_METADATA_PICTURE_TYPE_PUBLISHER_LOGOTYPE = 20, /**< Publisher/Studio logotype */ + FLAC__STREAM_METADATA_PICTURE_TYPE_UNDEFINED +} FLAC__StreamMetadata_Picture_Type; + +/** Maps a FLAC__StreamMetadata_Picture_Type to a C string. + * + * Using a FLAC__StreamMetadata_Picture_Type as the index to this array + * will give the string equivalent. The contents should not be + * modified. + */ +extern FLAC_API const char * const FLAC__StreamMetadata_Picture_TypeString[]; + +/** FLAC PICTURE structure. (See the + * format specification + * for the full description of each field.) + */ +typedef struct { + FLAC__StreamMetadata_Picture_Type type; + /**< The kind of picture stored. */ + + char *mime_type; + /**< Picture data's MIME type, in ASCII printable characters + * 0x20-0x7e, NUL terminated. For best compatibility with players, + * use picture data of MIME type \c image/jpeg or \c image/png. A + * MIME type of '-->' is also allowed, in which case the picture + * data should be a complete URL. In file storage, the MIME type is + * stored as a 32-bit length followed by the ASCII string with no NUL + * terminator, but is converted to a plain C string in this structure + * for convenience. + */ + + FLAC__byte *description; + /**< Picture's description in UTF-8, NUL terminated. In file storage, + * the description is stored as a 32-bit length followed by the UTF-8 + * string with no NUL terminator, but is converted to a plain C string + * in this structure for convenience. + */ + + FLAC__uint32 width; + /**< Picture's width in pixels. */ + + FLAC__uint32 height; + /**< Picture's height in pixels. */ + + FLAC__uint32 depth; + /**< Picture's color depth in bits-per-pixel. */ + + FLAC__uint32 colors; + /**< For indexed palettes (like GIF), picture's number of colors (the + * number of palette entries), or \c 0 for non-indexed (i.e. 2^depth). + */ + + FLAC__uint32 data_length; + /**< Length of binary picture data in bytes. */ + + FLAC__byte *data; + /**< Binary picture data. */ + +} FLAC__StreamMetadata_Picture; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_TYPE_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_MIME_TYPE_LENGTH_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_DESCRIPTION_LENGTH_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_WIDTH_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_HEIGHT_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_DEPTH_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_COLORS_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_DATA_LENGTH_LEN; /**< == 32 (bits) */ + + +/** Structure that is used when a metadata block of unknown type is loaded. + * The contents are opaque. The structure is used only internally to + * correctly handle unknown metadata. + */ +typedef struct { + FLAC__byte *data; +} FLAC__StreamMetadata_Unknown; + + +/** FLAC metadata block structure. (c.f. format specification) + */ +typedef struct { + FLAC__MetadataType type; + /**< The type of the metadata block; used determine which member of the + * \a data union to dereference. If type >= FLAC__METADATA_TYPE_UNDEFINED + * then \a data.unknown must be used. */ + + FLAC__bool is_last; + /**< \c true if this metadata block is the last, else \a false */ + + unsigned length; + /**< Length, in bytes, of the block data as it appears in the stream. */ + + union { + FLAC__StreamMetadata_StreamInfo stream_info; + FLAC__StreamMetadata_Padding padding; + FLAC__StreamMetadata_Application application; + FLAC__StreamMetadata_SeekTable seek_table; + FLAC__StreamMetadata_VorbisComment vorbis_comment; + FLAC__StreamMetadata_CueSheet cue_sheet; + FLAC__StreamMetadata_Picture picture; + FLAC__StreamMetadata_Unknown unknown; + } data; + /**< Polymorphic block data; use the \a type value to determine which + * to use. */ +} FLAC__StreamMetadata; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_IS_LAST_LEN; /**< == 1 (bit) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_TYPE_LEN; /**< == 7 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_LENGTH_LEN; /**< == 24 (bits) */ + +/** The total stream length of a metadata block header in bytes. */ +#define FLAC__STREAM_METADATA_HEADER_LENGTH (4u) + +/*****************************************************************************/ + + +/***************************************************************************** + * + * Utility functions + * + *****************************************************************************/ + +/** Tests that a sample rate is valid for FLAC. + * + * \param sample_rate The sample rate to test for compliance. + * \retval FLAC__bool + * \c true if the given sample rate conforms to the specification, else + * \c false. + */ +FLAC_API FLAC__bool FLAC__format_sample_rate_is_valid(unsigned sample_rate); + +/** Tests that a sample rate is valid for the FLAC subset. The subset rules + * for valid sample rates are slightly more complex since the rate has to + * be expressible completely in the frame header. + * + * \param sample_rate The sample rate to test for compliance. + * \retval FLAC__bool + * \c true if the given sample rate conforms to the specification for the + * subset, else \c false. + */ +FLAC_API FLAC__bool FLAC__format_sample_rate_is_subset(unsigned sample_rate); + +/** Check a Vorbis comment entry name to see if it conforms to the Vorbis + * comment specification. + * + * Vorbis comment names must be composed only of characters from + * [0x20-0x3C,0x3E-0x7D]. + * + * \param name A NUL-terminated string to be checked. + * \assert + * \code name != NULL \endcode + * \retval FLAC__bool + * \c false if entry name is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__format_vorbiscomment_entry_name_is_legal(const char *name); + +/** Check a Vorbis comment entry value to see if it conforms to the Vorbis + * comment specification. + * + * Vorbis comment values must be valid UTF-8 sequences. + * + * \param value A string to be checked. + * \param length A the length of \a value in bytes. May be + * \c (unsigned)(-1) to indicate that \a value is a plain + * UTF-8 NUL-terminated string. + * \assert + * \code value != NULL \endcode + * \retval FLAC__bool + * \c false if entry name is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__format_vorbiscomment_entry_value_is_legal(const FLAC__byte *value, unsigned length); + +/** Check a Vorbis comment entry to see if it conforms to the Vorbis + * comment specification. + * + * Vorbis comment entries must be of the form 'name=value', and 'name' and + * 'value' must be legal according to + * FLAC__format_vorbiscomment_entry_name_is_legal() and + * FLAC__format_vorbiscomment_entry_value_is_legal() respectively. + * + * \param entry An entry to be checked. + * \param length The length of \a entry in bytes. + * \assert + * \code value != NULL \endcode + * \retval FLAC__bool + * \c false if entry name is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__format_vorbiscomment_entry_is_legal(const FLAC__byte *entry, unsigned length); + +/** Check a seek table to see if it conforms to the FLAC specification. + * See the format specification for limits on the contents of the + * seek table. + * + * \param seek_table A pointer to a seek table to be checked. + * \assert + * \code seek_table != NULL \endcode + * \retval FLAC__bool + * \c false if seek table is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__format_seektable_is_legal(const FLAC__StreamMetadata_SeekTable *seek_table); + +/** Sort a seek table's seek points according to the format specification. + * This includes a "unique-ification" step to remove duplicates, i.e. + * seek points with identical \a sample_number values. Duplicate seek + * points are converted into placeholder points and sorted to the end of + * the table. + * + * \param seek_table A pointer to a seek table to be sorted. + * \assert + * \code seek_table != NULL \endcode + * \retval unsigned + * The number of duplicate seek points converted into placeholders. + */ +FLAC_API unsigned FLAC__format_seektable_sort(FLAC__StreamMetadata_SeekTable *seek_table); + +/** Check a cue sheet to see if it conforms to the FLAC specification. + * See the format specification for limits on the contents of the + * cue sheet. + * + * \param cue_sheet A pointer to an existing cue sheet to be checked. + * \param check_cd_da_subset If \c true, check CUESHEET against more + * stringent requirements for a CD-DA (audio) disc. + * \param violation Address of a pointer to a string. If there is a + * violation, a pointer to a string explanation of the + * violation will be returned here. \a violation may be + * \c NULL if you don't need the returned string. Do not + * free the returned string; it will always point to static + * data. + * \assert + * \code cue_sheet != NULL \endcode + * \retval FLAC__bool + * \c false if cue sheet is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__format_cuesheet_is_legal(const FLAC__StreamMetadata_CueSheet *cue_sheet, FLAC__bool check_cd_da_subset, const char **violation); + +/** Check picture data to see if it conforms to the FLAC specification. + * See the format specification for limits on the contents of the + * PICTURE block. + * + * \param picture A pointer to existing picture data to be checked. + * \param violation Address of a pointer to a string. If there is a + * violation, a pointer to a string explanation of the + * violation will be returned here. \a violation may be + * \c NULL if you don't need the returned string. Do not + * free the returned string; it will always point to static + * data. + * \assert + * \code picture != NULL \endcode + * \retval FLAC__bool + * \c false if picture data is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__format_picture_is_legal(const FLAC__StreamMetadata_Picture *picture, const char **violation); + +/* \} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/metadata.h b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/metadata.h new file mode 100644 index 0000000..fff90b0 --- /dev/null +++ b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/metadata.h @@ -0,0 +1,2181 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__METADATA_H +#define FLAC__METADATA_H + +#include /* for off_t */ +#include "export.h" +#include "callback.h" +#include "format.h" + +/* -------------------------------------------------------------------- + (For an example of how all these routines are used, see the source + code for the unit tests in src/test_libFLAC/metadata_*.c, or + metaflac in src/metaflac/) + ------------------------------------------------------------------*/ + +/** \file include/FLAC/metadata.h + * + * \brief + * This module provides functions for creating and manipulating FLAC + * metadata blocks in memory, and three progressively more powerful + * interfaces for traversing and editing metadata in FLAC files. + * + * See the detailed documentation for each interface in the + * \link flac_metadata metadata \endlink module. + */ + +/** \defgroup flac_metadata FLAC/metadata.h: metadata interfaces + * \ingroup flac + * + * \brief + * This module provides functions for creating and manipulating FLAC + * metadata blocks in memory, and three progressively more powerful + * interfaces for traversing and editing metadata in native FLAC files. + * Note that currently only the Chain interface (level 2) supports Ogg + * FLAC files, and it is read-only i.e. no writing back changed + * metadata to file. + * + * There are three metadata interfaces of increasing complexity: + * + * Level 0: + * Read-only access to the STREAMINFO, VORBIS_COMMENT, CUESHEET, and + * PICTURE blocks. + * + * Level 1: + * Read-write access to all metadata blocks. This level is write- + * efficient in most cases (more on this below), and uses less memory + * than level 2. + * + * Level 2: + * Read-write access to all metadata blocks. This level is write- + * efficient in all cases, but uses more memory since all metadata for + * the whole file is read into memory and manipulated before writing + * out again. + * + * What do we mean by efficient? Since FLAC metadata appears at the + * beginning of the file, when writing metadata back to a FLAC file + * it is possible to grow or shrink the metadata such that the entire + * file must be rewritten. However, if the size remains the same during + * changes or PADDING blocks are utilized, only the metadata needs to be + * overwritten, which is much faster. + * + * Efficient means the whole file is rewritten at most one time, and only + * when necessary. Level 1 is not efficient only in the case that you + * cause more than one metadata block to grow or shrink beyond what can + * be accomodated by padding. In this case you should probably use level + * 2, which allows you to edit all the metadata for a file in memory and + * write it out all at once. + * + * All levels know how to skip over and not disturb an ID3v2 tag at the + * front of the file. + * + * All levels access files via their filenames. In addition, level 2 + * has additional alternative read and write functions that take an I/O + * handle and callbacks, for situations where access by filename is not + * possible. + * + * In addition to the three interfaces, this module defines functions for + * creating and manipulating various metadata objects in memory. As we see + * from the Format module, FLAC metadata blocks in memory are very primitive + * structures for storing information in an efficient way. Reading + * information from the structures is easy but creating or modifying them + * directly is more complex. The metadata object routines here facilitate + * this by taking care of the consistency and memory management drudgery. + * + * Unless you will be using the level 1 or 2 interfaces to modify existing + * metadata however, you will not probably not need these. + * + * From a dependency standpoint, none of the encoders or decoders require + * the metadata module. This is so that embedded users can strip out the + * metadata module from libFLAC to reduce the size and complexity. + */ + +#ifdef __cplusplus +extern "C" { +#endif + + +/** \defgroup flac_metadata_level0 FLAC/metadata.h: metadata level 0 interface + * \ingroup flac_metadata + * + * \brief + * The level 0 interface consists of individual routines to read the + * STREAMINFO, VORBIS_COMMENT, CUESHEET, and PICTURE blocks, requiring + * only a filename. + * + * They try to skip any ID3v2 tag at the head of the file. + * + * \{ + */ + +/** Read the STREAMINFO metadata block of the given FLAC file. This function + * will try to skip any ID3v2 tag at the head of the file. + * + * \param filename The path to the FLAC file to read. + * \param streaminfo A pointer to space for the STREAMINFO block. Since + * FLAC__StreamMetadata is a simple structure with no + * memory allocation involved, you pass the address of + * an existing structure. It need not be initialized. + * \assert + * \code filename != NULL \endcode + * \code streaminfo != NULL \endcode + * \retval FLAC__bool + * \c true if a valid STREAMINFO block was read from \a filename. Returns + * \c false if there was a memory allocation error, a file decoder error, + * or the file contained no STREAMINFO block. (A memory allocation error + * is possible because this function must set up a file decoder.) + */ +FLAC_API FLAC__bool FLAC__metadata_get_streaminfo(const char *filename, FLAC__StreamMetadata *streaminfo); + +/** Read the VORBIS_COMMENT metadata block of the given FLAC file. This + * function will try to skip any ID3v2 tag at the head of the file. + * + * \param filename The path to the FLAC file to read. + * \param tags The address where the returned pointer will be + * stored. The \a tags object must be deleted by + * the caller using FLAC__metadata_object_delete(). + * \assert + * \code filename != NULL \endcode + * \code tags != NULL \endcode + * \retval FLAC__bool + * \c true if a valid VORBIS_COMMENT block was read from \a filename, + * and \a *tags will be set to the address of the metadata structure. + * Returns \c false if there was a memory allocation error, a file + * decoder error, or the file contained no VORBIS_COMMENT block, and + * \a *tags will be set to \c NULL. + */ +FLAC_API FLAC__bool FLAC__metadata_get_tags(const char *filename, FLAC__StreamMetadata **tags); + +/** Read the CUESHEET metadata block of the given FLAC file. This + * function will try to skip any ID3v2 tag at the head of the file. + * + * \param filename The path to the FLAC file to read. + * \param cuesheet The address where the returned pointer will be + * stored. The \a cuesheet object must be deleted by + * the caller using FLAC__metadata_object_delete(). + * \assert + * \code filename != NULL \endcode + * \code cuesheet != NULL \endcode + * \retval FLAC__bool + * \c true if a valid CUESHEET block was read from \a filename, + * and \a *cuesheet will be set to the address of the metadata + * structure. Returns \c false if there was a memory allocation + * error, a file decoder error, or the file contained no CUESHEET + * block, and \a *cuesheet will be set to \c NULL. + */ +FLAC_API FLAC__bool FLAC__metadata_get_cuesheet(const char *filename, FLAC__StreamMetadata **cuesheet); + +/** Read a PICTURE metadata block of the given FLAC file. This + * function will try to skip any ID3v2 tag at the head of the file. + * Since there can be more than one PICTURE block in a file, this + * function takes a number of parameters that act as constraints to + * the search. The PICTURE block with the largest area matching all + * the constraints will be returned, or \a *picture will be set to + * \c NULL if there was no such block. + * + * \param filename The path to the FLAC file to read. + * \param picture The address where the returned pointer will be + * stored. The \a picture object must be deleted by + * the caller using FLAC__metadata_object_delete(). + * \param type The desired picture type. Use \c -1 to mean + * "any type". + * \param mime_type The desired MIME type, e.g. "image/jpeg". The + * string will be matched exactly. Use \c NULL to + * mean "any MIME type". + * \param description The desired description. The string will be + * matched exactly. Use \c NULL to mean "any + * description". + * \param max_width The maximum width in pixels desired. Use + * \c (unsigned)(-1) to mean "any width". + * \param max_height The maximum height in pixels desired. Use + * \c (unsigned)(-1) to mean "any height". + * \param max_depth The maximum color depth in bits-per-pixel desired. + * Use \c (unsigned)(-1) to mean "any depth". + * \param max_colors The maximum number of colors desired. Use + * \c (unsigned)(-1) to mean "any number of colors". + * \assert + * \code filename != NULL \endcode + * \code picture != NULL \endcode + * \retval FLAC__bool + * \c true if a valid PICTURE block was read from \a filename, + * and \a *picture will be set to the address of the metadata + * structure. Returns \c false if there was a memory allocation + * error, a file decoder error, or the file contained no PICTURE + * block, and \a *picture will be set to \c NULL. + */ +FLAC_API FLAC__bool FLAC__metadata_get_picture(const char *filename, FLAC__StreamMetadata **picture, FLAC__StreamMetadata_Picture_Type type, const char *mime_type, const FLAC__byte *description, unsigned max_width, unsigned max_height, unsigned max_depth, unsigned max_colors); + +/* \} */ + + +/** \defgroup flac_metadata_level1 FLAC/metadata.h: metadata level 1 interface + * \ingroup flac_metadata + * + * \brief + * The level 1 interface provides read-write access to FLAC file metadata and + * operates directly on the FLAC file. + * + * The general usage of this interface is: + * + * - Create an iterator using FLAC__metadata_simple_iterator_new() + * - Attach it to a file using FLAC__metadata_simple_iterator_init() and check + * the exit code. Call FLAC__metadata_simple_iterator_is_writable() to + * see if the file is writable, or only read access is allowed. + * - Use FLAC__metadata_simple_iterator_next() and + * FLAC__metadata_simple_iterator_prev() to traverse the blocks. + * This is does not read the actual blocks themselves. + * FLAC__metadata_simple_iterator_next() is relatively fast. + * FLAC__metadata_simple_iterator_prev() is slower since it needs to search + * forward from the front of the file. + * - Use FLAC__metadata_simple_iterator_get_block_type() or + * FLAC__metadata_simple_iterator_get_block() to access the actual data at + * the current iterator position. The returned object is yours to modify + * and free. + * - Use FLAC__metadata_simple_iterator_set_block() to write a modified block + * back. You must have write permission to the original file. Make sure to + * read the whole comment to FLAC__metadata_simple_iterator_set_block() + * below. + * - Use FLAC__metadata_simple_iterator_insert_block_after() to add new blocks. + * Use the object creation functions from + * \link flac_metadata_object here \endlink to generate new objects. + * - Use FLAC__metadata_simple_iterator_delete_block() to remove the block + * currently referred to by the iterator, or replace it with padding. + * - Destroy the iterator with FLAC__metadata_simple_iterator_delete() when + * finished. + * + * \note + * The FLAC file remains open the whole time between + * FLAC__metadata_simple_iterator_init() and + * FLAC__metadata_simple_iterator_delete(), so make sure you are not altering + * the file during this time. + * + * \note + * Do not modify the \a is_last, \a length, or \a type fields of returned + * FLAC__StreamMetadata objects. These are managed automatically. + * + * \note + * If any of the modification functions + * (FLAC__metadata_simple_iterator_set_block(), + * FLAC__metadata_simple_iterator_delete_block(), + * FLAC__metadata_simple_iterator_insert_block_after(), etc.) return \c false, + * you should delete the iterator as it may no longer be valid. + * + * \{ + */ + +struct FLAC__Metadata_SimpleIterator; +/** The opaque structure definition for the level 1 iterator type. + * See the + * \link flac_metadata_level1 metadata level 1 module \endlink + * for a detailed description. + */ +typedef struct FLAC__Metadata_SimpleIterator FLAC__Metadata_SimpleIterator; + +/** Status type for FLAC__Metadata_SimpleIterator. + * + * The iterator's current status can be obtained by calling FLAC__metadata_simple_iterator_status(). + */ +typedef enum { + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_OK = 0, + /**< The iterator is in the normal OK state */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_ILLEGAL_INPUT, + /**< The data passed into a function violated the function's usage criteria */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_ERROR_OPENING_FILE, + /**< The iterator could not open the target file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_NOT_A_FLAC_FILE, + /**< The iterator could not find the FLAC signature at the start of the file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_NOT_WRITABLE, + /**< The iterator tried to write to a file that was not writable */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_BAD_METADATA, + /**< The iterator encountered input that does not conform to the FLAC metadata specification */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_READ_ERROR, + /**< The iterator encountered an error while reading the FLAC file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_SEEK_ERROR, + /**< The iterator encountered an error while seeking in the FLAC file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_WRITE_ERROR, + /**< The iterator encountered an error while writing the FLAC file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_RENAME_ERROR, + /**< The iterator encountered an error renaming the FLAC file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_UNLINK_ERROR, + /**< The iterator encountered an error removing the temporary file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_MEMORY_ALLOCATION_ERROR, + /**< Memory allocation failed */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_INTERNAL_ERROR + /**< The caller violated an assertion or an unexpected error occurred */ + +} FLAC__Metadata_SimpleIteratorStatus; + +/** Maps a FLAC__Metadata_SimpleIteratorStatus to a C string. + * + * Using a FLAC__Metadata_SimpleIteratorStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__Metadata_SimpleIteratorStatusString[]; + + +/** Create a new iterator instance. + * + * \retval FLAC__Metadata_SimpleIterator* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__Metadata_SimpleIterator *FLAC__metadata_simple_iterator_new(void); + +/** Free an iterator instance. Deletes the object pointed to by \a iterator. + * + * \param iterator A pointer to an existing iterator. + * \assert + * \code iterator != NULL \endcode + */ +FLAC_API void FLAC__metadata_simple_iterator_delete(FLAC__Metadata_SimpleIterator *iterator); + +/** Get the current status of the iterator. Call this after a function + * returns \c false to get the reason for the error. Also resets the status + * to FLAC__METADATA_SIMPLE_ITERATOR_STATUS_OK. + * + * \param iterator A pointer to an existing iterator. + * \assert + * \code iterator != NULL \endcode + * \retval FLAC__Metadata_SimpleIteratorStatus + * The current status of the iterator. + */ +FLAC_API FLAC__Metadata_SimpleIteratorStatus FLAC__metadata_simple_iterator_status(FLAC__Metadata_SimpleIterator *iterator); + +/** Initialize the iterator to point to the first metadata block in the + * given FLAC file. + * + * \param iterator A pointer to an existing iterator. + * \param filename The path to the FLAC file. + * \param read_only If \c true, the FLAC file will be opened + * in read-only mode; if \c false, the FLAC + * file will be opened for edit even if no + * edits are performed. + * \param preserve_file_stats If \c true, the owner and modification + * time will be preserved even if the FLAC + * file is written to. + * \assert + * \code iterator != NULL \endcode + * \code filename != NULL \endcode + * \retval FLAC__bool + * \c false if a memory allocation error occurs, the file can't be + * opened, or another error occurs, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_init(FLAC__Metadata_SimpleIterator *iterator, const char *filename, FLAC__bool read_only, FLAC__bool preserve_file_stats); + +/** Returns \c true if the FLAC file is writable. If \c false, calls to + * FLAC__metadata_simple_iterator_set_block() and + * FLAC__metadata_simple_iterator_insert_block_after() will fail. + * + * \param iterator A pointer to an existing iterator. + * \assert + * \code iterator != NULL \endcode + * \retval FLAC__bool + * See above. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_is_writable(const FLAC__Metadata_SimpleIterator *iterator); + +/** Moves the iterator forward one metadata block, returning \c false if + * already at the end. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__bool + * \c false if already at the last metadata block of the chain, else + * \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_next(FLAC__Metadata_SimpleIterator *iterator); + +/** Moves the iterator backward one metadata block, returning \c false if + * already at the beginning. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__bool + * \c false if already at the first metadata block of the chain, else + * \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_prev(FLAC__Metadata_SimpleIterator *iterator); + +/** Returns a flag telling if the current metadata block is the last. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__bool + * \c true if the current metadata block is the last in the file, + * else \c false. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_is_last(const FLAC__Metadata_SimpleIterator *iterator); + +/** Get the offset of the metadata block at the current position. This + * avoids reading the actual block data which can save time for large + * blocks. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval off_t + * The offset of the metadata block at the current iterator position. + * This is the byte offset relative to the beginning of the file of + * the current metadata block's header. + */ +FLAC_API off_t FLAC__metadata_simple_iterator_get_block_offset(const FLAC__Metadata_SimpleIterator *iterator); + +/** Get the type of the metadata block at the current position. This + * avoids reading the actual block data which can save time for large + * blocks. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__MetadataType + * The type of the metadata block at the current iterator position. + */ +FLAC_API FLAC__MetadataType FLAC__metadata_simple_iterator_get_block_type(const FLAC__Metadata_SimpleIterator *iterator); + +/** Get the length of the metadata block at the current position. This + * avoids reading the actual block data which can save time for large + * blocks. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval unsigned + * The length of the metadata block at the current iterator position. + * The is same length as that in the + * metadata block header, + * i.e. the length of the metadata body that follows the header. + */ +FLAC_API unsigned FLAC__metadata_simple_iterator_get_block_length(const FLAC__Metadata_SimpleIterator *iterator); + +/** Get the application ID of the \c APPLICATION block at the current + * position. This avoids reading the actual block data which can save + * time for large blocks. + * + * \param iterator A pointer to an existing initialized iterator. + * \param id A pointer to a buffer of at least \c 4 bytes where + * the ID will be stored. + * \assert + * \code iterator != NULL \endcode + * \code id != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__bool + * \c true if the ID was successfully read, else \c false, in which + * case you should check FLAC__metadata_simple_iterator_status() to + * find out why. If the status is + * \c FLAC__METADATA_SIMPLE_ITERATOR_STATUS_ILLEGAL_INPUT, then the + * current metadata block is not an \c APPLICATION block. Otherwise + * if the status is + * \c FLAC__METADATA_SIMPLE_ITERATOR_STATUS_READ_ERROR or + * \c FLAC__METADATA_SIMPLE_ITERATOR_STATUS_SEEK_ERROR, an I/O error + * occurred and the iterator can no longer be used. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_get_application_id(FLAC__Metadata_SimpleIterator *iterator, FLAC__byte *id); + +/** Get the metadata block at the current position. You can modify the + * block but must use FLAC__metadata_simple_iterator_set_block() to + * write it back to the FLAC file. + * + * You must call FLAC__metadata_object_delete() on the returned object + * when you are finished with it. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__StreamMetadata* + * The current metadata block, or \c NULL if there was a memory + * allocation error. + */ +FLAC_API FLAC__StreamMetadata *FLAC__metadata_simple_iterator_get_block(FLAC__Metadata_SimpleIterator *iterator); + +/** Write a block back to the FLAC file. This function tries to be + * as efficient as possible; how the block is actually written is + * shown by the following: + * + * Existing block is a STREAMINFO block and the new block is a + * STREAMINFO block: the new block is written in place. Make sure + * you know what you're doing when changing the values of a + * STREAMINFO block. + * + * Existing block is a STREAMINFO block and the new block is a + * not a STREAMINFO block: this is an error since the first block + * must be a STREAMINFO block. Returns \c false without altering the + * file. + * + * Existing block is not a STREAMINFO block and the new block is a + * STREAMINFO block: this is an error since there may be only one + * STREAMINFO block. Returns \c false without altering the file. + * + * Existing block and new block are the same length: the existing + * block will be replaced by the new block, written in place. + * + * Existing block is longer than new block: if use_padding is \c true, + * the existing block will be overwritten in place with the new + * block followed by a PADDING block, if possible, to make the total + * size the same as the existing block. Remember that a padding + * block requires at least four bytes so if the difference in size + * between the new block and existing block is less than that, the + * entire file will have to be rewritten, using the new block's + * exact size. If use_padding is \c false, the entire file will be + * rewritten, replacing the existing block by the new block. + * + * Existing block is shorter than new block: if use_padding is \c true, + * the function will try and expand the new block into the following + * PADDING block, if it exists and doing so won't shrink the PADDING + * block to less than 4 bytes. If there is no following PADDING + * block, or it will shrink to less than 4 bytes, or use_padding is + * \c false, the entire file is rewritten, replacing the existing block + * with the new block. Note that in this case any following PADDING + * block is preserved as is. + * + * After writing the block, the iterator will remain in the same + * place, i.e. pointing to the new block. + * + * \param iterator A pointer to an existing initialized iterator. + * \param block The block to set. + * \param use_padding See above. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \code block != NULL \endcode + * \retval FLAC__bool + * \c true if successful, else \c false. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_set_block(FLAC__Metadata_SimpleIterator *iterator, FLAC__StreamMetadata *block, FLAC__bool use_padding); + +/** This is similar to FLAC__metadata_simple_iterator_set_block() + * except that instead of writing over an existing block, it appends + * a block after the existing block. \a use_padding is again used to + * tell the function to try an expand into following padding in an + * attempt to avoid rewriting the entire file. + * + * This function will fail and return \c false if given a STREAMINFO + * block. + * + * After writing the block, the iterator will be pointing to the + * new block. + * + * \param iterator A pointer to an existing initialized iterator. + * \param block The block to set. + * \param use_padding See above. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \code block != NULL \endcode + * \retval FLAC__bool + * \c true if successful, else \c false. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_insert_block_after(FLAC__Metadata_SimpleIterator *iterator, FLAC__StreamMetadata *block, FLAC__bool use_padding); + +/** Deletes the block at the current position. This will cause the + * entire FLAC file to be rewritten, unless \a use_padding is \c true, + * in which case the block will be replaced by an equal-sized PADDING + * block. The iterator will be left pointing to the block before the + * one just deleted. + * + * You may not delete the STREAMINFO block. + * + * \param iterator A pointer to an existing initialized iterator. + * \param use_padding See above. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__bool + * \c true if successful, else \c false. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_delete_block(FLAC__Metadata_SimpleIterator *iterator, FLAC__bool use_padding); + +/* \} */ + + +/** \defgroup flac_metadata_level2 FLAC/metadata.h: metadata level 2 interface + * \ingroup flac_metadata + * + * \brief + * The level 2 interface provides read-write access to FLAC file metadata; + * all metadata is read into memory, operated on in memory, and then written + * to file, which is more efficient than level 1 when editing multiple blocks. + * + * Currently Ogg FLAC is supported for read only, via + * FLAC__metadata_chain_read_ogg() but a subsequent + * FLAC__metadata_chain_write() will fail. + * + * The general usage of this interface is: + * + * - Create a new chain using FLAC__metadata_chain_new(). A chain is a + * linked list of FLAC metadata blocks. + * - Read all metadata into the the chain from a FLAC file using + * FLAC__metadata_chain_read() or FLAC__metadata_chain_read_ogg() and + * check the status. + * - Optionally, consolidate the padding using + * FLAC__metadata_chain_merge_padding() or + * FLAC__metadata_chain_sort_padding(). + * - Create a new iterator using FLAC__metadata_iterator_new() + * - Initialize the iterator to point to the first element in the chain + * using FLAC__metadata_iterator_init() + * - Traverse the chain using FLAC__metadata_iterator_next and + * FLAC__metadata_iterator_prev(). + * - Get a block for reading or modification using + * FLAC__metadata_iterator_get_block(). The pointer to the object + * inside the chain is returned, so the block is yours to modify. + * Changes will be reflected in the FLAC file when you write the + * chain. You can also add and delete blocks (see functions below). + * - When done, write out the chain using FLAC__metadata_chain_write(). + * Make sure to read the whole comment to the function below. + * - Delete the chain using FLAC__metadata_chain_delete(). + * + * \note + * Even though the FLAC file is not open while the chain is being + * manipulated, you must not alter the file externally during + * this time. The chain assumes the FLAC file will not change + * between the time of FLAC__metadata_chain_read()/FLAC__metadata_chain_read_ogg() + * and FLAC__metadata_chain_write(). + * + * \note + * Do not modify the is_last, length, or type fields of returned + * FLAC__StreamMetadata objects. These are managed automatically. + * + * \note + * The metadata objects returned by FLAC__metadata_iterator_get_block() + * are owned by the chain; do not FLAC__metadata_object_delete() them. + * In the same way, blocks passed to FLAC__metadata_iterator_set_block() + * become owned by the chain and they will be deleted when the chain is + * deleted. + * + * \{ + */ + +struct FLAC__Metadata_Chain; +/** The opaque structure definition for the level 2 chain type. + */ +typedef struct FLAC__Metadata_Chain FLAC__Metadata_Chain; + +struct FLAC__Metadata_Iterator; +/** The opaque structure definition for the level 2 iterator type. + */ +typedef struct FLAC__Metadata_Iterator FLAC__Metadata_Iterator; + +typedef enum { + FLAC__METADATA_CHAIN_STATUS_OK = 0, + /**< The chain is in the normal OK state */ + + FLAC__METADATA_CHAIN_STATUS_ILLEGAL_INPUT, + /**< The data passed into a function violated the function's usage criteria */ + + FLAC__METADATA_CHAIN_STATUS_ERROR_OPENING_FILE, + /**< The chain could not open the target file */ + + FLAC__METADATA_CHAIN_STATUS_NOT_A_FLAC_FILE, + /**< The chain could not find the FLAC signature at the start of the file */ + + FLAC__METADATA_CHAIN_STATUS_NOT_WRITABLE, + /**< The chain tried to write to a file that was not writable */ + + FLAC__METADATA_CHAIN_STATUS_BAD_METADATA, + /**< The chain encountered input that does not conform to the FLAC metadata specification */ + + FLAC__METADATA_CHAIN_STATUS_READ_ERROR, + /**< The chain encountered an error while reading the FLAC file */ + + FLAC__METADATA_CHAIN_STATUS_SEEK_ERROR, + /**< The chain encountered an error while seeking in the FLAC file */ + + FLAC__METADATA_CHAIN_STATUS_WRITE_ERROR, + /**< The chain encountered an error while writing the FLAC file */ + + FLAC__METADATA_CHAIN_STATUS_RENAME_ERROR, + /**< The chain encountered an error renaming the FLAC file */ + + FLAC__METADATA_CHAIN_STATUS_UNLINK_ERROR, + /**< The chain encountered an error removing the temporary file */ + + FLAC__METADATA_CHAIN_STATUS_MEMORY_ALLOCATION_ERROR, + /**< Memory allocation failed */ + + FLAC__METADATA_CHAIN_STATUS_INTERNAL_ERROR, + /**< The caller violated an assertion or an unexpected error occurred */ + + FLAC__METADATA_CHAIN_STATUS_INVALID_CALLBACKS, + /**< One or more of the required callbacks was NULL */ + + FLAC__METADATA_CHAIN_STATUS_READ_WRITE_MISMATCH, + /**< FLAC__metadata_chain_write() was called on a chain read by + * FLAC__metadata_chain_read_with_callbacks()/FLAC__metadata_chain_read_ogg_with_callbacks(), + * or + * FLAC__metadata_chain_write_with_callbacks()/FLAC__metadata_chain_write_with_callbacks_and_tempfile() + * was called on a chain read by + * FLAC__metadata_chain_read()/FLAC__metadata_chain_read_ogg(). + * Matching read/write methods must always be used. */ + + FLAC__METADATA_CHAIN_STATUS_WRONG_WRITE_CALL + /**< FLAC__metadata_chain_write_with_callbacks() was called when the + * chain write requires a tempfile; use + * FLAC__metadata_chain_write_with_callbacks_and_tempfile() instead. + * Or, FLAC__metadata_chain_write_with_callbacks_and_tempfile() was + * called when the chain write does not require a tempfile; use + * FLAC__metadata_chain_write_with_callbacks() instead. + * Always check FLAC__metadata_chain_check_if_tempfile_needed() + * before writing via callbacks. */ + +} FLAC__Metadata_ChainStatus; + +/** Maps a FLAC__Metadata_ChainStatus to a C string. + * + * Using a FLAC__Metadata_ChainStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__Metadata_ChainStatusString[]; + +/*********** FLAC__Metadata_Chain ***********/ + +/** Create a new chain instance. + * + * \retval FLAC__Metadata_Chain* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__Metadata_Chain *FLAC__metadata_chain_new(void); + +/** Free a chain instance. Deletes the object pointed to by \a chain. + * + * \param chain A pointer to an existing chain. + * \assert + * \code chain != NULL \endcode + */ +FLAC_API void FLAC__metadata_chain_delete(FLAC__Metadata_Chain *chain); + +/** Get the current status of the chain. Call this after a function + * returns \c false to get the reason for the error. Also resets the + * status to FLAC__METADATA_CHAIN_STATUS_OK. + * + * \param chain A pointer to an existing chain. + * \assert + * \code chain != NULL \endcode + * \retval FLAC__Metadata_ChainStatus + * The current status of the chain. + */ +FLAC_API FLAC__Metadata_ChainStatus FLAC__metadata_chain_status(FLAC__Metadata_Chain *chain); + +/** Read all metadata from a FLAC file into the chain. + * + * \param chain A pointer to an existing chain. + * \param filename The path to the FLAC file to read. + * \assert + * \code chain != NULL \endcode + * \code filename != NULL \endcode + * \retval FLAC__bool + * \c true if a valid list of metadata blocks was read from + * \a filename, else \c false. On failure, check the status with + * FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_read(FLAC__Metadata_Chain *chain, const char *filename); + +/** Read all metadata from an Ogg FLAC file into the chain. + * + * \note Ogg FLAC metadata data writing is not supported yet and + * FLAC__metadata_chain_write() will fail. + * + * \param chain A pointer to an existing chain. + * \param filename The path to the Ogg FLAC file to read. + * \assert + * \code chain != NULL \endcode + * \code filename != NULL \endcode + * \retval FLAC__bool + * \c true if a valid list of metadata blocks was read from + * \a filename, else \c false. On failure, check the status with + * FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_read_ogg(FLAC__Metadata_Chain *chain, const char *filename); + +/** Read all metadata from a FLAC stream into the chain via I/O callbacks. + * + * The \a handle need only be open for reading, but must be seekable. + * The equivalent minimum stdio fopen() file mode is \c "r" (or \c "rb" + * for Windows). + * + * \param chain A pointer to an existing chain. + * \param handle The I/O handle of the FLAC stream to read. The + * handle will NOT be closed after the metadata is read; + * that is the duty of the caller. + * \param callbacks + * A set of callbacks to use for I/O. The mandatory + * callbacks are \a read, \a seek, and \a tell. + * \assert + * \code chain != NULL \endcode + * \retval FLAC__bool + * \c true if a valid list of metadata blocks was read from + * \a handle, else \c false. On failure, check the status with + * FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_read_with_callbacks(FLAC__Metadata_Chain *chain, FLAC__IOHandle handle, FLAC__IOCallbacks callbacks); + +/** Read all metadata from an Ogg FLAC stream into the chain via I/O callbacks. + * + * The \a handle need only be open for reading, but must be seekable. + * The equivalent minimum stdio fopen() file mode is \c "r" (or \c "rb" + * for Windows). + * + * \note Ogg FLAC metadata data writing is not supported yet and + * FLAC__metadata_chain_write() will fail. + * + * \param chain A pointer to an existing chain. + * \param handle The I/O handle of the Ogg FLAC stream to read. The + * handle will NOT be closed after the metadata is read; + * that is the duty of the caller. + * \param callbacks + * A set of callbacks to use for I/O. The mandatory + * callbacks are \a read, \a seek, and \a tell. + * \assert + * \code chain != NULL \endcode + * \retval FLAC__bool + * \c true if a valid list of metadata blocks was read from + * \a handle, else \c false. On failure, check the status with + * FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_read_ogg_with_callbacks(FLAC__Metadata_Chain *chain, FLAC__IOHandle handle, FLAC__IOCallbacks callbacks); + +/** Checks if writing the given chain would require the use of a + * temporary file, or if it could be written in place. + * + * Under certain conditions, padding can be utilized so that writing + * edited metadata back to the FLAC file does not require rewriting the + * entire file. If rewriting is required, then a temporary workfile is + * required. When writing metadata using callbacks, you must check + * this function to know whether to call + * FLAC__metadata_chain_write_with_callbacks() or + * FLAC__metadata_chain_write_with_callbacks_and_tempfile(). When + * writing with FLAC__metadata_chain_write(), the temporary file is + * handled internally. + * + * \param chain A pointer to an existing chain. + * \param use_padding + * Whether or not padding will be allowed to be used + * during the write. The value of \a use_padding given + * here must match the value later passed to + * FLAC__metadata_chain_write_with_callbacks() or + * FLAC__metadata_chain_write_with_callbacks_with_tempfile(). + * \assert + * \code chain != NULL \endcode + * \retval FLAC__bool + * \c true if writing the current chain would require a tempfile, or + * \c false if metadata can be written in place. + */ +FLAC_API FLAC__bool FLAC__metadata_chain_check_if_tempfile_needed(FLAC__Metadata_Chain *chain, FLAC__bool use_padding); + +/** Write all metadata out to the FLAC file. This function tries to be as + * efficient as possible; how the metadata is actually written is shown by + * the following: + * + * If the current chain is the same size as the existing metadata, the new + * data is written in place. + * + * If the current chain is longer than the existing metadata, and + * \a use_padding is \c true, and the last block is a PADDING block of + * sufficient length, the function will truncate the final padding block + * so that the overall size of the metadata is the same as the existing + * metadata, and then just rewrite the metadata. Otherwise, if not all of + * the above conditions are met, the entire FLAC file must be rewritten. + * If you want to use padding this way it is a good idea to call + * FLAC__metadata_chain_sort_padding() first so that you have the maximum + * amount of padding to work with, unless you need to preserve ordering + * of the PADDING blocks for some reason. + * + * If the current chain is shorter than the existing metadata, and + * \a use_padding is \c true, and the final block is a PADDING block, the padding + * is extended to make the overall size the same as the existing data. If + * \a use_padding is \c true and the last block is not a PADDING block, a new + * PADDING block is added to the end of the new data to make it the same + * size as the existing data (if possible, see the note to + * FLAC__metadata_simple_iterator_set_block() about the four byte limit) + * and the new data is written in place. If none of the above apply or + * \a use_padding is \c false, the entire FLAC file is rewritten. + * + * If \a preserve_file_stats is \c true, the owner and modification time will + * be preserved even if the FLAC file is written. + * + * For this write function to be used, the chain must have been read with + * FLAC__metadata_chain_read()/FLAC__metadata_chain_read_ogg(), not + * FLAC__metadata_chain_read_with_callbacks()/FLAC__metadata_chain_read_ogg_with_callbacks(). + * + * \param chain A pointer to an existing chain. + * \param use_padding See above. + * \param preserve_file_stats See above. + * \assert + * \code chain != NULL \endcode + * \retval FLAC__bool + * \c true if the write succeeded, else \c false. On failure, + * check the status with FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_write(FLAC__Metadata_Chain *chain, FLAC__bool use_padding, FLAC__bool preserve_file_stats); + +/** Write all metadata out to a FLAC stream via callbacks. + * + * (See FLAC__metadata_chain_write() for the details on how padding is + * used to write metadata in place if possible.) + * + * The \a handle must be open for updating and be seekable. The + * equivalent minimum stdio fopen() file mode is \c "r+" (or \c "r+b" + * for Windows). + * + * For this write function to be used, the chain must have been read with + * FLAC__metadata_chain_read_with_callbacks()/FLAC__metadata_chain_read_ogg_with_callbacks(), + * not FLAC__metadata_chain_read()/FLAC__metadata_chain_read_ogg(). + * Also, FLAC__metadata_chain_check_if_tempfile_needed() must have returned + * \c false. + * + * \param chain A pointer to an existing chain. + * \param use_padding See FLAC__metadata_chain_write() + * \param handle The I/O handle of the FLAC stream to write. The + * handle will NOT be closed after the metadata is + * written; that is the duty of the caller. + * \param callbacks A set of callbacks to use for I/O. The mandatory + * callbacks are \a write and \a seek. + * \assert + * \code chain != NULL \endcode + * \retval FLAC__bool + * \c true if the write succeeded, else \c false. On failure, + * check the status with FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_write_with_callbacks(FLAC__Metadata_Chain *chain, FLAC__bool use_padding, FLAC__IOHandle handle, FLAC__IOCallbacks callbacks); + +/** Write all metadata out to a FLAC stream via callbacks. + * + * (See FLAC__metadata_chain_write() for the details on how padding is + * used to write metadata in place if possible.) + * + * This version of the write-with-callbacks function must be used when + * FLAC__metadata_chain_check_if_tempfile_needed() returns true. In + * this function, you must supply an I/O handle corresponding to the + * FLAC file to edit, and a temporary handle to which the new FLAC + * file will be written. It is the caller's job to move this temporary + * FLAC file on top of the original FLAC file to complete the metadata + * edit. + * + * The \a handle must be open for reading and be seekable. The + * equivalent minimum stdio fopen() file mode is \c "r" (or \c "rb" + * for Windows). + * + * The \a temp_handle must be open for writing. The + * equivalent minimum stdio fopen() file mode is \c "w" (or \c "wb" + * for Windows). It should be an empty stream, or at least positioned + * at the start-of-file (in which case it is the caller's duty to + * truncate it on return). + * + * For this write function to be used, the chain must have been read with + * FLAC__metadata_chain_read_with_callbacks()/FLAC__metadata_chain_read_ogg_with_callbacks(), + * not FLAC__metadata_chain_read()/FLAC__metadata_chain_read_ogg(). + * Also, FLAC__metadata_chain_check_if_tempfile_needed() must have returned + * \c true. + * + * \param chain A pointer to an existing chain. + * \param use_padding See FLAC__metadata_chain_write() + * \param handle The I/O handle of the original FLAC stream to read. + * The handle will NOT be closed after the metadata is + * written; that is the duty of the caller. + * \param callbacks A set of callbacks to use for I/O on \a handle. + * The mandatory callbacks are \a read, \a seek, and + * \a eof. + * \param temp_handle The I/O handle of the FLAC stream to write. The + * handle will NOT be closed after the metadata is + * written; that is the duty of the caller. + * \param temp_callbacks + * A set of callbacks to use for I/O on temp_handle. + * The only mandatory callback is \a write. + * \assert + * \code chain != NULL \endcode + * \retval FLAC__bool + * \c true if the write succeeded, else \c false. On failure, + * check the status with FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_write_with_callbacks_and_tempfile(FLAC__Metadata_Chain *chain, FLAC__bool use_padding, FLAC__IOHandle handle, FLAC__IOCallbacks callbacks, FLAC__IOHandle temp_handle, FLAC__IOCallbacks temp_callbacks); + +/** Merge adjacent PADDING blocks into a single block. + * + * \note This function does not write to the FLAC file, it only + * modifies the chain. + * + * \warning Any iterator on the current chain will become invalid after this + * call. You should delete the iterator and get a new one. + * + * \param chain A pointer to an existing chain. + * \assert + * \code chain != NULL \endcode + */ +FLAC_API void FLAC__metadata_chain_merge_padding(FLAC__Metadata_Chain *chain); + +/** This function will move all PADDING blocks to the end on the metadata, + * then merge them into a single block. + * + * \note This function does not write to the FLAC file, it only + * modifies the chain. + * + * \warning Any iterator on the current chain will become invalid after this + * call. You should delete the iterator and get a new one. + * + * \param chain A pointer to an existing chain. + * \assert + * \code chain != NULL \endcode + */ +FLAC_API void FLAC__metadata_chain_sort_padding(FLAC__Metadata_Chain *chain); + + +/*********** FLAC__Metadata_Iterator ***********/ + +/** Create a new iterator instance. + * + * \retval FLAC__Metadata_Iterator* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__Metadata_Iterator *FLAC__metadata_iterator_new(void); + +/** Free an iterator instance. Deletes the object pointed to by \a iterator. + * + * \param iterator A pointer to an existing iterator. + * \assert + * \code iterator != NULL \endcode + */ +FLAC_API void FLAC__metadata_iterator_delete(FLAC__Metadata_Iterator *iterator); + +/** Initialize the iterator to point to the first metadata block in the + * given chain. + * + * \param iterator A pointer to an existing iterator. + * \param chain A pointer to an existing and initialized (read) chain. + * \assert + * \code iterator != NULL \endcode + * \code chain != NULL \endcode + */ +FLAC_API void FLAC__metadata_iterator_init(FLAC__Metadata_Iterator *iterator, FLAC__Metadata_Chain *chain); + +/** Moves the iterator forward one metadata block, returning \c false if + * already at the end. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__bool + * \c false if already at the last metadata block of the chain, else + * \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_iterator_next(FLAC__Metadata_Iterator *iterator); + +/** Moves the iterator backward one metadata block, returning \c false if + * already at the beginning. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__bool + * \c false if already at the first metadata block of the chain, else + * \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_iterator_prev(FLAC__Metadata_Iterator *iterator); + +/** Get the type of the metadata block at the current position. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__MetadataType + * The type of the metadata block at the current iterator position. + */ +FLAC_API FLAC__MetadataType FLAC__metadata_iterator_get_block_type(const FLAC__Metadata_Iterator *iterator); + +/** Get the metadata block at the current position. You can modify + * the block in place but must write the chain before the changes + * are reflected to the FLAC file. You do not need to call + * FLAC__metadata_iterator_set_block() to reflect the changes; + * the pointer returned by FLAC__metadata_iterator_get_block() + * points directly into the chain. + * + * \warning + * Do not call FLAC__metadata_object_delete() on the returned object; + * to delete a block use FLAC__metadata_iterator_delete_block(). + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__StreamMetadata* + * The current metadata block. + */ +FLAC_API FLAC__StreamMetadata *FLAC__metadata_iterator_get_block(FLAC__Metadata_Iterator *iterator); + +/** Set the metadata block at the current position, replacing the existing + * block. The new block passed in becomes owned by the chain and it will be + * deleted when the chain is deleted. + * + * \param iterator A pointer to an existing initialized iterator. + * \param block A pointer to a metadata block. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \code block != NULL \endcode + * \retval FLAC__bool + * \c false if the conditions in the above description are not met, or + * a memory allocation error occurs, otherwise \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_iterator_set_block(FLAC__Metadata_Iterator *iterator, FLAC__StreamMetadata *block); + +/** Removes the current block from the chain. If \a replace_with_padding is + * \c true, the block will instead be replaced with a padding block of equal + * size. You can not delete the STREAMINFO block. The iterator will be + * left pointing to the block before the one just "deleted", even if + * \a replace_with_padding is \c true. + * + * \param iterator A pointer to an existing initialized iterator. + * \param replace_with_padding See above. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__bool + * \c false if the conditions in the above description are not met, + * otherwise \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_iterator_delete_block(FLAC__Metadata_Iterator *iterator, FLAC__bool replace_with_padding); + +/** Insert a new block before the current block. You cannot insert a block + * before the first STREAMINFO block. You cannot insert a STREAMINFO block + * as there can be only one, the one that already exists at the head when you + * read in a chain. The chain takes ownership of the new block and it will be + * deleted when the chain is deleted. The iterator will be left pointing to + * the new block. + * + * \param iterator A pointer to an existing initialized iterator. + * \param block A pointer to a metadata block to insert. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__bool + * \c false if the conditions in the above description are not met, or + * a memory allocation error occurs, otherwise \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_iterator_insert_block_before(FLAC__Metadata_Iterator *iterator, FLAC__StreamMetadata *block); + +/** Insert a new block after the current block. You cannot insert a STREAMINFO + * block as there can be only one, the one that already exists at the head when + * you read in a chain. The chain takes ownership of the new block and it will + * be deleted when the chain is deleted. The iterator will be left pointing to + * the new block. + * + * \param iterator A pointer to an existing initialized iterator. + * \param block A pointer to a metadata block to insert. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__bool + * \c false if the conditions in the above description are not met, or + * a memory allocation error occurs, otherwise \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_iterator_insert_block_after(FLAC__Metadata_Iterator *iterator, FLAC__StreamMetadata *block); + +/* \} */ + + +/** \defgroup flac_metadata_object FLAC/metadata.h: metadata object methods + * \ingroup flac_metadata + * + * \brief + * This module contains methods for manipulating FLAC metadata objects. + * + * Since many are variable length we have to be careful about the memory + * management. We decree that all pointers to data in the object are + * owned by the object and memory-managed by the object. + * + * Use the FLAC__metadata_object_new() and FLAC__metadata_object_delete() + * functions to create all instances. When using the + * FLAC__metadata_object_set_*() functions to set pointers to data, set + * \a copy to \c true to have the function make it's own copy of the data, or + * to \c false to give the object ownership of your data. In the latter case + * your pointer must be freeable by free() and will be free()d when the object + * is FLAC__metadata_object_delete()d. It is legal to pass a null pointer as + * the data pointer to a FLAC__metadata_object_set_*() function as long as + * the length argument is 0 and the \a copy argument is \c false. + * + * The FLAC__metadata_object_new() and FLAC__metadata_object_clone() function + * will return \c NULL in the case of a memory allocation error, otherwise a new + * object. The FLAC__metadata_object_set_*() functions return \c false in the + * case of a memory allocation error. + * + * We don't have the convenience of C++ here, so note that the library relies + * on you to keep the types straight. In other words, if you pass, for + * example, a FLAC__StreamMetadata* that represents a STREAMINFO block to + * FLAC__metadata_object_application_set_data(), you will get an assertion + * failure. + * + * For convenience the FLAC__metadata_object_vorbiscomment_*() functions + * maintain a trailing NUL on each Vorbis comment entry. This is not counted + * toward the length or stored in the stream, but it can make working with plain + * comments (those that don't contain embedded-NULs in the value) easier. + * Entries passed into these functions have trailing NULs added if missing, and + * returned entries are guaranteed to have a trailing NUL. + * + * The FLAC__metadata_object_vorbiscomment_*() functions that take a Vorbis + * comment entry/name/value will first validate that it complies with the Vorbis + * comment specification and return false if it does not. + * + * There is no need to recalculate the length field on metadata blocks you + * have modified. They will be calculated automatically before they are + * written back to a file. + * + * \{ + */ + + +/** Create a new metadata object instance of the given type. + * + * The object will be "empty"; i.e. values and data pointers will be \c 0, + * with the exception of FLAC__METADATA_TYPE_VORBIS_COMMENT, which will have + * the vendor string set (but zero comments). + * + * Do not pass in a value greater than or equal to + * \a FLAC__METADATA_TYPE_UNDEFINED unless you really know what you're + * doing. + * + * \param type Type of object to create + * \retval FLAC__StreamMetadata* + * \c NULL if there was an error allocating memory or the type code is + * greater than FLAC__MAX_METADATA_TYPE_CODE, else the new instance. + */ +FLAC_API FLAC__StreamMetadata *FLAC__metadata_object_new(FLAC__MetadataType type); + +/** Create a copy of an existing metadata object. + * + * The copy is a "deep" copy, i.e. dynamically allocated data within the + * object is also copied. The caller takes ownership of the new block and + * is responsible for freeing it with FLAC__metadata_object_delete(). + * + * \param object Pointer to object to copy. + * \assert + * \code object != NULL \endcode + * \retval FLAC__StreamMetadata* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__StreamMetadata *FLAC__metadata_object_clone(const FLAC__StreamMetadata *object); + +/** Free a metadata object. Deletes the object pointed to by \a object. + * + * The delete is a "deep" delete, i.e. dynamically allocated data within the + * object is also deleted. + * + * \param object A pointer to an existing object. + * \assert + * \code object != NULL \endcode + */ +FLAC_API void FLAC__metadata_object_delete(FLAC__StreamMetadata *object); + +/** Compares two metadata objects. + * + * The compare is "deep", i.e. dynamically allocated data within the + * object is also compared. + * + * \param block1 A pointer to an existing object. + * \param block2 A pointer to an existing object. + * \assert + * \code block1 != NULL \endcode + * \code block2 != NULL \endcode + * \retval FLAC__bool + * \c true if objects are identical, else \c false. + */ +FLAC_API FLAC__bool FLAC__metadata_object_is_equal(const FLAC__StreamMetadata *block1, const FLAC__StreamMetadata *block2); + +/** Sets the application data of an APPLICATION block. + * + * If \a copy is \c true, a copy of the data is stored; otherwise, the object + * takes ownership of the pointer. The existing data will be freed if this + * function is successful, otherwise the original data will remain if \a copy + * is \c true and malloc() fails. + * + * \note It is safe to pass a const pointer to \a data if \a copy is \c true. + * + * \param object A pointer to an existing APPLICATION object. + * \param data A pointer to the data to set. + * \param length The length of \a data in bytes. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_APPLICATION \endcode + * \code (data != NULL && length > 0) || + * (data == NULL && length == 0 && copy == false) \endcode + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_application_set_data(FLAC__StreamMetadata *object, FLAC__byte *data, unsigned length, FLAC__bool copy); + +/** Resize the seekpoint array. + * + * If the size shrinks, elements will truncated; if it grows, new placeholder + * points will be added to the end. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param new_num_points The desired length of the array; may be \c 0. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \code (object->data.seek_table.points == NULL && object->data.seek_table.num_points == 0) || + * (object->data.seek_table.points != NULL && object->data.seek_table.num_points > 0) \endcode + * \retval FLAC__bool + * \c false if memory allocation error, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_resize_points(FLAC__StreamMetadata *object, unsigned new_num_points); + +/** Set a seekpoint in a seektable. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param point_num Index into seekpoint array to set. + * \param point The point to set. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \code object->data.seek_table.num_points > point_num \endcode + */ +FLAC_API void FLAC__metadata_object_seektable_set_point(FLAC__StreamMetadata *object, unsigned point_num, FLAC__StreamMetadata_SeekPoint point); + +/** Insert a seekpoint into a seektable. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param point_num Index into seekpoint array to set. + * \param point The point to set. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \code object->data.seek_table.num_points >= point_num \endcode + * \retval FLAC__bool + * \c false if memory allocation error, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_insert_point(FLAC__StreamMetadata *object, unsigned point_num, FLAC__StreamMetadata_SeekPoint point); + +/** Delete a seekpoint from a seektable. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param point_num Index into seekpoint array to set. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \code object->data.seek_table.num_points > point_num \endcode + * \retval FLAC__bool + * \c false if memory allocation error, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_delete_point(FLAC__StreamMetadata *object, unsigned point_num); + +/** Check a seektable to see if it conforms to the FLAC specification. + * See the format specification for limits on the contents of the + * seektable. + * + * \param object A pointer to an existing SEEKTABLE object. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \retval FLAC__bool + * \c false if seek table is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_is_legal(const FLAC__StreamMetadata *object); + +/** Append a number of placeholder points to the end of a seek table. + * + * \note + * As with the other ..._seektable_template_... functions, you should + * call FLAC__metadata_object_seektable_template_sort() when finished + * to make the seek table legal. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param num The number of placeholder points to append. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \retval FLAC__bool + * \c false if memory allocation fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_placeholders(FLAC__StreamMetadata *object, unsigned num); + +/** Append a specific seek point template to the end of a seek table. + * + * \note + * As with the other ..._seektable_template_... functions, you should + * call FLAC__metadata_object_seektable_template_sort() when finished + * to make the seek table legal. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param sample_number The sample number of the seek point template. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \retval FLAC__bool + * \c false if memory allocation fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_point(FLAC__StreamMetadata *object, FLAC__uint64 sample_number); + +/** Append specific seek point templates to the end of a seek table. + * + * \note + * As with the other ..._seektable_template_... functions, you should + * call FLAC__metadata_object_seektable_template_sort() when finished + * to make the seek table legal. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param sample_numbers An array of sample numbers for the seek points. + * \param num The number of seek point templates to append. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \retval FLAC__bool + * \c false if memory allocation fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_points(FLAC__StreamMetadata *object, FLAC__uint64 sample_numbers[], unsigned num); + +/** Append a set of evenly-spaced seek point templates to the end of a + * seek table. + * + * \note + * As with the other ..._seektable_template_... functions, you should + * call FLAC__metadata_object_seektable_template_sort() when finished + * to make the seek table legal. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param num The number of placeholder points to append. + * \param total_samples The total number of samples to be encoded; + * the seekpoints will be spaced approximately + * \a total_samples / \a num samples apart. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \code total_samples > 0 \endcode + * \retval FLAC__bool + * \c false if memory allocation fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_spaced_points(FLAC__StreamMetadata *object, unsigned num, FLAC__uint64 total_samples); + +/** Append a set of evenly-spaced seek point templates to the end of a + * seek table. + * + * \note + * As with the other ..._seektable_template_... functions, you should + * call FLAC__metadata_object_seektable_template_sort() when finished + * to make the seek table legal. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param samples The number of samples apart to space the placeholder + * points. The first point will be at sample \c 0, the + * second at sample \a samples, then 2*\a samples, and + * so on. As long as \a samples and \a total_samples + * are greater than \c 0, there will always be at least + * one seekpoint at sample \c 0. + * \param total_samples The total number of samples to be encoded; + * the seekpoints will be spaced + * \a samples samples apart. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \code samples > 0 \endcode + * \code total_samples > 0 \endcode + * \retval FLAC__bool + * \c false if memory allocation fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_spaced_points_by_samples(FLAC__StreamMetadata *object, unsigned samples, FLAC__uint64 total_samples); + +/** Sort a seek table's seek points according to the format specification, + * removing duplicates. + * + * \param object A pointer to a seek table to be sorted. + * \param compact If \c false, behaves like FLAC__format_seektable_sort(). + * If \c true, duplicates are deleted and the seek table is + * shrunk appropriately; the number of placeholder points + * present in the seek table will be the same after the call + * as before. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \retval FLAC__bool + * \c false if realloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_sort(FLAC__StreamMetadata *object, FLAC__bool compact); + +/** Sets the vendor string in a VORBIS_COMMENT block. + * + * For convenience, a trailing NUL is added to the entry if it doesn't have + * one already. + * + * If \a copy is \c true, a copy of the entry is stored; otherwise, the object + * takes ownership of the \c entry.entry pointer. + * + * \note If this function returns \c false, the caller still owns the + * pointer. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param entry The entry to set the vendor string to. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code (entry.entry != NULL && entry.length > 0) || + * (entry.entry == NULL && entry.length == 0) \endcode + * \retval FLAC__bool + * \c false if memory allocation fails or \a entry does not comply with the + * Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_set_vendor_string(FLAC__StreamMetadata *object, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool copy); + +/** Resize the comment array. + * + * If the size shrinks, elements will truncated; if it grows, new empty + * fields will be added to the end. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param new_num_comments The desired length of the array; may be \c 0. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code (object->data.vorbis_comment.comments == NULL && object->data.vorbis_comment.num_comments == 0) || + * (object->data.vorbis_comment.comments != NULL && object->data.vorbis_comment.num_comments > 0) \endcode + * \retval FLAC__bool + * \c false if memory allocation fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_resize_comments(FLAC__StreamMetadata *object, unsigned new_num_comments); + +/** Sets a comment in a VORBIS_COMMENT block. + * + * For convenience, a trailing NUL is added to the entry if it doesn't have + * one already. + * + * If \a copy is \c true, a copy of the entry is stored; otherwise, the object + * takes ownership of the \c entry.entry pointer. + * + * \note If this function returns \c false, the caller still owns the + * pointer. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param comment_num Index into comment array to set. + * \param entry The entry to set the comment to. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code comment_num < object->data.vorbis_comment.num_comments \endcode + * \code (entry.entry != NULL && entry.length > 0) || + * (entry.entry == NULL && entry.length == 0) \endcode + * \retval FLAC__bool + * \c false if memory allocation fails or \a entry does not comply with the + * Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_set_comment(FLAC__StreamMetadata *object, unsigned comment_num, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool copy); + +/** Insert a comment in a VORBIS_COMMENT block at the given index. + * + * For convenience, a trailing NUL is added to the entry if it doesn't have + * one already. + * + * If \a copy is \c true, a copy of the entry is stored; otherwise, the object + * takes ownership of the \c entry.entry pointer. + * + * \note If this function returns \c false, the caller still owns the + * pointer. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param comment_num The index at which to insert the comment. The comments + * at and after \a comment_num move right one position. + * To append a comment to the end, set \a comment_num to + * \c object->data.vorbis_comment.num_comments . + * \param entry The comment to insert. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code object->data.vorbis_comment.num_comments >= comment_num \endcode + * \code (entry.entry != NULL && entry.length > 0) || + * (entry.entry == NULL && entry.length == 0 && copy == false) \endcode + * \retval FLAC__bool + * \c false if memory allocation fails or \a entry does not comply with the + * Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_insert_comment(FLAC__StreamMetadata *object, unsigned comment_num, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool copy); + +/** Appends a comment to a VORBIS_COMMENT block. + * + * For convenience, a trailing NUL is added to the entry if it doesn't have + * one already. + * + * If \a copy is \c true, a copy of the entry is stored; otherwise, the object + * takes ownership of the \c entry.entry pointer. + * + * \note If this function returns \c false, the caller still owns the + * pointer. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param entry The comment to insert. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code (entry.entry != NULL && entry.length > 0) || + * (entry.entry == NULL && entry.length == 0 && copy == false) \endcode + * \retval FLAC__bool + * \c false if memory allocation fails or \a entry does not comply with the + * Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_append_comment(FLAC__StreamMetadata *object, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool copy); + +/** Replaces comments in a VORBIS_COMMENT block with a new one. + * + * For convenience, a trailing NUL is added to the entry if it doesn't have + * one already. + * + * Depending on the the value of \a all, either all or just the first comment + * whose field name(s) match the given entry's name will be replaced by the + * given entry. If no comments match, \a entry will simply be appended. + * + * If \a copy is \c true, a copy of the entry is stored; otherwise, the object + * takes ownership of the \c entry.entry pointer. + * + * \note If this function returns \c false, the caller still owns the + * pointer. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param entry The comment to insert. + * \param all If \c true, all comments whose field name matches + * \a entry's field name will be removed, and \a entry will + * be inserted at the position of the first matching + * comment. If \c false, only the first comment whose + * field name matches \a entry's field name will be + * replaced with \a entry. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code (entry.entry != NULL && entry.length > 0) || + * (entry.entry == NULL && entry.length == 0 && copy == false) \endcode + * \retval FLAC__bool + * \c false if memory allocation fails or \a entry does not comply with the + * Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_replace_comment(FLAC__StreamMetadata *object, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool all, FLAC__bool copy); + +/** Delete a comment in a VORBIS_COMMENT block at the given index. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param comment_num The index of the comment to delete. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code object->data.vorbis_comment.num_comments > comment_num \endcode + * \retval FLAC__bool + * \c false if realloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_delete_comment(FLAC__StreamMetadata *object, unsigned comment_num); + +/** Creates a Vorbis comment entry from NUL-terminated name and value strings. + * + * On return, the filled-in \a entry->entry pointer will point to malloc()ed + * memory and shall be owned by the caller. For convenience the entry will + * have a terminating NUL. + * + * \param entry A pointer to a Vorbis comment entry. The entry's + * \c entry pointer should not point to allocated + * memory as it will be overwritten. + * \param field_name The field name in ASCII, \c NUL terminated. + * \param field_value The field value in UTF-8, \c NUL terminated. + * \assert + * \code entry != NULL \endcode + * \code field_name != NULL \endcode + * \code field_value != NULL \endcode + * \retval FLAC__bool + * \c false if malloc() fails, or if \a field_name or \a field_value does + * not comply with the Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_entry_from_name_value_pair(FLAC__StreamMetadata_VorbisComment_Entry *entry, const char *field_name, const char *field_value); + +/** Splits a Vorbis comment entry into NUL-terminated name and value strings. + * + * The returned pointers to name and value will be allocated by malloc() + * and shall be owned by the caller. + * + * \param entry An existing Vorbis comment entry. + * \param field_name The address of where the returned pointer to the + * field name will be stored. + * \param field_value The address of where the returned pointer to the + * field value will be stored. + * \assert + * \code (entry.entry != NULL && entry.length > 0) \endcode + * \code memchr(entry.entry, '=', entry.length) != NULL \endcode + * \code field_name != NULL \endcode + * \code field_value != NULL \endcode + * \retval FLAC__bool + * \c false if memory allocation fails or \a entry does not comply with the + * Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_entry_to_name_value_pair(const FLAC__StreamMetadata_VorbisComment_Entry entry, char **field_name, char **field_value); + +/** Check if the given Vorbis comment entry's field name matches the given + * field name. + * + * \param entry An existing Vorbis comment entry. + * \param field_name The field name to check. + * \param field_name_length The length of \a field_name, not including the + * terminating \c NUL. + * \assert + * \code (entry.entry != NULL && entry.length > 0) \endcode + * \retval FLAC__bool + * \c true if the field names match, else \c false + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_entry_matches(const FLAC__StreamMetadata_VorbisComment_Entry entry, const char *field_name, unsigned field_name_length); + +/** Find a Vorbis comment with the given field name. + * + * The search begins at entry number \a offset; use an offset of 0 to + * search from the beginning of the comment array. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param offset The offset into the comment array from where to start + * the search. + * \param field_name The field name of the comment to find. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code field_name != NULL \endcode + * \retval int + * The offset in the comment array of the first comment whose field + * name matches \a field_name, or \c -1 if no match was found. + */ +FLAC_API int FLAC__metadata_object_vorbiscomment_find_entry_from(const FLAC__StreamMetadata *object, unsigned offset, const char *field_name); + +/** Remove first Vorbis comment matching the given field name. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param field_name The field name of comment to delete. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \retval int + * \c -1 for memory allocation error, \c 0 for no matching entries, + * \c 1 for one matching entry deleted. + */ +FLAC_API int FLAC__metadata_object_vorbiscomment_remove_entry_matching(FLAC__StreamMetadata *object, const char *field_name); + +/** Remove all Vorbis comments matching the given field name. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param field_name The field name of comments to delete. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \retval int + * \c -1 for memory allocation error, \c 0 for no matching entries, + * else the number of matching entries deleted. + */ +FLAC_API int FLAC__metadata_object_vorbiscomment_remove_entries_matching(FLAC__StreamMetadata *object, const char *field_name); + +/** Create a new CUESHEET track instance. + * + * The object will be "empty"; i.e. values and data pointers will be \c 0. + * + * \retval FLAC__StreamMetadata_CueSheet_Track* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__StreamMetadata_CueSheet_Track *FLAC__metadata_object_cuesheet_track_new(void); + +/** Create a copy of an existing CUESHEET track object. + * + * The copy is a "deep" copy, i.e. dynamically allocated data within the + * object is also copied. The caller takes ownership of the new object and + * is responsible for freeing it with + * FLAC__metadata_object_cuesheet_track_delete(). + * + * \param object Pointer to object to copy. + * \assert + * \code object != NULL \endcode + * \retval FLAC__StreamMetadata_CueSheet_Track* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__StreamMetadata_CueSheet_Track *FLAC__metadata_object_cuesheet_track_clone(const FLAC__StreamMetadata_CueSheet_Track *object); + +/** Delete a CUESHEET track object + * + * \param object A pointer to an existing CUESHEET track object. + * \assert + * \code object != NULL \endcode + */ +FLAC_API void FLAC__metadata_object_cuesheet_track_delete(FLAC__StreamMetadata_CueSheet_Track *object); + +/** Resize a track's index point array. + * + * If the size shrinks, elements will truncated; if it grows, new blank + * indices will be added to the end. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index of the track to modify. NOTE: this is not + * necessarily the same as the track's \a number field. + * \param new_num_indices The desired length of the array; may be \c 0. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks > track_num \endcode + * \code (object->data.cue_sheet.tracks[track_num].indices == NULL && object->data.cue_sheet.tracks[track_num].num_indices == 0) || + * (object->data.cue_sheet.tracks[track_num].indices != NULL && object->data.cue_sheet.tracks[track_num].num_indices > 0) \endcode + * \retval FLAC__bool + * \c false if memory allocation error, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_track_resize_indices(FLAC__StreamMetadata *object, unsigned track_num, unsigned new_num_indices); + +/** Insert an index point in a CUESHEET track at the given index. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index of the track to modify. NOTE: this is not + * necessarily the same as the track's \a number field. + * \param index_num The index into the track's index array at which to + * insert the index point. NOTE: this is not necessarily + * the same as the index point's \a number field. The + * indices at and after \a index_num move right one + * position. To append an index point to the end, set + * \a index_num to + * \c object->data.cue_sheet.tracks[track_num].num_indices . + * \param index The index point to insert. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks > track_num \endcode + * \code object->data.cue_sheet.tracks[track_num].num_indices >= index_num \endcode + * \retval FLAC__bool + * \c false if realloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_track_insert_index(FLAC__StreamMetadata *object, unsigned track_num, unsigned index_num, FLAC__StreamMetadata_CueSheet_Index index); + +/** Insert a blank index point in a CUESHEET track at the given index. + * + * A blank index point is one in which all field values are zero. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index of the track to modify. NOTE: this is not + * necessarily the same as the track's \a number field. + * \param index_num The index into the track's index array at which to + * insert the index point. NOTE: this is not necessarily + * the same as the index point's \a number field. The + * indices at and after \a index_num move right one + * position. To append an index point to the end, set + * \a index_num to + * \c object->data.cue_sheet.tracks[track_num].num_indices . + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks > track_num \endcode + * \code object->data.cue_sheet.tracks[track_num].num_indices >= index_num \endcode + * \retval FLAC__bool + * \c false if realloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_track_insert_blank_index(FLAC__StreamMetadata *object, unsigned track_num, unsigned index_num); + +/** Delete an index point in a CUESHEET track at the given index. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index into the track array of the track to + * modify. NOTE: this is not necessarily the same + * as the track's \a number field. + * \param index_num The index into the track's index array of the index + * to delete. NOTE: this is not necessarily the same + * as the index's \a number field. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks > track_num \endcode + * \code object->data.cue_sheet.tracks[track_num].num_indices > index_num \endcode + * \retval FLAC__bool + * \c false if realloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_track_delete_index(FLAC__StreamMetadata *object, unsigned track_num, unsigned index_num); + +/** Resize the track array. + * + * If the size shrinks, elements will truncated; if it grows, new blank + * tracks will be added to the end. + * + * \param object A pointer to an existing CUESHEET object. + * \param new_num_tracks The desired length of the array; may be \c 0. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code (object->data.cue_sheet.tracks == NULL && object->data.cue_sheet.num_tracks == 0) || + * (object->data.cue_sheet.tracks != NULL && object->data.cue_sheet.num_tracks > 0) \endcode + * \retval FLAC__bool + * \c false if memory allocation error, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_resize_tracks(FLAC__StreamMetadata *object, unsigned new_num_tracks); + +/** Sets a track in a CUESHEET block. + * + * If \a copy is \c true, a copy of the track is stored; otherwise, the object + * takes ownership of the \a track pointer. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num Index into track array to set. NOTE: this is not + * necessarily the same as the track's \a number field. + * \param track The track to set the track to. You may safely pass in + * a const pointer if \a copy is \c true. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code track_num < object->data.cue_sheet.num_tracks \endcode + * \code (track->indices != NULL && track->num_indices > 0) || + * (track->indices == NULL && track->num_indices == 0) + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_set_track(FLAC__StreamMetadata *object, unsigned track_num, FLAC__StreamMetadata_CueSheet_Track *track, FLAC__bool copy); + +/** Insert a track in a CUESHEET block at the given index. + * + * If \a copy is \c true, a copy of the track is stored; otherwise, the object + * takes ownership of the \a track pointer. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index at which to insert the track. NOTE: this + * is not necessarily the same as the track's \a number + * field. The tracks at and after \a track_num move right + * one position. To append a track to the end, set + * \a track_num to \c object->data.cue_sheet.num_tracks . + * \param track The track to insert. You may safely pass in a const + * pointer if \a copy is \c true. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks >= track_num \endcode + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_insert_track(FLAC__StreamMetadata *object, unsigned track_num, FLAC__StreamMetadata_CueSheet_Track *track, FLAC__bool copy); + +/** Insert a blank track in a CUESHEET block at the given index. + * + * A blank track is one in which all field values are zero. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index at which to insert the track. NOTE: this + * is not necessarily the same as the track's \a number + * field. The tracks at and after \a track_num move right + * one position. To append a track to the end, set + * \a track_num to \c object->data.cue_sheet.num_tracks . + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks >= track_num \endcode + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_insert_blank_track(FLAC__StreamMetadata *object, unsigned track_num); + +/** Delete a track in a CUESHEET block at the given index. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index into the track array of the track to + * delete. NOTE: this is not necessarily the same + * as the track's \a number field. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks > track_num \endcode + * \retval FLAC__bool + * \c false if realloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_delete_track(FLAC__StreamMetadata *object, unsigned track_num); + +/** Check a cue sheet to see if it conforms to the FLAC specification. + * See the format specification for limits on the contents of the + * cue sheet. + * + * \param object A pointer to an existing CUESHEET object. + * \param check_cd_da_subset If \c true, check CUESHEET against more + * stringent requirements for a CD-DA (audio) disc. + * \param violation Address of a pointer to a string. If there is a + * violation, a pointer to a string explanation of the + * violation will be returned here. \a violation may be + * \c NULL if you don't need the returned string. Do not + * free the returned string; it will always point to static + * data. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \retval FLAC__bool + * \c false if cue sheet is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_is_legal(const FLAC__StreamMetadata *object, FLAC__bool check_cd_da_subset, const char **violation); + +/** Calculate and return the CDDB/freedb ID for a cue sheet. The function + * assumes the cue sheet corresponds to a CD; the result is undefined + * if the cuesheet's is_cd bit is not set. + * + * \param object A pointer to an existing CUESHEET object. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \retval FLAC__uint32 + * The unsigned integer representation of the CDDB/freedb ID + */ +FLAC_API FLAC__uint32 FLAC__metadata_object_cuesheet_calculate_cddb_id(const FLAC__StreamMetadata *object); + +/** Sets the MIME type of a PICTURE block. + * + * If \a copy is \c true, a copy of the string is stored; otherwise, the object + * takes ownership of the pointer. The existing string will be freed if this + * function is successful, otherwise the original string will remain if \a copy + * is \c true and malloc() fails. + * + * \note It is safe to pass a const pointer to \a mime_type if \a copy is \c true. + * + * \param object A pointer to an existing PICTURE object. + * \param mime_type A pointer to the MIME type string. The string must be + * ASCII characters 0x20-0x7e, NUL-terminated. No validation + * is done. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_PICTURE \endcode + * \code (mime_type != NULL) \endcode + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_picture_set_mime_type(FLAC__StreamMetadata *object, char *mime_type, FLAC__bool copy); + +/** Sets the description of a PICTURE block. + * + * If \a copy is \c true, a copy of the string is stored; otherwise, the object + * takes ownership of the pointer. The existing string will be freed if this + * function is successful, otherwise the original string will remain if \a copy + * is \c true and malloc() fails. + * + * \note It is safe to pass a const pointer to \a description if \a copy is \c true. + * + * \param object A pointer to an existing PICTURE object. + * \param description A pointer to the description string. The string must be + * valid UTF-8, NUL-terminated. No validation is done. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_PICTURE \endcode + * \code (description != NULL) \endcode + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_picture_set_description(FLAC__StreamMetadata *object, FLAC__byte *description, FLAC__bool copy); + +/** Sets the picture data of a PICTURE block. + * + * If \a copy is \c true, a copy of the data is stored; otherwise, the object + * takes ownership of the pointer. Also sets the \a data_length field of the + * metadata object to what is passed in as the \a length parameter. The + * existing data will be freed if this function is successful, otherwise the + * original data and data_length will remain if \a copy is \c true and + * malloc() fails. + * + * \note It is safe to pass a const pointer to \a data if \a copy is \c true. + * + * \param object A pointer to an existing PICTURE object. + * \param data A pointer to the data to set. + * \param length The length of \a data in bytes. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_PICTURE \endcode + * \code (data != NULL && length > 0) || + * (data == NULL && length == 0 && copy == false) \endcode + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_picture_set_data(FLAC__StreamMetadata *object, FLAC__byte *data, FLAC__uint32 length, FLAC__bool copy); + +/** Check a PICTURE block to see if it conforms to the FLAC specification. + * See the format specification for limits on the contents of the + * PICTURE block. + * + * \param object A pointer to existing PICTURE block to be checked. + * \param violation Address of a pointer to a string. If there is a + * violation, a pointer to a string explanation of the + * violation will be returned here. \a violation may be + * \c NULL if you don't need the returned string. Do not + * free the returned string; it will always point to static + * data. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_PICTURE \endcode + * \retval FLAC__bool + * \c false if PICTURE block is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_picture_is_legal(const FLAC__StreamMetadata *object, const char **violation); + +/* \} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/ordinals.h b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/ordinals.h new file mode 100644 index 0000000..a7a5cd9 --- /dev/null +++ b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/ordinals.h @@ -0,0 +1,80 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__ORDINALS_H +#define FLAC__ORDINALS_H + +#if !(defined(_MSC_VER) || defined(__BORLANDC__) || defined(__EMX__)) +#include +#endif + +typedef signed char FLAC__int8; +typedef unsigned char FLAC__uint8; + +#if defined(_MSC_VER) || defined(__BORLANDC__) +typedef __int16 FLAC__int16; +typedef __int32 FLAC__int32; +typedef __int64 FLAC__int64; +typedef unsigned __int16 FLAC__uint16; +typedef unsigned __int32 FLAC__uint32; +typedef unsigned __int64 FLAC__uint64; +#elif defined(__EMX__) +typedef short FLAC__int16; +typedef long FLAC__int32; +typedef long long FLAC__int64; +typedef unsigned short FLAC__uint16; +typedef unsigned long FLAC__uint32; +typedef unsigned long long FLAC__uint64; +#else +typedef int16_t FLAC__int16; +typedef int32_t FLAC__int32; +typedef int64_t FLAC__int64; +typedef uint16_t FLAC__uint16; +typedef uint32_t FLAC__uint32; +typedef uint64_t FLAC__uint64; +#endif + +typedef int FLAC__bool; + +typedef FLAC__uint8 FLAC__byte; + +#ifdef true +#undef true +#endif +#ifdef false +#undef false +#endif +#ifndef __cplusplus +#define true 1 +#define false 0 +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/stream_decoder.h b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/stream_decoder.h new file mode 100644 index 0000000..9ac1594 --- /dev/null +++ b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/stream_decoder.h @@ -0,0 +1,1559 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__STREAM_DECODER_H +#define FLAC__STREAM_DECODER_H + +#include /* for FILE */ +#include "export.h" +#include "format.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +/** \file include/FLAC/stream_decoder.h + * + * \brief + * This module contains the functions which implement the stream + * decoder. + * + * See the detailed documentation in the + * \link flac_stream_decoder stream decoder \endlink module. + */ + +/** \defgroup flac_decoder FLAC/ \*_decoder.h: decoder interfaces + * \ingroup flac + * + * \brief + * This module describes the decoder layers provided by libFLAC. + * + * The stream decoder can be used to decode complete streams either from + * the client via callbacks, or directly from a file, depending on how + * it is initialized. When decoding via callbacks, the client provides + * callbacks for reading FLAC data and writing decoded samples, and + * handling metadata and errors. If the client also supplies seek-related + * callback, the decoder function for sample-accurate seeking within the + * FLAC input is also available. When decoding from a file, the client + * needs only supply a filename or open \c FILE* and write/metadata/error + * callbacks; the rest of the callbacks are supplied internally. For more + * info see the \link flac_stream_decoder stream decoder \endlink module. + */ + +/** \defgroup flac_stream_decoder FLAC/stream_decoder.h: stream decoder interface + * \ingroup flac_decoder + * + * \brief + * This module contains the functions which implement the stream + * decoder. + * + * The stream decoder can decode native FLAC, and optionally Ogg FLAC + * (check FLAC_API_SUPPORTS_OGG_FLAC) streams and files. + * + * The basic usage of this decoder is as follows: + * - The program creates an instance of a decoder using + * FLAC__stream_decoder_new(). + * - The program overrides the default settings using + * FLAC__stream_decoder_set_*() functions. + * - The program initializes the instance to validate the settings and + * prepare for decoding using + * - FLAC__stream_decoder_init_stream() or FLAC__stream_decoder_init_FILE() + * or FLAC__stream_decoder_init_file() for native FLAC, + * - FLAC__stream_decoder_init_ogg_stream() or FLAC__stream_decoder_init_ogg_FILE() + * or FLAC__stream_decoder_init_ogg_file() for Ogg FLAC + * - The program calls the FLAC__stream_decoder_process_*() functions + * to decode data, which subsequently calls the callbacks. + * - The program finishes the decoding with FLAC__stream_decoder_finish(), + * which flushes the input and output and resets the decoder to the + * uninitialized state. + * - The instance may be used again or deleted with + * FLAC__stream_decoder_delete(). + * + * In more detail, the program will create a new instance by calling + * FLAC__stream_decoder_new(), then call FLAC__stream_decoder_set_*() + * functions to override the default decoder options, and call + * one of the FLAC__stream_decoder_init_*() functions. + * + * There are three initialization functions for native FLAC, one for + * setting up the decoder to decode FLAC data from the client via + * callbacks, and two for decoding directly from a FLAC file. + * + * For decoding via callbacks, use FLAC__stream_decoder_init_stream(). + * You must also supply several callbacks for handling I/O. Some (like + * seeking) are optional, depending on the capabilities of the input. + * + * For decoding directly from a file, use FLAC__stream_decoder_init_FILE() + * or FLAC__stream_decoder_init_file(). Then you must only supply an open + * \c FILE* or filename and fewer callbacks; the decoder will handle + * the other callbacks internally. + * + * There are three similarly-named init functions for decoding from Ogg + * FLAC streams. Check \c FLAC_API_SUPPORTS_OGG_FLAC to find out if the + * library has been built with Ogg support. + * + * Once the decoder is initialized, your program will call one of several + * functions to start the decoding process: + * + * - FLAC__stream_decoder_process_single() - Tells the decoder to process at + * most one metadata block or audio frame and return, calling either the + * metadata callback or write callback, respectively, once. If the decoder + * loses sync it will return with only the error callback being called. + * - FLAC__stream_decoder_process_until_end_of_metadata() - Tells the decoder + * to process the stream from the current location and stop upon reaching + * the first audio frame. The client will get one metadata, write, or error + * callback per metadata block, audio frame, or sync error, respectively. + * - FLAC__stream_decoder_process_until_end_of_stream() - Tells the decoder + * to process the stream from the current location until the read callback + * returns FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM or + * FLAC__STREAM_DECODER_READ_STATUS_ABORT. The client will get one metadata, + * write, or error callback per metadata block, audio frame, or sync error, + * respectively. + * + * When the decoder has finished decoding (normally or through an abort), + * the instance is finished by calling FLAC__stream_decoder_finish(), which + * ensures the decoder is in the correct state and frees memory. Then the + * instance may be deleted with FLAC__stream_decoder_delete() or initialized + * again to decode another stream. + * + * Seeking is exposed through the FLAC__stream_decoder_seek_absolute() method. + * At any point after the stream decoder has been initialized, the client can + * call this function to seek to an exact sample within the stream. + * Subsequently, the first time the write callback is called it will be + * passed a (possibly partial) block starting at that sample. + * + * If the client cannot seek via the callback interface provided, but still + * has another way of seeking, it can flush the decoder using + * FLAC__stream_decoder_flush() and start feeding data from the new position + * through the read callback. + * + * The stream decoder also provides MD5 signature checking. If this is + * turned on before initialization, FLAC__stream_decoder_finish() will + * report when the decoded MD5 signature does not match the one stored + * in the STREAMINFO block. MD5 checking is automatically turned off + * (until the next FLAC__stream_decoder_reset()) if there is no signature + * in the STREAMINFO block or when a seek is attempted. + * + * The FLAC__stream_decoder_set_metadata_*() functions deserve special + * attention. By default, the decoder only calls the metadata_callback for + * the STREAMINFO block. These functions allow you to tell the decoder + * explicitly which blocks to parse and return via the metadata_callback + * and/or which to skip. Use a FLAC__stream_decoder_set_metadata_respond_all(), + * FLAC__stream_decoder_set_metadata_ignore() ... or FLAC__stream_decoder_set_metadata_ignore_all(), + * FLAC__stream_decoder_set_metadata_respond() ... sequence to exactly specify + * which blocks to return. Remember that metadata blocks can potentially + * be big (for example, cover art) so filtering out the ones you don't + * use can reduce the memory requirements of the decoder. Also note the + * special forms FLAC__stream_decoder_set_metadata_respond_application(id) + * and FLAC__stream_decoder_set_metadata_ignore_application(id) for + * filtering APPLICATION blocks based on the application ID. + * + * STREAMINFO and SEEKTABLE blocks are always parsed and used internally, but + * they still can legally be filtered from the metadata_callback. + * + * \note + * The "set" functions may only be called when the decoder is in the + * state FLAC__STREAM_DECODER_UNINITIALIZED, i.e. after + * FLAC__stream_decoder_new() or FLAC__stream_decoder_finish(), but + * before FLAC__stream_decoder_init_*(). If this is the case they will + * return \c true, otherwise \c false. + * + * \note + * FLAC__stream_decoder_finish() resets all settings to the constructor + * defaults, including the callbacks. + * + * \{ + */ + + +/** State values for a FLAC__StreamDecoder + * + * The decoder's state can be obtained by calling FLAC__stream_decoder_get_state(). + */ +typedef enum { + + FLAC__STREAM_DECODER_SEARCH_FOR_METADATA = 0, + /**< The decoder is ready to search for metadata. */ + + FLAC__STREAM_DECODER_READ_METADATA, + /**< The decoder is ready to or is in the process of reading metadata. */ + + FLAC__STREAM_DECODER_SEARCH_FOR_FRAME_SYNC, + /**< The decoder is ready to or is in the process of searching for the + * frame sync code. + */ + + FLAC__STREAM_DECODER_READ_FRAME, + /**< The decoder is ready to or is in the process of reading a frame. */ + + FLAC__STREAM_DECODER_END_OF_STREAM, + /**< The decoder has reached the end of the stream. */ + + FLAC__STREAM_DECODER_OGG_ERROR, + /**< An error occurred in the underlying Ogg layer. */ + + FLAC__STREAM_DECODER_SEEK_ERROR, + /**< An error occurred while seeking. The decoder must be flushed + * with FLAC__stream_decoder_flush() or reset with + * FLAC__stream_decoder_reset() before decoding can continue. + */ + + FLAC__STREAM_DECODER_ABORTED, + /**< The decoder was aborted by the read callback. */ + + FLAC__STREAM_DECODER_MEMORY_ALLOCATION_ERROR, + /**< An error occurred allocating memory. The decoder is in an invalid + * state and can no longer be used. + */ + + FLAC__STREAM_DECODER_UNINITIALIZED + /**< The decoder is in the uninitialized state; one of the + * FLAC__stream_decoder_init_*() functions must be called before samples + * can be processed. + */ + +} FLAC__StreamDecoderState; + +/** Maps a FLAC__StreamDecoderState to a C string. + * + * Using a FLAC__StreamDecoderState as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderStateString[]; + + +/** Possible return values for the FLAC__stream_decoder_init_*() functions. + */ +typedef enum { + + FLAC__STREAM_DECODER_INIT_STATUS_OK = 0, + /**< Initialization was successful. */ + + FLAC__STREAM_DECODER_INIT_STATUS_UNSUPPORTED_CONTAINER, + /**< The library was not compiled with support for the given container + * format. + */ + + FLAC__STREAM_DECODER_INIT_STATUS_INVALID_CALLBACKS, + /**< A required callback was not supplied. */ + + FLAC__STREAM_DECODER_INIT_STATUS_MEMORY_ALLOCATION_ERROR, + /**< An error occurred allocating memory. */ + + FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE, + /**< fopen() failed in FLAC__stream_decoder_init_file() or + * FLAC__stream_decoder_init_ogg_file(). */ + + FLAC__STREAM_DECODER_INIT_STATUS_ALREADY_INITIALIZED + /**< FLAC__stream_decoder_init_*() was called when the decoder was + * already initialized, usually because + * FLAC__stream_decoder_finish() was not called. + */ + +} FLAC__StreamDecoderInitStatus; + +/** Maps a FLAC__StreamDecoderInitStatus to a C string. + * + * Using a FLAC__StreamDecoderInitStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderInitStatusString[]; + + +/** Return values for the FLAC__StreamDecoder read callback. + */ +typedef enum { + + FLAC__STREAM_DECODER_READ_STATUS_CONTINUE, + /**< The read was OK and decoding can continue. */ + + FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM, + /**< The read was attempted while at the end of the stream. Note that + * the client must only return this value when the read callback was + * called when already at the end of the stream. Otherwise, if the read + * itself moves to the end of the stream, the client should still return + * the data and \c FLAC__STREAM_DECODER_READ_STATUS_CONTINUE, and then on + * the next read callback it should return + * \c FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM with a byte count + * of \c 0. + */ + + FLAC__STREAM_DECODER_READ_STATUS_ABORT + /**< An unrecoverable error occurred. The decoder will return from the process call. */ + +} FLAC__StreamDecoderReadStatus; + +/** Maps a FLAC__StreamDecoderReadStatus to a C string. + * + * Using a FLAC__StreamDecoderReadStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderReadStatusString[]; + + +/** Return values for the FLAC__StreamDecoder seek callback. + */ +typedef enum { + + FLAC__STREAM_DECODER_SEEK_STATUS_OK, + /**< The seek was OK and decoding can continue. */ + + FLAC__STREAM_DECODER_SEEK_STATUS_ERROR, + /**< An unrecoverable error occurred. The decoder will return from the process call. */ + + FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED + /**< Client does not support seeking. */ + +} FLAC__StreamDecoderSeekStatus; + +/** Maps a FLAC__StreamDecoderSeekStatus to a C string. + * + * Using a FLAC__StreamDecoderSeekStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderSeekStatusString[]; + + +/** Return values for the FLAC__StreamDecoder tell callback. + */ +typedef enum { + + FLAC__STREAM_DECODER_TELL_STATUS_OK, + /**< The tell was OK and decoding can continue. */ + + FLAC__STREAM_DECODER_TELL_STATUS_ERROR, + /**< An unrecoverable error occurred. The decoder will return from the process call. */ + + FLAC__STREAM_DECODER_TELL_STATUS_UNSUPPORTED + /**< Client does not support telling the position. */ + +} FLAC__StreamDecoderTellStatus; + +/** Maps a FLAC__StreamDecoderTellStatus to a C string. + * + * Using a FLAC__StreamDecoderTellStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderTellStatusString[]; + + +/** Return values for the FLAC__StreamDecoder length callback. + */ +typedef enum { + + FLAC__STREAM_DECODER_LENGTH_STATUS_OK, + /**< The length call was OK and decoding can continue. */ + + FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR, + /**< An unrecoverable error occurred. The decoder will return from the process call. */ + + FLAC__STREAM_DECODER_LENGTH_STATUS_UNSUPPORTED + /**< Client does not support reporting the length. */ + +} FLAC__StreamDecoderLengthStatus; + +/** Maps a FLAC__StreamDecoderLengthStatus to a C string. + * + * Using a FLAC__StreamDecoderLengthStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderLengthStatusString[]; + + +/** Return values for the FLAC__StreamDecoder write callback. + */ +typedef enum { + + FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE, + /**< The write was OK and decoding can continue. */ + + FLAC__STREAM_DECODER_WRITE_STATUS_ABORT + /**< An unrecoverable error occurred. The decoder will return from the process call. */ + +} FLAC__StreamDecoderWriteStatus; + +/** Maps a FLAC__StreamDecoderWriteStatus to a C string. + * + * Using a FLAC__StreamDecoderWriteStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderWriteStatusString[]; + + +/** Possible values passed back to the FLAC__StreamDecoder error callback. + * \c FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC is the generic catch- + * all. The rest could be caused by bad sync (false synchronization on + * data that is not the start of a frame) or corrupted data. The error + * itself is the decoder's best guess at what happened assuming a correct + * sync. For example \c FLAC__STREAM_DECODER_ERROR_STATUS_BAD_HEADER + * could be caused by a correct sync on the start of a frame, but some + * data in the frame header was corrupted. Or it could be the result of + * syncing on a point the stream that looked like the starting of a frame + * but was not. \c FLAC__STREAM_DECODER_ERROR_STATUS_UNPARSEABLE_STREAM + * could be because the decoder encountered a valid frame made by a future + * version of the encoder which it cannot parse, or because of a false + * sync making it appear as though an encountered frame was generated by + * a future encoder. + */ +typedef enum { + + FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC, + /**< An error in the stream caused the decoder to lose synchronization. */ + + FLAC__STREAM_DECODER_ERROR_STATUS_BAD_HEADER, + /**< The decoder encountered a corrupted frame header. */ + + FLAC__STREAM_DECODER_ERROR_STATUS_FRAME_CRC_MISMATCH, + /**< The frame's data did not match the CRC in the footer. */ + + FLAC__STREAM_DECODER_ERROR_STATUS_UNPARSEABLE_STREAM + /**< The decoder encountered reserved fields in use in the stream. */ + +} FLAC__StreamDecoderErrorStatus; + +/** Maps a FLAC__StreamDecoderErrorStatus to a C string. + * + * Using a FLAC__StreamDecoderErrorStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderErrorStatusString[]; + + +/*********************************************************************** + * + * class FLAC__StreamDecoder + * + ***********************************************************************/ + +struct FLAC__StreamDecoderProtected; +struct FLAC__StreamDecoderPrivate; +/** The opaque structure definition for the stream decoder type. + * See the \link flac_stream_decoder stream decoder module \endlink + * for a detailed description. + */ +typedef struct { + struct FLAC__StreamDecoderProtected *protected_; /* avoid the C++ keyword 'protected' */ + struct FLAC__StreamDecoderPrivate *private_; /* avoid the C++ keyword 'private' */ +} FLAC__StreamDecoder; + +/** Signature for the read callback. + * + * A function pointer matching this signature must be passed to + * FLAC__stream_decoder_init*_stream(). The supplied function will be + * called when the decoder needs more input data. The address of the + * buffer to be filled is supplied, along with the number of bytes the + * buffer can hold. The callback may choose to supply less data and + * modify the byte count but must be careful not to overflow the buffer. + * The callback then returns a status code chosen from + * FLAC__StreamDecoderReadStatus. + * + * Here is an example of a read callback for stdio streams: + * \code + * FLAC__StreamDecoderReadStatus read_cb(const FLAC__StreamDecoder *decoder, FLAC__byte buffer[], size_t *bytes, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * if(*bytes > 0) { + * *bytes = fread(buffer, sizeof(FLAC__byte), *bytes, file); + * if(ferror(file)) + * return FLAC__STREAM_DECODER_READ_STATUS_ABORT; + * else if(*bytes == 0) + * return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM; + * else + * return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE; + * } + * else + * return FLAC__STREAM_DECODER_READ_STATUS_ABORT; + * } + * \endcode + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param buffer A pointer to a location for the callee to store + * data to be decoded. + * \param bytes A pointer to the size of the buffer. On entry + * to the callback, it contains the maximum number + * of bytes that may be stored in \a buffer. The + * callee must set it to the actual number of bytes + * stored (0 in case of error or end-of-stream) before + * returning. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + * \retval FLAC__StreamDecoderReadStatus + * The callee's return status. Note that the callback should return + * \c FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM if and only if + * zero bytes were read and there is no more data to be read. + */ +typedef FLAC__StreamDecoderReadStatus (*FLAC__StreamDecoderReadCallback)(const FLAC__StreamDecoder *decoder, FLAC__byte buffer[], size_t *bytes, void *client_data); + +/** Signature for the seek callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_decoder_init*_stream(). The supplied function will be + * called when the decoder needs to seek the input stream. The decoder + * will pass the absolute byte offset to seek to, 0 meaning the + * beginning of the stream. + * + * Here is an example of a seek callback for stdio streams: + * \code + * FLAC__StreamDecoderSeekStatus seek_cb(const FLAC__StreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * if(file == stdin) + * return FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED; + * else if(fseeko(file, (off_t)absolute_byte_offset, SEEK_SET) < 0) + * return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR; + * else + * return FLAC__STREAM_DECODER_SEEK_STATUS_OK; + * } + * \endcode + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param absolute_byte_offset The offset from the beginning of the stream + * to seek to. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + * \retval FLAC__StreamDecoderSeekStatus + * The callee's return status. + */ +typedef FLAC__StreamDecoderSeekStatus (*FLAC__StreamDecoderSeekCallback)(const FLAC__StreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data); + +/** Signature for the tell callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_decoder_init*_stream(). The supplied function will be + * called when the decoder wants to know the current position of the + * stream. The callback should return the byte offset from the + * beginning of the stream. + * + * Here is an example of a tell callback for stdio streams: + * \code + * FLAC__StreamDecoderTellStatus tell_cb(const FLAC__StreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * off_t pos; + * if(file == stdin) + * return FLAC__STREAM_DECODER_TELL_STATUS_UNSUPPORTED; + * else if((pos = ftello(file)) < 0) + * return FLAC__STREAM_DECODER_TELL_STATUS_ERROR; + * else { + * *absolute_byte_offset = (FLAC__uint64)pos; + * return FLAC__STREAM_DECODER_TELL_STATUS_OK; + * } + * } + * \endcode + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param absolute_byte_offset A pointer to storage for the current offset + * from the beginning of the stream. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + * \retval FLAC__StreamDecoderTellStatus + * The callee's return status. + */ +typedef FLAC__StreamDecoderTellStatus (*FLAC__StreamDecoderTellCallback)(const FLAC__StreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data); + +/** Signature for the length callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_decoder_init*_stream(). The supplied function will be + * called when the decoder wants to know the total length of the stream + * in bytes. + * + * Here is an example of a length callback for stdio streams: + * \code + * FLAC__StreamDecoderLengthStatus length_cb(const FLAC__StreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * struct stat filestats; + * + * if(file == stdin) + * return FLAC__STREAM_DECODER_LENGTH_STATUS_UNSUPPORTED; + * else if(fstat(fileno(file), &filestats) != 0) + * return FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR; + * else { + * *stream_length = (FLAC__uint64)filestats.st_size; + * return FLAC__STREAM_DECODER_LENGTH_STATUS_OK; + * } + * } + * \endcode + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param stream_length A pointer to storage for the length of the stream + * in bytes. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + * \retval FLAC__StreamDecoderLengthStatus + * The callee's return status. + */ +typedef FLAC__StreamDecoderLengthStatus (*FLAC__StreamDecoderLengthCallback)(const FLAC__StreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data); + +/** Signature for the EOF callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_decoder_init*_stream(). The supplied function will be + * called when the decoder needs to know if the end of the stream has + * been reached. + * + * Here is an example of a EOF callback for stdio streams: + * FLAC__bool eof_cb(const FLAC__StreamDecoder *decoder, void *client_data) + * \code + * { + * FILE *file = ((MyClientData*)client_data)->file; + * return feof(file)? true : false; + * } + * \endcode + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + * \retval FLAC__bool + * \c true if the currently at the end of the stream, else \c false. + */ +typedef FLAC__bool (*FLAC__StreamDecoderEofCallback)(const FLAC__StreamDecoder *decoder, void *client_data); + +/** Signature for the write callback. + * + * A function pointer matching this signature must be passed to one of + * the FLAC__stream_decoder_init_*() functions. + * The supplied function will be called when the decoder has decoded a + * single audio frame. The decoder will pass the frame metadata as well + * as an array of pointers (one for each channel) pointing to the + * decoded audio. + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param frame The description of the decoded frame. See + * FLAC__Frame. + * \param buffer An array of pointers to decoded channels of data. + * Each pointer will point to an array of signed + * samples of length \a frame->header.blocksize. + * Channels will be ordered according to the FLAC + * specification; see the documentation for the + * frame header. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + * \retval FLAC__StreamDecoderWriteStatus + * The callee's return status. + */ +typedef FLAC__StreamDecoderWriteStatus (*FLAC__StreamDecoderWriteCallback)(const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data); + +/** Signature for the metadata callback. + * + * A function pointer matching this signature must be passed to one of + * the FLAC__stream_decoder_init_*() functions. + * The supplied function will be called when the decoder has decoded a + * metadata block. In a valid FLAC file there will always be one + * \c STREAMINFO block, followed by zero or more other metadata blocks. + * These will be supplied by the decoder in the same order as they + * appear in the stream and always before the first audio frame (i.e. + * write callback). The metadata block that is passed in must not be + * modified, and it doesn't live beyond the callback, so you should make + * a copy of it with FLAC__metadata_object_clone() if you will need it + * elsewhere. Since metadata blocks can potentially be large, by + * default the decoder only calls the metadata callback for the + * \c STREAMINFO block; you can instruct the decoder to pass or filter + * other blocks with FLAC__stream_decoder_set_metadata_*() calls. + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param metadata The decoded metadata block. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + */ +typedef void (*FLAC__StreamDecoderMetadataCallback)(const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data); + +/** Signature for the error callback. + * + * A function pointer matching this signature must be passed to one of + * the FLAC__stream_decoder_init_*() functions. + * The supplied function will be called whenever an error occurs during + * decoding. + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param status The error encountered by the decoder. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + */ +typedef void (*FLAC__StreamDecoderErrorCallback)(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data); + + +/*********************************************************************** + * + * Class constructor/destructor + * + ***********************************************************************/ + +/** Create a new stream decoder instance. The instance is created with + * default settings; see the individual FLAC__stream_decoder_set_*() + * functions for each setting's default. + * + * \retval FLAC__StreamDecoder* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__StreamDecoder *FLAC__stream_decoder_new(void); + +/** Free a decoder instance. Deletes the object pointed to by \a decoder. + * + * \param decoder A pointer to an existing decoder. + * \assert + * \code decoder != NULL \endcode + */ +FLAC_API void FLAC__stream_decoder_delete(FLAC__StreamDecoder *decoder); + + +/*********************************************************************** + * + * Public class method prototypes + * + ***********************************************************************/ + +/** Set the serial number for the FLAC stream within the Ogg container. + * The default behavior is to use the serial number of the first Ogg + * page. Setting a serial number here will explicitly specify which + * stream is to be decoded. + * + * \note + * This does not need to be set for native FLAC decoding. + * + * \default \c use serial number of first page + * \param decoder A decoder instance to set. + * \param serial_number See above. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_ogg_serial_number(FLAC__StreamDecoder *decoder, long serial_number); + +/** Set the "MD5 signature checking" flag. If \c true, the decoder will + * compute the MD5 signature of the unencoded audio data while decoding + * and compare it to the signature from the STREAMINFO block, if it + * exists, during FLAC__stream_decoder_finish(). + * + * MD5 signature checking will be turned off (until the next + * FLAC__stream_decoder_reset()) if there is no signature in the + * STREAMINFO block or when a seek is attempted. + * + * Clients that do not use the MD5 check should leave this off to speed + * up decoding. + * + * \default \c false + * \param decoder A decoder instance to set. + * \param value Flag value (see above). + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_md5_checking(FLAC__StreamDecoder *decoder, FLAC__bool value); + +/** Direct the decoder to pass on all metadata blocks of type \a type. + * + * \default By default, only the \c STREAMINFO block is returned via the + * metadata callback. + * \param decoder A decoder instance to set. + * \param type See above. + * \assert + * \code decoder != NULL \endcode + * \a type is valid + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_metadata_respond(FLAC__StreamDecoder *decoder, FLAC__MetadataType type); + +/** Direct the decoder to pass on all APPLICATION metadata blocks of the + * given \a id. + * + * \default By default, only the \c STREAMINFO block is returned via the + * metadata callback. + * \param decoder A decoder instance to set. + * \param id See above. + * \assert + * \code decoder != NULL \endcode + * \code id != NULL \endcode + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_metadata_respond_application(FLAC__StreamDecoder *decoder, const FLAC__byte id[4]); + +/** Direct the decoder to pass on all metadata blocks of any type. + * + * \default By default, only the \c STREAMINFO block is returned via the + * metadata callback. + * \param decoder A decoder instance to set. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_metadata_respond_all(FLAC__StreamDecoder *decoder); + +/** Direct the decoder to filter out all metadata blocks of type \a type. + * + * \default By default, only the \c STREAMINFO block is returned via the + * metadata callback. + * \param decoder A decoder instance to set. + * \param type See above. + * \assert + * \code decoder != NULL \endcode + * \a type is valid + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_metadata_ignore(FLAC__StreamDecoder *decoder, FLAC__MetadataType type); + +/** Direct the decoder to filter out all APPLICATION metadata blocks of + * the given \a id. + * + * \default By default, only the \c STREAMINFO block is returned via the + * metadata callback. + * \param decoder A decoder instance to set. + * \param id See above. + * \assert + * \code decoder != NULL \endcode + * \code id != NULL \endcode + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_metadata_ignore_application(FLAC__StreamDecoder *decoder, const FLAC__byte id[4]); + +/** Direct the decoder to filter out all metadata blocks of any type. + * + * \default By default, only the \c STREAMINFO block is returned via the + * metadata callback. + * \param decoder A decoder instance to set. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_metadata_ignore_all(FLAC__StreamDecoder *decoder); + +/** Get the current decoder state. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__StreamDecoderState + * The current decoder state. + */ +FLAC_API FLAC__StreamDecoderState FLAC__stream_decoder_get_state(const FLAC__StreamDecoder *decoder); + +/** Get the current decoder state as a C string. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval const char * + * The decoder state as a C string. Do not modify the contents. + */ +FLAC_API const char *FLAC__stream_decoder_get_resolved_state_string(const FLAC__StreamDecoder *decoder); + +/** Get the "MD5 signature checking" flag. + * This is the value of the setting, not whether or not the decoder is + * currently checking the MD5 (remember, it can be turned off automatically + * by a seek). When the decoder is reset the flag will be restored to the + * value returned by this function. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * See above. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_get_md5_checking(const FLAC__StreamDecoder *decoder); + +/** Get the total number of samples in the stream being decoded. + * Will only be valid after decoding has started and will contain the + * value from the \c STREAMINFO block. A value of \c 0 means "unknown". + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval unsigned + * See above. + */ +FLAC_API FLAC__uint64 FLAC__stream_decoder_get_total_samples(const FLAC__StreamDecoder *decoder); + +/** Get the current number of channels in the stream being decoded. + * Will only be valid after decoding has started and will contain the + * value from the most recently decoded frame header. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval unsigned + * See above. + */ +FLAC_API unsigned FLAC__stream_decoder_get_channels(const FLAC__StreamDecoder *decoder); + +/** Get the current channel assignment in the stream being decoded. + * Will only be valid after decoding has started and will contain the + * value from the most recently decoded frame header. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__ChannelAssignment + * See above. + */ +FLAC_API FLAC__ChannelAssignment FLAC__stream_decoder_get_channel_assignment(const FLAC__StreamDecoder *decoder); + +/** Get the current sample resolution in the stream being decoded. + * Will only be valid after decoding has started and will contain the + * value from the most recently decoded frame header. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval unsigned + * See above. + */ +FLAC_API unsigned FLAC__stream_decoder_get_bits_per_sample(const FLAC__StreamDecoder *decoder); + +/** Get the current sample rate in Hz of the stream being decoded. + * Will only be valid after decoding has started and will contain the + * value from the most recently decoded frame header. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval unsigned + * See above. + */ +FLAC_API unsigned FLAC__stream_decoder_get_sample_rate(const FLAC__StreamDecoder *decoder); + +/** Get the current blocksize of the stream being decoded. + * Will only be valid after decoding has started and will contain the + * value from the most recently decoded frame header. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval unsigned + * See above. + */ +FLAC_API unsigned FLAC__stream_decoder_get_blocksize(const FLAC__StreamDecoder *decoder); + +/** Returns the decoder's current read position within the stream. + * The position is the byte offset from the start of the stream. + * Bytes before this position have been fully decoded. Note that + * there may still be undecoded bytes in the decoder's read FIFO. + * The returned position is correct even after a seek. + * + * \warning This function currently only works for native FLAC, + * not Ogg FLAC streams. + * + * \param decoder A decoder instance to query. + * \param position Address at which to return the desired position. + * \assert + * \code decoder != NULL \endcode + * \code position != NULL \endcode + * \retval FLAC__bool + * \c true if successful, \c false if the stream is not native FLAC, + * or there was an error from the 'tell' callback or it returned + * \c FLAC__STREAM_DECODER_TELL_STATUS_UNSUPPORTED. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_get_decode_position(const FLAC__StreamDecoder *decoder, FLAC__uint64 *position); + +/** Initialize the decoder instance to decode native FLAC streams. + * + * This flavor of initialization sets up the decoder to decode from a + * native FLAC stream. I/O is performed via callbacks to the client. + * For decoding from a plain file via filename or open FILE*, + * FLAC__stream_decoder_init_file() and FLAC__stream_decoder_init_FILE() + * provide a simpler interface. + * + * This function should be called after FLAC__stream_decoder_new() and + * FLAC__stream_decoder_set_*() but before any of the + * FLAC__stream_decoder_process_*() functions. Will set and return the + * decoder state, which will be FLAC__STREAM_DECODER_SEARCH_FOR_METADATA + * if initialization succeeded. + * + * \param decoder An uninitialized decoder instance. + * \param read_callback See FLAC__StreamDecoderReadCallback. This + * pointer must not be \c NULL. + * \param seek_callback See FLAC__StreamDecoderSeekCallback. This + * pointer may be \c NULL if seeking is not + * supported. If \a seek_callback is not \c NULL then a + * \a tell_callback, \a length_callback, and \a eof_callback must also be supplied. + * Alternatively, a dummy seek callback that just + * returns \c FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param tell_callback See FLAC__StreamDecoderTellCallback. This + * pointer may be \c NULL if not supported by the client. If + * \a seek_callback is not \c NULL then a + * \a tell_callback must also be supplied. + * Alternatively, a dummy tell callback that just + * returns \c FLAC__STREAM_DECODER_TELL_STATUS_UNSUPPORTED + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param length_callback See FLAC__StreamDecoderLengthCallback. This + * pointer may be \c NULL if not supported by the client. If + * \a seek_callback is not \c NULL then a + * \a length_callback must also be supplied. + * Alternatively, a dummy length callback that just + * returns \c FLAC__STREAM_DECODER_LENGTH_STATUS_UNSUPPORTED + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param eof_callback See FLAC__StreamDecoderEofCallback. This + * pointer may be \c NULL if not supported by the client. If + * \a seek_callback is not \c NULL then a + * \a eof_callback must also be supplied. + * Alternatively, a dummy length callback that just + * returns \c false + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param write_callback See FLAC__StreamDecoderWriteCallback. This + * pointer must not be \c NULL. + * \param metadata_callback See FLAC__StreamDecoderMetadataCallback. This + * pointer may be \c NULL if the callback is not + * desired. + * \param error_callback See FLAC__StreamDecoderErrorCallback. This + * pointer must not be \c NULL. + * \param client_data This value will be supplied to callbacks in their + * \a client_data argument. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__StreamDecoderInitStatus + * \c FLAC__STREAM_DECODER_INIT_STATUS_OK if initialization was successful; + * see FLAC__StreamDecoderInitStatus for the meanings of other return values. + */ +FLAC_API FLAC__StreamDecoderInitStatus FLAC__stream_decoder_init_stream( + FLAC__StreamDecoder *decoder, + FLAC__StreamDecoderReadCallback read_callback, + FLAC__StreamDecoderSeekCallback seek_callback, + FLAC__StreamDecoderTellCallback tell_callback, + FLAC__StreamDecoderLengthCallback length_callback, + FLAC__StreamDecoderEofCallback eof_callback, + FLAC__StreamDecoderWriteCallback write_callback, + FLAC__StreamDecoderMetadataCallback metadata_callback, + FLAC__StreamDecoderErrorCallback error_callback, + void *client_data +); + +/** Initialize the decoder instance to decode Ogg FLAC streams. + * + * This flavor of initialization sets up the decoder to decode from a + * FLAC stream in an Ogg container. I/O is performed via callbacks to the + * client. For decoding from a plain file via filename or open FILE*, + * FLAC__stream_decoder_init_ogg_file() and FLAC__stream_decoder_init_ogg_FILE() + * provide a simpler interface. + * + * This function should be called after FLAC__stream_decoder_new() and + * FLAC__stream_decoder_set_*() but before any of the + * FLAC__stream_decoder_process_*() functions. Will set and return the + * decoder state, which will be FLAC__STREAM_DECODER_SEARCH_FOR_METADATA + * if initialization succeeded. + * + * \note Support for Ogg FLAC in the library is optional. If this + * library has been built without support for Ogg FLAC, this function + * will return \c FLAC__STREAM_DECODER_INIT_STATUS_UNSUPPORTED_CONTAINER. + * + * \param decoder An uninitialized decoder instance. + * \param read_callback See FLAC__StreamDecoderReadCallback. This + * pointer must not be \c NULL. + * \param seek_callback See FLAC__StreamDecoderSeekCallback. This + * pointer may be \c NULL if seeking is not + * supported. If \a seek_callback is not \c NULL then a + * \a tell_callback, \a length_callback, and \a eof_callback must also be supplied. + * Alternatively, a dummy seek callback that just + * returns \c FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param tell_callback See FLAC__StreamDecoderTellCallback. This + * pointer may be \c NULL if not supported by the client. If + * \a seek_callback is not \c NULL then a + * \a tell_callback must also be supplied. + * Alternatively, a dummy tell callback that just + * returns \c FLAC__STREAM_DECODER_TELL_STATUS_UNSUPPORTED + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param length_callback See FLAC__StreamDecoderLengthCallback. This + * pointer may be \c NULL if not supported by the client. If + * \a seek_callback is not \c NULL then a + * \a length_callback must also be supplied. + * Alternatively, a dummy length callback that just + * returns \c FLAC__STREAM_DECODER_LENGTH_STATUS_UNSUPPORTED + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param eof_callback See FLAC__StreamDecoderEofCallback. This + * pointer may be \c NULL if not supported by the client. If + * \a seek_callback is not \c NULL then a + * \a eof_callback must also be supplied. + * Alternatively, a dummy length callback that just + * returns \c false + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param write_callback See FLAC__StreamDecoderWriteCallback. This + * pointer must not be \c NULL. + * \param metadata_callback See FLAC__StreamDecoderMetadataCallback. This + * pointer may be \c NULL if the callback is not + * desired. + * \param error_callback See FLAC__StreamDecoderErrorCallback. This + * pointer must not be \c NULL. + * \param client_data This value will be supplied to callbacks in their + * \a client_data argument. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__StreamDecoderInitStatus + * \c FLAC__STREAM_DECODER_INIT_STATUS_OK if initialization was successful; + * see FLAC__StreamDecoderInitStatus for the meanings of other return values. + */ +FLAC_API FLAC__StreamDecoderInitStatus FLAC__stream_decoder_init_ogg_stream( + FLAC__StreamDecoder *decoder, + FLAC__StreamDecoderReadCallback read_callback, + FLAC__StreamDecoderSeekCallback seek_callback, + FLAC__StreamDecoderTellCallback tell_callback, + FLAC__StreamDecoderLengthCallback length_callback, + FLAC__StreamDecoderEofCallback eof_callback, + FLAC__StreamDecoderWriteCallback write_callback, + FLAC__StreamDecoderMetadataCallback metadata_callback, + FLAC__StreamDecoderErrorCallback error_callback, + void *client_data +); + +/** Initialize the decoder instance to decode native FLAC files. + * + * This flavor of initialization sets up the decoder to decode from a + * plain native FLAC file. For non-stdio streams, you must use + * FLAC__stream_decoder_init_stream() and provide callbacks for the I/O. + * + * This function should be called after FLAC__stream_decoder_new() and + * FLAC__stream_decoder_set_*() but before any of the + * FLAC__stream_decoder_process_*() functions. Will set and return the + * decoder state, which will be FLAC__STREAM_DECODER_SEARCH_FOR_METADATA + * if initialization succeeded. + * + * \param decoder An uninitialized decoder instance. + * \param file An open FLAC file. The file should have been + * opened with mode \c "rb" and rewound. The file + * becomes owned by the decoder and should not be + * manipulated by the client while decoding. + * Unless \a file is \c stdin, it will be closed + * when FLAC__stream_decoder_finish() is called. + * Note however that seeking will not work when + * decoding from \c stdout since it is not seekable. + * \param write_callback See FLAC__StreamDecoderWriteCallback. This + * pointer must not be \c NULL. + * \param metadata_callback See FLAC__StreamDecoderMetadataCallback. This + * pointer may be \c NULL if the callback is not + * desired. + * \param error_callback See FLAC__StreamDecoderErrorCallback. This + * pointer must not be \c NULL. + * \param client_data This value will be supplied to callbacks in their + * \a client_data argument. + * \assert + * \code decoder != NULL \endcode + * \code file != NULL \endcode + * \retval FLAC__StreamDecoderInitStatus + * \c FLAC__STREAM_DECODER_INIT_STATUS_OK if initialization was successful; + * see FLAC__StreamDecoderInitStatus for the meanings of other return values. + */ +FLAC_API FLAC__StreamDecoderInitStatus FLAC__stream_decoder_init_FILE( + FLAC__StreamDecoder *decoder, + FILE *file, + FLAC__StreamDecoderWriteCallback write_callback, + FLAC__StreamDecoderMetadataCallback metadata_callback, + FLAC__StreamDecoderErrorCallback error_callback, + void *client_data +); + +/** Initialize the decoder instance to decode Ogg FLAC files. + * + * This flavor of initialization sets up the decoder to decode from a + * plain Ogg FLAC file. For non-stdio streams, you must use + * FLAC__stream_decoder_init_ogg_stream() and provide callbacks for the I/O. + * + * This function should be called after FLAC__stream_decoder_new() and + * FLAC__stream_decoder_set_*() but before any of the + * FLAC__stream_decoder_process_*() functions. Will set and return the + * decoder state, which will be FLAC__STREAM_DECODER_SEARCH_FOR_METADATA + * if initialization succeeded. + * + * \note Support for Ogg FLAC in the library is optional. If this + * library has been built without support for Ogg FLAC, this function + * will return \c FLAC__STREAM_DECODER_INIT_STATUS_UNSUPPORTED_CONTAINER. + * + * \param decoder An uninitialized decoder instance. + * \param file An open FLAC file. The file should have been + * opened with mode \c "rb" and rewound. The file + * becomes owned by the decoder and should not be + * manipulated by the client while decoding. + * Unless \a file is \c stdin, it will be closed + * when FLAC__stream_decoder_finish() is called. + * Note however that seeking will not work when + * decoding from \c stdout since it is not seekable. + * \param write_callback See FLAC__StreamDecoderWriteCallback. This + * pointer must not be \c NULL. + * \param metadata_callback See FLAC__StreamDecoderMetadataCallback. This + * pointer may be \c NULL if the callback is not + * desired. + * \param error_callback See FLAC__StreamDecoderErrorCallback. This + * pointer must not be \c NULL. + * \param client_data This value will be supplied to callbacks in their + * \a client_data argument. + * \assert + * \code decoder != NULL \endcode + * \code file != NULL \endcode + * \retval FLAC__StreamDecoderInitStatus + * \c FLAC__STREAM_DECODER_INIT_STATUS_OK if initialization was successful; + * see FLAC__StreamDecoderInitStatus for the meanings of other return values. + */ +FLAC_API FLAC__StreamDecoderInitStatus FLAC__stream_decoder_init_ogg_FILE( + FLAC__StreamDecoder *decoder, + FILE *file, + FLAC__StreamDecoderWriteCallback write_callback, + FLAC__StreamDecoderMetadataCallback metadata_callback, + FLAC__StreamDecoderErrorCallback error_callback, + void *client_data +); + +/** Initialize the decoder instance to decode native FLAC files. + * + * This flavor of initialization sets up the decoder to decode from a plain + * native FLAC file. If POSIX fopen() semantics are not sufficient, (for + * example, with Unicode filenames on Windows), you must use + * FLAC__stream_decoder_init_FILE(), or FLAC__stream_decoder_init_stream() + * and provide callbacks for the I/O. + * + * This function should be called after FLAC__stream_decoder_new() and + * FLAC__stream_decoder_set_*() but before any of the + * FLAC__stream_decoder_process_*() functions. Will set and return the + * decoder state, which will be FLAC__STREAM_DECODER_SEARCH_FOR_METADATA + * if initialization succeeded. + * + * \param decoder An uninitialized decoder instance. + * \param filename The name of the file to decode from. The file will + * be opened with fopen(). Use \c NULL to decode from + * \c stdin. Note that \c stdin is not seekable. + * \param write_callback See FLAC__StreamDecoderWriteCallback. This + * pointer must not be \c NULL. + * \param metadata_callback See FLAC__StreamDecoderMetadataCallback. This + * pointer may be \c NULL if the callback is not + * desired. + * \param error_callback See FLAC__StreamDecoderErrorCallback. This + * pointer must not be \c NULL. + * \param client_data This value will be supplied to callbacks in their + * \a client_data argument. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__StreamDecoderInitStatus + * \c FLAC__STREAM_DECODER_INIT_STATUS_OK if initialization was successful; + * see FLAC__StreamDecoderInitStatus for the meanings of other return values. + */ +FLAC_API FLAC__StreamDecoderInitStatus FLAC__stream_decoder_init_file( + FLAC__StreamDecoder *decoder, + const char *filename, + FLAC__StreamDecoderWriteCallback write_callback, + FLAC__StreamDecoderMetadataCallback metadata_callback, + FLAC__StreamDecoderErrorCallback error_callback, + void *client_data +); + +/** Initialize the decoder instance to decode Ogg FLAC files. + * + * This flavor of initialization sets up the decoder to decode from a plain + * Ogg FLAC file. If POSIX fopen() semantics are not sufficient, (for + * example, with Unicode filenames on Windows), you must use + * FLAC__stream_decoder_init_ogg_FILE(), or FLAC__stream_decoder_init_ogg_stream() + * and provide callbacks for the I/O. + * + * This function should be called after FLAC__stream_decoder_new() and + * FLAC__stream_decoder_set_*() but before any of the + * FLAC__stream_decoder_process_*() functions. Will set and return the + * decoder state, which will be FLAC__STREAM_DECODER_SEARCH_FOR_METADATA + * if initialization succeeded. + * + * \note Support for Ogg FLAC in the library is optional. If this + * library has been built without support for Ogg FLAC, this function + * will return \c FLAC__STREAM_DECODER_INIT_STATUS_UNSUPPORTED_CONTAINER. + * + * \param decoder An uninitialized decoder instance. + * \param filename The name of the file to decode from. The file will + * be opened with fopen(). Use \c NULL to decode from + * \c stdin. Note that \c stdin is not seekable. + * \param write_callback See FLAC__StreamDecoderWriteCallback. This + * pointer must not be \c NULL. + * \param metadata_callback See FLAC__StreamDecoderMetadataCallback. This + * pointer may be \c NULL if the callback is not + * desired. + * \param error_callback See FLAC__StreamDecoderErrorCallback. This + * pointer must not be \c NULL. + * \param client_data This value will be supplied to callbacks in their + * \a client_data argument. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__StreamDecoderInitStatus + * \c FLAC__STREAM_DECODER_INIT_STATUS_OK if initialization was successful; + * see FLAC__StreamDecoderInitStatus for the meanings of other return values. + */ +FLAC_API FLAC__StreamDecoderInitStatus FLAC__stream_decoder_init_ogg_file( + FLAC__StreamDecoder *decoder, + const char *filename, + FLAC__StreamDecoderWriteCallback write_callback, + FLAC__StreamDecoderMetadataCallback metadata_callback, + FLAC__StreamDecoderErrorCallback error_callback, + void *client_data +); + +/** Finish the decoding process. + * Flushes the decoding buffer, releases resources, resets the decoder + * settings to their defaults, and returns the decoder state to + * FLAC__STREAM_DECODER_UNINITIALIZED. + * + * In the event of a prematurely-terminated decode, it is not strictly + * necessary to call this immediately before FLAC__stream_decoder_delete() + * but it is good practice to match every FLAC__stream_decoder_init_*() + * with a FLAC__stream_decoder_finish(). + * + * \param decoder An uninitialized decoder instance. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if MD5 checking is on AND a STREAMINFO block was available + * AND the MD5 signature in the STREAMINFO block was non-zero AND the + * signature does not match the one computed by the decoder; else + * \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_finish(FLAC__StreamDecoder *decoder); + +/** Flush the stream input. + * The decoder's input buffer will be cleared and the state set to + * \c FLAC__STREAM_DECODER_SEARCH_FOR_FRAME_SYNC. This will also turn + * off MD5 checking. + * + * \param decoder A decoder instance. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c true if successful, else \c false if a memory allocation + * error occurs (in which case the state will be set to + * \c FLAC__STREAM_DECODER_MEMORY_ALLOCATION_ERROR). + */ +FLAC_API FLAC__bool FLAC__stream_decoder_flush(FLAC__StreamDecoder *decoder); + +/** Reset the decoding process. + * The decoder's input buffer will be cleared and the state set to + * \c FLAC__STREAM_DECODER_SEARCH_FOR_METADATA. This is similar to + * FLAC__stream_decoder_finish() except that the settings are + * preserved; there is no need to call FLAC__stream_decoder_init_*() + * before decoding again. MD5 checking will be restored to its original + * setting. + * + * If the decoder is seekable, or was initialized with + * FLAC__stream_decoder_init*_FILE() or FLAC__stream_decoder_init*_file(), + * the decoder will also attempt to seek to the beginning of the file. + * If this rewind fails, this function will return \c false. It follows + * that FLAC__stream_decoder_reset() cannot be used when decoding from + * \c stdin. + * + * If the decoder was initialized with FLAC__stream_encoder_init*_stream() + * and is not seekable (i.e. no seek callback was provided or the seek + * callback returns \c FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED), it + * is the duty of the client to start feeding data from the beginning of + * the stream on the next FLAC__stream_decoder_process() or + * FLAC__stream_decoder_process_interleaved() call. + * + * \param decoder A decoder instance. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c true if successful, else \c false if a memory allocation occurs + * (in which case the state will be set to + * \c FLAC__STREAM_DECODER_MEMORY_ALLOCATION_ERROR) or a seek error + * occurs (the state will be unchanged). + */ +FLAC_API FLAC__bool FLAC__stream_decoder_reset(FLAC__StreamDecoder *decoder); + +/** Decode one metadata block or audio frame. + * This version instructs the decoder to decode a either a single metadata + * block or a single frame and stop, unless the callbacks return a fatal + * error or the read callback returns + * \c FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM. + * + * As the decoder needs more input it will call the read callback. + * Depending on what was decoded, the metadata or write callback will be + * called with the decoded metadata block or audio frame. + * + * Unless there is a fatal read error or end of stream, this function + * will return once one whole frame is decoded. In other words, if the + * stream is not synchronized or points to a corrupt frame header, the + * decoder will continue to try and resync until it gets to a valid + * frame, then decode one frame, then return. If the decoder points to + * a frame whose frame CRC in the frame footer does not match the + * computed frame CRC, this function will issue a + * FLAC__STREAM_DECODER_ERROR_STATUS_FRAME_CRC_MISMATCH error to the + * error callback, and return, having decoded one complete, although + * corrupt, frame. (Such corrupted frames are sent as silence of the + * correct length to the write callback.) + * + * \param decoder An initialized decoder instance. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if any fatal read, write, or memory allocation error + * occurred (meaning decoding must stop), else \c true; for more + * information about the decoder, check the decoder state with + * FLAC__stream_decoder_get_state(). + */ +FLAC_API FLAC__bool FLAC__stream_decoder_process_single(FLAC__StreamDecoder *decoder); + +/** Decode until the end of the metadata. + * This version instructs the decoder to decode from the current position + * and continue until all the metadata has been read, or until the + * callbacks return a fatal error or the read callback returns + * \c FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM. + * + * As the decoder needs more input it will call the read callback. + * As each metadata block is decoded, the metadata callback will be called + * with the decoded metadata. + * + * \param decoder An initialized decoder instance. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if any fatal read, write, or memory allocation error + * occurred (meaning decoding must stop), else \c true; for more + * information about the decoder, check the decoder state with + * FLAC__stream_decoder_get_state(). + */ +FLAC_API FLAC__bool FLAC__stream_decoder_process_until_end_of_metadata(FLAC__StreamDecoder *decoder); + +/** Decode until the end of the stream. + * This version instructs the decoder to decode from the current position + * and continue until the end of stream (the read callback returns + * \c FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM), or until the + * callbacks return a fatal error. + * + * As the decoder needs more input it will call the read callback. + * As each metadata block and frame is decoded, the metadata or write + * callback will be called with the decoded metadata or frame. + * + * \param decoder An initialized decoder instance. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if any fatal read, write, or memory allocation error + * occurred (meaning decoding must stop), else \c true; for more + * information about the decoder, check the decoder state with + * FLAC__stream_decoder_get_state(). + */ +FLAC_API FLAC__bool FLAC__stream_decoder_process_until_end_of_stream(FLAC__StreamDecoder *decoder); + +/** Skip one audio frame. + * This version instructs the decoder to 'skip' a single frame and stop, + * unless the callbacks return a fatal error or the read callback returns + * \c FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM. + * + * The decoding flow is the same as what occurs when + * FLAC__stream_decoder_process_single() is called to process an audio + * frame, except that this function does not decode the parsed data into + * PCM or call the write callback. The integrity of the frame is still + * checked the same way as in the other process functions. + * + * This function will return once one whole frame is skipped, in the + * same way that FLAC__stream_decoder_process_single() will return once + * one whole frame is decoded. + * + * This function can be used in more quickly determining FLAC frame + * boundaries when decoding of the actual data is not needed, for + * example when an application is separating a FLAC stream into frames + * for editing or storing in a container. To do this, the application + * can use FLAC__stream_decoder_skip_single_frame() to quickly advance + * to the next frame, then use + * FLAC__stream_decoder_get_decode_position() to find the new frame + * boundary. + * + * This function should only be called when the stream has advanced + * past all the metadata, otherwise it will return \c false. + * + * \param decoder An initialized decoder instance not in a metadata + * state. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if any fatal read, write, or memory allocation error + * occurred (meaning decoding must stop), or if the decoder + * is in the FLAC__STREAM_DECODER_SEARCH_FOR_METADATA or + * FLAC__STREAM_DECODER_READ_METADATA state, else \c true; for more + * information about the decoder, check the decoder state with + * FLAC__stream_decoder_get_state(). + */ +FLAC_API FLAC__bool FLAC__stream_decoder_skip_single_frame(FLAC__StreamDecoder *decoder); + +/** Flush the input and seek to an absolute sample. + * Decoding will resume at the given sample. Note that because of + * this, the next write callback may contain a partial block. The + * client must support seeking the input or this function will fail + * and return \c false. Furthermore, if the decoder state is + * \c FLAC__STREAM_DECODER_SEEK_ERROR, then the decoder must be flushed + * with FLAC__stream_decoder_flush() or reset with + * FLAC__stream_decoder_reset() before decoding can continue. + * + * \param decoder A decoder instance. + * \param sample The target sample number to seek to. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c true if successful, else \c false. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_seek_absolute(FLAC__StreamDecoder *decoder, FLAC__uint64 sample); + +/* \} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/stream_encoder.h b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/stream_encoder.h new file mode 100644 index 0000000..dbbbb23 --- /dev/null +++ b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Headers/stream_encoder.h @@ -0,0 +1,1768 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__STREAM_ENCODER_H +#define FLAC__STREAM_ENCODER_H + +#include /* for FILE */ +#include "export.h" +#include "format.h" +#include "stream_decoder.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +/** \file include/FLAC/stream_encoder.h + * + * \brief + * This module contains the functions which implement the stream + * encoder. + * + * See the detailed documentation in the + * \link flac_stream_encoder stream encoder \endlink module. + */ + +/** \defgroup flac_encoder FLAC/ \*_encoder.h: encoder interfaces + * \ingroup flac + * + * \brief + * This module describes the encoder layers provided by libFLAC. + * + * The stream encoder can be used to encode complete streams either to the + * client via callbacks, or directly to a file, depending on how it is + * initialized. When encoding via callbacks, the client provides a write + * callback which will be called whenever FLAC data is ready to be written. + * If the client also supplies a seek callback, the encoder will also + * automatically handle the writing back of metadata discovered while + * encoding, like stream info, seek points offsets, etc. When encoding to + * a file, the client needs only supply a filename or open \c FILE* and an + * optional progress callback for periodic notification of progress; the + * write and seek callbacks are supplied internally. For more info see the + * \link flac_stream_encoder stream encoder \endlink module. + */ + +/** \defgroup flac_stream_encoder FLAC/stream_encoder.h: stream encoder interface + * \ingroup flac_encoder + * + * \brief + * This module contains the functions which implement the stream + * encoder. + * + * The stream encoder can encode to native FLAC, and optionally Ogg FLAC + * (check FLAC_API_SUPPORTS_OGG_FLAC) streams and files. + * + * The basic usage of this encoder is as follows: + * - The program creates an instance of an encoder using + * FLAC__stream_encoder_new(). + * - The program overrides the default settings using + * FLAC__stream_encoder_set_*() functions. At a minimum, the following + * functions should be called: + * - FLAC__stream_encoder_set_channels() + * - FLAC__stream_encoder_set_bits_per_sample() + * - FLAC__stream_encoder_set_sample_rate() + * - FLAC__stream_encoder_set_ogg_serial_number() (if encoding to Ogg FLAC) + * - FLAC__stream_encoder_set_total_samples_estimate() (if known) + * - If the application wants to control the compression level or set its own + * metadata, then the following should also be called: + * - FLAC__stream_encoder_set_compression_level() + * - FLAC__stream_encoder_set_verify() + * - FLAC__stream_encoder_set_metadata() + * - The rest of the set functions should only be called if the client needs + * exact control over how the audio is compressed; thorough understanding + * of the FLAC format is necessary to achieve good results. + * - The program initializes the instance to validate the settings and + * prepare for encoding using + * - FLAC__stream_encoder_init_stream() or FLAC__stream_encoder_init_FILE() + * or FLAC__stream_encoder_init_file() for native FLAC + * - FLAC__stream_encoder_init_ogg_stream() or FLAC__stream_encoder_init_ogg_FILE() + * or FLAC__stream_encoder_init_ogg_file() for Ogg FLAC + * - The program calls FLAC__stream_encoder_process() or + * FLAC__stream_encoder_process_interleaved() to encode data, which + * subsequently calls the callbacks when there is encoder data ready + * to be written. + * - The program finishes the encoding with FLAC__stream_encoder_finish(), + * which causes the encoder to encode any data still in its input pipe, + * update the metadata with the final encoding statistics if output + * seeking is possible, and finally reset the encoder to the + * uninitialized state. + * - The instance may be used again or deleted with + * FLAC__stream_encoder_delete(). + * + * In more detail, the stream encoder functions similarly to the + * \link flac_stream_decoder stream decoder \endlink, but has fewer + * callbacks and more options. Typically the client will create a new + * instance by calling FLAC__stream_encoder_new(), then set the necessary + * parameters with FLAC__stream_encoder_set_*(), and initialize it by + * calling one of the FLAC__stream_encoder_init_*() functions. + * + * Unlike the decoders, the stream encoder has many options that can + * affect the speed and compression ratio. When setting these parameters + * you should have some basic knowledge of the format (see the + * user-level documentation + * or the formal description). The + * FLAC__stream_encoder_set_*() functions themselves do not validate the + * values as many are interdependent. The FLAC__stream_encoder_init_*() + * functions will do this, so make sure to pay attention to the state + * returned by FLAC__stream_encoder_init_*() to make sure that it is + * FLAC__STREAM_ENCODER_INIT_STATUS_OK. Any parameters that are not set + * before FLAC__stream_encoder_init_*() will take on the defaults from + * the constructor. + * + * There are three initialization functions for native FLAC, one for + * setting up the encoder to encode FLAC data to the client via + * callbacks, and two for encoding directly to a file. + * + * For encoding via callbacks, use FLAC__stream_encoder_init_stream(). + * You must also supply a write callback which will be called anytime + * there is raw encoded data to write. If the client can seek the output + * it is best to also supply seek and tell callbacks, as this allows the + * encoder to go back after encoding is finished to write back + * information that was collected while encoding, like seek point offsets, + * frame sizes, etc. + * + * For encoding directly to a file, use FLAC__stream_encoder_init_FILE() + * or FLAC__stream_encoder_init_file(). Then you must only supply a + * filename or open \c FILE*; the encoder will handle all the callbacks + * internally. You may also supply a progress callback for periodic + * notification of the encoding progress. + * + * There are three similarly-named init functions for encoding to Ogg + * FLAC streams. Check \c FLAC_API_SUPPORTS_OGG_FLAC to find out if the + * library has been built with Ogg support. + * + * The call to FLAC__stream_encoder_init_*() currently will also immediately + * call the write callback several times, once with the \c fLaC signature, + * and once for each encoded metadata block. Note that for Ogg FLAC + * encoding you will usually get at least twice the number of callbacks than + * with native FLAC, one for the Ogg page header and one for the page body. + * + * After initializing the instance, the client may feed audio data to the + * encoder in one of two ways: + * + * - Channel separate, through FLAC__stream_encoder_process() - The client + * will pass an array of pointers to buffers, one for each channel, to + * the encoder, each of the same length. The samples need not be + * block-aligned, but each channel should have the same number of samples. + * - Channel interleaved, through + * FLAC__stream_encoder_process_interleaved() - The client will pass a single + * pointer to data that is channel-interleaved (i.e. channel0_sample0, + * channel1_sample0, ... , channelN_sample0, channel0_sample1, ...). + * Again, the samples need not be block-aligned but they must be + * sample-aligned, i.e. the first value should be channel0_sample0 and + * the last value channelN_sampleM. + * + * Note that for either process call, each sample in the buffers should be a + * signed integer, right-justified to the resolution set by + * FLAC__stream_encoder_set_bits_per_sample(). For example, if the resolution + * is 16 bits per sample, the samples should all be in the range [-32768,32767]. + * + * When the client is finished encoding data, it calls + * FLAC__stream_encoder_finish(), which causes the encoder to encode any + * data still in its input pipe, and call the metadata callback with the + * final encoding statistics. Then the instance may be deleted with + * FLAC__stream_encoder_delete() or initialized again to encode another + * stream. + * + * For programs that write their own metadata, but that do not know the + * actual metadata until after encoding, it is advantageous to instruct + * the encoder to write a PADDING block of the correct size, so that + * instead of rewriting the whole stream after encoding, the program can + * just overwrite the PADDING block. If only the maximum size of the + * metadata is known, the program can write a slightly larger padding + * block, then split it after encoding. + * + * Make sure you understand how lengths are calculated. All FLAC metadata + * blocks have a 4 byte header which contains the type and length. This + * length does not include the 4 bytes of the header. See the format page + * for the specification of metadata blocks and their lengths. + * + * \note + * If you are writing the FLAC data to a file via callbacks, make sure it + * is open for update (e.g. mode "w+" for stdio streams). This is because + * after the first encoding pass, the encoder will try to seek back to the + * beginning of the stream, to the STREAMINFO block, to write some data + * there. (If using FLAC__stream_encoder_init*_file() or + * FLAC__stream_encoder_init*_FILE(), the file is managed internally.) + * + * \note + * The "set" functions may only be called when the encoder is in the + * state FLAC__STREAM_ENCODER_UNINITIALIZED, i.e. after + * FLAC__stream_encoder_new() or FLAC__stream_encoder_finish(), but + * before FLAC__stream_encoder_init_*(). If this is the case they will + * return \c true, otherwise \c false. + * + * \note + * FLAC__stream_encoder_finish() resets all settings to the constructor + * defaults. + * + * \{ + */ + + +/** State values for a FLAC__StreamEncoder. + * + * The encoder's state can be obtained by calling FLAC__stream_encoder_get_state(). + * + * If the encoder gets into any other state besides \c FLAC__STREAM_ENCODER_OK + * or \c FLAC__STREAM_ENCODER_UNINITIALIZED, it becomes invalid for encoding and + * must be deleted with FLAC__stream_encoder_delete(). + */ +typedef enum { + + FLAC__STREAM_ENCODER_OK = 0, + /**< The encoder is in the normal OK state and samples can be processed. */ + + FLAC__STREAM_ENCODER_UNINITIALIZED, + /**< The encoder is in the uninitialized state; one of the + * FLAC__stream_encoder_init_*() functions must be called before samples + * can be processed. + */ + + FLAC__STREAM_ENCODER_OGG_ERROR, + /**< An error occurred in the underlying Ogg layer. */ + + FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR, + /**< An error occurred in the underlying verify stream decoder; + * check FLAC__stream_encoder_get_verify_decoder_state(). + */ + + FLAC__STREAM_ENCODER_VERIFY_MISMATCH_IN_AUDIO_DATA, + /**< The verify decoder detected a mismatch between the original + * audio signal and the decoded audio signal. + */ + + FLAC__STREAM_ENCODER_CLIENT_ERROR, + /**< One of the callbacks returned a fatal error. */ + + FLAC__STREAM_ENCODER_IO_ERROR, + /**< An I/O error occurred while opening/reading/writing a file. + * Check \c errno. + */ + + FLAC__STREAM_ENCODER_FRAMING_ERROR, + /**< An error occurred while writing the stream; usually, the + * write_callback returned an error. + */ + + FLAC__STREAM_ENCODER_MEMORY_ALLOCATION_ERROR + /**< Memory allocation failed. */ + +} FLAC__StreamEncoderState; + +/** Maps a FLAC__StreamEncoderState to a C string. + * + * Using a FLAC__StreamEncoderState as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamEncoderStateString[]; + + +/** Possible return values for the FLAC__stream_encoder_init_*() functions. + */ +typedef enum { + + FLAC__STREAM_ENCODER_INIT_STATUS_OK = 0, + /**< Initialization was successful. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_ENCODER_ERROR, + /**< General failure to set up encoder; call FLAC__stream_encoder_get_state() for cause. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_UNSUPPORTED_CONTAINER, + /**< The library was not compiled with support for the given container + * format. + */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_CALLBACKS, + /**< A required callback was not supplied. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_NUMBER_OF_CHANNELS, + /**< The encoder has an invalid setting for number of channels. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_BITS_PER_SAMPLE, + /**< The encoder has an invalid setting for bits-per-sample. + * FLAC supports 4-32 bps but the reference encoder currently supports + * only up to 24 bps. + */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_SAMPLE_RATE, + /**< The encoder has an invalid setting for the input sample rate. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_BLOCK_SIZE, + /**< The encoder has an invalid setting for the block size. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_MAX_LPC_ORDER, + /**< The encoder has an invalid setting for the maximum LPC order. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_QLP_COEFF_PRECISION, + /**< The encoder has an invalid setting for the precision of the quantized linear predictor coefficients. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_BLOCK_SIZE_TOO_SMALL_FOR_LPC_ORDER, + /**< The specified block size is less than the maximum LPC order. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_NOT_STREAMABLE, + /**< The encoder is bound to the Subset but other settings violate it. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_METADATA, + /**< The metadata input to the encoder is invalid, in one of the following ways: + * - FLAC__stream_encoder_set_metadata() was called with a null pointer but a block count > 0 + * - One of the metadata blocks contains an undefined type + * - It contains an illegal CUESHEET as checked by FLAC__format_cuesheet_is_legal() + * - It contains an illegal SEEKTABLE as checked by FLAC__format_seektable_is_legal() + * - It contains more than one SEEKTABLE block or more than one VORBIS_COMMENT block + */ + + FLAC__STREAM_ENCODER_INIT_STATUS_ALREADY_INITIALIZED + /**< FLAC__stream_encoder_init_*() was called when the encoder was + * already initialized, usually because + * FLAC__stream_encoder_finish() was not called. + */ + +} FLAC__StreamEncoderInitStatus; + +/** Maps a FLAC__StreamEncoderInitStatus to a C string. + * + * Using a FLAC__StreamEncoderInitStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamEncoderInitStatusString[]; + + +/** Return values for the FLAC__StreamEncoder read callback. + */ +typedef enum { + + FLAC__STREAM_ENCODER_READ_STATUS_CONTINUE, + /**< The read was OK and decoding can continue. */ + + FLAC__STREAM_ENCODER_READ_STATUS_END_OF_STREAM, + /**< The read was attempted at the end of the stream. */ + + FLAC__STREAM_ENCODER_READ_STATUS_ABORT, + /**< An unrecoverable error occurred. */ + + FLAC__STREAM_ENCODER_READ_STATUS_UNSUPPORTED + /**< Client does not support reading back from the output. */ + +} FLAC__StreamEncoderReadStatus; + +/** Maps a FLAC__StreamEncoderReadStatus to a C string. + * + * Using a FLAC__StreamEncoderReadStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamEncoderReadStatusString[]; + + +/** Return values for the FLAC__StreamEncoder write callback. + */ +typedef enum { + + FLAC__STREAM_ENCODER_WRITE_STATUS_OK = 0, + /**< The write was OK and encoding can continue. */ + + FLAC__STREAM_ENCODER_WRITE_STATUS_FATAL_ERROR + /**< An unrecoverable error occurred. The encoder will return from the process call. */ + +} FLAC__StreamEncoderWriteStatus; + +/** Maps a FLAC__StreamEncoderWriteStatus to a C string. + * + * Using a FLAC__StreamEncoderWriteStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamEncoderWriteStatusString[]; + + +/** Return values for the FLAC__StreamEncoder seek callback. + */ +typedef enum { + + FLAC__STREAM_ENCODER_SEEK_STATUS_OK, + /**< The seek was OK and encoding can continue. */ + + FLAC__STREAM_ENCODER_SEEK_STATUS_ERROR, + /**< An unrecoverable error occurred. */ + + FLAC__STREAM_ENCODER_SEEK_STATUS_UNSUPPORTED + /**< Client does not support seeking. */ + +} FLAC__StreamEncoderSeekStatus; + +/** Maps a FLAC__StreamEncoderSeekStatus to a C string. + * + * Using a FLAC__StreamEncoderSeekStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamEncoderSeekStatusString[]; + + +/** Return values for the FLAC__StreamEncoder tell callback. + */ +typedef enum { + + FLAC__STREAM_ENCODER_TELL_STATUS_OK, + /**< The tell was OK and encoding can continue. */ + + FLAC__STREAM_ENCODER_TELL_STATUS_ERROR, + /**< An unrecoverable error occurred. */ + + FLAC__STREAM_ENCODER_TELL_STATUS_UNSUPPORTED + /**< Client does not support seeking. */ + +} FLAC__StreamEncoderTellStatus; + +/** Maps a FLAC__StreamEncoderTellStatus to a C string. + * + * Using a FLAC__StreamEncoderTellStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamEncoderTellStatusString[]; + + +/*********************************************************************** + * + * class FLAC__StreamEncoder + * + ***********************************************************************/ + +struct FLAC__StreamEncoderProtected; +struct FLAC__StreamEncoderPrivate; +/** The opaque structure definition for the stream encoder type. + * See the \link flac_stream_encoder stream encoder module \endlink + * for a detailed description. + */ +typedef struct { + struct FLAC__StreamEncoderProtected *protected_; /* avoid the C++ keyword 'protected' */ + struct FLAC__StreamEncoderPrivate *private_; /* avoid the C++ keyword 'private' */ +} FLAC__StreamEncoder; + +/** Signature for the read callback. + * + * A function pointer matching this signature must be passed to + * FLAC__stream_encoder_init_ogg_stream() if seeking is supported. + * The supplied function will be called when the encoder needs to read back + * encoded data. This happens during the metadata callback, when the encoder + * has to read, modify, and rewrite the metadata (e.g. seekpoints) gathered + * while encoding. The address of the buffer to be filled is supplied, along + * with the number of bytes the buffer can hold. The callback may choose to + * supply less data and modify the byte count but must be careful not to + * overflow the buffer. The callback then returns a status code chosen from + * FLAC__StreamEncoderReadStatus. + * + * Here is an example of a read callback for stdio streams: + * \code + * FLAC__StreamEncoderReadStatus read_cb(const FLAC__StreamEncoder *encoder, FLAC__byte buffer[], size_t *bytes, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * if(*bytes > 0) { + * *bytes = fread(buffer, sizeof(FLAC__byte), *bytes, file); + * if(ferror(file)) + * return FLAC__STREAM_ENCODER_READ_STATUS_ABORT; + * else if(*bytes == 0) + * return FLAC__STREAM_ENCODER_READ_STATUS_END_OF_STREAM; + * else + * return FLAC__STREAM_ENCODER_READ_STATUS_CONTINUE; + * } + * else + * return FLAC__STREAM_ENCODER_READ_STATUS_ABORT; + * } + * \endcode + * + * \note In general, FLAC__StreamEncoder functions which change the + * state should not be called on the \a encoder while in the callback. + * + * \param encoder The encoder instance calling the callback. + * \param buffer A pointer to a location for the callee to store + * data to be encoded. + * \param bytes A pointer to the size of the buffer. On entry + * to the callback, it contains the maximum number + * of bytes that may be stored in \a buffer. The + * callee must set it to the actual number of bytes + * stored (0 in case of error or end-of-stream) before + * returning. + * \param client_data The callee's client data set through + * FLAC__stream_encoder_set_client_data(). + * \retval FLAC__StreamEncoderReadStatus + * The callee's return status. + */ +typedef FLAC__StreamEncoderReadStatus (*FLAC__StreamEncoderReadCallback)(const FLAC__StreamEncoder *encoder, FLAC__byte buffer[], size_t *bytes, void *client_data); + +/** Signature for the write callback. + * + * A function pointer matching this signature must be passed to + * FLAC__stream_encoder_init*_stream(). The supplied function will be called + * by the encoder anytime there is raw encoded data ready to write. It may + * include metadata mixed with encoded audio frames and the data is not + * guaranteed to be aligned on frame or metadata block boundaries. + * + * The only duty of the callback is to write out the \a bytes worth of data + * in \a buffer to the current position in the output stream. The arguments + * \a samples and \a current_frame are purely informational. If \a samples + * is greater than \c 0, then \a current_frame will hold the current frame + * number that is being written; otherwise it indicates that the write + * callback is being called to write metadata. + * + * \note + * Unlike when writing to native FLAC, when writing to Ogg FLAC the + * write callback will be called twice when writing each audio + * frame; once for the page header, and once for the page body. + * When writing the page header, the \a samples argument to the + * write callback will be \c 0. + * + * \note In general, FLAC__StreamEncoder functions which change the + * state should not be called on the \a encoder while in the callback. + * + * \param encoder The encoder instance calling the callback. + * \param buffer An array of encoded data of length \a bytes. + * \param bytes The byte length of \a buffer. + * \param samples The number of samples encoded by \a buffer. + * \c 0 has a special meaning; see above. + * \param current_frame The number of the current frame being encoded. + * \param client_data The callee's client data set through + * FLAC__stream_encoder_init_*(). + * \retval FLAC__StreamEncoderWriteStatus + * The callee's return status. + */ +typedef FLAC__StreamEncoderWriteStatus (*FLAC__StreamEncoderWriteCallback)(const FLAC__StreamEncoder *encoder, const FLAC__byte buffer[], size_t bytes, unsigned samples, unsigned current_frame, void *client_data); + +/** Signature for the seek callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_encoder_init*_stream(). The supplied function will be called + * when the encoder needs to seek the output stream. The encoder will pass + * the absolute byte offset to seek to, 0 meaning the beginning of the stream. + * + * Here is an example of a seek callback for stdio streams: + * \code + * FLAC__StreamEncoderSeekStatus seek_cb(const FLAC__StreamEncoder *encoder, FLAC__uint64 absolute_byte_offset, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * if(file == stdin) + * return FLAC__STREAM_ENCODER_SEEK_STATUS_UNSUPPORTED; + * else if(fseeko(file, (off_t)absolute_byte_offset, SEEK_SET) < 0) + * return FLAC__STREAM_ENCODER_SEEK_STATUS_ERROR; + * else + * return FLAC__STREAM_ENCODER_SEEK_STATUS_OK; + * } + * \endcode + * + * \note In general, FLAC__StreamEncoder functions which change the + * state should not be called on the \a encoder while in the callback. + * + * \param encoder The encoder instance calling the callback. + * \param absolute_byte_offset The offset from the beginning of the stream + * to seek to. + * \param client_data The callee's client data set through + * FLAC__stream_encoder_init_*(). + * \retval FLAC__StreamEncoderSeekStatus + * The callee's return status. + */ +typedef FLAC__StreamEncoderSeekStatus (*FLAC__StreamEncoderSeekCallback)(const FLAC__StreamEncoder *encoder, FLAC__uint64 absolute_byte_offset, void *client_data); + +/** Signature for the tell callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_encoder_init*_stream(). The supplied function will be called + * when the encoder needs to know the current position of the output stream. + * + * \warning + * The callback must return the true current byte offset of the output to + * which the encoder is writing. If you are buffering the output, make + * sure and take this into account. If you are writing directly to a + * FILE* from your write callback, ftell() is sufficient. If you are + * writing directly to a file descriptor from your write callback, you + * can use lseek(fd, SEEK_CUR, 0). The encoder may later seek back to + * these points to rewrite metadata after encoding. + * + * Here is an example of a tell callback for stdio streams: + * \code + * FLAC__StreamEncoderTellStatus tell_cb(const FLAC__StreamEncoder *encoder, FLAC__uint64 *absolute_byte_offset, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * off_t pos; + * if(file == stdin) + * return FLAC__STREAM_ENCODER_TELL_STATUS_UNSUPPORTED; + * else if((pos = ftello(file)) < 0) + * return FLAC__STREAM_ENCODER_TELL_STATUS_ERROR; + * else { + * *absolute_byte_offset = (FLAC__uint64)pos; + * return FLAC__STREAM_ENCODER_TELL_STATUS_OK; + * } + * } + * \endcode + * + * \note In general, FLAC__StreamEncoder functions which change the + * state should not be called on the \a encoder while in the callback. + * + * \param encoder The encoder instance calling the callback. + * \param absolute_byte_offset The address at which to store the current + * position of the output. + * \param client_data The callee's client data set through + * FLAC__stream_encoder_init_*(). + * \retval FLAC__StreamEncoderTellStatus + * The callee's return status. + */ +typedef FLAC__StreamEncoderTellStatus (*FLAC__StreamEncoderTellCallback)(const FLAC__StreamEncoder *encoder, FLAC__uint64 *absolute_byte_offset, void *client_data); + +/** Signature for the metadata callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_encoder_init*_stream(). The supplied function will be called + * once at the end of encoding with the populated STREAMINFO structure. This + * is so the client can seek back to the beginning of the file and write the + * STREAMINFO block with the correct statistics after encoding (like + * minimum/maximum frame size and total samples). + * + * \note In general, FLAC__StreamEncoder functions which change the + * state should not be called on the \a encoder while in the callback. + * + * \param encoder The encoder instance calling the callback. + * \param metadata The final populated STREAMINFO block. + * \param client_data The callee's client data set through + * FLAC__stream_encoder_init_*(). + */ +typedef void (*FLAC__StreamEncoderMetadataCallback)(const FLAC__StreamEncoder *encoder, const FLAC__StreamMetadata *metadata, void *client_data); + +/** Signature for the progress callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_encoder_init*_file() or FLAC__stream_encoder_init*_FILE(). + * The supplied function will be called when the encoder has finished + * writing a frame. The \c total_frames_estimate argument to the + * callback will be based on the value from + * FLAC__stream_encoder_set_total_samples_estimate(). + * + * \note In general, FLAC__StreamEncoder functions which change the + * state should not be called on the \a encoder while in the callback. + * + * \param encoder The encoder instance calling the callback. + * \param bytes_written Bytes written so far. + * \param samples_written Samples written so far. + * \param frames_written Frames written so far. + * \param total_frames_estimate The estimate of the total number of + * frames to be written. + * \param client_data The callee's client data set through + * FLAC__stream_encoder_init_*(). + */ +typedef void (*FLAC__StreamEncoderProgressCallback)(const FLAC__StreamEncoder *encoder, FLAC__uint64 bytes_written, FLAC__uint64 samples_written, unsigned frames_written, unsigned total_frames_estimate, void *client_data); + + +/*********************************************************************** + * + * Class constructor/destructor + * + ***********************************************************************/ + +/** Create a new stream encoder instance. The instance is created with + * default settings; see the individual FLAC__stream_encoder_set_*() + * functions for each setting's default. + * + * \retval FLAC__StreamEncoder* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__StreamEncoder *FLAC__stream_encoder_new(void); + +/** Free an encoder instance. Deletes the object pointed to by \a encoder. + * + * \param encoder A pointer to an existing encoder. + * \assert + * \code encoder != NULL \endcode + */ +FLAC_API void FLAC__stream_encoder_delete(FLAC__StreamEncoder *encoder); + + +/*********************************************************************** + * + * Public class method prototypes + * + ***********************************************************************/ + +/** Set the serial number for the FLAC stream to use in the Ogg container. + * + * \note + * This does not need to be set for native FLAC encoding. + * + * \note + * It is recommended to set a serial number explicitly as the default of '0' + * may collide with other streams. + * + * \default \c 0 + * \param encoder An encoder instance to set. + * \param serial_number See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_ogg_serial_number(FLAC__StreamEncoder *encoder, long serial_number); + +/** Set the "verify" flag. If \c true, the encoder will verify it's own + * encoded output by feeding it through an internal decoder and comparing + * the original signal against the decoded signal. If a mismatch occurs, + * the process call will return \c false. Note that this will slow the + * encoding process by the extra time required for decoding and comparison. + * + * \default \c false + * \param encoder An encoder instance to set. + * \param value Flag value (see above). + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_verify(FLAC__StreamEncoder *encoder, FLAC__bool value); + +/** Set the Subset flag. If \c true, + * the encoder will comply with the Subset and will check the + * settings during FLAC__stream_encoder_init_*() to see if all settings + * comply. If \c false, the settings may take advantage of the full + * range that the format allows. + * + * Make sure you know what it entails before setting this to \c false. + * + * \default \c true + * \param encoder An encoder instance to set. + * \param value Flag value (see above). + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_streamable_subset(FLAC__StreamEncoder *encoder, FLAC__bool value); + +/** Set the number of channels to be encoded. + * + * \default \c 2 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_channels(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set the sample resolution of the input to be encoded. + * + * \warning + * Do not feed the encoder data that is wider than the value you + * set here or you will generate an invalid stream. + * + * \default \c 16 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_bits_per_sample(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set the sample rate (in Hz) of the input to be encoded. + * + * \default \c 44100 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_sample_rate(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set the compression level + * + * The compression level is roughly proportional to the amount of effort + * the encoder expends to compress the file. A higher level usually + * means more computation but higher compression. The default level is + * suitable for most applications. + * + * Currently the levels range from \c 0 (fastest, least compression) to + * \c 8 (slowest, most compression). A value larger than \c 8 will be + * treated as \c 8. + * + * This function automatically calls the following other \c _set_ + * functions with appropriate values, so the client does not need to + * unless it specifically wants to override them: + * - FLAC__stream_encoder_set_do_mid_side_stereo() + * - FLAC__stream_encoder_set_loose_mid_side_stereo() + * - FLAC__stream_encoder_set_apodization() + * - FLAC__stream_encoder_set_max_lpc_order() + * - FLAC__stream_encoder_set_qlp_coeff_precision() + * - FLAC__stream_encoder_set_do_qlp_coeff_prec_search() + * - FLAC__stream_encoder_set_do_escape_coding() + * - FLAC__stream_encoder_set_do_exhaustive_model_search() + * - FLAC__stream_encoder_set_min_residual_partition_order() + * - FLAC__stream_encoder_set_max_residual_partition_order() + * - FLAC__stream_encoder_set_rice_parameter_search_dist() + * + * The actual values set for each level are: + * + * + * + * + * + * + * + * + * + * + * + * + *
level + * do mid-side stereo + * loose mid-side stereo + * apodization + * max lpc order + * qlp coeff precision + * qlp coeff prec search + * escape coding + * exhaustive model search + * min residual partition order + * max residual partition order + * rice parameter search dist + *
0 false false tukey(0.5) 0 0 false false false 0 3 0
1 true true tukey(0.5) 0 0 false false false 0 3 0
2 true false tukey(0.5) 0 0 false false false 0 3 0
3 false false tukey(0.5) 6 0 false false false 0 4 0
4 true true tukey(0.5) 8 0 false false false 0 4 0
5 true false tukey(0.5) 8 0 false false false 0 5 0
6 true false tukey(0.5) 8 0 false false false 0 6 0
7 true false tukey(0.5) 8 0 false false true 0 6 0
8 true false tukey(0.5) 12 0 false false true 0 6 0
+ * + * \default \c 5 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_compression_level(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set the blocksize to use while encoding. + * + * The number of samples to use per frame. Use \c 0 to let the encoder + * estimate a blocksize; this is usually best. + * + * \default \c 0 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_blocksize(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set to \c true to enable mid-side encoding on stereo input. The + * number of channels must be 2 for this to have any effect. Set to + * \c false to use only independent channel coding. + * + * \default \c false + * \param encoder An encoder instance to set. + * \param value Flag value (see above). + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_do_mid_side_stereo(FLAC__StreamEncoder *encoder, FLAC__bool value); + +/** Set to \c true to enable adaptive switching between mid-side and + * left-right encoding on stereo input. Set to \c false to use + * exhaustive searching. Setting this to \c true requires + * FLAC__stream_encoder_set_do_mid_side_stereo() to also be set to + * \c true in order to have any effect. + * + * \default \c false + * \param encoder An encoder instance to set. + * \param value Flag value (see above). + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_loose_mid_side_stereo(FLAC__StreamEncoder *encoder, FLAC__bool value); + +/** Sets the apodization function(s) the encoder will use when windowing + * audio data for LPC analysis. + * + * The \a specification is a plain ASCII string which specifies exactly + * which functions to use. There may be more than one (up to 32), + * separated by \c ';' characters. Some functions take one or more + * comma-separated arguments in parentheses. + * + * The available functions are \c bartlett, \c bartlett_hann, + * \c blackman, \c blackman_harris_4term_92db, \c connes, \c flattop, + * \c gauss(STDDEV), \c hamming, \c hann, \c kaiser_bessel, \c nuttall, + * \c rectangle, \c triangle, \c tukey(P), \c welch. + * + * For \c gauss(STDDEV), STDDEV specifies the standard deviation + * (0blocksize / (2 ^ order). + * + * Set both min and max values to \c 0 to force a single context, + * whose Rice parameter is based on the residual signal variance. + * Otherwise, set a min and max order, and the encoder will search + * all orders, using the mean of each context for its Rice parameter, + * and use the best. + * + * \default \c 0 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_min_residual_partition_order(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set the maximum partition order to search when coding the residual. + * This is used in tandem with + * FLAC__stream_encoder_set_min_residual_partition_order(). + * + * The partition order determines the context size in the residual. + * The context size will be approximately blocksize / (2 ^ order). + * + * Set both min and max values to \c 0 to force a single context, + * whose Rice parameter is based on the residual signal variance. + * Otherwise, set a min and max order, and the encoder will search + * all orders, using the mean of each context for its Rice parameter, + * and use the best. + * + * \default \c 0 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_max_residual_partition_order(FLAC__StreamEncoder *encoder, unsigned value); + +/** Deprecated. Setting this value has no effect. + * + * \default \c 0 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_rice_parameter_search_dist(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set an estimate of the total samples that will be encoded. + * This is merely an estimate and may be set to \c 0 if unknown. + * This value will be written to the STREAMINFO block before encoding, + * and can remove the need for the caller to rewrite the value later + * if the value is known before encoding. + * + * \default \c 0 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_total_samples_estimate(FLAC__StreamEncoder *encoder, FLAC__uint64 value); + +/** Set the metadata blocks to be emitted to the stream before encoding. + * A value of \c NULL, \c 0 implies no metadata; otherwise, supply an + * array of pointers to metadata blocks. The array is non-const since + * the encoder may need to change the \a is_last flag inside them, and + * in some cases update seek point offsets. Otherwise, the encoder will + * not modify or free the blocks. It is up to the caller to free the + * metadata blocks after encoding finishes. + * + * \note + * The encoder stores only copies of the pointers in the \a metadata array; + * the metadata blocks themselves must survive at least until after + * FLAC__stream_encoder_finish() returns. Do not free the blocks until then. + * + * \note + * The STREAMINFO block is always written and no STREAMINFO block may + * occur in the supplied array. + * + * \note + * By default the encoder does not create a SEEKTABLE. If one is supplied + * in the \a metadata array, but the client has specified that it does not + * support seeking, then the SEEKTABLE will be written verbatim. However + * by itself this is not very useful as the client will not know the stream + * offsets for the seekpoints ahead of time. In order to get a proper + * seektable the client must support seeking. See next note. + * + * \note + * SEEKTABLE blocks are handled specially. Since you will not know + * the values for the seek point stream offsets, you should pass in + * a SEEKTABLE 'template', that is, a SEEKTABLE object with the + * required sample numbers (or placeholder points), with \c 0 for the + * \a frame_samples and \a stream_offset fields for each point. If the + * client has specified that it supports seeking by providing a seek + * callback to FLAC__stream_encoder_init_stream() or both seek AND read + * callback to FLAC__stream_encoder_init_ogg_stream() (or by using + * FLAC__stream_encoder_init*_file() or FLAC__stream_encoder_init*_FILE()), + * then while it is encoding the encoder will fill the stream offsets in + * for you and when encoding is finished, it will seek back and write the + * real values into the SEEKTABLE block in the stream. There are helper + * routines for manipulating seektable template blocks; see metadata.h: + * FLAC__metadata_object_seektable_template_*(). If the client does + * not support seeking, the SEEKTABLE will have inaccurate offsets which + * will slow down or remove the ability to seek in the FLAC stream. + * + * \note + * The encoder instance \b will modify the first \c SEEKTABLE block + * as it transforms the template to a valid seektable while encoding, + * but it is still up to the caller to free all metadata blocks after + * encoding. + * + * \note + * A VORBIS_COMMENT block may be supplied. The vendor string in it + * will be ignored. libFLAC will use it's own vendor string. libFLAC + * will not modify the passed-in VORBIS_COMMENT's vendor string, it + * will simply write it's own into the stream. If no VORBIS_COMMENT + * block is present in the \a metadata array, libFLAC will write an + * empty one, containing only the vendor string. + * + * \note The Ogg FLAC mapping requires that the VORBIS_COMMENT block be + * the second metadata block of the stream. The encoder already supplies + * the STREAMINFO block automatically. If \a metadata does not contain a + * VORBIS_COMMENT block, the encoder will supply that too. Otherwise, if + * \a metadata does contain a VORBIS_COMMENT block and it is not the + * first, the init function will reorder \a metadata by moving the + * VORBIS_COMMENT block to the front; the relative ordering of the other + * blocks will remain as they were. + * + * \note The Ogg FLAC mapping limits the number of metadata blocks per + * stream to \c 65535. If \a num_blocks exceeds this the function will + * return \c false. + * + * \default \c NULL, 0 + * \param encoder An encoder instance to set. + * \param metadata See above. + * \param num_blocks See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + * \c false if the encoder is already initialized, or if + * \a num_blocks > 65535 if encoding to Ogg FLAC, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_metadata(FLAC__StreamEncoder *encoder, FLAC__StreamMetadata **metadata, unsigned num_blocks); + +/** Get the current encoder state. + * + * \param encoder An encoder instance to query. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__StreamEncoderState + * The current encoder state. + */ +FLAC_API FLAC__StreamEncoderState FLAC__stream_encoder_get_state(const FLAC__StreamEncoder *encoder); + +/** Get the state of the verify stream decoder. + * Useful when the stream encoder state is + * \c FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR. + * + * \param encoder An encoder instance to query. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__StreamDecoderState + * The verify stream decoder state. + */ +FLAC_API FLAC__StreamDecoderState FLAC__stream_encoder_get_verify_decoder_state(const FLAC__StreamEncoder *encoder); + +/** Get the current encoder state as a C string. + * This version automatically resolves + * \c FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR by getting the + * verify decoder's state. + * + * \param encoder A encoder instance to query. + * \assert + * \code encoder != NULL \endcode + * \retval const char * + * The encoder state as a C string. Do not modify the contents. + */ +FLAC_API const char *FLAC__stream_encoder_get_resolved_state_string(const FLAC__StreamEncoder *encoder); + +/** Get relevant values about the nature of a verify decoder error. + * Useful when the stream encoder state is + * \c FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR. The arguments should + * be addresses in which the stats will be returned, or NULL if value + * is not desired. + * + * \param encoder An encoder instance to query. + * \param absolute_sample The absolute sample number of the mismatch. + * \param frame_number The number of the frame in which the mismatch occurred. + * \param channel The channel in which the mismatch occurred. + * \param sample The number of the sample (relative to the frame) in + * which the mismatch occurred. + * \param expected The expected value for the sample in question. + * \param got The actual value returned by the decoder. + * \assert + * \code encoder != NULL \endcode + */ +FLAC_API void FLAC__stream_encoder_get_verify_decoder_error_stats(const FLAC__StreamEncoder *encoder, FLAC__uint64 *absolute_sample, unsigned *frame_number, unsigned *channel, unsigned *sample, FLAC__int32 *expected, FLAC__int32 *got); + +/** Get the "verify" flag. + * + * \param encoder An encoder instance to query. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * See FLAC__stream_encoder_set_verify(). + */ +FLAC_API FLAC__bool FLAC__stream_encoder_get_verify(const FLAC__StreamEncoder *encoder); + +/** Get the frame header. + * + * \param encoder An initialized encoder instance in the OK state. + * \param buffer An array of pointers to each channel's signal. + * \param samples The number of samples in one channel. + * \assert + * \code encoder != NULL \endcode + * \code FLAC__stream_encoder_get_state(encoder) == FLAC__STREAM_ENCODER_OK \endcode + * \retval FLAC__bool + * \c true if successful, else \c false; in this case, check the + * encoder state with FLAC__stream_encoder_get_state() to see what + * went wrong. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_process(FLAC__StreamEncoder *encoder, const FLAC__int32 * const buffer[], unsigned samples); + +/** Submit data for encoding. + * This version allows you to supply the input data where the channels + * are interleaved into a single array (i.e. channel0_sample0, + * channel1_sample0, ... , channelN_sample0, channel0_sample1, ...). + * The samples need not be block-aligned but they must be + * sample-aligned, i.e. the first value should be channel0_sample0 + * and the last value channelN_sampleM. Each sample should be a signed + * integer, right-justified to the resolution set by + * FLAC__stream_encoder_set_bits_per_sample(). For example, if the + * resolution is 16 bits per sample, the samples should all be in the + * range [-32768,32767]. + * + * For applications where channel order is important, channels must + * follow the order as described in the + * frame header. + * + * \param encoder An initialized encoder instance in the OK state. + * \param buffer An array of channel-interleaved data (see above). + * \param samples The number of samples in one channel, the same as for + * FLAC__stream_encoder_process(). For example, if + * encoding two channels, \c 1000 \a samples corresponds + * to a \a buffer of 2000 values. + * \assert + * \code encoder != NULL \endcode + * \code FLAC__stream_encoder_get_state(encoder) == FLAC__STREAM_ENCODER_OK \endcode + * \retval FLAC__bool + * \c true if successful, else \c false; in this case, check the + * encoder state with FLAC__stream_encoder_get_state() to see what + * went wrong. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_process_interleaved(FLAC__StreamEncoder *encoder, const FLAC__int32 buffer[], unsigned samples); + +/* \} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Resources/Info.plist b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Resources/Info.plist new file mode 100644 index 0000000..80c56a4 --- /dev/null +++ b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Resources/Info.plist @@ -0,0 +1,40 @@ + + + + + BuildMachineOSBuild + 12C3104 + CFBundleDevelopmentRegion + English + CFBundleExecutable + FLAC + CFBundleIdentifier + ap4y.FLAC + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + FLAC + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 4H127 + DTPlatformVersion + GM + DTSDKBuild + 12C37 + DTSDKName + macosx10.8 + DTXcode + 0460 + DTXcodeBuild + 4H127 + + diff --git a/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Resources/en.lproj/InfoPlist.strings b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/A/Resources/en.lproj/InfoPlist.strings new file mode 100644 index 0000000000000000000000000000000000000000..5e45963c382ba690b781b953a00585212b898ac5 GIT binary patch literal 92 zcmW-XQ3`+{5C!MkQ~2$No+IcIkqMDxWCV8j>LCj|yTg2Mz+o9F%uHlf9u}h9EuK`F a!Y*1dX%G66ZqL#C$|bw0ZoP5@jOGW1ArT7z literal 0 HcmV?d00001 diff --git a/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/Current b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/Current new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ b/Audio-Frameworks/bin/flac/FLAC_OSX/FLAC.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/Audio-Frameworks/bin/flac/headers/FLAC/all.h b/Audio-Frameworks/bin/flac/headers/FLAC/all.h new file mode 100644 index 0000000..c542c0d --- /dev/null +++ b/Audio-Frameworks/bin/flac/headers/FLAC/all.h @@ -0,0 +1,370 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__ALL_H +#define FLAC__ALL_H + +#include "export.h" + +#include "assert.h" +#include "callback.h" +#include "format.h" +#include "metadata.h" +#include "ordinals.h" +#include "stream_decoder.h" +#include "stream_encoder.h" + +/** \mainpage + * + * \section intro Introduction + * + * This is the documentation for the FLAC C and C++ APIs. It is + * highly interconnected; this introduction should give you a top + * level idea of the structure and how to find the information you + * need. As a prerequisite you should have at least a basic + * knowledge of the FLAC format, documented + * here. + * + * \section c_api FLAC C API + * + * The FLAC C API is the interface to libFLAC, a set of structures + * describing the components of FLAC streams, and functions for + * encoding and decoding streams, as well as manipulating FLAC + * metadata in files. The public include files will be installed + * in your include area (for example /usr/include/FLAC/...). + * + * By writing a little code and linking against libFLAC, it is + * relatively easy to add FLAC support to another program. The + * library is licensed under Xiph's BSD license. + * Complete source code of libFLAC as well as the command-line + * encoder and plugins is available and is a useful source of + * examples. + * + * Aside from encoders and decoders, libFLAC provides a powerful + * metadata interface for manipulating metadata in FLAC files. It + * allows the user to add, delete, and modify FLAC metadata blocks + * and it can automatically take advantage of PADDING blocks to avoid + * rewriting the entire FLAC file when changing the size of the + * metadata. + * + * libFLAC usually only requires the standard C library and C math + * library. In particular, threading is not used so there is no + * dependency on a thread library. However, libFLAC does not use + * global variables and should be thread-safe. + * + * libFLAC also supports encoding to and decoding from Ogg FLAC. + * However the metadata editing interfaces currently have limited + * read-only support for Ogg FLAC files. + * + * \section cpp_api FLAC C++ API + * + * The FLAC C++ API is a set of classes that encapsulate the + * structures and functions in libFLAC. They provide slightly more + * functionality with respect to metadata but are otherwise + * equivalent. For the most part, they share the same usage as + * their counterparts in libFLAC, and the FLAC C API documentation + * can be used as a supplement. The public include files + * for the C++ API will be installed in your include area (for + * example /usr/include/FLAC++/...). + * + * libFLAC++ is also licensed under + * Xiph's BSD license. + * + * \section getting_started Getting Started + * + * A good starting point for learning the API is to browse through + * the modules. Modules are logical + * groupings of related functions or classes, which correspond roughly + * to header files or sections of header files. Each module includes a + * detailed description of the general usage of its functions or + * classes. + * + * From there you can go on to look at the documentation of + * individual functions. You can see different views of the individual + * functions through the links in top bar across this page. + * + * If you prefer a more hands-on approach, you can jump right to some + * example code. + * + * \section porting_guide Porting Guide + * + * Starting with FLAC 1.1.3 a \link porting Porting Guide \endlink + * has been introduced which gives detailed instructions on how to + * port your code to newer versions of FLAC. + * + * \section embedded_developers Embedded Developers + * + * libFLAC has grown larger over time as more functionality has been + * included, but much of it may be unnecessary for a particular embedded + * implementation. Unused parts may be pruned by some simple editing of + * src/libFLAC/Makefile.am. In general, the decoders, encoders, and + * metadata interface are all independent from each other. + * + * It is easiest to just describe the dependencies: + * + * - All modules depend on the \link flac_format Format \endlink module. + * - The decoders and encoders depend on the bitbuffer. + * - The decoder is independent of the encoder. The encoder uses the + * decoder because of the verify feature, but this can be removed if + * not needed. + * - Parts of the metadata interface require the stream decoder (but not + * the encoder). + * - Ogg support is selectable through the compile time macro + * \c FLAC__HAS_OGG. + * + * For example, if your application only requires the stream decoder, no + * encoder, and no metadata interface, you can remove the stream encoder + * and the metadata interface, which will greatly reduce the size of the + * library. + * + * Also, there are several places in the libFLAC code with comments marked + * with "OPT:" where a #define can be changed to enable code that might be + * faster on a specific platform. Experimenting with these can yield faster + * binaries. + */ + +/** \defgroup porting Porting Guide for New Versions + * + * This module describes differences in the library interfaces from + * version to version. It assists in the porting of code that uses + * the libraries to newer versions of FLAC. + * + * One simple facility for making porting easier that has been added + * in FLAC 1.1.3 is a set of \c #defines in \c export.h of each + * library's includes (e.g. \c include/FLAC/export.h). The + * \c #defines mirror the libraries' + * libtool version numbers, + * e.g. in libFLAC there are \c FLAC_API_VERSION_CURRENT, + * \c FLAC_API_VERSION_REVISION, and \c FLAC_API_VERSION_AGE. + * These can be used to support multiple versions of an API during the + * transition phase, e.g. + * + * \code + * #if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT <= 7 + * legacy code + * #else + * new code + * #endif + * \endcode + * + * The the source will work for multiple versions and the legacy code can + * easily be removed when the transition is complete. + * + * Another available symbol is FLAC_API_SUPPORTS_OGG_FLAC (defined in + * include/FLAC/export.h), which can be used to determine whether or not + * the library has been compiled with support for Ogg FLAC. This is + * simpler than trying to call an Ogg init function and catching the + * error. + */ + +/** \defgroup porting_1_1_2_to_1_1_3 Porting from FLAC 1.1.2 to 1.1.3 + * \ingroup porting + * + * \brief + * This module describes porting from FLAC 1.1.2 to FLAC 1.1.3. + * + * The main change between the APIs in 1.1.2 and 1.1.3 is that they have + * been simplified. First, libOggFLAC has been merged into libFLAC and + * libOggFLAC++ has been merged into libFLAC++. Second, both the three + * decoding layers and three encoding layers have been merged into a + * single stream decoder and stream encoder. That is, the functionality + * of FLAC__SeekableStreamDecoder and FLAC__FileDecoder has been merged + * into FLAC__StreamDecoder, and FLAC__SeekableStreamEncoder and + * FLAC__FileEncoder into FLAC__StreamEncoder. Only the + * FLAC__StreamDecoder and FLAC__StreamEncoder remain. What this means + * is there is now a single API that can be used to encode or decode + * streams to/from native FLAC or Ogg FLAC and the single API can work + * on both seekable and non-seekable streams. + * + * Instead of creating an encoder or decoder of a certain layer, now the + * client will always create a FLAC__StreamEncoder or + * FLAC__StreamDecoder. The old layers are now differentiated by the + * initialization function. For example, for the decoder, + * FLAC__stream_decoder_init() has been replaced by + * FLAC__stream_decoder_init_stream(). This init function takes + * callbacks for the I/O, and the seeking callbacks are optional. This + * allows the client to use the same object for seekable and + * non-seekable streams. For decoding a FLAC file directly, the client + * can use FLAC__stream_decoder_init_file() and pass just a filename + * and fewer callbacks; most of the other callbacks are supplied + * internally. For situations where fopen()ing by filename is not + * possible (e.g. Unicode filenames on Windows) the client can instead + * open the file itself and supply the FILE* to + * FLAC__stream_decoder_init_FILE(). The init functions now returns a + * FLAC__StreamDecoderInitStatus instead of FLAC__StreamDecoderState. + * Since the callbacks and client data are now passed to the init + * function, the FLAC__stream_decoder_set_*_callback() functions and + * FLAC__stream_decoder_set_client_data() are no longer needed. The + * rest of the calls to the decoder are the same as before. + * + * There are counterpart init functions for Ogg FLAC, e.g. + * FLAC__stream_decoder_init_ogg_stream(). All the rest of the calls + * and callbacks are the same as for native FLAC. + * + * As an example, in FLAC 1.1.2 a seekable stream decoder would have + * been set up like so: + * + * \code + * FLAC__SeekableStreamDecoder *decoder = FLAC__seekable_stream_decoder_new(); + * if(decoder == NULL) do_something; + * FLAC__seekable_stream_decoder_set_md5_checking(decoder, true); + * [... other settings ...] + * FLAC__seekable_stream_decoder_set_read_callback(decoder, my_read_callback); + * FLAC__seekable_stream_decoder_set_seek_callback(decoder, my_seek_callback); + * FLAC__seekable_stream_decoder_set_tell_callback(decoder, my_tell_callback); + * FLAC__seekable_stream_decoder_set_length_callback(decoder, my_length_callback); + * FLAC__seekable_stream_decoder_set_eof_callback(decoder, my_eof_callback); + * FLAC__seekable_stream_decoder_set_write_callback(decoder, my_write_callback); + * FLAC__seekable_stream_decoder_set_metadata_callback(decoder, my_metadata_callback); + * FLAC__seekable_stream_decoder_set_error_callback(decoder, my_error_callback); + * FLAC__seekable_stream_decoder_set_client_data(decoder, my_client_data); + * if(FLAC__seekable_stream_decoder_init(decoder) != FLAC__SEEKABLE_STREAM_DECODER_OK) do_something; + * \endcode + * + * In FLAC 1.1.3 it is like this: + * + * \code + * FLAC__StreamDecoder *decoder = FLAC__stream_decoder_new(); + * if(decoder == NULL) do_something; + * FLAC__stream_decoder_set_md5_checking(decoder, true); + * [... other settings ...] + * if(FLAC__stream_decoder_init_stream( + * decoder, + * my_read_callback, + * my_seek_callback, // or NULL + * my_tell_callback, // or NULL + * my_length_callback, // or NULL + * my_eof_callback, // or NULL + * my_write_callback, + * my_metadata_callback, // or NULL + * my_error_callback, + * my_client_data + * ) != FLAC__STREAM_DECODER_INIT_STATUS_OK) do_something; + * \endcode + * + * or you could do; + * + * \code + * [...] + * FILE *file = fopen("somefile.flac","rb"); + * if(file == NULL) do_somthing; + * if(FLAC__stream_decoder_init_FILE( + * decoder, + * file, + * my_write_callback, + * my_metadata_callback, // or NULL + * my_error_callback, + * my_client_data + * ) != FLAC__STREAM_DECODER_INIT_STATUS_OK) do_something; + * \endcode + * + * or just: + * + * \code + * [...] + * if(FLAC__stream_decoder_init_file( + * decoder, + * "somefile.flac", + * my_write_callback, + * my_metadata_callback, // or NULL + * my_error_callback, + * my_client_data + * ) != FLAC__STREAM_DECODER_INIT_STATUS_OK) do_something; + * \endcode + * + * Another small change to the decoder is in how it handles unparseable + * streams. Before, when the decoder found an unparseable stream + * (reserved for when the decoder encounters a stream from a future + * encoder that it can't parse), it changed the state to + * \c FLAC__STREAM_DECODER_UNPARSEABLE_STREAM. Now the decoder instead + * drops sync and calls the error callback with a new error code + * \c FLAC__STREAM_DECODER_ERROR_STATUS_UNPARSEABLE_STREAM. This is + * more robust. If your error callback does not discriminate on the the + * error state, your code does not need to be changed. + * + * The encoder now has a new setting: + * FLAC__stream_encoder_set_apodization(). This is for setting the + * method used to window the data before LPC analysis. You only need to + * add a call to this function if the default is not suitable. There + * are also two new convenience functions that may be useful: + * FLAC__metadata_object_cuesheet_calculate_cddb_id() and + * FLAC__metadata_get_cuesheet(). + * + * The \a bytes parameter to FLAC__StreamDecoderReadCallback, + * FLAC__StreamEncoderReadCallback, and FLAC__StreamEncoderWriteCallback + * is now \c size_t instead of \c unsigned. + */ + +/** \defgroup porting_1_1_3_to_1_1_4 Porting from FLAC 1.1.3 to 1.1.4 + * \ingroup porting + * + * \brief + * This module describes porting from FLAC 1.1.3 to FLAC 1.1.4. + * + * There were no changes to any of the interfaces from 1.1.3 to 1.1.4. + * There was a slight change in the implementation of + * FLAC__stream_encoder_set_metadata(); the function now makes a copy + * of the \a metadata array of pointers so the client no longer needs + * to maintain it after the call. The objects themselves that are + * pointed to by the array are still not copied though and must be + * maintained until the call to FLAC__stream_encoder_finish(). + */ + +/** \defgroup porting_1_1_4_to_1_2_0 Porting from FLAC 1.1.4 to 1.2.0 + * \ingroup porting + * + * \brief + * This module describes porting from FLAC 1.1.4 to FLAC 1.2.0. + * + * There were only very minor changes to the interfaces from 1.1.4 to 1.2.0. + * In libFLAC, \c FLAC__format_sample_rate_is_subset() was added. + * In libFLAC++, \c FLAC::Decoder::Stream::get_decode_position() was added. + * + * Finally, value of the constant \c FLAC__FRAME_HEADER_RESERVED_LEN + * has changed to reflect the conversion of one of the reserved bits + * into active use. It used to be \c 2 and now is \c 1. However the + * FLAC frame header length has not changed, so to skip the proper + * number of bits, use \c FLAC__FRAME_HEADER_RESERVED_LEN + + * \c FLAC__FRAME_HEADER_BLOCKING_STRATEGY_LEN + */ + +/** \defgroup flac FLAC C API + * + * The FLAC C API is the interface to libFLAC, a set of structures + * describing the components of FLAC streams, and functions for + * encoding and decoding streams, as well as manipulating FLAC + * metadata in files. + * + * You should start with the format components as all other modules + * are dependent on it. + */ + +#endif diff --git a/Audio-Frameworks/bin/flac/headers/FLAC/assert.h b/Audio-Frameworks/bin/flac/headers/FLAC/assert.h new file mode 100644 index 0000000..3fc03f3 --- /dev/null +++ b/Audio-Frameworks/bin/flac/headers/FLAC/assert.h @@ -0,0 +1,45 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__ASSERT_H +#define FLAC__ASSERT_H + +/* we need this since some compilers (like MSVC) leave assert()s on release code (and we don't want to use their ASSERT) */ +#ifdef DEBUG +#include +#define FLAC__ASSERT(x) assert(x) +#define FLAC__ASSERT_DECLARATION(x) x +#else +#define FLAC__ASSERT(x) +#define FLAC__ASSERT_DECLARATION(x) +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/headers/FLAC/callback.h b/Audio-Frameworks/bin/flac/headers/FLAC/callback.h new file mode 100644 index 0000000..c954121 --- /dev/null +++ b/Audio-Frameworks/bin/flac/headers/FLAC/callback.h @@ -0,0 +1,184 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__CALLBACK_H +#define FLAC__CALLBACK_H + +#include "ordinals.h" +#include /* for size_t */ + +/** \file include/FLAC/callback.h + * + * \brief + * This module defines the structures for describing I/O callbacks + * to the other FLAC interfaces. + * + * See the detailed documentation for callbacks in the + * \link flac_callbacks callbacks \endlink module. + */ + +/** \defgroup flac_callbacks FLAC/callback.h: I/O callback structures + * \ingroup flac + * + * \brief + * This module defines the structures for describing I/O callbacks + * to the other FLAC interfaces. + * + * The purpose of the I/O callback functions is to create a common way + * for the metadata interfaces to handle I/O. + * + * Originally the metadata interfaces required filenames as the way of + * specifying FLAC files to operate on. This is problematic in some + * environments so there is an additional option to specify a set of + * callbacks for doing I/O on the FLAC file, instead of the filename. + * + * In addition to the callbacks, a FLAC__IOHandle type is defined as an + * opaque structure for a data source. + * + * The callback function prototypes are similar (but not identical) to the + * stdio functions fread, fwrite, fseek, ftell, feof, and fclose. If you use + * stdio streams to implement the callbacks, you can pass fread, fwrite, and + * fclose anywhere a FLAC__IOCallback_Read, FLAC__IOCallback_Write, or + * FLAC__IOCallback_Close is required, and a FILE* anywhere a FLAC__IOHandle + * is required. \warning You generally CANNOT directly use fseek or ftell + * for FLAC__IOCallback_Seek or FLAC__IOCallback_Tell since on most systems + * these use 32-bit offsets and FLAC requires 64-bit offsets to deal with + * large files. You will have to find an equivalent function (e.g. ftello), + * or write a wrapper. The same is true for feof() since this is usually + * implemented as a macro, not as a function whose address can be taken. + * + * \{ + */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** This is the opaque handle type used by the callbacks. Typically + * this is a \c FILE* or address of a file descriptor. + */ +typedef void* FLAC__IOHandle; + +/** Signature for the read callback. + * The signature and semantics match POSIX fread() implementations + * and can generally be used interchangeably. + * + * \param ptr The address of the read buffer. + * \param size The size of the records to be read. + * \param nmemb The number of records to be read. + * \param handle The handle to the data source. + * \retval size_t + * The number of records read. + */ +typedef size_t (*FLAC__IOCallback_Read) (void *ptr, size_t size, size_t nmemb, FLAC__IOHandle handle); + +/** Signature for the write callback. + * The signature and semantics match POSIX fwrite() implementations + * and can generally be used interchangeably. + * + * \param ptr The address of the write buffer. + * \param size The size of the records to be written. + * \param nmemb The number of records to be written. + * \param handle The handle to the data source. + * \retval size_t + * The number of records written. + */ +typedef size_t (*FLAC__IOCallback_Write) (const void *ptr, size_t size, size_t nmemb, FLAC__IOHandle handle); + +/** Signature for the seek callback. + * The signature and semantics mostly match POSIX fseek() WITH ONE IMPORTANT + * EXCEPTION: the offset is a 64-bit type whereas fseek() is generally 'long' + * and 32-bits wide. + * + * \param handle The handle to the data source. + * \param offset The new position, relative to \a whence + * \param whence \c SEEK_SET, \c SEEK_CUR, or \c SEEK_END + * \retval int + * \c 0 on success, \c -1 on error. + */ +typedef int (*FLAC__IOCallback_Seek) (FLAC__IOHandle handle, FLAC__int64 offset, int whence); + +/** Signature for the tell callback. + * The signature and semantics mostly match POSIX ftell() WITH ONE IMPORTANT + * EXCEPTION: the offset is a 64-bit type whereas ftell() is generally 'long' + * and 32-bits wide. + * + * \param handle The handle to the data source. + * \retval FLAC__int64 + * The current position on success, \c -1 on error. + */ +typedef FLAC__int64 (*FLAC__IOCallback_Tell) (FLAC__IOHandle handle); + +/** Signature for the EOF callback. + * The signature and semantics mostly match POSIX feof() but WATCHOUT: + * on many systems, feof() is a macro, so in this case a wrapper function + * must be provided instead. + * + * \param handle The handle to the data source. + * \retval int + * \c 0 if not at end of file, nonzero if at end of file. + */ +typedef int (*FLAC__IOCallback_Eof) (FLAC__IOHandle handle); + +/** Signature for the close callback. + * The signature and semantics match POSIX fclose() implementations + * and can generally be used interchangeably. + * + * \param handle The handle to the data source. + * \retval int + * \c 0 on success, \c EOF on error. + */ +typedef int (*FLAC__IOCallback_Close) (FLAC__IOHandle handle); + +/** A structure for holding a set of callbacks. + * Each FLAC interface that requires a FLAC__IOCallbacks structure will + * describe which of the callbacks are required. The ones that are not + * required may be set to NULL. + * + * If the seek requirement for an interface is optional, you can signify that + * a data sorce is not seekable by setting the \a seek field to \c NULL. + */ +typedef struct { + FLAC__IOCallback_Read read; + FLAC__IOCallback_Write write; + FLAC__IOCallback_Seek seek; + FLAC__IOCallback_Tell tell; + FLAC__IOCallback_Eof eof; + FLAC__IOCallback_Close close; +} FLAC__IOCallbacks; + +/* \} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/headers/FLAC/export.h b/Audio-Frameworks/bin/flac/headers/FLAC/export.h new file mode 100644 index 0000000..a525f29 --- /dev/null +++ b/Audio-Frameworks/bin/flac/headers/FLAC/export.h @@ -0,0 +1,91 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__EXPORT_H +#define FLAC__EXPORT_H + +/** \file include/FLAC/export.h + * + * \brief + * This module contains #defines and symbols for exporting function + * calls, and providing version information and compiled-in features. + * + * See the \link flac_export export \endlink module. + */ + +/** \defgroup flac_export FLAC/export.h: export symbols + * \ingroup flac + * + * \brief + * This module contains #defines and symbols for exporting function + * calls, and providing version information and compiled-in features. + * + * If you are compiling with MSVC and will link to the static library + * (libFLAC.lib) you should define FLAC__NO_DLL in your project to + * make sure the symbols are exported properly. + * + * \{ + */ + +#if defined(FLAC__NO_DLL) || !defined(_MSC_VER) +#define FLAC_API + +#else + +#ifdef FLAC_API_EXPORTS +#define FLAC_API _declspec(dllexport) +#else +#define FLAC_API _declspec(dllimport) + +#endif +#endif + +/** These #defines will mirror the libtool-based library version number, see + * http://www.gnu.org/software/libtool/manual.html#Libtool-versioning + */ +#define FLAC_API_VERSION_CURRENT 10 +#define FLAC_API_VERSION_REVISION 0 /**< see above */ +#define FLAC_API_VERSION_AGE 2 /**< see above */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** \c 1 if the library has been compiled with support for Ogg FLAC, else \c 0. */ +extern FLAC_API int FLAC_API_SUPPORTS_OGG_FLAC; + +#ifdef __cplusplus +} +#endif + +/* \} */ + +#endif diff --git a/Audio-Frameworks/bin/flac/headers/FLAC/format.h b/Audio-Frameworks/bin/flac/headers/FLAC/format.h new file mode 100644 index 0000000..77e2d01 --- /dev/null +++ b/Audio-Frameworks/bin/flac/headers/FLAC/format.h @@ -0,0 +1,1010 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__FORMAT_H +#define FLAC__FORMAT_H + +#include "export.h" +#include "ordinals.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** \file include/FLAC/format.h + * + * \brief + * This module contains structure definitions for the representation + * of FLAC format components in memory. These are the basic + * structures used by the rest of the interfaces. + * + * See the detailed documentation in the + * \link flac_format format \endlink module. + */ + +/** \defgroup flac_format FLAC/format.h: format components + * \ingroup flac + * + * \brief + * This module contains structure definitions for the representation + * of FLAC format components in memory. These are the basic + * structures used by the rest of the interfaces. + * + * First, you should be familiar with the + * FLAC format. Many of the values here + * follow directly from the specification. As a user of libFLAC, the + * interesting parts really are the structures that describe the frame + * header and metadata blocks. + * + * The format structures here are very primitive, designed to store + * information in an efficient way. Reading information from the + * structures is easy but creating or modifying them directly is + * more complex. For the most part, as a user of a library, editing + * is not necessary; however, for metadata blocks it is, so there are + * convenience functions provided in the \link flac_metadata metadata + * module \endlink to simplify the manipulation of metadata blocks. + * + * \note + * It's not the best convention, but symbols ending in _LEN are in bits + * and _LENGTH are in bytes. _LENGTH symbols are \#defines instead of + * global variables because they are usually used when declaring byte + * arrays and some compilers require compile-time knowledge of array + * sizes when declared on the stack. + * + * \{ + */ + + +/* + Most of the values described in this file are defined by the FLAC + format specification. There is nothing to tune here. +*/ + +/** The largest legal metadata type code. */ +#define FLAC__MAX_METADATA_TYPE_CODE (126u) + +/** The minimum block size, in samples, permitted by the format. */ +#define FLAC__MIN_BLOCK_SIZE (16u) + +/** The maximum block size, in samples, permitted by the format. */ +#define FLAC__MAX_BLOCK_SIZE (65535u) + +/** The maximum block size, in samples, permitted by the FLAC subset for + * sample rates up to 48kHz. */ +#define FLAC__SUBSET_MAX_BLOCK_SIZE_48000HZ (4608u) + +/** The maximum number of channels permitted by the format. */ +#define FLAC__MAX_CHANNELS (8u) + +/** The minimum sample resolution permitted by the format. */ +#define FLAC__MIN_BITS_PER_SAMPLE (4u) + +/** The maximum sample resolution permitted by the format. */ +#define FLAC__MAX_BITS_PER_SAMPLE (32u) + +/** The maximum sample resolution permitted by libFLAC. + * + * \warning + * FLAC__MAX_BITS_PER_SAMPLE is the limit of the FLAC format. However, + * the reference encoder/decoder is currently limited to 24 bits because + * of prevalent 32-bit math, so make sure and use this value when + * appropriate. + */ +#define FLAC__REFERENCE_CODEC_MAX_BITS_PER_SAMPLE (24u) + +/** The maximum sample rate permitted by the format. The value is + * ((2 ^ 16) - 1) * 10; see FLAC format + * as to why. + */ +#define FLAC__MAX_SAMPLE_RATE (655350u) + +/** The maximum LPC order permitted by the format. */ +#define FLAC__MAX_LPC_ORDER (32u) + +/** The maximum LPC order permitted by the FLAC subset for sample rates + * up to 48kHz. */ +#define FLAC__SUBSET_MAX_LPC_ORDER_48000HZ (12u) + +/** The minimum quantized linear predictor coefficient precision + * permitted by the format. + */ +#define FLAC__MIN_QLP_COEFF_PRECISION (5u) + +/** The maximum quantized linear predictor coefficient precision + * permitted by the format. + */ +#define FLAC__MAX_QLP_COEFF_PRECISION (15u) + +/** The maximum order of the fixed predictors permitted by the format. */ +#define FLAC__MAX_FIXED_ORDER (4u) + +/** The maximum Rice partition order permitted by the format. */ +#define FLAC__MAX_RICE_PARTITION_ORDER (15u) + +/** The maximum Rice partition order permitted by the FLAC Subset. */ +#define FLAC__SUBSET_MAX_RICE_PARTITION_ORDER (8u) + +/** The version string of the release, stamped onto the libraries and binaries. + * + * \note + * This does not correspond to the shared library version number, which + * is used to determine binary compatibility. + */ +extern FLAC_API const char *FLAC__VERSION_STRING; + +/** The vendor string inserted by the encoder into the VORBIS_COMMENT block. + * This is a NUL-terminated ASCII string; when inserted into the + * VORBIS_COMMENT the trailing null is stripped. + */ +extern FLAC_API const char *FLAC__VENDOR_STRING; + +/** The byte string representation of the beginning of a FLAC stream. */ +extern FLAC_API const FLAC__byte FLAC__STREAM_SYNC_STRING[4]; /* = "fLaC" */ + +/** The 32-bit integer big-endian representation of the beginning of + * a FLAC stream. + */ +extern FLAC_API const unsigned FLAC__STREAM_SYNC; /* = 0x664C6143 */ + +/** The length of the FLAC signature in bits. */ +extern FLAC_API const unsigned FLAC__STREAM_SYNC_LEN; /* = 32 bits */ + +/** The length of the FLAC signature in bytes. */ +#define FLAC__STREAM_SYNC_LENGTH (4u) + + +/***************************************************************************** + * + * Subframe structures + * + *****************************************************************************/ + +/*****************************************************************************/ + +/** An enumeration of the available entropy coding methods. */ +typedef enum { + FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE = 0, + /**< Residual is coded by partitioning into contexts, each with it's own + * 4-bit Rice parameter. */ + + FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE2 = 1 + /**< Residual is coded by partitioning into contexts, each with it's own + * 5-bit Rice parameter. */ +} FLAC__EntropyCodingMethodType; + +/** Maps a FLAC__EntropyCodingMethodType to a C string. + * + * Using a FLAC__EntropyCodingMethodType as the index to this array will + * give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__EntropyCodingMethodTypeString[]; + + +/** Contents of a Rice partitioned residual + */ +typedef struct { + + unsigned *parameters; + /**< The Rice parameters for each context. */ + + unsigned *raw_bits; + /**< Widths for escape-coded partitions. Will be non-zero for escaped + * partitions and zero for unescaped partitions. + */ + + unsigned capacity_by_order; + /**< The capacity of the \a parameters and \a raw_bits arrays + * specified as an order, i.e. the number of array elements + * allocated is 2 ^ \a capacity_by_order. + */ +} FLAC__EntropyCodingMethod_PartitionedRiceContents; + +/** Header for a Rice partitioned residual. (c.f. format specification) + */ +typedef struct { + + unsigned order; + /**< The partition order, i.e. # of contexts = 2 ^ \a order. */ + + const FLAC__EntropyCodingMethod_PartitionedRiceContents *contents; + /**< The context's Rice parameters and/or raw bits. */ + +} FLAC__EntropyCodingMethod_PartitionedRice; + +extern FLAC_API const unsigned FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_ORDER_LEN; /**< == 4 (bits) */ +extern FLAC_API const unsigned FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_PARAMETER_LEN; /**< == 4 (bits) */ +extern FLAC_API const unsigned FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE2_PARAMETER_LEN; /**< == 5 (bits) */ +extern FLAC_API const unsigned FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_RAW_LEN; /**< == 5 (bits) */ + +extern FLAC_API const unsigned FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_ESCAPE_PARAMETER; +/**< == (1<format specification) + */ +typedef struct { + FLAC__EntropyCodingMethodType type; + union { + FLAC__EntropyCodingMethod_PartitionedRice partitioned_rice; + } data; +} FLAC__EntropyCodingMethod; + +extern FLAC_API const unsigned FLAC__ENTROPY_CODING_METHOD_TYPE_LEN; /**< == 2 (bits) */ + +/*****************************************************************************/ + +/** An enumeration of the available subframe types. */ +typedef enum { + FLAC__SUBFRAME_TYPE_CONSTANT = 0, /**< constant signal */ + FLAC__SUBFRAME_TYPE_VERBATIM = 1, /**< uncompressed signal */ + FLAC__SUBFRAME_TYPE_FIXED = 2, /**< fixed polynomial prediction */ + FLAC__SUBFRAME_TYPE_LPC = 3 /**< linear prediction */ +} FLAC__SubframeType; + +/** Maps a FLAC__SubframeType to a C string. + * + * Using a FLAC__SubframeType as the index to this array will + * give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__SubframeTypeString[]; + + +/** CONSTANT subframe. (c.f. format specification) + */ +typedef struct { + FLAC__int32 value; /**< The constant signal value. */ +} FLAC__Subframe_Constant; + + +/** VERBATIM subframe. (c.f. format specification) + */ +typedef struct { + const FLAC__int32 *data; /**< A pointer to verbatim signal. */ +} FLAC__Subframe_Verbatim; + + +/** FIXED subframe. (c.f. format specification) + */ +typedef struct { + FLAC__EntropyCodingMethod entropy_coding_method; + /**< The residual coding method. */ + + unsigned order; + /**< The polynomial order. */ + + FLAC__int32 warmup[FLAC__MAX_FIXED_ORDER]; + /**< Warmup samples to prime the predictor, length == order. */ + + const FLAC__int32 *residual; + /**< The residual signal, length == (blocksize minus order) samples. */ +} FLAC__Subframe_Fixed; + + +/** LPC subframe. (c.f. format specification) + */ +typedef struct { + FLAC__EntropyCodingMethod entropy_coding_method; + /**< The residual coding method. */ + + unsigned order; + /**< The FIR order. */ + + unsigned qlp_coeff_precision; + /**< Quantized FIR filter coefficient precision in bits. */ + + int quantization_level; + /**< The qlp coeff shift needed. */ + + FLAC__int32 qlp_coeff[FLAC__MAX_LPC_ORDER]; + /**< FIR filter coefficients. */ + + FLAC__int32 warmup[FLAC__MAX_LPC_ORDER]; + /**< Warmup samples to prime the predictor, length == order. */ + + const FLAC__int32 *residual; + /**< The residual signal, length == (blocksize minus order) samples. */ +} FLAC__Subframe_LPC; + +extern FLAC_API const unsigned FLAC__SUBFRAME_LPC_QLP_COEFF_PRECISION_LEN; /**< == 4 (bits) */ +extern FLAC_API const unsigned FLAC__SUBFRAME_LPC_QLP_SHIFT_LEN; /**< == 5 (bits) */ + + +/** FLAC subframe structure. (c.f. format specification) + */ +typedef struct { + FLAC__SubframeType type; + union { + FLAC__Subframe_Constant constant; + FLAC__Subframe_Fixed fixed; + FLAC__Subframe_LPC lpc; + FLAC__Subframe_Verbatim verbatim; + } data; + unsigned wasted_bits; +} FLAC__Subframe; + +/** == 1 (bit) + * + * This used to be a zero-padding bit (hence the name + * FLAC__SUBFRAME_ZERO_PAD_LEN) but is now a reserved bit. It still has a + * mandatory value of \c 0 but in the future may take on the value \c 0 or \c 1 + * to mean something else. + */ +extern FLAC_API const unsigned FLAC__SUBFRAME_ZERO_PAD_LEN; +extern FLAC_API const unsigned FLAC__SUBFRAME_TYPE_LEN; /**< == 6 (bits) */ +extern FLAC_API const unsigned FLAC__SUBFRAME_WASTED_BITS_FLAG_LEN; /**< == 1 (bit) */ + +extern FLAC_API const unsigned FLAC__SUBFRAME_TYPE_CONSTANT_BYTE_ALIGNED_MASK; /**< = 0x00 */ +extern FLAC_API const unsigned FLAC__SUBFRAME_TYPE_VERBATIM_BYTE_ALIGNED_MASK; /**< = 0x02 */ +extern FLAC_API const unsigned FLAC__SUBFRAME_TYPE_FIXED_BYTE_ALIGNED_MASK; /**< = 0x10 */ +extern FLAC_API const unsigned FLAC__SUBFRAME_TYPE_LPC_BYTE_ALIGNED_MASK; /**< = 0x40 */ + +/*****************************************************************************/ + + +/***************************************************************************** + * + * Frame structures + * + *****************************************************************************/ + +/** An enumeration of the available channel assignments. */ +typedef enum { + FLAC__CHANNEL_ASSIGNMENT_INDEPENDENT = 0, /**< independent channels */ + FLAC__CHANNEL_ASSIGNMENT_LEFT_SIDE = 1, /**< left+side stereo */ + FLAC__CHANNEL_ASSIGNMENT_RIGHT_SIDE = 2, /**< right+side stereo */ + FLAC__CHANNEL_ASSIGNMENT_MID_SIDE = 3 /**< mid+side stereo */ +} FLAC__ChannelAssignment; + +/** Maps a FLAC__ChannelAssignment to a C string. + * + * Using a FLAC__ChannelAssignment as the index to this array will + * give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__ChannelAssignmentString[]; + +/** An enumeration of the possible frame numbering methods. */ +typedef enum { + FLAC__FRAME_NUMBER_TYPE_FRAME_NUMBER, /**< number contains the frame number */ + FLAC__FRAME_NUMBER_TYPE_SAMPLE_NUMBER /**< number contains the sample number of first sample in frame */ +} FLAC__FrameNumberType; + +/** Maps a FLAC__FrameNumberType to a C string. + * + * Using a FLAC__FrameNumberType as the index to this array will + * give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__FrameNumberTypeString[]; + + +/** FLAC frame header structure. (c.f. format specification) + */ +typedef struct { + unsigned blocksize; + /**< The number of samples per subframe. */ + + unsigned sample_rate; + /**< The sample rate in Hz. */ + + unsigned channels; + /**< The number of channels (== number of subframes). */ + + FLAC__ChannelAssignment channel_assignment; + /**< The channel assignment for the frame. */ + + unsigned bits_per_sample; + /**< The sample resolution. */ + + FLAC__FrameNumberType number_type; + /**< The numbering scheme used for the frame. As a convenience, the + * decoder will always convert a frame number to a sample number because + * the rules are complex. */ + + union { + FLAC__uint32 frame_number; + FLAC__uint64 sample_number; + } number; + /**< The frame number or sample number of first sample in frame; + * use the \a number_type value to determine which to use. */ + + FLAC__uint8 crc; + /**< CRC-8 (polynomial = x^8 + x^2 + x^1 + x^0, initialized with 0) + * of the raw frame header bytes, meaning everything before the CRC byte + * including the sync code. + */ +} FLAC__FrameHeader; + +extern FLAC_API const unsigned FLAC__FRAME_HEADER_SYNC; /**< == 0x3ffe; the frame header sync code */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_SYNC_LEN; /**< == 14 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_RESERVED_LEN; /**< == 1 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_BLOCKING_STRATEGY_LEN; /**< == 1 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_BLOCK_SIZE_LEN; /**< == 4 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_SAMPLE_RATE_LEN; /**< == 4 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_CHANNEL_ASSIGNMENT_LEN; /**< == 4 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_BITS_PER_SAMPLE_LEN; /**< == 3 (bits) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_ZERO_PAD_LEN; /**< == 1 (bit) */ +extern FLAC_API const unsigned FLAC__FRAME_HEADER_CRC_LEN; /**< == 8 (bits) */ + + +/** FLAC frame footer structure. (c.f. format specification) + */ +typedef struct { + FLAC__uint16 crc; + /**< CRC-16 (polynomial = x^16 + x^15 + x^2 + x^0, initialized with + * 0) of the bytes before the crc, back to and including the frame header + * sync code. + */ +} FLAC__FrameFooter; + +extern FLAC_API const unsigned FLAC__FRAME_FOOTER_CRC_LEN; /**< == 16 (bits) */ + + +/** FLAC frame structure. (c.f. format specification) + */ +typedef struct { + FLAC__FrameHeader header; + FLAC__Subframe subframes[FLAC__MAX_CHANNELS]; + FLAC__FrameFooter footer; +} FLAC__Frame; + +/*****************************************************************************/ + + +/***************************************************************************** + * + * Meta-data structures + * + *****************************************************************************/ + +/** An enumeration of the available metadata block types. */ +typedef enum { + + FLAC__METADATA_TYPE_STREAMINFO = 0, + /**< STREAMINFO block */ + + FLAC__METADATA_TYPE_PADDING = 1, + /**< PADDING block */ + + FLAC__METADATA_TYPE_APPLICATION = 2, + /**< APPLICATION block */ + + FLAC__METADATA_TYPE_SEEKTABLE = 3, + /**< SEEKTABLE block */ + + FLAC__METADATA_TYPE_VORBIS_COMMENT = 4, + /**< VORBISCOMMENT block (a.k.a. FLAC tags) */ + + FLAC__METADATA_TYPE_CUESHEET = 5, + /**< CUESHEET block */ + + FLAC__METADATA_TYPE_PICTURE = 6, + /**< PICTURE block */ + + FLAC__METADATA_TYPE_UNDEFINED = 7 + /**< marker to denote beginning of undefined type range; this number will increase as new metadata types are added */ + +} FLAC__MetadataType; + +/** Maps a FLAC__MetadataType to a C string. + * + * Using a FLAC__MetadataType as the index to this array will + * give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__MetadataTypeString[]; + + +/** FLAC STREAMINFO structure. (c.f. format specification) + */ +typedef struct { + unsigned min_blocksize, max_blocksize; + unsigned min_framesize, max_framesize; + unsigned sample_rate; + unsigned channels; + unsigned bits_per_sample; + FLAC__uint64 total_samples; + FLAC__byte md5sum[16]; +} FLAC__StreamMetadata_StreamInfo; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_MIN_BLOCK_SIZE_LEN; /**< == 16 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_MAX_BLOCK_SIZE_LEN; /**< == 16 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_MIN_FRAME_SIZE_LEN; /**< == 24 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_MAX_FRAME_SIZE_LEN; /**< == 24 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_SAMPLE_RATE_LEN; /**< == 20 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_CHANNELS_LEN; /**< == 3 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_BITS_PER_SAMPLE_LEN; /**< == 5 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_TOTAL_SAMPLES_LEN; /**< == 36 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_STREAMINFO_MD5SUM_LEN; /**< == 128 (bits) */ + +/** The total stream length of the STREAMINFO block in bytes. */ +#define FLAC__STREAM_METADATA_STREAMINFO_LENGTH (34u) + +/** FLAC PADDING structure. (c.f. format specification) + */ +typedef struct { + int dummy; + /**< Conceptually this is an empty struct since we don't store the + * padding bytes. Empty structs are not allowed by some C compilers, + * hence the dummy. + */ +} FLAC__StreamMetadata_Padding; + + +/** FLAC APPLICATION structure. (c.f. format specification) + */ +typedef struct { + FLAC__byte id[4]; + FLAC__byte *data; +} FLAC__StreamMetadata_Application; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_APPLICATION_ID_LEN; /**< == 32 (bits) */ + +/** SeekPoint structure used in SEEKTABLE blocks. (c.f. format specification) + */ +typedef struct { + FLAC__uint64 sample_number; + /**< The sample number of the target frame. */ + + FLAC__uint64 stream_offset; + /**< The offset, in bytes, of the target frame with respect to + * beginning of the first frame. */ + + unsigned frame_samples; + /**< The number of samples in the target frame. */ +} FLAC__StreamMetadata_SeekPoint; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_SEEKPOINT_SAMPLE_NUMBER_LEN; /**< == 64 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_SEEKPOINT_STREAM_OFFSET_LEN; /**< == 64 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_SEEKPOINT_FRAME_SAMPLES_LEN; /**< == 16 (bits) */ + +/** The total stream length of a seek point in bytes. */ +#define FLAC__STREAM_METADATA_SEEKPOINT_LENGTH (18u) + +/** The value used in the \a sample_number field of + * FLAC__StreamMetadataSeekPoint used to indicate a placeholder + * point (== 0xffffffffffffffff). + */ +extern FLAC_API const FLAC__uint64 FLAC__STREAM_METADATA_SEEKPOINT_PLACEHOLDER; + + +/** FLAC SEEKTABLE structure. (c.f. format specification) + * + * \note From the format specification: + * - The seek points must be sorted by ascending sample number. + * - Each seek point's sample number must be the first sample of the + * target frame. + * - Each seek point's sample number must be unique within the table. + * - Existence of a SEEKTABLE block implies a correct setting of + * total_samples in the stream_info block. + * - Behavior is undefined when more than one SEEKTABLE block is + * present in a stream. + */ +typedef struct { + unsigned num_points; + FLAC__StreamMetadata_SeekPoint *points; +} FLAC__StreamMetadata_SeekTable; + + +/** Vorbis comment entry structure used in VORBIS_COMMENT blocks. (c.f. format specification) + * + * For convenience, the APIs maintain a trailing NUL character at the end of + * \a entry which is not counted toward \a length, i.e. + * \code strlen(entry) == length \endcode + */ +typedef struct { + FLAC__uint32 length; + FLAC__byte *entry; +} FLAC__StreamMetadata_VorbisComment_Entry; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_VORBIS_COMMENT_ENTRY_LENGTH_LEN; /**< == 32 (bits) */ + + +/** FLAC VORBIS_COMMENT structure. (c.f. format specification) + */ +typedef struct { + FLAC__StreamMetadata_VorbisComment_Entry vendor_string; + FLAC__uint32 num_comments; + FLAC__StreamMetadata_VorbisComment_Entry *comments; +} FLAC__StreamMetadata_VorbisComment; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_VORBIS_COMMENT_NUM_COMMENTS_LEN; /**< == 32 (bits) */ + + +/** FLAC CUESHEET track index structure. (See the + * format specification for + * the full description of each field.) + */ +typedef struct { + FLAC__uint64 offset; + /**< Offset in samples, relative to the track offset, of the index + * point. + */ + + FLAC__byte number; + /**< The index point number. */ +} FLAC__StreamMetadata_CueSheet_Index; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_INDEX_OFFSET_LEN; /**< == 64 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_INDEX_NUMBER_LEN; /**< == 8 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_INDEX_RESERVED_LEN; /**< == 3*8 (bits) */ + + +/** FLAC CUESHEET track structure. (See the + * format specification for + * the full description of each field.) + */ +typedef struct { + FLAC__uint64 offset; + /**< Track offset in samples, relative to the beginning of the FLAC audio stream. */ + + FLAC__byte number; + /**< The track number. */ + + char isrc[13]; + /**< Track ISRC. This is a 12-digit alphanumeric code plus a trailing \c NUL byte */ + + unsigned type:1; + /**< The track type: 0 for audio, 1 for non-audio. */ + + unsigned pre_emphasis:1; + /**< The pre-emphasis flag: 0 for no pre-emphasis, 1 for pre-emphasis. */ + + FLAC__byte num_indices; + /**< The number of track index points. */ + + FLAC__StreamMetadata_CueSheet_Index *indices; + /**< NULL if num_indices == 0, else pointer to array of index points. */ + +} FLAC__StreamMetadata_CueSheet_Track; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_OFFSET_LEN; /**< == 64 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_NUMBER_LEN; /**< == 8 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_ISRC_LEN; /**< == 12*8 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_TYPE_LEN; /**< == 1 (bit) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_PRE_EMPHASIS_LEN; /**< == 1 (bit) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_RESERVED_LEN; /**< == 6+13*8 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_TRACK_NUM_INDICES_LEN; /**< == 8 (bits) */ + + +/** FLAC CUESHEET structure. (See the + * format specification + * for the full description of each field.) + */ +typedef struct { + char media_catalog_number[129]; + /**< Media catalog number, in ASCII printable characters 0x20-0x7e. In + * general, the media catalog number may be 0 to 128 bytes long; any + * unused characters should be right-padded with NUL characters. + */ + + FLAC__uint64 lead_in; + /**< The number of lead-in samples. */ + + FLAC__bool is_cd; + /**< \c true if CUESHEET corresponds to a Compact Disc, else \c false. */ + + unsigned num_tracks; + /**< The number of tracks. */ + + FLAC__StreamMetadata_CueSheet_Track *tracks; + /**< NULL if num_tracks == 0, else pointer to array of tracks. */ + +} FLAC__StreamMetadata_CueSheet; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_MEDIA_CATALOG_NUMBER_LEN; /**< == 128*8 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_LEAD_IN_LEN; /**< == 64 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_IS_CD_LEN; /**< == 1 (bit) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_RESERVED_LEN; /**< == 7+258*8 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_CUESHEET_NUM_TRACKS_LEN; /**< == 8 (bits) */ + + +/** An enumeration of the PICTURE types (see FLAC__StreamMetadataPicture and id3 v2.4 APIC tag). */ +typedef enum { + FLAC__STREAM_METADATA_PICTURE_TYPE_OTHER = 0, /**< Other */ + FLAC__STREAM_METADATA_PICTURE_TYPE_FILE_ICON_STANDARD = 1, /**< 32x32 pixels 'file icon' (PNG only) */ + FLAC__STREAM_METADATA_PICTURE_TYPE_FILE_ICON = 2, /**< Other file icon */ + FLAC__STREAM_METADATA_PICTURE_TYPE_FRONT_COVER = 3, /**< Cover (front) */ + FLAC__STREAM_METADATA_PICTURE_TYPE_BACK_COVER = 4, /**< Cover (back) */ + FLAC__STREAM_METADATA_PICTURE_TYPE_LEAFLET_PAGE = 5, /**< Leaflet page */ + FLAC__STREAM_METADATA_PICTURE_TYPE_MEDIA = 6, /**< Media (e.g. label side of CD) */ + FLAC__STREAM_METADATA_PICTURE_TYPE_LEAD_ARTIST = 7, /**< Lead artist/lead performer/soloist */ + FLAC__STREAM_METADATA_PICTURE_TYPE_ARTIST = 8, /**< Artist/performer */ + FLAC__STREAM_METADATA_PICTURE_TYPE_CONDUCTOR = 9, /**< Conductor */ + FLAC__STREAM_METADATA_PICTURE_TYPE_BAND = 10, /**< Band/Orchestra */ + FLAC__STREAM_METADATA_PICTURE_TYPE_COMPOSER = 11, /**< Composer */ + FLAC__STREAM_METADATA_PICTURE_TYPE_LYRICIST = 12, /**< Lyricist/text writer */ + FLAC__STREAM_METADATA_PICTURE_TYPE_RECORDING_LOCATION = 13, /**< Recording Location */ + FLAC__STREAM_METADATA_PICTURE_TYPE_DURING_RECORDING = 14, /**< During recording */ + FLAC__STREAM_METADATA_PICTURE_TYPE_DURING_PERFORMANCE = 15, /**< During performance */ + FLAC__STREAM_METADATA_PICTURE_TYPE_VIDEO_SCREEN_CAPTURE = 16, /**< Movie/video screen capture */ + FLAC__STREAM_METADATA_PICTURE_TYPE_FISH = 17, /**< A bright coloured fish */ + FLAC__STREAM_METADATA_PICTURE_TYPE_ILLUSTRATION = 18, /**< Illustration */ + FLAC__STREAM_METADATA_PICTURE_TYPE_BAND_LOGOTYPE = 19, /**< Band/artist logotype */ + FLAC__STREAM_METADATA_PICTURE_TYPE_PUBLISHER_LOGOTYPE = 20, /**< Publisher/Studio logotype */ + FLAC__STREAM_METADATA_PICTURE_TYPE_UNDEFINED +} FLAC__StreamMetadata_Picture_Type; + +/** Maps a FLAC__StreamMetadata_Picture_Type to a C string. + * + * Using a FLAC__StreamMetadata_Picture_Type as the index to this array + * will give the string equivalent. The contents should not be + * modified. + */ +extern FLAC_API const char * const FLAC__StreamMetadata_Picture_TypeString[]; + +/** FLAC PICTURE structure. (See the + * format specification + * for the full description of each field.) + */ +typedef struct { + FLAC__StreamMetadata_Picture_Type type; + /**< The kind of picture stored. */ + + char *mime_type; + /**< Picture data's MIME type, in ASCII printable characters + * 0x20-0x7e, NUL terminated. For best compatibility with players, + * use picture data of MIME type \c image/jpeg or \c image/png. A + * MIME type of '-->' is also allowed, in which case the picture + * data should be a complete URL. In file storage, the MIME type is + * stored as a 32-bit length followed by the ASCII string with no NUL + * terminator, but is converted to a plain C string in this structure + * for convenience. + */ + + FLAC__byte *description; + /**< Picture's description in UTF-8, NUL terminated. In file storage, + * the description is stored as a 32-bit length followed by the UTF-8 + * string with no NUL terminator, but is converted to a plain C string + * in this structure for convenience. + */ + + FLAC__uint32 width; + /**< Picture's width in pixels. */ + + FLAC__uint32 height; + /**< Picture's height in pixels. */ + + FLAC__uint32 depth; + /**< Picture's color depth in bits-per-pixel. */ + + FLAC__uint32 colors; + /**< For indexed palettes (like GIF), picture's number of colors (the + * number of palette entries), or \c 0 for non-indexed (i.e. 2^depth). + */ + + FLAC__uint32 data_length; + /**< Length of binary picture data in bytes. */ + + FLAC__byte *data; + /**< Binary picture data. */ + +} FLAC__StreamMetadata_Picture; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_TYPE_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_MIME_TYPE_LENGTH_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_DESCRIPTION_LENGTH_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_WIDTH_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_HEIGHT_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_DEPTH_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_COLORS_LEN; /**< == 32 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_PICTURE_DATA_LENGTH_LEN; /**< == 32 (bits) */ + + +/** Structure that is used when a metadata block of unknown type is loaded. + * The contents are opaque. The structure is used only internally to + * correctly handle unknown metadata. + */ +typedef struct { + FLAC__byte *data; +} FLAC__StreamMetadata_Unknown; + + +/** FLAC metadata block structure. (c.f. format specification) + */ +typedef struct { + FLAC__MetadataType type; + /**< The type of the metadata block; used determine which member of the + * \a data union to dereference. If type >= FLAC__METADATA_TYPE_UNDEFINED + * then \a data.unknown must be used. */ + + FLAC__bool is_last; + /**< \c true if this metadata block is the last, else \a false */ + + unsigned length; + /**< Length, in bytes, of the block data as it appears in the stream. */ + + union { + FLAC__StreamMetadata_StreamInfo stream_info; + FLAC__StreamMetadata_Padding padding; + FLAC__StreamMetadata_Application application; + FLAC__StreamMetadata_SeekTable seek_table; + FLAC__StreamMetadata_VorbisComment vorbis_comment; + FLAC__StreamMetadata_CueSheet cue_sheet; + FLAC__StreamMetadata_Picture picture; + FLAC__StreamMetadata_Unknown unknown; + } data; + /**< Polymorphic block data; use the \a type value to determine which + * to use. */ +} FLAC__StreamMetadata; + +extern FLAC_API const unsigned FLAC__STREAM_METADATA_IS_LAST_LEN; /**< == 1 (bit) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_TYPE_LEN; /**< == 7 (bits) */ +extern FLAC_API const unsigned FLAC__STREAM_METADATA_LENGTH_LEN; /**< == 24 (bits) */ + +/** The total stream length of a metadata block header in bytes. */ +#define FLAC__STREAM_METADATA_HEADER_LENGTH (4u) + +/*****************************************************************************/ + + +/***************************************************************************** + * + * Utility functions + * + *****************************************************************************/ + +/** Tests that a sample rate is valid for FLAC. + * + * \param sample_rate The sample rate to test for compliance. + * \retval FLAC__bool + * \c true if the given sample rate conforms to the specification, else + * \c false. + */ +FLAC_API FLAC__bool FLAC__format_sample_rate_is_valid(unsigned sample_rate); + +/** Tests that a sample rate is valid for the FLAC subset. The subset rules + * for valid sample rates are slightly more complex since the rate has to + * be expressible completely in the frame header. + * + * \param sample_rate The sample rate to test for compliance. + * \retval FLAC__bool + * \c true if the given sample rate conforms to the specification for the + * subset, else \c false. + */ +FLAC_API FLAC__bool FLAC__format_sample_rate_is_subset(unsigned sample_rate); + +/** Check a Vorbis comment entry name to see if it conforms to the Vorbis + * comment specification. + * + * Vorbis comment names must be composed only of characters from + * [0x20-0x3C,0x3E-0x7D]. + * + * \param name A NUL-terminated string to be checked. + * \assert + * \code name != NULL \endcode + * \retval FLAC__bool + * \c false if entry name is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__format_vorbiscomment_entry_name_is_legal(const char *name); + +/** Check a Vorbis comment entry value to see if it conforms to the Vorbis + * comment specification. + * + * Vorbis comment values must be valid UTF-8 sequences. + * + * \param value A string to be checked. + * \param length A the length of \a value in bytes. May be + * \c (unsigned)(-1) to indicate that \a value is a plain + * UTF-8 NUL-terminated string. + * \assert + * \code value != NULL \endcode + * \retval FLAC__bool + * \c false if entry name is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__format_vorbiscomment_entry_value_is_legal(const FLAC__byte *value, unsigned length); + +/** Check a Vorbis comment entry to see if it conforms to the Vorbis + * comment specification. + * + * Vorbis comment entries must be of the form 'name=value', and 'name' and + * 'value' must be legal according to + * FLAC__format_vorbiscomment_entry_name_is_legal() and + * FLAC__format_vorbiscomment_entry_value_is_legal() respectively. + * + * \param entry An entry to be checked. + * \param length The length of \a entry in bytes. + * \assert + * \code value != NULL \endcode + * \retval FLAC__bool + * \c false if entry name is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__format_vorbiscomment_entry_is_legal(const FLAC__byte *entry, unsigned length); + +/** Check a seek table to see if it conforms to the FLAC specification. + * See the format specification for limits on the contents of the + * seek table. + * + * \param seek_table A pointer to a seek table to be checked. + * \assert + * \code seek_table != NULL \endcode + * \retval FLAC__bool + * \c false if seek table is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__format_seektable_is_legal(const FLAC__StreamMetadata_SeekTable *seek_table); + +/** Sort a seek table's seek points according to the format specification. + * This includes a "unique-ification" step to remove duplicates, i.e. + * seek points with identical \a sample_number values. Duplicate seek + * points are converted into placeholder points and sorted to the end of + * the table. + * + * \param seek_table A pointer to a seek table to be sorted. + * \assert + * \code seek_table != NULL \endcode + * \retval unsigned + * The number of duplicate seek points converted into placeholders. + */ +FLAC_API unsigned FLAC__format_seektable_sort(FLAC__StreamMetadata_SeekTable *seek_table); + +/** Check a cue sheet to see if it conforms to the FLAC specification. + * See the format specification for limits on the contents of the + * cue sheet. + * + * \param cue_sheet A pointer to an existing cue sheet to be checked. + * \param check_cd_da_subset If \c true, check CUESHEET against more + * stringent requirements for a CD-DA (audio) disc. + * \param violation Address of a pointer to a string. If there is a + * violation, a pointer to a string explanation of the + * violation will be returned here. \a violation may be + * \c NULL if you don't need the returned string. Do not + * free the returned string; it will always point to static + * data. + * \assert + * \code cue_sheet != NULL \endcode + * \retval FLAC__bool + * \c false if cue sheet is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__format_cuesheet_is_legal(const FLAC__StreamMetadata_CueSheet *cue_sheet, FLAC__bool check_cd_da_subset, const char **violation); + +/** Check picture data to see if it conforms to the FLAC specification. + * See the format specification for limits on the contents of the + * PICTURE block. + * + * \param picture A pointer to existing picture data to be checked. + * \param violation Address of a pointer to a string. If there is a + * violation, a pointer to a string explanation of the + * violation will be returned here. \a violation may be + * \c NULL if you don't need the returned string. Do not + * free the returned string; it will always point to static + * data. + * \assert + * \code picture != NULL \endcode + * \retval FLAC__bool + * \c false if picture data is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__format_picture_is_legal(const FLAC__StreamMetadata_Picture *picture, const char **violation); + +/* \} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/headers/FLAC/metadata.h b/Audio-Frameworks/bin/flac/headers/FLAC/metadata.h new file mode 100644 index 0000000..fff90b0 --- /dev/null +++ b/Audio-Frameworks/bin/flac/headers/FLAC/metadata.h @@ -0,0 +1,2181 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__METADATA_H +#define FLAC__METADATA_H + +#include /* for off_t */ +#include "export.h" +#include "callback.h" +#include "format.h" + +/* -------------------------------------------------------------------- + (For an example of how all these routines are used, see the source + code for the unit tests in src/test_libFLAC/metadata_*.c, or + metaflac in src/metaflac/) + ------------------------------------------------------------------*/ + +/** \file include/FLAC/metadata.h + * + * \brief + * This module provides functions for creating and manipulating FLAC + * metadata blocks in memory, and three progressively more powerful + * interfaces for traversing and editing metadata in FLAC files. + * + * See the detailed documentation for each interface in the + * \link flac_metadata metadata \endlink module. + */ + +/** \defgroup flac_metadata FLAC/metadata.h: metadata interfaces + * \ingroup flac + * + * \brief + * This module provides functions for creating and manipulating FLAC + * metadata blocks in memory, and three progressively more powerful + * interfaces for traversing and editing metadata in native FLAC files. + * Note that currently only the Chain interface (level 2) supports Ogg + * FLAC files, and it is read-only i.e. no writing back changed + * metadata to file. + * + * There are three metadata interfaces of increasing complexity: + * + * Level 0: + * Read-only access to the STREAMINFO, VORBIS_COMMENT, CUESHEET, and + * PICTURE blocks. + * + * Level 1: + * Read-write access to all metadata blocks. This level is write- + * efficient in most cases (more on this below), and uses less memory + * than level 2. + * + * Level 2: + * Read-write access to all metadata blocks. This level is write- + * efficient in all cases, but uses more memory since all metadata for + * the whole file is read into memory and manipulated before writing + * out again. + * + * What do we mean by efficient? Since FLAC metadata appears at the + * beginning of the file, when writing metadata back to a FLAC file + * it is possible to grow or shrink the metadata such that the entire + * file must be rewritten. However, if the size remains the same during + * changes or PADDING blocks are utilized, only the metadata needs to be + * overwritten, which is much faster. + * + * Efficient means the whole file is rewritten at most one time, and only + * when necessary. Level 1 is not efficient only in the case that you + * cause more than one metadata block to grow or shrink beyond what can + * be accomodated by padding. In this case you should probably use level + * 2, which allows you to edit all the metadata for a file in memory and + * write it out all at once. + * + * All levels know how to skip over and not disturb an ID3v2 tag at the + * front of the file. + * + * All levels access files via their filenames. In addition, level 2 + * has additional alternative read and write functions that take an I/O + * handle and callbacks, for situations where access by filename is not + * possible. + * + * In addition to the three interfaces, this module defines functions for + * creating and manipulating various metadata objects in memory. As we see + * from the Format module, FLAC metadata blocks in memory are very primitive + * structures for storing information in an efficient way. Reading + * information from the structures is easy but creating or modifying them + * directly is more complex. The metadata object routines here facilitate + * this by taking care of the consistency and memory management drudgery. + * + * Unless you will be using the level 1 or 2 interfaces to modify existing + * metadata however, you will not probably not need these. + * + * From a dependency standpoint, none of the encoders or decoders require + * the metadata module. This is so that embedded users can strip out the + * metadata module from libFLAC to reduce the size and complexity. + */ + +#ifdef __cplusplus +extern "C" { +#endif + + +/** \defgroup flac_metadata_level0 FLAC/metadata.h: metadata level 0 interface + * \ingroup flac_metadata + * + * \brief + * The level 0 interface consists of individual routines to read the + * STREAMINFO, VORBIS_COMMENT, CUESHEET, and PICTURE blocks, requiring + * only a filename. + * + * They try to skip any ID3v2 tag at the head of the file. + * + * \{ + */ + +/** Read the STREAMINFO metadata block of the given FLAC file. This function + * will try to skip any ID3v2 tag at the head of the file. + * + * \param filename The path to the FLAC file to read. + * \param streaminfo A pointer to space for the STREAMINFO block. Since + * FLAC__StreamMetadata is a simple structure with no + * memory allocation involved, you pass the address of + * an existing structure. It need not be initialized. + * \assert + * \code filename != NULL \endcode + * \code streaminfo != NULL \endcode + * \retval FLAC__bool + * \c true if a valid STREAMINFO block was read from \a filename. Returns + * \c false if there was a memory allocation error, a file decoder error, + * or the file contained no STREAMINFO block. (A memory allocation error + * is possible because this function must set up a file decoder.) + */ +FLAC_API FLAC__bool FLAC__metadata_get_streaminfo(const char *filename, FLAC__StreamMetadata *streaminfo); + +/** Read the VORBIS_COMMENT metadata block of the given FLAC file. This + * function will try to skip any ID3v2 tag at the head of the file. + * + * \param filename The path to the FLAC file to read. + * \param tags The address where the returned pointer will be + * stored. The \a tags object must be deleted by + * the caller using FLAC__metadata_object_delete(). + * \assert + * \code filename != NULL \endcode + * \code tags != NULL \endcode + * \retval FLAC__bool + * \c true if a valid VORBIS_COMMENT block was read from \a filename, + * and \a *tags will be set to the address of the metadata structure. + * Returns \c false if there was a memory allocation error, a file + * decoder error, or the file contained no VORBIS_COMMENT block, and + * \a *tags will be set to \c NULL. + */ +FLAC_API FLAC__bool FLAC__metadata_get_tags(const char *filename, FLAC__StreamMetadata **tags); + +/** Read the CUESHEET metadata block of the given FLAC file. This + * function will try to skip any ID3v2 tag at the head of the file. + * + * \param filename The path to the FLAC file to read. + * \param cuesheet The address where the returned pointer will be + * stored. The \a cuesheet object must be deleted by + * the caller using FLAC__metadata_object_delete(). + * \assert + * \code filename != NULL \endcode + * \code cuesheet != NULL \endcode + * \retval FLAC__bool + * \c true if a valid CUESHEET block was read from \a filename, + * and \a *cuesheet will be set to the address of the metadata + * structure. Returns \c false if there was a memory allocation + * error, a file decoder error, or the file contained no CUESHEET + * block, and \a *cuesheet will be set to \c NULL. + */ +FLAC_API FLAC__bool FLAC__metadata_get_cuesheet(const char *filename, FLAC__StreamMetadata **cuesheet); + +/** Read a PICTURE metadata block of the given FLAC file. This + * function will try to skip any ID3v2 tag at the head of the file. + * Since there can be more than one PICTURE block in a file, this + * function takes a number of parameters that act as constraints to + * the search. The PICTURE block with the largest area matching all + * the constraints will be returned, or \a *picture will be set to + * \c NULL if there was no such block. + * + * \param filename The path to the FLAC file to read. + * \param picture The address where the returned pointer will be + * stored. The \a picture object must be deleted by + * the caller using FLAC__metadata_object_delete(). + * \param type The desired picture type. Use \c -1 to mean + * "any type". + * \param mime_type The desired MIME type, e.g. "image/jpeg". The + * string will be matched exactly. Use \c NULL to + * mean "any MIME type". + * \param description The desired description. The string will be + * matched exactly. Use \c NULL to mean "any + * description". + * \param max_width The maximum width in pixels desired. Use + * \c (unsigned)(-1) to mean "any width". + * \param max_height The maximum height in pixels desired. Use + * \c (unsigned)(-1) to mean "any height". + * \param max_depth The maximum color depth in bits-per-pixel desired. + * Use \c (unsigned)(-1) to mean "any depth". + * \param max_colors The maximum number of colors desired. Use + * \c (unsigned)(-1) to mean "any number of colors". + * \assert + * \code filename != NULL \endcode + * \code picture != NULL \endcode + * \retval FLAC__bool + * \c true if a valid PICTURE block was read from \a filename, + * and \a *picture will be set to the address of the metadata + * structure. Returns \c false if there was a memory allocation + * error, a file decoder error, or the file contained no PICTURE + * block, and \a *picture will be set to \c NULL. + */ +FLAC_API FLAC__bool FLAC__metadata_get_picture(const char *filename, FLAC__StreamMetadata **picture, FLAC__StreamMetadata_Picture_Type type, const char *mime_type, const FLAC__byte *description, unsigned max_width, unsigned max_height, unsigned max_depth, unsigned max_colors); + +/* \} */ + + +/** \defgroup flac_metadata_level1 FLAC/metadata.h: metadata level 1 interface + * \ingroup flac_metadata + * + * \brief + * The level 1 interface provides read-write access to FLAC file metadata and + * operates directly on the FLAC file. + * + * The general usage of this interface is: + * + * - Create an iterator using FLAC__metadata_simple_iterator_new() + * - Attach it to a file using FLAC__metadata_simple_iterator_init() and check + * the exit code. Call FLAC__metadata_simple_iterator_is_writable() to + * see if the file is writable, or only read access is allowed. + * - Use FLAC__metadata_simple_iterator_next() and + * FLAC__metadata_simple_iterator_prev() to traverse the blocks. + * This is does not read the actual blocks themselves. + * FLAC__metadata_simple_iterator_next() is relatively fast. + * FLAC__metadata_simple_iterator_prev() is slower since it needs to search + * forward from the front of the file. + * - Use FLAC__metadata_simple_iterator_get_block_type() or + * FLAC__metadata_simple_iterator_get_block() to access the actual data at + * the current iterator position. The returned object is yours to modify + * and free. + * - Use FLAC__metadata_simple_iterator_set_block() to write a modified block + * back. You must have write permission to the original file. Make sure to + * read the whole comment to FLAC__metadata_simple_iterator_set_block() + * below. + * - Use FLAC__metadata_simple_iterator_insert_block_after() to add new blocks. + * Use the object creation functions from + * \link flac_metadata_object here \endlink to generate new objects. + * - Use FLAC__metadata_simple_iterator_delete_block() to remove the block + * currently referred to by the iterator, or replace it with padding. + * - Destroy the iterator with FLAC__metadata_simple_iterator_delete() when + * finished. + * + * \note + * The FLAC file remains open the whole time between + * FLAC__metadata_simple_iterator_init() and + * FLAC__metadata_simple_iterator_delete(), so make sure you are not altering + * the file during this time. + * + * \note + * Do not modify the \a is_last, \a length, or \a type fields of returned + * FLAC__StreamMetadata objects. These are managed automatically. + * + * \note + * If any of the modification functions + * (FLAC__metadata_simple_iterator_set_block(), + * FLAC__metadata_simple_iterator_delete_block(), + * FLAC__metadata_simple_iterator_insert_block_after(), etc.) return \c false, + * you should delete the iterator as it may no longer be valid. + * + * \{ + */ + +struct FLAC__Metadata_SimpleIterator; +/** The opaque structure definition for the level 1 iterator type. + * See the + * \link flac_metadata_level1 metadata level 1 module \endlink + * for a detailed description. + */ +typedef struct FLAC__Metadata_SimpleIterator FLAC__Metadata_SimpleIterator; + +/** Status type for FLAC__Metadata_SimpleIterator. + * + * The iterator's current status can be obtained by calling FLAC__metadata_simple_iterator_status(). + */ +typedef enum { + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_OK = 0, + /**< The iterator is in the normal OK state */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_ILLEGAL_INPUT, + /**< The data passed into a function violated the function's usage criteria */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_ERROR_OPENING_FILE, + /**< The iterator could not open the target file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_NOT_A_FLAC_FILE, + /**< The iterator could not find the FLAC signature at the start of the file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_NOT_WRITABLE, + /**< The iterator tried to write to a file that was not writable */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_BAD_METADATA, + /**< The iterator encountered input that does not conform to the FLAC metadata specification */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_READ_ERROR, + /**< The iterator encountered an error while reading the FLAC file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_SEEK_ERROR, + /**< The iterator encountered an error while seeking in the FLAC file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_WRITE_ERROR, + /**< The iterator encountered an error while writing the FLAC file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_RENAME_ERROR, + /**< The iterator encountered an error renaming the FLAC file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_UNLINK_ERROR, + /**< The iterator encountered an error removing the temporary file */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_MEMORY_ALLOCATION_ERROR, + /**< Memory allocation failed */ + + FLAC__METADATA_SIMPLE_ITERATOR_STATUS_INTERNAL_ERROR + /**< The caller violated an assertion or an unexpected error occurred */ + +} FLAC__Metadata_SimpleIteratorStatus; + +/** Maps a FLAC__Metadata_SimpleIteratorStatus to a C string. + * + * Using a FLAC__Metadata_SimpleIteratorStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__Metadata_SimpleIteratorStatusString[]; + + +/** Create a new iterator instance. + * + * \retval FLAC__Metadata_SimpleIterator* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__Metadata_SimpleIterator *FLAC__metadata_simple_iterator_new(void); + +/** Free an iterator instance. Deletes the object pointed to by \a iterator. + * + * \param iterator A pointer to an existing iterator. + * \assert + * \code iterator != NULL \endcode + */ +FLAC_API void FLAC__metadata_simple_iterator_delete(FLAC__Metadata_SimpleIterator *iterator); + +/** Get the current status of the iterator. Call this after a function + * returns \c false to get the reason for the error. Also resets the status + * to FLAC__METADATA_SIMPLE_ITERATOR_STATUS_OK. + * + * \param iterator A pointer to an existing iterator. + * \assert + * \code iterator != NULL \endcode + * \retval FLAC__Metadata_SimpleIteratorStatus + * The current status of the iterator. + */ +FLAC_API FLAC__Metadata_SimpleIteratorStatus FLAC__metadata_simple_iterator_status(FLAC__Metadata_SimpleIterator *iterator); + +/** Initialize the iterator to point to the first metadata block in the + * given FLAC file. + * + * \param iterator A pointer to an existing iterator. + * \param filename The path to the FLAC file. + * \param read_only If \c true, the FLAC file will be opened + * in read-only mode; if \c false, the FLAC + * file will be opened for edit even if no + * edits are performed. + * \param preserve_file_stats If \c true, the owner and modification + * time will be preserved even if the FLAC + * file is written to. + * \assert + * \code iterator != NULL \endcode + * \code filename != NULL \endcode + * \retval FLAC__bool + * \c false if a memory allocation error occurs, the file can't be + * opened, or another error occurs, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_init(FLAC__Metadata_SimpleIterator *iterator, const char *filename, FLAC__bool read_only, FLAC__bool preserve_file_stats); + +/** Returns \c true if the FLAC file is writable. If \c false, calls to + * FLAC__metadata_simple_iterator_set_block() and + * FLAC__metadata_simple_iterator_insert_block_after() will fail. + * + * \param iterator A pointer to an existing iterator. + * \assert + * \code iterator != NULL \endcode + * \retval FLAC__bool + * See above. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_is_writable(const FLAC__Metadata_SimpleIterator *iterator); + +/** Moves the iterator forward one metadata block, returning \c false if + * already at the end. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__bool + * \c false if already at the last metadata block of the chain, else + * \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_next(FLAC__Metadata_SimpleIterator *iterator); + +/** Moves the iterator backward one metadata block, returning \c false if + * already at the beginning. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__bool + * \c false if already at the first metadata block of the chain, else + * \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_prev(FLAC__Metadata_SimpleIterator *iterator); + +/** Returns a flag telling if the current metadata block is the last. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__bool + * \c true if the current metadata block is the last in the file, + * else \c false. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_is_last(const FLAC__Metadata_SimpleIterator *iterator); + +/** Get the offset of the metadata block at the current position. This + * avoids reading the actual block data which can save time for large + * blocks. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval off_t + * The offset of the metadata block at the current iterator position. + * This is the byte offset relative to the beginning of the file of + * the current metadata block's header. + */ +FLAC_API off_t FLAC__metadata_simple_iterator_get_block_offset(const FLAC__Metadata_SimpleIterator *iterator); + +/** Get the type of the metadata block at the current position. This + * avoids reading the actual block data which can save time for large + * blocks. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__MetadataType + * The type of the metadata block at the current iterator position. + */ +FLAC_API FLAC__MetadataType FLAC__metadata_simple_iterator_get_block_type(const FLAC__Metadata_SimpleIterator *iterator); + +/** Get the length of the metadata block at the current position. This + * avoids reading the actual block data which can save time for large + * blocks. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval unsigned + * The length of the metadata block at the current iterator position. + * The is same length as that in the + * metadata block header, + * i.e. the length of the metadata body that follows the header. + */ +FLAC_API unsigned FLAC__metadata_simple_iterator_get_block_length(const FLAC__Metadata_SimpleIterator *iterator); + +/** Get the application ID of the \c APPLICATION block at the current + * position. This avoids reading the actual block data which can save + * time for large blocks. + * + * \param iterator A pointer to an existing initialized iterator. + * \param id A pointer to a buffer of at least \c 4 bytes where + * the ID will be stored. + * \assert + * \code iterator != NULL \endcode + * \code id != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__bool + * \c true if the ID was successfully read, else \c false, in which + * case you should check FLAC__metadata_simple_iterator_status() to + * find out why. If the status is + * \c FLAC__METADATA_SIMPLE_ITERATOR_STATUS_ILLEGAL_INPUT, then the + * current metadata block is not an \c APPLICATION block. Otherwise + * if the status is + * \c FLAC__METADATA_SIMPLE_ITERATOR_STATUS_READ_ERROR or + * \c FLAC__METADATA_SIMPLE_ITERATOR_STATUS_SEEK_ERROR, an I/O error + * occurred and the iterator can no longer be used. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_get_application_id(FLAC__Metadata_SimpleIterator *iterator, FLAC__byte *id); + +/** Get the metadata block at the current position. You can modify the + * block but must use FLAC__metadata_simple_iterator_set_block() to + * write it back to the FLAC file. + * + * You must call FLAC__metadata_object_delete() on the returned object + * when you are finished with it. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__StreamMetadata* + * The current metadata block, or \c NULL if there was a memory + * allocation error. + */ +FLAC_API FLAC__StreamMetadata *FLAC__metadata_simple_iterator_get_block(FLAC__Metadata_SimpleIterator *iterator); + +/** Write a block back to the FLAC file. This function tries to be + * as efficient as possible; how the block is actually written is + * shown by the following: + * + * Existing block is a STREAMINFO block and the new block is a + * STREAMINFO block: the new block is written in place. Make sure + * you know what you're doing when changing the values of a + * STREAMINFO block. + * + * Existing block is a STREAMINFO block and the new block is a + * not a STREAMINFO block: this is an error since the first block + * must be a STREAMINFO block. Returns \c false without altering the + * file. + * + * Existing block is not a STREAMINFO block and the new block is a + * STREAMINFO block: this is an error since there may be only one + * STREAMINFO block. Returns \c false without altering the file. + * + * Existing block and new block are the same length: the existing + * block will be replaced by the new block, written in place. + * + * Existing block is longer than new block: if use_padding is \c true, + * the existing block will be overwritten in place with the new + * block followed by a PADDING block, if possible, to make the total + * size the same as the existing block. Remember that a padding + * block requires at least four bytes so if the difference in size + * between the new block and existing block is less than that, the + * entire file will have to be rewritten, using the new block's + * exact size. If use_padding is \c false, the entire file will be + * rewritten, replacing the existing block by the new block. + * + * Existing block is shorter than new block: if use_padding is \c true, + * the function will try and expand the new block into the following + * PADDING block, if it exists and doing so won't shrink the PADDING + * block to less than 4 bytes. If there is no following PADDING + * block, or it will shrink to less than 4 bytes, or use_padding is + * \c false, the entire file is rewritten, replacing the existing block + * with the new block. Note that in this case any following PADDING + * block is preserved as is. + * + * After writing the block, the iterator will remain in the same + * place, i.e. pointing to the new block. + * + * \param iterator A pointer to an existing initialized iterator. + * \param block The block to set. + * \param use_padding See above. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \code block != NULL \endcode + * \retval FLAC__bool + * \c true if successful, else \c false. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_set_block(FLAC__Metadata_SimpleIterator *iterator, FLAC__StreamMetadata *block, FLAC__bool use_padding); + +/** This is similar to FLAC__metadata_simple_iterator_set_block() + * except that instead of writing over an existing block, it appends + * a block after the existing block. \a use_padding is again used to + * tell the function to try an expand into following padding in an + * attempt to avoid rewriting the entire file. + * + * This function will fail and return \c false if given a STREAMINFO + * block. + * + * After writing the block, the iterator will be pointing to the + * new block. + * + * \param iterator A pointer to an existing initialized iterator. + * \param block The block to set. + * \param use_padding See above. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \code block != NULL \endcode + * \retval FLAC__bool + * \c true if successful, else \c false. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_insert_block_after(FLAC__Metadata_SimpleIterator *iterator, FLAC__StreamMetadata *block, FLAC__bool use_padding); + +/** Deletes the block at the current position. This will cause the + * entire FLAC file to be rewritten, unless \a use_padding is \c true, + * in which case the block will be replaced by an equal-sized PADDING + * block. The iterator will be left pointing to the block before the + * one just deleted. + * + * You may not delete the STREAMINFO block. + * + * \param iterator A pointer to an existing initialized iterator. + * \param use_padding See above. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_simple_iterator_init() + * \retval FLAC__bool + * \c true if successful, else \c false. + */ +FLAC_API FLAC__bool FLAC__metadata_simple_iterator_delete_block(FLAC__Metadata_SimpleIterator *iterator, FLAC__bool use_padding); + +/* \} */ + + +/** \defgroup flac_metadata_level2 FLAC/metadata.h: metadata level 2 interface + * \ingroup flac_metadata + * + * \brief + * The level 2 interface provides read-write access to FLAC file metadata; + * all metadata is read into memory, operated on in memory, and then written + * to file, which is more efficient than level 1 when editing multiple blocks. + * + * Currently Ogg FLAC is supported for read only, via + * FLAC__metadata_chain_read_ogg() but a subsequent + * FLAC__metadata_chain_write() will fail. + * + * The general usage of this interface is: + * + * - Create a new chain using FLAC__metadata_chain_new(). A chain is a + * linked list of FLAC metadata blocks. + * - Read all metadata into the the chain from a FLAC file using + * FLAC__metadata_chain_read() or FLAC__metadata_chain_read_ogg() and + * check the status. + * - Optionally, consolidate the padding using + * FLAC__metadata_chain_merge_padding() or + * FLAC__metadata_chain_sort_padding(). + * - Create a new iterator using FLAC__metadata_iterator_new() + * - Initialize the iterator to point to the first element in the chain + * using FLAC__metadata_iterator_init() + * - Traverse the chain using FLAC__metadata_iterator_next and + * FLAC__metadata_iterator_prev(). + * - Get a block for reading or modification using + * FLAC__metadata_iterator_get_block(). The pointer to the object + * inside the chain is returned, so the block is yours to modify. + * Changes will be reflected in the FLAC file when you write the + * chain. You can also add and delete blocks (see functions below). + * - When done, write out the chain using FLAC__metadata_chain_write(). + * Make sure to read the whole comment to the function below. + * - Delete the chain using FLAC__metadata_chain_delete(). + * + * \note + * Even though the FLAC file is not open while the chain is being + * manipulated, you must not alter the file externally during + * this time. The chain assumes the FLAC file will not change + * between the time of FLAC__metadata_chain_read()/FLAC__metadata_chain_read_ogg() + * and FLAC__metadata_chain_write(). + * + * \note + * Do not modify the is_last, length, or type fields of returned + * FLAC__StreamMetadata objects. These are managed automatically. + * + * \note + * The metadata objects returned by FLAC__metadata_iterator_get_block() + * are owned by the chain; do not FLAC__metadata_object_delete() them. + * In the same way, blocks passed to FLAC__metadata_iterator_set_block() + * become owned by the chain and they will be deleted when the chain is + * deleted. + * + * \{ + */ + +struct FLAC__Metadata_Chain; +/** The opaque structure definition for the level 2 chain type. + */ +typedef struct FLAC__Metadata_Chain FLAC__Metadata_Chain; + +struct FLAC__Metadata_Iterator; +/** The opaque structure definition for the level 2 iterator type. + */ +typedef struct FLAC__Metadata_Iterator FLAC__Metadata_Iterator; + +typedef enum { + FLAC__METADATA_CHAIN_STATUS_OK = 0, + /**< The chain is in the normal OK state */ + + FLAC__METADATA_CHAIN_STATUS_ILLEGAL_INPUT, + /**< The data passed into a function violated the function's usage criteria */ + + FLAC__METADATA_CHAIN_STATUS_ERROR_OPENING_FILE, + /**< The chain could not open the target file */ + + FLAC__METADATA_CHAIN_STATUS_NOT_A_FLAC_FILE, + /**< The chain could not find the FLAC signature at the start of the file */ + + FLAC__METADATA_CHAIN_STATUS_NOT_WRITABLE, + /**< The chain tried to write to a file that was not writable */ + + FLAC__METADATA_CHAIN_STATUS_BAD_METADATA, + /**< The chain encountered input that does not conform to the FLAC metadata specification */ + + FLAC__METADATA_CHAIN_STATUS_READ_ERROR, + /**< The chain encountered an error while reading the FLAC file */ + + FLAC__METADATA_CHAIN_STATUS_SEEK_ERROR, + /**< The chain encountered an error while seeking in the FLAC file */ + + FLAC__METADATA_CHAIN_STATUS_WRITE_ERROR, + /**< The chain encountered an error while writing the FLAC file */ + + FLAC__METADATA_CHAIN_STATUS_RENAME_ERROR, + /**< The chain encountered an error renaming the FLAC file */ + + FLAC__METADATA_CHAIN_STATUS_UNLINK_ERROR, + /**< The chain encountered an error removing the temporary file */ + + FLAC__METADATA_CHAIN_STATUS_MEMORY_ALLOCATION_ERROR, + /**< Memory allocation failed */ + + FLAC__METADATA_CHAIN_STATUS_INTERNAL_ERROR, + /**< The caller violated an assertion or an unexpected error occurred */ + + FLAC__METADATA_CHAIN_STATUS_INVALID_CALLBACKS, + /**< One or more of the required callbacks was NULL */ + + FLAC__METADATA_CHAIN_STATUS_READ_WRITE_MISMATCH, + /**< FLAC__metadata_chain_write() was called on a chain read by + * FLAC__metadata_chain_read_with_callbacks()/FLAC__metadata_chain_read_ogg_with_callbacks(), + * or + * FLAC__metadata_chain_write_with_callbacks()/FLAC__metadata_chain_write_with_callbacks_and_tempfile() + * was called on a chain read by + * FLAC__metadata_chain_read()/FLAC__metadata_chain_read_ogg(). + * Matching read/write methods must always be used. */ + + FLAC__METADATA_CHAIN_STATUS_WRONG_WRITE_CALL + /**< FLAC__metadata_chain_write_with_callbacks() was called when the + * chain write requires a tempfile; use + * FLAC__metadata_chain_write_with_callbacks_and_tempfile() instead. + * Or, FLAC__metadata_chain_write_with_callbacks_and_tempfile() was + * called when the chain write does not require a tempfile; use + * FLAC__metadata_chain_write_with_callbacks() instead. + * Always check FLAC__metadata_chain_check_if_tempfile_needed() + * before writing via callbacks. */ + +} FLAC__Metadata_ChainStatus; + +/** Maps a FLAC__Metadata_ChainStatus to a C string. + * + * Using a FLAC__Metadata_ChainStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__Metadata_ChainStatusString[]; + +/*********** FLAC__Metadata_Chain ***********/ + +/** Create a new chain instance. + * + * \retval FLAC__Metadata_Chain* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__Metadata_Chain *FLAC__metadata_chain_new(void); + +/** Free a chain instance. Deletes the object pointed to by \a chain. + * + * \param chain A pointer to an existing chain. + * \assert + * \code chain != NULL \endcode + */ +FLAC_API void FLAC__metadata_chain_delete(FLAC__Metadata_Chain *chain); + +/** Get the current status of the chain. Call this after a function + * returns \c false to get the reason for the error. Also resets the + * status to FLAC__METADATA_CHAIN_STATUS_OK. + * + * \param chain A pointer to an existing chain. + * \assert + * \code chain != NULL \endcode + * \retval FLAC__Metadata_ChainStatus + * The current status of the chain. + */ +FLAC_API FLAC__Metadata_ChainStatus FLAC__metadata_chain_status(FLAC__Metadata_Chain *chain); + +/** Read all metadata from a FLAC file into the chain. + * + * \param chain A pointer to an existing chain. + * \param filename The path to the FLAC file to read. + * \assert + * \code chain != NULL \endcode + * \code filename != NULL \endcode + * \retval FLAC__bool + * \c true if a valid list of metadata blocks was read from + * \a filename, else \c false. On failure, check the status with + * FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_read(FLAC__Metadata_Chain *chain, const char *filename); + +/** Read all metadata from an Ogg FLAC file into the chain. + * + * \note Ogg FLAC metadata data writing is not supported yet and + * FLAC__metadata_chain_write() will fail. + * + * \param chain A pointer to an existing chain. + * \param filename The path to the Ogg FLAC file to read. + * \assert + * \code chain != NULL \endcode + * \code filename != NULL \endcode + * \retval FLAC__bool + * \c true if a valid list of metadata blocks was read from + * \a filename, else \c false. On failure, check the status with + * FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_read_ogg(FLAC__Metadata_Chain *chain, const char *filename); + +/** Read all metadata from a FLAC stream into the chain via I/O callbacks. + * + * The \a handle need only be open for reading, but must be seekable. + * The equivalent minimum stdio fopen() file mode is \c "r" (or \c "rb" + * for Windows). + * + * \param chain A pointer to an existing chain. + * \param handle The I/O handle of the FLAC stream to read. The + * handle will NOT be closed after the metadata is read; + * that is the duty of the caller. + * \param callbacks + * A set of callbacks to use for I/O. The mandatory + * callbacks are \a read, \a seek, and \a tell. + * \assert + * \code chain != NULL \endcode + * \retval FLAC__bool + * \c true if a valid list of metadata blocks was read from + * \a handle, else \c false. On failure, check the status with + * FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_read_with_callbacks(FLAC__Metadata_Chain *chain, FLAC__IOHandle handle, FLAC__IOCallbacks callbacks); + +/** Read all metadata from an Ogg FLAC stream into the chain via I/O callbacks. + * + * The \a handle need only be open for reading, but must be seekable. + * The equivalent minimum stdio fopen() file mode is \c "r" (or \c "rb" + * for Windows). + * + * \note Ogg FLAC metadata data writing is not supported yet and + * FLAC__metadata_chain_write() will fail. + * + * \param chain A pointer to an existing chain. + * \param handle The I/O handle of the Ogg FLAC stream to read. The + * handle will NOT be closed after the metadata is read; + * that is the duty of the caller. + * \param callbacks + * A set of callbacks to use for I/O. The mandatory + * callbacks are \a read, \a seek, and \a tell. + * \assert + * \code chain != NULL \endcode + * \retval FLAC__bool + * \c true if a valid list of metadata blocks was read from + * \a handle, else \c false. On failure, check the status with + * FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_read_ogg_with_callbacks(FLAC__Metadata_Chain *chain, FLAC__IOHandle handle, FLAC__IOCallbacks callbacks); + +/** Checks if writing the given chain would require the use of a + * temporary file, or if it could be written in place. + * + * Under certain conditions, padding can be utilized so that writing + * edited metadata back to the FLAC file does not require rewriting the + * entire file. If rewriting is required, then a temporary workfile is + * required. When writing metadata using callbacks, you must check + * this function to know whether to call + * FLAC__metadata_chain_write_with_callbacks() or + * FLAC__metadata_chain_write_with_callbacks_and_tempfile(). When + * writing with FLAC__metadata_chain_write(), the temporary file is + * handled internally. + * + * \param chain A pointer to an existing chain. + * \param use_padding + * Whether or not padding will be allowed to be used + * during the write. The value of \a use_padding given + * here must match the value later passed to + * FLAC__metadata_chain_write_with_callbacks() or + * FLAC__metadata_chain_write_with_callbacks_with_tempfile(). + * \assert + * \code chain != NULL \endcode + * \retval FLAC__bool + * \c true if writing the current chain would require a tempfile, or + * \c false if metadata can be written in place. + */ +FLAC_API FLAC__bool FLAC__metadata_chain_check_if_tempfile_needed(FLAC__Metadata_Chain *chain, FLAC__bool use_padding); + +/** Write all metadata out to the FLAC file. This function tries to be as + * efficient as possible; how the metadata is actually written is shown by + * the following: + * + * If the current chain is the same size as the existing metadata, the new + * data is written in place. + * + * If the current chain is longer than the existing metadata, and + * \a use_padding is \c true, and the last block is a PADDING block of + * sufficient length, the function will truncate the final padding block + * so that the overall size of the metadata is the same as the existing + * metadata, and then just rewrite the metadata. Otherwise, if not all of + * the above conditions are met, the entire FLAC file must be rewritten. + * If you want to use padding this way it is a good idea to call + * FLAC__metadata_chain_sort_padding() first so that you have the maximum + * amount of padding to work with, unless you need to preserve ordering + * of the PADDING blocks for some reason. + * + * If the current chain is shorter than the existing metadata, and + * \a use_padding is \c true, and the final block is a PADDING block, the padding + * is extended to make the overall size the same as the existing data. If + * \a use_padding is \c true and the last block is not a PADDING block, a new + * PADDING block is added to the end of the new data to make it the same + * size as the existing data (if possible, see the note to + * FLAC__metadata_simple_iterator_set_block() about the four byte limit) + * and the new data is written in place. If none of the above apply or + * \a use_padding is \c false, the entire FLAC file is rewritten. + * + * If \a preserve_file_stats is \c true, the owner and modification time will + * be preserved even if the FLAC file is written. + * + * For this write function to be used, the chain must have been read with + * FLAC__metadata_chain_read()/FLAC__metadata_chain_read_ogg(), not + * FLAC__metadata_chain_read_with_callbacks()/FLAC__metadata_chain_read_ogg_with_callbacks(). + * + * \param chain A pointer to an existing chain. + * \param use_padding See above. + * \param preserve_file_stats See above. + * \assert + * \code chain != NULL \endcode + * \retval FLAC__bool + * \c true if the write succeeded, else \c false. On failure, + * check the status with FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_write(FLAC__Metadata_Chain *chain, FLAC__bool use_padding, FLAC__bool preserve_file_stats); + +/** Write all metadata out to a FLAC stream via callbacks. + * + * (See FLAC__metadata_chain_write() for the details on how padding is + * used to write metadata in place if possible.) + * + * The \a handle must be open for updating and be seekable. The + * equivalent minimum stdio fopen() file mode is \c "r+" (or \c "r+b" + * for Windows). + * + * For this write function to be used, the chain must have been read with + * FLAC__metadata_chain_read_with_callbacks()/FLAC__metadata_chain_read_ogg_with_callbacks(), + * not FLAC__metadata_chain_read()/FLAC__metadata_chain_read_ogg(). + * Also, FLAC__metadata_chain_check_if_tempfile_needed() must have returned + * \c false. + * + * \param chain A pointer to an existing chain. + * \param use_padding See FLAC__metadata_chain_write() + * \param handle The I/O handle of the FLAC stream to write. The + * handle will NOT be closed after the metadata is + * written; that is the duty of the caller. + * \param callbacks A set of callbacks to use for I/O. The mandatory + * callbacks are \a write and \a seek. + * \assert + * \code chain != NULL \endcode + * \retval FLAC__bool + * \c true if the write succeeded, else \c false. On failure, + * check the status with FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_write_with_callbacks(FLAC__Metadata_Chain *chain, FLAC__bool use_padding, FLAC__IOHandle handle, FLAC__IOCallbacks callbacks); + +/** Write all metadata out to a FLAC stream via callbacks. + * + * (See FLAC__metadata_chain_write() for the details on how padding is + * used to write metadata in place if possible.) + * + * This version of the write-with-callbacks function must be used when + * FLAC__metadata_chain_check_if_tempfile_needed() returns true. In + * this function, you must supply an I/O handle corresponding to the + * FLAC file to edit, and a temporary handle to which the new FLAC + * file will be written. It is the caller's job to move this temporary + * FLAC file on top of the original FLAC file to complete the metadata + * edit. + * + * The \a handle must be open for reading and be seekable. The + * equivalent minimum stdio fopen() file mode is \c "r" (or \c "rb" + * for Windows). + * + * The \a temp_handle must be open for writing. The + * equivalent minimum stdio fopen() file mode is \c "w" (or \c "wb" + * for Windows). It should be an empty stream, or at least positioned + * at the start-of-file (in which case it is the caller's duty to + * truncate it on return). + * + * For this write function to be used, the chain must have been read with + * FLAC__metadata_chain_read_with_callbacks()/FLAC__metadata_chain_read_ogg_with_callbacks(), + * not FLAC__metadata_chain_read()/FLAC__metadata_chain_read_ogg(). + * Also, FLAC__metadata_chain_check_if_tempfile_needed() must have returned + * \c true. + * + * \param chain A pointer to an existing chain. + * \param use_padding See FLAC__metadata_chain_write() + * \param handle The I/O handle of the original FLAC stream to read. + * The handle will NOT be closed after the metadata is + * written; that is the duty of the caller. + * \param callbacks A set of callbacks to use for I/O on \a handle. + * The mandatory callbacks are \a read, \a seek, and + * \a eof. + * \param temp_handle The I/O handle of the FLAC stream to write. The + * handle will NOT be closed after the metadata is + * written; that is the duty of the caller. + * \param temp_callbacks + * A set of callbacks to use for I/O on temp_handle. + * The only mandatory callback is \a write. + * \assert + * \code chain != NULL \endcode + * \retval FLAC__bool + * \c true if the write succeeded, else \c false. On failure, + * check the status with FLAC__metadata_chain_status(). + */ +FLAC_API FLAC__bool FLAC__metadata_chain_write_with_callbacks_and_tempfile(FLAC__Metadata_Chain *chain, FLAC__bool use_padding, FLAC__IOHandle handle, FLAC__IOCallbacks callbacks, FLAC__IOHandle temp_handle, FLAC__IOCallbacks temp_callbacks); + +/** Merge adjacent PADDING blocks into a single block. + * + * \note This function does not write to the FLAC file, it only + * modifies the chain. + * + * \warning Any iterator on the current chain will become invalid after this + * call. You should delete the iterator and get a new one. + * + * \param chain A pointer to an existing chain. + * \assert + * \code chain != NULL \endcode + */ +FLAC_API void FLAC__metadata_chain_merge_padding(FLAC__Metadata_Chain *chain); + +/** This function will move all PADDING blocks to the end on the metadata, + * then merge them into a single block. + * + * \note This function does not write to the FLAC file, it only + * modifies the chain. + * + * \warning Any iterator on the current chain will become invalid after this + * call. You should delete the iterator and get a new one. + * + * \param chain A pointer to an existing chain. + * \assert + * \code chain != NULL \endcode + */ +FLAC_API void FLAC__metadata_chain_sort_padding(FLAC__Metadata_Chain *chain); + + +/*********** FLAC__Metadata_Iterator ***********/ + +/** Create a new iterator instance. + * + * \retval FLAC__Metadata_Iterator* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__Metadata_Iterator *FLAC__metadata_iterator_new(void); + +/** Free an iterator instance. Deletes the object pointed to by \a iterator. + * + * \param iterator A pointer to an existing iterator. + * \assert + * \code iterator != NULL \endcode + */ +FLAC_API void FLAC__metadata_iterator_delete(FLAC__Metadata_Iterator *iterator); + +/** Initialize the iterator to point to the first metadata block in the + * given chain. + * + * \param iterator A pointer to an existing iterator. + * \param chain A pointer to an existing and initialized (read) chain. + * \assert + * \code iterator != NULL \endcode + * \code chain != NULL \endcode + */ +FLAC_API void FLAC__metadata_iterator_init(FLAC__Metadata_Iterator *iterator, FLAC__Metadata_Chain *chain); + +/** Moves the iterator forward one metadata block, returning \c false if + * already at the end. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__bool + * \c false if already at the last metadata block of the chain, else + * \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_iterator_next(FLAC__Metadata_Iterator *iterator); + +/** Moves the iterator backward one metadata block, returning \c false if + * already at the beginning. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__bool + * \c false if already at the first metadata block of the chain, else + * \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_iterator_prev(FLAC__Metadata_Iterator *iterator); + +/** Get the type of the metadata block at the current position. + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__MetadataType + * The type of the metadata block at the current iterator position. + */ +FLAC_API FLAC__MetadataType FLAC__metadata_iterator_get_block_type(const FLAC__Metadata_Iterator *iterator); + +/** Get the metadata block at the current position. You can modify + * the block in place but must write the chain before the changes + * are reflected to the FLAC file. You do not need to call + * FLAC__metadata_iterator_set_block() to reflect the changes; + * the pointer returned by FLAC__metadata_iterator_get_block() + * points directly into the chain. + * + * \warning + * Do not call FLAC__metadata_object_delete() on the returned object; + * to delete a block use FLAC__metadata_iterator_delete_block(). + * + * \param iterator A pointer to an existing initialized iterator. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__StreamMetadata* + * The current metadata block. + */ +FLAC_API FLAC__StreamMetadata *FLAC__metadata_iterator_get_block(FLAC__Metadata_Iterator *iterator); + +/** Set the metadata block at the current position, replacing the existing + * block. The new block passed in becomes owned by the chain and it will be + * deleted when the chain is deleted. + * + * \param iterator A pointer to an existing initialized iterator. + * \param block A pointer to a metadata block. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \code block != NULL \endcode + * \retval FLAC__bool + * \c false if the conditions in the above description are not met, or + * a memory allocation error occurs, otherwise \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_iterator_set_block(FLAC__Metadata_Iterator *iterator, FLAC__StreamMetadata *block); + +/** Removes the current block from the chain. If \a replace_with_padding is + * \c true, the block will instead be replaced with a padding block of equal + * size. You can not delete the STREAMINFO block. The iterator will be + * left pointing to the block before the one just "deleted", even if + * \a replace_with_padding is \c true. + * + * \param iterator A pointer to an existing initialized iterator. + * \param replace_with_padding See above. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__bool + * \c false if the conditions in the above description are not met, + * otherwise \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_iterator_delete_block(FLAC__Metadata_Iterator *iterator, FLAC__bool replace_with_padding); + +/** Insert a new block before the current block. You cannot insert a block + * before the first STREAMINFO block. You cannot insert a STREAMINFO block + * as there can be only one, the one that already exists at the head when you + * read in a chain. The chain takes ownership of the new block and it will be + * deleted when the chain is deleted. The iterator will be left pointing to + * the new block. + * + * \param iterator A pointer to an existing initialized iterator. + * \param block A pointer to a metadata block to insert. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__bool + * \c false if the conditions in the above description are not met, or + * a memory allocation error occurs, otherwise \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_iterator_insert_block_before(FLAC__Metadata_Iterator *iterator, FLAC__StreamMetadata *block); + +/** Insert a new block after the current block. You cannot insert a STREAMINFO + * block as there can be only one, the one that already exists at the head when + * you read in a chain. The chain takes ownership of the new block and it will + * be deleted when the chain is deleted. The iterator will be left pointing to + * the new block. + * + * \param iterator A pointer to an existing initialized iterator. + * \param block A pointer to a metadata block to insert. + * \assert + * \code iterator != NULL \endcode + * \a iterator has been successfully initialized with + * FLAC__metadata_iterator_init() + * \retval FLAC__bool + * \c false if the conditions in the above description are not met, or + * a memory allocation error occurs, otherwise \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_iterator_insert_block_after(FLAC__Metadata_Iterator *iterator, FLAC__StreamMetadata *block); + +/* \} */ + + +/** \defgroup flac_metadata_object FLAC/metadata.h: metadata object methods + * \ingroup flac_metadata + * + * \brief + * This module contains methods for manipulating FLAC metadata objects. + * + * Since many are variable length we have to be careful about the memory + * management. We decree that all pointers to data in the object are + * owned by the object and memory-managed by the object. + * + * Use the FLAC__metadata_object_new() and FLAC__metadata_object_delete() + * functions to create all instances. When using the + * FLAC__metadata_object_set_*() functions to set pointers to data, set + * \a copy to \c true to have the function make it's own copy of the data, or + * to \c false to give the object ownership of your data. In the latter case + * your pointer must be freeable by free() and will be free()d when the object + * is FLAC__metadata_object_delete()d. It is legal to pass a null pointer as + * the data pointer to a FLAC__metadata_object_set_*() function as long as + * the length argument is 0 and the \a copy argument is \c false. + * + * The FLAC__metadata_object_new() and FLAC__metadata_object_clone() function + * will return \c NULL in the case of a memory allocation error, otherwise a new + * object. The FLAC__metadata_object_set_*() functions return \c false in the + * case of a memory allocation error. + * + * We don't have the convenience of C++ here, so note that the library relies + * on you to keep the types straight. In other words, if you pass, for + * example, a FLAC__StreamMetadata* that represents a STREAMINFO block to + * FLAC__metadata_object_application_set_data(), you will get an assertion + * failure. + * + * For convenience the FLAC__metadata_object_vorbiscomment_*() functions + * maintain a trailing NUL on each Vorbis comment entry. This is not counted + * toward the length or stored in the stream, but it can make working with plain + * comments (those that don't contain embedded-NULs in the value) easier. + * Entries passed into these functions have trailing NULs added if missing, and + * returned entries are guaranteed to have a trailing NUL. + * + * The FLAC__metadata_object_vorbiscomment_*() functions that take a Vorbis + * comment entry/name/value will first validate that it complies with the Vorbis + * comment specification and return false if it does not. + * + * There is no need to recalculate the length field on metadata blocks you + * have modified. They will be calculated automatically before they are + * written back to a file. + * + * \{ + */ + + +/** Create a new metadata object instance of the given type. + * + * The object will be "empty"; i.e. values and data pointers will be \c 0, + * with the exception of FLAC__METADATA_TYPE_VORBIS_COMMENT, which will have + * the vendor string set (but zero comments). + * + * Do not pass in a value greater than or equal to + * \a FLAC__METADATA_TYPE_UNDEFINED unless you really know what you're + * doing. + * + * \param type Type of object to create + * \retval FLAC__StreamMetadata* + * \c NULL if there was an error allocating memory or the type code is + * greater than FLAC__MAX_METADATA_TYPE_CODE, else the new instance. + */ +FLAC_API FLAC__StreamMetadata *FLAC__metadata_object_new(FLAC__MetadataType type); + +/** Create a copy of an existing metadata object. + * + * The copy is a "deep" copy, i.e. dynamically allocated data within the + * object is also copied. The caller takes ownership of the new block and + * is responsible for freeing it with FLAC__metadata_object_delete(). + * + * \param object Pointer to object to copy. + * \assert + * \code object != NULL \endcode + * \retval FLAC__StreamMetadata* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__StreamMetadata *FLAC__metadata_object_clone(const FLAC__StreamMetadata *object); + +/** Free a metadata object. Deletes the object pointed to by \a object. + * + * The delete is a "deep" delete, i.e. dynamically allocated data within the + * object is also deleted. + * + * \param object A pointer to an existing object. + * \assert + * \code object != NULL \endcode + */ +FLAC_API void FLAC__metadata_object_delete(FLAC__StreamMetadata *object); + +/** Compares two metadata objects. + * + * The compare is "deep", i.e. dynamically allocated data within the + * object is also compared. + * + * \param block1 A pointer to an existing object. + * \param block2 A pointer to an existing object. + * \assert + * \code block1 != NULL \endcode + * \code block2 != NULL \endcode + * \retval FLAC__bool + * \c true if objects are identical, else \c false. + */ +FLAC_API FLAC__bool FLAC__metadata_object_is_equal(const FLAC__StreamMetadata *block1, const FLAC__StreamMetadata *block2); + +/** Sets the application data of an APPLICATION block. + * + * If \a copy is \c true, a copy of the data is stored; otherwise, the object + * takes ownership of the pointer. The existing data will be freed if this + * function is successful, otherwise the original data will remain if \a copy + * is \c true and malloc() fails. + * + * \note It is safe to pass a const pointer to \a data if \a copy is \c true. + * + * \param object A pointer to an existing APPLICATION object. + * \param data A pointer to the data to set. + * \param length The length of \a data in bytes. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_APPLICATION \endcode + * \code (data != NULL && length > 0) || + * (data == NULL && length == 0 && copy == false) \endcode + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_application_set_data(FLAC__StreamMetadata *object, FLAC__byte *data, unsigned length, FLAC__bool copy); + +/** Resize the seekpoint array. + * + * If the size shrinks, elements will truncated; if it grows, new placeholder + * points will be added to the end. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param new_num_points The desired length of the array; may be \c 0. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \code (object->data.seek_table.points == NULL && object->data.seek_table.num_points == 0) || + * (object->data.seek_table.points != NULL && object->data.seek_table.num_points > 0) \endcode + * \retval FLAC__bool + * \c false if memory allocation error, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_resize_points(FLAC__StreamMetadata *object, unsigned new_num_points); + +/** Set a seekpoint in a seektable. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param point_num Index into seekpoint array to set. + * \param point The point to set. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \code object->data.seek_table.num_points > point_num \endcode + */ +FLAC_API void FLAC__metadata_object_seektable_set_point(FLAC__StreamMetadata *object, unsigned point_num, FLAC__StreamMetadata_SeekPoint point); + +/** Insert a seekpoint into a seektable. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param point_num Index into seekpoint array to set. + * \param point The point to set. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \code object->data.seek_table.num_points >= point_num \endcode + * \retval FLAC__bool + * \c false if memory allocation error, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_insert_point(FLAC__StreamMetadata *object, unsigned point_num, FLAC__StreamMetadata_SeekPoint point); + +/** Delete a seekpoint from a seektable. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param point_num Index into seekpoint array to set. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \code object->data.seek_table.num_points > point_num \endcode + * \retval FLAC__bool + * \c false if memory allocation error, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_delete_point(FLAC__StreamMetadata *object, unsigned point_num); + +/** Check a seektable to see if it conforms to the FLAC specification. + * See the format specification for limits on the contents of the + * seektable. + * + * \param object A pointer to an existing SEEKTABLE object. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \retval FLAC__bool + * \c false if seek table is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_is_legal(const FLAC__StreamMetadata *object); + +/** Append a number of placeholder points to the end of a seek table. + * + * \note + * As with the other ..._seektable_template_... functions, you should + * call FLAC__metadata_object_seektable_template_sort() when finished + * to make the seek table legal. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param num The number of placeholder points to append. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \retval FLAC__bool + * \c false if memory allocation fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_placeholders(FLAC__StreamMetadata *object, unsigned num); + +/** Append a specific seek point template to the end of a seek table. + * + * \note + * As with the other ..._seektable_template_... functions, you should + * call FLAC__metadata_object_seektable_template_sort() when finished + * to make the seek table legal. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param sample_number The sample number of the seek point template. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \retval FLAC__bool + * \c false if memory allocation fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_point(FLAC__StreamMetadata *object, FLAC__uint64 sample_number); + +/** Append specific seek point templates to the end of a seek table. + * + * \note + * As with the other ..._seektable_template_... functions, you should + * call FLAC__metadata_object_seektable_template_sort() when finished + * to make the seek table legal. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param sample_numbers An array of sample numbers for the seek points. + * \param num The number of seek point templates to append. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \retval FLAC__bool + * \c false if memory allocation fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_points(FLAC__StreamMetadata *object, FLAC__uint64 sample_numbers[], unsigned num); + +/** Append a set of evenly-spaced seek point templates to the end of a + * seek table. + * + * \note + * As with the other ..._seektable_template_... functions, you should + * call FLAC__metadata_object_seektable_template_sort() when finished + * to make the seek table legal. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param num The number of placeholder points to append. + * \param total_samples The total number of samples to be encoded; + * the seekpoints will be spaced approximately + * \a total_samples / \a num samples apart. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \code total_samples > 0 \endcode + * \retval FLAC__bool + * \c false if memory allocation fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_spaced_points(FLAC__StreamMetadata *object, unsigned num, FLAC__uint64 total_samples); + +/** Append a set of evenly-spaced seek point templates to the end of a + * seek table. + * + * \note + * As with the other ..._seektable_template_... functions, you should + * call FLAC__metadata_object_seektable_template_sort() when finished + * to make the seek table legal. + * + * \param object A pointer to an existing SEEKTABLE object. + * \param samples The number of samples apart to space the placeholder + * points. The first point will be at sample \c 0, the + * second at sample \a samples, then 2*\a samples, and + * so on. As long as \a samples and \a total_samples + * are greater than \c 0, there will always be at least + * one seekpoint at sample \c 0. + * \param total_samples The total number of samples to be encoded; + * the seekpoints will be spaced + * \a samples samples apart. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \code samples > 0 \endcode + * \code total_samples > 0 \endcode + * \retval FLAC__bool + * \c false if memory allocation fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_append_spaced_points_by_samples(FLAC__StreamMetadata *object, unsigned samples, FLAC__uint64 total_samples); + +/** Sort a seek table's seek points according to the format specification, + * removing duplicates. + * + * \param object A pointer to a seek table to be sorted. + * \param compact If \c false, behaves like FLAC__format_seektable_sort(). + * If \c true, duplicates are deleted and the seek table is + * shrunk appropriately; the number of placeholder points + * present in the seek table will be the same after the call + * as before. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_SEEKTABLE \endcode + * \retval FLAC__bool + * \c false if realloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_seektable_template_sort(FLAC__StreamMetadata *object, FLAC__bool compact); + +/** Sets the vendor string in a VORBIS_COMMENT block. + * + * For convenience, a trailing NUL is added to the entry if it doesn't have + * one already. + * + * If \a copy is \c true, a copy of the entry is stored; otherwise, the object + * takes ownership of the \c entry.entry pointer. + * + * \note If this function returns \c false, the caller still owns the + * pointer. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param entry The entry to set the vendor string to. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code (entry.entry != NULL && entry.length > 0) || + * (entry.entry == NULL && entry.length == 0) \endcode + * \retval FLAC__bool + * \c false if memory allocation fails or \a entry does not comply with the + * Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_set_vendor_string(FLAC__StreamMetadata *object, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool copy); + +/** Resize the comment array. + * + * If the size shrinks, elements will truncated; if it grows, new empty + * fields will be added to the end. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param new_num_comments The desired length of the array; may be \c 0. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code (object->data.vorbis_comment.comments == NULL && object->data.vorbis_comment.num_comments == 0) || + * (object->data.vorbis_comment.comments != NULL && object->data.vorbis_comment.num_comments > 0) \endcode + * \retval FLAC__bool + * \c false if memory allocation fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_resize_comments(FLAC__StreamMetadata *object, unsigned new_num_comments); + +/** Sets a comment in a VORBIS_COMMENT block. + * + * For convenience, a trailing NUL is added to the entry if it doesn't have + * one already. + * + * If \a copy is \c true, a copy of the entry is stored; otherwise, the object + * takes ownership of the \c entry.entry pointer. + * + * \note If this function returns \c false, the caller still owns the + * pointer. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param comment_num Index into comment array to set. + * \param entry The entry to set the comment to. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code comment_num < object->data.vorbis_comment.num_comments \endcode + * \code (entry.entry != NULL && entry.length > 0) || + * (entry.entry == NULL && entry.length == 0) \endcode + * \retval FLAC__bool + * \c false if memory allocation fails or \a entry does not comply with the + * Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_set_comment(FLAC__StreamMetadata *object, unsigned comment_num, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool copy); + +/** Insert a comment in a VORBIS_COMMENT block at the given index. + * + * For convenience, a trailing NUL is added to the entry if it doesn't have + * one already. + * + * If \a copy is \c true, a copy of the entry is stored; otherwise, the object + * takes ownership of the \c entry.entry pointer. + * + * \note If this function returns \c false, the caller still owns the + * pointer. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param comment_num The index at which to insert the comment. The comments + * at and after \a comment_num move right one position. + * To append a comment to the end, set \a comment_num to + * \c object->data.vorbis_comment.num_comments . + * \param entry The comment to insert. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code object->data.vorbis_comment.num_comments >= comment_num \endcode + * \code (entry.entry != NULL && entry.length > 0) || + * (entry.entry == NULL && entry.length == 0 && copy == false) \endcode + * \retval FLAC__bool + * \c false if memory allocation fails or \a entry does not comply with the + * Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_insert_comment(FLAC__StreamMetadata *object, unsigned comment_num, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool copy); + +/** Appends a comment to a VORBIS_COMMENT block. + * + * For convenience, a trailing NUL is added to the entry if it doesn't have + * one already. + * + * If \a copy is \c true, a copy of the entry is stored; otherwise, the object + * takes ownership of the \c entry.entry pointer. + * + * \note If this function returns \c false, the caller still owns the + * pointer. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param entry The comment to insert. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code (entry.entry != NULL && entry.length > 0) || + * (entry.entry == NULL && entry.length == 0 && copy == false) \endcode + * \retval FLAC__bool + * \c false if memory allocation fails or \a entry does not comply with the + * Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_append_comment(FLAC__StreamMetadata *object, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool copy); + +/** Replaces comments in a VORBIS_COMMENT block with a new one. + * + * For convenience, a trailing NUL is added to the entry if it doesn't have + * one already. + * + * Depending on the the value of \a all, either all or just the first comment + * whose field name(s) match the given entry's name will be replaced by the + * given entry. If no comments match, \a entry will simply be appended. + * + * If \a copy is \c true, a copy of the entry is stored; otherwise, the object + * takes ownership of the \c entry.entry pointer. + * + * \note If this function returns \c false, the caller still owns the + * pointer. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param entry The comment to insert. + * \param all If \c true, all comments whose field name matches + * \a entry's field name will be removed, and \a entry will + * be inserted at the position of the first matching + * comment. If \c false, only the first comment whose + * field name matches \a entry's field name will be + * replaced with \a entry. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code (entry.entry != NULL && entry.length > 0) || + * (entry.entry == NULL && entry.length == 0 && copy == false) \endcode + * \retval FLAC__bool + * \c false if memory allocation fails or \a entry does not comply with the + * Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_replace_comment(FLAC__StreamMetadata *object, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool all, FLAC__bool copy); + +/** Delete a comment in a VORBIS_COMMENT block at the given index. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param comment_num The index of the comment to delete. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code object->data.vorbis_comment.num_comments > comment_num \endcode + * \retval FLAC__bool + * \c false if realloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_delete_comment(FLAC__StreamMetadata *object, unsigned comment_num); + +/** Creates a Vorbis comment entry from NUL-terminated name and value strings. + * + * On return, the filled-in \a entry->entry pointer will point to malloc()ed + * memory and shall be owned by the caller. For convenience the entry will + * have a terminating NUL. + * + * \param entry A pointer to a Vorbis comment entry. The entry's + * \c entry pointer should not point to allocated + * memory as it will be overwritten. + * \param field_name The field name in ASCII, \c NUL terminated. + * \param field_value The field value in UTF-8, \c NUL terminated. + * \assert + * \code entry != NULL \endcode + * \code field_name != NULL \endcode + * \code field_value != NULL \endcode + * \retval FLAC__bool + * \c false if malloc() fails, or if \a field_name or \a field_value does + * not comply with the Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_entry_from_name_value_pair(FLAC__StreamMetadata_VorbisComment_Entry *entry, const char *field_name, const char *field_value); + +/** Splits a Vorbis comment entry into NUL-terminated name and value strings. + * + * The returned pointers to name and value will be allocated by malloc() + * and shall be owned by the caller. + * + * \param entry An existing Vorbis comment entry. + * \param field_name The address of where the returned pointer to the + * field name will be stored. + * \param field_value The address of where the returned pointer to the + * field value will be stored. + * \assert + * \code (entry.entry != NULL && entry.length > 0) \endcode + * \code memchr(entry.entry, '=', entry.length) != NULL \endcode + * \code field_name != NULL \endcode + * \code field_value != NULL \endcode + * \retval FLAC__bool + * \c false if memory allocation fails or \a entry does not comply with the + * Vorbis comment specification, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_entry_to_name_value_pair(const FLAC__StreamMetadata_VorbisComment_Entry entry, char **field_name, char **field_value); + +/** Check if the given Vorbis comment entry's field name matches the given + * field name. + * + * \param entry An existing Vorbis comment entry. + * \param field_name The field name to check. + * \param field_name_length The length of \a field_name, not including the + * terminating \c NUL. + * \assert + * \code (entry.entry != NULL && entry.length > 0) \endcode + * \retval FLAC__bool + * \c true if the field names match, else \c false + */ +FLAC_API FLAC__bool FLAC__metadata_object_vorbiscomment_entry_matches(const FLAC__StreamMetadata_VorbisComment_Entry entry, const char *field_name, unsigned field_name_length); + +/** Find a Vorbis comment with the given field name. + * + * The search begins at entry number \a offset; use an offset of 0 to + * search from the beginning of the comment array. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param offset The offset into the comment array from where to start + * the search. + * \param field_name The field name of the comment to find. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \code field_name != NULL \endcode + * \retval int + * The offset in the comment array of the first comment whose field + * name matches \a field_name, or \c -1 if no match was found. + */ +FLAC_API int FLAC__metadata_object_vorbiscomment_find_entry_from(const FLAC__StreamMetadata *object, unsigned offset, const char *field_name); + +/** Remove first Vorbis comment matching the given field name. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param field_name The field name of comment to delete. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \retval int + * \c -1 for memory allocation error, \c 0 for no matching entries, + * \c 1 for one matching entry deleted. + */ +FLAC_API int FLAC__metadata_object_vorbiscomment_remove_entry_matching(FLAC__StreamMetadata *object, const char *field_name); + +/** Remove all Vorbis comments matching the given field name. + * + * \param object A pointer to an existing VORBIS_COMMENT object. + * \param field_name The field name of comments to delete. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_VORBIS_COMMENT \endcode + * \retval int + * \c -1 for memory allocation error, \c 0 for no matching entries, + * else the number of matching entries deleted. + */ +FLAC_API int FLAC__metadata_object_vorbiscomment_remove_entries_matching(FLAC__StreamMetadata *object, const char *field_name); + +/** Create a new CUESHEET track instance. + * + * The object will be "empty"; i.e. values and data pointers will be \c 0. + * + * \retval FLAC__StreamMetadata_CueSheet_Track* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__StreamMetadata_CueSheet_Track *FLAC__metadata_object_cuesheet_track_new(void); + +/** Create a copy of an existing CUESHEET track object. + * + * The copy is a "deep" copy, i.e. dynamically allocated data within the + * object is also copied. The caller takes ownership of the new object and + * is responsible for freeing it with + * FLAC__metadata_object_cuesheet_track_delete(). + * + * \param object Pointer to object to copy. + * \assert + * \code object != NULL \endcode + * \retval FLAC__StreamMetadata_CueSheet_Track* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__StreamMetadata_CueSheet_Track *FLAC__metadata_object_cuesheet_track_clone(const FLAC__StreamMetadata_CueSheet_Track *object); + +/** Delete a CUESHEET track object + * + * \param object A pointer to an existing CUESHEET track object. + * \assert + * \code object != NULL \endcode + */ +FLAC_API void FLAC__metadata_object_cuesheet_track_delete(FLAC__StreamMetadata_CueSheet_Track *object); + +/** Resize a track's index point array. + * + * If the size shrinks, elements will truncated; if it grows, new blank + * indices will be added to the end. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index of the track to modify. NOTE: this is not + * necessarily the same as the track's \a number field. + * \param new_num_indices The desired length of the array; may be \c 0. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks > track_num \endcode + * \code (object->data.cue_sheet.tracks[track_num].indices == NULL && object->data.cue_sheet.tracks[track_num].num_indices == 0) || + * (object->data.cue_sheet.tracks[track_num].indices != NULL && object->data.cue_sheet.tracks[track_num].num_indices > 0) \endcode + * \retval FLAC__bool + * \c false if memory allocation error, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_track_resize_indices(FLAC__StreamMetadata *object, unsigned track_num, unsigned new_num_indices); + +/** Insert an index point in a CUESHEET track at the given index. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index of the track to modify. NOTE: this is not + * necessarily the same as the track's \a number field. + * \param index_num The index into the track's index array at which to + * insert the index point. NOTE: this is not necessarily + * the same as the index point's \a number field. The + * indices at and after \a index_num move right one + * position. To append an index point to the end, set + * \a index_num to + * \c object->data.cue_sheet.tracks[track_num].num_indices . + * \param index The index point to insert. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks > track_num \endcode + * \code object->data.cue_sheet.tracks[track_num].num_indices >= index_num \endcode + * \retval FLAC__bool + * \c false if realloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_track_insert_index(FLAC__StreamMetadata *object, unsigned track_num, unsigned index_num, FLAC__StreamMetadata_CueSheet_Index index); + +/** Insert a blank index point in a CUESHEET track at the given index. + * + * A blank index point is one in which all field values are zero. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index of the track to modify. NOTE: this is not + * necessarily the same as the track's \a number field. + * \param index_num The index into the track's index array at which to + * insert the index point. NOTE: this is not necessarily + * the same as the index point's \a number field. The + * indices at and after \a index_num move right one + * position. To append an index point to the end, set + * \a index_num to + * \c object->data.cue_sheet.tracks[track_num].num_indices . + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks > track_num \endcode + * \code object->data.cue_sheet.tracks[track_num].num_indices >= index_num \endcode + * \retval FLAC__bool + * \c false if realloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_track_insert_blank_index(FLAC__StreamMetadata *object, unsigned track_num, unsigned index_num); + +/** Delete an index point in a CUESHEET track at the given index. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index into the track array of the track to + * modify. NOTE: this is not necessarily the same + * as the track's \a number field. + * \param index_num The index into the track's index array of the index + * to delete. NOTE: this is not necessarily the same + * as the index's \a number field. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks > track_num \endcode + * \code object->data.cue_sheet.tracks[track_num].num_indices > index_num \endcode + * \retval FLAC__bool + * \c false if realloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_track_delete_index(FLAC__StreamMetadata *object, unsigned track_num, unsigned index_num); + +/** Resize the track array. + * + * If the size shrinks, elements will truncated; if it grows, new blank + * tracks will be added to the end. + * + * \param object A pointer to an existing CUESHEET object. + * \param new_num_tracks The desired length of the array; may be \c 0. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code (object->data.cue_sheet.tracks == NULL && object->data.cue_sheet.num_tracks == 0) || + * (object->data.cue_sheet.tracks != NULL && object->data.cue_sheet.num_tracks > 0) \endcode + * \retval FLAC__bool + * \c false if memory allocation error, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_resize_tracks(FLAC__StreamMetadata *object, unsigned new_num_tracks); + +/** Sets a track in a CUESHEET block. + * + * If \a copy is \c true, a copy of the track is stored; otherwise, the object + * takes ownership of the \a track pointer. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num Index into track array to set. NOTE: this is not + * necessarily the same as the track's \a number field. + * \param track The track to set the track to. You may safely pass in + * a const pointer if \a copy is \c true. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code track_num < object->data.cue_sheet.num_tracks \endcode + * \code (track->indices != NULL && track->num_indices > 0) || + * (track->indices == NULL && track->num_indices == 0) + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_set_track(FLAC__StreamMetadata *object, unsigned track_num, FLAC__StreamMetadata_CueSheet_Track *track, FLAC__bool copy); + +/** Insert a track in a CUESHEET block at the given index. + * + * If \a copy is \c true, a copy of the track is stored; otherwise, the object + * takes ownership of the \a track pointer. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index at which to insert the track. NOTE: this + * is not necessarily the same as the track's \a number + * field. The tracks at and after \a track_num move right + * one position. To append a track to the end, set + * \a track_num to \c object->data.cue_sheet.num_tracks . + * \param track The track to insert. You may safely pass in a const + * pointer if \a copy is \c true. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks >= track_num \endcode + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_insert_track(FLAC__StreamMetadata *object, unsigned track_num, FLAC__StreamMetadata_CueSheet_Track *track, FLAC__bool copy); + +/** Insert a blank track in a CUESHEET block at the given index. + * + * A blank track is one in which all field values are zero. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index at which to insert the track. NOTE: this + * is not necessarily the same as the track's \a number + * field. The tracks at and after \a track_num move right + * one position. To append a track to the end, set + * \a track_num to \c object->data.cue_sheet.num_tracks . + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks >= track_num \endcode + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_insert_blank_track(FLAC__StreamMetadata *object, unsigned track_num); + +/** Delete a track in a CUESHEET block at the given index. + * + * \param object A pointer to an existing CUESHEET object. + * \param track_num The index into the track array of the track to + * delete. NOTE: this is not necessarily the same + * as the track's \a number field. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \code object->data.cue_sheet.num_tracks > track_num \endcode + * \retval FLAC__bool + * \c false if realloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_delete_track(FLAC__StreamMetadata *object, unsigned track_num); + +/** Check a cue sheet to see if it conforms to the FLAC specification. + * See the format specification for limits on the contents of the + * cue sheet. + * + * \param object A pointer to an existing CUESHEET object. + * \param check_cd_da_subset If \c true, check CUESHEET against more + * stringent requirements for a CD-DA (audio) disc. + * \param violation Address of a pointer to a string. If there is a + * violation, a pointer to a string explanation of the + * violation will be returned here. \a violation may be + * \c NULL if you don't need the returned string. Do not + * free the returned string; it will always point to static + * data. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \retval FLAC__bool + * \c false if cue sheet is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_cuesheet_is_legal(const FLAC__StreamMetadata *object, FLAC__bool check_cd_da_subset, const char **violation); + +/** Calculate and return the CDDB/freedb ID for a cue sheet. The function + * assumes the cue sheet corresponds to a CD; the result is undefined + * if the cuesheet's is_cd bit is not set. + * + * \param object A pointer to an existing CUESHEET object. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_CUESHEET \endcode + * \retval FLAC__uint32 + * The unsigned integer representation of the CDDB/freedb ID + */ +FLAC_API FLAC__uint32 FLAC__metadata_object_cuesheet_calculate_cddb_id(const FLAC__StreamMetadata *object); + +/** Sets the MIME type of a PICTURE block. + * + * If \a copy is \c true, a copy of the string is stored; otherwise, the object + * takes ownership of the pointer. The existing string will be freed if this + * function is successful, otherwise the original string will remain if \a copy + * is \c true and malloc() fails. + * + * \note It is safe to pass a const pointer to \a mime_type if \a copy is \c true. + * + * \param object A pointer to an existing PICTURE object. + * \param mime_type A pointer to the MIME type string. The string must be + * ASCII characters 0x20-0x7e, NUL-terminated. No validation + * is done. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_PICTURE \endcode + * \code (mime_type != NULL) \endcode + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_picture_set_mime_type(FLAC__StreamMetadata *object, char *mime_type, FLAC__bool copy); + +/** Sets the description of a PICTURE block. + * + * If \a copy is \c true, a copy of the string is stored; otherwise, the object + * takes ownership of the pointer. The existing string will be freed if this + * function is successful, otherwise the original string will remain if \a copy + * is \c true and malloc() fails. + * + * \note It is safe to pass a const pointer to \a description if \a copy is \c true. + * + * \param object A pointer to an existing PICTURE object. + * \param description A pointer to the description string. The string must be + * valid UTF-8, NUL-terminated. No validation is done. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_PICTURE \endcode + * \code (description != NULL) \endcode + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_picture_set_description(FLAC__StreamMetadata *object, FLAC__byte *description, FLAC__bool copy); + +/** Sets the picture data of a PICTURE block. + * + * If \a copy is \c true, a copy of the data is stored; otherwise, the object + * takes ownership of the pointer. Also sets the \a data_length field of the + * metadata object to what is passed in as the \a length parameter. The + * existing data will be freed if this function is successful, otherwise the + * original data and data_length will remain if \a copy is \c true and + * malloc() fails. + * + * \note It is safe to pass a const pointer to \a data if \a copy is \c true. + * + * \param object A pointer to an existing PICTURE object. + * \param data A pointer to the data to set. + * \param length The length of \a data in bytes. + * \param copy See above. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_PICTURE \endcode + * \code (data != NULL && length > 0) || + * (data == NULL && length == 0 && copy == false) \endcode + * \retval FLAC__bool + * \c false if \a copy is \c true and malloc() fails, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_picture_set_data(FLAC__StreamMetadata *object, FLAC__byte *data, FLAC__uint32 length, FLAC__bool copy); + +/** Check a PICTURE block to see if it conforms to the FLAC specification. + * See the format specification for limits on the contents of the + * PICTURE block. + * + * \param object A pointer to existing PICTURE block to be checked. + * \param violation Address of a pointer to a string. If there is a + * violation, a pointer to a string explanation of the + * violation will be returned here. \a violation may be + * \c NULL if you don't need the returned string. Do not + * free the returned string; it will always point to static + * data. + * \assert + * \code object != NULL \endcode + * \code object->type == FLAC__METADATA_TYPE_PICTURE \endcode + * \retval FLAC__bool + * \c false if PICTURE block is illegal, else \c true. + */ +FLAC_API FLAC__bool FLAC__metadata_object_picture_is_legal(const FLAC__StreamMetadata *object, const char **violation); + +/* \} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/headers/FLAC/ordinals.h b/Audio-Frameworks/bin/flac/headers/FLAC/ordinals.h new file mode 100644 index 0000000..a7a5cd9 --- /dev/null +++ b/Audio-Frameworks/bin/flac/headers/FLAC/ordinals.h @@ -0,0 +1,80 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__ORDINALS_H +#define FLAC__ORDINALS_H + +#if !(defined(_MSC_VER) || defined(__BORLANDC__) || defined(__EMX__)) +#include +#endif + +typedef signed char FLAC__int8; +typedef unsigned char FLAC__uint8; + +#if defined(_MSC_VER) || defined(__BORLANDC__) +typedef __int16 FLAC__int16; +typedef __int32 FLAC__int32; +typedef __int64 FLAC__int64; +typedef unsigned __int16 FLAC__uint16; +typedef unsigned __int32 FLAC__uint32; +typedef unsigned __int64 FLAC__uint64; +#elif defined(__EMX__) +typedef short FLAC__int16; +typedef long FLAC__int32; +typedef long long FLAC__int64; +typedef unsigned short FLAC__uint16; +typedef unsigned long FLAC__uint32; +typedef unsigned long long FLAC__uint64; +#else +typedef int16_t FLAC__int16; +typedef int32_t FLAC__int32; +typedef int64_t FLAC__int64; +typedef uint16_t FLAC__uint16; +typedef uint32_t FLAC__uint32; +typedef uint64_t FLAC__uint64; +#endif + +typedef int FLAC__bool; + +typedef FLAC__uint8 FLAC__byte; + +#ifdef true +#undef true +#endif +#ifdef false +#undef false +#endif +#ifndef __cplusplus +#define true 1 +#define false 0 +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/headers/FLAC/stream_decoder.h b/Audio-Frameworks/bin/flac/headers/FLAC/stream_decoder.h new file mode 100644 index 0000000..9ac1594 --- /dev/null +++ b/Audio-Frameworks/bin/flac/headers/FLAC/stream_decoder.h @@ -0,0 +1,1559 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__STREAM_DECODER_H +#define FLAC__STREAM_DECODER_H + +#include /* for FILE */ +#include "export.h" +#include "format.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +/** \file include/FLAC/stream_decoder.h + * + * \brief + * This module contains the functions which implement the stream + * decoder. + * + * See the detailed documentation in the + * \link flac_stream_decoder stream decoder \endlink module. + */ + +/** \defgroup flac_decoder FLAC/ \*_decoder.h: decoder interfaces + * \ingroup flac + * + * \brief + * This module describes the decoder layers provided by libFLAC. + * + * The stream decoder can be used to decode complete streams either from + * the client via callbacks, or directly from a file, depending on how + * it is initialized. When decoding via callbacks, the client provides + * callbacks for reading FLAC data and writing decoded samples, and + * handling metadata and errors. If the client also supplies seek-related + * callback, the decoder function for sample-accurate seeking within the + * FLAC input is also available. When decoding from a file, the client + * needs only supply a filename or open \c FILE* and write/metadata/error + * callbacks; the rest of the callbacks are supplied internally. For more + * info see the \link flac_stream_decoder stream decoder \endlink module. + */ + +/** \defgroup flac_stream_decoder FLAC/stream_decoder.h: stream decoder interface + * \ingroup flac_decoder + * + * \brief + * This module contains the functions which implement the stream + * decoder. + * + * The stream decoder can decode native FLAC, and optionally Ogg FLAC + * (check FLAC_API_SUPPORTS_OGG_FLAC) streams and files. + * + * The basic usage of this decoder is as follows: + * - The program creates an instance of a decoder using + * FLAC__stream_decoder_new(). + * - The program overrides the default settings using + * FLAC__stream_decoder_set_*() functions. + * - The program initializes the instance to validate the settings and + * prepare for decoding using + * - FLAC__stream_decoder_init_stream() or FLAC__stream_decoder_init_FILE() + * or FLAC__stream_decoder_init_file() for native FLAC, + * - FLAC__stream_decoder_init_ogg_stream() or FLAC__stream_decoder_init_ogg_FILE() + * or FLAC__stream_decoder_init_ogg_file() for Ogg FLAC + * - The program calls the FLAC__stream_decoder_process_*() functions + * to decode data, which subsequently calls the callbacks. + * - The program finishes the decoding with FLAC__stream_decoder_finish(), + * which flushes the input and output and resets the decoder to the + * uninitialized state. + * - The instance may be used again or deleted with + * FLAC__stream_decoder_delete(). + * + * In more detail, the program will create a new instance by calling + * FLAC__stream_decoder_new(), then call FLAC__stream_decoder_set_*() + * functions to override the default decoder options, and call + * one of the FLAC__stream_decoder_init_*() functions. + * + * There are three initialization functions for native FLAC, one for + * setting up the decoder to decode FLAC data from the client via + * callbacks, and two for decoding directly from a FLAC file. + * + * For decoding via callbacks, use FLAC__stream_decoder_init_stream(). + * You must also supply several callbacks for handling I/O. Some (like + * seeking) are optional, depending on the capabilities of the input. + * + * For decoding directly from a file, use FLAC__stream_decoder_init_FILE() + * or FLAC__stream_decoder_init_file(). Then you must only supply an open + * \c FILE* or filename and fewer callbacks; the decoder will handle + * the other callbacks internally. + * + * There are three similarly-named init functions for decoding from Ogg + * FLAC streams. Check \c FLAC_API_SUPPORTS_OGG_FLAC to find out if the + * library has been built with Ogg support. + * + * Once the decoder is initialized, your program will call one of several + * functions to start the decoding process: + * + * - FLAC__stream_decoder_process_single() - Tells the decoder to process at + * most one metadata block or audio frame and return, calling either the + * metadata callback or write callback, respectively, once. If the decoder + * loses sync it will return with only the error callback being called. + * - FLAC__stream_decoder_process_until_end_of_metadata() - Tells the decoder + * to process the stream from the current location and stop upon reaching + * the first audio frame. The client will get one metadata, write, or error + * callback per metadata block, audio frame, or sync error, respectively. + * - FLAC__stream_decoder_process_until_end_of_stream() - Tells the decoder + * to process the stream from the current location until the read callback + * returns FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM or + * FLAC__STREAM_DECODER_READ_STATUS_ABORT. The client will get one metadata, + * write, or error callback per metadata block, audio frame, or sync error, + * respectively. + * + * When the decoder has finished decoding (normally or through an abort), + * the instance is finished by calling FLAC__stream_decoder_finish(), which + * ensures the decoder is in the correct state and frees memory. Then the + * instance may be deleted with FLAC__stream_decoder_delete() or initialized + * again to decode another stream. + * + * Seeking is exposed through the FLAC__stream_decoder_seek_absolute() method. + * At any point after the stream decoder has been initialized, the client can + * call this function to seek to an exact sample within the stream. + * Subsequently, the first time the write callback is called it will be + * passed a (possibly partial) block starting at that sample. + * + * If the client cannot seek via the callback interface provided, but still + * has another way of seeking, it can flush the decoder using + * FLAC__stream_decoder_flush() and start feeding data from the new position + * through the read callback. + * + * The stream decoder also provides MD5 signature checking. If this is + * turned on before initialization, FLAC__stream_decoder_finish() will + * report when the decoded MD5 signature does not match the one stored + * in the STREAMINFO block. MD5 checking is automatically turned off + * (until the next FLAC__stream_decoder_reset()) if there is no signature + * in the STREAMINFO block or when a seek is attempted. + * + * The FLAC__stream_decoder_set_metadata_*() functions deserve special + * attention. By default, the decoder only calls the metadata_callback for + * the STREAMINFO block. These functions allow you to tell the decoder + * explicitly which blocks to parse and return via the metadata_callback + * and/or which to skip. Use a FLAC__stream_decoder_set_metadata_respond_all(), + * FLAC__stream_decoder_set_metadata_ignore() ... or FLAC__stream_decoder_set_metadata_ignore_all(), + * FLAC__stream_decoder_set_metadata_respond() ... sequence to exactly specify + * which blocks to return. Remember that metadata blocks can potentially + * be big (for example, cover art) so filtering out the ones you don't + * use can reduce the memory requirements of the decoder. Also note the + * special forms FLAC__stream_decoder_set_metadata_respond_application(id) + * and FLAC__stream_decoder_set_metadata_ignore_application(id) for + * filtering APPLICATION blocks based on the application ID. + * + * STREAMINFO and SEEKTABLE blocks are always parsed and used internally, but + * they still can legally be filtered from the metadata_callback. + * + * \note + * The "set" functions may only be called when the decoder is in the + * state FLAC__STREAM_DECODER_UNINITIALIZED, i.e. after + * FLAC__stream_decoder_new() or FLAC__stream_decoder_finish(), but + * before FLAC__stream_decoder_init_*(). If this is the case they will + * return \c true, otherwise \c false. + * + * \note + * FLAC__stream_decoder_finish() resets all settings to the constructor + * defaults, including the callbacks. + * + * \{ + */ + + +/** State values for a FLAC__StreamDecoder + * + * The decoder's state can be obtained by calling FLAC__stream_decoder_get_state(). + */ +typedef enum { + + FLAC__STREAM_DECODER_SEARCH_FOR_METADATA = 0, + /**< The decoder is ready to search for metadata. */ + + FLAC__STREAM_DECODER_READ_METADATA, + /**< The decoder is ready to or is in the process of reading metadata. */ + + FLAC__STREAM_DECODER_SEARCH_FOR_FRAME_SYNC, + /**< The decoder is ready to or is in the process of searching for the + * frame sync code. + */ + + FLAC__STREAM_DECODER_READ_FRAME, + /**< The decoder is ready to or is in the process of reading a frame. */ + + FLAC__STREAM_DECODER_END_OF_STREAM, + /**< The decoder has reached the end of the stream. */ + + FLAC__STREAM_DECODER_OGG_ERROR, + /**< An error occurred in the underlying Ogg layer. */ + + FLAC__STREAM_DECODER_SEEK_ERROR, + /**< An error occurred while seeking. The decoder must be flushed + * with FLAC__stream_decoder_flush() or reset with + * FLAC__stream_decoder_reset() before decoding can continue. + */ + + FLAC__STREAM_DECODER_ABORTED, + /**< The decoder was aborted by the read callback. */ + + FLAC__STREAM_DECODER_MEMORY_ALLOCATION_ERROR, + /**< An error occurred allocating memory. The decoder is in an invalid + * state and can no longer be used. + */ + + FLAC__STREAM_DECODER_UNINITIALIZED + /**< The decoder is in the uninitialized state; one of the + * FLAC__stream_decoder_init_*() functions must be called before samples + * can be processed. + */ + +} FLAC__StreamDecoderState; + +/** Maps a FLAC__StreamDecoderState to a C string. + * + * Using a FLAC__StreamDecoderState as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderStateString[]; + + +/** Possible return values for the FLAC__stream_decoder_init_*() functions. + */ +typedef enum { + + FLAC__STREAM_DECODER_INIT_STATUS_OK = 0, + /**< Initialization was successful. */ + + FLAC__STREAM_DECODER_INIT_STATUS_UNSUPPORTED_CONTAINER, + /**< The library was not compiled with support for the given container + * format. + */ + + FLAC__STREAM_DECODER_INIT_STATUS_INVALID_CALLBACKS, + /**< A required callback was not supplied. */ + + FLAC__STREAM_DECODER_INIT_STATUS_MEMORY_ALLOCATION_ERROR, + /**< An error occurred allocating memory. */ + + FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE, + /**< fopen() failed in FLAC__stream_decoder_init_file() or + * FLAC__stream_decoder_init_ogg_file(). */ + + FLAC__STREAM_DECODER_INIT_STATUS_ALREADY_INITIALIZED + /**< FLAC__stream_decoder_init_*() was called when the decoder was + * already initialized, usually because + * FLAC__stream_decoder_finish() was not called. + */ + +} FLAC__StreamDecoderInitStatus; + +/** Maps a FLAC__StreamDecoderInitStatus to a C string. + * + * Using a FLAC__StreamDecoderInitStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderInitStatusString[]; + + +/** Return values for the FLAC__StreamDecoder read callback. + */ +typedef enum { + + FLAC__STREAM_DECODER_READ_STATUS_CONTINUE, + /**< The read was OK and decoding can continue. */ + + FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM, + /**< The read was attempted while at the end of the stream. Note that + * the client must only return this value when the read callback was + * called when already at the end of the stream. Otherwise, if the read + * itself moves to the end of the stream, the client should still return + * the data and \c FLAC__STREAM_DECODER_READ_STATUS_CONTINUE, and then on + * the next read callback it should return + * \c FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM with a byte count + * of \c 0. + */ + + FLAC__STREAM_DECODER_READ_STATUS_ABORT + /**< An unrecoverable error occurred. The decoder will return from the process call. */ + +} FLAC__StreamDecoderReadStatus; + +/** Maps a FLAC__StreamDecoderReadStatus to a C string. + * + * Using a FLAC__StreamDecoderReadStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderReadStatusString[]; + + +/** Return values for the FLAC__StreamDecoder seek callback. + */ +typedef enum { + + FLAC__STREAM_DECODER_SEEK_STATUS_OK, + /**< The seek was OK and decoding can continue. */ + + FLAC__STREAM_DECODER_SEEK_STATUS_ERROR, + /**< An unrecoverable error occurred. The decoder will return from the process call. */ + + FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED + /**< Client does not support seeking. */ + +} FLAC__StreamDecoderSeekStatus; + +/** Maps a FLAC__StreamDecoderSeekStatus to a C string. + * + * Using a FLAC__StreamDecoderSeekStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderSeekStatusString[]; + + +/** Return values for the FLAC__StreamDecoder tell callback. + */ +typedef enum { + + FLAC__STREAM_DECODER_TELL_STATUS_OK, + /**< The tell was OK and decoding can continue. */ + + FLAC__STREAM_DECODER_TELL_STATUS_ERROR, + /**< An unrecoverable error occurred. The decoder will return from the process call. */ + + FLAC__STREAM_DECODER_TELL_STATUS_UNSUPPORTED + /**< Client does not support telling the position. */ + +} FLAC__StreamDecoderTellStatus; + +/** Maps a FLAC__StreamDecoderTellStatus to a C string. + * + * Using a FLAC__StreamDecoderTellStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderTellStatusString[]; + + +/** Return values for the FLAC__StreamDecoder length callback. + */ +typedef enum { + + FLAC__STREAM_DECODER_LENGTH_STATUS_OK, + /**< The length call was OK and decoding can continue. */ + + FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR, + /**< An unrecoverable error occurred. The decoder will return from the process call. */ + + FLAC__STREAM_DECODER_LENGTH_STATUS_UNSUPPORTED + /**< Client does not support reporting the length. */ + +} FLAC__StreamDecoderLengthStatus; + +/** Maps a FLAC__StreamDecoderLengthStatus to a C string. + * + * Using a FLAC__StreamDecoderLengthStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderLengthStatusString[]; + + +/** Return values for the FLAC__StreamDecoder write callback. + */ +typedef enum { + + FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE, + /**< The write was OK and decoding can continue. */ + + FLAC__STREAM_DECODER_WRITE_STATUS_ABORT + /**< An unrecoverable error occurred. The decoder will return from the process call. */ + +} FLAC__StreamDecoderWriteStatus; + +/** Maps a FLAC__StreamDecoderWriteStatus to a C string. + * + * Using a FLAC__StreamDecoderWriteStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderWriteStatusString[]; + + +/** Possible values passed back to the FLAC__StreamDecoder error callback. + * \c FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC is the generic catch- + * all. The rest could be caused by bad sync (false synchronization on + * data that is not the start of a frame) or corrupted data. The error + * itself is the decoder's best guess at what happened assuming a correct + * sync. For example \c FLAC__STREAM_DECODER_ERROR_STATUS_BAD_HEADER + * could be caused by a correct sync on the start of a frame, but some + * data in the frame header was corrupted. Or it could be the result of + * syncing on a point the stream that looked like the starting of a frame + * but was not. \c FLAC__STREAM_DECODER_ERROR_STATUS_UNPARSEABLE_STREAM + * could be because the decoder encountered a valid frame made by a future + * version of the encoder which it cannot parse, or because of a false + * sync making it appear as though an encountered frame was generated by + * a future encoder. + */ +typedef enum { + + FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC, + /**< An error in the stream caused the decoder to lose synchronization. */ + + FLAC__STREAM_DECODER_ERROR_STATUS_BAD_HEADER, + /**< The decoder encountered a corrupted frame header. */ + + FLAC__STREAM_DECODER_ERROR_STATUS_FRAME_CRC_MISMATCH, + /**< The frame's data did not match the CRC in the footer. */ + + FLAC__STREAM_DECODER_ERROR_STATUS_UNPARSEABLE_STREAM + /**< The decoder encountered reserved fields in use in the stream. */ + +} FLAC__StreamDecoderErrorStatus; + +/** Maps a FLAC__StreamDecoderErrorStatus to a C string. + * + * Using a FLAC__StreamDecoderErrorStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamDecoderErrorStatusString[]; + + +/*********************************************************************** + * + * class FLAC__StreamDecoder + * + ***********************************************************************/ + +struct FLAC__StreamDecoderProtected; +struct FLAC__StreamDecoderPrivate; +/** The opaque structure definition for the stream decoder type. + * See the \link flac_stream_decoder stream decoder module \endlink + * for a detailed description. + */ +typedef struct { + struct FLAC__StreamDecoderProtected *protected_; /* avoid the C++ keyword 'protected' */ + struct FLAC__StreamDecoderPrivate *private_; /* avoid the C++ keyword 'private' */ +} FLAC__StreamDecoder; + +/** Signature for the read callback. + * + * A function pointer matching this signature must be passed to + * FLAC__stream_decoder_init*_stream(). The supplied function will be + * called when the decoder needs more input data. The address of the + * buffer to be filled is supplied, along with the number of bytes the + * buffer can hold. The callback may choose to supply less data and + * modify the byte count but must be careful not to overflow the buffer. + * The callback then returns a status code chosen from + * FLAC__StreamDecoderReadStatus. + * + * Here is an example of a read callback for stdio streams: + * \code + * FLAC__StreamDecoderReadStatus read_cb(const FLAC__StreamDecoder *decoder, FLAC__byte buffer[], size_t *bytes, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * if(*bytes > 0) { + * *bytes = fread(buffer, sizeof(FLAC__byte), *bytes, file); + * if(ferror(file)) + * return FLAC__STREAM_DECODER_READ_STATUS_ABORT; + * else if(*bytes == 0) + * return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM; + * else + * return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE; + * } + * else + * return FLAC__STREAM_DECODER_READ_STATUS_ABORT; + * } + * \endcode + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param buffer A pointer to a location for the callee to store + * data to be decoded. + * \param bytes A pointer to the size of the buffer. On entry + * to the callback, it contains the maximum number + * of bytes that may be stored in \a buffer. The + * callee must set it to the actual number of bytes + * stored (0 in case of error or end-of-stream) before + * returning. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + * \retval FLAC__StreamDecoderReadStatus + * The callee's return status. Note that the callback should return + * \c FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM if and only if + * zero bytes were read and there is no more data to be read. + */ +typedef FLAC__StreamDecoderReadStatus (*FLAC__StreamDecoderReadCallback)(const FLAC__StreamDecoder *decoder, FLAC__byte buffer[], size_t *bytes, void *client_data); + +/** Signature for the seek callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_decoder_init*_stream(). The supplied function will be + * called when the decoder needs to seek the input stream. The decoder + * will pass the absolute byte offset to seek to, 0 meaning the + * beginning of the stream. + * + * Here is an example of a seek callback for stdio streams: + * \code + * FLAC__StreamDecoderSeekStatus seek_cb(const FLAC__StreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * if(file == stdin) + * return FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED; + * else if(fseeko(file, (off_t)absolute_byte_offset, SEEK_SET) < 0) + * return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR; + * else + * return FLAC__STREAM_DECODER_SEEK_STATUS_OK; + * } + * \endcode + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param absolute_byte_offset The offset from the beginning of the stream + * to seek to. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + * \retval FLAC__StreamDecoderSeekStatus + * The callee's return status. + */ +typedef FLAC__StreamDecoderSeekStatus (*FLAC__StreamDecoderSeekCallback)(const FLAC__StreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data); + +/** Signature for the tell callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_decoder_init*_stream(). The supplied function will be + * called when the decoder wants to know the current position of the + * stream. The callback should return the byte offset from the + * beginning of the stream. + * + * Here is an example of a tell callback for stdio streams: + * \code + * FLAC__StreamDecoderTellStatus tell_cb(const FLAC__StreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * off_t pos; + * if(file == stdin) + * return FLAC__STREAM_DECODER_TELL_STATUS_UNSUPPORTED; + * else if((pos = ftello(file)) < 0) + * return FLAC__STREAM_DECODER_TELL_STATUS_ERROR; + * else { + * *absolute_byte_offset = (FLAC__uint64)pos; + * return FLAC__STREAM_DECODER_TELL_STATUS_OK; + * } + * } + * \endcode + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param absolute_byte_offset A pointer to storage for the current offset + * from the beginning of the stream. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + * \retval FLAC__StreamDecoderTellStatus + * The callee's return status. + */ +typedef FLAC__StreamDecoderTellStatus (*FLAC__StreamDecoderTellCallback)(const FLAC__StreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data); + +/** Signature for the length callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_decoder_init*_stream(). The supplied function will be + * called when the decoder wants to know the total length of the stream + * in bytes. + * + * Here is an example of a length callback for stdio streams: + * \code + * FLAC__StreamDecoderLengthStatus length_cb(const FLAC__StreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * struct stat filestats; + * + * if(file == stdin) + * return FLAC__STREAM_DECODER_LENGTH_STATUS_UNSUPPORTED; + * else if(fstat(fileno(file), &filestats) != 0) + * return FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR; + * else { + * *stream_length = (FLAC__uint64)filestats.st_size; + * return FLAC__STREAM_DECODER_LENGTH_STATUS_OK; + * } + * } + * \endcode + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param stream_length A pointer to storage for the length of the stream + * in bytes. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + * \retval FLAC__StreamDecoderLengthStatus + * The callee's return status. + */ +typedef FLAC__StreamDecoderLengthStatus (*FLAC__StreamDecoderLengthCallback)(const FLAC__StreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data); + +/** Signature for the EOF callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_decoder_init*_stream(). The supplied function will be + * called when the decoder needs to know if the end of the stream has + * been reached. + * + * Here is an example of a EOF callback for stdio streams: + * FLAC__bool eof_cb(const FLAC__StreamDecoder *decoder, void *client_data) + * \code + * { + * FILE *file = ((MyClientData*)client_data)->file; + * return feof(file)? true : false; + * } + * \endcode + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + * \retval FLAC__bool + * \c true if the currently at the end of the stream, else \c false. + */ +typedef FLAC__bool (*FLAC__StreamDecoderEofCallback)(const FLAC__StreamDecoder *decoder, void *client_data); + +/** Signature for the write callback. + * + * A function pointer matching this signature must be passed to one of + * the FLAC__stream_decoder_init_*() functions. + * The supplied function will be called when the decoder has decoded a + * single audio frame. The decoder will pass the frame metadata as well + * as an array of pointers (one for each channel) pointing to the + * decoded audio. + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param frame The description of the decoded frame. See + * FLAC__Frame. + * \param buffer An array of pointers to decoded channels of data. + * Each pointer will point to an array of signed + * samples of length \a frame->header.blocksize. + * Channels will be ordered according to the FLAC + * specification; see the documentation for the + * frame header. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + * \retval FLAC__StreamDecoderWriteStatus + * The callee's return status. + */ +typedef FLAC__StreamDecoderWriteStatus (*FLAC__StreamDecoderWriteCallback)(const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data); + +/** Signature for the metadata callback. + * + * A function pointer matching this signature must be passed to one of + * the FLAC__stream_decoder_init_*() functions. + * The supplied function will be called when the decoder has decoded a + * metadata block. In a valid FLAC file there will always be one + * \c STREAMINFO block, followed by zero or more other metadata blocks. + * These will be supplied by the decoder in the same order as they + * appear in the stream and always before the first audio frame (i.e. + * write callback). The metadata block that is passed in must not be + * modified, and it doesn't live beyond the callback, so you should make + * a copy of it with FLAC__metadata_object_clone() if you will need it + * elsewhere. Since metadata blocks can potentially be large, by + * default the decoder only calls the metadata callback for the + * \c STREAMINFO block; you can instruct the decoder to pass or filter + * other blocks with FLAC__stream_decoder_set_metadata_*() calls. + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param metadata The decoded metadata block. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + */ +typedef void (*FLAC__StreamDecoderMetadataCallback)(const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data); + +/** Signature for the error callback. + * + * A function pointer matching this signature must be passed to one of + * the FLAC__stream_decoder_init_*() functions. + * The supplied function will be called whenever an error occurs during + * decoding. + * + * \note In general, FLAC__StreamDecoder functions which change the + * state should not be called on the \a decoder while in the callback. + * + * \param decoder The decoder instance calling the callback. + * \param status The error encountered by the decoder. + * \param client_data The callee's client data set through + * FLAC__stream_decoder_init_*(). + */ +typedef void (*FLAC__StreamDecoderErrorCallback)(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data); + + +/*********************************************************************** + * + * Class constructor/destructor + * + ***********************************************************************/ + +/** Create a new stream decoder instance. The instance is created with + * default settings; see the individual FLAC__stream_decoder_set_*() + * functions for each setting's default. + * + * \retval FLAC__StreamDecoder* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__StreamDecoder *FLAC__stream_decoder_new(void); + +/** Free a decoder instance. Deletes the object pointed to by \a decoder. + * + * \param decoder A pointer to an existing decoder. + * \assert + * \code decoder != NULL \endcode + */ +FLAC_API void FLAC__stream_decoder_delete(FLAC__StreamDecoder *decoder); + + +/*********************************************************************** + * + * Public class method prototypes + * + ***********************************************************************/ + +/** Set the serial number for the FLAC stream within the Ogg container. + * The default behavior is to use the serial number of the first Ogg + * page. Setting a serial number here will explicitly specify which + * stream is to be decoded. + * + * \note + * This does not need to be set for native FLAC decoding. + * + * \default \c use serial number of first page + * \param decoder A decoder instance to set. + * \param serial_number See above. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_ogg_serial_number(FLAC__StreamDecoder *decoder, long serial_number); + +/** Set the "MD5 signature checking" flag. If \c true, the decoder will + * compute the MD5 signature of the unencoded audio data while decoding + * and compare it to the signature from the STREAMINFO block, if it + * exists, during FLAC__stream_decoder_finish(). + * + * MD5 signature checking will be turned off (until the next + * FLAC__stream_decoder_reset()) if there is no signature in the + * STREAMINFO block or when a seek is attempted. + * + * Clients that do not use the MD5 check should leave this off to speed + * up decoding. + * + * \default \c false + * \param decoder A decoder instance to set. + * \param value Flag value (see above). + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_md5_checking(FLAC__StreamDecoder *decoder, FLAC__bool value); + +/** Direct the decoder to pass on all metadata blocks of type \a type. + * + * \default By default, only the \c STREAMINFO block is returned via the + * metadata callback. + * \param decoder A decoder instance to set. + * \param type See above. + * \assert + * \code decoder != NULL \endcode + * \a type is valid + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_metadata_respond(FLAC__StreamDecoder *decoder, FLAC__MetadataType type); + +/** Direct the decoder to pass on all APPLICATION metadata blocks of the + * given \a id. + * + * \default By default, only the \c STREAMINFO block is returned via the + * metadata callback. + * \param decoder A decoder instance to set. + * \param id See above. + * \assert + * \code decoder != NULL \endcode + * \code id != NULL \endcode + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_metadata_respond_application(FLAC__StreamDecoder *decoder, const FLAC__byte id[4]); + +/** Direct the decoder to pass on all metadata blocks of any type. + * + * \default By default, only the \c STREAMINFO block is returned via the + * metadata callback. + * \param decoder A decoder instance to set. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_metadata_respond_all(FLAC__StreamDecoder *decoder); + +/** Direct the decoder to filter out all metadata blocks of type \a type. + * + * \default By default, only the \c STREAMINFO block is returned via the + * metadata callback. + * \param decoder A decoder instance to set. + * \param type See above. + * \assert + * \code decoder != NULL \endcode + * \a type is valid + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_metadata_ignore(FLAC__StreamDecoder *decoder, FLAC__MetadataType type); + +/** Direct the decoder to filter out all APPLICATION metadata blocks of + * the given \a id. + * + * \default By default, only the \c STREAMINFO block is returned via the + * metadata callback. + * \param decoder A decoder instance to set. + * \param id See above. + * \assert + * \code decoder != NULL \endcode + * \code id != NULL \endcode + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_metadata_ignore_application(FLAC__StreamDecoder *decoder, const FLAC__byte id[4]); + +/** Direct the decoder to filter out all metadata blocks of any type. + * + * \default By default, only the \c STREAMINFO block is returned via the + * metadata callback. + * \param decoder A decoder instance to set. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if the decoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_set_metadata_ignore_all(FLAC__StreamDecoder *decoder); + +/** Get the current decoder state. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__StreamDecoderState + * The current decoder state. + */ +FLAC_API FLAC__StreamDecoderState FLAC__stream_decoder_get_state(const FLAC__StreamDecoder *decoder); + +/** Get the current decoder state as a C string. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval const char * + * The decoder state as a C string. Do not modify the contents. + */ +FLAC_API const char *FLAC__stream_decoder_get_resolved_state_string(const FLAC__StreamDecoder *decoder); + +/** Get the "MD5 signature checking" flag. + * This is the value of the setting, not whether or not the decoder is + * currently checking the MD5 (remember, it can be turned off automatically + * by a seek). When the decoder is reset the flag will be restored to the + * value returned by this function. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * See above. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_get_md5_checking(const FLAC__StreamDecoder *decoder); + +/** Get the total number of samples in the stream being decoded. + * Will only be valid after decoding has started and will contain the + * value from the \c STREAMINFO block. A value of \c 0 means "unknown". + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval unsigned + * See above. + */ +FLAC_API FLAC__uint64 FLAC__stream_decoder_get_total_samples(const FLAC__StreamDecoder *decoder); + +/** Get the current number of channels in the stream being decoded. + * Will only be valid after decoding has started and will contain the + * value from the most recently decoded frame header. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval unsigned + * See above. + */ +FLAC_API unsigned FLAC__stream_decoder_get_channels(const FLAC__StreamDecoder *decoder); + +/** Get the current channel assignment in the stream being decoded. + * Will only be valid after decoding has started and will contain the + * value from the most recently decoded frame header. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__ChannelAssignment + * See above. + */ +FLAC_API FLAC__ChannelAssignment FLAC__stream_decoder_get_channel_assignment(const FLAC__StreamDecoder *decoder); + +/** Get the current sample resolution in the stream being decoded. + * Will only be valid after decoding has started and will contain the + * value from the most recently decoded frame header. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval unsigned + * See above. + */ +FLAC_API unsigned FLAC__stream_decoder_get_bits_per_sample(const FLAC__StreamDecoder *decoder); + +/** Get the current sample rate in Hz of the stream being decoded. + * Will only be valid after decoding has started and will contain the + * value from the most recently decoded frame header. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval unsigned + * See above. + */ +FLAC_API unsigned FLAC__stream_decoder_get_sample_rate(const FLAC__StreamDecoder *decoder); + +/** Get the current blocksize of the stream being decoded. + * Will only be valid after decoding has started and will contain the + * value from the most recently decoded frame header. + * + * \param decoder A decoder instance to query. + * \assert + * \code decoder != NULL \endcode + * \retval unsigned + * See above. + */ +FLAC_API unsigned FLAC__stream_decoder_get_blocksize(const FLAC__StreamDecoder *decoder); + +/** Returns the decoder's current read position within the stream. + * The position is the byte offset from the start of the stream. + * Bytes before this position have been fully decoded. Note that + * there may still be undecoded bytes in the decoder's read FIFO. + * The returned position is correct even after a seek. + * + * \warning This function currently only works for native FLAC, + * not Ogg FLAC streams. + * + * \param decoder A decoder instance to query. + * \param position Address at which to return the desired position. + * \assert + * \code decoder != NULL \endcode + * \code position != NULL \endcode + * \retval FLAC__bool + * \c true if successful, \c false if the stream is not native FLAC, + * or there was an error from the 'tell' callback or it returned + * \c FLAC__STREAM_DECODER_TELL_STATUS_UNSUPPORTED. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_get_decode_position(const FLAC__StreamDecoder *decoder, FLAC__uint64 *position); + +/** Initialize the decoder instance to decode native FLAC streams. + * + * This flavor of initialization sets up the decoder to decode from a + * native FLAC stream. I/O is performed via callbacks to the client. + * For decoding from a plain file via filename or open FILE*, + * FLAC__stream_decoder_init_file() and FLAC__stream_decoder_init_FILE() + * provide a simpler interface. + * + * This function should be called after FLAC__stream_decoder_new() and + * FLAC__stream_decoder_set_*() but before any of the + * FLAC__stream_decoder_process_*() functions. Will set and return the + * decoder state, which will be FLAC__STREAM_DECODER_SEARCH_FOR_METADATA + * if initialization succeeded. + * + * \param decoder An uninitialized decoder instance. + * \param read_callback See FLAC__StreamDecoderReadCallback. This + * pointer must not be \c NULL. + * \param seek_callback See FLAC__StreamDecoderSeekCallback. This + * pointer may be \c NULL if seeking is not + * supported. If \a seek_callback is not \c NULL then a + * \a tell_callback, \a length_callback, and \a eof_callback must also be supplied. + * Alternatively, a dummy seek callback that just + * returns \c FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param tell_callback See FLAC__StreamDecoderTellCallback. This + * pointer may be \c NULL if not supported by the client. If + * \a seek_callback is not \c NULL then a + * \a tell_callback must also be supplied. + * Alternatively, a dummy tell callback that just + * returns \c FLAC__STREAM_DECODER_TELL_STATUS_UNSUPPORTED + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param length_callback See FLAC__StreamDecoderLengthCallback. This + * pointer may be \c NULL if not supported by the client. If + * \a seek_callback is not \c NULL then a + * \a length_callback must also be supplied. + * Alternatively, a dummy length callback that just + * returns \c FLAC__STREAM_DECODER_LENGTH_STATUS_UNSUPPORTED + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param eof_callback See FLAC__StreamDecoderEofCallback. This + * pointer may be \c NULL if not supported by the client. If + * \a seek_callback is not \c NULL then a + * \a eof_callback must also be supplied. + * Alternatively, a dummy length callback that just + * returns \c false + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param write_callback See FLAC__StreamDecoderWriteCallback. This + * pointer must not be \c NULL. + * \param metadata_callback See FLAC__StreamDecoderMetadataCallback. This + * pointer may be \c NULL if the callback is not + * desired. + * \param error_callback See FLAC__StreamDecoderErrorCallback. This + * pointer must not be \c NULL. + * \param client_data This value will be supplied to callbacks in their + * \a client_data argument. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__StreamDecoderInitStatus + * \c FLAC__STREAM_DECODER_INIT_STATUS_OK if initialization was successful; + * see FLAC__StreamDecoderInitStatus for the meanings of other return values. + */ +FLAC_API FLAC__StreamDecoderInitStatus FLAC__stream_decoder_init_stream( + FLAC__StreamDecoder *decoder, + FLAC__StreamDecoderReadCallback read_callback, + FLAC__StreamDecoderSeekCallback seek_callback, + FLAC__StreamDecoderTellCallback tell_callback, + FLAC__StreamDecoderLengthCallback length_callback, + FLAC__StreamDecoderEofCallback eof_callback, + FLAC__StreamDecoderWriteCallback write_callback, + FLAC__StreamDecoderMetadataCallback metadata_callback, + FLAC__StreamDecoderErrorCallback error_callback, + void *client_data +); + +/** Initialize the decoder instance to decode Ogg FLAC streams. + * + * This flavor of initialization sets up the decoder to decode from a + * FLAC stream in an Ogg container. I/O is performed via callbacks to the + * client. For decoding from a plain file via filename or open FILE*, + * FLAC__stream_decoder_init_ogg_file() and FLAC__stream_decoder_init_ogg_FILE() + * provide a simpler interface. + * + * This function should be called after FLAC__stream_decoder_new() and + * FLAC__stream_decoder_set_*() but before any of the + * FLAC__stream_decoder_process_*() functions. Will set and return the + * decoder state, which will be FLAC__STREAM_DECODER_SEARCH_FOR_METADATA + * if initialization succeeded. + * + * \note Support for Ogg FLAC in the library is optional. If this + * library has been built without support for Ogg FLAC, this function + * will return \c FLAC__STREAM_DECODER_INIT_STATUS_UNSUPPORTED_CONTAINER. + * + * \param decoder An uninitialized decoder instance. + * \param read_callback See FLAC__StreamDecoderReadCallback. This + * pointer must not be \c NULL. + * \param seek_callback See FLAC__StreamDecoderSeekCallback. This + * pointer may be \c NULL if seeking is not + * supported. If \a seek_callback is not \c NULL then a + * \a tell_callback, \a length_callback, and \a eof_callback must also be supplied. + * Alternatively, a dummy seek callback that just + * returns \c FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param tell_callback See FLAC__StreamDecoderTellCallback. This + * pointer may be \c NULL if not supported by the client. If + * \a seek_callback is not \c NULL then a + * \a tell_callback must also be supplied. + * Alternatively, a dummy tell callback that just + * returns \c FLAC__STREAM_DECODER_TELL_STATUS_UNSUPPORTED + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param length_callback See FLAC__StreamDecoderLengthCallback. This + * pointer may be \c NULL if not supported by the client. If + * \a seek_callback is not \c NULL then a + * \a length_callback must also be supplied. + * Alternatively, a dummy length callback that just + * returns \c FLAC__STREAM_DECODER_LENGTH_STATUS_UNSUPPORTED + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param eof_callback See FLAC__StreamDecoderEofCallback. This + * pointer may be \c NULL if not supported by the client. If + * \a seek_callback is not \c NULL then a + * \a eof_callback must also be supplied. + * Alternatively, a dummy length callback that just + * returns \c false + * may also be supplied, all though this is slightly + * less efficient for the decoder. + * \param write_callback See FLAC__StreamDecoderWriteCallback. This + * pointer must not be \c NULL. + * \param metadata_callback See FLAC__StreamDecoderMetadataCallback. This + * pointer may be \c NULL if the callback is not + * desired. + * \param error_callback See FLAC__StreamDecoderErrorCallback. This + * pointer must not be \c NULL. + * \param client_data This value will be supplied to callbacks in their + * \a client_data argument. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__StreamDecoderInitStatus + * \c FLAC__STREAM_DECODER_INIT_STATUS_OK if initialization was successful; + * see FLAC__StreamDecoderInitStatus for the meanings of other return values. + */ +FLAC_API FLAC__StreamDecoderInitStatus FLAC__stream_decoder_init_ogg_stream( + FLAC__StreamDecoder *decoder, + FLAC__StreamDecoderReadCallback read_callback, + FLAC__StreamDecoderSeekCallback seek_callback, + FLAC__StreamDecoderTellCallback tell_callback, + FLAC__StreamDecoderLengthCallback length_callback, + FLAC__StreamDecoderEofCallback eof_callback, + FLAC__StreamDecoderWriteCallback write_callback, + FLAC__StreamDecoderMetadataCallback metadata_callback, + FLAC__StreamDecoderErrorCallback error_callback, + void *client_data +); + +/** Initialize the decoder instance to decode native FLAC files. + * + * This flavor of initialization sets up the decoder to decode from a + * plain native FLAC file. For non-stdio streams, you must use + * FLAC__stream_decoder_init_stream() and provide callbacks for the I/O. + * + * This function should be called after FLAC__stream_decoder_new() and + * FLAC__stream_decoder_set_*() but before any of the + * FLAC__stream_decoder_process_*() functions. Will set and return the + * decoder state, which will be FLAC__STREAM_DECODER_SEARCH_FOR_METADATA + * if initialization succeeded. + * + * \param decoder An uninitialized decoder instance. + * \param file An open FLAC file. The file should have been + * opened with mode \c "rb" and rewound. The file + * becomes owned by the decoder and should not be + * manipulated by the client while decoding. + * Unless \a file is \c stdin, it will be closed + * when FLAC__stream_decoder_finish() is called. + * Note however that seeking will not work when + * decoding from \c stdout since it is not seekable. + * \param write_callback See FLAC__StreamDecoderWriteCallback. This + * pointer must not be \c NULL. + * \param metadata_callback See FLAC__StreamDecoderMetadataCallback. This + * pointer may be \c NULL if the callback is not + * desired. + * \param error_callback See FLAC__StreamDecoderErrorCallback. This + * pointer must not be \c NULL. + * \param client_data This value will be supplied to callbacks in their + * \a client_data argument. + * \assert + * \code decoder != NULL \endcode + * \code file != NULL \endcode + * \retval FLAC__StreamDecoderInitStatus + * \c FLAC__STREAM_DECODER_INIT_STATUS_OK if initialization was successful; + * see FLAC__StreamDecoderInitStatus for the meanings of other return values. + */ +FLAC_API FLAC__StreamDecoderInitStatus FLAC__stream_decoder_init_FILE( + FLAC__StreamDecoder *decoder, + FILE *file, + FLAC__StreamDecoderWriteCallback write_callback, + FLAC__StreamDecoderMetadataCallback metadata_callback, + FLAC__StreamDecoderErrorCallback error_callback, + void *client_data +); + +/** Initialize the decoder instance to decode Ogg FLAC files. + * + * This flavor of initialization sets up the decoder to decode from a + * plain Ogg FLAC file. For non-stdio streams, you must use + * FLAC__stream_decoder_init_ogg_stream() and provide callbacks for the I/O. + * + * This function should be called after FLAC__stream_decoder_new() and + * FLAC__stream_decoder_set_*() but before any of the + * FLAC__stream_decoder_process_*() functions. Will set and return the + * decoder state, which will be FLAC__STREAM_DECODER_SEARCH_FOR_METADATA + * if initialization succeeded. + * + * \note Support for Ogg FLAC in the library is optional. If this + * library has been built without support for Ogg FLAC, this function + * will return \c FLAC__STREAM_DECODER_INIT_STATUS_UNSUPPORTED_CONTAINER. + * + * \param decoder An uninitialized decoder instance. + * \param file An open FLAC file. The file should have been + * opened with mode \c "rb" and rewound. The file + * becomes owned by the decoder and should not be + * manipulated by the client while decoding. + * Unless \a file is \c stdin, it will be closed + * when FLAC__stream_decoder_finish() is called. + * Note however that seeking will not work when + * decoding from \c stdout since it is not seekable. + * \param write_callback See FLAC__StreamDecoderWriteCallback. This + * pointer must not be \c NULL. + * \param metadata_callback See FLAC__StreamDecoderMetadataCallback. This + * pointer may be \c NULL if the callback is not + * desired. + * \param error_callback See FLAC__StreamDecoderErrorCallback. This + * pointer must not be \c NULL. + * \param client_data This value will be supplied to callbacks in their + * \a client_data argument. + * \assert + * \code decoder != NULL \endcode + * \code file != NULL \endcode + * \retval FLAC__StreamDecoderInitStatus + * \c FLAC__STREAM_DECODER_INIT_STATUS_OK if initialization was successful; + * see FLAC__StreamDecoderInitStatus for the meanings of other return values. + */ +FLAC_API FLAC__StreamDecoderInitStatus FLAC__stream_decoder_init_ogg_FILE( + FLAC__StreamDecoder *decoder, + FILE *file, + FLAC__StreamDecoderWriteCallback write_callback, + FLAC__StreamDecoderMetadataCallback metadata_callback, + FLAC__StreamDecoderErrorCallback error_callback, + void *client_data +); + +/** Initialize the decoder instance to decode native FLAC files. + * + * This flavor of initialization sets up the decoder to decode from a plain + * native FLAC file. If POSIX fopen() semantics are not sufficient, (for + * example, with Unicode filenames on Windows), you must use + * FLAC__stream_decoder_init_FILE(), or FLAC__stream_decoder_init_stream() + * and provide callbacks for the I/O. + * + * This function should be called after FLAC__stream_decoder_new() and + * FLAC__stream_decoder_set_*() but before any of the + * FLAC__stream_decoder_process_*() functions. Will set and return the + * decoder state, which will be FLAC__STREAM_DECODER_SEARCH_FOR_METADATA + * if initialization succeeded. + * + * \param decoder An uninitialized decoder instance. + * \param filename The name of the file to decode from. The file will + * be opened with fopen(). Use \c NULL to decode from + * \c stdin. Note that \c stdin is not seekable. + * \param write_callback See FLAC__StreamDecoderWriteCallback. This + * pointer must not be \c NULL. + * \param metadata_callback See FLAC__StreamDecoderMetadataCallback. This + * pointer may be \c NULL if the callback is not + * desired. + * \param error_callback See FLAC__StreamDecoderErrorCallback. This + * pointer must not be \c NULL. + * \param client_data This value will be supplied to callbacks in their + * \a client_data argument. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__StreamDecoderInitStatus + * \c FLAC__STREAM_DECODER_INIT_STATUS_OK if initialization was successful; + * see FLAC__StreamDecoderInitStatus for the meanings of other return values. + */ +FLAC_API FLAC__StreamDecoderInitStatus FLAC__stream_decoder_init_file( + FLAC__StreamDecoder *decoder, + const char *filename, + FLAC__StreamDecoderWriteCallback write_callback, + FLAC__StreamDecoderMetadataCallback metadata_callback, + FLAC__StreamDecoderErrorCallback error_callback, + void *client_data +); + +/** Initialize the decoder instance to decode Ogg FLAC files. + * + * This flavor of initialization sets up the decoder to decode from a plain + * Ogg FLAC file. If POSIX fopen() semantics are not sufficient, (for + * example, with Unicode filenames on Windows), you must use + * FLAC__stream_decoder_init_ogg_FILE(), or FLAC__stream_decoder_init_ogg_stream() + * and provide callbacks for the I/O. + * + * This function should be called after FLAC__stream_decoder_new() and + * FLAC__stream_decoder_set_*() but before any of the + * FLAC__stream_decoder_process_*() functions. Will set and return the + * decoder state, which will be FLAC__STREAM_DECODER_SEARCH_FOR_METADATA + * if initialization succeeded. + * + * \note Support for Ogg FLAC in the library is optional. If this + * library has been built without support for Ogg FLAC, this function + * will return \c FLAC__STREAM_DECODER_INIT_STATUS_UNSUPPORTED_CONTAINER. + * + * \param decoder An uninitialized decoder instance. + * \param filename The name of the file to decode from. The file will + * be opened with fopen(). Use \c NULL to decode from + * \c stdin. Note that \c stdin is not seekable. + * \param write_callback See FLAC__StreamDecoderWriteCallback. This + * pointer must not be \c NULL. + * \param metadata_callback See FLAC__StreamDecoderMetadataCallback. This + * pointer may be \c NULL if the callback is not + * desired. + * \param error_callback See FLAC__StreamDecoderErrorCallback. This + * pointer must not be \c NULL. + * \param client_data This value will be supplied to callbacks in their + * \a client_data argument. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__StreamDecoderInitStatus + * \c FLAC__STREAM_DECODER_INIT_STATUS_OK if initialization was successful; + * see FLAC__StreamDecoderInitStatus for the meanings of other return values. + */ +FLAC_API FLAC__StreamDecoderInitStatus FLAC__stream_decoder_init_ogg_file( + FLAC__StreamDecoder *decoder, + const char *filename, + FLAC__StreamDecoderWriteCallback write_callback, + FLAC__StreamDecoderMetadataCallback metadata_callback, + FLAC__StreamDecoderErrorCallback error_callback, + void *client_data +); + +/** Finish the decoding process. + * Flushes the decoding buffer, releases resources, resets the decoder + * settings to their defaults, and returns the decoder state to + * FLAC__STREAM_DECODER_UNINITIALIZED. + * + * In the event of a prematurely-terminated decode, it is not strictly + * necessary to call this immediately before FLAC__stream_decoder_delete() + * but it is good practice to match every FLAC__stream_decoder_init_*() + * with a FLAC__stream_decoder_finish(). + * + * \param decoder An uninitialized decoder instance. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if MD5 checking is on AND a STREAMINFO block was available + * AND the MD5 signature in the STREAMINFO block was non-zero AND the + * signature does not match the one computed by the decoder; else + * \c true. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_finish(FLAC__StreamDecoder *decoder); + +/** Flush the stream input. + * The decoder's input buffer will be cleared and the state set to + * \c FLAC__STREAM_DECODER_SEARCH_FOR_FRAME_SYNC. This will also turn + * off MD5 checking. + * + * \param decoder A decoder instance. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c true if successful, else \c false if a memory allocation + * error occurs (in which case the state will be set to + * \c FLAC__STREAM_DECODER_MEMORY_ALLOCATION_ERROR). + */ +FLAC_API FLAC__bool FLAC__stream_decoder_flush(FLAC__StreamDecoder *decoder); + +/** Reset the decoding process. + * The decoder's input buffer will be cleared and the state set to + * \c FLAC__STREAM_DECODER_SEARCH_FOR_METADATA. This is similar to + * FLAC__stream_decoder_finish() except that the settings are + * preserved; there is no need to call FLAC__stream_decoder_init_*() + * before decoding again. MD5 checking will be restored to its original + * setting. + * + * If the decoder is seekable, or was initialized with + * FLAC__stream_decoder_init*_FILE() or FLAC__stream_decoder_init*_file(), + * the decoder will also attempt to seek to the beginning of the file. + * If this rewind fails, this function will return \c false. It follows + * that FLAC__stream_decoder_reset() cannot be used when decoding from + * \c stdin. + * + * If the decoder was initialized with FLAC__stream_encoder_init*_stream() + * and is not seekable (i.e. no seek callback was provided or the seek + * callback returns \c FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED), it + * is the duty of the client to start feeding data from the beginning of + * the stream on the next FLAC__stream_decoder_process() or + * FLAC__stream_decoder_process_interleaved() call. + * + * \param decoder A decoder instance. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c true if successful, else \c false if a memory allocation occurs + * (in which case the state will be set to + * \c FLAC__STREAM_DECODER_MEMORY_ALLOCATION_ERROR) or a seek error + * occurs (the state will be unchanged). + */ +FLAC_API FLAC__bool FLAC__stream_decoder_reset(FLAC__StreamDecoder *decoder); + +/** Decode one metadata block or audio frame. + * This version instructs the decoder to decode a either a single metadata + * block or a single frame and stop, unless the callbacks return a fatal + * error or the read callback returns + * \c FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM. + * + * As the decoder needs more input it will call the read callback. + * Depending on what was decoded, the metadata or write callback will be + * called with the decoded metadata block or audio frame. + * + * Unless there is a fatal read error or end of stream, this function + * will return once one whole frame is decoded. In other words, if the + * stream is not synchronized or points to a corrupt frame header, the + * decoder will continue to try and resync until it gets to a valid + * frame, then decode one frame, then return. If the decoder points to + * a frame whose frame CRC in the frame footer does not match the + * computed frame CRC, this function will issue a + * FLAC__STREAM_DECODER_ERROR_STATUS_FRAME_CRC_MISMATCH error to the + * error callback, and return, having decoded one complete, although + * corrupt, frame. (Such corrupted frames are sent as silence of the + * correct length to the write callback.) + * + * \param decoder An initialized decoder instance. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if any fatal read, write, or memory allocation error + * occurred (meaning decoding must stop), else \c true; for more + * information about the decoder, check the decoder state with + * FLAC__stream_decoder_get_state(). + */ +FLAC_API FLAC__bool FLAC__stream_decoder_process_single(FLAC__StreamDecoder *decoder); + +/** Decode until the end of the metadata. + * This version instructs the decoder to decode from the current position + * and continue until all the metadata has been read, or until the + * callbacks return a fatal error or the read callback returns + * \c FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM. + * + * As the decoder needs more input it will call the read callback. + * As each metadata block is decoded, the metadata callback will be called + * with the decoded metadata. + * + * \param decoder An initialized decoder instance. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if any fatal read, write, or memory allocation error + * occurred (meaning decoding must stop), else \c true; for more + * information about the decoder, check the decoder state with + * FLAC__stream_decoder_get_state(). + */ +FLAC_API FLAC__bool FLAC__stream_decoder_process_until_end_of_metadata(FLAC__StreamDecoder *decoder); + +/** Decode until the end of the stream. + * This version instructs the decoder to decode from the current position + * and continue until the end of stream (the read callback returns + * \c FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM), or until the + * callbacks return a fatal error. + * + * As the decoder needs more input it will call the read callback. + * As each metadata block and frame is decoded, the metadata or write + * callback will be called with the decoded metadata or frame. + * + * \param decoder An initialized decoder instance. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if any fatal read, write, or memory allocation error + * occurred (meaning decoding must stop), else \c true; for more + * information about the decoder, check the decoder state with + * FLAC__stream_decoder_get_state(). + */ +FLAC_API FLAC__bool FLAC__stream_decoder_process_until_end_of_stream(FLAC__StreamDecoder *decoder); + +/** Skip one audio frame. + * This version instructs the decoder to 'skip' a single frame and stop, + * unless the callbacks return a fatal error or the read callback returns + * \c FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM. + * + * The decoding flow is the same as what occurs when + * FLAC__stream_decoder_process_single() is called to process an audio + * frame, except that this function does not decode the parsed data into + * PCM or call the write callback. The integrity of the frame is still + * checked the same way as in the other process functions. + * + * This function will return once one whole frame is skipped, in the + * same way that FLAC__stream_decoder_process_single() will return once + * one whole frame is decoded. + * + * This function can be used in more quickly determining FLAC frame + * boundaries when decoding of the actual data is not needed, for + * example when an application is separating a FLAC stream into frames + * for editing or storing in a container. To do this, the application + * can use FLAC__stream_decoder_skip_single_frame() to quickly advance + * to the next frame, then use + * FLAC__stream_decoder_get_decode_position() to find the new frame + * boundary. + * + * This function should only be called when the stream has advanced + * past all the metadata, otherwise it will return \c false. + * + * \param decoder An initialized decoder instance not in a metadata + * state. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c false if any fatal read, write, or memory allocation error + * occurred (meaning decoding must stop), or if the decoder + * is in the FLAC__STREAM_DECODER_SEARCH_FOR_METADATA or + * FLAC__STREAM_DECODER_READ_METADATA state, else \c true; for more + * information about the decoder, check the decoder state with + * FLAC__stream_decoder_get_state(). + */ +FLAC_API FLAC__bool FLAC__stream_decoder_skip_single_frame(FLAC__StreamDecoder *decoder); + +/** Flush the input and seek to an absolute sample. + * Decoding will resume at the given sample. Note that because of + * this, the next write callback may contain a partial block. The + * client must support seeking the input or this function will fail + * and return \c false. Furthermore, if the decoder state is + * \c FLAC__STREAM_DECODER_SEEK_ERROR, then the decoder must be flushed + * with FLAC__stream_decoder_flush() or reset with + * FLAC__stream_decoder_reset() before decoding can continue. + * + * \param decoder A decoder instance. + * \param sample The target sample number to seek to. + * \assert + * \code decoder != NULL \endcode + * \retval FLAC__bool + * \c true if successful, else \c false. + */ +FLAC_API FLAC__bool FLAC__stream_decoder_seek_absolute(FLAC__StreamDecoder *decoder, FLAC__uint64 sample); + +/* \} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/headers/FLAC/stream_encoder.h b/Audio-Frameworks/bin/flac/headers/FLAC/stream_encoder.h new file mode 100644 index 0000000..dbbbb23 --- /dev/null +++ b/Audio-Frameworks/bin/flac/headers/FLAC/stream_encoder.h @@ -0,0 +1,1768 @@ +/* libFLAC - Free Lossless Audio Codec library + * Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of the Xiph.org Foundation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FLAC__STREAM_ENCODER_H +#define FLAC__STREAM_ENCODER_H + +#include /* for FILE */ +#include "export.h" +#include "format.h" +#include "stream_decoder.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +/** \file include/FLAC/stream_encoder.h + * + * \brief + * This module contains the functions which implement the stream + * encoder. + * + * See the detailed documentation in the + * \link flac_stream_encoder stream encoder \endlink module. + */ + +/** \defgroup flac_encoder FLAC/ \*_encoder.h: encoder interfaces + * \ingroup flac + * + * \brief + * This module describes the encoder layers provided by libFLAC. + * + * The stream encoder can be used to encode complete streams either to the + * client via callbacks, or directly to a file, depending on how it is + * initialized. When encoding via callbacks, the client provides a write + * callback which will be called whenever FLAC data is ready to be written. + * If the client also supplies a seek callback, the encoder will also + * automatically handle the writing back of metadata discovered while + * encoding, like stream info, seek points offsets, etc. When encoding to + * a file, the client needs only supply a filename or open \c FILE* and an + * optional progress callback for periodic notification of progress; the + * write and seek callbacks are supplied internally. For more info see the + * \link flac_stream_encoder stream encoder \endlink module. + */ + +/** \defgroup flac_stream_encoder FLAC/stream_encoder.h: stream encoder interface + * \ingroup flac_encoder + * + * \brief + * This module contains the functions which implement the stream + * encoder. + * + * The stream encoder can encode to native FLAC, and optionally Ogg FLAC + * (check FLAC_API_SUPPORTS_OGG_FLAC) streams and files. + * + * The basic usage of this encoder is as follows: + * - The program creates an instance of an encoder using + * FLAC__stream_encoder_new(). + * - The program overrides the default settings using + * FLAC__stream_encoder_set_*() functions. At a minimum, the following + * functions should be called: + * - FLAC__stream_encoder_set_channels() + * - FLAC__stream_encoder_set_bits_per_sample() + * - FLAC__stream_encoder_set_sample_rate() + * - FLAC__stream_encoder_set_ogg_serial_number() (if encoding to Ogg FLAC) + * - FLAC__stream_encoder_set_total_samples_estimate() (if known) + * - If the application wants to control the compression level or set its own + * metadata, then the following should also be called: + * - FLAC__stream_encoder_set_compression_level() + * - FLAC__stream_encoder_set_verify() + * - FLAC__stream_encoder_set_metadata() + * - The rest of the set functions should only be called if the client needs + * exact control over how the audio is compressed; thorough understanding + * of the FLAC format is necessary to achieve good results. + * - The program initializes the instance to validate the settings and + * prepare for encoding using + * - FLAC__stream_encoder_init_stream() or FLAC__stream_encoder_init_FILE() + * or FLAC__stream_encoder_init_file() for native FLAC + * - FLAC__stream_encoder_init_ogg_stream() or FLAC__stream_encoder_init_ogg_FILE() + * or FLAC__stream_encoder_init_ogg_file() for Ogg FLAC + * - The program calls FLAC__stream_encoder_process() or + * FLAC__stream_encoder_process_interleaved() to encode data, which + * subsequently calls the callbacks when there is encoder data ready + * to be written. + * - The program finishes the encoding with FLAC__stream_encoder_finish(), + * which causes the encoder to encode any data still in its input pipe, + * update the metadata with the final encoding statistics if output + * seeking is possible, and finally reset the encoder to the + * uninitialized state. + * - The instance may be used again or deleted with + * FLAC__stream_encoder_delete(). + * + * In more detail, the stream encoder functions similarly to the + * \link flac_stream_decoder stream decoder \endlink, but has fewer + * callbacks and more options. Typically the client will create a new + * instance by calling FLAC__stream_encoder_new(), then set the necessary + * parameters with FLAC__stream_encoder_set_*(), and initialize it by + * calling one of the FLAC__stream_encoder_init_*() functions. + * + * Unlike the decoders, the stream encoder has many options that can + * affect the speed and compression ratio. When setting these parameters + * you should have some basic knowledge of the format (see the + * user-level documentation + * or the formal description). The + * FLAC__stream_encoder_set_*() functions themselves do not validate the + * values as many are interdependent. The FLAC__stream_encoder_init_*() + * functions will do this, so make sure to pay attention to the state + * returned by FLAC__stream_encoder_init_*() to make sure that it is + * FLAC__STREAM_ENCODER_INIT_STATUS_OK. Any parameters that are not set + * before FLAC__stream_encoder_init_*() will take on the defaults from + * the constructor. + * + * There are three initialization functions for native FLAC, one for + * setting up the encoder to encode FLAC data to the client via + * callbacks, and two for encoding directly to a file. + * + * For encoding via callbacks, use FLAC__stream_encoder_init_stream(). + * You must also supply a write callback which will be called anytime + * there is raw encoded data to write. If the client can seek the output + * it is best to also supply seek and tell callbacks, as this allows the + * encoder to go back after encoding is finished to write back + * information that was collected while encoding, like seek point offsets, + * frame sizes, etc. + * + * For encoding directly to a file, use FLAC__stream_encoder_init_FILE() + * or FLAC__stream_encoder_init_file(). Then you must only supply a + * filename or open \c FILE*; the encoder will handle all the callbacks + * internally. You may also supply a progress callback for periodic + * notification of the encoding progress. + * + * There are three similarly-named init functions for encoding to Ogg + * FLAC streams. Check \c FLAC_API_SUPPORTS_OGG_FLAC to find out if the + * library has been built with Ogg support. + * + * The call to FLAC__stream_encoder_init_*() currently will also immediately + * call the write callback several times, once with the \c fLaC signature, + * and once for each encoded metadata block. Note that for Ogg FLAC + * encoding you will usually get at least twice the number of callbacks than + * with native FLAC, one for the Ogg page header and one for the page body. + * + * After initializing the instance, the client may feed audio data to the + * encoder in one of two ways: + * + * - Channel separate, through FLAC__stream_encoder_process() - The client + * will pass an array of pointers to buffers, one for each channel, to + * the encoder, each of the same length. The samples need not be + * block-aligned, but each channel should have the same number of samples. + * - Channel interleaved, through + * FLAC__stream_encoder_process_interleaved() - The client will pass a single + * pointer to data that is channel-interleaved (i.e. channel0_sample0, + * channel1_sample0, ... , channelN_sample0, channel0_sample1, ...). + * Again, the samples need not be block-aligned but they must be + * sample-aligned, i.e. the first value should be channel0_sample0 and + * the last value channelN_sampleM. + * + * Note that for either process call, each sample in the buffers should be a + * signed integer, right-justified to the resolution set by + * FLAC__stream_encoder_set_bits_per_sample(). For example, if the resolution + * is 16 bits per sample, the samples should all be in the range [-32768,32767]. + * + * When the client is finished encoding data, it calls + * FLAC__stream_encoder_finish(), which causes the encoder to encode any + * data still in its input pipe, and call the metadata callback with the + * final encoding statistics. Then the instance may be deleted with + * FLAC__stream_encoder_delete() or initialized again to encode another + * stream. + * + * For programs that write their own metadata, but that do not know the + * actual metadata until after encoding, it is advantageous to instruct + * the encoder to write a PADDING block of the correct size, so that + * instead of rewriting the whole stream after encoding, the program can + * just overwrite the PADDING block. If only the maximum size of the + * metadata is known, the program can write a slightly larger padding + * block, then split it after encoding. + * + * Make sure you understand how lengths are calculated. All FLAC metadata + * blocks have a 4 byte header which contains the type and length. This + * length does not include the 4 bytes of the header. See the format page + * for the specification of metadata blocks and their lengths. + * + * \note + * If you are writing the FLAC data to a file via callbacks, make sure it + * is open for update (e.g. mode "w+" for stdio streams). This is because + * after the first encoding pass, the encoder will try to seek back to the + * beginning of the stream, to the STREAMINFO block, to write some data + * there. (If using FLAC__stream_encoder_init*_file() or + * FLAC__stream_encoder_init*_FILE(), the file is managed internally.) + * + * \note + * The "set" functions may only be called when the encoder is in the + * state FLAC__STREAM_ENCODER_UNINITIALIZED, i.e. after + * FLAC__stream_encoder_new() or FLAC__stream_encoder_finish(), but + * before FLAC__stream_encoder_init_*(). If this is the case they will + * return \c true, otherwise \c false. + * + * \note + * FLAC__stream_encoder_finish() resets all settings to the constructor + * defaults. + * + * \{ + */ + + +/** State values for a FLAC__StreamEncoder. + * + * The encoder's state can be obtained by calling FLAC__stream_encoder_get_state(). + * + * If the encoder gets into any other state besides \c FLAC__STREAM_ENCODER_OK + * or \c FLAC__STREAM_ENCODER_UNINITIALIZED, it becomes invalid for encoding and + * must be deleted with FLAC__stream_encoder_delete(). + */ +typedef enum { + + FLAC__STREAM_ENCODER_OK = 0, + /**< The encoder is in the normal OK state and samples can be processed. */ + + FLAC__STREAM_ENCODER_UNINITIALIZED, + /**< The encoder is in the uninitialized state; one of the + * FLAC__stream_encoder_init_*() functions must be called before samples + * can be processed. + */ + + FLAC__STREAM_ENCODER_OGG_ERROR, + /**< An error occurred in the underlying Ogg layer. */ + + FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR, + /**< An error occurred in the underlying verify stream decoder; + * check FLAC__stream_encoder_get_verify_decoder_state(). + */ + + FLAC__STREAM_ENCODER_VERIFY_MISMATCH_IN_AUDIO_DATA, + /**< The verify decoder detected a mismatch between the original + * audio signal and the decoded audio signal. + */ + + FLAC__STREAM_ENCODER_CLIENT_ERROR, + /**< One of the callbacks returned a fatal error. */ + + FLAC__STREAM_ENCODER_IO_ERROR, + /**< An I/O error occurred while opening/reading/writing a file. + * Check \c errno. + */ + + FLAC__STREAM_ENCODER_FRAMING_ERROR, + /**< An error occurred while writing the stream; usually, the + * write_callback returned an error. + */ + + FLAC__STREAM_ENCODER_MEMORY_ALLOCATION_ERROR + /**< Memory allocation failed. */ + +} FLAC__StreamEncoderState; + +/** Maps a FLAC__StreamEncoderState to a C string. + * + * Using a FLAC__StreamEncoderState as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamEncoderStateString[]; + + +/** Possible return values for the FLAC__stream_encoder_init_*() functions. + */ +typedef enum { + + FLAC__STREAM_ENCODER_INIT_STATUS_OK = 0, + /**< Initialization was successful. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_ENCODER_ERROR, + /**< General failure to set up encoder; call FLAC__stream_encoder_get_state() for cause. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_UNSUPPORTED_CONTAINER, + /**< The library was not compiled with support for the given container + * format. + */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_CALLBACKS, + /**< A required callback was not supplied. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_NUMBER_OF_CHANNELS, + /**< The encoder has an invalid setting for number of channels. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_BITS_PER_SAMPLE, + /**< The encoder has an invalid setting for bits-per-sample. + * FLAC supports 4-32 bps but the reference encoder currently supports + * only up to 24 bps. + */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_SAMPLE_RATE, + /**< The encoder has an invalid setting for the input sample rate. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_BLOCK_SIZE, + /**< The encoder has an invalid setting for the block size. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_MAX_LPC_ORDER, + /**< The encoder has an invalid setting for the maximum LPC order. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_QLP_COEFF_PRECISION, + /**< The encoder has an invalid setting for the precision of the quantized linear predictor coefficients. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_BLOCK_SIZE_TOO_SMALL_FOR_LPC_ORDER, + /**< The specified block size is less than the maximum LPC order. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_NOT_STREAMABLE, + /**< The encoder is bound to the Subset but other settings violate it. */ + + FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_METADATA, + /**< The metadata input to the encoder is invalid, in one of the following ways: + * - FLAC__stream_encoder_set_metadata() was called with a null pointer but a block count > 0 + * - One of the metadata blocks contains an undefined type + * - It contains an illegal CUESHEET as checked by FLAC__format_cuesheet_is_legal() + * - It contains an illegal SEEKTABLE as checked by FLAC__format_seektable_is_legal() + * - It contains more than one SEEKTABLE block or more than one VORBIS_COMMENT block + */ + + FLAC__STREAM_ENCODER_INIT_STATUS_ALREADY_INITIALIZED + /**< FLAC__stream_encoder_init_*() was called when the encoder was + * already initialized, usually because + * FLAC__stream_encoder_finish() was not called. + */ + +} FLAC__StreamEncoderInitStatus; + +/** Maps a FLAC__StreamEncoderInitStatus to a C string. + * + * Using a FLAC__StreamEncoderInitStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamEncoderInitStatusString[]; + + +/** Return values for the FLAC__StreamEncoder read callback. + */ +typedef enum { + + FLAC__STREAM_ENCODER_READ_STATUS_CONTINUE, + /**< The read was OK and decoding can continue. */ + + FLAC__STREAM_ENCODER_READ_STATUS_END_OF_STREAM, + /**< The read was attempted at the end of the stream. */ + + FLAC__STREAM_ENCODER_READ_STATUS_ABORT, + /**< An unrecoverable error occurred. */ + + FLAC__STREAM_ENCODER_READ_STATUS_UNSUPPORTED + /**< Client does not support reading back from the output. */ + +} FLAC__StreamEncoderReadStatus; + +/** Maps a FLAC__StreamEncoderReadStatus to a C string. + * + * Using a FLAC__StreamEncoderReadStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamEncoderReadStatusString[]; + + +/** Return values for the FLAC__StreamEncoder write callback. + */ +typedef enum { + + FLAC__STREAM_ENCODER_WRITE_STATUS_OK = 0, + /**< The write was OK and encoding can continue. */ + + FLAC__STREAM_ENCODER_WRITE_STATUS_FATAL_ERROR + /**< An unrecoverable error occurred. The encoder will return from the process call. */ + +} FLAC__StreamEncoderWriteStatus; + +/** Maps a FLAC__StreamEncoderWriteStatus to a C string. + * + * Using a FLAC__StreamEncoderWriteStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamEncoderWriteStatusString[]; + + +/** Return values for the FLAC__StreamEncoder seek callback. + */ +typedef enum { + + FLAC__STREAM_ENCODER_SEEK_STATUS_OK, + /**< The seek was OK and encoding can continue. */ + + FLAC__STREAM_ENCODER_SEEK_STATUS_ERROR, + /**< An unrecoverable error occurred. */ + + FLAC__STREAM_ENCODER_SEEK_STATUS_UNSUPPORTED + /**< Client does not support seeking. */ + +} FLAC__StreamEncoderSeekStatus; + +/** Maps a FLAC__StreamEncoderSeekStatus to a C string. + * + * Using a FLAC__StreamEncoderSeekStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamEncoderSeekStatusString[]; + + +/** Return values for the FLAC__StreamEncoder tell callback. + */ +typedef enum { + + FLAC__STREAM_ENCODER_TELL_STATUS_OK, + /**< The tell was OK and encoding can continue. */ + + FLAC__STREAM_ENCODER_TELL_STATUS_ERROR, + /**< An unrecoverable error occurred. */ + + FLAC__STREAM_ENCODER_TELL_STATUS_UNSUPPORTED + /**< Client does not support seeking. */ + +} FLAC__StreamEncoderTellStatus; + +/** Maps a FLAC__StreamEncoderTellStatus to a C string. + * + * Using a FLAC__StreamEncoderTellStatus as the index to this array + * will give the string equivalent. The contents should not be modified. + */ +extern FLAC_API const char * const FLAC__StreamEncoderTellStatusString[]; + + +/*********************************************************************** + * + * class FLAC__StreamEncoder + * + ***********************************************************************/ + +struct FLAC__StreamEncoderProtected; +struct FLAC__StreamEncoderPrivate; +/** The opaque structure definition for the stream encoder type. + * See the \link flac_stream_encoder stream encoder module \endlink + * for a detailed description. + */ +typedef struct { + struct FLAC__StreamEncoderProtected *protected_; /* avoid the C++ keyword 'protected' */ + struct FLAC__StreamEncoderPrivate *private_; /* avoid the C++ keyword 'private' */ +} FLAC__StreamEncoder; + +/** Signature for the read callback. + * + * A function pointer matching this signature must be passed to + * FLAC__stream_encoder_init_ogg_stream() if seeking is supported. + * The supplied function will be called when the encoder needs to read back + * encoded data. This happens during the metadata callback, when the encoder + * has to read, modify, and rewrite the metadata (e.g. seekpoints) gathered + * while encoding. The address of the buffer to be filled is supplied, along + * with the number of bytes the buffer can hold. The callback may choose to + * supply less data and modify the byte count but must be careful not to + * overflow the buffer. The callback then returns a status code chosen from + * FLAC__StreamEncoderReadStatus. + * + * Here is an example of a read callback for stdio streams: + * \code + * FLAC__StreamEncoderReadStatus read_cb(const FLAC__StreamEncoder *encoder, FLAC__byte buffer[], size_t *bytes, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * if(*bytes > 0) { + * *bytes = fread(buffer, sizeof(FLAC__byte), *bytes, file); + * if(ferror(file)) + * return FLAC__STREAM_ENCODER_READ_STATUS_ABORT; + * else if(*bytes == 0) + * return FLAC__STREAM_ENCODER_READ_STATUS_END_OF_STREAM; + * else + * return FLAC__STREAM_ENCODER_READ_STATUS_CONTINUE; + * } + * else + * return FLAC__STREAM_ENCODER_READ_STATUS_ABORT; + * } + * \endcode + * + * \note In general, FLAC__StreamEncoder functions which change the + * state should not be called on the \a encoder while in the callback. + * + * \param encoder The encoder instance calling the callback. + * \param buffer A pointer to a location for the callee to store + * data to be encoded. + * \param bytes A pointer to the size of the buffer. On entry + * to the callback, it contains the maximum number + * of bytes that may be stored in \a buffer. The + * callee must set it to the actual number of bytes + * stored (0 in case of error or end-of-stream) before + * returning. + * \param client_data The callee's client data set through + * FLAC__stream_encoder_set_client_data(). + * \retval FLAC__StreamEncoderReadStatus + * The callee's return status. + */ +typedef FLAC__StreamEncoderReadStatus (*FLAC__StreamEncoderReadCallback)(const FLAC__StreamEncoder *encoder, FLAC__byte buffer[], size_t *bytes, void *client_data); + +/** Signature for the write callback. + * + * A function pointer matching this signature must be passed to + * FLAC__stream_encoder_init*_stream(). The supplied function will be called + * by the encoder anytime there is raw encoded data ready to write. It may + * include metadata mixed with encoded audio frames and the data is not + * guaranteed to be aligned on frame or metadata block boundaries. + * + * The only duty of the callback is to write out the \a bytes worth of data + * in \a buffer to the current position in the output stream. The arguments + * \a samples and \a current_frame are purely informational. If \a samples + * is greater than \c 0, then \a current_frame will hold the current frame + * number that is being written; otherwise it indicates that the write + * callback is being called to write metadata. + * + * \note + * Unlike when writing to native FLAC, when writing to Ogg FLAC the + * write callback will be called twice when writing each audio + * frame; once for the page header, and once for the page body. + * When writing the page header, the \a samples argument to the + * write callback will be \c 0. + * + * \note In general, FLAC__StreamEncoder functions which change the + * state should not be called on the \a encoder while in the callback. + * + * \param encoder The encoder instance calling the callback. + * \param buffer An array of encoded data of length \a bytes. + * \param bytes The byte length of \a buffer. + * \param samples The number of samples encoded by \a buffer. + * \c 0 has a special meaning; see above. + * \param current_frame The number of the current frame being encoded. + * \param client_data The callee's client data set through + * FLAC__stream_encoder_init_*(). + * \retval FLAC__StreamEncoderWriteStatus + * The callee's return status. + */ +typedef FLAC__StreamEncoderWriteStatus (*FLAC__StreamEncoderWriteCallback)(const FLAC__StreamEncoder *encoder, const FLAC__byte buffer[], size_t bytes, unsigned samples, unsigned current_frame, void *client_data); + +/** Signature for the seek callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_encoder_init*_stream(). The supplied function will be called + * when the encoder needs to seek the output stream. The encoder will pass + * the absolute byte offset to seek to, 0 meaning the beginning of the stream. + * + * Here is an example of a seek callback for stdio streams: + * \code + * FLAC__StreamEncoderSeekStatus seek_cb(const FLAC__StreamEncoder *encoder, FLAC__uint64 absolute_byte_offset, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * if(file == stdin) + * return FLAC__STREAM_ENCODER_SEEK_STATUS_UNSUPPORTED; + * else if(fseeko(file, (off_t)absolute_byte_offset, SEEK_SET) < 0) + * return FLAC__STREAM_ENCODER_SEEK_STATUS_ERROR; + * else + * return FLAC__STREAM_ENCODER_SEEK_STATUS_OK; + * } + * \endcode + * + * \note In general, FLAC__StreamEncoder functions which change the + * state should not be called on the \a encoder while in the callback. + * + * \param encoder The encoder instance calling the callback. + * \param absolute_byte_offset The offset from the beginning of the stream + * to seek to. + * \param client_data The callee's client data set through + * FLAC__stream_encoder_init_*(). + * \retval FLAC__StreamEncoderSeekStatus + * The callee's return status. + */ +typedef FLAC__StreamEncoderSeekStatus (*FLAC__StreamEncoderSeekCallback)(const FLAC__StreamEncoder *encoder, FLAC__uint64 absolute_byte_offset, void *client_data); + +/** Signature for the tell callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_encoder_init*_stream(). The supplied function will be called + * when the encoder needs to know the current position of the output stream. + * + * \warning + * The callback must return the true current byte offset of the output to + * which the encoder is writing. If you are buffering the output, make + * sure and take this into account. If you are writing directly to a + * FILE* from your write callback, ftell() is sufficient. If you are + * writing directly to a file descriptor from your write callback, you + * can use lseek(fd, SEEK_CUR, 0). The encoder may later seek back to + * these points to rewrite metadata after encoding. + * + * Here is an example of a tell callback for stdio streams: + * \code + * FLAC__StreamEncoderTellStatus tell_cb(const FLAC__StreamEncoder *encoder, FLAC__uint64 *absolute_byte_offset, void *client_data) + * { + * FILE *file = ((MyClientData*)client_data)->file; + * off_t pos; + * if(file == stdin) + * return FLAC__STREAM_ENCODER_TELL_STATUS_UNSUPPORTED; + * else if((pos = ftello(file)) < 0) + * return FLAC__STREAM_ENCODER_TELL_STATUS_ERROR; + * else { + * *absolute_byte_offset = (FLAC__uint64)pos; + * return FLAC__STREAM_ENCODER_TELL_STATUS_OK; + * } + * } + * \endcode + * + * \note In general, FLAC__StreamEncoder functions which change the + * state should not be called on the \a encoder while in the callback. + * + * \param encoder The encoder instance calling the callback. + * \param absolute_byte_offset The address at which to store the current + * position of the output. + * \param client_data The callee's client data set through + * FLAC__stream_encoder_init_*(). + * \retval FLAC__StreamEncoderTellStatus + * The callee's return status. + */ +typedef FLAC__StreamEncoderTellStatus (*FLAC__StreamEncoderTellCallback)(const FLAC__StreamEncoder *encoder, FLAC__uint64 *absolute_byte_offset, void *client_data); + +/** Signature for the metadata callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_encoder_init*_stream(). The supplied function will be called + * once at the end of encoding with the populated STREAMINFO structure. This + * is so the client can seek back to the beginning of the file and write the + * STREAMINFO block with the correct statistics after encoding (like + * minimum/maximum frame size and total samples). + * + * \note In general, FLAC__StreamEncoder functions which change the + * state should not be called on the \a encoder while in the callback. + * + * \param encoder The encoder instance calling the callback. + * \param metadata The final populated STREAMINFO block. + * \param client_data The callee's client data set through + * FLAC__stream_encoder_init_*(). + */ +typedef void (*FLAC__StreamEncoderMetadataCallback)(const FLAC__StreamEncoder *encoder, const FLAC__StreamMetadata *metadata, void *client_data); + +/** Signature for the progress callback. + * + * A function pointer matching this signature may be passed to + * FLAC__stream_encoder_init*_file() or FLAC__stream_encoder_init*_FILE(). + * The supplied function will be called when the encoder has finished + * writing a frame. The \c total_frames_estimate argument to the + * callback will be based on the value from + * FLAC__stream_encoder_set_total_samples_estimate(). + * + * \note In general, FLAC__StreamEncoder functions which change the + * state should not be called on the \a encoder while in the callback. + * + * \param encoder The encoder instance calling the callback. + * \param bytes_written Bytes written so far. + * \param samples_written Samples written so far. + * \param frames_written Frames written so far. + * \param total_frames_estimate The estimate of the total number of + * frames to be written. + * \param client_data The callee's client data set through + * FLAC__stream_encoder_init_*(). + */ +typedef void (*FLAC__StreamEncoderProgressCallback)(const FLAC__StreamEncoder *encoder, FLAC__uint64 bytes_written, FLAC__uint64 samples_written, unsigned frames_written, unsigned total_frames_estimate, void *client_data); + + +/*********************************************************************** + * + * Class constructor/destructor + * + ***********************************************************************/ + +/** Create a new stream encoder instance. The instance is created with + * default settings; see the individual FLAC__stream_encoder_set_*() + * functions for each setting's default. + * + * \retval FLAC__StreamEncoder* + * \c NULL if there was an error allocating memory, else the new instance. + */ +FLAC_API FLAC__StreamEncoder *FLAC__stream_encoder_new(void); + +/** Free an encoder instance. Deletes the object pointed to by \a encoder. + * + * \param encoder A pointer to an existing encoder. + * \assert + * \code encoder != NULL \endcode + */ +FLAC_API void FLAC__stream_encoder_delete(FLAC__StreamEncoder *encoder); + + +/*********************************************************************** + * + * Public class method prototypes + * + ***********************************************************************/ + +/** Set the serial number for the FLAC stream to use in the Ogg container. + * + * \note + * This does not need to be set for native FLAC encoding. + * + * \note + * It is recommended to set a serial number explicitly as the default of '0' + * may collide with other streams. + * + * \default \c 0 + * \param encoder An encoder instance to set. + * \param serial_number See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_ogg_serial_number(FLAC__StreamEncoder *encoder, long serial_number); + +/** Set the "verify" flag. If \c true, the encoder will verify it's own + * encoded output by feeding it through an internal decoder and comparing + * the original signal against the decoded signal. If a mismatch occurs, + * the process call will return \c false. Note that this will slow the + * encoding process by the extra time required for decoding and comparison. + * + * \default \c false + * \param encoder An encoder instance to set. + * \param value Flag value (see above). + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_verify(FLAC__StreamEncoder *encoder, FLAC__bool value); + +/** Set the Subset flag. If \c true, + * the encoder will comply with the Subset and will check the + * settings during FLAC__stream_encoder_init_*() to see if all settings + * comply. If \c false, the settings may take advantage of the full + * range that the format allows. + * + * Make sure you know what it entails before setting this to \c false. + * + * \default \c true + * \param encoder An encoder instance to set. + * \param value Flag value (see above). + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_streamable_subset(FLAC__StreamEncoder *encoder, FLAC__bool value); + +/** Set the number of channels to be encoded. + * + * \default \c 2 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_channels(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set the sample resolution of the input to be encoded. + * + * \warning + * Do not feed the encoder data that is wider than the value you + * set here or you will generate an invalid stream. + * + * \default \c 16 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_bits_per_sample(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set the sample rate (in Hz) of the input to be encoded. + * + * \default \c 44100 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_sample_rate(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set the compression level + * + * The compression level is roughly proportional to the amount of effort + * the encoder expends to compress the file. A higher level usually + * means more computation but higher compression. The default level is + * suitable for most applications. + * + * Currently the levels range from \c 0 (fastest, least compression) to + * \c 8 (slowest, most compression). A value larger than \c 8 will be + * treated as \c 8. + * + * This function automatically calls the following other \c _set_ + * functions with appropriate values, so the client does not need to + * unless it specifically wants to override them: + * - FLAC__stream_encoder_set_do_mid_side_stereo() + * - FLAC__stream_encoder_set_loose_mid_side_stereo() + * - FLAC__stream_encoder_set_apodization() + * - FLAC__stream_encoder_set_max_lpc_order() + * - FLAC__stream_encoder_set_qlp_coeff_precision() + * - FLAC__stream_encoder_set_do_qlp_coeff_prec_search() + * - FLAC__stream_encoder_set_do_escape_coding() + * - FLAC__stream_encoder_set_do_exhaustive_model_search() + * - FLAC__stream_encoder_set_min_residual_partition_order() + * - FLAC__stream_encoder_set_max_residual_partition_order() + * - FLAC__stream_encoder_set_rice_parameter_search_dist() + * + * The actual values set for each level are: + * + * + * + * + * + * + * + * + * + * + * + * + *
level + * do mid-side stereo + * loose mid-side stereo + * apodization + * max lpc order + * qlp coeff precision + * qlp coeff prec search + * escape coding + * exhaustive model search + * min residual partition order + * max residual partition order + * rice parameter search dist + *
0 false false tukey(0.5) 0 0 false false false 0 3 0
1 true true tukey(0.5) 0 0 false false false 0 3 0
2 true false tukey(0.5) 0 0 false false false 0 3 0
3 false false tukey(0.5) 6 0 false false false 0 4 0
4 true true tukey(0.5) 8 0 false false false 0 4 0
5 true false tukey(0.5) 8 0 false false false 0 5 0
6 true false tukey(0.5) 8 0 false false false 0 6 0
7 true false tukey(0.5) 8 0 false false true 0 6 0
8 true false tukey(0.5) 12 0 false false true 0 6 0
+ * + * \default \c 5 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_compression_level(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set the blocksize to use while encoding. + * + * The number of samples to use per frame. Use \c 0 to let the encoder + * estimate a blocksize; this is usually best. + * + * \default \c 0 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_blocksize(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set to \c true to enable mid-side encoding on stereo input. The + * number of channels must be 2 for this to have any effect. Set to + * \c false to use only independent channel coding. + * + * \default \c false + * \param encoder An encoder instance to set. + * \param value Flag value (see above). + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_do_mid_side_stereo(FLAC__StreamEncoder *encoder, FLAC__bool value); + +/** Set to \c true to enable adaptive switching between mid-side and + * left-right encoding on stereo input. Set to \c false to use + * exhaustive searching. Setting this to \c true requires + * FLAC__stream_encoder_set_do_mid_side_stereo() to also be set to + * \c true in order to have any effect. + * + * \default \c false + * \param encoder An encoder instance to set. + * \param value Flag value (see above). + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_loose_mid_side_stereo(FLAC__StreamEncoder *encoder, FLAC__bool value); + +/** Sets the apodization function(s) the encoder will use when windowing + * audio data for LPC analysis. + * + * The \a specification is a plain ASCII string which specifies exactly + * which functions to use. There may be more than one (up to 32), + * separated by \c ';' characters. Some functions take one or more + * comma-separated arguments in parentheses. + * + * The available functions are \c bartlett, \c bartlett_hann, + * \c blackman, \c blackman_harris_4term_92db, \c connes, \c flattop, + * \c gauss(STDDEV), \c hamming, \c hann, \c kaiser_bessel, \c nuttall, + * \c rectangle, \c triangle, \c tukey(P), \c welch. + * + * For \c gauss(STDDEV), STDDEV specifies the standard deviation + * (0blocksize / (2 ^ order). + * + * Set both min and max values to \c 0 to force a single context, + * whose Rice parameter is based on the residual signal variance. + * Otherwise, set a min and max order, and the encoder will search + * all orders, using the mean of each context for its Rice parameter, + * and use the best. + * + * \default \c 0 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_min_residual_partition_order(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set the maximum partition order to search when coding the residual. + * This is used in tandem with + * FLAC__stream_encoder_set_min_residual_partition_order(). + * + * The partition order determines the context size in the residual. + * The context size will be approximately blocksize / (2 ^ order). + * + * Set both min and max values to \c 0 to force a single context, + * whose Rice parameter is based on the residual signal variance. + * Otherwise, set a min and max order, and the encoder will search + * all orders, using the mean of each context for its Rice parameter, + * and use the best. + * + * \default \c 0 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_max_residual_partition_order(FLAC__StreamEncoder *encoder, unsigned value); + +/** Deprecated. Setting this value has no effect. + * + * \default \c 0 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_rice_parameter_search_dist(FLAC__StreamEncoder *encoder, unsigned value); + +/** Set an estimate of the total samples that will be encoded. + * This is merely an estimate and may be set to \c 0 if unknown. + * This value will be written to the STREAMINFO block before encoding, + * and can remove the need for the caller to rewrite the value later + * if the value is known before encoding. + * + * \default \c 0 + * \param encoder An encoder instance to set. + * \param value See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_total_samples_estimate(FLAC__StreamEncoder *encoder, FLAC__uint64 value); + +/** Set the metadata blocks to be emitted to the stream before encoding. + * A value of \c NULL, \c 0 implies no metadata; otherwise, supply an + * array of pointers to metadata blocks. The array is non-const since + * the encoder may need to change the \a is_last flag inside them, and + * in some cases update seek point offsets. Otherwise, the encoder will + * not modify or free the blocks. It is up to the caller to free the + * metadata blocks after encoding finishes. + * + * \note + * The encoder stores only copies of the pointers in the \a metadata array; + * the metadata blocks themselves must survive at least until after + * FLAC__stream_encoder_finish() returns. Do not free the blocks until then. + * + * \note + * The STREAMINFO block is always written and no STREAMINFO block may + * occur in the supplied array. + * + * \note + * By default the encoder does not create a SEEKTABLE. If one is supplied + * in the \a metadata array, but the client has specified that it does not + * support seeking, then the SEEKTABLE will be written verbatim. However + * by itself this is not very useful as the client will not know the stream + * offsets for the seekpoints ahead of time. In order to get a proper + * seektable the client must support seeking. See next note. + * + * \note + * SEEKTABLE blocks are handled specially. Since you will not know + * the values for the seek point stream offsets, you should pass in + * a SEEKTABLE 'template', that is, a SEEKTABLE object with the + * required sample numbers (or placeholder points), with \c 0 for the + * \a frame_samples and \a stream_offset fields for each point. If the + * client has specified that it supports seeking by providing a seek + * callback to FLAC__stream_encoder_init_stream() or both seek AND read + * callback to FLAC__stream_encoder_init_ogg_stream() (or by using + * FLAC__stream_encoder_init*_file() or FLAC__stream_encoder_init*_FILE()), + * then while it is encoding the encoder will fill the stream offsets in + * for you and when encoding is finished, it will seek back and write the + * real values into the SEEKTABLE block in the stream. There are helper + * routines for manipulating seektable template blocks; see metadata.h: + * FLAC__metadata_object_seektable_template_*(). If the client does + * not support seeking, the SEEKTABLE will have inaccurate offsets which + * will slow down or remove the ability to seek in the FLAC stream. + * + * \note + * The encoder instance \b will modify the first \c SEEKTABLE block + * as it transforms the template to a valid seektable while encoding, + * but it is still up to the caller to free all metadata blocks after + * encoding. + * + * \note + * A VORBIS_COMMENT block may be supplied. The vendor string in it + * will be ignored. libFLAC will use it's own vendor string. libFLAC + * will not modify the passed-in VORBIS_COMMENT's vendor string, it + * will simply write it's own into the stream. If no VORBIS_COMMENT + * block is present in the \a metadata array, libFLAC will write an + * empty one, containing only the vendor string. + * + * \note The Ogg FLAC mapping requires that the VORBIS_COMMENT block be + * the second metadata block of the stream. The encoder already supplies + * the STREAMINFO block automatically. If \a metadata does not contain a + * VORBIS_COMMENT block, the encoder will supply that too. Otherwise, if + * \a metadata does contain a VORBIS_COMMENT block and it is not the + * first, the init function will reorder \a metadata by moving the + * VORBIS_COMMENT block to the front; the relative ordering of the other + * blocks will remain as they were. + * + * \note The Ogg FLAC mapping limits the number of metadata blocks per + * stream to \c 65535. If \a num_blocks exceeds this the function will + * return \c false. + * + * \default \c NULL, 0 + * \param encoder An encoder instance to set. + * \param metadata See above. + * \param num_blocks See above. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * \c false if the encoder is already initialized, else \c true. + * \c false if the encoder is already initialized, or if + * \a num_blocks > 65535 if encoding to Ogg FLAC, else \c true. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_set_metadata(FLAC__StreamEncoder *encoder, FLAC__StreamMetadata **metadata, unsigned num_blocks); + +/** Get the current encoder state. + * + * \param encoder An encoder instance to query. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__StreamEncoderState + * The current encoder state. + */ +FLAC_API FLAC__StreamEncoderState FLAC__stream_encoder_get_state(const FLAC__StreamEncoder *encoder); + +/** Get the state of the verify stream decoder. + * Useful when the stream encoder state is + * \c FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR. + * + * \param encoder An encoder instance to query. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__StreamDecoderState + * The verify stream decoder state. + */ +FLAC_API FLAC__StreamDecoderState FLAC__stream_encoder_get_verify_decoder_state(const FLAC__StreamEncoder *encoder); + +/** Get the current encoder state as a C string. + * This version automatically resolves + * \c FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR by getting the + * verify decoder's state. + * + * \param encoder A encoder instance to query. + * \assert + * \code encoder != NULL \endcode + * \retval const char * + * The encoder state as a C string. Do not modify the contents. + */ +FLAC_API const char *FLAC__stream_encoder_get_resolved_state_string(const FLAC__StreamEncoder *encoder); + +/** Get relevant values about the nature of a verify decoder error. + * Useful when the stream encoder state is + * \c FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR. The arguments should + * be addresses in which the stats will be returned, or NULL if value + * is not desired. + * + * \param encoder An encoder instance to query. + * \param absolute_sample The absolute sample number of the mismatch. + * \param frame_number The number of the frame in which the mismatch occurred. + * \param channel The channel in which the mismatch occurred. + * \param sample The number of the sample (relative to the frame) in + * which the mismatch occurred. + * \param expected The expected value for the sample in question. + * \param got The actual value returned by the decoder. + * \assert + * \code encoder != NULL \endcode + */ +FLAC_API void FLAC__stream_encoder_get_verify_decoder_error_stats(const FLAC__StreamEncoder *encoder, FLAC__uint64 *absolute_sample, unsigned *frame_number, unsigned *channel, unsigned *sample, FLAC__int32 *expected, FLAC__int32 *got); + +/** Get the "verify" flag. + * + * \param encoder An encoder instance to query. + * \assert + * \code encoder != NULL \endcode + * \retval FLAC__bool + * See FLAC__stream_encoder_set_verify(). + */ +FLAC_API FLAC__bool FLAC__stream_encoder_get_verify(const FLAC__StreamEncoder *encoder); + +/** Get the frame header. + * + * \param encoder An initialized encoder instance in the OK state. + * \param buffer An array of pointers to each channel's signal. + * \param samples The number of samples in one channel. + * \assert + * \code encoder != NULL \endcode + * \code FLAC__stream_encoder_get_state(encoder) == FLAC__STREAM_ENCODER_OK \endcode + * \retval FLAC__bool + * \c true if successful, else \c false; in this case, check the + * encoder state with FLAC__stream_encoder_get_state() to see what + * went wrong. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_process(FLAC__StreamEncoder *encoder, const FLAC__int32 * const buffer[], unsigned samples); + +/** Submit data for encoding. + * This version allows you to supply the input data where the channels + * are interleaved into a single array (i.e. channel0_sample0, + * channel1_sample0, ... , channelN_sample0, channel0_sample1, ...). + * The samples need not be block-aligned but they must be + * sample-aligned, i.e. the first value should be channel0_sample0 + * and the last value channelN_sampleM. Each sample should be a signed + * integer, right-justified to the resolution set by + * FLAC__stream_encoder_set_bits_per_sample(). For example, if the + * resolution is 16 bits per sample, the samples should all be in the + * range [-32768,32767]. + * + * For applications where channel order is important, channels must + * follow the order as described in the + * frame header. + * + * \param encoder An initialized encoder instance in the OK state. + * \param buffer An array of channel-interleaved data (see above). + * \param samples The number of samples in one channel, the same as for + * FLAC__stream_encoder_process(). For example, if + * encoding two channels, \c 1000 \a samples corresponds + * to a \a buffer of 2000 values. + * \assert + * \code encoder != NULL \endcode + * \code FLAC__stream_encoder_get_state(encoder) == FLAC__STREAM_ENCODER_OK \endcode + * \retval FLAC__bool + * \c true if successful, else \c false; in this case, check the + * encoder state with FLAC__stream_encoder_get_state() to see what + * went wrong. + */ +FLAC_API FLAC__bool FLAC__stream_encoder_process_interleaved(FLAC__StreamEncoder *encoder, const FLAC__int32 buffer[], unsigned samples); + +/* \} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Audio-Frameworks/bin/flac/headers/ogg/ogg.h b/Audio-Frameworks/bin/flac/headers/ogg/ogg.h new file mode 100644 index 0000000..cea4ebe --- /dev/null +++ b/Audio-Frameworks/bin/flac/headers/ogg/ogg.h @@ -0,0 +1,210 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: toplevel libogg include + last mod: $Id: ogg.h 18044 2011-08-01 17:55:20Z gmaxwell $ + + ********************************************************************/ +#ifndef _OGG_H +#define _OGG_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +typedef struct { + void *iov_base; + size_t iov_len; +} ogg_iovec_t; + +typedef struct { + long endbyte; + int endbit; + + unsigned char *buffer; + unsigned char *ptr; + long storage; +} oggpack_buffer; + +/* ogg_page is used to encapsulate the data in one Ogg bitstream page *****/ + +typedef struct { + unsigned char *header; + long header_len; + unsigned char *body; + long body_len; +} ogg_page; + +/* ogg_stream_state contains the current encode/decode state of a logical + Ogg bitstream **********************************************************/ + +typedef struct { + unsigned char *body_data; /* bytes from packet bodies */ + long body_storage; /* storage elements allocated */ + long body_fill; /* elements stored; fill mark */ + long body_returned; /* elements of fill returned */ + + + int *lacing_vals; /* The values that will go to the segment table */ + ogg_int64_t *granule_vals; /* granulepos values for headers. Not compact + this way, but it is simple coupled to the + lacing fifo */ + long lacing_storage; + long lacing_fill; + long lacing_packet; + long lacing_returned; + + unsigned char header[282]; /* working space for header encode */ + int header_fill; + + int e_o_s; /* set when we have buffered the last packet in the + logical bitstream */ + int b_o_s; /* set after we've written the initial page + of a logical bitstream */ + long serialno; + long pageno; + ogg_int64_t packetno; /* sequence number for decode; the framing + knows where there's a hole in the data, + but we need coupling so that the codec + (which is in a separate abstraction + layer) also knows about the gap */ + ogg_int64_t granulepos; + +} ogg_stream_state; + +/* ogg_packet is used to encapsulate the data and metadata belonging + to a single raw Ogg/Vorbis packet *************************************/ + +typedef struct { + unsigned char *packet; + long bytes; + long b_o_s; + long e_o_s; + + ogg_int64_t granulepos; + + ogg_int64_t packetno; /* sequence number for decode; the framing + knows where there's a hole in the data, + but we need coupling so that the codec + (which is in a separate abstraction + layer) also knows about the gap */ +} ogg_packet; + +typedef struct { + unsigned char *data; + int storage; + int fill; + int returned; + + int unsynced; + int headerbytes; + int bodybytes; +} ogg_sync_state; + +/* Ogg BITSTREAM PRIMITIVES: bitstream ************************/ + +extern void oggpack_writeinit(oggpack_buffer *b); +extern int oggpack_writecheck(oggpack_buffer *b); +extern void oggpack_writetrunc(oggpack_buffer *b,long bits); +extern void oggpack_writealign(oggpack_buffer *b); +extern void oggpack_writecopy(oggpack_buffer *b,void *source,long bits); +extern void oggpack_reset(oggpack_buffer *b); +extern void oggpack_writeclear(oggpack_buffer *b); +extern void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); +extern void oggpack_write(oggpack_buffer *b,unsigned long value,int bits); +extern long oggpack_look(oggpack_buffer *b,int bits); +extern long oggpack_look1(oggpack_buffer *b); +extern void oggpack_adv(oggpack_buffer *b,int bits); +extern void oggpack_adv1(oggpack_buffer *b); +extern long oggpack_read(oggpack_buffer *b,int bits); +extern long oggpack_read1(oggpack_buffer *b); +extern long oggpack_bytes(oggpack_buffer *b); +extern long oggpack_bits(oggpack_buffer *b); +extern unsigned char *oggpack_get_buffer(oggpack_buffer *b); + +extern void oggpackB_writeinit(oggpack_buffer *b); +extern int oggpackB_writecheck(oggpack_buffer *b); +extern void oggpackB_writetrunc(oggpack_buffer *b,long bits); +extern void oggpackB_writealign(oggpack_buffer *b); +extern void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits); +extern void oggpackB_reset(oggpack_buffer *b); +extern void oggpackB_writeclear(oggpack_buffer *b); +extern void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); +extern void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits); +extern long oggpackB_look(oggpack_buffer *b,int bits); +extern long oggpackB_look1(oggpack_buffer *b); +extern void oggpackB_adv(oggpack_buffer *b,int bits); +extern void oggpackB_adv1(oggpack_buffer *b); +extern long oggpackB_read(oggpack_buffer *b,int bits); +extern long oggpackB_read1(oggpack_buffer *b); +extern long oggpackB_bytes(oggpack_buffer *b); +extern long oggpackB_bits(oggpack_buffer *b); +extern unsigned char *oggpackB_get_buffer(oggpack_buffer *b); + +/* Ogg BITSTREAM PRIMITIVES: encoding **************************/ + +extern int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op); +extern int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, + int count, long e_o_s, ogg_int64_t granulepos); +extern int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og); +extern int ogg_stream_pageout_fill(ogg_stream_state *os, ogg_page *og, int nfill); +extern int ogg_stream_flush(ogg_stream_state *os, ogg_page *og); +extern int ogg_stream_flush_fill(ogg_stream_state *os, ogg_page *og, int nfill); + +/* Ogg BITSTREAM PRIMITIVES: decoding **************************/ + +extern int ogg_sync_init(ogg_sync_state *oy); +extern int ogg_sync_clear(ogg_sync_state *oy); +extern int ogg_sync_reset(ogg_sync_state *oy); +extern int ogg_sync_destroy(ogg_sync_state *oy); +extern int ogg_sync_check(ogg_sync_state *oy); + +extern char *ogg_sync_buffer(ogg_sync_state *oy, long size); +extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes); +extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og); +extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); +extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); +extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); +extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op); + +/* Ogg BITSTREAM PRIMITIVES: general ***************************/ + +extern int ogg_stream_init(ogg_stream_state *os,int serialno); +extern int ogg_stream_clear(ogg_stream_state *os); +extern int ogg_stream_reset(ogg_stream_state *os); +extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno); +extern int ogg_stream_destroy(ogg_stream_state *os); +extern int ogg_stream_check(ogg_stream_state *os); +extern int ogg_stream_eos(ogg_stream_state *os); + +extern void ogg_page_checksum_set(ogg_page *og); + +extern int ogg_page_version(const ogg_page *og); +extern int ogg_page_continued(const ogg_page *og); +extern int ogg_page_bos(const ogg_page *og); +extern int ogg_page_eos(const ogg_page *og); +extern ogg_int64_t ogg_page_granulepos(const ogg_page *og); +extern int ogg_page_serialno(const ogg_page *og); +extern long ogg_page_pageno(const ogg_page *og); +extern int ogg_page_packets(const ogg_page *og); + +extern void ogg_packet_clear(ogg_packet *op); + + +#ifdef __cplusplus +} +#endif + +#endif /* _OGG_H */ diff --git a/Audio-Frameworks/bin/flac/headers/ogg/os_types.h b/Audio-Frameworks/bin/flac/headers/ogg/os_types.h new file mode 100644 index 0000000..d6691b7 --- /dev/null +++ b/Audio-Frameworks/bin/flac/headers/ogg/os_types.h @@ -0,0 +1,147 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: #ifdef jail to whip a few platforms into the UNIX ideal. + last mod: $Id: os_types.h 17712 2010-12-03 17:10:02Z xiphmont $ + + ********************************************************************/ +#ifndef _OS_TYPES_H +#define _OS_TYPES_H + +/* make it easy on the folks that want to compile the libs with a + different malloc than stdlib */ +#define _ogg_malloc malloc +#define _ogg_calloc calloc +#define _ogg_realloc realloc +#define _ogg_free free + +#if defined(_WIN32) + +# if defined(__CYGWIN__) +# include + typedef int16_t ogg_int16_t; + typedef uint16_t ogg_uint16_t; + typedef int32_t ogg_int32_t; + typedef uint32_t ogg_uint32_t; + typedef int64_t ogg_int64_t; + typedef uint64_t ogg_uint64_t; +# elif defined(__MINGW32__) +# include + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + typedef unsigned long long ogg_uint64_t; +# elif defined(__MWERKS__) + typedef long long ogg_int64_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; +# else + /* MSVC/Borland */ + typedef __int64 ogg_int64_t; + typedef __int32 ogg_int32_t; + typedef unsigned __int32 ogg_uint32_t; + typedef __int16 ogg_int16_t; + typedef unsigned __int16 ogg_uint16_t; +# endif + +#elif defined(__MACOS__) + +# include + typedef SInt16 ogg_int16_t; + typedef UInt16 ogg_uint16_t; + typedef SInt32 ogg_int32_t; + typedef UInt32 ogg_uint32_t; + typedef SInt64 ogg_int64_t; + +#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */ + +# include + typedef int16_t ogg_int16_t; + typedef uint16_t ogg_uint16_t; + typedef int32_t ogg_int32_t; + typedef uint32_t ogg_uint32_t; + typedef int64_t ogg_int64_t; + +#elif defined(__HAIKU__) + + /* Haiku */ +# include + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + +#elif defined(__BEOS__) + + /* Be */ +# include + typedef int16_t ogg_int16_t; + typedef uint16_t ogg_uint16_t; + typedef int32_t ogg_int32_t; + typedef uint32_t ogg_uint32_t; + typedef int64_t ogg_int64_t; + +#elif defined (__EMX__) + + /* OS/2 GCC */ + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + +#elif defined (DJGPP) + + /* DJGPP */ + typedef short ogg_int16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + +#elif defined(R5900) + + /* PS2 EE */ + typedef long ogg_int64_t; + typedef int ogg_int32_t; + typedef unsigned ogg_uint32_t; + typedef short ogg_int16_t; + +#elif defined(__SYMBIAN32__) + + /* Symbian GCC */ + typedef signed short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef signed int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long int ogg_int64_t; + +#elif defined(__TMS320C6X__) + + /* TI C64x compiler */ + typedef signed short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef signed int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long int ogg_int64_t; + +#else + +# include + +#endif + +#endif /* _OS_TYPES_H */ diff --git a/Audio-Frameworks/bin/flac/libFLAC.a b/Audio-Frameworks/bin/flac/libFLAC.a new file mode 100644 index 0000000000000000000000000000000000000000..e3ac3216383330783bc5cd4131de222b2873519a GIT binary patch literal 763240 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%0D{OqESP+_^_7R z9{|q0NW|AGM4B)Sl&di6iK9+s>JBb4^#{mQrtaV(Q`0Z8#x4SFB7n{>1LzAti)n

8YyuE-dq>=k0n2gH?J`%^THs(w{RZE# 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

AK9A>B;|do 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�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

{#5$SADtV}dx}isQT~ zMENU3IVwbXC|n>oRWMI*fM7Sl4ubK5^#s2_{%b^FYmKfL9!0zE(KuG)nArLL|GU^% z!yXPd>TtZlhmdm*caAM+ituQ!4Ll|G4agAR2PpRdIf{pNFYq3*w*<}wh zRyb~hemN$EV>D>zc#9ITKZ*RZe}Zz3<3L@f>>Pu_G*Qm+Cz+zdu^bb`&T$;Shz`e) zV7!3RXS>H1v9m2>uh=;bg~PNMCdaIBs3YwhPr`R_+Bw#wm)JRu1cQr|oPB*ekvC9v zyymdSK;M=}!(!Xzx>Wir9s122I%<1#Ywnvp!Gt@X%WOFRjK6@46H@|=6H@}rF~KPy z^iKo|h-6BTQ@}}G5|m61QnUFo$K;OTR6Oj;KAKxZD=(s8&40@rUXYtxRn9qlRV4P* zxIlzzZk#>O&l#va(T@>xE*N6Y9fPT48h56@CJEN$AxwsI24PJCyhdV8?Q@D*44nFQ z9oe1}DvP$;a((%s>RLU}WOS12n?3#J)9KY*K1LU+vYwBoV0%0Ix G?f(MTcnie< literal 0 HcmV?d00001 diff --git a/Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Headers b/Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Headers new file mode 120000 index 0000000..a177d2a --- /dev/null +++ b/Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Ogg b/Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Ogg new file mode 120000 index 0000000..d6b4e13 --- /dev/null +++ b/Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Ogg @@ -0,0 +1 @@ +Versions/Current/Ogg \ No newline at end of file diff --git a/Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Resources b/Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Resources new file mode 120000 index 0000000..953ee36 --- /dev/null +++ b/Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Versions/A/Headers/ogg.h b/Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Versions/A/Headers/ogg.h new file mode 100644 index 0000000..cea4ebe --- /dev/null +++ b/Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Versions/A/Headers/ogg.h @@ -0,0 +1,210 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: toplevel libogg include + last mod: $Id: ogg.h 18044 2011-08-01 17:55:20Z gmaxwell $ + + ********************************************************************/ +#ifndef _OGG_H +#define _OGG_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +typedef struct { + void *iov_base; + size_t iov_len; +} ogg_iovec_t; + +typedef struct { + long endbyte; + int endbit; + + unsigned char *buffer; + unsigned char *ptr; + long storage; +} oggpack_buffer; + +/* ogg_page is used to encapsulate the data in one Ogg bitstream page *****/ + +typedef struct { + unsigned char *header; + long header_len; + unsigned char *body; + long body_len; +} ogg_page; + +/* ogg_stream_state contains the current encode/decode state of a logical + Ogg bitstream **********************************************************/ + +typedef struct { + unsigned char *body_data; /* bytes from packet bodies */ + long body_storage; /* storage elements allocated */ + long body_fill; /* elements stored; fill mark */ + long body_returned; /* elements of fill returned */ + + + int *lacing_vals; /* The values that will go to the segment table */ + ogg_int64_t *granule_vals; /* granulepos values for headers. Not compact + this way, but it is simple coupled to the + lacing fifo */ + long lacing_storage; + long lacing_fill; + long lacing_packet; + long lacing_returned; + + unsigned char header[282]; /* working space for header encode */ + int header_fill; + + int e_o_s; /* set when we have buffered the last packet in the + logical bitstream */ + int b_o_s; /* set after we've written the initial page + of a logical bitstream */ + long serialno; + long pageno; + ogg_int64_t packetno; /* sequence number for decode; the framing + knows where there's a hole in the data, + but we need coupling so that the codec + (which is in a separate abstraction + layer) also knows about the gap */ + ogg_int64_t granulepos; + +} ogg_stream_state; + +/* ogg_packet is used to encapsulate the data and metadata belonging + to a single raw Ogg/Vorbis packet *************************************/ + +typedef struct { + unsigned char *packet; + long bytes; + long b_o_s; + long e_o_s; + + ogg_int64_t granulepos; + + ogg_int64_t packetno; /* sequence number for decode; the framing + knows where there's a hole in the data, + but we need coupling so that the codec + (which is in a separate abstraction + layer) also knows about the gap */ +} ogg_packet; + +typedef struct { + unsigned char *data; + int storage; + int fill; + int returned; + + int unsynced; + int headerbytes; + int bodybytes; +} ogg_sync_state; + +/* Ogg BITSTREAM PRIMITIVES: bitstream ************************/ + +extern void oggpack_writeinit(oggpack_buffer *b); +extern int oggpack_writecheck(oggpack_buffer *b); +extern void oggpack_writetrunc(oggpack_buffer *b,long bits); +extern void oggpack_writealign(oggpack_buffer *b); +extern void oggpack_writecopy(oggpack_buffer *b,void *source,long bits); +extern void oggpack_reset(oggpack_buffer *b); +extern void oggpack_writeclear(oggpack_buffer *b); +extern void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); +extern void oggpack_write(oggpack_buffer *b,unsigned long value,int bits); +extern long oggpack_look(oggpack_buffer *b,int bits); +extern long oggpack_look1(oggpack_buffer *b); +extern void oggpack_adv(oggpack_buffer *b,int bits); +extern void oggpack_adv1(oggpack_buffer *b); +extern long oggpack_read(oggpack_buffer *b,int bits); +extern long oggpack_read1(oggpack_buffer *b); +extern long oggpack_bytes(oggpack_buffer *b); +extern long oggpack_bits(oggpack_buffer *b); +extern unsigned char *oggpack_get_buffer(oggpack_buffer *b); + +extern void oggpackB_writeinit(oggpack_buffer *b); +extern int oggpackB_writecheck(oggpack_buffer *b); +extern void oggpackB_writetrunc(oggpack_buffer *b,long bits); +extern void oggpackB_writealign(oggpack_buffer *b); +extern void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits); +extern void oggpackB_reset(oggpack_buffer *b); +extern void oggpackB_writeclear(oggpack_buffer *b); +extern void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); +extern void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits); +extern long oggpackB_look(oggpack_buffer *b,int bits); +extern long oggpackB_look1(oggpack_buffer *b); +extern void oggpackB_adv(oggpack_buffer *b,int bits); +extern void oggpackB_adv1(oggpack_buffer *b); +extern long oggpackB_read(oggpack_buffer *b,int bits); +extern long oggpackB_read1(oggpack_buffer *b); +extern long oggpackB_bytes(oggpack_buffer *b); +extern long oggpackB_bits(oggpack_buffer *b); +extern unsigned char *oggpackB_get_buffer(oggpack_buffer *b); + +/* Ogg BITSTREAM PRIMITIVES: encoding **************************/ + +extern int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op); +extern int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, + int count, long e_o_s, ogg_int64_t granulepos); +extern int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og); +extern int ogg_stream_pageout_fill(ogg_stream_state *os, ogg_page *og, int nfill); +extern int ogg_stream_flush(ogg_stream_state *os, ogg_page *og); +extern int ogg_stream_flush_fill(ogg_stream_state *os, ogg_page *og, int nfill); + +/* Ogg BITSTREAM PRIMITIVES: decoding **************************/ + +extern int ogg_sync_init(ogg_sync_state *oy); +extern int ogg_sync_clear(ogg_sync_state *oy); +extern int ogg_sync_reset(ogg_sync_state *oy); +extern int ogg_sync_destroy(ogg_sync_state *oy); +extern int ogg_sync_check(ogg_sync_state *oy); + +extern char *ogg_sync_buffer(ogg_sync_state *oy, long size); +extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes); +extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og); +extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); +extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); +extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); +extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op); + +/* Ogg BITSTREAM PRIMITIVES: general ***************************/ + +extern int ogg_stream_init(ogg_stream_state *os,int serialno); +extern int ogg_stream_clear(ogg_stream_state *os); +extern int ogg_stream_reset(ogg_stream_state *os); +extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno); +extern int ogg_stream_destroy(ogg_stream_state *os); +extern int ogg_stream_check(ogg_stream_state *os); +extern int ogg_stream_eos(ogg_stream_state *os); + +extern void ogg_page_checksum_set(ogg_page *og); + +extern int ogg_page_version(const ogg_page *og); +extern int ogg_page_continued(const ogg_page *og); +extern int ogg_page_bos(const ogg_page *og); +extern int ogg_page_eos(const ogg_page *og); +extern ogg_int64_t ogg_page_granulepos(const ogg_page *og); +extern int ogg_page_serialno(const ogg_page *og); +extern long ogg_page_pageno(const ogg_page *og); +extern int ogg_page_packets(const ogg_page *og); + +extern void ogg_packet_clear(ogg_packet *op); + + +#ifdef __cplusplus +} +#endif + +#endif /* _OGG_H */ diff --git a/Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Versions/A/Headers/os_types.h b/Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Versions/A/Headers/os_types.h new file mode 100644 index 0000000..d6691b7 --- /dev/null +++ b/Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Versions/A/Headers/os_types.h @@ -0,0 +1,147 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: #ifdef jail to whip a few platforms into the UNIX ideal. + last mod: $Id: os_types.h 17712 2010-12-03 17:10:02Z xiphmont $ + + ********************************************************************/ +#ifndef _OS_TYPES_H +#define _OS_TYPES_H + +/* make it easy on the folks that want to compile the libs with a + different malloc than stdlib */ +#define _ogg_malloc malloc +#define _ogg_calloc calloc +#define _ogg_realloc realloc +#define _ogg_free free + +#if defined(_WIN32) + +# if defined(__CYGWIN__) +# include + typedef int16_t ogg_int16_t; + typedef uint16_t ogg_uint16_t; + typedef int32_t ogg_int32_t; + typedef uint32_t ogg_uint32_t; + typedef int64_t ogg_int64_t; + typedef uint64_t ogg_uint64_t; +# elif defined(__MINGW32__) +# include + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + typedef unsigned long long ogg_uint64_t; +# elif defined(__MWERKS__) + typedef long long ogg_int64_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; +# else + /* MSVC/Borland */ + typedef __int64 ogg_int64_t; + typedef __int32 ogg_int32_t; + typedef unsigned __int32 ogg_uint32_t; + typedef __int16 ogg_int16_t; + typedef unsigned __int16 ogg_uint16_t; +# endif + +#elif defined(__MACOS__) + +# include + typedef SInt16 ogg_int16_t; + typedef UInt16 ogg_uint16_t; + typedef SInt32 ogg_int32_t; + typedef UInt32 ogg_uint32_t; + typedef SInt64 ogg_int64_t; + +#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */ + +# include + typedef int16_t ogg_int16_t; + typedef uint16_t ogg_uint16_t; + typedef int32_t ogg_int32_t; + typedef uint32_t ogg_uint32_t; + typedef int64_t ogg_int64_t; + +#elif defined(__HAIKU__) + + /* Haiku */ +# include + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + +#elif defined(__BEOS__) + + /* Be */ +# include + typedef int16_t ogg_int16_t; + typedef uint16_t ogg_uint16_t; + typedef int32_t ogg_int32_t; + typedef uint32_t ogg_uint32_t; + typedef int64_t ogg_int64_t; + +#elif defined (__EMX__) + + /* OS/2 GCC */ + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + +#elif defined (DJGPP) + + /* DJGPP */ + typedef short ogg_int16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + +#elif defined(R5900) + + /* PS2 EE */ + typedef long ogg_int64_t; + typedef int ogg_int32_t; + typedef unsigned ogg_uint32_t; + typedef short ogg_int16_t; + +#elif defined(__SYMBIAN32__) + + /* Symbian GCC */ + typedef signed short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef signed int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long int ogg_int64_t; + +#elif defined(__TMS320C6X__) + + /* TI C64x compiler */ + typedef signed short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef signed int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long int ogg_int64_t; + +#else + +# include + +#endif + +#endif /* _OS_TYPES_H */ diff --git a/Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Versions/A/Ogg b/Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Versions/A/Ogg new file mode 100755 index 0000000000000000000000000000000000000000..736bc9777630986ff377fa9b850cfe4d88da99e4 GIT binary patch literal 31728 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 + + + + BuildMachineOSBuild + 12F37 + CFBundleDevelopmentRegion + English + CFBundleExecutable + Ogg + CFBundleIdentifier + com.ap4y.Ogg + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Ogg + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 5A1413 + DTPlatformVersion + GM + DTSDKBuild + 12D75 + DTSDKName + macosx10.8 + DTXcode + 0500 + DTXcodeBuild + 5A1413 + NSHumanReadableCopyright + Copyright © 2013 Arthur Evstifeev. All rights reserved. + + diff --git a/Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Versions/Current b/Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Versions/Current new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ b/Audio-Frameworks/bin/ogg/MacOS/Ogg.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/Audio-Frameworks/bin/ogg/Ogg.framework/Headers b/Audio-Frameworks/bin/ogg/Ogg.framework/Headers new file mode 120000 index 0000000..a177d2a --- /dev/null +++ b/Audio-Frameworks/bin/ogg/Ogg.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/Audio-Frameworks/bin/ogg/Ogg.framework/Ogg b/Audio-Frameworks/bin/ogg/Ogg.framework/Ogg new file mode 120000 index 0000000..d6b4e13 --- /dev/null +++ b/Audio-Frameworks/bin/ogg/Ogg.framework/Ogg @@ -0,0 +1 @@ +Versions/Current/Ogg \ No newline at end of file diff --git a/Audio-Frameworks/bin/ogg/Ogg.framework/Resources b/Audio-Frameworks/bin/ogg/Ogg.framework/Resources new file mode 120000 index 0000000..953ee36 --- /dev/null +++ b/Audio-Frameworks/bin/ogg/Ogg.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/Audio-Frameworks/bin/ogg/Ogg.framework/Versions/A/Headers/ogg.h b/Audio-Frameworks/bin/ogg/Ogg.framework/Versions/A/Headers/ogg.h new file mode 100644 index 0000000..cea4ebe --- /dev/null +++ b/Audio-Frameworks/bin/ogg/Ogg.framework/Versions/A/Headers/ogg.h @@ -0,0 +1,210 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: toplevel libogg include + last mod: $Id: ogg.h 18044 2011-08-01 17:55:20Z gmaxwell $ + + ********************************************************************/ +#ifndef _OGG_H +#define _OGG_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +typedef struct { + void *iov_base; + size_t iov_len; +} ogg_iovec_t; + +typedef struct { + long endbyte; + int endbit; + + unsigned char *buffer; + unsigned char *ptr; + long storage; +} oggpack_buffer; + +/* ogg_page is used to encapsulate the data in one Ogg bitstream page *****/ + +typedef struct { + unsigned char *header; + long header_len; + unsigned char *body; + long body_len; +} ogg_page; + +/* ogg_stream_state contains the current encode/decode state of a logical + Ogg bitstream **********************************************************/ + +typedef struct { + unsigned char *body_data; /* bytes from packet bodies */ + long body_storage; /* storage elements allocated */ + long body_fill; /* elements stored; fill mark */ + long body_returned; /* elements of fill returned */ + + + int *lacing_vals; /* The values that will go to the segment table */ + ogg_int64_t *granule_vals; /* granulepos values for headers. Not compact + this way, but it is simple coupled to the + lacing fifo */ + long lacing_storage; + long lacing_fill; + long lacing_packet; + long lacing_returned; + + unsigned char header[282]; /* working space for header encode */ + int header_fill; + + int e_o_s; /* set when we have buffered the last packet in the + logical bitstream */ + int b_o_s; /* set after we've written the initial page + of a logical bitstream */ + long serialno; + long pageno; + ogg_int64_t packetno; /* sequence number for decode; the framing + knows where there's a hole in the data, + but we need coupling so that the codec + (which is in a separate abstraction + layer) also knows about the gap */ + ogg_int64_t granulepos; + +} ogg_stream_state; + +/* ogg_packet is used to encapsulate the data and metadata belonging + to a single raw Ogg/Vorbis packet *************************************/ + +typedef struct { + unsigned char *packet; + long bytes; + long b_o_s; + long e_o_s; + + ogg_int64_t granulepos; + + ogg_int64_t packetno; /* sequence number for decode; the framing + knows where there's a hole in the data, + but we need coupling so that the codec + (which is in a separate abstraction + layer) also knows about the gap */ +} ogg_packet; + +typedef struct { + unsigned char *data; + int storage; + int fill; + int returned; + + int unsynced; + int headerbytes; + int bodybytes; +} ogg_sync_state; + +/* Ogg BITSTREAM PRIMITIVES: bitstream ************************/ + +extern void oggpack_writeinit(oggpack_buffer *b); +extern int oggpack_writecheck(oggpack_buffer *b); +extern void oggpack_writetrunc(oggpack_buffer *b,long bits); +extern void oggpack_writealign(oggpack_buffer *b); +extern void oggpack_writecopy(oggpack_buffer *b,void *source,long bits); +extern void oggpack_reset(oggpack_buffer *b); +extern void oggpack_writeclear(oggpack_buffer *b); +extern void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); +extern void oggpack_write(oggpack_buffer *b,unsigned long value,int bits); +extern long oggpack_look(oggpack_buffer *b,int bits); +extern long oggpack_look1(oggpack_buffer *b); +extern void oggpack_adv(oggpack_buffer *b,int bits); +extern void oggpack_adv1(oggpack_buffer *b); +extern long oggpack_read(oggpack_buffer *b,int bits); +extern long oggpack_read1(oggpack_buffer *b); +extern long oggpack_bytes(oggpack_buffer *b); +extern long oggpack_bits(oggpack_buffer *b); +extern unsigned char *oggpack_get_buffer(oggpack_buffer *b); + +extern void oggpackB_writeinit(oggpack_buffer *b); +extern int oggpackB_writecheck(oggpack_buffer *b); +extern void oggpackB_writetrunc(oggpack_buffer *b,long bits); +extern void oggpackB_writealign(oggpack_buffer *b); +extern void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits); +extern void oggpackB_reset(oggpack_buffer *b); +extern void oggpackB_writeclear(oggpack_buffer *b); +extern void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); +extern void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits); +extern long oggpackB_look(oggpack_buffer *b,int bits); +extern long oggpackB_look1(oggpack_buffer *b); +extern void oggpackB_adv(oggpack_buffer *b,int bits); +extern void oggpackB_adv1(oggpack_buffer *b); +extern long oggpackB_read(oggpack_buffer *b,int bits); +extern long oggpackB_read1(oggpack_buffer *b); +extern long oggpackB_bytes(oggpack_buffer *b); +extern long oggpackB_bits(oggpack_buffer *b); +extern unsigned char *oggpackB_get_buffer(oggpack_buffer *b); + +/* Ogg BITSTREAM PRIMITIVES: encoding **************************/ + +extern int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op); +extern int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, + int count, long e_o_s, ogg_int64_t granulepos); +extern int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og); +extern int ogg_stream_pageout_fill(ogg_stream_state *os, ogg_page *og, int nfill); +extern int ogg_stream_flush(ogg_stream_state *os, ogg_page *og); +extern int ogg_stream_flush_fill(ogg_stream_state *os, ogg_page *og, int nfill); + +/* Ogg BITSTREAM PRIMITIVES: decoding **************************/ + +extern int ogg_sync_init(ogg_sync_state *oy); +extern int ogg_sync_clear(ogg_sync_state *oy); +extern int ogg_sync_reset(ogg_sync_state *oy); +extern int ogg_sync_destroy(ogg_sync_state *oy); +extern int ogg_sync_check(ogg_sync_state *oy); + +extern char *ogg_sync_buffer(ogg_sync_state *oy, long size); +extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes); +extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og); +extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); +extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); +extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); +extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op); + +/* Ogg BITSTREAM PRIMITIVES: general ***************************/ + +extern int ogg_stream_init(ogg_stream_state *os,int serialno); +extern int ogg_stream_clear(ogg_stream_state *os); +extern int ogg_stream_reset(ogg_stream_state *os); +extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno); +extern int ogg_stream_destroy(ogg_stream_state *os); +extern int ogg_stream_check(ogg_stream_state *os); +extern int ogg_stream_eos(ogg_stream_state *os); + +extern void ogg_page_checksum_set(ogg_page *og); + +extern int ogg_page_version(const ogg_page *og); +extern int ogg_page_continued(const ogg_page *og); +extern int ogg_page_bos(const ogg_page *og); +extern int ogg_page_eos(const ogg_page *og); +extern ogg_int64_t ogg_page_granulepos(const ogg_page *og); +extern int ogg_page_serialno(const ogg_page *og); +extern long ogg_page_pageno(const ogg_page *og); +extern int ogg_page_packets(const ogg_page *og); + +extern void ogg_packet_clear(ogg_packet *op); + + +#ifdef __cplusplus +} +#endif + +#endif /* _OGG_H */ diff --git a/Audio-Frameworks/bin/ogg/Ogg.framework/Versions/A/Headers/os_types.h b/Audio-Frameworks/bin/ogg/Ogg.framework/Versions/A/Headers/os_types.h new file mode 100644 index 0000000..d6691b7 --- /dev/null +++ b/Audio-Frameworks/bin/ogg/Ogg.framework/Versions/A/Headers/os_types.h @@ -0,0 +1,147 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: #ifdef jail to whip a few platforms into the UNIX ideal. + last mod: $Id: os_types.h 17712 2010-12-03 17:10:02Z xiphmont $ + + ********************************************************************/ +#ifndef _OS_TYPES_H +#define _OS_TYPES_H + +/* make it easy on the folks that want to compile the libs with a + different malloc than stdlib */ +#define _ogg_malloc malloc +#define _ogg_calloc calloc +#define _ogg_realloc realloc +#define _ogg_free free + +#if defined(_WIN32) + +# if defined(__CYGWIN__) +# include + typedef int16_t ogg_int16_t; + typedef uint16_t ogg_uint16_t; + typedef int32_t ogg_int32_t; + typedef uint32_t ogg_uint32_t; + typedef int64_t ogg_int64_t; + typedef uint64_t ogg_uint64_t; +# elif defined(__MINGW32__) +# include + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + typedef unsigned long long ogg_uint64_t; +# elif defined(__MWERKS__) + typedef long long ogg_int64_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; +# else + /* MSVC/Borland */ + typedef __int64 ogg_int64_t; + typedef __int32 ogg_int32_t; + typedef unsigned __int32 ogg_uint32_t; + typedef __int16 ogg_int16_t; + typedef unsigned __int16 ogg_uint16_t; +# endif + +#elif defined(__MACOS__) + +# include + typedef SInt16 ogg_int16_t; + typedef UInt16 ogg_uint16_t; + typedef SInt32 ogg_int32_t; + typedef UInt32 ogg_uint32_t; + typedef SInt64 ogg_int64_t; + +#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */ + +# include + typedef int16_t ogg_int16_t; + typedef uint16_t ogg_uint16_t; + typedef int32_t ogg_int32_t; + typedef uint32_t ogg_uint32_t; + typedef int64_t ogg_int64_t; + +#elif defined(__HAIKU__) + + /* Haiku */ +# include + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + +#elif defined(__BEOS__) + + /* Be */ +# include + typedef int16_t ogg_int16_t; + typedef uint16_t ogg_uint16_t; + typedef int32_t ogg_int32_t; + typedef uint32_t ogg_uint32_t; + typedef int64_t ogg_int64_t; + +#elif defined (__EMX__) + + /* OS/2 GCC */ + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + +#elif defined (DJGPP) + + /* DJGPP */ + typedef short ogg_int16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + +#elif defined(R5900) + + /* PS2 EE */ + typedef long ogg_int64_t; + typedef int ogg_int32_t; + typedef unsigned ogg_uint32_t; + typedef short ogg_int16_t; + +#elif defined(__SYMBIAN32__) + + /* Symbian GCC */ + typedef signed short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef signed int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long int ogg_int64_t; + +#elif defined(__TMS320C6X__) + + /* TI C64x compiler */ + typedef signed short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef signed int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long int ogg_int64_t; + +#else + +# include + +#endif + +#endif /* _OS_TYPES_H */ diff --git a/Audio-Frameworks/bin/ogg/Ogg.framework/Versions/A/Ogg b/Audio-Frameworks/bin/ogg/Ogg.framework/Versions/A/Ogg new file mode 100644 index 0000000000000000000000000000000000000000..2014a01e2c52e30ce0d92916524cba03089380f1 GIT binary patch literal 117796 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

izzuWyF5mr6s3MNy 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 PiVefAN4FE7I6U|RUIE{< literal 0 HcmV?d00001 diff --git a/Audio-Frameworks/bin/ogg/Ogg.framework/Versions/Current b/Audio-Frameworks/bin/ogg/Ogg.framework/Versions/Current new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ b/Audio-Frameworks/bin/ogg/Ogg.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/Audio-Frameworks/bin/ogg/include/ogg/ogg.h b/Audio-Frameworks/bin/ogg/include/ogg/ogg.h new file mode 100644 index 0000000..cea4ebe --- /dev/null +++ b/Audio-Frameworks/bin/ogg/include/ogg/ogg.h @@ -0,0 +1,210 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: toplevel libogg include + last mod: $Id: ogg.h 18044 2011-08-01 17:55:20Z gmaxwell $ + + ********************************************************************/ +#ifndef _OGG_H +#define _OGG_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +typedef struct { + void *iov_base; + size_t iov_len; +} ogg_iovec_t; + +typedef struct { + long endbyte; + int endbit; + + unsigned char *buffer; + unsigned char *ptr; + long storage; +} oggpack_buffer; + +/* ogg_page is used to encapsulate the data in one Ogg bitstream page *****/ + +typedef struct { + unsigned char *header; + long header_len; + unsigned char *body; + long body_len; +} ogg_page; + +/* ogg_stream_state contains the current encode/decode state of a logical + Ogg bitstream **********************************************************/ + +typedef struct { + unsigned char *body_data; /* bytes from packet bodies */ + long body_storage; /* storage elements allocated */ + long body_fill; /* elements stored; fill mark */ + long body_returned; /* elements of fill returned */ + + + int *lacing_vals; /* The values that will go to the segment table */ + ogg_int64_t *granule_vals; /* granulepos values for headers. Not compact + this way, but it is simple coupled to the + lacing fifo */ + long lacing_storage; + long lacing_fill; + long lacing_packet; + long lacing_returned; + + unsigned char header[282]; /* working space for header encode */ + int header_fill; + + int e_o_s; /* set when we have buffered the last packet in the + logical bitstream */ + int b_o_s; /* set after we've written the initial page + of a logical bitstream */ + long serialno; + long pageno; + ogg_int64_t packetno; /* sequence number for decode; the framing + knows where there's a hole in the data, + but we need coupling so that the codec + (which is in a separate abstraction + layer) also knows about the gap */ + ogg_int64_t granulepos; + +} ogg_stream_state; + +/* ogg_packet is used to encapsulate the data and metadata belonging + to a single raw Ogg/Vorbis packet *************************************/ + +typedef struct { + unsigned char *packet; + long bytes; + long b_o_s; + long e_o_s; + + ogg_int64_t granulepos; + + ogg_int64_t packetno; /* sequence number for decode; the framing + knows where there's a hole in the data, + but we need coupling so that the codec + (which is in a separate abstraction + layer) also knows about the gap */ +} ogg_packet; + +typedef struct { + unsigned char *data; + int storage; + int fill; + int returned; + + int unsynced; + int headerbytes; + int bodybytes; +} ogg_sync_state; + +/* Ogg BITSTREAM PRIMITIVES: bitstream ************************/ + +extern void oggpack_writeinit(oggpack_buffer *b); +extern int oggpack_writecheck(oggpack_buffer *b); +extern void oggpack_writetrunc(oggpack_buffer *b,long bits); +extern void oggpack_writealign(oggpack_buffer *b); +extern void oggpack_writecopy(oggpack_buffer *b,void *source,long bits); +extern void oggpack_reset(oggpack_buffer *b); +extern void oggpack_writeclear(oggpack_buffer *b); +extern void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); +extern void oggpack_write(oggpack_buffer *b,unsigned long value,int bits); +extern long oggpack_look(oggpack_buffer *b,int bits); +extern long oggpack_look1(oggpack_buffer *b); +extern void oggpack_adv(oggpack_buffer *b,int bits); +extern void oggpack_adv1(oggpack_buffer *b); +extern long oggpack_read(oggpack_buffer *b,int bits); +extern long oggpack_read1(oggpack_buffer *b); +extern long oggpack_bytes(oggpack_buffer *b); +extern long oggpack_bits(oggpack_buffer *b); +extern unsigned char *oggpack_get_buffer(oggpack_buffer *b); + +extern void oggpackB_writeinit(oggpack_buffer *b); +extern int oggpackB_writecheck(oggpack_buffer *b); +extern void oggpackB_writetrunc(oggpack_buffer *b,long bits); +extern void oggpackB_writealign(oggpack_buffer *b); +extern void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits); +extern void oggpackB_reset(oggpack_buffer *b); +extern void oggpackB_writeclear(oggpack_buffer *b); +extern void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); +extern void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits); +extern long oggpackB_look(oggpack_buffer *b,int bits); +extern long oggpackB_look1(oggpack_buffer *b); +extern void oggpackB_adv(oggpack_buffer *b,int bits); +extern void oggpackB_adv1(oggpack_buffer *b); +extern long oggpackB_read(oggpack_buffer *b,int bits); +extern long oggpackB_read1(oggpack_buffer *b); +extern long oggpackB_bytes(oggpack_buffer *b); +extern long oggpackB_bits(oggpack_buffer *b); +extern unsigned char *oggpackB_get_buffer(oggpack_buffer *b); + +/* Ogg BITSTREAM PRIMITIVES: encoding **************************/ + +extern int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op); +extern int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, + int count, long e_o_s, ogg_int64_t granulepos); +extern int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og); +extern int ogg_stream_pageout_fill(ogg_stream_state *os, ogg_page *og, int nfill); +extern int ogg_stream_flush(ogg_stream_state *os, ogg_page *og); +extern int ogg_stream_flush_fill(ogg_stream_state *os, ogg_page *og, int nfill); + +/* Ogg BITSTREAM PRIMITIVES: decoding **************************/ + +extern int ogg_sync_init(ogg_sync_state *oy); +extern int ogg_sync_clear(ogg_sync_state *oy); +extern int ogg_sync_reset(ogg_sync_state *oy); +extern int ogg_sync_destroy(ogg_sync_state *oy); +extern int ogg_sync_check(ogg_sync_state *oy); + +extern char *ogg_sync_buffer(ogg_sync_state *oy, long size); +extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes); +extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og); +extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); +extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); +extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); +extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op); + +/* Ogg BITSTREAM PRIMITIVES: general ***************************/ + +extern int ogg_stream_init(ogg_stream_state *os,int serialno); +extern int ogg_stream_clear(ogg_stream_state *os); +extern int ogg_stream_reset(ogg_stream_state *os); +extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno); +extern int ogg_stream_destroy(ogg_stream_state *os); +extern int ogg_stream_check(ogg_stream_state *os); +extern int ogg_stream_eos(ogg_stream_state *os); + +extern void ogg_page_checksum_set(ogg_page *og); + +extern int ogg_page_version(const ogg_page *og); +extern int ogg_page_continued(const ogg_page *og); +extern int ogg_page_bos(const ogg_page *og); +extern int ogg_page_eos(const ogg_page *og); +extern ogg_int64_t ogg_page_granulepos(const ogg_page *og); +extern int ogg_page_serialno(const ogg_page *og); +extern long ogg_page_pageno(const ogg_page *og); +extern int ogg_page_packets(const ogg_page *og); + +extern void ogg_packet_clear(ogg_packet *op); + + +#ifdef __cplusplus +} +#endif + +#endif /* _OGG_H */ diff --git a/Audio-Frameworks/bin/ogg/include/ogg/os_types.h b/Audio-Frameworks/bin/ogg/include/ogg/os_types.h new file mode 100644 index 0000000..d6691b7 --- /dev/null +++ b/Audio-Frameworks/bin/ogg/include/ogg/os_types.h @@ -0,0 +1,147 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: #ifdef jail to whip a few platforms into the UNIX ideal. + last mod: $Id: os_types.h 17712 2010-12-03 17:10:02Z xiphmont $ + + ********************************************************************/ +#ifndef _OS_TYPES_H +#define _OS_TYPES_H + +/* make it easy on the folks that want to compile the libs with a + different malloc than stdlib */ +#define _ogg_malloc malloc +#define _ogg_calloc calloc +#define _ogg_realloc realloc +#define _ogg_free free + +#if defined(_WIN32) + +# if defined(__CYGWIN__) +# include + typedef int16_t ogg_int16_t; + typedef uint16_t ogg_uint16_t; + typedef int32_t ogg_int32_t; + typedef uint32_t ogg_uint32_t; + typedef int64_t ogg_int64_t; + typedef uint64_t ogg_uint64_t; +# elif defined(__MINGW32__) +# include + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + typedef unsigned long long ogg_uint64_t; +# elif defined(__MWERKS__) + typedef long long ogg_int64_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; +# else + /* MSVC/Borland */ + typedef __int64 ogg_int64_t; + typedef __int32 ogg_int32_t; + typedef unsigned __int32 ogg_uint32_t; + typedef __int16 ogg_int16_t; + typedef unsigned __int16 ogg_uint16_t; +# endif + +#elif defined(__MACOS__) + +# include + typedef SInt16 ogg_int16_t; + typedef UInt16 ogg_uint16_t; + typedef SInt32 ogg_int32_t; + typedef UInt32 ogg_uint32_t; + typedef SInt64 ogg_int64_t; + +#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */ + +# include + typedef int16_t ogg_int16_t; + typedef uint16_t ogg_uint16_t; + typedef int32_t ogg_int32_t; + typedef uint32_t ogg_uint32_t; + typedef int64_t ogg_int64_t; + +#elif defined(__HAIKU__) + + /* Haiku */ +# include + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + +#elif defined(__BEOS__) + + /* Be */ +# include + typedef int16_t ogg_int16_t; + typedef uint16_t ogg_uint16_t; + typedef int32_t ogg_int32_t; + typedef uint32_t ogg_uint32_t; + typedef int64_t ogg_int64_t; + +#elif defined (__EMX__) + + /* OS/2 GCC */ + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + +#elif defined (DJGPP) + + /* DJGPP */ + typedef short ogg_int16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + +#elif defined(R5900) + + /* PS2 EE */ + typedef long ogg_int64_t; + typedef int ogg_int32_t; + typedef unsigned ogg_uint32_t; + typedef short ogg_int16_t; + +#elif defined(__SYMBIAN32__) + + /* Symbian GCC */ + typedef signed short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef signed int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long int ogg_int64_t; + +#elif defined(__TMS320C6X__) + + /* TI C64x compiler */ + typedef signed short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef signed int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long int ogg_int64_t; + +#else + +# include + +#endif + +#endif /* _OS_TYPES_H */ diff --git a/Audio-Frameworks/bin/ogg/libogg.a b/Audio-Frameworks/bin/ogg/libogg.a new file mode 100644 index 0000000000000000000000000000000000000000..d1ce8e72c7a0360ce6576783dcce2e93e79b6802 GIT binary patch literal 156044 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 + *

  • audio_frame is the audio data in opus_int16 (or float for opus_encode_float())
  • + *
  • frame_size is the duration of the frame in samples (per channel)
  • + *
  • packet is the byte array to which the compressed data is written
  • + *
  • max_packet is the maximum number of bytes that can be written in the packet (4000 bytes is recommended). + * Do not use max_packet to control VBR target bitrate, instead use the #OPUS_SET_BITRATE CTL.
  • + * + * + * opus_encode() and opus_encode_float() return the number of bytes actually written to the packet. + * The return value can be negative, which indicates that an error has occurred. If the return value + * is 1 byte, then the packet does not need to be transmitted (DTX). + * + * Once the encoder state if no longer needed, it can be destroyed with + * + * @code + * opus_encoder_destroy(enc); + * @endcode + * + * If the encoder was created with opus_encoder_init() rather than opus_encoder_create(), + * then no action is required aside from potentially freeing the memory that was manually + * allocated for it (calling free(enc) for the example above) + * + */ + +/** Opus encoder state. + * This contains the complete state of an Opus encoder. + * It is position independent and can be freely copied. + * @see opus_encoder_create,opus_encoder_init + */ +typedef struct OpusEncoder OpusEncoder; + +/** Gets the size of an OpusEncoder structure. + * @param[in] channels int: Number of channels. + * This must be 1 or 2. + * @returns The size in bytes. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_encoder_get_size(int channels); + +/** + */ + +/** Allocates and initializes an encoder state. + * There are three coding modes: + * + * @ref OPUS_APPLICATION_VOIP gives best quality at a given bitrate for voice + * signals. It enhances the input signal by high-pass filtering and + * emphasizing formants and harmonics. Optionally it includes in-band + * forward error correction to protect against packet loss. Use this + * mode for typical VoIP applications. Because of the enhancement, + * even at high bitrates the output may sound different from the input. + * + * @ref OPUS_APPLICATION_AUDIO gives best quality at a given bitrate for most + * non-voice signals like music. Use this mode for music and mixed + * (music/voice) content, broadcast, and applications requiring less + * than 15 ms of coding delay. + * + * @ref OPUS_APPLICATION_RESTRICTED_LOWDELAY configures low-delay mode that + * disables the speech-optimized mode in exchange for slightly reduced delay. + * This mode can only be set on an newly initialized or freshly reset encoder + * because it changes the codec delay. + * + * This is useful when the caller knows that the speech-optimized modes will not be needed (use with caution). + * @param [in] Fs opus_int32: Sampling rate of input signal (Hz) + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param [in] channels int: Number of channels (1 or 2) in input signal + * @param [in] application int: Coding mode (@ref OPUS_APPLICATION_VOIP/@ref OPUS_APPLICATION_AUDIO/@ref OPUS_APPLICATION_RESTRICTED_LOWDELAY) + * @param [out] error int*: @ref opus_errorcodes + * @note Regardless of the sampling rate and number channels selected, the Opus encoder + * can switch to a lower audio bandwidth or number of channels if the bitrate + * selected is too low. This also means that it is safe to always use 48 kHz stereo input + * and let the encoder optimize the encoding. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusEncoder *opus_encoder_create( + opus_int32 Fs, + int channels, + int application, + int *error +); + +/** Initializes a previously allocated encoder state + * The memory pointed to by st must be at least the size returned by opus_encoder_get_size(). + * This is intended for applications which use their own allocator instead of malloc. + * @see opus_encoder_create(),opus_encoder_get_size() + * To reset a previously initialized state, use the #OPUS_RESET_STATE CTL. + * @param [in] st OpusEncoder*: Encoder state + * @param [in] Fs opus_int32: Sampling rate of input signal (Hz) + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param [in] channels int: Number of channels (1 or 2) in input signal + * @param [in] application int: Coding mode (OPUS_APPLICATION_VOIP/OPUS_APPLICATION_AUDIO/OPUS_APPLICATION_RESTRICTED_LOWDELAY) + * @retval #OPUS_OK Success or @ref opus_errorcodes + */ +OPUS_EXPORT int opus_encoder_init( + OpusEncoder *st, + opus_int32 Fs, + int channels, + int application +) OPUS_ARG_NONNULL(1); + +/** Encodes an Opus frame. + * @param [in] st OpusEncoder*: Encoder state + * @param [in] pcm opus_int16*: Input signal (interleaved if 2 channels). length is frame_size*channels*sizeof(opus_int16) + * @param [in] frame_size int: Number of samples per channel in the + * input signal. + * This must be an Opus frame size for + * the encoder's sampling rate. + * For example, at 48 kHz the permitted + * values are 120, 240, 480, 960, 1920, + * and 2880. + * Passing in a duration of less than + * 10 ms (480 samples at 48 kHz) will + * prevent the encoder from using the LPC + * or hybrid modes. + * @param [out] data unsigned char*: Output payload. + * This must contain storage for at + * least \a max_data_bytes. + * @param [in] max_data_bytes opus_int32: Size of the allocated + * memory for the output + * payload. This may be + * used to impose an upper limit on + * the instant bitrate, but should + * not be used as the only bitrate + * control. Use #OPUS_SET_BITRATE to + * control the bitrate. + * @returns The length of the encoded packet (in bytes) on success or a + * negative error code (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_encode( + OpusEncoder *st, + const opus_int16 *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + +/** Encodes an Opus frame from floating point input. + * @param [in] st OpusEncoder*: Encoder state + * @param [in] pcm float*: Input in float format (interleaved if 2 channels), with a normal range of +/-1.0. + * Samples with a range beyond +/-1.0 are supported but will + * be clipped by decoders using the integer API and should + * only be used if it is known that the far end supports + * extended dynamic range. + * length is frame_size*channels*sizeof(float) + * @param [in] frame_size int: Number of samples per channel in the + * input signal. + * This must be an Opus frame size for + * the encoder's sampling rate. + * For example, at 48 kHz the permitted + * values are 120, 240, 480, 960, 1920, + * and 2880. + * Passing in a duration of less than + * 10 ms (480 samples at 48 kHz) will + * prevent the encoder from using the LPC + * or hybrid modes. + * @param [out] data unsigned char*: Output payload. + * This must contain storage for at + * least \a max_data_bytes. + * @param [in] max_data_bytes opus_int32: Size of the allocated + * memory for the output + * payload. This may be + * used to impose an upper limit on + * the instant bitrate, but should + * not be used as the only bitrate + * control. Use #OPUS_SET_BITRATE to + * control the bitrate. + * @returns The length of the encoded packet (in bytes) on success or a + * negative error code (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_encode_float( + OpusEncoder *st, + const float *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + +/** Frees an OpusEncoder allocated by opus_encoder_create(). + * @param[in] st OpusEncoder*: State to be freed. + */ +OPUS_EXPORT void opus_encoder_destroy(OpusEncoder *st); + +/** Perform a CTL function on an Opus encoder. + * + * Generally the request and subsequent arguments are generated + * by a convenience macro. + * @param st OpusEncoder*: Encoder state. + * @param request This and all remaining parameters should be replaced by one + * of the convenience macros in @ref opus_genericctls or + * @ref opus_encoderctls. + * @see opus_genericctls + * @see opus_encoderctls + */ +OPUS_EXPORT int opus_encoder_ctl(OpusEncoder *st, int request, ...) OPUS_ARG_NONNULL(1); +/**@}*/ + +/** @defgroup opus_decoder Opus Decoder + * @{ + * + * @brief This page describes the process and functions used to decode Opus. + * + * The decoding process also starts with creating a decoder + * state. This can be done with: + * @code + * int error; + * OpusDecoder *dec; + * dec = opus_decoder_create(Fs, channels, &error); + * @endcode + * where + * @li Fs is the sampling rate and must be 8000, 12000, 16000, 24000, or 48000 + * @li channels is the number of channels (1 or 2) + * @li error will hold the error code in case of failure (or #OPUS_OK on success) + * @li the return value is a newly created decoder state to be used for decoding + * + * While opus_decoder_create() allocates memory for the state, it's also possible + * to initialize pre-allocated memory: + * @code + * int size; + * int error; + * OpusDecoder *dec; + * size = opus_decoder_get_size(channels); + * dec = malloc(size); + * error = opus_decoder_init(dec, Fs, channels); + * @endcode + * where opus_decoder_get_size() returns the required size for the decoder state. Note that + * future versions of this code may change the size, so no assuptions should be made about it. + * + * The decoder state is always continuous in memory and only a shallow copy is sufficient + * to copy it (e.g. memcpy()) + * + * To decode a frame, opus_decode() or opus_decode_float() must be called with a packet of compressed audio data: + * @code + * frame_size = opus_decode(dec, packet, len, decoded, max_size, 0); + * @endcode + * where + * + * @li packet is the byte array containing the compressed data + * @li len is the exact number of bytes contained in the packet + * @li decoded is the decoded audio data in opus_int16 (or float for opus_decode_float()) + * @li max_size is the max duration of the frame in samples (per channel) that can fit into the decoded_frame array + * + * opus_decode() and opus_decode_float() return the number of samples (per channel) decoded from the packet. + * If that value is negative, then an error has occurred. This can occur if the packet is corrupted or if the audio + * buffer is too small to hold the decoded audio. + * + * Opus is a stateful codec with overlapping blocks and as a result Opus + * packets are not coded independently of each other. Packets must be + * passed into the decoder serially and in the correct order for a correct + * decode. Lost packets can be replaced with loss concealment by calling + * the decoder with a null pointer and zero length for the missing packet. + * + * A single codec state may only be accessed from a single thread at + * a time and any required locking must be performed by the caller. Separate + * streams must be decoded with separate decoder states and can be decoded + * in parallel unless the library was compiled with NONTHREADSAFE_PSEUDOSTACK + * defined. + * + */ + +/** Opus decoder state. + * This contains the complete state of an Opus decoder. + * It is position independent and can be freely copied. + * @see opus_decoder_create,opus_decoder_init + */ +typedef struct OpusDecoder OpusDecoder; + +/** Gets the size of an OpusDecoder structure. + * @param [in] channels int: Number of channels. + * This must be 1 or 2. + * @returns The size in bytes. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_decoder_get_size(int channels); + +/** Allocates and initializes a decoder state. + * @param [in] Fs opus_int32: Sample rate to decode at (Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param [in] channels int: Number of channels (1 or 2) to decode + * @param [out] error int*: #OPUS_OK Success or @ref opus_errorcodes + * + * Internally Opus stores data at 48000 Hz, so that should be the default + * value for Fs. However, the decoder can efficiently decode to buffers + * at 8, 12, 16, and 24 kHz so if for some reason the caller cannot use + * data at the full sample rate, or knows the compressed data doesn't + * use the full frequency range, it can request decoding at a reduced + * rate. Likewise, the decoder is capable of filling in either mono or + * interleaved stereo pcm buffers, at the caller's request. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusDecoder *opus_decoder_create( + opus_int32 Fs, + int channels, + int *error +); + +/** Initializes a previously allocated decoder state. + * The state must be at least the size returned by opus_decoder_get_size(). + * This is intended for applications which use their own allocator instead of malloc. @see opus_decoder_create,opus_decoder_get_size + * To reset a previously initialized state, use the #OPUS_RESET_STATE CTL. + * @param [in] st OpusDecoder*: Decoder state. + * @param [in] Fs opus_int32: Sampling rate to decode to (Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param [in] channels int: Number of channels (1 or 2) to decode + * @retval #OPUS_OK Success or @ref opus_errorcodes + */ +OPUS_EXPORT int opus_decoder_init( + OpusDecoder *st, + opus_int32 Fs, + int channels +) OPUS_ARG_NONNULL(1); + +/** Decode an Opus packet. + * @param [in] st OpusDecoder*: Decoder state + * @param [in] data char*: Input payload. Use a NULL pointer to indicate packet loss + * @param [in] len opus_int32: Number of bytes in payload* + * @param [out] pcm opus_int16*: Output signal (interleaved if 2 channels). length + * is frame_size*channels*sizeof(opus_int16) + * @param [in] frame_size Number of samples per channel of available space in \a pcm. + * If this is less than the maximum packet duration (120ms; 5760 for 48kHz), this function will + * not be capable of decoding some packets. In the case of PLC (data==NULL) or FEC (decode_fec=1), + * then frame_size needs to be exactly the duration of audio that is missing, otherwise the + * decoder will not be in the optimal state to decode the next incoming packet. For the PLC and + * FEC cases, frame_size must be a multiple of 2.5 ms. + * @param [in] decode_fec int: Flag (0 or 1) to request that any in-band forward error correction data be + * decoded. If no such data is available, the frame is decoded as if it were lost. + * @returns Number of decoded samples or @ref opus_errorcodes + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_decode( + OpusDecoder *st, + const unsigned char *data, + opus_int32 len, + opus_int16 *pcm, + int frame_size, + int decode_fec +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Decode an Opus packet with floating point output. + * @param [in] st OpusDecoder*: Decoder state + * @param [in] data char*: Input payload. Use a NULL pointer to indicate packet loss + * @param [in] len opus_int32: Number of bytes in payload + * @param [out] pcm float*: Output signal (interleaved if 2 channels). length + * is frame_size*channels*sizeof(float) + * @param [in] frame_size Number of samples per channel of available space in \a pcm. + * If this is less than the maximum packet duration (120ms; 5760 for 48kHz), this function will + * not be capable of decoding some packets. In the case of PLC (data==NULL) or FEC (decode_fec=1), + * then frame_size needs to be exactly the duration of audio that is missing, otherwise the + * decoder will not be in the optimal state to decode the next incoming packet. For the PLC and + * FEC cases, frame_size must be a multiple of 2.5 ms. + * @param [in] decode_fec int: Flag (0 or 1) to request that any in-band forward error correction data be + * decoded. If no such data is available the frame is decoded as if it were lost. + * @returns Number of decoded samples or @ref opus_errorcodes + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_decode_float( + OpusDecoder *st, + const unsigned char *data, + opus_int32 len, + float *pcm, + int frame_size, + int decode_fec +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Perform a CTL function on an Opus decoder. + * + * Generally the request and subsequent arguments are generated + * by a convenience macro. + * @param st OpusDecoder*: Decoder state. + * @param request This and all remaining parameters should be replaced by one + * of the convenience macros in @ref opus_genericctls or + * @ref opus_decoderctls. + * @see opus_genericctls + * @see opus_decoderctls + */ +OPUS_EXPORT int opus_decoder_ctl(OpusDecoder *st, int request, ...) OPUS_ARG_NONNULL(1); + +/** Frees an OpusDecoder allocated by opus_decoder_create(). + * @param[in] st OpusDecoder*: State to be freed. + */ +OPUS_EXPORT void opus_decoder_destroy(OpusDecoder *st); + +/** Parse an opus packet into one or more frames. + * Opus_decode will perform this operation internally so most applications do + * not need to use this function. + * This function does not copy the frames, the returned pointers are pointers into + * the input packet. + * @param [in] data char*: Opus packet to be parsed + * @param [in] len opus_int32: size of data + * @param [out] out_toc char*: TOC pointer + * @param [out] frames char*[48] encapsulated frames + * @param [out] size opus_int16[48] sizes of the encapsulated frames + * @param [out] payload_offset int*: returns the position of the payload within the packet (in bytes) + * @returns number of frames + */ +OPUS_EXPORT int opus_packet_parse( + const unsigned char *data, + opus_int32 len, + unsigned char *out_toc, + const unsigned char *frames[48], + opus_int16 size[48], + int *payload_offset +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Gets the bandwidth of an Opus packet. + * @param [in] data char*: Opus packet + * @retval OPUS_BANDWIDTH_NARROWBAND Narrowband (4kHz bandpass) + * @retval OPUS_BANDWIDTH_MEDIUMBAND Mediumband (6kHz bandpass) + * @retval OPUS_BANDWIDTH_WIDEBAND Wideband (8kHz bandpass) + * @retval OPUS_BANDWIDTH_SUPERWIDEBAND Superwideband (12kHz bandpass) + * @retval OPUS_BANDWIDTH_FULLBAND Fullband (20kHz bandpass) + * @retval OPUS_INVALID_PACKET The compressed data passed is corrupted or of an unsupported type + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_packet_get_bandwidth(const unsigned char *data) OPUS_ARG_NONNULL(1); + +/** Gets the number of samples per frame from an Opus packet. + * @param [in] data char*: Opus packet. + * This must contain at least one byte of + * data. + * @param [in] Fs opus_int32: Sampling rate in Hz. + * This must be a multiple of 400, or + * inaccurate results will be returned. + * @returns Number of samples per frame. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_packet_get_samples_per_frame(const unsigned char *data, opus_int32 Fs) OPUS_ARG_NONNULL(1); + +/** Gets the number of channels from an Opus packet. + * @param [in] data char*: Opus packet + * @returns Number of channels + * @retval OPUS_INVALID_PACKET The compressed data passed is corrupted or of an unsupported type + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_packet_get_nb_channels(const unsigned char *data) OPUS_ARG_NONNULL(1); + +/** Gets the number of frames in an Opus packet. + * @param [in] packet char*: Opus packet + * @param [in] len opus_int32: Length of packet + * @returns Number of frames + * @retval OPUS_BAD_ARG Insufficient data was passed to the function + * @retval OPUS_INVALID_PACKET The compressed data passed is corrupted or of an unsupported type + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_packet_get_nb_frames(const unsigned char packet[], opus_int32 len) OPUS_ARG_NONNULL(1); + +/** Gets the number of samples of an Opus packet. + * @param [in] packet char*: Opus packet + * @param [in] len opus_int32: Length of packet + * @param [in] Fs opus_int32: Sampling rate in Hz. + * This must be a multiple of 400, or + * inaccurate results will be returned. + * @returns Number of samples + * @retval OPUS_BAD_ARG Insufficient data was passed to the function + * @retval OPUS_INVALID_PACKET The compressed data passed is corrupted or of an unsupported type + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_packet_get_nb_samples(const unsigned char packet[], opus_int32 len, opus_int32 Fs) OPUS_ARG_NONNULL(1); + +/** Gets the number of samples of an Opus packet. + * @param [in] dec OpusDecoder*: Decoder state + * @param [in] packet char*: Opus packet + * @param [in] len opus_int32: Length of packet + * @returns Number of samples + * @retval OPUS_BAD_ARG Insufficient data was passed to the function + * @retval OPUS_INVALID_PACKET The compressed data passed is corrupted or of an unsupported type + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_decoder_get_nb_samples(const OpusDecoder *dec, const unsigned char packet[], opus_int32 len) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2); +/**@}*/ + +/** @defgroup opus_repacketizer Repacketizer + * @{ + * + * The repacketizer can be used to merge multiple Opus packets into a single + * packet or alternatively to split Opus packets that have previously been + * merged. Splitting valid Opus packets is always guaranteed to succeed, + * whereas merging valid packets only succeeds if all frames have the same + * mode, bandwidth, and frame size, and when the total duration of the merged + * packet is no more than 120 ms. + * The repacketizer currently only operates on elementary Opus + * streams. It will not manipualte multistream packets successfully, except in + * the degenerate case where they consist of data from a single stream. + * + * The repacketizing process starts with creating a repacketizer state, either + * by calling opus_repacketizer_create() or by allocating the memory yourself, + * e.g., + * @code + * OpusRepacketizer *rp; + * rp = (OpusRepacketizer*)malloc(opus_repacketizer_get_size()); + * if (rp != NULL) + * opus_repacketizer_init(rp); + * @endcode + * + * Then the application should submit packets with opus_repacketizer_cat(), + * extract new packets with opus_repacketizer_out() or + * opus_repacketizer_out_range(), and then reset the state for the next set of + * input packets via opus_repacketizer_init(). + * + * For example, to split a sequence of packets into individual frames: + * @code + * unsigned char *data; + * int len; + * while (get_next_packet(&data, &len)) + * { + * unsigned char out[1276]; + * opus_int32 out_len; + * int nb_frames; + * int err; + * int i; + * err = opus_repacketizer_cat(rp, data, len); + * if (err != OPUS_OK) + * { + * release_packet(data); + * return err; + * } + * nb_frames = opus_repacketizer_get_nb_frames(rp); + * for (i = 0; i < nb_frames; i++) + * { + * out_len = opus_repacketizer_out_range(rp, i, i+1, out, sizeof(out)); + * if (out_len < 0) + * { + * release_packet(data); + * return (int)out_len; + * } + * output_next_packet(out, out_len); + * } + * opus_repacketizer_init(rp); + * release_packet(data); + * } + * @endcode + * + * Alternatively, to combine a sequence of frames into packets that each + * contain up to TARGET_DURATION_MS milliseconds of data: + * @code + * // The maximum number of packets with duration TARGET_DURATION_MS occurs + * // when the frame size is 2.5 ms, for a total of (TARGET_DURATION_MS*2/5) + * // packets. + * unsigned char *data[(TARGET_DURATION_MS*2/5)+1]; + * opus_int32 len[(TARGET_DURATION_MS*2/5)+1]; + * int nb_packets; + * unsigned char out[1277*(TARGET_DURATION_MS*2/2)]; + * opus_int32 out_len; + * int prev_toc; + * nb_packets = 0; + * while (get_next_packet(data+nb_packets, len+nb_packets)) + * { + * int nb_frames; + * int err; + * nb_frames = opus_packet_get_nb_frames(data[nb_packets], len[nb_packets]); + * if (nb_frames < 1) + * { + * release_packets(data, nb_packets+1); + * return nb_frames; + * } + * nb_frames += opus_repacketizer_get_nb_frames(rp); + * // If adding the next packet would exceed our target, or it has an + * // incompatible TOC sequence, output the packets we already have before + * // submitting it. + * // N.B., The nb_packets > 0 check ensures we've submitted at least one + * // packet since the last call to opus_repacketizer_init(). Otherwise a + * // single packet longer than TARGET_DURATION_MS would cause us to try to + * // output an (invalid) empty packet. It also ensures that prev_toc has + * // been set to a valid value. Additionally, len[nb_packets] > 0 is + * // guaranteed by the call to opus_packet_get_nb_frames() above, so the + * // reference to data[nb_packets][0] should be valid. + * if (nb_packets > 0 && ( + * ((prev_toc & 0xFC) != (data[nb_packets][0] & 0xFC)) || + * opus_packet_get_samples_per_frame(data[nb_packets], 48000)*nb_frames > + * TARGET_DURATION_MS*48)) + * { + * out_len = opus_repacketizer_out(rp, out, sizeof(out)); + * if (out_len < 0) + * { + * release_packets(data, nb_packets+1); + * return (int)out_len; + * } + * output_next_packet(out, out_len); + * opus_repacketizer_init(rp); + * release_packets(data, nb_packets); + * data[0] = data[nb_packets]; + * len[0] = len[nb_packets]; + * nb_packets = 0; + * } + * err = opus_repacketizer_cat(rp, data[nb_packets], len[nb_packets]); + * if (err != OPUS_OK) + * { + * release_packets(data, nb_packets+1); + * return err; + * } + * prev_toc = data[nb_packets][0]; + * nb_packets++; + * } + * // Output the final, partial packet. + * if (nb_packets > 0) + * { + * out_len = opus_repacketizer_out(rp, out, sizeof(out)); + * release_packets(data, nb_packets); + * if (out_len < 0) + * return (int)out_len; + * output_next_packet(out, out_len); + * } + * @endcode + * + * An alternate way of merging packets is to simply call opus_repacketizer_cat() + * unconditionally until it fails. At that point, the merged packet can be + * obtained with opus_repacketizer_out() and the input packet for which + * opus_repacketizer_cat() needs to be re-added to a newly reinitialized + * repacketizer state. + */ + +typedef struct OpusRepacketizer OpusRepacketizer; + +/** Gets the size of an OpusRepacketizer structure. + * @returns The size in bytes. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_repacketizer_get_size(void); + +/** (Re)initializes a previously allocated repacketizer state. + * The state must be at least the size returned by opus_repacketizer_get_size(). + * This can be used for applications which use their own allocator instead of + * malloc(). + * It must also be called to reset the queue of packets waiting to be + * repacketized, which is necessary if the maximum packet duration of 120 ms + * is reached or if you wish to submit packets with a different Opus + * configuration (coding mode, audio bandwidth, frame size, or channel count). + * Failure to do so will prevent a new packet from being added with + * opus_repacketizer_cat(). + * @see opus_repacketizer_create + * @see opus_repacketizer_get_size + * @see opus_repacketizer_cat + * @param rp OpusRepacketizer*: The repacketizer state to + * (re)initialize. + * @returns A pointer to the same repacketizer state that was passed in. + */ +OPUS_EXPORT OpusRepacketizer *opus_repacketizer_init(OpusRepacketizer *rp) OPUS_ARG_NONNULL(1); + +/** Allocates memory and initializes the new repacketizer with + * opus_repacketizer_init(). + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusRepacketizer *opus_repacketizer_create(void); + +/** Frees an OpusRepacketizer allocated by + * opus_repacketizer_create(). + * @param[in] rp OpusRepacketizer*: State to be freed. + */ +OPUS_EXPORT void opus_repacketizer_destroy(OpusRepacketizer *rp); + +/** Add a packet to the current repacketizer state. + * This packet must match the configuration of any packets already submitted + * for repacketization since the last call to opus_repacketizer_init(). + * This means that it must have the same coding mode, audio bandwidth, frame + * size, and channel count. + * This can be checked in advance by examining the top 6 bits of the first + * byte of the packet, and ensuring they match the top 6 bits of the first + * byte of any previously submitted packet. + * The total duration of audio in the repacketizer state also must not exceed + * 120 ms, the maximum duration of a single packet, after adding this packet. + * + * The contents of the current repacketizer state can be extracted into new + * packets using opus_repacketizer_out() or opus_repacketizer_out_range(). + * + * In order to add a packet with a different configuration or to add more + * audio beyond 120 ms, you must clear the repacketizer state by calling + * opus_repacketizer_init(). + * If a packet is too large to add to the current repacketizer state, no part + * of it is added, even if it contains multiple frames, some of which might + * fit. + * If you wish to be able to add parts of such packets, you should first use + * another repacketizer to split the packet into pieces and add them + * individually. + * @see opus_repacketizer_out_range + * @see opus_repacketizer_out + * @see opus_repacketizer_init + * @param rp OpusRepacketizer*: The repacketizer state to which to + * add the packet. + * @param[in] data const unsigned char*: The packet data. + * The application must ensure + * this pointer remains valid + * until the next call to + * opus_repacketizer_init() or + * opus_repacketizer_destroy(). + * @param len opus_int32: The number of bytes in the packet data. + * @returns An error code indicating whether or not the operation succeeded. + * @retval #OPUS_OK The packet's contents have been added to the repacketizer + * state. + * @retval #OPUS_INVALID_PACKET The packet did not have a valid TOC sequence, + * the packet's TOC sequence was not compatible + * with previously submitted packets (because + * the coding mode, audio bandwidth, frame size, + * or channel count did not match), or adding + * this packet would increase the total amount of + * audio stored in the repacketizer state to more + * than 120 ms. + */ +OPUS_EXPORT int opus_repacketizer_cat(OpusRepacketizer *rp, const unsigned char *data, opus_int32 len) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2); + + +/** Construct a new packet from data previously submitted to the repacketizer + * state via opus_repacketizer_cat(). + * @param rp OpusRepacketizer*: The repacketizer state from which to + * construct the new packet. + * @param begin int: The index of the first frame in the current + * repacketizer state to include in the output. + * @param end int: One past the index of the last frame in the + * current repacketizer state to include in the + * output. + * @param[out] data const unsigned char*: The buffer in which to + * store the output packet. + * @param maxlen opus_int32: The maximum number of bytes to store in + * the output buffer. In order to guarantee + * success, this should be at least + * 1276 for a single frame, + * or for multiple frames, + * 1277*(end-begin). + * However, 1*(end-begin) plus + * the size of all packet data submitted to + * the repacketizer since the last call to + * opus_repacketizer_init() or + * opus_repacketizer_create() is also + * sufficient, and possibly much smaller. + * @returns The total size of the output packet on success, or an error code + * on failure. + * @retval #OPUS_BAD_ARG [begin,end) was an invalid range of + * frames (begin < 0, begin >= end, or end > + * opus_repacketizer_get_nb_frames()). + * @retval #OPUS_BUFFER_TOO_SMALL \a maxlen was insufficient to contain the + * complete output packet. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_repacketizer_out_range(OpusRepacketizer *rp, int begin, int end, unsigned char *data, opus_int32 maxlen) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Return the total number of frames contained in packet data submitted to + * the repacketizer state so far via opus_repacketizer_cat() since the last + * call to opus_repacketizer_init() or opus_repacketizer_create(). + * This defines the valid range of packets that can be extracted with + * opus_repacketizer_out_range() or opus_repacketizer_out(). + * @param rp OpusRepacketizer*: The repacketizer state containing the + * frames. + * @returns The total number of frames contained in the packet data submitted + * to the repacketizer state. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_repacketizer_get_nb_frames(OpusRepacketizer *rp) OPUS_ARG_NONNULL(1); + +/** Construct a new packet from data previously submitted to the repacketizer + * state via opus_repacketizer_cat(). + * This is a convenience routine that returns all the data submitted so far + * in a single packet. + * It is equivalent to calling + * @code + * opus_repacketizer_out_range(rp, 0, opus_repacketizer_get_nb_frames(rp), + * data, maxlen) + * @endcode + * @param rp OpusRepacketizer*: The repacketizer state from which to + * construct the new packet. + * @param[out] data const unsigned char*: The buffer in which to + * store the output packet. + * @param maxlen opus_int32: The maximum number of bytes to store in + * the output buffer. In order to guarantee + * success, this should be at least + * 1277*opus_repacketizer_get_nb_frames(rp). + * However, + * 1*opus_repacketizer_get_nb_frames(rp) + * plus the size of all packet data + * submitted to the repacketizer since the + * last call to opus_repacketizer_init() or + * opus_repacketizer_create() is also + * sufficient, and possibly much smaller. + * @returns The total size of the output packet on success, or an error code + * on failure. + * @retval #OPUS_BUFFER_TOO_SMALL \a maxlen was insufficient to contain the + * complete output packet. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_repacketizer_out(OpusRepacketizer *rp, unsigned char *data, opus_int32 maxlen) OPUS_ARG_NONNULL(1); + +/**@}*/ + +#ifdef __cplusplus +} +#endif + +#endif /* OPUS_H */ diff --git a/Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/A/Headers/opus_defines.h b/Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/A/Headers/opus_defines.h new file mode 100644 index 0000000..9fa3ccb --- /dev/null +++ b/Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/A/Headers/opus_defines.h @@ -0,0 +1,655 @@ +/* Copyright (c) 2010-2011 Xiph.Org Foundation, Skype Limited + Written by Jean-Marc Valin and Koen Vos */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** + * @file opus_defines.h + * @brief Opus reference implementation constants + */ + +#ifndef OPUS_DEFINES_H +#define OPUS_DEFINES_H + +#include "opus_types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @defgroup opus_errorcodes Error codes + * @{ + */ +/** No error @hideinitializer*/ +#define OPUS_OK 0 +/** One or more invalid/out of range arguments @hideinitializer*/ +#define OPUS_BAD_ARG -1 +/** The mode struct passed is invalid @hideinitializer*/ +#define OPUS_BUFFER_TOO_SMALL -2 +/** An internal error was detected @hideinitializer*/ +#define OPUS_INTERNAL_ERROR -3 +/** The compressed data passed is corrupted @hideinitializer*/ +#define OPUS_INVALID_PACKET -4 +/** Invalid/unsupported request number @hideinitializer*/ +#define OPUS_UNIMPLEMENTED -5 +/** An encoder or decoder structure is invalid or already freed @hideinitializer*/ +#define OPUS_INVALID_STATE -6 +/** Memory allocation has failed @hideinitializer*/ +#define OPUS_ALLOC_FAIL -7 +/**@}*/ + +/** @cond OPUS_INTERNAL_DOC */ +/**Export control for opus functions */ + +#ifndef OPUS_EXPORT +# if defined(WIN32) +# ifdef OPUS_BUILD +# define OPUS_EXPORT __declspec(dllexport) +# else +# define OPUS_EXPORT +# endif +# elif defined(__GNUC__) && defined(OPUS_BUILD) +# define OPUS_EXPORT __attribute__ ((visibility ("default"))) +# else +# define OPUS_EXPORT +# endif +#endif + +# if !defined(OPUS_GNUC_PREREQ) +# if defined(__GNUC__)&&defined(__GNUC_MINOR__) +# define OPUS_GNUC_PREREQ(_maj,_min) \ + ((__GNUC__<<16)+__GNUC_MINOR__>=((_maj)<<16)+(_min)) +# else +# define OPUS_GNUC_PREREQ(_maj,_min) 0 +# endif +# endif + +#if (!defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L) ) +# if OPUS_GNUC_PREREQ(3,0) +# define OPUS_RESTRICT __restrict__ +# elif (defined(_MSC_VER) && _MSC_VER >= 1400) +# define OPUS_RESTRICT __restrict +# else +# define OPUS_RESTRICT +# endif +#else +# define OPUS_RESTRICT restrict +#endif + +/**Warning attributes for opus functions + * NONNULL is not used in OPUS_BUILD to avoid the compiler optimizing out + * some paranoid null checks. */ +#if defined(__GNUC__) && OPUS_GNUC_PREREQ(3, 4) +# define OPUS_WARN_UNUSED_RESULT __attribute__ ((__warn_unused_result__)) +#else +# define OPUS_WARN_UNUSED_RESULT +#endif +#if !defined(OPUS_BUILD) && defined(__GNUC__) && OPUS_GNUC_PREREQ(3, 4) +# define OPUS_ARG_NONNULL(_x) __attribute__ ((__nonnull__(_x))) +#else +# define OPUS_ARG_NONNULL(_x) +#endif + +/** These are the actual Encoder CTL ID numbers. + * They should not be used directly by applications. + * In general, SETs should be even and GETs should be odd.*/ +#define OPUS_SET_APPLICATION_REQUEST 4000 +#define OPUS_GET_APPLICATION_REQUEST 4001 +#define OPUS_SET_BITRATE_REQUEST 4002 +#define OPUS_GET_BITRATE_REQUEST 4003 +#define OPUS_SET_MAX_BANDWIDTH_REQUEST 4004 +#define OPUS_GET_MAX_BANDWIDTH_REQUEST 4005 +#define OPUS_SET_VBR_REQUEST 4006 +#define OPUS_GET_VBR_REQUEST 4007 +#define OPUS_SET_BANDWIDTH_REQUEST 4008 +#define OPUS_GET_BANDWIDTH_REQUEST 4009 +#define OPUS_SET_COMPLEXITY_REQUEST 4010 +#define OPUS_GET_COMPLEXITY_REQUEST 4011 +#define OPUS_SET_INBAND_FEC_REQUEST 4012 +#define OPUS_GET_INBAND_FEC_REQUEST 4013 +#define OPUS_SET_PACKET_LOSS_PERC_REQUEST 4014 +#define OPUS_GET_PACKET_LOSS_PERC_REQUEST 4015 +#define OPUS_SET_DTX_REQUEST 4016 +#define OPUS_GET_DTX_REQUEST 4017 +#define OPUS_SET_VBR_CONSTRAINT_REQUEST 4020 +#define OPUS_GET_VBR_CONSTRAINT_REQUEST 4021 +#define OPUS_SET_FORCE_CHANNELS_REQUEST 4022 +#define OPUS_GET_FORCE_CHANNELS_REQUEST 4023 +#define OPUS_SET_SIGNAL_REQUEST 4024 +#define OPUS_GET_SIGNAL_REQUEST 4025 +#define OPUS_GET_LOOKAHEAD_REQUEST 4027 +/* #define OPUS_RESET_STATE 4028 */ +#define OPUS_GET_SAMPLE_RATE_REQUEST 4029 +#define OPUS_GET_FINAL_RANGE_REQUEST 4031 +#define OPUS_GET_PITCH_REQUEST 4033 +#define OPUS_SET_GAIN_REQUEST 4034 +#define OPUS_GET_GAIN_REQUEST 4045 /* Should have been 4035 */ +#define OPUS_SET_LSB_DEPTH_REQUEST 4036 +#define OPUS_GET_LSB_DEPTH_REQUEST 4037 + +#define OPUS_GET_LAST_PACKET_DURATION_REQUEST 4039 + +/* Don't use 4045, it's already taken by OPUS_GET_GAIN_REQUEST */ + +/* Macros to trigger compilation errors when the wrong types are provided to a CTL */ +#define __opus_check_int(x) (((void)((x) == (opus_int32)0)), (opus_int32)(x)) +#define __opus_check_int_ptr(ptr) ((ptr) + ((ptr) - (opus_int32*)(ptr))) +#define __opus_check_uint_ptr(ptr) ((ptr) + ((ptr) - (opus_uint32*)(ptr))) +/** @endcond */ + +/** @defgroup opus_ctlvalues Pre-defined values for CTL interface + * @see opus_genericctls, opus_encoderctls + * @{ + */ +/* Values for the various encoder CTLs */ +#define OPUS_AUTO -1000 /**opus_int32: Allowed values: 0-10, inclusive. + * + * @hideinitializer */ +#define OPUS_SET_COMPLEXITY(x) OPUS_SET_COMPLEXITY_REQUEST, __opus_check_int(x) +/** Gets the encoder's complexity configuration. + * @see OPUS_SET_COMPLEXITY + * @param[out] x opus_int32 *: Returns a value in the range 0-10, + * inclusive. + * @hideinitializer */ +#define OPUS_GET_COMPLEXITY(x) OPUS_GET_COMPLEXITY_REQUEST, __opus_check_int_ptr(x) + +/** Configures the bitrate in the encoder. + * Rates from 500 to 512000 bits per second are meaningful, as well as the + * special values #OPUS_AUTO and #OPUS_BITRATE_MAX. + * The value #OPUS_BITRATE_MAX can be used to cause the codec to use as much + * rate as it can, which is useful for controlling the rate by adjusting the + * output buffer size. + * @see OPUS_GET_BITRATE + * @param[in] x opus_int32: Bitrate in bits per second. The default + * is determined based on the number of + * channels and the input sampling rate. + * @hideinitializer */ +#define OPUS_SET_BITRATE(x) OPUS_SET_BITRATE_REQUEST, __opus_check_int(x) +/** Gets the encoder's bitrate configuration. + * @see OPUS_SET_BITRATE + * @param[out] x opus_int32 *: Returns the bitrate in bits per second. + * The default is determined based on the + * number of channels and the input + * sampling rate. + * @hideinitializer */ +#define OPUS_GET_BITRATE(x) OPUS_GET_BITRATE_REQUEST, __opus_check_int_ptr(x) + +/** Enables or disables variable bitrate (VBR) in the encoder. + * The configured bitrate may not be met exactly because frames must + * be an integer number of bytes in length. + * @warning Only the MDCT mode of Opus can provide hard CBR behavior. + * @see OPUS_GET_VBR + * @see OPUS_SET_VBR_CONSTRAINT + * @param[in] x opus_int32: Allowed values: + *
    + *
    0
    Hard CBR. For LPC/hybrid modes at very low bit-rate, this can + * cause noticeable quality degradation.
    + *
    1
    VBR (default). The exact type of VBR is controlled by + * #OPUS_SET_VBR_CONSTRAINT.
    + *
    + * @hideinitializer */ +#define OPUS_SET_VBR(x) OPUS_SET_VBR_REQUEST, __opus_check_int(x) +/** Determine if variable bitrate (VBR) is enabled in the encoder. + * @see OPUS_SET_VBR + * @see OPUS_GET_VBR_CONSTRAINT + * @param[out] x opus_int32 *: Returns one of the following values: + *
    + *
    0
    Hard CBR.
    + *
    1
    VBR (default). The exact type of VBR may be retrieved via + * #OPUS_GET_VBR_CONSTRAINT.
    + *
    + * @hideinitializer */ +#define OPUS_GET_VBR(x) OPUS_GET_VBR_REQUEST, __opus_check_int_ptr(x) + +/** Enables or disables constrained VBR in the encoder. + * This setting is ignored when the encoder is in CBR mode. + * @warning Only the MDCT mode of Opus currently heeds the constraint. + * Speech mode ignores it completely, hybrid mode may fail to obey it + * if the LPC layer uses more bitrate than the constraint would have + * permitted. + * @see OPUS_GET_VBR_CONSTRAINT + * @see OPUS_SET_VBR + * @param[in] x opus_int32: Allowed values: + *
    + *
    0
    Unconstrained VBR.
    + *
    1
    Constrained VBR (default). This creates a maximum of one + * frame of buffering delay assuming a transport with a + * serialization speed of the nominal bitrate.
    + *
    + * @hideinitializer */ +#define OPUS_SET_VBR_CONSTRAINT(x) OPUS_SET_VBR_CONSTRAINT_REQUEST, __opus_check_int(x) +/** Determine if constrained VBR is enabled in the encoder. + * @see OPUS_SET_VBR_CONSTRAINT + * @see OPUS_GET_VBR + * @param[out] x opus_int32 *: Returns one of the following values: + *
    + *
    0
    Unconstrained VBR.
    + *
    1
    Constrained VBR (default).
    + *
    + * @hideinitializer */ +#define OPUS_GET_VBR_CONSTRAINT(x) OPUS_GET_VBR_CONSTRAINT_REQUEST, __opus_check_int_ptr(x) + +/** Configures mono/stereo forcing in the encoder. + * This can force the encoder to produce packets encoded as either mono or + * stereo, regardless of the format of the input audio. This is useful when + * the caller knows that the input signal is currently a mono source embedded + * in a stereo stream. + * @see OPUS_GET_FORCE_CHANNELS + * @param[in] x opus_int32: Allowed values: + *
    + *
    #OPUS_AUTO
    Not forced (default)
    + *
    1
    Forced mono
    + *
    2
    Forced stereo
    + *
    + * @hideinitializer */ +#define OPUS_SET_FORCE_CHANNELS(x) OPUS_SET_FORCE_CHANNELS_REQUEST, __opus_check_int(x) +/** Gets the encoder's forced channel configuration. + * @see OPUS_SET_FORCE_CHANNELS + * @param[out] x opus_int32 *: + *
    + *
    #OPUS_AUTO
    Not forced (default)
    + *
    1
    Forced mono
    + *
    2
    Forced stereo
    + *
    + * @hideinitializer */ +#define OPUS_GET_FORCE_CHANNELS(x) OPUS_GET_FORCE_CHANNELS_REQUEST, __opus_check_int_ptr(x) + +/** Configures the maximum bandpass that the encoder will select automatically. + * Applications should normally use this instead of #OPUS_SET_BANDWIDTH + * (leaving that set to the default, #OPUS_AUTO). This allows the + * application to set an upper bound based on the type of input it is + * providing, but still gives the encoder the freedom to reduce the bandpass + * when the bitrate becomes too low, for better overall quality. + * @see OPUS_GET_MAX_BANDWIDTH + * @param[in] x opus_int32: Allowed values: + *
    + *
    OPUS_BANDWIDTH_NARROWBAND
    4 kHz passband
    + *
    OPUS_BANDWIDTH_MEDIUMBAND
    6 kHz passband
    + *
    OPUS_BANDWIDTH_WIDEBAND
    8 kHz passband
    + *
    OPUS_BANDWIDTH_SUPERWIDEBAND
    12 kHz passband
    + *
    OPUS_BANDWIDTH_FULLBAND
    20 kHz passband (default)
    + *
    + * @hideinitializer */ +#define OPUS_SET_MAX_BANDWIDTH(x) OPUS_SET_MAX_BANDWIDTH_REQUEST, __opus_check_int(x) + +/** Gets the encoder's configured maximum allowed bandpass. + * @see OPUS_SET_MAX_BANDWIDTH + * @param[out] x opus_int32 *: Allowed values: + *
    + *
    #OPUS_BANDWIDTH_NARROWBAND
    4 kHz passband
    + *
    #OPUS_BANDWIDTH_MEDIUMBAND
    6 kHz passband
    + *
    #OPUS_BANDWIDTH_WIDEBAND
    8 kHz passband
    + *
    #OPUS_BANDWIDTH_SUPERWIDEBAND
    12 kHz passband
    + *
    #OPUS_BANDWIDTH_FULLBAND
    20 kHz passband (default)
    + *
    + * @hideinitializer */ +#define OPUS_GET_MAX_BANDWIDTH(x) OPUS_GET_MAX_BANDWIDTH_REQUEST, __opus_check_int_ptr(x) + +/** Sets the encoder's bandpass to a specific value. + * This prevents the encoder from automatically selecting the bandpass based + * on the available bitrate. If an application knows the bandpass of the input + * audio it is providing, it should normally use #OPUS_SET_MAX_BANDWIDTH + * instead, which still gives the encoder the freedom to reduce the bandpass + * when the bitrate becomes too low, for better overall quality. + * @see OPUS_GET_BANDWIDTH + * @param[in] x opus_int32: Allowed values: + *
    + *
    #OPUS_AUTO
    (default)
    + *
    #OPUS_BANDWIDTH_NARROWBAND
    4 kHz passband
    + *
    #OPUS_BANDWIDTH_MEDIUMBAND
    6 kHz passband
    + *
    #OPUS_BANDWIDTH_WIDEBAND
    8 kHz passband
    + *
    #OPUS_BANDWIDTH_SUPERWIDEBAND
    12 kHz passband
    + *
    #OPUS_BANDWIDTH_FULLBAND
    20 kHz passband
    + *
    + * @hideinitializer */ +#define OPUS_SET_BANDWIDTH(x) OPUS_SET_BANDWIDTH_REQUEST, __opus_check_int(x) + +/** Configures the type of signal being encoded. + * This is a hint which helps the encoder's mode selection. + * @see OPUS_GET_SIGNAL + * @param[in] x opus_int32: Allowed values: + *
    + *
    #OPUS_AUTO
    (default)
    + *
    #OPUS_SIGNAL_VOICE
    Bias thresholds towards choosing LPC or Hybrid modes.
    + *
    #OPUS_SIGNAL_MUSIC
    Bias thresholds towards choosing MDCT modes.
    + *
    + * @hideinitializer */ +#define OPUS_SET_SIGNAL(x) OPUS_SET_SIGNAL_REQUEST, __opus_check_int(x) +/** Gets the encoder's configured signal type. + * @see OPUS_SET_SIGNAL + * @param[out] x opus_int32 *: Returns one of the following values: + *
    + *
    #OPUS_AUTO
    (default)
    + *
    #OPUS_SIGNAL_VOICE
    Bias thresholds towards choosing LPC or Hybrid modes.
    + *
    #OPUS_SIGNAL_MUSIC
    Bias thresholds towards choosing MDCT modes.
    + *
    + * @hideinitializer */ +#define OPUS_GET_SIGNAL(x) OPUS_GET_SIGNAL_REQUEST, __opus_check_int_ptr(x) + + +/** Configures the encoder's intended application. + * The initial value is a mandatory argument to the encoder_create function. + * @see OPUS_GET_APPLICATION + * @param[in] x opus_int32: Returns one of the following values: + *
    + *
    #OPUS_APPLICATION_VOIP
    + *
    Process signal for improved speech intelligibility.
    + *
    #OPUS_APPLICATION_AUDIO
    + *
    Favor faithfulness to the original input.
    + *
    #OPUS_APPLICATION_RESTRICTED_LOWDELAY
    + *
    Configure the minimum possible coding delay by disabling certain modes + * of operation.
    + *
    + * @hideinitializer */ +#define OPUS_SET_APPLICATION(x) OPUS_SET_APPLICATION_REQUEST, __opus_check_int(x) +/** Gets the encoder's configured application. + * @see OPUS_SET_APPLICATION + * @param[out] x opus_int32 *: Returns one of the following values: + *
    + *
    #OPUS_APPLICATION_VOIP
    + *
    Process signal for improved speech intelligibility.
    + *
    #OPUS_APPLICATION_AUDIO
    + *
    Favor faithfulness to the original input.
    + *
    #OPUS_APPLICATION_RESTRICTED_LOWDELAY
    + *
    Configure the minimum possible coding delay by disabling certain modes + * of operation.
    + *
    + * @hideinitializer */ +#define OPUS_GET_APPLICATION(x) OPUS_GET_APPLICATION_REQUEST, __opus_check_int_ptr(x) + +/** Gets the sampling rate the encoder or decoder was initialized with. + * This simply returns the Fs value passed to opus_encoder_init() + * or opus_decoder_init(). + * @param[out] x opus_int32 *: Sampling rate of encoder or decoder. + * @hideinitializer + */ +#define OPUS_GET_SAMPLE_RATE(x) OPUS_GET_SAMPLE_RATE_REQUEST, __opus_check_int_ptr(x) + +/** Gets the total samples of delay added by the entire codec. + * This can be queried by the encoder and then the provided number of samples can be + * skipped on from the start of the decoder's output to provide time aligned input + * and output. From the perspective of a decoding application the real data begins this many + * samples late. + * + * The decoder contribution to this delay is identical for all decoders, but the + * encoder portion of the delay may vary from implementation to implementation, + * version to version, or even depend on the encoder's initial configuration. + * Applications needing delay compensation should call this CTL rather than + * hard-coding a value. + * @param[out] x opus_int32 *: Number of lookahead samples + * @hideinitializer */ +#define OPUS_GET_LOOKAHEAD(x) OPUS_GET_LOOKAHEAD_REQUEST, __opus_check_int_ptr(x) + +/** Configures the encoder's use of inband forward error correction (FEC). + * @note This is only applicable to the LPC layer + * @see OPUS_GET_INBAND_FEC + * @param[in] x opus_int32: Allowed values: + *
    + *
    0
    Disable inband FEC (default).
    + *
    1
    Enable inband FEC.
    + *
    + * @hideinitializer */ +#define OPUS_SET_INBAND_FEC(x) OPUS_SET_INBAND_FEC_REQUEST, __opus_check_int(x) +/** Gets encoder's configured use of inband forward error correction. + * @see OPUS_SET_INBAND_FEC + * @param[out] x opus_int32 *: Returns one of the following values: + *
    + *
    0
    Inband FEC disabled (default).
    + *
    1
    Inband FEC enabled.
    + *
    + * @hideinitializer */ +#define OPUS_GET_INBAND_FEC(x) OPUS_GET_INBAND_FEC_REQUEST, __opus_check_int_ptr(x) + +/** Configures the encoder's expected packet loss percentage. + * Higher values with trigger progressively more loss resistant behavior in the encoder + * at the expense of quality at a given bitrate in the lossless case, but greater quality + * under loss. + * @see OPUS_GET_PACKET_LOSS_PERC + * @param[in] x opus_int32: Loss percentage in the range 0-100, inclusive (default: 0). + * @hideinitializer */ +#define OPUS_SET_PACKET_LOSS_PERC(x) OPUS_SET_PACKET_LOSS_PERC_REQUEST, __opus_check_int(x) +/** Gets the encoder's configured packet loss percentage. + * @see OPUS_SET_PACKET_LOSS_PERC + * @param[out] x opus_int32 *: Returns the configured loss percentage + * in the range 0-100, inclusive (default: 0). + * @hideinitializer */ +#define OPUS_GET_PACKET_LOSS_PERC(x) OPUS_GET_PACKET_LOSS_PERC_REQUEST, __opus_check_int_ptr(x) + +/** Configures the encoder's use of discontinuous transmission (DTX). + * @note This is only applicable to the LPC layer + * @see OPUS_GET_DTX + * @param[in] x opus_int32: Allowed values: + *
    + *
    0
    Disable DTX (default).
    + *
    1
    Enabled DTX.
    + *
    + * @hideinitializer */ +#define OPUS_SET_DTX(x) OPUS_SET_DTX_REQUEST, __opus_check_int(x) +/** Gets encoder's configured use of discontinuous transmission. + * @see OPUS_SET_DTX + * @param[out] x opus_int32 *: Returns one of the following values: + *
    + *
    0
    DTX disabled (default).
    + *
    1
    DTX enabled.
    + *
    + * @hideinitializer */ +#define OPUS_GET_DTX(x) OPUS_GET_DTX_REQUEST, __opus_check_int_ptr(x) +/** Configures the depth of signal being encoded. + * This is a hint which helps the encoder identify silence and near-silence. + * @see OPUS_GET_LSB_DEPTH + * @param[in] x opus_int32: Input precision in bits, between 8 and 24 + * (default: 24). + * @hideinitializer */ +#define OPUS_SET_LSB_DEPTH(x) OPUS_SET_LSB_DEPTH_REQUEST, __opus_check_int(x) +/** Gets the encoder's configured signal depth. + * @see OPUS_SET_LSB_DEPTH + * @param[out] x opus_int32 *: Input precision in bits, between 8 and + * 24 (default: 24). + * @hideinitializer */ +#define OPUS_GET_LSB_DEPTH(x) OPUS_GET_LSB_DEPTH_REQUEST, __opus_check_int_ptr(x) + +/** Gets the duration (in samples) of the last packet successfully decoded or concealed. + * @param[out] x opus_int32 *: Number of samples (at current sampling rate). + * @hideinitializer */ +#define OPUS_GET_LAST_PACKET_DURATION(x) OPUS_GET_LAST_PACKET_DURATION_REQUEST, __opus_check_int_ptr(x) +/**@}*/ + +/** @defgroup opus_genericctls Generic CTLs + * + * These macros are used with the \c opus_decoder_ctl and + * \c opus_encoder_ctl calls to generate a particular + * request. + * + * When called on an \c OpusDecoder they apply to that + * particular decoder instance. When called on an + * \c OpusEncoder they apply to the corresponding setting + * on that encoder instance, if present. + * + * Some usage examples: + * + * @code + * int ret; + * opus_int32 pitch; + * ret = opus_decoder_ctl(dec_ctx, OPUS_GET_PITCH(&pitch)); + * if (ret == OPUS_OK) return ret; + * + * opus_encoder_ctl(enc_ctx, OPUS_RESET_STATE); + * opus_decoder_ctl(dec_ctx, OPUS_RESET_STATE); + * + * opus_int32 enc_bw, dec_bw; + * opus_encoder_ctl(enc_ctx, OPUS_GET_BANDWIDTH(&enc_bw)); + * opus_decoder_ctl(dec_ctx, OPUS_GET_BANDWIDTH(&dec_bw)); + * if (enc_bw != dec_bw) { + * printf("packet bandwidth mismatch!\n"); + * } + * @endcode + * + * @see opus_encoder, opus_decoder_ctl, opus_encoder_ctl, opus_decoderctls, opus_encoderctls + * @{ + */ + +/** Resets the codec state to be equivalent to a freshly initialized state. + * This should be called when switching streams in order to prevent + * the back to back decoding from giving different results from + * one at a time decoding. + * @hideinitializer */ +#define OPUS_RESET_STATE 4028 + +/** Gets the final state of the codec's entropy coder. + * This is used for testing purposes, + * The encoder and decoder state should be identical after coding a payload + * (assuming no data corruption or software bugs) + * + * @param[out] x opus_uint32 *: Entropy coder state + * + * @hideinitializer */ +#define OPUS_GET_FINAL_RANGE(x) OPUS_GET_FINAL_RANGE_REQUEST, __opus_check_uint_ptr(x) + +/** Gets the pitch of the last decoded frame, if available. + * This can be used for any post-processing algorithm requiring the use of pitch, + * e.g. time stretching/shortening. If the last frame was not voiced, or if the + * pitch was not coded in the frame, then zero is returned. + * + * This CTL is only implemented for decoder instances. + * + * @param[out] x opus_int32 *: pitch period at 48 kHz (or 0 if not available) + * + * @hideinitializer */ +#define OPUS_GET_PITCH(x) OPUS_GET_PITCH_REQUEST, __opus_check_int_ptr(x) + +/** Gets the encoder's configured bandpass or the decoder's last bandpass. + * @see OPUS_SET_BANDWIDTH + * @param[out] x opus_int32 *: Returns one of the following values: + *
    + *
    #OPUS_AUTO
    (default)
    + *
    #OPUS_BANDWIDTH_NARROWBAND
    4 kHz passband
    + *
    #OPUS_BANDWIDTH_MEDIUMBAND
    6 kHz passband
    + *
    #OPUS_BANDWIDTH_WIDEBAND
    8 kHz passband
    + *
    #OPUS_BANDWIDTH_SUPERWIDEBAND
    12 kHz passband
    + *
    #OPUS_BANDWIDTH_FULLBAND
    20 kHz passband
    + *
    + * @hideinitializer */ +#define OPUS_GET_BANDWIDTH(x) OPUS_GET_BANDWIDTH_REQUEST, __opus_check_int_ptr(x) + +/**@}*/ + +/** @defgroup opus_decoderctls Decoder related CTLs + * @see opus_genericctls, opus_encoderctls, opus_decoder + * @{ + */ + +/** Configures decoder gain adjustment. + * Scales the decoded output by a factor specified in Q8 dB units. + * This has a maximum range of -32768 to 32767 inclusive, and returns + * OPUS_BAD_ARG otherwise. The default is zero indicating no adjustment. + * This setting survives decoder reset. + * + * gain = pow(10, x/(20.0*256)) + * + * @param[in] x opus_int32: Amount to scale PCM signal by in Q8 dB units. + * @hideinitializer */ +#define OPUS_SET_GAIN(x) OPUS_SET_GAIN_REQUEST, __opus_check_int(x) +/** Gets the decoder's configured gain adjustment. @see OPUS_SET_GAIN + * + * @param[out] x opus_int32 *: Amount to scale PCM signal by in Q8 dB units. + * @hideinitializer */ +#define OPUS_GET_GAIN(x) OPUS_GET_GAIN_REQUEST, __opus_check_int_ptr(x) + +/**@}*/ + +/** @defgroup opus_libinfo Opus library information functions + * @{ + */ + +/** Converts an opus error code into a human readable string. + * + * @param[in] error int: Error number + * @returns Error string + */ +OPUS_EXPORT const char *opus_strerror(int error); + +/** Gets the libopus version string. + * + * @returns Version string + */ +OPUS_EXPORT const char *opus_get_version_string(void); +/**@}*/ + +#ifdef __cplusplus +} +#endif + +#endif /* OPUS_DEFINES_H */ diff --git a/Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/A/Headers/opus_multistream.h b/Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/A/Headers/opus_multistream.h new file mode 100644 index 0000000..ae59979 --- /dev/null +++ b/Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/A/Headers/opus_multistream.h @@ -0,0 +1,660 @@ +/* Copyright (c) 2011 Xiph.Org Foundation + Written by Jean-Marc Valin */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** + * @file opus_multistream.h + * @brief Opus reference implementation multistream API + */ + +#ifndef OPUS_MULTISTREAM_H +#define OPUS_MULTISTREAM_H + +#include "opus.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @cond OPUS_INTERNAL_DOC */ + +/** Macros to trigger compilation errors when the wrong types are provided to a + * CTL. */ +/**@{*/ +#define __opus_check_encstate_ptr(ptr) ((ptr) + ((ptr) - (OpusEncoder**)(ptr))) +#define __opus_check_decstate_ptr(ptr) ((ptr) + ((ptr) - (OpusDecoder**)(ptr))) +/**@}*/ + +/** These are the actual encoder and decoder CTL ID numbers. + * They should not be used directly by applications. + * In general, SETs should be even and GETs should be odd.*/ +/**@{*/ +#define OPUS_MULTISTREAM_GET_ENCODER_STATE_REQUEST 5120 +#define OPUS_MULTISTREAM_GET_DECODER_STATE_REQUEST 5122 +/**@}*/ + +/** @endcond */ + +/** @defgroup opus_multistream_ctls Multistream specific encoder and decoder CTLs + * + * These are convenience macros that are specific to the + * opus_multistream_encoder_ctl() and opus_multistream_decoder_ctl() + * interface. + * The CTLs from @ref opus_genericctls, @ref opus_encoderctls, and + * @ref opus_decoderctls may be applied to a multistream encoder or decoder as + * well. + * In addition, you may retrieve the encoder or decoder state for an specific + * stream via #OPUS_MULTISTREAM_GET_ENCODER_STATE or + * #OPUS_MULTISTREAM_GET_DECODER_STATE and apply CTLs to it individually. + */ +/**@{*/ + +/** Gets the encoder state for an individual stream of a multistream encoder. + * @param[in] x opus_int32: The index of the stream whose encoder you + * wish to retrieve. + * This must be non-negative and less than + * the streams parameter used + * to initialize the encoder. + * @param[out] y OpusEncoder**: Returns a pointer to the given + * encoder state. + * @retval OPUS_BAD_ARG The index of the requested stream was out of range. + * @hideinitializer + */ +#define OPUS_MULTISTREAM_GET_ENCODER_STATE(x,y) OPUS_MULTISTREAM_GET_ENCODER_STATE_REQUEST, __opus_check_int(x), __opus_check_encstate_ptr(y) + +/** Gets the decoder state for an individual stream of a multistream decoder. + * @param[in] x opus_int32: The index of the stream whose decoder you + * wish to retrieve. + * This must be non-negative and less than + * the streams parameter used + * to initialize the decoder. + * @param[out] y OpusDecoder**: Returns a pointer to the given + * decoder state. + * @retval OPUS_BAD_ARG The index of the requested stream was out of range. + * @hideinitializer + */ +#define OPUS_MULTISTREAM_GET_DECODER_STATE(x,y) OPUS_MULTISTREAM_GET_DECODER_STATE_REQUEST, __opus_check_int(x), __opus_check_decstate_ptr(y) + +/**@}*/ + +/** @defgroup opus_multistream Opus Multistream API + * @{ + * + * The multistream API allows individual Opus streams to be combined into a + * single packet, enabling support for up to 255 channels. Unlike an + * elementary Opus stream, the encoder and decoder must negotiate the channel + * configuration before the decoder can successfully interpret the data in the + * packets produced by the encoder. Some basic information, such as packet + * duration, can be computed without any special negotiation. + * + * The format for multistream Opus packets is defined in the + *
    Ogg + * encapsulation specification and is based on the self-delimited Opus + * framing described in Appendix B of RFC 6716. + * Normal Opus packets are just a degenerate case of multistream Opus packets, + * and can be encoded or decoded with the multistream API by setting + * streams to 1 when initializing the encoder or + * decoder. + * + * Multistream Opus streams can contain up to 255 elementary Opus streams. + * These may be either "uncoupled" or "coupled", indicating that the decoder + * is configured to decode them to either 1 or 2 channels, respectively. + * The streams are ordered so that all coupled streams appear at the + * beginning. + * + * A mapping table defines which decoded channel i + * should be used for each input/output (I/O) channel j. This table is + * typically provided as an unsigned char array. + * Let i = mapping[j] be the index for I/O channel j. + * If i < 2*coupled_streams, then I/O channel j is + * encoded as the left channel of stream (i/2) if i + * is even, or as the right channel of stream (i/2) if + * i is odd. Otherwise, I/O channel j is encoded as + * mono in stream (i - coupled_streams), unless it has the special + * value 255, in which case it is omitted from the encoding entirely (the + * decoder will reproduce it as silence). Each value i must either + * be the special value 255 or be less than streams + coupled_streams. + * + * The output channels specified by the encoder + * should use the + * Vorbis + * channel ordering. A decoder may wish to apply an additional permutation + * to the mapping the encoder used to achieve a different output channel + * order (e.g. for outputing in WAV order). + * + * Each multistream packet contains an Opus packet for each stream, and all of + * the Opus packets in a single multistream packet must have the same + * duration. Therefore the duration of a multistream packet can be extracted + * from the TOC sequence of the first stream, which is located at the + * beginning of the packet, just like an elementary Opus stream: + * + * @code + * int nb_samples; + * int nb_frames; + * nb_frames = opus_packet_get_nb_frames(data, len); + * if (nb_frames < 1) + * return nb_frames; + * nb_samples = opus_packet_get_samples_per_frame(data, 48000) * nb_frames; + * @endcode + * + * The general encoding and decoding process proceeds exactly the same as in + * the normal @ref opus_encoder and @ref opus_decoder APIs. + * See their documentation for an overview of how to use the corresponding + * multistream functions. + */ + +/** Opus multistream encoder state. + * This contains the complete state of a multistream Opus encoder. + * It is position independent and can be freely copied. + * @see opus_multistream_encoder_create + * @see opus_multistream_encoder_init + */ +typedef struct OpusMSEncoder OpusMSEncoder; + +/** Opus multistream decoder state. + * This contains the complete state of a multistream Opus decoder. + * It is position independent and can be freely copied. + * @see opus_multistream_decoder_create + * @see opus_multistream_decoder_init + */ +typedef struct OpusMSDecoder OpusMSDecoder; + +/**\name Multistream encoder functions */ +/**@{*/ + +/** Gets the size of an OpusMSEncoder structure. + * @param streams int: The total number of streams to encode from the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number of coupled (2 channel) streams + * to encode. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * encoded channels (streams + + * coupled_streams) must be no + * more than 255. + * @returns The size in bytes on success, or a negative error code + * (see @ref opus_errorcodes) on error. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_multistream_encoder_get_size( + int streams, + int coupled_streams +); + +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_multistream_surround_encoder_get_size( + int channels, + int mapping_family +); + + +/** Allocates and initializes a multistream encoder state. + * Call opus_multistream_encoder_destroy() to release + * this object when finished. + * @param Fs opus_int32: Sampling rate of the input signal (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels in the input signal. + * This must be at most 255. + * It may be greater than the number of + * coded channels (streams + + * coupled_streams). + * @param streams int: The total number of streams to encode from the + * input. + * This must be no more than the number of channels. + * @param coupled_streams int: Number of coupled (2 channel) streams + * to encode. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * encoded channels (streams + + * coupled_streams) must be no + * more than the number of input channels. + * @param[in] mapping const unsigned char[channels]: Mapping from + * encoded channels to input channels, as described in + * @ref opus_multistream. As an extra constraint, the + * multistream encoder does not allow encoding coupled + * streams for which one channel is unused since this + * is never a good idea. + * @param application int: The target encoder application. + * This must be one of the following: + *
    + *
    #OPUS_APPLICATION_VOIP
    + *
    Process signal for improved speech intelligibility.
    + *
    #OPUS_APPLICATION_AUDIO
    + *
    Favor faithfulness to the original input.
    + *
    #OPUS_APPLICATION_RESTRICTED_LOWDELAY
    + *
    Configure the minimum possible coding delay by disabling certain modes + * of operation.
    + *
    + * @param[out] error int *: Returns #OPUS_OK on success, or an error + * code (see @ref opus_errorcodes) on + * failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusMSEncoder *opus_multistream_encoder_create( + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + const unsigned char *mapping, + int application, + int *error +) OPUS_ARG_NONNULL(5); + +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusMSEncoder *opus_multistream_surround_encoder_create( + opus_int32 Fs, + int channels, + int mapping_family, + int *streams, + int *coupled_streams, + unsigned char *mapping, + int application, + int *error +) OPUS_ARG_NONNULL(5); + +/** Initialize a previously allocated multistream encoder state. + * The memory pointed to by \a st must be at least the size returned by + * opus_multistream_encoder_get_size(). + * This is intended for applications which use their own allocator instead of + * malloc. + * To reset a previously initialized state, use the #OPUS_RESET_STATE CTL. + * @see opus_multistream_encoder_create + * @see opus_multistream_encoder_get_size + * @param st OpusMSEncoder*: Multistream encoder state to initialize. + * @param Fs opus_int32: Sampling rate of the input signal (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels in the input signal. + * This must be at most 255. + * It may be greater than the number of + * coded channels (streams + + * coupled_streams). + * @param streams int: The total number of streams to encode from the + * input. + * This must be no more than the number of channels. + * @param coupled_streams int: Number of coupled (2 channel) streams + * to encode. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * encoded channels (streams + + * coupled_streams) must be no + * more than the number of input channels. + * @param[in] mapping const unsigned char[channels]: Mapping from + * encoded channels to input channels, as described in + * @ref opus_multistream. As an extra constraint, the + * multistream encoder does not allow encoding coupled + * streams for which one channel is unused since this + * is never a good idea. + * @param application int: The target encoder application. + * This must be one of the following: + *
    + *
    #OPUS_APPLICATION_VOIP
    + *
    Process signal for improved speech intelligibility.
    + *
    #OPUS_APPLICATION_AUDIO
    + *
    Favor faithfulness to the original input.
    + *
    #OPUS_APPLICATION_RESTRICTED_LOWDELAY
    + *
    Configure the minimum possible coding delay by disabling certain modes + * of operation.
    + *
    + * @returns #OPUS_OK on success, or an error code (see @ref opus_errorcodes) + * on failure. + */ +OPUS_EXPORT int opus_multistream_encoder_init( + OpusMSEncoder *st, + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + const unsigned char *mapping, + int application +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(6); + +OPUS_EXPORT int opus_multistream_surround_encoder_init( + OpusMSEncoder *st, + opus_int32 Fs, + int channels, + int mapping_family, + int *streams, + int *coupled_streams, + unsigned char *mapping, + int application +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(6); + +/** Encodes a multistream Opus frame. + * @param st OpusMSEncoder*: Multistream encoder state. + * @param[in] pcm const opus_int16*: The input signal as interleaved + * samples. + * This must contain + * frame_size*channels + * samples. + * @param frame_size int: Number of samples per channel in the input + * signal. + * This must be an Opus frame size for the + * encoder's sampling rate. + * For example, at 48 kHz the permitted values + * are 120, 240, 480, 960, 1920, and 2880. + * Passing in a duration of less than 10 ms + * (480 samples at 48 kHz) will prevent the + * encoder from using the LPC or hybrid modes. + * @param[out] data unsigned char*: Output payload. + * This must contain storage for at + * least \a max_data_bytes. + * @param [in] max_data_bytes opus_int32: Size of the allocated + * memory for the output + * payload. This may be + * used to impose an upper limit on + * the instant bitrate, but should + * not be used as the only bitrate + * control. Use #OPUS_SET_BITRATE to + * control the bitrate. + * @returns The length of the encoded packet (in bytes) on success or a + * negative error code (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_multistream_encode( + OpusMSEncoder *st, + const opus_int16 *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + +/** Encodes a multistream Opus frame from floating point input. + * @param st OpusMSEncoder*: Multistream encoder state. + * @param[in] pcm const float*: The input signal as interleaved + * samples with a normal range of + * +/-1.0. + * Samples with a range beyond +/-1.0 + * are supported but will be clipped by + * decoders using the integer API and + * should only be used if it is known + * that the far end supports extended + * dynamic range. + * This must contain + * frame_size*channels + * samples. + * @param frame_size int: Number of samples per channel in the input + * signal. + * This must be an Opus frame size for the + * encoder's sampling rate. + * For example, at 48 kHz the permitted values + * are 120, 240, 480, 960, 1920, and 2880. + * Passing in a duration of less than 10 ms + * (480 samples at 48 kHz) will prevent the + * encoder from using the LPC or hybrid modes. + * @param[out] data unsigned char*: Output payload. + * This must contain storage for at + * least \a max_data_bytes. + * @param [in] max_data_bytes opus_int32: Size of the allocated + * memory for the output + * payload. This may be + * used to impose an upper limit on + * the instant bitrate, but should + * not be used as the only bitrate + * control. Use #OPUS_SET_BITRATE to + * control the bitrate. + * @returns The length of the encoded packet (in bytes) on success or a + * negative error code (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_multistream_encode_float( + OpusMSEncoder *st, + const float *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + +/** Frees an OpusMSEncoder allocated by + * opus_multistream_encoder_create(). + * @param st OpusMSEncoder*: Multistream encoder state to be freed. + */ +OPUS_EXPORT void opus_multistream_encoder_destroy(OpusMSEncoder *st); + +/** Perform a CTL function on a multistream Opus encoder. + * + * Generally the request and subsequent arguments are generated by a + * convenience macro. + * @param st OpusMSEncoder*: Multistream encoder state. + * @param request This and all remaining parameters should be replaced by one + * of the convenience macros in @ref opus_genericctls, + * @ref opus_encoderctls, or @ref opus_multistream_ctls. + * @see opus_genericctls + * @see opus_encoderctls + * @see opus_multistream_ctls + */ +OPUS_EXPORT int opus_multistream_encoder_ctl(OpusMSEncoder *st, int request, ...) OPUS_ARG_NONNULL(1); + +/**@}*/ + +/**\name Multistream decoder functions */ +/**@{*/ + +/** Gets the size of an OpusMSDecoder structure. + * @param streams int: The total number of streams coded in the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number streams to decode as coupled + * (2 channel) streams. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * coded channels (streams + + * coupled_streams) must be no + * more than 255. + * @returns The size in bytes on success, or a negative error code + * (see @ref opus_errorcodes) on error. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_multistream_decoder_get_size( + int streams, + int coupled_streams +); + +/** Allocates and initializes a multistream decoder state. + * Call opus_multistream_decoder_destroy() to release + * this object when finished. + * @param Fs opus_int32: Sampling rate to decode at (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels to output. + * This must be at most 255. + * It may be different from the number of coded + * channels (streams + + * coupled_streams). + * @param streams int: The total number of streams coded in the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number of streams to decode as coupled + * (2 channel) streams. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * coded channels (streams + + * coupled_streams) must be no + * more than 255. + * @param[in] mapping const unsigned char[channels]: Mapping from + * coded channels to output channels, as described in + * @ref opus_multistream. + * @param[out] error int *: Returns #OPUS_OK on success, or an error + * code (see @ref opus_errorcodes) on + * failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusMSDecoder *opus_multistream_decoder_create( + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + const unsigned char *mapping, + int *error +) OPUS_ARG_NONNULL(5); + +/** Intialize a previously allocated decoder state object. + * The memory pointed to by \a st must be at least the size returned by + * opus_multistream_encoder_get_size(). + * This is intended for applications which use their own allocator instead of + * malloc. + * To reset a previously initialized state, use the #OPUS_RESET_STATE CTL. + * @see opus_multistream_decoder_create + * @see opus_multistream_deocder_get_size + * @param st OpusMSEncoder*: Multistream encoder state to initialize. + * @param Fs opus_int32: Sampling rate to decode at (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels to output. + * This must be at most 255. + * It may be different from the number of coded + * channels (streams + + * coupled_streams). + * @param streams int: The total number of streams coded in the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number of streams to decode as coupled + * (2 channel) streams. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * coded channels (streams + + * coupled_streams) must be no + * more than 255. + * @param[in] mapping const unsigned char[channels]: Mapping from + * coded channels to output channels, as described in + * @ref opus_multistream. + * @returns #OPUS_OK on success, or an error code (see @ref opus_errorcodes) + * on failure. + */ +OPUS_EXPORT int opus_multistream_decoder_init( + OpusMSDecoder *st, + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + const unsigned char *mapping +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(6); + +/** Decode a multistream Opus packet. + * @param st OpusMSDecoder*: Multistream decoder state. + * @param[in] data const unsigned char*: Input payload. + * Use a NULL + * pointer to indicate packet + * loss. + * @param len opus_int32: Number of bytes in payload. + * @param[out] pcm opus_int16*: Output signal, with interleaved + * samples. + * This must contain room for + * frame_size*channels + * samples. + * @param frame_size int: The number of samples per channel of + * available space in \a pcm. + * If this is less than the maximum packet duration + * (120 ms; 5760 for 48kHz), this function will not be capable + * of decoding some packets. In the case of PLC (data==NULL) + * or FEC (decode_fec=1), then frame_size needs to be exactly + * the duration of audio that is missing, otherwise the + * decoder will not be in the optimal state to decode the + * next incoming packet. For the PLC and FEC cases, frame_size + * must be a multiple of 2.5 ms. + * @param decode_fec int: Flag (0 or 1) to request that any in-band + * forward error correction data be decoded. + * If no such data is available, the frame is + * decoded as if it were lost. + * @returns Number of samples decoded on success or a negative error code + * (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_multistream_decode( + OpusMSDecoder *st, + const unsigned char *data, + opus_int32 len, + opus_int16 *pcm, + int frame_size, + int decode_fec +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Decode a multistream Opus packet with floating point output. + * @param st OpusMSDecoder*: Multistream decoder state. + * @param[in] data const unsigned char*: Input payload. + * Use a NULL + * pointer to indicate packet + * loss. + * @param len opus_int32: Number of bytes in payload. + * @param[out] pcm opus_int16*: Output signal, with interleaved + * samples. + * This must contain room for + * frame_size*channels + * samples. + * @param frame_size int: The number of samples per channel of + * available space in \a pcm. + * If this is less than the maximum packet duration + * (120 ms; 5760 for 48kHz), this function will not be capable + * of decoding some packets. In the case of PLC (data==NULL) + * or FEC (decode_fec=1), then frame_size needs to be exactly + * the duration of audio that is missing, otherwise the + * decoder will not be in the optimal state to decode the + * next incoming packet. For the PLC and FEC cases, frame_size + * must be a multiple of 2.5 ms. + * @param decode_fec int: Flag (0 or 1) to request that any in-band + * forward error correction data be decoded. + * If no such data is available, the frame is + * decoded as if it were lost. + * @returns Number of samples decoded on success or a negative error code + * (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_multistream_decode_float( + OpusMSDecoder *st, + const unsigned char *data, + opus_int32 len, + float *pcm, + int frame_size, + int decode_fec +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Perform a CTL function on a multistream Opus decoder. + * + * Generally the request and subsequent arguments are generated by a + * convenience macro. + * @param st OpusMSDecoder*: Multistream decoder state. + * @param request This and all remaining parameters should be replaced by one + * of the convenience macros in @ref opus_genericctls, + * @ref opus_decoderctls, or @ref opus_multistream_ctls. + * @see opus_genericctls + * @see opus_decoderctls + * @see opus_multistream_ctls + */ +OPUS_EXPORT int opus_multistream_decoder_ctl(OpusMSDecoder *st, int request, ...) OPUS_ARG_NONNULL(1); + +/** Frees an OpusMSDecoder allocated by + * opus_multistream_decoder_create(). + * @param st OpusMSDecoder: Multistream decoder state to be freed. + */ +OPUS_EXPORT void opus_multistream_decoder_destroy(OpusMSDecoder *st); + +/**@}*/ + +/**@}*/ + +#ifdef __cplusplus +} +#endif + +#endif /* OPUS_MULTISTREAM_H */ diff --git a/Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/A/Headers/opus_types.h b/Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/A/Headers/opus_types.h new file mode 100644 index 0000000..b28e03a --- /dev/null +++ b/Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/A/Headers/opus_types.h @@ -0,0 +1,159 @@ +/* (C) COPYRIGHT 1994-2002 Xiph.Org Foundation */ +/* Modified by Jean-Marc Valin */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +/* opus_types.h based on ogg_types.h from libogg */ + +/** + @file opus_types.h + @brief Opus reference implementation types +*/ +#ifndef OPUS_TYPES_H +#define OPUS_TYPES_H + +/* Use the real stdint.h if it's there (taken from Paul Hsieh's pstdint.h) */ +#if (defined(__STDC__) && __STDC__ && __STDC_VERSION__ >= 199901L) || (defined(__GNUC__) && (defined(_STDINT_H) || defined(_STDINT_H_)) || defined (HAVE_STDINT_H)) +#include + + typedef int16_t opus_int16; + typedef uint16_t opus_uint16; + typedef int32_t opus_int32; + typedef uint32_t opus_uint32; +#elif defined(_WIN32) + +# if defined(__CYGWIN__) +# include <_G_config.h> + typedef _G_int32_t opus_int32; + typedef _G_uint32_t opus_uint32; + typedef _G_int16 opus_int16; + typedef _G_uint16 opus_uint16; +# elif defined(__MINGW32__) + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef int opus_int32; + typedef unsigned int opus_uint32; +# elif defined(__MWERKS__) + typedef int opus_int32; + typedef unsigned int opus_uint32; + typedef short opus_int16; + typedef unsigned short opus_uint16; +# else + /* MSVC/Borland */ + typedef __int32 opus_int32; + typedef unsigned __int32 opus_uint32; + typedef __int16 opus_int16; + typedef unsigned __int16 opus_uint16; +# endif + +#elif defined(__MACOS__) + +# include + typedef SInt16 opus_int16; + typedef UInt16 opus_uint16; + typedef SInt32 opus_int32; + typedef UInt32 opus_uint32; + +#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */ + +# include + typedef int16_t opus_int16; + typedef u_int16_t opus_uint16; + typedef int32_t opus_int32; + typedef u_int32_t opus_uint32; + +#elif defined(__BEOS__) + + /* Be */ +# include + typedef int16 opus_int16; + typedef u_int16 opus_uint16; + typedef int32_t opus_int32; + typedef u_int32_t opus_uint32; + +#elif defined (__EMX__) + + /* OS/2 GCC */ + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef int opus_int32; + typedef unsigned int opus_uint32; + +#elif defined (DJGPP) + + /* DJGPP */ + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef int opus_int32; + typedef unsigned int opus_uint32; + +#elif defined(R5900) + + /* PS2 EE */ + typedef int opus_int32; + typedef unsigned opus_uint32; + typedef short opus_int16; + typedef unsigned short opus_uint16; + +#elif defined(__SYMBIAN32__) + + /* Symbian GCC */ + typedef signed short opus_int16; + typedef unsigned short opus_uint16; + typedef signed int opus_int32; + typedef unsigned int opus_uint32; + +#elif defined(CONFIG_TI_C54X) || defined (CONFIG_TI_C55X) + + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef long opus_int32; + typedef unsigned long opus_uint32; + +#elif defined(CONFIG_TI_C6X) + + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef int opus_int32; + typedef unsigned int opus_uint32; + +#else + + /* Give up, take a reasonable guess */ + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef int opus_int32; + typedef unsigned int opus_uint32; + +#endif + +#define opus_int int /* used for counters etc; at least 16 bits */ +#define opus_int64 long long +#define opus_int8 signed char + +#define opus_uint unsigned int /* used for counters etc; at least 16 bits */ +#define opus_uint64 unsigned long long +#define opus_uint8 unsigned char + +#endif /* OPUS_TYPES_H */ diff --git a/Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/A/Opus b/Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/A/Opus new file mode 100755 index 0000000000000000000000000000000000000000..f6fa580b13139d59be0c0c5302d4732bd33739e9 GIT binary patch literal 326384 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

    fEX?1r(VRfUIf%C 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

    scS8I@Nc6lkiN?{UJ?SgO!9|p!7B5Bv|6I1yEvp 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‰wK>N*_R|4FJ}3xWu^$4K24o?p2P9F@&d@6F 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 iVoab~J<0JU|rn4B!c}|xzmh(;K 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 + + + + BuildMachineOSBuild + 12F37 + CFBundleDevelopmentRegion + English + CFBundleExecutable + Opus + CFBundleIdentifier + com.ap4y.Opus.Opus + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Opus + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 5A1413 + DTPlatformVersion + GM + DTSDKBuild + 12D75 + DTSDKName + macosx10.8 + DTXcode + 0500 + DTXcodeBuild + 5A1413 + NSHumanReadableCopyright + Copyright © 2013 Arthur Evstifeev. All rights reserved. + + diff --git a/Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/Current b/Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/Current new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ b/Audio-Frameworks/bin/opus/MacOS/Opus.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/Audio-Frameworks/bin/opus/Opus.framework/Headers b/Audio-Frameworks/bin/opus/Opus.framework/Headers new file mode 120000 index 0000000..a177d2a --- /dev/null +++ b/Audio-Frameworks/bin/opus/Opus.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/Audio-Frameworks/bin/opus/Opus.framework/Opus b/Audio-Frameworks/bin/opus/Opus.framework/Opus new file mode 120000 index 0000000..e38fe46 --- /dev/null +++ b/Audio-Frameworks/bin/opus/Opus.framework/Opus @@ -0,0 +1 @@ +Versions/Current/Opus \ No newline at end of file diff --git a/Audio-Frameworks/bin/opus/Opus.framework/Resources b/Audio-Frameworks/bin/opus/Opus.framework/Resources new file mode 120000 index 0000000..953ee36 --- /dev/null +++ b/Audio-Frameworks/bin/opus/Opus.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/Audio-Frameworks/bin/opus/Opus.framework/Versions/A/Headers/opus.h b/Audio-Frameworks/bin/opus/Opus.framework/Versions/A/Headers/opus.h new file mode 100644 index 0000000..ce86038 --- /dev/null +++ b/Audio-Frameworks/bin/opus/Opus.framework/Versions/A/Headers/opus.h @@ -0,0 +1,906 @@ +/* Copyright (c) 2010-2011 Xiph.Org Foundation, Skype Limited + Written by Jean-Marc Valin and Koen Vos */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** + * @file opus.h + * @brief Opus reference implementation API + */ + +#ifndef OPUS_H +#define OPUS_H + +#include "opus_types.h" +#include "opus_defines.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @mainpage Opus + * + * The Opus codec is designed for interactive speech and audio transmission over the Internet. + * It is designed by the IETF Codec Working Group and incorporates technology from + * Skype's SILK codec and Xiph.Org's CELT codec. + * + * The Opus codec is designed to handle a wide range of interactive audio applications, + * including Voice over IP, videoconferencing, in-game chat, and even remote live music + * performances. It can scale from low bit-rate narrowband speech to very high quality + * stereo music. Its main features are: + + * @li Sampling rates from 8 to 48 kHz + * @li Bit-rates from 6 kb/s to 510 kb/s + * @li Support for both constant bit-rate (CBR) and variable bit-rate (VBR) + * @li Audio bandwidth from narrowband to full-band + * @li Support for speech and music + * @li Support for mono and stereo + * @li Support for multichannel (up to 255 channels) + * @li Frame sizes from 2.5 ms to 60 ms + * @li Good loss robustness and packet loss concealment (PLC) + * @li Floating point and fixed-point implementation + * + * Documentation sections: + * @li @ref opus_encoder + * @li @ref opus_decoder + * @li @ref opus_repacketizer + * @li @ref opus_multistream + * @li @ref opus_libinfo + * @li @ref opus_custom + */ + +/** @defgroup opus_encoder Opus Encoder + * @{ + * + * @brief This page describes the process and functions used to encode Opus. + * + * Since Opus is a stateful codec, the encoding process starts with creating an encoder + * state. This can be done with: + * + * @code + * int error; + * OpusEncoder *enc; + * enc = opus_encoder_create(Fs, channels, application, &error); + * @endcode + * + * From this point, @c enc can be used for encoding an audio stream. An encoder state + * @b must @b not be used for more than one stream at the same time. Similarly, the encoder + * state @b must @b not be re-initialized for each frame. + * + * While opus_encoder_create() allocates memory for the state, it's also possible + * to initialize pre-allocated memory: + * + * @code + * int size; + * int error; + * OpusEncoder *enc; + * size = opus_encoder_get_size(channels); + * enc = malloc(size); + * error = opus_encoder_init(enc, Fs, channels, application); + * @endcode + * + * where opus_encoder_get_size() returns the required size for the encoder state. Note that + * future versions of this code may change the size, so no assuptions should be made about it. + * + * The encoder state is always continuous in memory and only a shallow copy is sufficient + * to copy it (e.g. memcpy()) + * + * It is possible to change some of the encoder's settings using the opus_encoder_ctl() + * interface. All these settings already default to the recommended value, so they should + * only be changed when necessary. The most common settings one may want to change are: + * + * @code + * opus_encoder_ctl(enc, OPUS_SET_BITRATE(bitrate)); + * opus_encoder_ctl(enc, OPUS_SET_COMPLEXITY(complexity)); + * opus_encoder_ctl(enc, OPUS_SET_SIGNAL(signal_type)); + * @endcode + * + * where + * + * @arg bitrate is in bits per second (b/s) + * @arg complexity is a value from 1 to 10, where 1 is the lowest complexity and 10 is the highest + * @arg signal_type is either OPUS_AUTO (default), OPUS_SIGNAL_VOICE, or OPUS_SIGNAL_MUSIC + * + * See @ref opus_encoderctls and @ref opus_genericctls for a complete list of parameters that can be set or queried. Most parameters can be set or changed at any time during a stream. + * + * To encode a frame, opus_encode() or opus_encode_float() must be called with exactly one frame (2.5, 5, 10, 20, 40 or 60 ms) of audio data: + * @code + * len = opus_encode(enc, audio_frame, frame_size, packet, max_packet); + * @endcode + * + * where + *

      + *
    • audio_frame is the audio data in opus_int16 (or float for opus_encode_float())
    • + *
    • frame_size is the duration of the frame in samples (per channel)
    • + *
    • packet is the byte array to which the compressed data is written
    • + *
    • max_packet is the maximum number of bytes that can be written in the packet (4000 bytes is recommended). + * Do not use max_packet to control VBR target bitrate, instead use the #OPUS_SET_BITRATE CTL.
    • + *
    + * + * opus_encode() and opus_encode_float() return the number of bytes actually written to the packet. + * The return value can be negative, which indicates that an error has occurred. If the return value + * is 1 byte, then the packet does not need to be transmitted (DTX). + * + * Once the encoder state if no longer needed, it can be destroyed with + * + * @code + * opus_encoder_destroy(enc); + * @endcode + * + * If the encoder was created with opus_encoder_init() rather than opus_encoder_create(), + * then no action is required aside from potentially freeing the memory that was manually + * allocated for it (calling free(enc) for the example above) + * + */ + +/** Opus encoder state. + * This contains the complete state of an Opus encoder. + * It is position independent and can be freely copied. + * @see opus_encoder_create,opus_encoder_init + */ +typedef struct OpusEncoder OpusEncoder; + +/** Gets the size of an OpusEncoder structure. + * @param[in] channels int: Number of channels. + * This must be 1 or 2. + * @returns The size in bytes. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_encoder_get_size(int channels); + +/** + */ + +/** Allocates and initializes an encoder state. + * There are three coding modes: + * + * @ref OPUS_APPLICATION_VOIP gives best quality at a given bitrate for voice + * signals. It enhances the input signal by high-pass filtering and + * emphasizing formants and harmonics. Optionally it includes in-band + * forward error correction to protect against packet loss. Use this + * mode for typical VoIP applications. Because of the enhancement, + * even at high bitrates the output may sound different from the input. + * + * @ref OPUS_APPLICATION_AUDIO gives best quality at a given bitrate for most + * non-voice signals like music. Use this mode for music and mixed + * (music/voice) content, broadcast, and applications requiring less + * than 15 ms of coding delay. + * + * @ref OPUS_APPLICATION_RESTRICTED_LOWDELAY configures low-delay mode that + * disables the speech-optimized mode in exchange for slightly reduced delay. + * This mode can only be set on an newly initialized or freshly reset encoder + * because it changes the codec delay. + * + * This is useful when the caller knows that the speech-optimized modes will not be needed (use with caution). + * @param [in] Fs opus_int32: Sampling rate of input signal (Hz) + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param [in] channels int: Number of channels (1 or 2) in input signal + * @param [in] application int: Coding mode (@ref OPUS_APPLICATION_VOIP/@ref OPUS_APPLICATION_AUDIO/@ref OPUS_APPLICATION_RESTRICTED_LOWDELAY) + * @param [out] error int*: @ref opus_errorcodes + * @note Regardless of the sampling rate and number channels selected, the Opus encoder + * can switch to a lower audio bandwidth or number of channels if the bitrate + * selected is too low. This also means that it is safe to always use 48 kHz stereo input + * and let the encoder optimize the encoding. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusEncoder *opus_encoder_create( + opus_int32 Fs, + int channels, + int application, + int *error +); + +/** Initializes a previously allocated encoder state + * The memory pointed to by st must be at least the size returned by opus_encoder_get_size(). + * This is intended for applications which use their own allocator instead of malloc. + * @see opus_encoder_create(),opus_encoder_get_size() + * To reset a previously initialized state, use the #OPUS_RESET_STATE CTL. + * @param [in] st OpusEncoder*: Encoder state + * @param [in] Fs opus_int32: Sampling rate of input signal (Hz) + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param [in] channels int: Number of channels (1 or 2) in input signal + * @param [in] application int: Coding mode (OPUS_APPLICATION_VOIP/OPUS_APPLICATION_AUDIO/OPUS_APPLICATION_RESTRICTED_LOWDELAY) + * @retval #OPUS_OK Success or @ref opus_errorcodes + */ +OPUS_EXPORT int opus_encoder_init( + OpusEncoder *st, + opus_int32 Fs, + int channels, + int application +) OPUS_ARG_NONNULL(1); + +/** Encodes an Opus frame. + * @param [in] st OpusEncoder*: Encoder state + * @param [in] pcm opus_int16*: Input signal (interleaved if 2 channels). length is frame_size*channels*sizeof(opus_int16) + * @param [in] frame_size int: Number of samples per channel in the + * input signal. + * This must be an Opus frame size for + * the encoder's sampling rate. + * For example, at 48 kHz the permitted + * values are 120, 240, 480, 960, 1920, + * and 2880. + * Passing in a duration of less than + * 10 ms (480 samples at 48 kHz) will + * prevent the encoder from using the LPC + * or hybrid modes. + * @param [out] data unsigned char*: Output payload. + * This must contain storage for at + * least \a max_data_bytes. + * @param [in] max_data_bytes opus_int32: Size of the allocated + * memory for the output + * payload. This may be + * used to impose an upper limit on + * the instant bitrate, but should + * not be used as the only bitrate + * control. Use #OPUS_SET_BITRATE to + * control the bitrate. + * @returns The length of the encoded packet (in bytes) on success or a + * negative error code (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_encode( + OpusEncoder *st, + const opus_int16 *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + +/** Encodes an Opus frame from floating point input. + * @param [in] st OpusEncoder*: Encoder state + * @param [in] pcm float*: Input in float format (interleaved if 2 channels), with a normal range of +/-1.0. + * Samples with a range beyond +/-1.0 are supported but will + * be clipped by decoders using the integer API and should + * only be used if it is known that the far end supports + * extended dynamic range. + * length is frame_size*channels*sizeof(float) + * @param [in] frame_size int: Number of samples per channel in the + * input signal. + * This must be an Opus frame size for + * the encoder's sampling rate. + * For example, at 48 kHz the permitted + * values are 120, 240, 480, 960, 1920, + * and 2880. + * Passing in a duration of less than + * 10 ms (480 samples at 48 kHz) will + * prevent the encoder from using the LPC + * or hybrid modes. + * @param [out] data unsigned char*: Output payload. + * This must contain storage for at + * least \a max_data_bytes. + * @param [in] max_data_bytes opus_int32: Size of the allocated + * memory for the output + * payload. This may be + * used to impose an upper limit on + * the instant bitrate, but should + * not be used as the only bitrate + * control. Use #OPUS_SET_BITRATE to + * control the bitrate. + * @returns The length of the encoded packet (in bytes) on success or a + * negative error code (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_encode_float( + OpusEncoder *st, + const float *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + +/** Frees an OpusEncoder allocated by opus_encoder_create(). + * @param[in] st OpusEncoder*: State to be freed. + */ +OPUS_EXPORT void opus_encoder_destroy(OpusEncoder *st); + +/** Perform a CTL function on an Opus encoder. + * + * Generally the request and subsequent arguments are generated + * by a convenience macro. + * @param st OpusEncoder*: Encoder state. + * @param request This and all remaining parameters should be replaced by one + * of the convenience macros in @ref opus_genericctls or + * @ref opus_encoderctls. + * @see opus_genericctls + * @see opus_encoderctls + */ +OPUS_EXPORT int opus_encoder_ctl(OpusEncoder *st, int request, ...) OPUS_ARG_NONNULL(1); +/**@}*/ + +/** @defgroup opus_decoder Opus Decoder + * @{ + * + * @brief This page describes the process and functions used to decode Opus. + * + * The decoding process also starts with creating a decoder + * state. This can be done with: + * @code + * int error; + * OpusDecoder *dec; + * dec = opus_decoder_create(Fs, channels, &error); + * @endcode + * where + * @li Fs is the sampling rate and must be 8000, 12000, 16000, 24000, or 48000 + * @li channels is the number of channels (1 or 2) + * @li error will hold the error code in case of failure (or #OPUS_OK on success) + * @li the return value is a newly created decoder state to be used for decoding + * + * While opus_decoder_create() allocates memory for the state, it's also possible + * to initialize pre-allocated memory: + * @code + * int size; + * int error; + * OpusDecoder *dec; + * size = opus_decoder_get_size(channels); + * dec = malloc(size); + * error = opus_decoder_init(dec, Fs, channels); + * @endcode + * where opus_decoder_get_size() returns the required size for the decoder state. Note that + * future versions of this code may change the size, so no assuptions should be made about it. + * + * The decoder state is always continuous in memory and only a shallow copy is sufficient + * to copy it (e.g. memcpy()) + * + * To decode a frame, opus_decode() or opus_decode_float() must be called with a packet of compressed audio data: + * @code + * frame_size = opus_decode(dec, packet, len, decoded, max_size, 0); + * @endcode + * where + * + * @li packet is the byte array containing the compressed data + * @li len is the exact number of bytes contained in the packet + * @li decoded is the decoded audio data in opus_int16 (or float for opus_decode_float()) + * @li max_size is the max duration of the frame in samples (per channel) that can fit into the decoded_frame array + * + * opus_decode() and opus_decode_float() return the number of samples (per channel) decoded from the packet. + * If that value is negative, then an error has occurred. This can occur if the packet is corrupted or if the audio + * buffer is too small to hold the decoded audio. + * + * Opus is a stateful codec with overlapping blocks and as a result Opus + * packets are not coded independently of each other. Packets must be + * passed into the decoder serially and in the correct order for a correct + * decode. Lost packets can be replaced with loss concealment by calling + * the decoder with a null pointer and zero length for the missing packet. + * + * A single codec state may only be accessed from a single thread at + * a time and any required locking must be performed by the caller. Separate + * streams must be decoded with separate decoder states and can be decoded + * in parallel unless the library was compiled with NONTHREADSAFE_PSEUDOSTACK + * defined. + * + */ + +/** Opus decoder state. + * This contains the complete state of an Opus decoder. + * It is position independent and can be freely copied. + * @see opus_decoder_create,opus_decoder_init + */ +typedef struct OpusDecoder OpusDecoder; + +/** Gets the size of an OpusDecoder structure. + * @param [in] channels int: Number of channels. + * This must be 1 or 2. + * @returns The size in bytes. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_decoder_get_size(int channels); + +/** Allocates and initializes a decoder state. + * @param [in] Fs opus_int32: Sample rate to decode at (Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param [in] channels int: Number of channels (1 or 2) to decode + * @param [out] error int*: #OPUS_OK Success or @ref opus_errorcodes + * + * Internally Opus stores data at 48000 Hz, so that should be the default + * value for Fs. However, the decoder can efficiently decode to buffers + * at 8, 12, 16, and 24 kHz so if for some reason the caller cannot use + * data at the full sample rate, or knows the compressed data doesn't + * use the full frequency range, it can request decoding at a reduced + * rate. Likewise, the decoder is capable of filling in either mono or + * interleaved stereo pcm buffers, at the caller's request. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusDecoder *opus_decoder_create( + opus_int32 Fs, + int channels, + int *error +); + +/** Initializes a previously allocated decoder state. + * The state must be at least the size returned by opus_decoder_get_size(). + * This is intended for applications which use their own allocator instead of malloc. @see opus_decoder_create,opus_decoder_get_size + * To reset a previously initialized state, use the #OPUS_RESET_STATE CTL. + * @param [in] st OpusDecoder*: Decoder state. + * @param [in] Fs opus_int32: Sampling rate to decode to (Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param [in] channels int: Number of channels (1 or 2) to decode + * @retval #OPUS_OK Success or @ref opus_errorcodes + */ +OPUS_EXPORT int opus_decoder_init( + OpusDecoder *st, + opus_int32 Fs, + int channels +) OPUS_ARG_NONNULL(1); + +/** Decode an Opus packet. + * @param [in] st OpusDecoder*: Decoder state + * @param [in] data char*: Input payload. Use a NULL pointer to indicate packet loss + * @param [in] len opus_int32: Number of bytes in payload* + * @param [out] pcm opus_int16*: Output signal (interleaved if 2 channels). length + * is frame_size*channels*sizeof(opus_int16) + * @param [in] frame_size Number of samples per channel of available space in \a pcm. + * If this is less than the maximum packet duration (120ms; 5760 for 48kHz), this function will + * not be capable of decoding some packets. In the case of PLC (data==NULL) or FEC (decode_fec=1), + * then frame_size needs to be exactly the duration of audio that is missing, otherwise the + * decoder will not be in the optimal state to decode the next incoming packet. For the PLC and + * FEC cases, frame_size must be a multiple of 2.5 ms. + * @param [in] decode_fec int: Flag (0 or 1) to request that any in-band forward error correction data be + * decoded. If no such data is available, the frame is decoded as if it were lost. + * @returns Number of decoded samples or @ref opus_errorcodes + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_decode( + OpusDecoder *st, + const unsigned char *data, + opus_int32 len, + opus_int16 *pcm, + int frame_size, + int decode_fec +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Decode an Opus packet with floating point output. + * @param [in] st OpusDecoder*: Decoder state + * @param [in] data char*: Input payload. Use a NULL pointer to indicate packet loss + * @param [in] len opus_int32: Number of bytes in payload + * @param [out] pcm float*: Output signal (interleaved if 2 channels). length + * is frame_size*channels*sizeof(float) + * @param [in] frame_size Number of samples per channel of available space in \a pcm. + * If this is less than the maximum packet duration (120ms; 5760 for 48kHz), this function will + * not be capable of decoding some packets. In the case of PLC (data==NULL) or FEC (decode_fec=1), + * then frame_size needs to be exactly the duration of audio that is missing, otherwise the + * decoder will not be in the optimal state to decode the next incoming packet. For the PLC and + * FEC cases, frame_size must be a multiple of 2.5 ms. + * @param [in] decode_fec int: Flag (0 or 1) to request that any in-band forward error correction data be + * decoded. If no such data is available the frame is decoded as if it were lost. + * @returns Number of decoded samples or @ref opus_errorcodes + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_decode_float( + OpusDecoder *st, + const unsigned char *data, + opus_int32 len, + float *pcm, + int frame_size, + int decode_fec +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Perform a CTL function on an Opus decoder. + * + * Generally the request and subsequent arguments are generated + * by a convenience macro. + * @param st OpusDecoder*: Decoder state. + * @param request This and all remaining parameters should be replaced by one + * of the convenience macros in @ref opus_genericctls or + * @ref opus_decoderctls. + * @see opus_genericctls + * @see opus_decoderctls + */ +OPUS_EXPORT int opus_decoder_ctl(OpusDecoder *st, int request, ...) OPUS_ARG_NONNULL(1); + +/** Frees an OpusDecoder allocated by opus_decoder_create(). + * @param[in] st OpusDecoder*: State to be freed. + */ +OPUS_EXPORT void opus_decoder_destroy(OpusDecoder *st); + +/** Parse an opus packet into one or more frames. + * Opus_decode will perform this operation internally so most applications do + * not need to use this function. + * This function does not copy the frames, the returned pointers are pointers into + * the input packet. + * @param [in] data char*: Opus packet to be parsed + * @param [in] len opus_int32: size of data + * @param [out] out_toc char*: TOC pointer + * @param [out] frames char*[48] encapsulated frames + * @param [out] size opus_int16[48] sizes of the encapsulated frames + * @param [out] payload_offset int*: returns the position of the payload within the packet (in bytes) + * @returns number of frames + */ +OPUS_EXPORT int opus_packet_parse( + const unsigned char *data, + opus_int32 len, + unsigned char *out_toc, + const unsigned char *frames[48], + opus_int16 size[48], + int *payload_offset +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Gets the bandwidth of an Opus packet. + * @param [in] data char*: Opus packet + * @retval OPUS_BANDWIDTH_NARROWBAND Narrowband (4kHz bandpass) + * @retval OPUS_BANDWIDTH_MEDIUMBAND Mediumband (6kHz bandpass) + * @retval OPUS_BANDWIDTH_WIDEBAND Wideband (8kHz bandpass) + * @retval OPUS_BANDWIDTH_SUPERWIDEBAND Superwideband (12kHz bandpass) + * @retval OPUS_BANDWIDTH_FULLBAND Fullband (20kHz bandpass) + * @retval OPUS_INVALID_PACKET The compressed data passed is corrupted or of an unsupported type + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_packet_get_bandwidth(const unsigned char *data) OPUS_ARG_NONNULL(1); + +/** Gets the number of samples per frame from an Opus packet. + * @param [in] data char*: Opus packet. + * This must contain at least one byte of + * data. + * @param [in] Fs opus_int32: Sampling rate in Hz. + * This must be a multiple of 400, or + * inaccurate results will be returned. + * @returns Number of samples per frame. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_packet_get_samples_per_frame(const unsigned char *data, opus_int32 Fs) OPUS_ARG_NONNULL(1); + +/** Gets the number of channels from an Opus packet. + * @param [in] data char*: Opus packet + * @returns Number of channels + * @retval OPUS_INVALID_PACKET The compressed data passed is corrupted or of an unsupported type + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_packet_get_nb_channels(const unsigned char *data) OPUS_ARG_NONNULL(1); + +/** Gets the number of frames in an Opus packet. + * @param [in] packet char*: Opus packet + * @param [in] len opus_int32: Length of packet + * @returns Number of frames + * @retval OPUS_BAD_ARG Insufficient data was passed to the function + * @retval OPUS_INVALID_PACKET The compressed data passed is corrupted or of an unsupported type + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_packet_get_nb_frames(const unsigned char packet[], opus_int32 len) OPUS_ARG_NONNULL(1); + +/** Gets the number of samples of an Opus packet. + * @param [in] packet char*: Opus packet + * @param [in] len opus_int32: Length of packet + * @param [in] Fs opus_int32: Sampling rate in Hz. + * This must be a multiple of 400, or + * inaccurate results will be returned. + * @returns Number of samples + * @retval OPUS_BAD_ARG Insufficient data was passed to the function + * @retval OPUS_INVALID_PACKET The compressed data passed is corrupted or of an unsupported type + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_packet_get_nb_samples(const unsigned char packet[], opus_int32 len, opus_int32 Fs) OPUS_ARG_NONNULL(1); + +/** Gets the number of samples of an Opus packet. + * @param [in] dec OpusDecoder*: Decoder state + * @param [in] packet char*: Opus packet + * @param [in] len opus_int32: Length of packet + * @returns Number of samples + * @retval OPUS_BAD_ARG Insufficient data was passed to the function + * @retval OPUS_INVALID_PACKET The compressed data passed is corrupted or of an unsupported type + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_decoder_get_nb_samples(const OpusDecoder *dec, const unsigned char packet[], opus_int32 len) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2); +/**@}*/ + +/** @defgroup opus_repacketizer Repacketizer + * @{ + * + * The repacketizer can be used to merge multiple Opus packets into a single + * packet or alternatively to split Opus packets that have previously been + * merged. Splitting valid Opus packets is always guaranteed to succeed, + * whereas merging valid packets only succeeds if all frames have the same + * mode, bandwidth, and frame size, and when the total duration of the merged + * packet is no more than 120 ms. + * The repacketizer currently only operates on elementary Opus + * streams. It will not manipualte multistream packets successfully, except in + * the degenerate case where they consist of data from a single stream. + * + * The repacketizing process starts with creating a repacketizer state, either + * by calling opus_repacketizer_create() or by allocating the memory yourself, + * e.g., + * @code + * OpusRepacketizer *rp; + * rp = (OpusRepacketizer*)malloc(opus_repacketizer_get_size()); + * if (rp != NULL) + * opus_repacketizer_init(rp); + * @endcode + * + * Then the application should submit packets with opus_repacketizer_cat(), + * extract new packets with opus_repacketizer_out() or + * opus_repacketizer_out_range(), and then reset the state for the next set of + * input packets via opus_repacketizer_init(). + * + * For example, to split a sequence of packets into individual frames: + * @code + * unsigned char *data; + * int len; + * while (get_next_packet(&data, &len)) + * { + * unsigned char out[1276]; + * opus_int32 out_len; + * int nb_frames; + * int err; + * int i; + * err = opus_repacketizer_cat(rp, data, len); + * if (err != OPUS_OK) + * { + * release_packet(data); + * return err; + * } + * nb_frames = opus_repacketizer_get_nb_frames(rp); + * for (i = 0; i < nb_frames; i++) + * { + * out_len = opus_repacketizer_out_range(rp, i, i+1, out, sizeof(out)); + * if (out_len < 0) + * { + * release_packet(data); + * return (int)out_len; + * } + * output_next_packet(out, out_len); + * } + * opus_repacketizer_init(rp); + * release_packet(data); + * } + * @endcode + * + * Alternatively, to combine a sequence of frames into packets that each + * contain up to TARGET_DURATION_MS milliseconds of data: + * @code + * // The maximum number of packets with duration TARGET_DURATION_MS occurs + * // when the frame size is 2.5 ms, for a total of (TARGET_DURATION_MS*2/5) + * // packets. + * unsigned char *data[(TARGET_DURATION_MS*2/5)+1]; + * opus_int32 len[(TARGET_DURATION_MS*2/5)+1]; + * int nb_packets; + * unsigned char out[1277*(TARGET_DURATION_MS*2/2)]; + * opus_int32 out_len; + * int prev_toc; + * nb_packets = 0; + * while (get_next_packet(data+nb_packets, len+nb_packets)) + * { + * int nb_frames; + * int err; + * nb_frames = opus_packet_get_nb_frames(data[nb_packets], len[nb_packets]); + * if (nb_frames < 1) + * { + * release_packets(data, nb_packets+1); + * return nb_frames; + * } + * nb_frames += opus_repacketizer_get_nb_frames(rp); + * // If adding the next packet would exceed our target, or it has an + * // incompatible TOC sequence, output the packets we already have before + * // submitting it. + * // N.B., The nb_packets > 0 check ensures we've submitted at least one + * // packet since the last call to opus_repacketizer_init(). Otherwise a + * // single packet longer than TARGET_DURATION_MS would cause us to try to + * // output an (invalid) empty packet. It also ensures that prev_toc has + * // been set to a valid value. Additionally, len[nb_packets] > 0 is + * // guaranteed by the call to opus_packet_get_nb_frames() above, so the + * // reference to data[nb_packets][0] should be valid. + * if (nb_packets > 0 && ( + * ((prev_toc & 0xFC) != (data[nb_packets][0] & 0xFC)) || + * opus_packet_get_samples_per_frame(data[nb_packets], 48000)*nb_frames > + * TARGET_DURATION_MS*48)) + * { + * out_len = opus_repacketizer_out(rp, out, sizeof(out)); + * if (out_len < 0) + * { + * release_packets(data, nb_packets+1); + * return (int)out_len; + * } + * output_next_packet(out, out_len); + * opus_repacketizer_init(rp); + * release_packets(data, nb_packets); + * data[0] = data[nb_packets]; + * len[0] = len[nb_packets]; + * nb_packets = 0; + * } + * err = opus_repacketizer_cat(rp, data[nb_packets], len[nb_packets]); + * if (err != OPUS_OK) + * { + * release_packets(data, nb_packets+1); + * return err; + * } + * prev_toc = data[nb_packets][0]; + * nb_packets++; + * } + * // Output the final, partial packet. + * if (nb_packets > 0) + * { + * out_len = opus_repacketizer_out(rp, out, sizeof(out)); + * release_packets(data, nb_packets); + * if (out_len < 0) + * return (int)out_len; + * output_next_packet(out, out_len); + * } + * @endcode + * + * An alternate way of merging packets is to simply call opus_repacketizer_cat() + * unconditionally until it fails. At that point, the merged packet can be + * obtained with opus_repacketizer_out() and the input packet for which + * opus_repacketizer_cat() needs to be re-added to a newly reinitialized + * repacketizer state. + */ + +typedef struct OpusRepacketizer OpusRepacketizer; + +/** Gets the size of an OpusRepacketizer structure. + * @returns The size in bytes. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_repacketizer_get_size(void); + +/** (Re)initializes a previously allocated repacketizer state. + * The state must be at least the size returned by opus_repacketizer_get_size(). + * This can be used for applications which use their own allocator instead of + * malloc(). + * It must also be called to reset the queue of packets waiting to be + * repacketized, which is necessary if the maximum packet duration of 120 ms + * is reached or if you wish to submit packets with a different Opus + * configuration (coding mode, audio bandwidth, frame size, or channel count). + * Failure to do so will prevent a new packet from being added with + * opus_repacketizer_cat(). + * @see opus_repacketizer_create + * @see opus_repacketizer_get_size + * @see opus_repacketizer_cat + * @param rp OpusRepacketizer*: The repacketizer state to + * (re)initialize. + * @returns A pointer to the same repacketizer state that was passed in. + */ +OPUS_EXPORT OpusRepacketizer *opus_repacketizer_init(OpusRepacketizer *rp) OPUS_ARG_NONNULL(1); + +/** Allocates memory and initializes the new repacketizer with + * opus_repacketizer_init(). + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusRepacketizer *opus_repacketizer_create(void); + +/** Frees an OpusRepacketizer allocated by + * opus_repacketizer_create(). + * @param[in] rp OpusRepacketizer*: State to be freed. + */ +OPUS_EXPORT void opus_repacketizer_destroy(OpusRepacketizer *rp); + +/** Add a packet to the current repacketizer state. + * This packet must match the configuration of any packets already submitted + * for repacketization since the last call to opus_repacketizer_init(). + * This means that it must have the same coding mode, audio bandwidth, frame + * size, and channel count. + * This can be checked in advance by examining the top 6 bits of the first + * byte of the packet, and ensuring they match the top 6 bits of the first + * byte of any previously submitted packet. + * The total duration of audio in the repacketizer state also must not exceed + * 120 ms, the maximum duration of a single packet, after adding this packet. + * + * The contents of the current repacketizer state can be extracted into new + * packets using opus_repacketizer_out() or opus_repacketizer_out_range(). + * + * In order to add a packet with a different configuration or to add more + * audio beyond 120 ms, you must clear the repacketizer state by calling + * opus_repacketizer_init(). + * If a packet is too large to add to the current repacketizer state, no part + * of it is added, even if it contains multiple frames, some of which might + * fit. + * If you wish to be able to add parts of such packets, you should first use + * another repacketizer to split the packet into pieces and add them + * individually. + * @see opus_repacketizer_out_range + * @see opus_repacketizer_out + * @see opus_repacketizer_init + * @param rp OpusRepacketizer*: The repacketizer state to which to + * add the packet. + * @param[in] data const unsigned char*: The packet data. + * The application must ensure + * this pointer remains valid + * until the next call to + * opus_repacketizer_init() or + * opus_repacketizer_destroy(). + * @param len opus_int32: The number of bytes in the packet data. + * @returns An error code indicating whether or not the operation succeeded. + * @retval #OPUS_OK The packet's contents have been added to the repacketizer + * state. + * @retval #OPUS_INVALID_PACKET The packet did not have a valid TOC sequence, + * the packet's TOC sequence was not compatible + * with previously submitted packets (because + * the coding mode, audio bandwidth, frame size, + * or channel count did not match), or adding + * this packet would increase the total amount of + * audio stored in the repacketizer state to more + * than 120 ms. + */ +OPUS_EXPORT int opus_repacketizer_cat(OpusRepacketizer *rp, const unsigned char *data, opus_int32 len) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2); + + +/** Construct a new packet from data previously submitted to the repacketizer + * state via opus_repacketizer_cat(). + * @param rp OpusRepacketizer*: The repacketizer state from which to + * construct the new packet. + * @param begin int: The index of the first frame in the current + * repacketizer state to include in the output. + * @param end int: One past the index of the last frame in the + * current repacketizer state to include in the + * output. + * @param[out] data const unsigned char*: The buffer in which to + * store the output packet. + * @param maxlen opus_int32: The maximum number of bytes to store in + * the output buffer. In order to guarantee + * success, this should be at least + * 1276 for a single frame, + * or for multiple frames, + * 1277*(end-begin). + * However, 1*(end-begin) plus + * the size of all packet data submitted to + * the repacketizer since the last call to + * opus_repacketizer_init() or + * opus_repacketizer_create() is also + * sufficient, and possibly much smaller. + * @returns The total size of the output packet on success, or an error code + * on failure. + * @retval #OPUS_BAD_ARG [begin,end) was an invalid range of + * frames (begin < 0, begin >= end, or end > + * opus_repacketizer_get_nb_frames()). + * @retval #OPUS_BUFFER_TOO_SMALL \a maxlen was insufficient to contain the + * complete output packet. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_repacketizer_out_range(OpusRepacketizer *rp, int begin, int end, unsigned char *data, opus_int32 maxlen) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Return the total number of frames contained in packet data submitted to + * the repacketizer state so far via opus_repacketizer_cat() since the last + * call to opus_repacketizer_init() or opus_repacketizer_create(). + * This defines the valid range of packets that can be extracted with + * opus_repacketizer_out_range() or opus_repacketizer_out(). + * @param rp OpusRepacketizer*: The repacketizer state containing the + * frames. + * @returns The total number of frames contained in the packet data submitted + * to the repacketizer state. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_repacketizer_get_nb_frames(OpusRepacketizer *rp) OPUS_ARG_NONNULL(1); + +/** Construct a new packet from data previously submitted to the repacketizer + * state via opus_repacketizer_cat(). + * This is a convenience routine that returns all the data submitted so far + * in a single packet. + * It is equivalent to calling + * @code + * opus_repacketizer_out_range(rp, 0, opus_repacketizer_get_nb_frames(rp), + * data, maxlen) + * @endcode + * @param rp OpusRepacketizer*: The repacketizer state from which to + * construct the new packet. + * @param[out] data const unsigned char*: The buffer in which to + * store the output packet. + * @param maxlen opus_int32: The maximum number of bytes to store in + * the output buffer. In order to guarantee + * success, this should be at least + * 1277*opus_repacketizer_get_nb_frames(rp). + * However, + * 1*opus_repacketizer_get_nb_frames(rp) + * plus the size of all packet data + * submitted to the repacketizer since the + * last call to opus_repacketizer_init() or + * opus_repacketizer_create() is also + * sufficient, and possibly much smaller. + * @returns The total size of the output packet on success, or an error code + * on failure. + * @retval #OPUS_BUFFER_TOO_SMALL \a maxlen was insufficient to contain the + * complete output packet. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_repacketizer_out(OpusRepacketizer *rp, unsigned char *data, opus_int32 maxlen) OPUS_ARG_NONNULL(1); + +/**@}*/ + +#ifdef __cplusplus +} +#endif + +#endif /* OPUS_H */ diff --git a/Audio-Frameworks/bin/opus/Opus.framework/Versions/A/Headers/opus_defines.h b/Audio-Frameworks/bin/opus/Opus.framework/Versions/A/Headers/opus_defines.h new file mode 100644 index 0000000..9fa3ccb --- /dev/null +++ b/Audio-Frameworks/bin/opus/Opus.framework/Versions/A/Headers/opus_defines.h @@ -0,0 +1,655 @@ +/* Copyright (c) 2010-2011 Xiph.Org Foundation, Skype Limited + Written by Jean-Marc Valin and Koen Vos */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** + * @file opus_defines.h + * @brief Opus reference implementation constants + */ + +#ifndef OPUS_DEFINES_H +#define OPUS_DEFINES_H + +#include "opus_types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @defgroup opus_errorcodes Error codes + * @{ + */ +/** No error @hideinitializer*/ +#define OPUS_OK 0 +/** One or more invalid/out of range arguments @hideinitializer*/ +#define OPUS_BAD_ARG -1 +/** The mode struct passed is invalid @hideinitializer*/ +#define OPUS_BUFFER_TOO_SMALL -2 +/** An internal error was detected @hideinitializer*/ +#define OPUS_INTERNAL_ERROR -3 +/** The compressed data passed is corrupted @hideinitializer*/ +#define OPUS_INVALID_PACKET -4 +/** Invalid/unsupported request number @hideinitializer*/ +#define OPUS_UNIMPLEMENTED -5 +/** An encoder or decoder structure is invalid or already freed @hideinitializer*/ +#define OPUS_INVALID_STATE -6 +/** Memory allocation has failed @hideinitializer*/ +#define OPUS_ALLOC_FAIL -7 +/**@}*/ + +/** @cond OPUS_INTERNAL_DOC */ +/**Export control for opus functions */ + +#ifndef OPUS_EXPORT +# if defined(WIN32) +# ifdef OPUS_BUILD +# define OPUS_EXPORT __declspec(dllexport) +# else +# define OPUS_EXPORT +# endif +# elif defined(__GNUC__) && defined(OPUS_BUILD) +# define OPUS_EXPORT __attribute__ ((visibility ("default"))) +# else +# define OPUS_EXPORT +# endif +#endif + +# if !defined(OPUS_GNUC_PREREQ) +# if defined(__GNUC__)&&defined(__GNUC_MINOR__) +# define OPUS_GNUC_PREREQ(_maj,_min) \ + ((__GNUC__<<16)+__GNUC_MINOR__>=((_maj)<<16)+(_min)) +# else +# define OPUS_GNUC_PREREQ(_maj,_min) 0 +# endif +# endif + +#if (!defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L) ) +# if OPUS_GNUC_PREREQ(3,0) +# define OPUS_RESTRICT __restrict__ +# elif (defined(_MSC_VER) && _MSC_VER >= 1400) +# define OPUS_RESTRICT __restrict +# else +# define OPUS_RESTRICT +# endif +#else +# define OPUS_RESTRICT restrict +#endif + +/**Warning attributes for opus functions + * NONNULL is not used in OPUS_BUILD to avoid the compiler optimizing out + * some paranoid null checks. */ +#if defined(__GNUC__) && OPUS_GNUC_PREREQ(3, 4) +# define OPUS_WARN_UNUSED_RESULT __attribute__ ((__warn_unused_result__)) +#else +# define OPUS_WARN_UNUSED_RESULT +#endif +#if !defined(OPUS_BUILD) && defined(__GNUC__) && OPUS_GNUC_PREREQ(3, 4) +# define OPUS_ARG_NONNULL(_x) __attribute__ ((__nonnull__(_x))) +#else +# define OPUS_ARG_NONNULL(_x) +#endif + +/** These are the actual Encoder CTL ID numbers. + * They should not be used directly by applications. + * In general, SETs should be even and GETs should be odd.*/ +#define OPUS_SET_APPLICATION_REQUEST 4000 +#define OPUS_GET_APPLICATION_REQUEST 4001 +#define OPUS_SET_BITRATE_REQUEST 4002 +#define OPUS_GET_BITRATE_REQUEST 4003 +#define OPUS_SET_MAX_BANDWIDTH_REQUEST 4004 +#define OPUS_GET_MAX_BANDWIDTH_REQUEST 4005 +#define OPUS_SET_VBR_REQUEST 4006 +#define OPUS_GET_VBR_REQUEST 4007 +#define OPUS_SET_BANDWIDTH_REQUEST 4008 +#define OPUS_GET_BANDWIDTH_REQUEST 4009 +#define OPUS_SET_COMPLEXITY_REQUEST 4010 +#define OPUS_GET_COMPLEXITY_REQUEST 4011 +#define OPUS_SET_INBAND_FEC_REQUEST 4012 +#define OPUS_GET_INBAND_FEC_REQUEST 4013 +#define OPUS_SET_PACKET_LOSS_PERC_REQUEST 4014 +#define OPUS_GET_PACKET_LOSS_PERC_REQUEST 4015 +#define OPUS_SET_DTX_REQUEST 4016 +#define OPUS_GET_DTX_REQUEST 4017 +#define OPUS_SET_VBR_CONSTRAINT_REQUEST 4020 +#define OPUS_GET_VBR_CONSTRAINT_REQUEST 4021 +#define OPUS_SET_FORCE_CHANNELS_REQUEST 4022 +#define OPUS_GET_FORCE_CHANNELS_REQUEST 4023 +#define OPUS_SET_SIGNAL_REQUEST 4024 +#define OPUS_GET_SIGNAL_REQUEST 4025 +#define OPUS_GET_LOOKAHEAD_REQUEST 4027 +/* #define OPUS_RESET_STATE 4028 */ +#define OPUS_GET_SAMPLE_RATE_REQUEST 4029 +#define OPUS_GET_FINAL_RANGE_REQUEST 4031 +#define OPUS_GET_PITCH_REQUEST 4033 +#define OPUS_SET_GAIN_REQUEST 4034 +#define OPUS_GET_GAIN_REQUEST 4045 /* Should have been 4035 */ +#define OPUS_SET_LSB_DEPTH_REQUEST 4036 +#define OPUS_GET_LSB_DEPTH_REQUEST 4037 + +#define OPUS_GET_LAST_PACKET_DURATION_REQUEST 4039 + +/* Don't use 4045, it's already taken by OPUS_GET_GAIN_REQUEST */ + +/* Macros to trigger compilation errors when the wrong types are provided to a CTL */ +#define __opus_check_int(x) (((void)((x) == (opus_int32)0)), (opus_int32)(x)) +#define __opus_check_int_ptr(ptr) ((ptr) + ((ptr) - (opus_int32*)(ptr))) +#define __opus_check_uint_ptr(ptr) ((ptr) + ((ptr) - (opus_uint32*)(ptr))) +/** @endcond */ + +/** @defgroup opus_ctlvalues Pre-defined values for CTL interface + * @see opus_genericctls, opus_encoderctls + * @{ + */ +/* Values for the various encoder CTLs */ +#define OPUS_AUTO -1000 /**opus_int32: Allowed values: 0-10, inclusive. + * + * @hideinitializer */ +#define OPUS_SET_COMPLEXITY(x) OPUS_SET_COMPLEXITY_REQUEST, __opus_check_int(x) +/** Gets the encoder's complexity configuration. + * @see OPUS_SET_COMPLEXITY + * @param[out] x opus_int32 *: Returns a value in the range 0-10, + * inclusive. + * @hideinitializer */ +#define OPUS_GET_COMPLEXITY(x) OPUS_GET_COMPLEXITY_REQUEST, __opus_check_int_ptr(x) + +/** Configures the bitrate in the encoder. + * Rates from 500 to 512000 bits per second are meaningful, as well as the + * special values #OPUS_AUTO and #OPUS_BITRATE_MAX. + * The value #OPUS_BITRATE_MAX can be used to cause the codec to use as much + * rate as it can, which is useful for controlling the rate by adjusting the + * output buffer size. + * @see OPUS_GET_BITRATE + * @param[in] x opus_int32: Bitrate in bits per second. The default + * is determined based on the number of + * channels and the input sampling rate. + * @hideinitializer */ +#define OPUS_SET_BITRATE(x) OPUS_SET_BITRATE_REQUEST, __opus_check_int(x) +/** Gets the encoder's bitrate configuration. + * @see OPUS_SET_BITRATE + * @param[out] x opus_int32 *: Returns the bitrate in bits per second. + * The default is determined based on the + * number of channels and the input + * sampling rate. + * @hideinitializer */ +#define OPUS_GET_BITRATE(x) OPUS_GET_BITRATE_REQUEST, __opus_check_int_ptr(x) + +/** Enables or disables variable bitrate (VBR) in the encoder. + * The configured bitrate may not be met exactly because frames must + * be an integer number of bytes in length. + * @warning Only the MDCT mode of Opus can provide hard CBR behavior. + * @see OPUS_GET_VBR + * @see OPUS_SET_VBR_CONSTRAINT + * @param[in] x opus_int32: Allowed values: + *
    + *
    0
    Hard CBR. For LPC/hybrid modes at very low bit-rate, this can + * cause noticeable quality degradation.
    + *
    1
    VBR (default). The exact type of VBR is controlled by + * #OPUS_SET_VBR_CONSTRAINT.
    + *
    + * @hideinitializer */ +#define OPUS_SET_VBR(x) OPUS_SET_VBR_REQUEST, __opus_check_int(x) +/** Determine if variable bitrate (VBR) is enabled in the encoder. + * @see OPUS_SET_VBR + * @see OPUS_GET_VBR_CONSTRAINT + * @param[out] x opus_int32 *: Returns one of the following values: + *
    + *
    0
    Hard CBR.
    + *
    1
    VBR (default). The exact type of VBR may be retrieved via + * #OPUS_GET_VBR_CONSTRAINT.
    + *
    + * @hideinitializer */ +#define OPUS_GET_VBR(x) OPUS_GET_VBR_REQUEST, __opus_check_int_ptr(x) + +/** Enables or disables constrained VBR in the encoder. + * This setting is ignored when the encoder is in CBR mode. + * @warning Only the MDCT mode of Opus currently heeds the constraint. + * Speech mode ignores it completely, hybrid mode may fail to obey it + * if the LPC layer uses more bitrate than the constraint would have + * permitted. + * @see OPUS_GET_VBR_CONSTRAINT + * @see OPUS_SET_VBR + * @param[in] x opus_int32: Allowed values: + *
    + *
    0
    Unconstrained VBR.
    + *
    1
    Constrained VBR (default). This creates a maximum of one + * frame of buffering delay assuming a transport with a + * serialization speed of the nominal bitrate.
    + *
    + * @hideinitializer */ +#define OPUS_SET_VBR_CONSTRAINT(x) OPUS_SET_VBR_CONSTRAINT_REQUEST, __opus_check_int(x) +/** Determine if constrained VBR is enabled in the encoder. + * @see OPUS_SET_VBR_CONSTRAINT + * @see OPUS_GET_VBR + * @param[out] x opus_int32 *: Returns one of the following values: + *
    + *
    0
    Unconstrained VBR.
    + *
    1
    Constrained VBR (default).
    + *
    + * @hideinitializer */ +#define OPUS_GET_VBR_CONSTRAINT(x) OPUS_GET_VBR_CONSTRAINT_REQUEST, __opus_check_int_ptr(x) + +/** Configures mono/stereo forcing in the encoder. + * This can force the encoder to produce packets encoded as either mono or + * stereo, regardless of the format of the input audio. This is useful when + * the caller knows that the input signal is currently a mono source embedded + * in a stereo stream. + * @see OPUS_GET_FORCE_CHANNELS + * @param[in] x opus_int32: Allowed values: + *
    + *
    #OPUS_AUTO
    Not forced (default)
    + *
    1
    Forced mono
    + *
    2
    Forced stereo
    + *
    + * @hideinitializer */ +#define OPUS_SET_FORCE_CHANNELS(x) OPUS_SET_FORCE_CHANNELS_REQUEST, __opus_check_int(x) +/** Gets the encoder's forced channel configuration. + * @see OPUS_SET_FORCE_CHANNELS + * @param[out] x opus_int32 *: + *
    + *
    #OPUS_AUTO
    Not forced (default)
    + *
    1
    Forced mono
    + *
    2
    Forced stereo
    + *
    + * @hideinitializer */ +#define OPUS_GET_FORCE_CHANNELS(x) OPUS_GET_FORCE_CHANNELS_REQUEST, __opus_check_int_ptr(x) + +/** Configures the maximum bandpass that the encoder will select automatically. + * Applications should normally use this instead of #OPUS_SET_BANDWIDTH + * (leaving that set to the default, #OPUS_AUTO). This allows the + * application to set an upper bound based on the type of input it is + * providing, but still gives the encoder the freedom to reduce the bandpass + * when the bitrate becomes too low, for better overall quality. + * @see OPUS_GET_MAX_BANDWIDTH + * @param[in] x opus_int32: Allowed values: + *
    + *
    OPUS_BANDWIDTH_NARROWBAND
    4 kHz passband
    + *
    OPUS_BANDWIDTH_MEDIUMBAND
    6 kHz passband
    + *
    OPUS_BANDWIDTH_WIDEBAND
    8 kHz passband
    + *
    OPUS_BANDWIDTH_SUPERWIDEBAND
    12 kHz passband
    + *
    OPUS_BANDWIDTH_FULLBAND
    20 kHz passband (default)
    + *
    + * @hideinitializer */ +#define OPUS_SET_MAX_BANDWIDTH(x) OPUS_SET_MAX_BANDWIDTH_REQUEST, __opus_check_int(x) + +/** Gets the encoder's configured maximum allowed bandpass. + * @see OPUS_SET_MAX_BANDWIDTH + * @param[out] x opus_int32 *: Allowed values: + *
    + *
    #OPUS_BANDWIDTH_NARROWBAND
    4 kHz passband
    + *
    #OPUS_BANDWIDTH_MEDIUMBAND
    6 kHz passband
    + *
    #OPUS_BANDWIDTH_WIDEBAND
    8 kHz passband
    + *
    #OPUS_BANDWIDTH_SUPERWIDEBAND
    12 kHz passband
    + *
    #OPUS_BANDWIDTH_FULLBAND
    20 kHz passband (default)
    + *
    + * @hideinitializer */ +#define OPUS_GET_MAX_BANDWIDTH(x) OPUS_GET_MAX_BANDWIDTH_REQUEST, __opus_check_int_ptr(x) + +/** Sets the encoder's bandpass to a specific value. + * This prevents the encoder from automatically selecting the bandpass based + * on the available bitrate. If an application knows the bandpass of the input + * audio it is providing, it should normally use #OPUS_SET_MAX_BANDWIDTH + * instead, which still gives the encoder the freedom to reduce the bandpass + * when the bitrate becomes too low, for better overall quality. + * @see OPUS_GET_BANDWIDTH + * @param[in] x opus_int32: Allowed values: + *
    + *
    #OPUS_AUTO
    (default)
    + *
    #OPUS_BANDWIDTH_NARROWBAND
    4 kHz passband
    + *
    #OPUS_BANDWIDTH_MEDIUMBAND
    6 kHz passband
    + *
    #OPUS_BANDWIDTH_WIDEBAND
    8 kHz passband
    + *
    #OPUS_BANDWIDTH_SUPERWIDEBAND
    12 kHz passband
    + *
    #OPUS_BANDWIDTH_FULLBAND
    20 kHz passband
    + *
    + * @hideinitializer */ +#define OPUS_SET_BANDWIDTH(x) OPUS_SET_BANDWIDTH_REQUEST, __opus_check_int(x) + +/** Configures the type of signal being encoded. + * This is a hint which helps the encoder's mode selection. + * @see OPUS_GET_SIGNAL + * @param[in] x opus_int32: Allowed values: + *
    + *
    #OPUS_AUTO
    (default)
    + *
    #OPUS_SIGNAL_VOICE
    Bias thresholds towards choosing LPC or Hybrid modes.
    + *
    #OPUS_SIGNAL_MUSIC
    Bias thresholds towards choosing MDCT modes.
    + *
    + * @hideinitializer */ +#define OPUS_SET_SIGNAL(x) OPUS_SET_SIGNAL_REQUEST, __opus_check_int(x) +/** Gets the encoder's configured signal type. + * @see OPUS_SET_SIGNAL + * @param[out] x opus_int32 *: Returns one of the following values: + *
    + *
    #OPUS_AUTO
    (default)
    + *
    #OPUS_SIGNAL_VOICE
    Bias thresholds towards choosing LPC or Hybrid modes.
    + *
    #OPUS_SIGNAL_MUSIC
    Bias thresholds towards choosing MDCT modes.
    + *
    + * @hideinitializer */ +#define OPUS_GET_SIGNAL(x) OPUS_GET_SIGNAL_REQUEST, __opus_check_int_ptr(x) + + +/** Configures the encoder's intended application. + * The initial value is a mandatory argument to the encoder_create function. + * @see OPUS_GET_APPLICATION + * @param[in] x opus_int32: Returns one of the following values: + *
    + *
    #OPUS_APPLICATION_VOIP
    + *
    Process signal for improved speech intelligibility.
    + *
    #OPUS_APPLICATION_AUDIO
    + *
    Favor faithfulness to the original input.
    + *
    #OPUS_APPLICATION_RESTRICTED_LOWDELAY
    + *
    Configure the minimum possible coding delay by disabling certain modes + * of operation.
    + *
    + * @hideinitializer */ +#define OPUS_SET_APPLICATION(x) OPUS_SET_APPLICATION_REQUEST, __opus_check_int(x) +/** Gets the encoder's configured application. + * @see OPUS_SET_APPLICATION + * @param[out] x opus_int32 *: Returns one of the following values: + *
    + *
    #OPUS_APPLICATION_VOIP
    + *
    Process signal for improved speech intelligibility.
    + *
    #OPUS_APPLICATION_AUDIO
    + *
    Favor faithfulness to the original input.
    + *
    #OPUS_APPLICATION_RESTRICTED_LOWDELAY
    + *
    Configure the minimum possible coding delay by disabling certain modes + * of operation.
    + *
    + * @hideinitializer */ +#define OPUS_GET_APPLICATION(x) OPUS_GET_APPLICATION_REQUEST, __opus_check_int_ptr(x) + +/** Gets the sampling rate the encoder or decoder was initialized with. + * This simply returns the Fs value passed to opus_encoder_init() + * or opus_decoder_init(). + * @param[out] x opus_int32 *: Sampling rate of encoder or decoder. + * @hideinitializer + */ +#define OPUS_GET_SAMPLE_RATE(x) OPUS_GET_SAMPLE_RATE_REQUEST, __opus_check_int_ptr(x) + +/** Gets the total samples of delay added by the entire codec. + * This can be queried by the encoder and then the provided number of samples can be + * skipped on from the start of the decoder's output to provide time aligned input + * and output. From the perspective of a decoding application the real data begins this many + * samples late. + * + * The decoder contribution to this delay is identical for all decoders, but the + * encoder portion of the delay may vary from implementation to implementation, + * version to version, or even depend on the encoder's initial configuration. + * Applications needing delay compensation should call this CTL rather than + * hard-coding a value. + * @param[out] x opus_int32 *: Number of lookahead samples + * @hideinitializer */ +#define OPUS_GET_LOOKAHEAD(x) OPUS_GET_LOOKAHEAD_REQUEST, __opus_check_int_ptr(x) + +/** Configures the encoder's use of inband forward error correction (FEC). + * @note This is only applicable to the LPC layer + * @see OPUS_GET_INBAND_FEC + * @param[in] x opus_int32: Allowed values: + *
    + *
    0
    Disable inband FEC (default).
    + *
    1
    Enable inband FEC.
    + *
    + * @hideinitializer */ +#define OPUS_SET_INBAND_FEC(x) OPUS_SET_INBAND_FEC_REQUEST, __opus_check_int(x) +/** Gets encoder's configured use of inband forward error correction. + * @see OPUS_SET_INBAND_FEC + * @param[out] x opus_int32 *: Returns one of the following values: + *
    + *
    0
    Inband FEC disabled (default).
    + *
    1
    Inband FEC enabled.
    + *
    + * @hideinitializer */ +#define OPUS_GET_INBAND_FEC(x) OPUS_GET_INBAND_FEC_REQUEST, __opus_check_int_ptr(x) + +/** Configures the encoder's expected packet loss percentage. + * Higher values with trigger progressively more loss resistant behavior in the encoder + * at the expense of quality at a given bitrate in the lossless case, but greater quality + * under loss. + * @see OPUS_GET_PACKET_LOSS_PERC + * @param[in] x opus_int32: Loss percentage in the range 0-100, inclusive (default: 0). + * @hideinitializer */ +#define OPUS_SET_PACKET_LOSS_PERC(x) OPUS_SET_PACKET_LOSS_PERC_REQUEST, __opus_check_int(x) +/** Gets the encoder's configured packet loss percentage. + * @see OPUS_SET_PACKET_LOSS_PERC + * @param[out] x opus_int32 *: Returns the configured loss percentage + * in the range 0-100, inclusive (default: 0). + * @hideinitializer */ +#define OPUS_GET_PACKET_LOSS_PERC(x) OPUS_GET_PACKET_LOSS_PERC_REQUEST, __opus_check_int_ptr(x) + +/** Configures the encoder's use of discontinuous transmission (DTX). + * @note This is only applicable to the LPC layer + * @see OPUS_GET_DTX + * @param[in] x opus_int32: Allowed values: + *
    + *
    0
    Disable DTX (default).
    + *
    1
    Enabled DTX.
    + *
    + * @hideinitializer */ +#define OPUS_SET_DTX(x) OPUS_SET_DTX_REQUEST, __opus_check_int(x) +/** Gets encoder's configured use of discontinuous transmission. + * @see OPUS_SET_DTX + * @param[out] x opus_int32 *: Returns one of the following values: + *
    + *
    0
    DTX disabled (default).
    + *
    1
    DTX enabled.
    + *
    + * @hideinitializer */ +#define OPUS_GET_DTX(x) OPUS_GET_DTX_REQUEST, __opus_check_int_ptr(x) +/** Configures the depth of signal being encoded. + * This is a hint which helps the encoder identify silence and near-silence. + * @see OPUS_GET_LSB_DEPTH + * @param[in] x opus_int32: Input precision in bits, between 8 and 24 + * (default: 24). + * @hideinitializer */ +#define OPUS_SET_LSB_DEPTH(x) OPUS_SET_LSB_DEPTH_REQUEST, __opus_check_int(x) +/** Gets the encoder's configured signal depth. + * @see OPUS_SET_LSB_DEPTH + * @param[out] x opus_int32 *: Input precision in bits, between 8 and + * 24 (default: 24). + * @hideinitializer */ +#define OPUS_GET_LSB_DEPTH(x) OPUS_GET_LSB_DEPTH_REQUEST, __opus_check_int_ptr(x) + +/** Gets the duration (in samples) of the last packet successfully decoded or concealed. + * @param[out] x opus_int32 *: Number of samples (at current sampling rate). + * @hideinitializer */ +#define OPUS_GET_LAST_PACKET_DURATION(x) OPUS_GET_LAST_PACKET_DURATION_REQUEST, __opus_check_int_ptr(x) +/**@}*/ + +/** @defgroup opus_genericctls Generic CTLs + * + * These macros are used with the \c opus_decoder_ctl and + * \c opus_encoder_ctl calls to generate a particular + * request. + * + * When called on an \c OpusDecoder they apply to that + * particular decoder instance. When called on an + * \c OpusEncoder they apply to the corresponding setting + * on that encoder instance, if present. + * + * Some usage examples: + * + * @code + * int ret; + * opus_int32 pitch; + * ret = opus_decoder_ctl(dec_ctx, OPUS_GET_PITCH(&pitch)); + * if (ret == OPUS_OK) return ret; + * + * opus_encoder_ctl(enc_ctx, OPUS_RESET_STATE); + * opus_decoder_ctl(dec_ctx, OPUS_RESET_STATE); + * + * opus_int32 enc_bw, dec_bw; + * opus_encoder_ctl(enc_ctx, OPUS_GET_BANDWIDTH(&enc_bw)); + * opus_decoder_ctl(dec_ctx, OPUS_GET_BANDWIDTH(&dec_bw)); + * if (enc_bw != dec_bw) { + * printf("packet bandwidth mismatch!\n"); + * } + * @endcode + * + * @see opus_encoder, opus_decoder_ctl, opus_encoder_ctl, opus_decoderctls, opus_encoderctls + * @{ + */ + +/** Resets the codec state to be equivalent to a freshly initialized state. + * This should be called when switching streams in order to prevent + * the back to back decoding from giving different results from + * one at a time decoding. + * @hideinitializer */ +#define OPUS_RESET_STATE 4028 + +/** Gets the final state of the codec's entropy coder. + * This is used for testing purposes, + * The encoder and decoder state should be identical after coding a payload + * (assuming no data corruption or software bugs) + * + * @param[out] x opus_uint32 *: Entropy coder state + * + * @hideinitializer */ +#define OPUS_GET_FINAL_RANGE(x) OPUS_GET_FINAL_RANGE_REQUEST, __opus_check_uint_ptr(x) + +/** Gets the pitch of the last decoded frame, if available. + * This can be used for any post-processing algorithm requiring the use of pitch, + * e.g. time stretching/shortening. If the last frame was not voiced, or if the + * pitch was not coded in the frame, then zero is returned. + * + * This CTL is only implemented for decoder instances. + * + * @param[out] x opus_int32 *: pitch period at 48 kHz (or 0 if not available) + * + * @hideinitializer */ +#define OPUS_GET_PITCH(x) OPUS_GET_PITCH_REQUEST, __opus_check_int_ptr(x) + +/** Gets the encoder's configured bandpass or the decoder's last bandpass. + * @see OPUS_SET_BANDWIDTH + * @param[out] x opus_int32 *: Returns one of the following values: + *
    + *
    #OPUS_AUTO
    (default)
    + *
    #OPUS_BANDWIDTH_NARROWBAND
    4 kHz passband
    + *
    #OPUS_BANDWIDTH_MEDIUMBAND
    6 kHz passband
    + *
    #OPUS_BANDWIDTH_WIDEBAND
    8 kHz passband
    + *
    #OPUS_BANDWIDTH_SUPERWIDEBAND
    12 kHz passband
    + *
    #OPUS_BANDWIDTH_FULLBAND
    20 kHz passband
    + *
    + * @hideinitializer */ +#define OPUS_GET_BANDWIDTH(x) OPUS_GET_BANDWIDTH_REQUEST, __opus_check_int_ptr(x) + +/**@}*/ + +/** @defgroup opus_decoderctls Decoder related CTLs + * @see opus_genericctls, opus_encoderctls, opus_decoder + * @{ + */ + +/** Configures decoder gain adjustment. + * Scales the decoded output by a factor specified in Q8 dB units. + * This has a maximum range of -32768 to 32767 inclusive, and returns + * OPUS_BAD_ARG otherwise. The default is zero indicating no adjustment. + * This setting survives decoder reset. + * + * gain = pow(10, x/(20.0*256)) + * + * @param[in] x opus_int32: Amount to scale PCM signal by in Q8 dB units. + * @hideinitializer */ +#define OPUS_SET_GAIN(x) OPUS_SET_GAIN_REQUEST, __opus_check_int(x) +/** Gets the decoder's configured gain adjustment. @see OPUS_SET_GAIN + * + * @param[out] x opus_int32 *: Amount to scale PCM signal by in Q8 dB units. + * @hideinitializer */ +#define OPUS_GET_GAIN(x) OPUS_GET_GAIN_REQUEST, __opus_check_int_ptr(x) + +/**@}*/ + +/** @defgroup opus_libinfo Opus library information functions + * @{ + */ + +/** Converts an opus error code into a human readable string. + * + * @param[in] error int: Error number + * @returns Error string + */ +OPUS_EXPORT const char *opus_strerror(int error); + +/** Gets the libopus version string. + * + * @returns Version string + */ +OPUS_EXPORT const char *opus_get_version_string(void); +/**@}*/ + +#ifdef __cplusplus +} +#endif + +#endif /* OPUS_DEFINES_H */ diff --git a/Audio-Frameworks/bin/opus/Opus.framework/Versions/A/Headers/opus_multistream.h b/Audio-Frameworks/bin/opus/Opus.framework/Versions/A/Headers/opus_multistream.h new file mode 100644 index 0000000..ae59979 --- /dev/null +++ b/Audio-Frameworks/bin/opus/Opus.framework/Versions/A/Headers/opus_multistream.h @@ -0,0 +1,660 @@ +/* Copyright (c) 2011 Xiph.Org Foundation + Written by Jean-Marc Valin */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** + * @file opus_multistream.h + * @brief Opus reference implementation multistream API + */ + +#ifndef OPUS_MULTISTREAM_H +#define OPUS_MULTISTREAM_H + +#include "opus.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @cond OPUS_INTERNAL_DOC */ + +/** Macros to trigger compilation errors when the wrong types are provided to a + * CTL. */ +/**@{*/ +#define __opus_check_encstate_ptr(ptr) ((ptr) + ((ptr) - (OpusEncoder**)(ptr))) +#define __opus_check_decstate_ptr(ptr) ((ptr) + ((ptr) - (OpusDecoder**)(ptr))) +/**@}*/ + +/** These are the actual encoder and decoder CTL ID numbers. + * They should not be used directly by applications. + * In general, SETs should be even and GETs should be odd.*/ +/**@{*/ +#define OPUS_MULTISTREAM_GET_ENCODER_STATE_REQUEST 5120 +#define OPUS_MULTISTREAM_GET_DECODER_STATE_REQUEST 5122 +/**@}*/ + +/** @endcond */ + +/** @defgroup opus_multistream_ctls Multistream specific encoder and decoder CTLs + * + * These are convenience macros that are specific to the + * opus_multistream_encoder_ctl() and opus_multistream_decoder_ctl() + * interface. + * The CTLs from @ref opus_genericctls, @ref opus_encoderctls, and + * @ref opus_decoderctls may be applied to a multistream encoder or decoder as + * well. + * In addition, you may retrieve the encoder or decoder state for an specific + * stream via #OPUS_MULTISTREAM_GET_ENCODER_STATE or + * #OPUS_MULTISTREAM_GET_DECODER_STATE and apply CTLs to it individually. + */ +/**@{*/ + +/** Gets the encoder state for an individual stream of a multistream encoder. + * @param[in] x opus_int32: The index of the stream whose encoder you + * wish to retrieve. + * This must be non-negative and less than + * the streams parameter used + * to initialize the encoder. + * @param[out] y OpusEncoder**: Returns a pointer to the given + * encoder state. + * @retval OPUS_BAD_ARG The index of the requested stream was out of range. + * @hideinitializer + */ +#define OPUS_MULTISTREAM_GET_ENCODER_STATE(x,y) OPUS_MULTISTREAM_GET_ENCODER_STATE_REQUEST, __opus_check_int(x), __opus_check_encstate_ptr(y) + +/** Gets the decoder state for an individual stream of a multistream decoder. + * @param[in] x opus_int32: The index of the stream whose decoder you + * wish to retrieve. + * This must be non-negative and less than + * the streams parameter used + * to initialize the decoder. + * @param[out] y OpusDecoder**: Returns a pointer to the given + * decoder state. + * @retval OPUS_BAD_ARG The index of the requested stream was out of range. + * @hideinitializer + */ +#define OPUS_MULTISTREAM_GET_DECODER_STATE(x,y) OPUS_MULTISTREAM_GET_DECODER_STATE_REQUEST, __opus_check_int(x), __opus_check_decstate_ptr(y) + +/**@}*/ + +/** @defgroup opus_multistream Opus Multistream API + * @{ + * + * The multistream API allows individual Opus streams to be combined into a + * single packet, enabling support for up to 255 channels. Unlike an + * elementary Opus stream, the encoder and decoder must negotiate the channel + * configuration before the decoder can successfully interpret the data in the + * packets produced by the encoder. Some basic information, such as packet + * duration, can be computed without any special negotiation. + * + * The format for multistream Opus packets is defined in the + * Ogg + * encapsulation specification and is based on the self-delimited Opus + * framing described in Appendix B of RFC 6716. + * Normal Opus packets are just a degenerate case of multistream Opus packets, + * and can be encoded or decoded with the multistream API by setting + * streams to 1 when initializing the encoder or + * decoder. + * + * Multistream Opus streams can contain up to 255 elementary Opus streams. + * These may be either "uncoupled" or "coupled", indicating that the decoder + * is configured to decode them to either 1 or 2 channels, respectively. + * The streams are ordered so that all coupled streams appear at the + * beginning. + * + * A mapping table defines which decoded channel i + * should be used for each input/output (I/O) channel j. This table is + * typically provided as an unsigned char array. + * Let i = mapping[j] be the index for I/O channel j. + * If i < 2*coupled_streams, then I/O channel j is + * encoded as the left channel of stream (i/2) if i + * is even, or as the right channel of stream (i/2) if + * i is odd. Otherwise, I/O channel j is encoded as + * mono in stream (i - coupled_streams), unless it has the special + * value 255, in which case it is omitted from the encoding entirely (the + * decoder will reproduce it as silence). Each value i must either + * be the special value 255 or be less than streams + coupled_streams. + * + * The output channels specified by the encoder + * should use the + * Vorbis + * channel ordering. A decoder may wish to apply an additional permutation + * to the mapping the encoder used to achieve a different output channel + * order (e.g. for outputing in WAV order). + * + * Each multistream packet contains an Opus packet for each stream, and all of + * the Opus packets in a single multistream packet must have the same + * duration. Therefore the duration of a multistream packet can be extracted + * from the TOC sequence of the first stream, which is located at the + * beginning of the packet, just like an elementary Opus stream: + * + * @code + * int nb_samples; + * int nb_frames; + * nb_frames = opus_packet_get_nb_frames(data, len); + * if (nb_frames < 1) + * return nb_frames; + * nb_samples = opus_packet_get_samples_per_frame(data, 48000) * nb_frames; + * @endcode + * + * The general encoding and decoding process proceeds exactly the same as in + * the normal @ref opus_encoder and @ref opus_decoder APIs. + * See their documentation for an overview of how to use the corresponding + * multistream functions. + */ + +/** Opus multistream encoder state. + * This contains the complete state of a multistream Opus encoder. + * It is position independent and can be freely copied. + * @see opus_multistream_encoder_create + * @see opus_multistream_encoder_init + */ +typedef struct OpusMSEncoder OpusMSEncoder; + +/** Opus multistream decoder state. + * This contains the complete state of a multistream Opus decoder. + * It is position independent and can be freely copied. + * @see opus_multistream_decoder_create + * @see opus_multistream_decoder_init + */ +typedef struct OpusMSDecoder OpusMSDecoder; + +/**\name Multistream encoder functions */ +/**@{*/ + +/** Gets the size of an OpusMSEncoder structure. + * @param streams int: The total number of streams to encode from the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number of coupled (2 channel) streams + * to encode. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * encoded channels (streams + + * coupled_streams) must be no + * more than 255. + * @returns The size in bytes on success, or a negative error code + * (see @ref opus_errorcodes) on error. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_multistream_encoder_get_size( + int streams, + int coupled_streams +); + +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_multistream_surround_encoder_get_size( + int channels, + int mapping_family +); + + +/** Allocates and initializes a multistream encoder state. + * Call opus_multistream_encoder_destroy() to release + * this object when finished. + * @param Fs opus_int32: Sampling rate of the input signal (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels in the input signal. + * This must be at most 255. + * It may be greater than the number of + * coded channels (streams + + * coupled_streams). + * @param streams int: The total number of streams to encode from the + * input. + * This must be no more than the number of channels. + * @param coupled_streams int: Number of coupled (2 channel) streams + * to encode. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * encoded channels (streams + + * coupled_streams) must be no + * more than the number of input channels. + * @param[in] mapping const unsigned char[channels]: Mapping from + * encoded channels to input channels, as described in + * @ref opus_multistream. As an extra constraint, the + * multistream encoder does not allow encoding coupled + * streams for which one channel is unused since this + * is never a good idea. + * @param application int: The target encoder application. + * This must be one of the following: + *
    + *
    #OPUS_APPLICATION_VOIP
    + *
    Process signal for improved speech intelligibility.
    + *
    #OPUS_APPLICATION_AUDIO
    + *
    Favor faithfulness to the original input.
    + *
    #OPUS_APPLICATION_RESTRICTED_LOWDELAY
    + *
    Configure the minimum possible coding delay by disabling certain modes + * of operation.
    + *
    + * @param[out] error int *: Returns #OPUS_OK on success, or an error + * code (see @ref opus_errorcodes) on + * failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusMSEncoder *opus_multistream_encoder_create( + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + const unsigned char *mapping, + int application, + int *error +) OPUS_ARG_NONNULL(5); + +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusMSEncoder *opus_multistream_surround_encoder_create( + opus_int32 Fs, + int channels, + int mapping_family, + int *streams, + int *coupled_streams, + unsigned char *mapping, + int application, + int *error +) OPUS_ARG_NONNULL(5); + +/** Initialize a previously allocated multistream encoder state. + * The memory pointed to by \a st must be at least the size returned by + * opus_multistream_encoder_get_size(). + * This is intended for applications which use their own allocator instead of + * malloc. + * To reset a previously initialized state, use the #OPUS_RESET_STATE CTL. + * @see opus_multistream_encoder_create + * @see opus_multistream_encoder_get_size + * @param st OpusMSEncoder*: Multistream encoder state to initialize. + * @param Fs opus_int32: Sampling rate of the input signal (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels in the input signal. + * This must be at most 255. + * It may be greater than the number of + * coded channels (streams + + * coupled_streams). + * @param streams int: The total number of streams to encode from the + * input. + * This must be no more than the number of channels. + * @param coupled_streams int: Number of coupled (2 channel) streams + * to encode. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * encoded channels (streams + + * coupled_streams) must be no + * more than the number of input channels. + * @param[in] mapping const unsigned char[channels]: Mapping from + * encoded channels to input channels, as described in + * @ref opus_multistream. As an extra constraint, the + * multistream encoder does not allow encoding coupled + * streams for which one channel is unused since this + * is never a good idea. + * @param application int: The target encoder application. + * This must be one of the following: + *
    + *
    #OPUS_APPLICATION_VOIP
    + *
    Process signal for improved speech intelligibility.
    + *
    #OPUS_APPLICATION_AUDIO
    + *
    Favor faithfulness to the original input.
    + *
    #OPUS_APPLICATION_RESTRICTED_LOWDELAY
    + *
    Configure the minimum possible coding delay by disabling certain modes + * of operation.
    + *
    + * @returns #OPUS_OK on success, or an error code (see @ref opus_errorcodes) + * on failure. + */ +OPUS_EXPORT int opus_multistream_encoder_init( + OpusMSEncoder *st, + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + const unsigned char *mapping, + int application +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(6); + +OPUS_EXPORT int opus_multistream_surround_encoder_init( + OpusMSEncoder *st, + opus_int32 Fs, + int channels, + int mapping_family, + int *streams, + int *coupled_streams, + unsigned char *mapping, + int application +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(6); + +/** Encodes a multistream Opus frame. + * @param st OpusMSEncoder*: Multistream encoder state. + * @param[in] pcm const opus_int16*: The input signal as interleaved + * samples. + * This must contain + * frame_size*channels + * samples. + * @param frame_size int: Number of samples per channel in the input + * signal. + * This must be an Opus frame size for the + * encoder's sampling rate. + * For example, at 48 kHz the permitted values + * are 120, 240, 480, 960, 1920, and 2880. + * Passing in a duration of less than 10 ms + * (480 samples at 48 kHz) will prevent the + * encoder from using the LPC or hybrid modes. + * @param[out] data unsigned char*: Output payload. + * This must contain storage for at + * least \a max_data_bytes. + * @param [in] max_data_bytes opus_int32: Size of the allocated + * memory for the output + * payload. This may be + * used to impose an upper limit on + * the instant bitrate, but should + * not be used as the only bitrate + * control. Use #OPUS_SET_BITRATE to + * control the bitrate. + * @returns The length of the encoded packet (in bytes) on success or a + * negative error code (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_multistream_encode( + OpusMSEncoder *st, + const opus_int16 *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + +/** Encodes a multistream Opus frame from floating point input. + * @param st OpusMSEncoder*: Multistream encoder state. + * @param[in] pcm const float*: The input signal as interleaved + * samples with a normal range of + * +/-1.0. + * Samples with a range beyond +/-1.0 + * are supported but will be clipped by + * decoders using the integer API and + * should only be used if it is known + * that the far end supports extended + * dynamic range. + * This must contain + * frame_size*channels + * samples. + * @param frame_size int: Number of samples per channel in the input + * signal. + * This must be an Opus frame size for the + * encoder's sampling rate. + * For example, at 48 kHz the permitted values + * are 120, 240, 480, 960, 1920, and 2880. + * Passing in a duration of less than 10 ms + * (480 samples at 48 kHz) will prevent the + * encoder from using the LPC or hybrid modes. + * @param[out] data unsigned char*: Output payload. + * This must contain storage for at + * least \a max_data_bytes. + * @param [in] max_data_bytes opus_int32: Size of the allocated + * memory for the output + * payload. This may be + * used to impose an upper limit on + * the instant bitrate, but should + * not be used as the only bitrate + * control. Use #OPUS_SET_BITRATE to + * control the bitrate. + * @returns The length of the encoded packet (in bytes) on success or a + * negative error code (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_multistream_encode_float( + OpusMSEncoder *st, + const float *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + +/** Frees an OpusMSEncoder allocated by + * opus_multistream_encoder_create(). + * @param st OpusMSEncoder*: Multistream encoder state to be freed. + */ +OPUS_EXPORT void opus_multistream_encoder_destroy(OpusMSEncoder *st); + +/** Perform a CTL function on a multistream Opus encoder. + * + * Generally the request and subsequent arguments are generated by a + * convenience macro. + * @param st OpusMSEncoder*: Multistream encoder state. + * @param request This and all remaining parameters should be replaced by one + * of the convenience macros in @ref opus_genericctls, + * @ref opus_encoderctls, or @ref opus_multistream_ctls. + * @see opus_genericctls + * @see opus_encoderctls + * @see opus_multistream_ctls + */ +OPUS_EXPORT int opus_multistream_encoder_ctl(OpusMSEncoder *st, int request, ...) OPUS_ARG_NONNULL(1); + +/**@}*/ + +/**\name Multistream decoder functions */ +/**@{*/ + +/** Gets the size of an OpusMSDecoder structure. + * @param streams int: The total number of streams coded in the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number streams to decode as coupled + * (2 channel) streams. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * coded channels (streams + + * coupled_streams) must be no + * more than 255. + * @returns The size in bytes on success, or a negative error code + * (see @ref opus_errorcodes) on error. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_multistream_decoder_get_size( + int streams, + int coupled_streams +); + +/** Allocates and initializes a multistream decoder state. + * Call opus_multistream_decoder_destroy() to release + * this object when finished. + * @param Fs opus_int32: Sampling rate to decode at (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels to output. + * This must be at most 255. + * It may be different from the number of coded + * channels (streams + + * coupled_streams). + * @param streams int: The total number of streams coded in the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number of streams to decode as coupled + * (2 channel) streams. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * coded channels (streams + + * coupled_streams) must be no + * more than 255. + * @param[in] mapping const unsigned char[channels]: Mapping from + * coded channels to output channels, as described in + * @ref opus_multistream. + * @param[out] error int *: Returns #OPUS_OK on success, or an error + * code (see @ref opus_errorcodes) on + * failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusMSDecoder *opus_multistream_decoder_create( + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + const unsigned char *mapping, + int *error +) OPUS_ARG_NONNULL(5); + +/** Intialize a previously allocated decoder state object. + * The memory pointed to by \a st must be at least the size returned by + * opus_multistream_encoder_get_size(). + * This is intended for applications which use their own allocator instead of + * malloc. + * To reset a previously initialized state, use the #OPUS_RESET_STATE CTL. + * @see opus_multistream_decoder_create + * @see opus_multistream_deocder_get_size + * @param st OpusMSEncoder*: Multistream encoder state to initialize. + * @param Fs opus_int32: Sampling rate to decode at (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels to output. + * This must be at most 255. + * It may be different from the number of coded + * channels (streams + + * coupled_streams). + * @param streams int: The total number of streams coded in the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number of streams to decode as coupled + * (2 channel) streams. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * coded channels (streams + + * coupled_streams) must be no + * more than 255. + * @param[in] mapping const unsigned char[channels]: Mapping from + * coded channels to output channels, as described in + * @ref opus_multistream. + * @returns #OPUS_OK on success, or an error code (see @ref opus_errorcodes) + * on failure. + */ +OPUS_EXPORT int opus_multistream_decoder_init( + OpusMSDecoder *st, + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + const unsigned char *mapping +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(6); + +/** Decode a multistream Opus packet. + * @param st OpusMSDecoder*: Multistream decoder state. + * @param[in] data const unsigned char*: Input payload. + * Use a NULL + * pointer to indicate packet + * loss. + * @param len opus_int32: Number of bytes in payload. + * @param[out] pcm opus_int16*: Output signal, with interleaved + * samples. + * This must contain room for + * frame_size*channels + * samples. + * @param frame_size int: The number of samples per channel of + * available space in \a pcm. + * If this is less than the maximum packet duration + * (120 ms; 5760 for 48kHz), this function will not be capable + * of decoding some packets. In the case of PLC (data==NULL) + * or FEC (decode_fec=1), then frame_size needs to be exactly + * the duration of audio that is missing, otherwise the + * decoder will not be in the optimal state to decode the + * next incoming packet. For the PLC and FEC cases, frame_size + * must be a multiple of 2.5 ms. + * @param decode_fec int: Flag (0 or 1) to request that any in-band + * forward error correction data be decoded. + * If no such data is available, the frame is + * decoded as if it were lost. + * @returns Number of samples decoded on success or a negative error code + * (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_multistream_decode( + OpusMSDecoder *st, + const unsigned char *data, + opus_int32 len, + opus_int16 *pcm, + int frame_size, + int decode_fec +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Decode a multistream Opus packet with floating point output. + * @param st OpusMSDecoder*: Multistream decoder state. + * @param[in] data const unsigned char*: Input payload. + * Use a NULL + * pointer to indicate packet + * loss. + * @param len opus_int32: Number of bytes in payload. + * @param[out] pcm opus_int16*: Output signal, with interleaved + * samples. + * This must contain room for + * frame_size*channels + * samples. + * @param frame_size int: The number of samples per channel of + * available space in \a pcm. + * If this is less than the maximum packet duration + * (120 ms; 5760 for 48kHz), this function will not be capable + * of decoding some packets. In the case of PLC (data==NULL) + * or FEC (decode_fec=1), then frame_size needs to be exactly + * the duration of audio that is missing, otherwise the + * decoder will not be in the optimal state to decode the + * next incoming packet. For the PLC and FEC cases, frame_size + * must be a multiple of 2.5 ms. + * @param decode_fec int: Flag (0 or 1) to request that any in-band + * forward error correction data be decoded. + * If no such data is available, the frame is + * decoded as if it were lost. + * @returns Number of samples decoded on success or a negative error code + * (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_multistream_decode_float( + OpusMSDecoder *st, + const unsigned char *data, + opus_int32 len, + float *pcm, + int frame_size, + int decode_fec +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Perform a CTL function on a multistream Opus decoder. + * + * Generally the request and subsequent arguments are generated by a + * convenience macro. + * @param st OpusMSDecoder*: Multistream decoder state. + * @param request This and all remaining parameters should be replaced by one + * of the convenience macros in @ref opus_genericctls, + * @ref opus_decoderctls, or @ref opus_multistream_ctls. + * @see opus_genericctls + * @see opus_decoderctls + * @see opus_multistream_ctls + */ +OPUS_EXPORT int opus_multistream_decoder_ctl(OpusMSDecoder *st, int request, ...) OPUS_ARG_NONNULL(1); + +/** Frees an OpusMSDecoder allocated by + * opus_multistream_decoder_create(). + * @param st OpusMSDecoder: Multistream decoder state to be freed. + */ +OPUS_EXPORT void opus_multistream_decoder_destroy(OpusMSDecoder *st); + +/**@}*/ + +/**@}*/ + +#ifdef __cplusplus +} +#endif + +#endif /* OPUS_MULTISTREAM_H */ diff --git a/Audio-Frameworks/bin/opus/Opus.framework/Versions/A/Headers/opus_types.h b/Audio-Frameworks/bin/opus/Opus.framework/Versions/A/Headers/opus_types.h new file mode 100644 index 0000000..b28e03a --- /dev/null +++ b/Audio-Frameworks/bin/opus/Opus.framework/Versions/A/Headers/opus_types.h @@ -0,0 +1,159 @@ +/* (C) COPYRIGHT 1994-2002 Xiph.Org Foundation */ +/* Modified by Jean-Marc Valin */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +/* opus_types.h based on ogg_types.h from libogg */ + +/** + @file opus_types.h + @brief Opus reference implementation types +*/ +#ifndef OPUS_TYPES_H +#define OPUS_TYPES_H + +/* Use the real stdint.h if it's there (taken from Paul Hsieh's pstdint.h) */ +#if (defined(__STDC__) && __STDC__ && __STDC_VERSION__ >= 199901L) || (defined(__GNUC__) && (defined(_STDINT_H) || defined(_STDINT_H_)) || defined (HAVE_STDINT_H)) +#include + + typedef int16_t opus_int16; + typedef uint16_t opus_uint16; + typedef int32_t opus_int32; + typedef uint32_t opus_uint32; +#elif defined(_WIN32) + +# if defined(__CYGWIN__) +# include <_G_config.h> + typedef _G_int32_t opus_int32; + typedef _G_uint32_t opus_uint32; + typedef _G_int16 opus_int16; + typedef _G_uint16 opus_uint16; +# elif defined(__MINGW32__) + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef int opus_int32; + typedef unsigned int opus_uint32; +# elif defined(__MWERKS__) + typedef int opus_int32; + typedef unsigned int opus_uint32; + typedef short opus_int16; + typedef unsigned short opus_uint16; +# else + /* MSVC/Borland */ + typedef __int32 opus_int32; + typedef unsigned __int32 opus_uint32; + typedef __int16 opus_int16; + typedef unsigned __int16 opus_uint16; +# endif + +#elif defined(__MACOS__) + +# include + typedef SInt16 opus_int16; + typedef UInt16 opus_uint16; + typedef SInt32 opus_int32; + typedef UInt32 opus_uint32; + +#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */ + +# include + typedef int16_t opus_int16; + typedef u_int16_t opus_uint16; + typedef int32_t opus_int32; + typedef u_int32_t opus_uint32; + +#elif defined(__BEOS__) + + /* Be */ +# include + typedef int16 opus_int16; + typedef u_int16 opus_uint16; + typedef int32_t opus_int32; + typedef u_int32_t opus_uint32; + +#elif defined (__EMX__) + + /* OS/2 GCC */ + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef int opus_int32; + typedef unsigned int opus_uint32; + +#elif defined (DJGPP) + + /* DJGPP */ + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef int opus_int32; + typedef unsigned int opus_uint32; + +#elif defined(R5900) + + /* PS2 EE */ + typedef int opus_int32; + typedef unsigned opus_uint32; + typedef short opus_int16; + typedef unsigned short opus_uint16; + +#elif defined(__SYMBIAN32__) + + /* Symbian GCC */ + typedef signed short opus_int16; + typedef unsigned short opus_uint16; + typedef signed int opus_int32; + typedef unsigned int opus_uint32; + +#elif defined(CONFIG_TI_C54X) || defined (CONFIG_TI_C55X) + + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef long opus_int32; + typedef unsigned long opus_uint32; + +#elif defined(CONFIG_TI_C6X) + + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef int opus_int32; + typedef unsigned int opus_uint32; + +#else + + /* Give up, take a reasonable guess */ + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef int opus_int32; + typedef unsigned int opus_uint32; + +#endif + +#define opus_int int /* used for counters etc; at least 16 bits */ +#define opus_int64 long long +#define opus_int8 signed char + +#define opus_uint unsigned int /* used for counters etc; at least 16 bits */ +#define opus_uint64 unsigned long long +#define opus_uint8 unsigned char + +#endif /* OPUS_TYPES_H */ diff --git a/Audio-Frameworks/bin/opus/Opus.framework/Versions/A/Opus b/Audio-Frameworks/bin/opus/Opus.framework/Versions/A/Opus new file mode 100644 index 0000000000000000000000000000000000000000..0465ecb2da42f4b0ab4d09362a9f3011949cd1af GIT binary patch literal 1555636 zcmagH4M0?NxnJ0S4bf9Bp`QKx_vv7Y(;z7!GPA_)=QSI-p=PI0_-Q)^^*$ zm#+D8@1W=p(Ot21&B``3x2t7A=Z}A02+e@Z)02ktRT1E(^zdJyYJ}pfWDljxkNjb*B6u z6iMwy04i97<~mcwOJ!&mEE}1Mvbtl`E-t&Yda2`Q+Jy9g;4uvCU?WVl&|O)~s18U96vpUd!T8FtE$2t)Iak>PzZd{Bn-WLPT08X0bo z;WioWmEj>79+%-M8U9U%-^%c^3~3i={sf!)_UdD}wkW%5a7ZXUp&xGJHygFUYV#hJTRZ$1?m@hF4|CD`k4i zFja=xGMpzvrwpHy;R`a{E5lc1_@NBHm7xMBg6J71!(16Ili>y#{#J(X%J6F$UYFrS zb#R;<8J5U!lMLUI;ny12TL|h9AnX zO@`mg@TLs!(FW&Bk>P_fd{l;>bV|S7i8+48N6OpA1Kb2gl2h;T#!0DZ`C2+$Y1g zW%!v4zm?%N8Ad>g5t%RIhVRO-U54MuP?X_V2!5h_nhbMf_?QeGGW?YcJu*Bf z!*^u(nGC;`VUG+WqJ!fn$uL`nb7fdA!!m{*2%D0hM&sNFT<$O!Eqt)y=!)6(tlHvCO++=E?9EGF&agdKn&+;RzXjEW-{NcF9l` z6C8iM46|f7SB5KP`0q0OoeV#ep;w02WjK0Va6FR?b7fd6!__i;QHH;f;b9s6NrvCa zuuq0zvB7bTGMpyEB0#%+X}PP$Ub?!ba%p9Cb?DtywUpUQT~FGdT3x!bCiu8|W$0x^ zRYpPOlNl&pS>v=Xt#r9ct5%h>;811dODoID?Z0%^IPB#ZMH)X?SZ#l@yvDxD`Rwqv z)pqAfCnk|vman`^_h8{2-9yDgx-WBL4bni)!6(C)xDEUl(?p`vA#)pAMY3N$VUO`R1A+g=|$Qbd625o znxzhDyPTyi8uHc%s~pwNmCFaG8$=Rggs=)e4q^qaag{DDmkB2I3>6LOR8#J9*_Tz9 zf|ca{A@&A@ro*&yiG5Y+iYgaz+OUytowQ-aK}M2_LNp%oVjqh4API)zI9NDHuu#cx z97CnIp%E$`g2u9CAwp5xr^~BX;c(fpUgydudMuU#3aG+FSg;1mj7bXJK7GJy$W(2tVO*^0RPfiR^yOKJERIH zX{n=h<;rqb=qL@Zga}$Oc*=%X4L^ZH>f{Q06_zRWA3kkWX*FG&(gCb45B9_52$Bp6 zkKx5bPvWqe;Ttxrik6MF4MYEq20D~<$hcwpPvi2bT)o64iJI#2TUW)?O((n}-RBuz_x z$&;^HsU{zL9;~gl&zID#!Qx=MVZ}3x>`#|gJ4=_iaI--XTn4>EYCj8CzdX#45_tr< zq`*3F9>ft*z?o|k>{T@(vK18NLP0EbJ+sQW3R~f-DgPHWLkLR!oGa-fD7RNtmzUX} zEG0EY!sxDb!}|WnQm}!!m8%w%F0l)<7TM>fhc>EULDBrBrMN!rHPZU$rcVh?wV>#B z^oLG_TEfe2owZ=TeeMIa?$8cn%wS!JAa_)(aF&&U*riWDX`g2UHbdtmS>aq+R=!4} z=MZF85uVUgs$I9?@$^&D?Dn}o9nu_2!?=-7 zLPm}}K=5SB`!&+mTeS?TclBg*U`|XP@l`It14ZR8gE}#N=N+;WN@69I9<2Sjx^Tl zl_aD?W6dALcm7<=EzN(c&i>2l(kj}_TcV<5iH~7F&QzXqA(!Gk&}>UqS3hZowc%XmgbW#dqIA=S*WCRb(ynrsB$C?5~>ZJppft;HvyBs2c?zV4*C&vE*#d76bqG;sxW-WkWDyr%vH`O zR}Sx4ZO0L^FS}LfswurCs^t-b%Y|ZKr~SW0KDk^%{?6jz3y|9m!%8k2ij}OV+?oR# zN*P!-cgXm`B3voAwF>G>(#3mw4PBZ`E6bOy8q!C)tcD1GdS7LqWs?^jd@U;aHYq#vTA0>Fycq5vpDdr^_weflqn0bY@poR!h@B z-Ni9_^2ggaSCXMaZ3f34HpZ=bNpXC-6e1RS%F3Gbse>ItcR`3pmuHj?nb1}KH1Mii zS+=?w&Xl1Q&XpPPG04M^w*gvY=xx=Kq4&v((lz!VCj@1i+=>j2CCkB)q~FT=V`iwX zlH5hB9Hmvz5<)uEEm8&dez1a0*bvl$wRCzbSL1FV-IH$QA)9}<7C&13ue#pR3D+Qw z)E&iO(_w|x_n zE+t99yTv8Jy1NuRa9oBobCBmz@?PfJRO}pLgv(RWnCc;-hPL8MO% z{!ml9y{3Fk&8<#$`vRDux8CXLWMZ&CQdHRJCwX=hISWk5-1sg1v)f%x(5=)34TApN zK1Lh*x1ziiNjpkvApb)seefS*Zj~!n-9qH{F+54=`ygX()9^6{2fzcykX_`#(%Z+V zFX7qmQMG>Qa6%1z8(hnjyN{7w%1a4lX`toMengwlKf8UU%f9NF6-y9LlUzS`Th4-< zP%UFKX$)*w)@@_ZeunmTM!nfa5SZr?Pmcyj~G z_$C=;NHbu?Z}IFL#!r#ovySm><51$E{BHjWyY1;hcf^tpudU2!?HH;rBT=XqPN}-p(4hbd~Lxqt^PT4rTMZ=UIgR-M`lSc4P?8 z4HBMu;2FjKy-R;DOD0TN9O0TM<9f`&nWhr9i4wL~3EN5IxGC(2vXL+)ta;x$1!24$ z^Zp|*_AKAUCIj=Oe1oE~_7b1UeCrt6gaiNSA^iD)Q8PBBWlukb&S%MujzyvM^h zkD^~0P&d5o;DARhvvepM3;ir?#P)5DCvwBKsTz4-ZKQVBVUe|JcZCHwO|~ttHBZ&T#XP8Q2O zpq#qZ$_An*tjC)&pj6W80v*h^i5+*mn8&q!{QZdSiaq?UeOAR;u93wJ^n7t?#BR~S zWv;Ux>#;40F4 z$FTI?k;Z2#^s!N%xnh!s^(g|N2Menk=y~Ci<)S&ff550dIiUXu8#oftbE#EZa%ofe zT$B&=Jbfu__aWg6QRBJc%)O|8aC!wx5HGcc2QGQT{|i4aUSfSYXsHAL)4RsQ1`J!n z8;%FKsEF;g4(wU$DA3YPw5(7C;p}_bOKl2YEwA#`azx`g@Ym5xtrdYw`o5!=KA3%~ zrTLPer8j!Ar7FDiJGpBthgPY_om9i&+{{F+RSWKmE$w0vkzK~9AoiPO?C-fmxE%{9 zq6jyJHkuYTFd^bA(cFrWHbv~Fk!X~e+QPW z3d)48X?-`X_kZ`03|lTM|M*ZyM!b%8A>QlSw7ygM+Lq>8?DXhX#r7{nqj^M~!dJlE zbY^1p>Ak#x-)4zbZ)g4L05gWAw08fudjoiJZ>M7ueqQB;FU2&yvM$`C^@Mp?l4_gA zGtSG5i}Mb)fP*j0y>I;mhMP zd&gL~2M+i0dhK|=U)}#sAS}w?!H?67fB2&Loe{gLbBSwl;`bz85 zu*Zc0!NLvnT)7ywYoEZ`!s>Q@uWD58;xaV0&4k}p+f+kkqKedpVC0h|bPecspY&F@}TJ}}5z zlRNp%_<3z#bH2DSn@h|WZE5-9OhewaGh`vme%002eH*wN&U~@Tz$R;23jLgBtDyDG;>sb@ zdBY!k9QTUlb;y)_vBa=dXtX8>?(V9!k$tMbF|00MtTAA<{4>iTMgKEj%rZcVzVS>& zzF20MhTp|oPPK6HiWIcrVp_PkY-e?G8TJb{B0^DN+tW_5y zECdY;{R0o?iw+%2(+Cm5;x=Y{FTkRRqZfkqRIACQc2rx~7Q||_o-pG2!UFqzy6`xG z^@aHt<(+C-hY>wkPeb-XaZhn(Z*&PS6piDisr$mNEzY}kF5IV68!`8yi=gpoj8Vjy zRefPs|7aCE7K*OyWrikbVa&*quvZ1p5qcH<>gyv#UCHM$vu#}Z1G)3oJe6m;z_WPa zatFBBL$srHgN~;cV%*~uES~yq%nNbRLb1%n?gzEvqjNPak-)G%EjpL^ce=rMsA2xM z+zUbd1p<0#-w6ynG*94s?N7zDD14jwIr=HsgSuwDhwi9_Vu>!wv&Iz({ooUEN|Vm> za$pJz^Bh~Q@f@odvCS%cBF1=Cz^YiM^kh{iJfM*uw=d&&=8NlH6H%{h{X{f*J`q_{ zINB9}S~Cp`MF%(_NEPP4C}s%J%?rhvY_&l67+S)83g~%mEpTCVs3|cJHu@bbDXQ)n zS7hBY&WIhlI^e>E)g521sRJbppNNL0mjrd)@d_2*iw(-UX%z}QtvB#>y~K9~T>VCi zwl2oDSztRz3l8FA1%(JBOE&YrED|0?#SU5l1s~FkhZ3rvdNl*`<@LnMnG%UsslJg8%ig`(N8 z(aN>F95B)Sf02I;Kbw^;K}}$wr|yTLdgtwT|Dk5sHBF#U?H6K| zfu5Ql-f{F*z&H>{Dv~5ktjobOi+dZ-v30ZCA&Iq*3v5yhWHPVSJGKkZOWmoBEHP4; zRL7Durtuvfq53d(M$3|pRdDfi9|vz=E-6J&`&0XsUX;hF{bTx6LI-RStDwpH7;xV4 zsB0%n+2oiOWjgdkE$t@lON(+rB4}{)G*MKcKsd9JfiJZ z=^|(nao0`JDt{Cg3wm%=`PRrfWlx1Q_R^i9H!_-)Lau*2v$S7+X69ews~ z=*rO@$qj`UDpcXV4O;F&&cwAO?Be_!vs}pG66%s0II~5s_LAg!*c%X0ddpEDc%oHC`M*SXP(*%;j=@w+sTzFcBz12d`H5*rr@bA?HQ*8i72 zwQ#IL<$rZxyoXD(`0L!btxU{6eQhc%I8 zr6=q-apdLpl!nKJcb3l+ww{k;poah9f%hCNG0Pc^-M_q6#NIOpJ$GVsnq^b%v5Fjl zk5~JPdTqit-)1>kJodz*PT;Z*#Bft1ealqiL{-rS>!Fsy3(G*uWjyy_pq;cd&@Gdt z8d`W?q+*>y~gMIjO%%m5-JI7^A_u^cq zs@l~3N=$Jd7ylgB}S{Je^bOWbi7cUXx=(6dyHZ>CD+E7383hkHW( zn^w!^^X`W64T5#tqKWSDIphB61xJ}MKKSVkw_aFcAdL38k5!BlCe$}THe3-c-z5L` zS58gphz_jU49@X=%Stc*55LwDq~mI|o-44OoM({`=D&E8`Ja0?weh}&_ngLE>Kv|* zi7YM#r#G!VtD+ecFrCBRYFVnXZBj#ykbx6c)mJPe9yUVa(VMd`wNcfl_N#JX8*sl9 z3NJXqo@UU|FF2yq7~_;sWZNWgW@b9qkyW9w-RoiA_l1NVzYzHQ-`vf-mVbsL#{zPW7|6F7Vj|y&*yPihu2J?rVI93rYsQeQK+=@8i zW>4LvPrcCCd}Zpy9p!p;zq+^j&DX4RzG^Zw2=B+17+PZ|)aT^B;w$B5!)~KlfdOXj z_`hQnrPzrwjJ4tBL96X-UiV{j|J42H+@gNY&wOob9`Y)Dxm<(r7sIiNr9$Fw=Ah-; zfn|{Av!HL3c~pMqO?AI2(CjOXnsIhQJ(p;^(8@;mKkv<%nE0D>gAJ)k5SsHw ze06X<^J#d0F7#dKz`Pfn#}Q8NIjB$J%?aLdzpeDEIdd%MqxtK5OAU#?Y4zpsO_-(0 zH&3z8HxHQ1115?kXpgC3k^qcQFChRJ_u+e<8r?WG47sLHQw@Cc1=-h;M;@3Vm zH+f>m-p)U3)dIcw$sjvoL$c%hcIFLAqVgN# zcV!4iprtp#o`HQ?2gt^G#- z56W}C^s>a*jTnYo``8(3xOW|4r;1BQLtJt3v=3bWy!YA)>V zScDU8LEW0uLgEf?H2OUHI6Q72bU&&<>FN)=V$|GKcTOa3f^ZwnG^*b`D)K_E;$a(& z_Wrf&PAb{&Gg>~l>c&3&&8#@`X5Tu0Yrq(udokm|j{{Mxe;{5^Ku)WVsQWe7lmpGb zQD1cnkrxE@9Gkv>tRDCX6FkNviOLDP%SM&t0wb68)urQNtjG*tI zqNnE)^qZnT;7hbAeQjptk)wUQ(tT4qxxRB-URG) z{hIDW;3_s-IYy=#K((Zx5?esNhEOF=i|CU`*I zrFk#yX+*o?sJ|ANrLGl*~r&<;X@sNzCT8bbc3a+>08mw&Zl2@VPf9dI_^kf!%L`CO{UY;R1^y z*-aQ&E^l*x3NEJ`IV^Ukm;3|l=C2|5M+V*yZW?NF@h;8>as<-tyRomhkmD`?mDz@>S zt>@!eYJ+K4O5;G!);_nu8Jm0ptH(OXyJ@kKr^s?KBRswVyqC-dG9qvWwPY=@0S}%z zZEAxNa+H}Y{>5u|qkR1CFr3==9PngoccY%(HUl=|U5n>UfQ_A8tQP*@O@QbV8wY!X z+EW`2&!INd-`K@XK>t|k!@4-sQJJ25;G0haDmGTQz^tUX*jP#i_KC$|S6R$&-Q&mo zcC3eXu_|_o0A1AAR`r&zB>5#b?=E#+uTuqkPq}@*ps0hM!|8<}-P?QPcOMp#8;Kt! zOW?v1#n{FdV{>fdQgY75gNsYt`QCr;(no!QCpJmb5+=>g67(LAFa}uMnmNm*+a6H| zE7uhTyH?{#Y8c_Uw?XX@ohnaUgA&%S!lMV)eErt*CiZg)1Cn3^J^#_WPB1&h?m7%^ zGTO$OY-itdScHkYV;X096B-EzlC1H9p(V$*FA$@FFZ{|e2Vr$Tydxo;elASh6{3Z< zZp^Omx^cTg)Of}f1&V0ul7`SDZkG}?3DIMWOp%$rslo$-<$_Z4o@4y(8Qz3lF^w$c zJ%^!1Z)*y~@Dq1igt$G@9_)(C(bq|QznvwF+ZDc@)-Th3`yI5ePXq1wZM63J(7uE8 zj|Tlyh2&jHK|Ab1siMJRxe%@)nKynnOSSj|?(YuslbQdZo6a;h`LPagVDzoqN|{b^ z9Hki%sL9-Pk^o#+`~=ozjOc2&dPxHjm(vOP#GSmy_**_r(?R-+0KG;j>opO5hFvTr z@~bla(<}n_V7d?w&Eta`DT1j_>7RLlX}D?r_WK$h6O!vO(&cB|mTSdhB#TJ(mAI$r z-)x*wfF;CW5iLT`-`^M`YTVqEm-4#X%e;i`tbuV6dpozM&VppJbk#;!;hBVY5`Nwf zBzsc*Ir%B^Cdn%8-?_==jv^sN__?T@#7(o{cW?WBUT$&{qHC>MszH=(HunD~YcDbF z+Dl40$>5xwT z46+O8>}vx`>5N})&-6-u*oWYUZJ~9pfsK$Z96QXVjOoa^s2@KxqC%2{n?`d`tO@hP zhUN*hLsO3PSfJ1PadUv0BfQ#@REm0m!xFH^;cXTn?XG^{WathXE%0t>MqSW^rMD$D zEC9d%tc^=6?Z|Q=!jzTNh#1q-w**9zW^#_KCPb1HNy2`iSU?P?RxJem>d}Z^(3;`F zo=SceZU#v+_=U9;5&NM%%XLa96P^~hlBr&@jB`3hLwnxDL+g!uRPu1$>?!ymUeZ&i zdAYQN;OtV=^(f69jJrA#a62r9-pA{?2MaG47uYVEAASc?e5fy{t9_cQKv*VdN|^VQ z5OYbNx=4tF{(q$34Gl@6ix#IL!TlY*7fG|L=r>{oPk)EKpy>WP^JYz$9*T)^}6qcFnTlUKEWAFZsSrd9hUCd&%YGlwP+i;P)s~= z)3yVaFZetqs)J$(I;>)`Xk;^U!+dVVKM;$&-+v2YWAF82#m=iWRyKZw<1C}d$yiu;6dhT6E&@SJI84iz8BdyHquk+DQ6%$f_R^6 zkfeag(&di8`I>R~(udQJwN&LRy4Z}hmlWFCONv-<#B?r;^jtom)cTrDZ0DvDeRf*U%akRmBHp1Rx~>yW z4WaA;QMsI(F|lN+?M}*?3|xw$V-uSt+~^5(5qaqjZnpiv!9L01+>9dB&|Hg3ay@3xyD}|QV}*@~yxi)g_P5<64jnM__ZOdGX|Prp zZtKa9wf!9<5$;1qi=*+Xa#_H`8-d@xuA~ynwG&S{93>?OO1>-Ml9QL56cd}yJDQfz zh|889Sh}p#yF_I?DVm#3iuxvRX^hcWW)yh;?|UD<_G_~{Pj@EoT1$~TFY?T>t9|z9 zHtRKSi90Wa%vPU6IVZ@Z1=am%!(! z^1pk_-#EEbv-y3Tt)}c3gxqU?t$O*YyM|8JJB~Fr;PxOti8*W%&r)3AYf;C(7BwaL z;xX)36yhOkXx{)SM&j1J-~HSML|hDrr}=-m;cJ{Omh?5Wjx%!)a8uS`E%*4Vm!?W)>W{dhXdRizpr-k+L-Lpkanx(tny3=~F1yJ}}Ofw$A zZ?orsFIpxJF>UIQ>WZ8$C^z z6v6?aA^K5Z?$u58-s-1qN1v)-AKZb(Qj6jwFG`<5q{PMdv&&&Pd1ne{p_aS_$)Zr2~+pUyD=p6qVz$*5)09HNl&XArh&Q<`W$g(cW?#{%pg`fhv}Y z($hMn-#I{90GE>7;Xy3xpT*3S-1b)yCn6CuXT$nt9CSe*F~aMHqrRql;eox-G=QHh!^IIt$1^@4Z`}adtN}~Pe=C# z^Q~ojJHLIEPT$_nZ{Fq*8``KVys!oQxL>zVIDuPkamSaU5@~l>d)hMWhmK3bt*PY@ z>(Nnu2r^N)FyAJ=Dg&}r%Vn~Gm!Gx^2}IC&c*F2l{mpOM~o<-O;H|wLnW_(1XYixua8=x}#GS3rtm(fo&0%f#}Jw z+#=SZPSZv{OO|x>(npe>1n)%>_cM~wX~I$5As*e!fi0TCEADv(z<*QRA~BUM6T*PE zC;djxs?HJzN{qGRuqxa$O$N^A=3p%sA^Mnhqi1O+-APAo_AtWIq?ict1z&Khw^L24;-od>?ShLUW(n4=zg6#GVpIvo_!e%+TJiQ~C0+(sPEx zK6jMktEvi$)>2H;Z_wl_TbiBB^ow@CQ)PMrxAs9uY6ZK1*-md^7p&}cA5*<9fT9eV zC-fn;Uw6H>S#_0_q~I)Ax&xUn2i9m1gLA9>J=ZzJxYp=euewV}(wSH8#I3xp89qKO z_M?>Zm_VTfSVzn)@q)kPrlNUor$w@Dsi&oTARTt>){WNvkRvzEG>U(@!t{RkZ1;4vcqbJV)vtxuSI7I^3}*!$TCb+5%P zD%0sa5(mYY&b93AOpg!bLIw{t>jFxP^f$ETh|uUM%CmD1Zi z(pyMxr#v4Ea)3VAMD_81Cwh+nf9wITTr}tro3LDNbhD%;FLbti{QP%jX68emoId@t zPfi!$hv4ZMpPbgAOnQG8S%@=CU16{1i>LN*aa{Z#FSWiJ^j{nw*z_{Ez9uMLPotGpi!}?iL0me7L^Gxl7yDsYJgdHE)`2TXcJ=`2I zyO=nF^@n@*`Cf#~J!()x9zw%FR)9xG&vZUM0;kf`36dFXt&r|8ufz>ijQjFLl&Qe+ zvG7U7nU*M{d091d(57tO7shz_cDFHjc>QWgrcg}!Mo+#kZTzD`Lfa|_@w@`r2N^4y zSCaj77WesvW>vo?(|^gLW%Zl~e#f~y{1Xa~(t}YUSJ$yo0_We}t7;}Zm~W#h-BAS@ zUk^+U9%@G%7F5s9kj~TJq4EAhba+2nzM=UwpHfA0Y&~zZEEL;{`5lTnhC9Y+^Iw{! z<@z-Y;}?hd)^jxHC!)R;d25XGFUCyO4jwJB8vizimWPQZ9y8^!-RSXN0KXn87T&q) zuG9uREb=SJe*?+XFb9XxZuES1p$HP_&<3O{c zI-0r2cBAJllpi`ly$&8CdqH*8{pdcV#woR={n2imfz16GWNzy@;%T~7n{_OSGo^MA zC$U80C6*NACgP$ASsSf}bAIP30nw-=9yDfi1ZO{K;3Lw8F421hOZSG(E4aLmqr=@ zW#`0nI4XS0*Fge%3|2&tEU_H8YmaWOz}Kt%zqz46O}#EWz=e}N@w>dWw(lVCn=o># zf#g0#vu3Mxw?$0iI&b#yQCPp?BP9xDh!i>W))h3{J_WHgk|4plk`&j%(*8 z-_t=72xA*e!e3%YVslxfD_921lXC{lkMLdlC0!w8on3^CZO}Ce>I&}u``b*oTW|C{ z_k(cJj0}wvE=a5cZsHRu>aXoEBR(c+Fw@vTY(&#VPTSL-BfMe_KdVACkXEFzIb$i8 zV-vERZuBht;V~OGg|MSIHQ*s|O|hz9OZ<8;SRpr5`0&> zVLiL@(CW&T4A{aqdZzXA%`a7idSpUhX8Nt?d1a0;!oRAYZ#Ft`cf$V26!;wr#m_;h z6NXgud#YD~x>^VHJ@p@j(u#k_Zg{g_4%G07q-_UHv-us53JN?mXDjjhe6|W%4(e^l z#_|8WcLe72Wy<(U-@iF8_3Syj@ORq!bkdgTQS>iFkU(FUryY3fi9Z%(ArpSlI z#EVyj|8ssW>OG|upCj*WOS6Jv;Hp#5z?6XkMMNM``-y1uY&vh!Q-9QHaIr%APw-~Mw^pG_?Y+tV)ONSKv7KM{3ahW9JkYQMifNzh?c=XJ{XH{snu_FVjB zCwXD2oKHCrg}EGKTVC;pil%^(P7f@V_tokSs~&R_ zonu*qyXWg(*iA;*O$=rFBYkVT^)_9u5qFy>jZPOZ)qVqhJnuRq$s^8mPkUi^4V|Fp zapN(i?*(oRa$pvVF$RrIFRBfC$fu1~CA?mA!zul*OR@_%;Y8M_5x?QY71UW5i@H7c zoTYJqtFEv+eksONkWD@}_E)weOzq&NjkQg*seLEaV|z6&*htH-v_ntSpBcP~Np>0_ zI}^_R;3T^Y_HK&mtST^*J#!qhmqdEC(DZ{Eqa{iKxk7Ql=5^G9M}1-U-gy@3=2j&< zYg784>@_*of*aT3o;@hZ$+gJa!Jenh2gfz{z9JZrQ_G58ad0UkkYB>$En>W$%XrPv zXzi6WWALv5+;7Z8J}603E`{t6Q)|>UB{Jrk4S*OS(Q*jcAAHKO7GVE(q=%9n;z8uTBpAc+hsjB$H7gVQ$l6RuWr4U8sfU5 z)0LSA3_4+1-Ul5jtpB2}K=?DW2nxUV<^i1UME%#ucYi$3-Mz{G z7Z`4~-gmZGOl)Rx7T7??aA!>bzb_MM75{egY@Pw9$5Su~tJ`lNO9?XXA{Vd2-O&V2 z-E%t97H(q!4Y$wQ-VqMH;HY6dexERW8lwbkxJW(soPHZz7vyQOuTJh!w;{JQ>^OD^ ztMT(;xRVMVK+F2H0x{kkq}sr>m2dFgLjp^hBBvKaQsC+7o zYGDfmF`O4VVZ0 z_c7=8BEZfYLw124?-x=PgYO!=f1j!ve1~mfTr1#YS4kMhw~5UAT7XkRGfW$c)1YB- zLTi9m!IS)5-bM4z$!ATvF>*qY5vW29Zbewo6yxABl^IL(zU?R{?{p#EXluLl4;6O* zFmkSRZfo&{#IrV=Fe1UiNXIq`xF5&5FTwJ?bW$7S_Ybve2S(ou**-1!{(<(^^ZS&6 zo=)Wi8BQdN(;`z>D``Cn|Kb57_@x{cNyEigX-!YT4u*vNXYpKkHMmJDI_R#0l;P)D zNv?e@ZuHElK=xxa+OEnN&*PlW>eF>cBeK<`J_*~Nyi4(YTwp8sJw=!=>e7}R$B8n6 zH!R4UEZ!f>kTqrFci>BtNwt6W{h9yAJ-lyc^-ewA#b4elz}lk#oDYF z&6AdpJv8=Haf^{CsPMif*zhIGQ`)b^EDKA!x8-ZmZS=*)+CBwDUU>J{;(GH-zA&Dp zz2sByGy?4-^qL5aGXnNhDz#m2{2;&-pNbpJ$~GE-yk^{2H3DwQgc|6YZu8%;!tL+} z`Liho+2ngkzs~kJ&g^EKoYT6;u>*?-4&eFJ9_ciQpBGsCnp)5s`d2l^WYBE(cFxqY z3UGY1Vk4K1vr#<$2y)(xiaymfzE5@a57r0H;|%E0~;2~rPJwceZKsbn%AY2_>)T4{WQou#|PHl$IZy?;-xRe zK5O58BqHT)+?>s6&AqYu2qT|*tVM+#IFq)w^WM}ti^hiUV8&AfoEbqifui8>)gwE0 z3Vx0Z#`eLhM)I)I%~I(vgiZB6!>9&Lj)ncf#GTU^YrMUHI%Ac$`Rc2`zVEEwxE!&q zdB>iA=-v&>A8Oq7IN9G1RgPRYoqYa1i1{zE?m(Wd+9x2p@2}O5>D#~CPv?tikjn>~ zf73t2V)x%c?_Z)9s7f|dwZTb5XpbkJuB(a zem;IovmV8{8J>) zdDC1mMmM5EV`d32qNeW|N5H z5G`)fLc={>9FCl0vnOIFB)7VA z@X#1N*`!Av%x2q{!aw!1n~}{W<+u-YMn`GIOBL%SeSEQ)n7#Epa;bIz=he_Pn;wM@ zs`me+PuU#j*a%Bc>sKJ#Qb8Us#czZXc-|S-`nhy=px3}c`$Fg z1@^Tmto^L$!dd3x$&1a!nQ`*Jzdl7+<^0YG?*luFd;P3vGQNQJdx{Ag^7b1a@Zq*Q zR=gXSCA!#7D#tDE;z0fVE`FzCyRv?fs4r0MNB~vy`VI(c^!Mu?6F5_JyV>D(IC43Y zj`TU>>27aywO|#M<2iGtW4B{@ZiBUlG`nh8l85F6Ex+n{u<$e%@*i;~)K#S~D-xA^ z;I}Zm&^d0?;bo9Q+(?X!Z|zbd@jXzrFv~ViR6fYrI5YWL-WNUQbjOR1jn?iCGkgo@ z)7Cp!D$SyVUNlckJDt?VrIf-tL)az0#0I}YiMAivS-8dF`Qd&G9WgSXjFfE2jL^MI z9xqEO#rc%!X2&{Yj%qJATF-aP@Ny|e8Vgzz=hHC`-;lwVQ5qbT3j{|dud+No4_w2! z%pCkSJJvgZ)796kS2_qcE@kYGVzrohWdwVLX1^lMdx|2w&=4^*UuvVd;iq1r?dNZ@ zcu;(#wx7Gc3YoavqzN5vhsLK=L?Xvn)z323@Yz_z1P|?ns$UUp5#x;Mj?E4oHh`9IZR8_=(yuLg4m^jr7&)M%yR5XsO%RNIm;CX}}@JzN0csgeey!mg+ zf#^rJb#k%7z?&0h54<@ef1vIcBk_)}izBvm^3(DDZ{*kD2DYyli!pKrGG{>Br25G@ zT?sQrcJi?d^H5eo&OqISv3Sq#`rV8?{N!}~Zi3JiHz9JMZUxp5J7=J-Q`r><--vQD z!=0)|?p7q?-V`^X)AgJ7w;gqPQ_gbmiLzu#2SKF#0DT*s{%H(19b>1C?Nm&+4QzWo z8qd~&?OTCUEY>LHhFdYu*iL1vwJY`Y*eakjKHYxhng#ZGlXFgJl>(v*{+@cpey&>P{wx!$w;{Oi8;@OFKLn`sm7 zr(lkNuANKE>3E4PLe|Umo)^#K7SEa%-LL9tN~r-YVrO9i|+cXcqr-X!L1c0i#rw z1l=i>G@1YZk1^Is))jgD4%={J2r zh+g+_8OqEf*1vXW@NF_@-fSz%!)hfwKWJx0@}A7>colXQJQTXUo%nytNWkw{X4LrB zaoi-bmleoG8sDK9h@Qccxg`1$PC12p04HcRHx=?SgaxqV9w00h!Poz$^EQEgcF`Ec#w+VK`lE+-z9DUhuL&m@TVmW ze`%np2wy8Mz}JI%hVQlXn%E|MmFb4p4c-p)TZHz(r(!&1Rp2ivq^e3RmwVkY$ol|~ zXUE`M#RQC2prh{|%{sDzZMq17#&#O;eI34&9D}i=^lC&MuoDCM_X!8bq zd*J5GLVwRaT?zOehH7!c8|k|;`t}y`w4M5A2+yF0#x@P#A-h@7v#B&oQe_$k88DRV z{q6Z;RxxgsNz);-3({uxDf$fp`9pt>{E3HpNt4A~N#uV|(>V^ujOXGTg_+2WTWc}n zv|0M_eU^?N&rQ*KIpa(@$IUD>qAsJ4n-V`b*0^5!Hfp{=oMMwSC%O2S~sTF1L=`C<65N)uHWAXct zr@+O}Mh@M>c*EZ`z}rl`;VzzZ4BvDf@r5a7w*1_>4_dMgZ#s_Rh%vS}8~3xX+oQbr zn##zf=u3XmfxLwWxoQ3Fso2*d9c7E+4uprRRvPm-_?o^-wYYLbqp^7+GmQq#i?jCy zC^ECipnOm{jY}QfGFMDC&c{#9#6M270J6!+Liag*Z;2m#Z-P-wa{iMs_(j}i$khl< zi~rsJ9_=MM8;^*}t?M0Jny~|%9#5{NDOQ$1gwbqGeEZ2TtRco~Yz65CTN7Ul4c}!q+%+Y+c@7IcR^nHrOKe~3Gqp-WFy0u%u z&&}NkigLm?OZIxL-6N|sv5_X$9dQ58c|EdYx(5IED4y*2Ss|7Difv$_k$JTDxglA3 z{J;aq#WT}Or5b3xaiy!hmTRv76D=@0AYpXU9qMOXx(v0iqcj4wuS&Il9IVx1)K<5* zbOGADiMm|0`GeHvcY|%p(B=k6`lE?^USX*ESy(}e~(wxpD%?q0QzWRN6c@Qq!YV%aeWhQ?^n)v#dAQW| z;`f7Vfxl3n68RzH2hMol%lS{ayDhFk!m6V)BM(;^c=T0g;DUNRTJDN(3!vEnpt(o(`e}nSS*2;Nk zYmtZc_Fx{`TFOI93g)4$r98BxU>@39%0o*+9$J#h`*tu7Es1#{iH%A4YLxy;z<`;~ z{qTG=ese4C!+K~_MLeRIhMa4bXxxX~3o*~wUVujJP`(@};gM?B{LDd$ch%dOdB$-COVACkYmfXd1DS8pAErcC(w@F~Yj z&W|d{hry%10e*$g)3`o$cg$h3mN`@Gxp9a#;7bnw*_&}r3-;_;AN+TchGCL5j5}qh z!-pJ_i)4{-6tjG8j;NHPcFh*#{J_K9rdveOUGv$z0#UPv+99XPMPH#HyDWfs*&)Pq z&+$^UxEB7Cqq6@589l|X3y%x2C;7tBn>8{w8=Pc@ttqkpEcUK~OMW5b{*E|CL&^ zWbzBqx2x0(@n_uG$XN1iQoZEU;=3?+_-J8Up7Jb>@C0ad9? zEK-8X2GBN*vMU?<5VHSD~;9-PfvEEHT5j{p;Y)XnT69g$`t9`m|aXKCmZp-H2lRY z=tXW{#rx=C5p#4sN;{am}&4Q%Z3EEWZYy*RAX#c+gxL z8y{!LI%w4hnsbj_yTM7hMVu=B85{5aj-sin^I%(240j!NVI5?pH*E*B_jNe04bpj~ zvW>wqJpB_-@z}?Kp2B|O%D)NgF(xu@3wXaMBARMc$FZcBgt^}Pu_~h5zFuaU+GZBi zSmS^9s)UpYR64Q`-|(_iOxdWbaz0_BOqQ1@9|IgWkz>Z3Ji^=peIIM) zcnR|tdx`RUJ3rHM>E!vQNC9O-jX+Ky7hn4w?QD?81I`D8YC0PMikcYt_21F{aMLJW z%7fFI3?D(R)EoFXNEM%zQ+Y9R8lP?z6N?PO88OCKZ_Pgo`WQ!5Jh3?3mf6c^|23Ap zt4|;XyCu8PVon{4xZ?*3#2u60gdT@yHA#l02HrL=?+ff-lR=7SVpki|=E2{*!y0{d z5oj>F*Ntyzcz-eM8~U37ulm&52PjU+b8++XzK2e{(ZC^Nl6YZHS`IM6x>T=p{N{U# zufK@>BB@GVX+-@vm2oans(ZpyizG^okSKLU#2O)|^DvJ|l>Byyu-9N|g0JAQ4sXLM zbS!~4fircg4wg_Wd8%>4;#BO(HaVQmSDpU>ALl<^h^N2{DxF{Wq2ZlIc0yXSu08_3 zTZ)x>T_fs4zUjpRW#OK3#o&I{gujA(=iB|$O_G1Q0sd*MGh5~F?2E*W-JlE3IQfSn z$k>x8kLty$BNfdlxBH{9ZyO;of>E4{hbo+}ImrXvtke43uyx#f;Cpt#_pI|YAH>-f zi#0nTA9cU?g=6G%t}ycLuGZGmU+*{t?6>H!5c6u-Uj zJ5zod@YPYK8a&Uo{+`wSf>N-^Ht%gE8SlhYH$)qs36hg7FOU zQ(lxj_!>~J8IQ`nH77~mE49w} z&UrhIB*Sj`!9DPU--)B5K2sq4_5(liWYZYf>w?f)*P`@HHnMKeCK=g0gcG&N#n&7L zWHA`pYaPy9E(Q0cVQdFwprgHuzAwg3>!4L~(6GlXq3rjM|3BW|1U#xLTN~c{)Tv5M zNh%>A6alJ|5HnQh3e!alSgGL&AXWw@hrVcce_aVfGin9Yn*s{}XZNNK*!*X2fc-el_pDGc`>a$de2!)*=?{^X7>Kr&{9w6Pas4x6clrUXB^t@aD z!A(}lfGT+&X!X7@3z4j-Fi$Vh=Kux0p7(`&uF)!lWzwnxZB;_63Y5Eu))a_RlPwSN z18WUtrlWgqTWR!#zql4#BPcPmd-dz>e~PU%#!?-}p}&0vvGvB@)Yb@eZlBm!Dv`ZH zeQr2x3#q8p@oV+2bcxXRjduN|!V&aV!;PsD;V|l%8f%fh@GIBSrBO~kIrfapm>J4b z&%%z6xnU7juqv{LpdKZJJVlSd3X+1iTtp~t^vn}_x(|rKRv__l@0+Q^C9RuJ(UuWP ztQS{$^+FbnokO_l4qP>K0A(g$IYRaf#874-PWX=>Ak418a^fqXUO5E3=xPN<3+nKu zrCH`{pm8N2Hkoy<0je3+@ON28ZcSn?@T2Lui>qrAbMP&#dhzpD1Yuz$!}I&<=Q|R$ zpLZl^Kabd2+_i+~BqjtK@X_iP1rS^C@Oi%rZ}^sEZ;L)~be#KnT%A*sTl+;s^mbME z;0~GvIuUtnGj6>CZ0bRHbo6Vk6bfp{8tjaSp>pGXLarSGa_udDRt?Fhd-1-SD~q#g z-Akxs+ykbH1=4RKR^PgggiYB?fLeQ(?3?s&^eOk^bsdSDs&FkaQvGgA%zJ}bwU#gn zLt3+Bk4++WkQ*3FE43Cn;n%r4$;rnPnpF2lHg?0C?AQHSgf4rWjhhFrQk{EFd!b-H z$6>qwxktV;oyLQbq64toLQlXS0}B>n3Ubl&x-rKGKT$h-bLvk*3-gYRMA! zeeJJ63!&x|6QrTNHp{H7%7*QYTVfs^rKk@o1?<3`s3SZ&8D716uN!(Hpxj#Te4)($fs6v|#zFdDq4A7nyyD!gY7+DE7Srx;swA>Bf zRQ1Y7R9(Yi8QHW@1*<(i%br-uGG4*nw>Xl)UcufMs}XB1_P!b5D{^A*n}D6Ks!N@a zaC6grES;D>^uZE%2W`yysIRsKbJg5Px=jpvL>E5!1c$2!Go^)zSz;SSTCrT#`AnU! zR@YUU@Z@r^HuQcFnRrg!&u;i5!`bK9Ex_X;bT6j0DL$9d=SFy>QHHJ5MSD)`Vx`64 zx2`~G2HayxfVAhqc9A8$u~_W<>Mw%NChe2P2NHXpU~epD7P^Lb8WVzb8rqxX0tbtG zOP{yLUvdwpyKxk(u;vgO1thGIu74gD9X_$b>2!UA+NT)meL%E=lL?$)o<`}78j5l` zj3=2;FVh~Lb*#2?NlUlKLwr}z9*;6p=Ofk?ykEdurIh9`Vb%G|-+aUhTQ%)pwSF;e za2MOT9QGBA-oEgw!HaO*uCw2LY1Ojv%ZcrkPddI7pR#RSxXJo}3(6bj?_9P|%70Yt z>{^alUsnpvvZ248bd7pWdrm3gnSi5F9R#Mg6I>+ukG{E#m`JTFx|W+{L{~PVuaw_? z5n19nzC8BC5B%0;%x!%%f5jJ&sAE9jQD5Z4>Yu+HyXUS3yY`ZL#P#K6#uQ?Jl`+A6 z;n~47sdHI=t-;y(2+!}Vt+TId{e)V>^hKn656LDEPm4$KHz>!V)QxzxI1JJwqXemX0r!K zOo-5$>R{(`LgOuzL}zDhz3adHE0?jc`85`abaMVO(#Z0g+|tPg=;ZCFL9o5vwNTc{ zUSOXKM_jKl7`Icb+%1iKsePd|6xip^+O_sS`d8JSLF^C4Ou`qDl09lCM!|z@EJa3p z)DK3+g6oVhk$vG)?c^1{>3?&{8XrcM4(zBmHzQ8z`xa`fZG#FFIYFXCNrK@UrP|$u5$=ahmx4Yx&Ca|kK><53`2ayub??FdA zEG>QOor*nW)kN{2+}6`jB8t;4g`YO|!ixw({i#hY)I&$;nh<(wNMA6Inl z>04EsBXJ*<2_)CEe?WQkz2)Y_l~nd8cn;!`tSJ3)kFoQS!frJ?wq&@|hi@WVg>Ne# zp|%mQHA-QhKM)gXpn<^iEK0gW-zaHI#hbwrjex)U*atswU(;tN~xuZ!Bjca!~s zOBgRV*eaf#?my#Laf7X_w_iMk&&Pbr=-O5Ew~GbOpsw}&yhEN5r_wu;FB`Gsd9;EA z7jJxgDD84$$n=+vR>+>%wOmBIkFQ0mv!k`JUO@H>zj^c8r+s+8pOMuoCuIEc0-o-> zHoNbM8fy*3j(ibW85rk(_FB9aJvNV-ACoRb+zrIz0PovKx}#?J8;HH3w%!Y#=cG}u z1~tl>;d*%L$#1-PgbwyK4ip1?w~E+`h>kmk6X!bEqdWf4+PMs^sbyw(gBjLi*~QeR z`Q_P>*8JrQq{qM;$r2}BmRDF))OfGkeT3KL7JrOdTwDpiAR==+7kry82|m<~FOcvz zX#`5(iD`bck&#cK)}e@d!k?nnN!MG424eU*MFGXJ%}{vmpK;-XRZ>L@$sEkNze6=66cWU>48I(if3bpOAN# zf8}zduUNsxro!7>5U^H*-%FDaWO`bcB?J{*3-l+SXaK$ft1^amoVv(`UxX~laX{j% zE9971Tm`?S!jAY?@OH@kL~^MCW7w-eHozJb&v6&YN~^zXIeK0E0y8GfTcnj<0oE_t zbK&q8n5SsnGI1Hr+?Xve1DoV^odN!!BEI#C5?J+llF+cK3bSwLFhrRIs<|~#i3m~m z7ZHzvI5{zwW974X{vby;v2=d#vF{C^4G}*GyN9usTO7(>-)8JY$Y;;HY_P035${8> z=q2yML!N5uen$4+gDue;^WiUm$CGd%A66ss4LeCqj|%(~@Y2gR76vayfrY%|F##^Y`|Tfa#PTlf472onI>o(toL{x>$5Cg&d+s)T+Dcej zr}S$`;RydclxUak19A`bs-^xWloI3|DI>+-o5{ z4|?RaI7w>^&7N+1VA@RV?Ol zRJswV*ZGX6+-x?mukRsG1~yeLz)2m0`X$&?hYMRG-+T0p}#_I z3SzsJU`kMG?Xk5DFm*4-d*9Rk=PRVsragP+=Cr~6D&dkgNnQynrcG;PyBG1nf#nnP z6l_A6Q6_iLY6^HS*%$WEIeO27n7?;-{K&}C%OrD$3RSQM0LhJl?2S zoFY!#ZXb+2>26(^`Y_ny<+@MRA$oY8f#(VsKlRttIfNg>%rG@eLTUUCDy5j;jk#kX z?$2|fZIq$3hs2O+HW-Mo>lIbFx_Hk31Js{eX$66r=7^KTd;wZ$h*SivlNB;;g&k%S zY3BW(6CZPIjNQIx$4JZLx%c=n=4tHf`rL@uN)Uq2sKNQ5T_Ozw2N0D^{RX@nkN3+n zS^-dcQ>h+=(}UiV*AQK;F049eF4X$rUn#ghBJN_A-(U|qN$P2%QrL^M?okCdt0<;* zhl}`>=#4*YjbR8n2f1nD3F$OYC(K8BFV#vT*J_iv6m_Edpp~^HQoJ9ZMm`-i$|1ZZ z)yR$-(VF)A8pZh!qDJ81TE;Bn${&)#Z35;q+J9|CDa|h8kfNIWp3sl*)(^_a8lY(A z^z4y6WvGX5wR5zz4ZJxF{*BE_(lIf;cUWFoDIq(X;o~(+z2V_k`M3-}F*DF!c{9@n zxxlB>+D*haTJb392y_FF8st@v7-R#-nLvGuh;G~Vg{B+6>Mf66^TbnKl8e(>7O>LfSK(?|!v5Gs^ZJ=k3L?7j252do zi3fEBJ@2pA2uFi0(qNmc^KC?%Jj2Q3HA;HQd9q7PB!mKC01VTDF-1$zHI~r#mwi6rlcrfuW)gRy+b+p?RBb+Q}3~@3m zaIIpV!_moA3OA5ixPE~>-)V5tJ?b_);zVNCEOa1}R7i5#90KxHc!XyHr~l!z*Zf~U z+kt22qvyY`t-5U7*#s0DY&i+c zY%XWuLgt8FaLO^ELjGf}Uc^;yJ=P_ur4dW%V87=|^CM|6b`_nfu^*>iLv{g0 zP|*DW>w(R}Tz8U_#`2H+`@0l+@_;l#MtA}bP~2#`n~lwpL?FRoJ@+^xV@*cq!Bo4G zPnzd~CE|iJGR}l&ndV1wtt@A#G{RYQ>OMO~T^)4(u>Ai-MAT*h*Ri>70p1WWly%18 z{Vi=j`}3e&Z}M#dLn+?&(46j=#@h~*^V^Va8sifOMtb}?VkuwHssnOFFoOpjJ6YDb zzmLOPIx|2=(O+itmszk97r~x>Za}YbK5*r8eVF?M$cb!0W*K_;bsv(-9AbVM_5WP- z|J*XitkG+L6u@Y?OVh644rBHRmRV$Y3mnF(bNZl-7vlOtN15Z^(J$H+7cjDw9T$aw zGj$)ZfEpmeG{(Ai4TtA{WYb94cRJ0zhA*jgGg>i2$u%zR0-MAxb0@tV)UuiRsN%myY|qs?B|&J-Vh!_uz=uvRb7AxaO})GhGIi&*2g zVO3x7Dp0T7{QftLzul!u%)Tg?6_6COiRTOBo9w+8sQp?xf963uVAUY#g{(R-E#RBx z5jRg~nLwoo4eoj63r8GJod+KBb@q7a#sxj(!5PW6euj)i56LSTF_#64vB${J?u z0kWLR(jYr($ZY~7RlBJ@0T%C!Mc`HWmYaUpHAX|3Ivk@F?P`_I<{6oVU5cV#$$A{W z>oO^d`xMt{Utq>HvwA+zvwmecW;p$~BrS^|DTfwC(ye20j}=F(i-43-fvI_eVbnhR z2SAh!Ige)*2we(|Jm*q|#B3N&D>i6-O>W5;;lYOgBeKHb~+o zAO@yv!3+qtDfl;tm45O}#LQ&L^CgD_WYKJ>+7sjnxD#>42cbV7b44z$Z&$D)SgO&M z8nav1rBGreiWXeMY~VCYFE2DcGqNd_PuOqg()A1IEhgjvfntiarm6gOaI}9SeTL{~ z?3&tWA2Fx}{#pb0t_+M5Wjz=`IP*%V5%7C9fn{V$r4CysXB%RYG}&s4CmtyDF4*?Z z(W(=xXK!vHj;GO6wJImR%X7= zrgok;-Vf<~6VkZ{IYDIUoQxS*EV3nyTxgtWFSC6Jn>sW&_}^NvgHQ3cRH65~&j4R! z>f_hXVC}9*d(gqBBCkUGg;n@B0Z(D+ICs6RCHN6rIim$kV{zgcb1F{_f zrRSZ~!+z$h`fX42XZ2Ne)nb=gF{eFY9LsQ26uVGbKsbeTiy?0TLw6@aO&dthd z^@P*cXK*S-->w{6*skPtol!i;ECv3z4>(ERait_2xl*N%gC{kZ9laN>I?B`$oNy zWo!CV*C;9#=gN#4u%0LantpxPnW{45=?dC2;NMT9;a?)3ocH*-Z{pGs({zNQeK*_l z!GH3gQBg@(B8M9yKE0^N*(%7vL_#|ABk9-|7$qI@{XMuEtpC@WT;U7njr(C=Ia9$a zqv1vJJ%jQVFTIMYzqP?dvxNcX1ZqYWzXMirGNyxXGCX$QAH zIoygC$TOOdi!NJ61U-W?3ngWr`X=j4i@4gE>V8)}Mna(SekmmofDbPco_?#8yW~>t z9g&4nCZm+c@RVHOifW=(%5Em}3wn=p8N&?}W{aX~vpwy+qD!s0G>VX!C%Z-@0<9Ui zcxrgsd1D&1HgukbrG4OvJ5Rft7Mv5@`+^B#@$F!8cPgL4+Vzau-TNMPt7db0UHR#9Ug4;KY&z;H&f+sVVNE5kEUdJbpRS}m z+F<*M!1@2FDjvM>UZ9#H;ZLsJck}=(QQ)r!pG{IlsUxjA$!V@s1P*|M2S>^SK*iEq z(!Ov|u0_aOpbB2DpR$xotaGVC2EADxa!M_$|_`)5h^P> zAh8}A7hcTHdOf%dS4b>7yHD|*_S~T$SCkor>V*CwO$m^)VyA$59103Np+BkNbj5pD zJho`K<fUj2|hgGSvfD_5bzl<7_BE>wl2ky)3U6kkgTaP z`cz$=Hb-hPm~EorxlwK!FZtwN5#hs&wNu=QN}M&zzoKEA-2NC*m;>|ypme>OprA14 zW?%TID^4+_OPvT?c4r*8>(e{qkOR%>hP?RJRlz%~LSIgL%^r6iv$}F!xyrp{Bpa)O zPxSq2HTY;pkBiH7wkyT=EB~u)Kjh_=pk6~+i3-~j_~~*yh4YHSsw8J2jnj8J(e^z3 zOqW`}-F6Q7nfTo+ut#Hwiavd>`W$ofK7E(4I;~wJBsus>&wFc-w?^ep$8S25(ES2N4eFPF8pnldeb*g|CRRffsT-c&&XgFLitTpAc|x6~o>K;Ru#|F? zsm<-B%6+tA=wUxKb;fBSdq0(=Z)EAKjHsvUFi)~^J#G6C^ROqVRqv5=ZSc18>fy+& zfjt;<8ve-*CY(KQcf}=+xLhiI_6<*esp_HO^fu4imFFKweW^U%U1ofEJ~Mw+t)4Pj z8<$nsF7PiaziHFri7fDC^~`skLw?X#sy;FfcWy!sv`9FkgD|zD{3wmr*@vBf8DqBI zuDkGI7j|>V3qj-Z>q?%E`L`RZb-3fua3^M-*wyGsy&@ub9o1*5`Q7$*y?}cv|J?e~vARl{VSLb? zgZ=ckKK-3O)i%+4Z;v+}t0Tovog>|R`$+f5?d#pxp^dwUm@&l*JU7$-0V1m=_YN)B zyJxx8KrBwSA>K#zc=-p_#PE+ZRz67xo+aN1Vlk8Ak&jZl9cOSBag_%A1}}q~_M*G& zm;6Hxg4JXc%NPQ#w6%&idiCZ0jjJ3y*9B`UcxA-vtrepg@I5)hpJpPCoYk-z_%ifD<2*1zLsQ}E3I11y zBMwswdr3}$b11#l-DEXEgz8r8&+`zmx-13f!Gti|4IXhRw0E`%5sOM3Bg=*a&{sv?~AVn>dTV76uI&r^>Tf6$xT#W4YIvh z_7H!!*aZB4x1W8$G&M?|v>jH61Ta#<`oNK!QJZ`jaR$1kQt5H>A_aAtA*en2X(7Yf zU_=M6p5ScifW_f1)NQI19lF&X9XgwAUQ#saQ`m#6Q#<%Vyw_nVnvzGp5?3^3nZ>D$ z4w+qxw{%2@bx`E#5_o*>4ZXI^8G8BCC83vR7a=Oujo&3vUxzI^ake=$4$-&teR7@# zrI6K+j=^GMq*8gvGKvix*8;Tzn;6*2)eJQ>3iz$ZC+dlNGDdB|CmlC~Q=ZDA<07u1 zvPi}@w=OdaEtM+B|Vbb!hM5Z6C{l^E+$ha7dNewqbRj%%iBL$6IkJ&MK9+S$0aSlgx6 zs&O1Ps2u7WvdB@N{Nl#rN0d@Rqqb>?6#pW(COGv?8xUc*@JQvCgL1Bx`{uzqMPsX^ zMvk1BDd-!o{<%RZ*L2TmXCvpd+fp?(h*8i|AAK6J0U1+(d9?+s+!_P$3PVWx6QH4I zGBF>LPBW3Qg^^beV`A!@_K$?P24+s)7Vj+&8CGcm(w7obw zA}@Kztmts+S8Y+$I7)yFkc`If!1Kz``{pn;v>8er9yrC|WPhh`u##R`ji9aZ$tU!qD1Ly6CalGor`x5+N;fAVH4M+G(gm z-mK^g%W&T)9(v^=NRBZpw0G33=-XRoMt_a#-#$DeI=y2yr1#Eig;QrkVoUISX4Ly> z9Bk!_Lm9KB&;iud@~I};089DaX==<&X`w@-%0uHiHlWWTz0(?{q#c=|*WsOiEf4x> zA#_slGiXcwj%U!aG^cDqTO;FgONBEgvGGT=&3A@=#nnyOp_55`d~WC+^PTAJO?J{r zNyt}s5V+d)l3n`6jZ3d98w(L%DmLB|K70td(A^^;-~3d3*Gh5FS4*B+;nZM8# z{Q3V(H!Dduci*_Bo7vyd&53?C_G~pW9GCM+f32Mr?p^lI|FO2MxJ}z~S=*|iZB4Sa z6`*a^x3sMwYg_f-Xxpi4gyxvOeUNefdrsOmZ9v;v2DGjEA81?NxD>wc|CzQ$et=ur zwg}R*^#22G>;Fow?SQWR9Qt9N1Wnt1R;%4Ur(H3U?#zD2i~5zA83Z(ngGPK6g{@A2;fv&~uCF|Op|0`V^->8AE)yuk8H=t|XU&f?7PVSjXS<}XmrX5Y$We25O*0ZV5 zv%@ttgZfm=S2d6ZWoFW$XRyw;vF~+j;OZs(H zxvXEEKtGXgO{h~hX?9$OOg!LF?ob3z>r~LL3GfK&Bpr6X7&n{n4AQVi!4rAlk_$Jb_SiQGD8v0cs*6)4L zZ>vbdqK2F_E_BgWT%ACA_R|i-L9F?6NWWs;kLb6e(1ASCx-sp`i)md(F?qRV`&Rd}PLRiTq*6`=!^4+vS(#z6O44<|zRqK?4-o8z(a z8>aQS!p3N_7~}g?HJ!_K%wx^f!Vg`(NC4|k?WviS@bRF%(s?Nj?}o$q9k=$x%2s4~!OX6qJ^6xjGkO9)L9~nOEg-_KKC!m_>eH}t zB|PcinJ0sv-=jvv-RG0>7wCu%9eH3z`uVsK$XU$P%aNJEg-8L#4W3Em3FFB!cp~_j zeAj0Kcm22S3m3n{#{C(do2!o#w!+j3RHTHR{UoWq?I&*;jZS57sp&GvY|^HwlK{{H(4Ri-T=-8RUiqt&8k#$y8@m^LBqjnI8#bYAGG&<7ta25 zY>h$I-~`0+rob!qUHH}E^y$&)X`FwmW#}pf=+5X zRV1yP5xV8mBaFuuMD9(oY?5a8e3rDkqZQebI0v@C`;=3Ih?Xi9F}i5s;mfl0x&^nr zkKZJ&&RPQy>B9)mzuy2)S89?3rpQfOftubg@SMed!msVYoVK1Rg6k8oZ&Tvk;pJbi zh6k|(QGPn>2tI}Cy$8pMO{SE=Go&8|`xx+ahk%U({;kNO1W#E4*h-W^4Y;Wgjs)3; z#gedvMlq=2q;J*uP56mJu;NjsBUp(w*k9-I=|X5v9!3myDU7mx<`m*A5Qt#R-Gex& z7{c&V;KNE01ylqaobwP+Nr=WOK|LrEF#%pYE4cL^K@F+a>#_R;-YFCKg9J6!R`5@4 zf$y_qA9nsrUFJ(*B4O){zTtNEaUj;0no*=-la4;yS2pf!YjH*6$5B6(X^hpjy z=JE0PHkFW`3tedO+2(6@;E{&pEkXGeuxbE(GrI^_IO01uK}(Zu3wsCI((oV1pS%Hn z$%(0R!Ql8^xcEE5FH#)};e)fJPOsv3?WyAZs_V@BQcyzXUqpN>IQ$j|gIr|6bxKHr zQS4LSKsHBYU7;GSRq}k=MU#DrYDKc~fD3QD47HlQ6t#k0yH%?+)QX{2GI|)kR@9EN zZz-rnK1Pca$UeY-#9k8)A8co*{E0K~8Qh0_KgKAkcA|cE_sU9)F#$ci=V|Bej`P}N zj4r2z{$^R2+lE*PLZjOUMp!*?G({K-Rtt@=!^F-6$+94p8@YJYgnN|GGVn~M-Cac% zZ1kD_<)8yH;?VOc3lQmSDF8}OC7@iA0!Wz%d6h>HA5W1PBoh=f12zkAwj#4&a0`vA zsgR>QyUTRV0V~{)+0=XGf4}#PvNaOYG}uNH5r;s%r2ZN)*am>19mLKR_ zGvXBbwAYt{2X2i5qZ2Zu?IHUbIZZ9+m!RG)ji~RMS3Y>hHDHK{TXqWVOZ5AK4Ds0| zh~7U3#z%|(UcG{+!jPbsQ`2^wC2p03@C zIqUVHQnMU9S++%p#@h(}q(MC1#t7udg8633PRP^m1V|b1qzYnaumMjpvG!f}4VMns zzrDcJ<^%m&QgXj^QF=YN1T#Tt$*cH$J*XGK)~Up*EQc4M1+~P|j(0S^Ea!V87C@Hs z8Zc<)kZBb4Dy*f(LEbnHOcRZ|SAfE%*7B2F|BiAbS!)SzGLj@}3*H0~p|%p@1biJV zfz8JEgZC<)kV+%sgM2zT3mznFtwpbay_hn7ES7}86KKJSTVAn`MXif0UmN+1zQ$9W|1YDi^9qeQ z>N(^>yQ|10o`Qeo`WrV_{z89_y!r0}r*a((oGfQF`Dd&KU|LtsnBARhW5l%x^rjkE z&e`3}hKLpXPAVtt=HM9i`t;K5?h|x|Q#{L4&UkoO=d@SqD9-~{JbNf7N@7D1;#0VL zv>btpSyTWHL76!!8FI;|LApr~X-VD+LqeWC>dUiXJOKwBPe?z)3)0*Exs_}oSe+X& zi)w{jaA4=zLmv6MK^)%HR-2oioFPAn*vauEA$=6~z-V#Yn?v`~JbwF=Frr`u^#Svl zCigyJ@MG`teC)3$kJH)U&4L;KznMlM(yg* z0+T?ViLD)4AWU;*8zu2OPEfud?iE-6moYOCt7cE6aGg**_a`+kdB zAU~0onX-q|)uI(|Vl-qi@I*o;WF66kJLGyGAt~i-dJuPJ_Tvs<(@T0jwVmxLS(zrO zyqxNaYv}y2e&UTy#I8*^Wsn(}I^XLFe-3Ov#c`}iRun8Na#&vW08h&@ehUW2 zErd%>S94&x>)TTsGm!& zA5ds!WFqs!uPHFI*Pea}t1pgRRa%mBT4Ru;bMs=bV5WumY{ZQ`^yanS6ceI1zHKq^ z(Le%#+mhl*5Q8K0PktEl&SI~9(oL*<)R%uR2B0VWTf_iR9xL)Yk`AXe@h>5r96W+7 z=c8|!OMm$}=^2UEVC07&9^S!tp&N+9pYQ)=)G!7!QUcl*5og&`Nw#U_2BdJ=W5n%Q zh?c4be!7}!eCK5;IwX%pQ+_VM-lU8U13LM)GCJ9K88hN+Avz3i_rA2l(&A zcUlSkO#bKJy}KoMaL)T%-=^26+m3hfsxiu5moe|ZMvh2CnQ{DkiMg4Vxf8t<4>-w< zITpyca`?;2)ym-Kt7aRHBRBR5?Dr~=OX|X^4=`s6*p*c1(g+LhRqxmr)KWQ!?%2Sn zJc`(4=`{NJ1hi8Q5PfI`%7B~{|DcO9plU)HyR;$GVVcj{{WfGD{2eZ3T69*OcvTO3YvT+&2cjgHUmdqa(&c#S>1>X!#N7r%Qi4AEG@@kvBlS)D!M6CI+YXk2UmSHCb$i8ZU1+2lxOePCAi zI6}t3*R>j~0h!1|MVaM#!k807Be|{#f0Kml96weVOx?T>{KeWGbcXoZi2J*)T5J^S_R?V5XpPz(SkGAfBz6WLNpWNwzguRn#GxEp8`#g-qRqwl}bm z`UAB3M6_%p_AL;-9V?*ft5|1uE@r0k%Q;+ zKWDAi)sZlD3C8yB4zm#!n1^^1bi=YYuYDkojQF-CAw@hhr6G2JbOvge zLp7Agy>(ZIIFfR>6ZN?KCeUEydU~wgTAC^gNY}Lu~Yx^YWlS5PgJ*@#0;U^ zf3mj<>m)|&bNXH6C}gBNX^%ZvSHlWHXVg2}CQxnx;=Oq%ng$L{bqj~Iv*??ns3(yt6ZwLfc06{otE5I( z{3Xm3MsXrmD&VBxcU6Kl#7;IY>?6Bc?{}60UEEu>6M@_0 zb}x*ij!{VVs{MEu;%x%M(at32)T)=dMv11op0jU2{h5x~sdSLb)z!!|@*}D{y?r)?bXZ)M)7fB#&5-{vDZmC}wy@M?!8R*v0nhBURP-tp^JH-@6up5#C^s z&tuIVso(@ccSNtzwQ$OWX%NkXVHUNu^fUE*Q8o#M`S7p2H)J|Yo zJy1o=cGODXQnMtFL>n=O{Obw*xm3yw07f{p7E_s#i}hU#IQoE4{xJ18aBw}y|3_{9 z|De6;87}<$4f^6x1zATvMoHA_bfy^pHu`3D|HLr0nxuWcneqmMZ?d1WyQ+{az{eY? zjbg1qZLqpZ^hT?7ZHm1$=4_)zpJ``cQ~YQ8*DI;EgF}aMjn=6f;=Co@nX;~V zuX?rf+p6!}%q@74AHE76AhW`n&=B9?vx{xCN>-%(C49Ai>`@PN?e30e4kQPPdJZJ7 zrXCZDdQN~}lk=yYV3s4MZD@Sc1-b>;_+P*bt&V}FKYC9m#$$>XBL=j=fJwEZ6NHjrU9%XZBC@;;aTk(XyoOgc(lltzmTRzOuC$>vnR~kX_mlj7CIR{zXtb2&ZMcGXAlEGMLR5z}-mr6s==^C}j z9y%(=&{itlkrR)AdORu*MP72jvrM;!h64|DMsA2x%63Lz~uihzHmD)=PXF_?`j{c2D;j&+4l6&<@|Z z*GCOU-gfWqa5mo$R_s)G8+hI_|C}4h$quX@>r)a_99E0jHbpSoLA{ME;|x9ifnqz* zScU}YYp`m`a-y|`)bUuo4ammzD|EG@k)$I>f?RC!U?t{}rc}}HhTfR^f~gBJfBdE| zU;55nbk(|rT?1ULpTtm& z6kG0@^3U6JgD8kKQfVhfuDK2Y%+mtF*Qz?FJu;1I-h}Ak%KPh1@?pOP;=SoW@ z>o<+bk55#A@%&>NTMM8I{}Rri+(;is+;k)xs2AP`)~4Be>(> z=c#nNwDZM_Le54X%@{FL`R@_sXHlOe(!qZOPuQ2DNA?n^Bdb3O^;~=N) z5)+#dD}os{Lk-UqSep@fIF@EE)vcK;5i`dQM1eHJqOpyi#w_$*_^rMXn1K@f#XZyW zO}E%KzYU*{0-?@lA}*<%sRJ~N@odqL*~a{B_*m3tk87gQqi&|rFr{jvoA)a#_@s4q zyo=mR#Ub`1*cdV9Jj-CSpFI=SC}+qsI}__c222szWcGm@T07A-Uh(k=8svl4+nB zV-)<}xqcg%`hOdxWArxkE~hb`fhuks9Lpqu9?0c}c#P_D8qt?rB#k76#B&B&$2-PG zG|@x6HC+}qwbp7Zp5?(vcWaVCXV$Aeiljr4_&-kL_=Ir)um&7uS2@B6on zd+`v)-p{L4PRdI7^QyQPm5ns|%ouy6lJ?Si`;kj=0YOqW?!}z)ir*mDdZVNQDq@Mm zfoBl16;0O$#^miR8n?F-*;3XamQaO!<`Xuj!cMk{9d&y#lQ5m)IcSbO`~@%@HL$Uy zhc$kmo0(a&4q1J{M4yT4JyGFGOf7cCs|W_wpCT#&vcL zo+38s`gs|R2{}qn3j3)|BJMS=!+xdj`?&GYU47r#$NlM+4KenfdaQR1BX@ULHq-mj zJnLb?cD_w~j(NEy*RN<4n#319?&9uep1`ai{tPtsI-~q%LtzisQr%qgB?7o zZS~BN5%=?qufD0xw#P&*jpA@ z61o%u#o}2b!aL-X`wHx3!rh5|n{SL7xdWaJX94EN8)N!5_wTfw3GN++h?u^FZm@j- zsW2R~_ugRwet!no%TVOl$QXmM-kvcOmevAf=6I02KP9mIA`dS=-#P@mzSt31u%FtZ z2~Z1J@QxX^XPLT-7}OVl+1ZNEMS3t?m}2!W(j)79#y-hrfcFWl;?zHHpGW>7J>@o; zpNbkm*LBx@dj%!n2s%`?M~X`KqoT|p7 zC||knRI2lR*CFZSHcjB9yDVZc#By8eoy`2c>pjFzPSMjlm&)~AYya?6*=Tr)^cPRj z5vyf`ed}es(;~`vxyeIp_$An-%}>1_{<9*>K1r;W-wTZDE3d)>jQ6Yk9nGmTB5upX z$WXLVIizI?q+~w&*tv+fVj)=h{(t9 zG!^Qcg)+Kr86?VEm$A=u>;bO~+v~Hwln-k`$5=o{2J2 zod)t%%(rZ{Z5%Jd>R0S*V?9X>M5U=8o-*TezJ-rh<(vS= zY|((P_e+JbWaSZk>dj@xaQRzebLkB&Hec zVDMKR^Sdz912UITkp-C$OQ}b*WQJ}b_)^k-yXsQb$tKu%&?{!lMgeYm5LfMo1uY&m z%SbK4FJ6$1Hp)oNA5r1D*fymmUwR2MyHRSvsG}S=PW>9N?*F@|xVzM}nATJ{KGCw; zSy0_#q;c7Zeks?(p9e|Iu*}9;8%FRF+_?a~mVuForG4)ZHlbTAP)n$xh?unj1yo-&Sfn3LyRxTbU`C{ z-iAwS@s9A$7Qk~`i{~H83qUWaPSmh0RqN^+THl>Peu0HxEhBpf_PUoNHFwplaUpt_ zoj4U|Ds^nIwXipXrZJAT)it#0|2FLJpHi(xi5Z8eWIWYNxQW;kCR+G7tE9nhe=pdE z7h!zp*mL%RYLfc{*qsW~lF*t3h(gabX@?&~OOkAFcHI;H*CSLj;>*ggCmPVC*nyJ$Cu+P$r&XN=KgXsKsZy5PhfG9PDXaXn zadpkN;WzrzaZDdzCUpSUuvDpT1RY<2%nrkmKT2KR2-#eX=VVyw!CD9D)9Nml9z9W$ zB8`$tk76~I#@%$sqJB-_sVbCH9w*o2+pxLsDcqk6A0zeYD7=BK0KMwFyLX7^?%rXD zq*IIZ4j!Xfs&|&6M-P3oUt;D-(!G$Jf;zF^@Y3{ZIr7;3ku=-! zUZFH-RP=*b8@#v39DeLMSE%(d`1h9JDw`r1SD8xR=oPHZ#s)~O7L1h=j%+k?YxA+S z$WRukR+xd<0PFL9BWW_Etd&73COvw_di|5(v#ixlXq8vXF(W=eCQ}&fq5ex*XLqJuMN=nD}jFM zhQ_=4R?Xxe4?o4nW40&|vL`rKbf&0;epL@RKCY{Ri&f&OR;CKRq{<(DG$@QoL9W_Y zRD^MvnCddJJjmWyjFo~|9hk|1ns8Gw{yG9e&@LVgz7Gwi3Vsc&Qa$^OS)FF|(WNU4 zxzd=axB7k5C98n-^KQBm?`$|0{4!Amn_{WH5RqUl20E^WRYz@N{bJX^RVb&9-iwj7 zhy1AY#CZcHKyr7o{$%J9%T;O_o<})13sO^&<2jeP5WU<2zx*cjX%e13u~s)6BgP7S z*3J8emC{^VW!yxibChmI$p$X5KsK&*>S^U^2~ccB&?*^z(aDvrE3*F)l3hEey_WgxPa;Q4p>z~`T5i>Z*sgL{#J{^^3vB46C9pHf z{w~$!-5ndXgTID+h9{TVB(&j3;{F7FN_ZFOjEl&}$IOqQelLaKG24BJ7*Z2gj&@?@ zNBdONe~aguMr)P#KK01_Y*N9>;Dz_I4nFI{SnI!izx0))1(PIsL~ewC9*W)Pr2O1* zpCMj`gAs$ILY(-ut3S#z={mBg2=E5Zf_;#DH|mgSE5!h5LTS4QC3FBb1$zJA`)M{V zEpbWo#A763Tl8HDR`1eYCeD8v?WIoeO&~sxBT2_Y@mT-|yMj|Lz^SD!+?k^YrOg&YYj&wa z!d6)0iWh)Q1q>%b5kBcX-)d#1Vu^Ny;zUA74ax*zkFaZ!QBn3&3nC`NOnVXjax2|c z?)qr+W5+?$YX!z&fCGFaK4@$|Y`HW*JlGkdy|i?5D9h*gL1 z4*Ygc!!lpTi9HDZkbq%iB?l@HwlqWD?v4UN_kdB;J1PvXXBoVH=${`|!Z%C^ zh+kc6*>oek=$gVSG?ZN(uDcPw{~GuPy$mrUpTHxmX`9o2km1NAWxukF_v?5WB)=57 zo^FH-uZc2)*EH-`=d`cY3Qeq8-bFWJ_qiFiQr*euhJXLnwXb%ZjBfnZ3E01r+FVC{ z*JeVtiOb(CVa#?G^;*$_JdM0Toj7L*&^Nkb7OtSt{x7}X-&H(tS6=V^*oko6g_sSd z{`>i-^F4p!NAmuZu-Nd8NZdsE&xZTe;Ig<8{!<5LPSc$BI*kJCnUlah2`~0U${K|H zk2Zs23vyEM3HLf3(7Z7;^7{-!nyrQRlzFzvxj_j3Lw>UU z@QQv9r2ic^um?abAqyDi);)GuICJ`=0`QbRIS+idpO6NGQNkQBrtX?xM5Hrpq42ig zYO*QQ=w+}-5z}zDzure&39#3V|MVMna1>Y-E`KNZsQq&AeO(me6B_1kGmPE{*L1K` zJUi2GziQ3h-I1)-N(u?11h_C7ckoQ*5nkdZm;_q@xQNw;X-@$CW`j+g>|p#Zk{7ZI z(XNHY!u8gbGh}%N4}|CV?v8vdI4W|C=UDEKF5`R>y{(Mvn@X5Hx{J^^4j>EY{b>&3 zKzq@1ziAyFV7V!ScTJV=%Avc!ahOMU0_}hnOT*Qs_>NW{pz^8hsJ>z3-GW5~vTfDP zgN6P^_{P;gcIb4lcIhgw?a}pIW4SA@y)0XL(EnFSM&E;dgl0t#@GbKHj0LPee&0s# z<2mlTR&IO=$gUMKXWkev)YU^;6hTb_%`AlL0lo)FSOeZ739;FRWyE7EBH|H#>S>6y z$bmMITbA1CtJar-b`3=#oH*rqkKcuTlwzZdaRpYIY>YXSCl)17J&8RbN=1oD%Lvhe zk`ed0myqex2=#y+9ix(88NlcT+B~=M4jl5uZ;S8RkdWXl?n#rQ8RNT_Xn*P?MB zHxVkazz_7f0$NEBG9Qv2c4;on!?h1%CtP84;4hzc+^!{sLn^khe88+udEGe1DKVxIXKW;H}~d8iz$wheJ!v=39^ zFS46^)ni027+9Fzt45D1y!&v}Kt2;D0MC?A%2GI5L^Ws`btid|xhudy{NQA-FX$A9@HVts z9@cPIuc4(;8rGcRrMDf1@uQ#1O)PlTJS=5c^CD@c0lRZ6FMwZo()MG?DUUmt1?&5{ zLNMLlg%)O6iI*Aj7k}KvuqM`BPHCk243SWm7H+M}`n~_Dz+6{{e?@0h4Sox0XcIjr zd3%NP(@2SjgIVw*Mr(y?Skp*9s7BL^HR>?OGt%=4%0_Jp0MjfpQFyXm<{bIGu)(XKmJYykV0;YRqCc8^mG z%uKowezD!K%i~OGp3xIsMJ=xm3Z@O%%i{OSjL0yC93}9ec)G863jVBXDo!1f@r&fw3+=s0^yaSCKdO{VpZ~$vq2e{hClK`3DzD)Uyv`SNec)A^u`M zFbsEMMqnJgVBKx1ot=n*6imV{O%uzW)cOE8HZ_;vMa7=cY&~z3@QvS9hY_xac3UK` zrx5j0u+RPqumg6CaB$fH)4f1?0Qb$0m|({-;XWt6@hKZ{AJFx}0}(SYV07Pp+-GCB zPygSosG0QvN&f<(r~@u3ZYRkCe=**FA6l^IgI_^}0%X6jYI&$1Hcdm>*whUm8Z-oEt zoA38b>wLd_Y5fDsMInOX`;G zSK;a;`RWS9m8K&PvuNehz$qx~Z{>|1)E+*OA8^F}(nnrg)pn(q^kPf*de62i8Nf9! zw@*QSzZKVaPZFQM&kh(qeIKvbrfS}Hg{25y>H4$C%;Ume=2bQm@<#0*-z$3RkKt@T zc*^?KdsuMny>r^1VPpC{eTv3=uRlA9HLG@L`&o}0jMT%BEvJ04vR`P?!rH)sX*PyP zz|rN!ZZBpc+~0|E5G!Z0iOnpi(&MVmYKIUs*myJDNx#36&H|}QM@@9M@}cq#?tvO~ zQwgzBm3jxpFmmv~!xDY+Y(#AF3;`F|9Q7sirC`7}^w47`P8qk!#PJ=6^-&|p{Lpv!U%u&?j(672#Om#hUS<>e6K?XmgnsdcKKS2Y26{x$2S1xQ zr+vPNKA6?fYV93iD06Vgd~5zpwJ91U7_d~9?=J{Ob~*L1>n^moYS7>_)}{sS%b$W9DCgH!m-Kye1a15 z?MwqSXub_+24fQI-7Anl#@_SC#m#o{;xXh2wsmgtj0s%O{47_vXzvLu9u{!*oSN5c zSK#c^KTbaPv%nB7opbfH%u@$&$DGtt#XU|3?mvf!jtR|nTW5`jI15jrwA525qhg~= zJV(zti4qpIo^`)*>&#}{MQ7f?nK`XO71bbi59REnGxSt@D}5_=O>d*mS+1%6X8V-3 z`l=P3OZnY7@fWpIN9R~C+PeA77(dnf$a0t5u1OSH#|8>=(p!b<6`gLrBxm%+Gx%1+ zdCrK7Ld}ZKT6{~nSdU}X_?CE4Kx-`L^G5Sr%|(a&{T1{F^#;GV-Oewo5tCV1%}iQE zpswhw0?VTBxG0fU_$-p~fN-QL^?KL?9H!1M_I$RAr70wHB-yG!HZnSYz#jG&c28u? zY%ZPAZO@Iohu8w3&g>l4RJMN4+y(Vs{T?$ z|G>hCh~J~zwKwZafs4jy_6%JXMSa-5$1yYU9tUy0*KRK-v7AA;{a5kii0E&hB{>$~-fjgH{OX6$) zTChtGt5VKOV~w}v&-cz{`h|jSX2BVFk*llzAnoZ= zW0ltoY1P{Ov_nAt>aMRI^Rzl@ab)e)4)G>Ltn!Z9eIwqOB@TIC=v-Z`h9pwh%c2&0 z3&wz+RZO=Rbzujx*imRGU0cEDK`hvGHX|vXQD!F2 z$_HkLq5bs|;Sy0DELzQ2XBXl>gPUvq98!lvS7IN> zYL^)O_=-+v*{8V6YjOHL#}Rvc3*M?^SN})uQ^_^#POP9g5#_t&T7{FwvOj*2`{|eWpE|}YLS@5h$_EVKPQiPu z$naiL%Wr>is*X;HU1xy(o*?}9N`0DW^GHy-1AUZn3D zoh;G0nM$(Yi9FaG*(}K!ozAcMycz$o&%ZX;%7J#fkJDRAflJ%&HEx^|J`z>YKWwDZ>ANd=>QX9=Ck^YUli$PcUHS(`<$kx+9F%%ovFm@> zmFFw+3MIzK{N%wOq8`n^()mBRf8>6OZ=5%)ky(BRddQJ9OBQOM0?AH5#ud@xdN0kqk|!&qwq~Q}Z!F8evmlar?i_h07_^Su=lP&_ ziRXX+#hWU;O_2ct}Nv9Tu%{^LfBi6F;@=n(@kXzkdNXKuBo`@G;QEqHt~IFHXJJ0CdvpZplJQ2#rA4lf9ob5I zf9BGlwQo9dN1k{u@=H3O1+%p*09soj8nWyxn*`fr$0U^IlC&ijz`MyUSW56bUE(HY zu)u;9Qv_wX(d{74Vl*tF+{D z<1#=1^q9mb<@1ftx>b9?kDolFo3l;})A?5@*K`}p3*gh|;XA979rt$i{wr4qJ%hED z71c}n6F){&1Fb#zRH?4u`_(I|wR^beXh(~4)Thswc~Eb1^1gdL)${vX^TAj6@ycqh z)Zh(`dj^~ftgIV&>zR|hi)8Y-{?>xqHjo^JM zzDdf$;6E{k%=+@~Qnj}sW(st5aON_fhdvO_m&8#rd}{SwO64Mjcx%L6I&_j!wC7ik zSKnHZE?}(uzt7I_Svvu(4Ty$-{SfVvvXe(wveN0YTh30*x{}=&UadN;!BaJ!w_fG; zTU`_Z^x+L$>8s$N*uZD!l8$7%7crDIBmHT!!tZ-_qVUQTiypinw&#v&`eJo;v00Rp zso(afU~Q**5oNC_N4^zTvC7_9iatHg9Ujm1>Xqy9xtd?Z&&y4u3 zNSw`yptO3_c`u~4s9S*{s4ErYO0yH64I#w@h@v-~xG>F&e2WfLD@pbEli3)T3@0s_ zYUm;UkXo+p_v362-u}xCPA%<$wg%uKu2qnDCe4;Lo`7?Cx5Y*HpEj-b0L!pa%~hlq zKXVx)M&;Q$@=Uu@*~tC;q`>QZC>y)xmHdZY|Lsv%jq>rZfNbjzGOi@6V$4~JsmIUY zrUsoU+zXZdqLv~*mrPCVnK8f@|7w6q%Zl6>oo%428bk&2>m`r(75kuD&sO`V(B?vN#mFBY{ zx;9C2u?|2NWjbl?kq(sc6L3LtFjtN61*+~}jxjo&<%O5L55Z&q^3Xf!0zYS67JdlUc36>xB?+~`5)oiaQ`_%H;6Rr6<(5yNnJR!M zE6MN4Tw>tLv2`Jto58uLeznrVV{0CBYQr~03d-$?om<{cd!8tcd;$yE2NUnHIpu~k zHqzM=slO`G2xSC8;7-+|_SU-s$k}1X_!)|BG$U!#ON@@0MSE zK`s3R{d#B}U;ZcDt55P4-Z~Crv|N-toK@XTIwZV>v*shM*2J(PA&R+a$>rS}L0j~f zNs>$5XI{M+^UM@~L8h|k+xh)=r^QXMBh3@^m9_N^E~UCbEhZ;zNz@%g^k|mo1LtVD zjyOsQv;(68kKWt-_3MZ-I>fX7wWI3SfiEc>_Z?f!fo}E8A4uKu6{{R|u5Zl|`E{Sr z?kHPC5NKI1CXWccI!hD2s^sT8{M`ivA_|v!URJvYwtZq~W z6RH}Vr(yNCFpPQ$V>y(jXZ;Tq)b@X9Cp;r8ORTA1r^k7@E4^t&SNb9R{bEITy1ww1 zSGv<4I8RWA@P&vIw0C@j^?S^TbwbH$NGcl;CsIVbGQ(Y~nIka*e)k z%o@(Ri0o^HW_juw#FZCMy~2Zh zTh94=WN+g1}2WW7Rh+(~R zGmG1`b}-uP6{1EIU|_?`27ivp*)jqjay!-*nUH=V73Mx1$x(bAY)^>(72JR*1anWkc&PKt_|ro zlTPyjw2E0U|1a7iSOqa+jDxOLF;_7voT%fiSs_TFlrdyz0Way5h{oD580$VxX$SBR z6d%fjZq#IPb4Riceq>avNk0x6<4PQM4fJM?t>awB*8CAQoPs2tgZC-Uz}bFFc!M=l zqs-+kHSNGNjA8lc&_S8E7GQL(#1k*vj9B-;3KbV1{5V$Uc5U=6l5-PNhn|u74rAn? z+*ya6Nx=Y#*Ud8~Sm#)JgCi$(4T( zTzQ^nrAKAd<1R_#q%dsBtba6kaBZ>(2 zjG=Jacnj90!gw`br3{m)!`20mN|xxj6Z3DoL*`~^ES^dK4d zk$^XUD1t;_mJNF7u;bG5Fc261N-_yQ0-`}Dhw6ErE2bc#h z9!9%zFX4VK-RpBQ+}Dabke9r6gh5q66Zj(S&7E5?veZ(}18x69Mk6?`@HkSnSBok+L_6%%d8^2B=l$MXSi*QJS^4O*@AuxuJ(yt5Q@uA4g;D*U-QZ|; zj)9(f?Zt8E!Pegdony}ia262d(GkHRmA7NPrnmHtph~s@VuVsgDft6V)!88On<0_b z404HUd9bIu=OaqX66le<;QV2?6?ngX5wy08DMqEwiHIkO!9mA(eA5ff@KxJ84F&6} z?}tpF#JLQbHP1xf;z-Np{%TmtS>Ea8c+tf`^HbDG(zeMvTWq7AbOBSSCvVzS=t<7G z@$z$Wi!<*m**ciy>&|f)%Vk- z-Wi>DRaXsZ?-HW_nE6u?`WJWKfmCjqIJpOF`Eo#bdGTqi@Z?tn7G9M)-P_dQDza1N57b+h55;d*zw*S{qiQ7o4D~G!edHI?DCK zLaMCo)n5bOIKsDQpff?3WpWvc2t#2tL0) zQ%S&W7uJ~di#i6jF_QE+s@;kd=y5g;W48);@56j3Zuuy}SE}*FtHrAFM^it4N%;o4 zN4ItBd$A6b&xXapwz=8@_>MulxA0p!NBOv0Dmx*YybKw?OMni+k_$i7V6UhF{kWnh zWQkB2sDC|504-gplt8{`s83vU3kR<(kWM=JS0FKimC_1s7G$!QwL_XdO|+~AIz%fj zVYMzsEFDfDj#pRmF~Dw{qA%WF+y?m@APG;Tn-y%QsF}wG?z0^mSkrcFU~R{-0iTE& z07xr#jdP)6hi5l-QUT-TUQaj$U(i<;!V83;+fcnCtzNVuEnZxaHm+Zh7FM;$&w}$; z=_o7E!*WDFq&A^1iwNT;7Z@PpdZiPRt}916aes+Yr$Jh(%14V9O@NKdk_$J=tAWFn zB+Z)!NUw+WjaP+P3p=#AT8zB9sya=Y;qzH7ASM*^@K@PEFe;}0(k!F7MG-4$wroQ` z>Va>*;tV9N`pFs&E6d)`;9pFLuDKf+QjS%k61Z#FD1MeM!@9Gn(mn}RIF+Bla`LnE zblYd?xq-aS%>4UBC1%@`Inf9x6l&W*voH z$*RxNQef(k*7aF>mPBjI=%J~urp~EDqn)3nt#-_XMa4t;lUh4JOPg&|hm7}qmbM|E zyRvv_>V1^2cumoeY0?v&2eC@&R~HRUH%%QXGQEe@!&5nGNHqC7Z9^In>t64uq1miz zXcRESW&}6ZL|-#gYo|Cg4c~~SS-{lF^`E5++@C>eLDa(Np;4w6QM1twpBr5>hO`*1 zGUI1ybpTLYg_fd>mt?fnbg+|fGJmK5C8uxU?*7uM~$0P18`L zsC-8?s+5(Ez9dUdSeTJ58~AiwAz6amk=6$AZLdy|C6zl7?+!9olCI(m7LADDOKq@= z*JYO6i2lw7@)E|O|6X{bTCP&hq>-1>V@0AS$<}mBjp6ig|72L>5H`?kTDw;ppzW&FpyvI;=*ZA-t8q z)yl0-@;qUJ_FCX5eGkt@#V8Bk>^1%fW#YbqzQQWacRO6Jv6-G>noLqCa9U6rB5karEuuf6Q({-tfW%6hvBJvndI$(+8Kt2(?G3d7A zY498L94Lvo@W0jnH@i`>Pa^7;ER-Hh+|D&aC+0`k_l{$n%XCEHbr}B$3W=zoTpM@6 zPv(SHkG%40N+Vtt>G89~rZm^_G|s_K;~Y$7(T*U2 z_Xx@H5C_kkN7YtDy`h|+4A2)V5xZqLb#gFsPcc`SU`XT+kR}aL$Tex^M_GEG`?u-Z zC$u;V90k$05+`p%;!2uo&?H^U|A@8wV3Y~!s2!(n@^w?jL&7+Wk_0NLlq7+v&#wLvG#uijgBPJT{x+?KMeeIcwf7pXbSM&bh7;H~ zt-^X!*4Q;3+`q#U#=QPV6n_D)!(SvcjwX}zocXc?T6j(*sI3Jbhb5La%zu zz6l3=n{;a9Ro>)-yJeBZxX9GTbuQ``Jb`dWb826aSF zaa4x;>b(9*Rb9k6<+i3fKvmlz>(=?wsp_k{(jADwNU0yApE&h}=k-_G?ES|kW?G>| zD@Zb)PEEP$z3Z3#FH77EYAeC%`_i}J`Q8;4QA=CXzt`^q zT}wQbpZiH?Uw!i9^eXf}AK%RU&Nm%bI5k(U4ZoW977DH<{izLt%M57eeJ9`EE5zLt zO6H5T)rZpW>Fx5z=|zRGuF-N)t*BrM)_OF4$9N76BdMVnl2r&kqb-p|7OKj=wkH(Sx!%^A_l=uN#I zo!4LXozg5e`h`4_s^mj11g$mb=!;kZ zxza4yMP>I^>dydIg#P0eH*n?tv;n>+AwMi%3i*3hV*XcW(zQB6ucYCus*qaRhVipR zf&;(TtE}VBQoa{tZWmV}h6QNQsa|BIRRj6<*#r6BnPcT@b#%9OVmcp`a5J!Wv8;N* ziZUmB#bI~Cw>pdLgx*_k>W(O$3Q>Z%04^zeQ*xA68xK}E-!Xb)m6!A{^42)fIAJ;8i{OD9te=Ld5jIfCfG)yTp<-Z|Dzk)ATbI!eVn?vaO!V z2o8iWa^T|+nAqv`HZ}_V0cfe$Q&OfYbdwbWO*1%9kwr+d3t$B5aka zS<|#d7M`A$3IPRJWh%B*_;ybIAp(tpv6E8CRhS!!{t18qSUob;Utvf;7f5S21%%n$YK; z#ob1pb0R34S?8Ramt5~=WJQHtN9{AT!y*cO;j9&5vwDTh@==>X+pG)df;rIQV!~Z$ zpMD?N;?Y`f8D!A~dhXW#kf3-=sshJT%+uHC7D)JY`WNTI`-*G&>hXrm3m)(#v( zg|g5a62Ys`5vlWIU8XOx@P!#)z`CWS0sM}~{IsqLQ!@G<^O7GbyZI(p9`rp7m?dwH zJnJzJ4v*Zcaer{+p83cV z|9rzYWtTJ$LEl)AzHtk9w7scA=lL>c|GN*vZau2kY7@(cH7;(hO-_Ys`rqHcNej~) ztLg9FKpbJZCz%&`pSY4FN0ArfUcmiDlDp&Hi2KCIy@>nEBliWkFNT*B%45d8dE~yB zK_9`LNtcjr9Z4@k`pJ=WE7Cu%&*Z5@dhD_cKc9IOHUfUDDy)M1jXMA8@vsS*jX|sX$kgcC#z8h4~YF~r1 z>YP>9CZ7GOra!QeS&q4D`hy#5`rCd?cY8M;b8{t0+#ULHFMiuMY{c(Tz}@epyZ1LZ zS~qxjm!pX<&knhg^+hNKF<3~P?hC!BK33+ zC(jLX<>cF7HJcj%U)(ykyA#pB*RtA14l>w}9&3Z`GPL+ecmC4Le)RY!ZdoqWCT;>v zpq9Al9ITLc!IGIY^Vr1ffF7e@#%hQ?nmM39{VqJ+bS3xsN$U^t6?nx%89yzT5#O@v zBkxofl}()YJLPea+QzzSs@qXxPwakdUduE@qVGyJK6bE#7~fdq`q0Jx(oy zTvg4oq0I(^C)n~Wga7Bsrgi7IS#JXSQO`#5qCqRq{D31Fkc!RF0svoy8EX2^)|*|^ zkeU`3G@D&j0S4P`4s>XhvH}`>3tEIBe)Rm-57NxP6zii6>*EiGNZvdDF=(twHc0LW zBNny@)yD3yf{k3cMb?HXG6@Gh9g_m!`V(eD`nJL5q4w0f3tY6fe2RAaYu*kssatjg zRzM5c`pj5R4`y}^f&@PWdUm0=m{kT?q!qG>ZC;X5QS03!t#_mCz+K7S=ypvEIQl(| z_9?fk4EK6aIc`^}(s%fpaoGYj{k!mGNx%gP#_h7;`3$ZSa?o`G(u*axYdo&&MYn4l zuKRE;#&s30V{vW6wFsC``3v#<5T4C}>ZAv<#W4X_f5PT=jm9;C>nM~Tsdu|>L;3HE zZdV2JzmN0+Jge<)S3cec@IDXMcX7Q5?>(qr#&aj0Z^iSw$X||Ym*{qxa9!keyJk{4 zo<)??j_0X(uE+I8eD`s^+cg>KpW}Tlu3Hs|%?;)>I>*mx0+rAgST;ML?`w0<2-F5= z!LrfM?93XF`}YD*GZOP#0`r19i=12`f3PCvPqgW+#)d2<}{x& z&m72;rbD`1+aw&Gh@8_#SJ zahK;?R&)?hEPyXwUHInK#Yb-6&rd~Ni0%WcGDP=rwBEkwadSCJC8<`Xe}5jF35!5x z%xG*_T;PCE&&2VO+xIO#dUMN?%ZYm>c^ylnCQ+MMi9DlaGAs@WJ_OhQgw3k@)XaVK z%~sdK))(YV>t^i}A~W|9?C7h7Eu7NkX|Vib1{&ELutJF53hWMN0*%hDq-KjVNdCpu zr*O8awkJOE+k>p^#k9?_=rG1#6iNX?Oe1T>+E1iK=Z3XIM*74`aV?-+?q^9aESV``|YWObJbVu^35?z|N<#qE` zF?>racZ*O;wnfm^sHC!MzoK$g5#*C}(3n-Qar%9(t09gTS{#>6XE<={g2^R+PRi3P#h7RTMkea6J+R~G{Rwc)$rHRPLm8aUguVP|S( zkdG4w>eWHg-wO^f$vnUn-y>T+nJ6*ezcN2aJ+b?^>HqDDxbAcP5Pdj_KG2xd>~WzN z)%zBT8eE3NL}s=5G+E^sHjwC6zg`%?J! z)*FITTHMu76wPbAxdk}Fx#gQ1wTUrUs_f|FA%Yr!KV>Z-Q-rj}WI zsO37}(rT2x3?=hRhxpzFCRj~wuopR!PgL!6>cW+ByEBKh>#E5109Tt9W4Ud58%|;E zNU?(ErZMHM-wRa)Yxh;P!Y@cb1Nsi5R}bqVQR`B-=lRC^*zWB9SGC-3e%C^HHZ=zP z=X0PRS;O)U-%7nzWxZ!iEE#qNY1Em|?Q*PQ<+p}z!wyI?_ECG8Wpt2qz|}anBvOw= z$G~ox^u80RO;K|T@ogF26b9*xv(`dTCKwk5Iqz8f=_RQi*k4r~^dof~QaH1ftqXU-_Q7lRElZ0`@Q#gu?y@lODreQTpK$KIwM7CK4Ko)bLm2hw70E|A zsHNp6sMQ%vd-;kRIz9dYKt<6B+2fzS4|*a*`TmSeAioL&OYH} zpMNoD4{Ri)ea?H~F~Ir^%_Y=On(^_Xy1>K32_HI_t~_RnU?ezJ30Yl-0V&7LTzOV_ zHdfA$F3c>VcA_+J#jT%8$4W9gPUOX zq!X6sFSE$>eS`~dZ6JJty*9JoeOrs*MKl}WgFV=leALf;4WP|_PCHx|E1lTNEYqJR z-`^H!6~9|QpTVQtOSF!ShKC7ks}ff!ghvl>poiL=jtd&-%sZgvK`RqCZTtXZ_trQr zFj(roThF`Bg=f{-PUzq}f(;pyw32POG9f7KVZK`Me`rVLyDh*?@mShNc$W6vw4eE^ zz(43>l`S?eW-IjGzdg6MkIXG+QruwkZo>@9_+I1Wn}FF5Ij8UAyxA7Bk0eGFt$CoD zHJ?rka?pi?-F1gHGOY!=;#fh=B6yD8DM4<=?Jcufw>fiK9=#kpG7aktt^bo-35q5! z&LylW$oVqo5?FP9<6J_NLsbyFKTgIt%P=O_j#3x6s*{o*!49$%i>CX-ZQmZm1RKw|3Z_^EhkE$z|8y zn_>OpwEs>yg;D8drT#uBCzCcRyA?Y%cy);^E>q@2y#3Q4^n^_UVs3hH zT0H`NDN|TZUbbTOL(?rzhJ}67TU5BQA%a2@MQF7xae|NrSO@`UFt?2tD#Pi zlk2Mprijny`$&ddPH!GCh-&yHoH;NS6oJ3aX$Dj**#8IdhH(?}BJXuB>&ye^PCWa~ zJPdi(DtXAGo32PgPc#wakknQFIv#Nxs9$#u62FF8v%TgWc>E{N(G2z}2EaKY2?|fC zbzlOZN03XU<_xO#x2DHo=ddT5{4^pHLQ5|H%5C$I&Z3;`l%TalTG(tRVDZ{OkuoMr zi+CSm`Dt`j`BS#R(v37 zlE2;~>3Wa;Fn}4@F%f!A4C})f;J_IX{;373mrWvmTI+y>kv0Px$k&GzH60(|W>Wsg zor$n&eHPwI_e-gigSE{r>*D z)zhv$tJgn0zrK_as3#U|3&wevk zdUuWH?4q;`j(`^oAFX zAzHUxqvX#}K zT>RlY zWB2dK3KE}tb4_D&xAsLD zrvE)JPA}Bj{WPQU+qI2E>w`uNx1mHW`AouMMjYz9WPOXrCEQJ3iR{iLgZ?ymYJ`37 zpe6w+DrbX~S19dI^$(NBu1jZyZ=_uurnVFJ`qPlM1^5Z=_IE?7mK)kxBNq^Y`j*#x znmt!i-T_+mGS=0Koyr3lj$cn|O1w)}VPp=(tcov4zGD7G+aB^%*o9bQBc2KuQ~ch8 zC*iwr3HguYhhNR+CX@d;N)c>A6)Q2t_##A{*y$V&JfNQH7@q!OtMfkiF%*Vh8)xs4 z9zblrB8mY?9vm62@IMECdee7mhmVhg55x!HL9J*~k3SpnA&WpIa}){APx(PHlb^N^ z!}aqJFV;S?MrbI8yII~YKMSAa&`!4&h0j#~wR#(#IQheBHc=nd;ABz)8n^2z`ILj# zW_a&9)XOQ}_sQ!%YSc$VfP*Fhzbo|r+WJFr0PuGNf2UvUv;XUQxh#l?P4SAt>>@1afdd;Klpf|m8g+t}zpeo$>Q2WrQU3NUF*fSY0o7XQlnyjiNy_U3VtVB z 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

    EiA^34Fk} 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

    _BTd*lB`gC|8<&mWXw9QA3Pejgfh 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ð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 z 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

    I@UB~Mg8 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

    LTa+S1Dlei?@%k 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 f`ATW z-Gd(Zt}RW+p+@nl{z0O^5?IP~cO$My7|RXWLDw-mZaXGB`g0z%m3}O#Ke{$#l=~f) z07SPf_M}4IX&~Y|MvFwm(&;R24EVT{m5 ze4suj61!2Z=L$Vk6c5KIeQ=C4A1X8+_}CO|bK;eCA%?fiC%JYJojc!|6f_FKY`mu@ zfq9#Gu zo3T69zQ8`P-&{3G)|Mmbhr?|{Y6{(T*cfnVyb?E{Z$1hIcgi&ifFxnG|NNJ1-^WCH zKYSf(h>iZwY2U{P*&A%Vs_-68bmr5mbn(Y_SwazFiqV>UkPgK*>?&MQlh~Pg3EA}h z@%%m6bo=rA7qi7($AoP0)-f)dt~AQ-68{6)#_L8Dor>L(ZJcgEH^gPm@;M z7ZfQEm}uB(xf2oc3(9HV#(ya)KgrH7Vl6*LEuqG;;ZjrVn|Ap(iii)`>|D^Dn1QvI zK0yxo?!V9If)L$`imN2lTr*gQz5L$rE~ zuLe$AphxEI^MM|jxN(6VnK}H*)TIV`WbTqNA>4|76A~?Jiv{ch1kQ?s?|I4|QXTLh zrB3@Fhc^ha>5oI1qy|?x1!u4$(E=|>V5HR)qx$qnR+qIRmksqI?jG*+c?qogE$)ce z2-TrZi=Zr6kpNdWFOypHM`P*G%?x(Ip@kLtDO;6~FX1D)fxmQxCKbSd67A1x1xvs# zd%PDjh?{4p?1 zQFhhs_+7y}4bMK`8F0mddwQ>gbIQio5nf2Me4cr?+?I>^INtGYpqmtzmDg^U-`5AN zjo%?l4PQYq5r{cD9Kp_Ua$bS|;OfhG4I=?z6F}?P1QUk_@w{XN0>b1#m(Jf#CC!7F zm~-q(!)+i;YBr)ArlQ+g@h`0SB3vo>+tc@?9|z+G8imlLijWpkm32bLg2aB`L&GuSz7*bPPGLPl3sDr#5=xS#%(v)jD+Lo3R{PU= ze-~FSRDxqK26j39okzQ{m$33RbVkIT|6l?bjrOGF&=5MA6;YSUw~=?VD6eg}v|&KW z+A_M~_qd({h@gtp9BiE*?3^zYd}rWL6d$;m_D4rp9IfGYCFmT{dn2OCmiLP=cH`nJ z$@aZObY%Nt#6$EMX2LLg%Pd6hKu4q(O56w&rTrW^z)Cz0?b!y@(>Dbj1*C<_ zS=n0pVXgcHuXF{IjN4OHkfENRs-Bn#U4C(tY%RYBjb&cJ`ubARp`uyj=e!wDJ;EfC z6~;2Eqwseey^BkRwVi>gLDKZEZmI@r&;ODeQ|YVDpR$=9P^Zg()wY{GJk*xTXX!S9 zIsJH9k7O-YaOLtbP&#$LVSZmzg$B%kRc?Hgxfy1;)FV^1S;O3k z)`lNIYyhYbWzK)6Vut|<8v8;2funnXDXH~o%qC_;<>s|Lfh4B~XIro zrfo7((ejm`hcFQ2ybn2V+@g--`&zDsu6hb*n(=@uT(pR<4sE(%+O}PGWqZHNFE1zs z_?Pj(h3{KjT3i8m9CR=Y1m1%aU9DPF?R0l9U)m) zxSX=Zp?mbjyNt*80&H;~Y`Xgc0{r4hF8F(hxMp+Tr~`IE0(@WxdbpLXRiS_6hzcf0 zWGiz9_W0g#?Gd>E{4ZL|AH|{sdSqwShO_yr&X$d--s>NwOV$N{n1dbqFtf-mv_cb* z7WC1!0x5u)*#R$14)n1>tgU~Zo`y~~-OxuyI@m0I{MeqBpo-U-UVu+VEW@rfu!?_o zgRVGTQ~bsr={xivxSssnb}yO?_4%hu1H0J!zk+DKc&m(;0)d%f@AEmZ~Z`LFpchv#v19PGY~az z^}twS&#JSr@5zJ`xz;u%>?^y=+R|unYHW_li2*rN>z~eXh!bpsM_23OYPihqAB3QX z{sUkg(0?~JCk8Z7(_0u5cFby=bws7>trZi20?}ZI8&8iDh# zUA>>aU#*>sa=>hZmh6mxRPicxz^uGFYE?gg-fI84z~adS6aN@?*e7m1BR>}CT(FA^ z_-e=E#BJiPxN{`6muIF`)l&=wy%4rjmZkG2s{G`tdV;2_>@ReFM)piBksn45sU*B( zpUp0gKa(Jj4aWyk;$nEbjIt50(f_QfcmvcDuG?>b;d=;<{cYb4%w7uApp&_Agj#-s zP{2qOay+rWpsL8R;`hYpeCc}{$c-85>f-ehas}RZ=sDk7HV;*2iW^A(6To8v8f7KU+>{jodg_pa zEbHQRffpvVVJaOwwz;oURbUd=>B0>A<=^0JuKNtW2D?4ak1`I( zb#+boEZJ9_IdjB%Q+eN-af`u1D4a8qa{*Gp*}sz&VPoa%S{Q>z>OlmE-me-&3GK!31eCHappt!29jCu@wvvtpJ1InzH% zUpOyB19x%^OGe5V04y4a9S{Ow!DY%oiNR(zF^=tZ<16JKC@K_1^xpr&#Z5!Swy$o` z+%$kDihjk^n|8LQUZ#MXgD@ALKxur0$>hL3g|PLq_p0AU7h&4G1^d^4n{PGXP3AcD zKSOMPrv&B(a1RzYuxPRXQ0OC6e8r%9pmg85;3A;(&`G@Ii~~AMj5a(EOwr$s7?`3p zGDR>guzg#un-5McZ*$Q*;Yl0w()J=A5a0kIOfi4P-Ty%XTF&GwUsc&(VnCmFdf>l< zt@~;WVc^}t3H(Dsyj8Px#bYm60dQAVj`}#2rUX0&!k4O*X9y0gQS{aKr2_`HI`CCC zW$;XX1%lLC`aHjECB66*Zt#djKFj*%-pkgP_FcBV)qL4{EKy&!#=z(W5#Y|r5^t0y z<5T1vOXw*yoz#e1lQR|0{T=WN3Y@#F+HhL9#wKF3s(I9-9%ui^5J$#`=)AoaGA|5| zPk;lN8XsMN)4NI6;?E~;I2@^8p- zKv;#ujnNl|OK+-VmjT?W;fP)f?W0SUS=DRN34LFdZ*|240X-QjcljJ60M!Uq#BGg> z@#*N7O+}yngaMW8l(##tV(;r<+^M=-gpV=45Z=P0bHbN zG>E27&3jW12k}R|aAzg}H_7)V{t#*jz7FL6Atb(3ER z;y}%uY;6&;CD`g#`8npk0%EEV!C42f%p>iAFv|8j$xRzL3T65Uf4KQoE-NT9~K*P zeT_qT&xyDHl53o|F^X$=W6mJ1a+Fi_7`;tYrTrTz$1`$w+74*IxdfJsRdWV8paCV` zLlX32Q2L#AYCZ5bf}FOi@0>*Fva|I2an;}$@+jqm$KhRvb6>wfPaW*%{7+;hRXC5{W=lQVOd0;m0>(~y=^MnuI=J{FyK*T*{ zgPn+Gy(nG~(LFSU(=QnjEWT~p%FWtU-k`s85_~$NF*#DT#DPBQMmgL!gBQjd9xS|_ zlLw3K&+&nJ5Vo~5Jn~$G1#;~OfB6T}E90-9?Z?67(4!F-dNHng&|hk=14RZNP-39x zEzIik_XK)=iC-(UpA%0rCAeZ~*E2J)G6`*)@G{VIfEku9WqMa$JDTaa#ajALc=W7# z?dRAuedi+i8F+L>@+X>~$>wL0`N=UqQ_YXyj7WYSpKu6pki`IAea zVv?Vr@+S(1tK)l#qWKhOy2sGx-=YLX8u9)n2yF|-*l-{}VtUhd25i1a+aRfb!X}Ct7kRstMqnTIgC^~>rO9h-k zwFfJbT#KI-B=R^pR?wGBm8*F8JMBZTIbYoR5HdFcztGhX*}dS$l_W3Dz_*duw|lMe zEtjpi2q$&{Pl*|@am8;kK0kICn>abs{jR5^eU`rks(N4@12NF<+rI%_i;Jiq#qPsA z-C=FXECu7*_58?Em0=`we-Z3@HL4S&Yt0Y4MTM~D;{ zQ4k?d zYx+|wkxIelgom)iz^*#D0aLFp!#m>qg1M1`r};5b@QnE>dl*w2DR{~}Eiym6w)E*0 zRVZbcj?MinLLSDitl|fWO)&6*+{kY}iHNIf@X?h6h7ZwlwEjLCl|W@^9iAdfdABef z-h>oMvB=WhNJ%f^R#+FVmwe*X22Y*bvj2+k^UIF#^9%jL&(DeQ)BXHy_L4Z<-5uy9 z+?Cxf^3Y*M9?E@?YWV6R7yUVAjOgUoKXl}x*x^JoI6&nRB645I7~V#{e(~sbEL*e+ zB_JOCHxZAnH{#LQx;P6s6vW$EN#KE^WV0s zSTUUA+5ANyN@Y)F(RoP=cRi^>I6k1zSA~2FcCExrXSJ8zx?oo`o{>t(+RX3%J7J)Q z-<@3MU_Fbwj22St{)M~l$ZEH08y6nE7ihLNY;xL@p5s%~wI%)n^{0i?4qG7}FVNzL zDHiI|v*s#0kBQ-K*m|ZR1q~?K-en$LfKKM%73dosV$+ydaO&R$%j!~e#67%iBteL@ zLO?deZoUf5!-Jqudpzai7lu=^_LScf?8>xOG+>D$SA%0}%Zbu8blS#X0x^uj9vwkDVSpVMRvK$$h>ywlElLKh4SjJwe3_Bes2 zWd|cDJ%&kD3fsHfo+KPH3_9ziHIug5O7t^z!PDC-(Ngv{?C7#d+1v5s_hue}=((UA zrt7yXXeq!ngu4@BpRM}=GHxgG3Dk2TT!3)08*4N007E4FwY|et$cx0n@NT<$n4pQ! zBs^2;AJ#_*aDY7I?f@Rgv)DK1>w>4Ui6H!szy^+4?TPps>>lF(+nufow3vgvA8g=! zAV%wPy_wBH*?Ym2_LIN@y`$a7vo^C0>-8pU%cXp^m07oA6Tqd*^;KF*CRV@zs{8EY9lo&h-75vj*dI=t1IE<^JMI!B|S68~}?Y7BG>5PW9nd=ROzJ4~}`8ykz2+jZ-( zGXYbxB3Uwn)>`st?Hw*clgSl)Ap_DA)?IdYT@{L@LqOxrnl^s16$!8!W)&$y@P$dP zvd^0qg5BRKziZ&T{VH=xu6Q5JtL^NaBW|1^2wTg>8H}{2lq4-474a~qWQWdtcd*xu zjdjXDKDcuSY98Vr8(f^@^50>GTQ){7;oyxZAoMYoDUzRq7cTQY5}J(h@EO;gFUAE1 zrmQ*vWRcNSc6TI%Td!mS`P3cz&fw?RHyza;V99c6ie1`bicFM~XV&|}O1RHJ40@>Ftx><7|Bpay)> z5Ua$8=z#6;oh%+J3O4Zcg*1a(&_6O*Sp;dpSJ6FPFfrKpWo&yHCGfg2x*vtqVA4uG_2qOhvJeMyw7Wx<*H$BvRf7Km5Sw}h`&>uzK(A%Pdez&>zXP(| z>;H`2^mYo8S%Ty%ytD&Jzm#>fBB4;kFqOxYe8Jrfp3QlX#Acb__`Db>x<6Ps+vT5> zO{8A_WkZe-_t)`HEEO=%6^txdjlV=yZ5}|7Ia&0qvaIIC32Mb|yoa0kSA_XO&RLtnWcN6Kf+@xta{U9YyXtVFdFdMnUHHLc3>KrhE!Zkhftvz$6g1`_BZ zAzC>v&?}vGGO@o>H{xGF8ddp?Krdg#>mbu-C;tSxNWWH&4fOJ<{IjMB9&K{I0Scv& z?X0AZS%dY&^Y>b_ppU|(~LoMvKAie?iCwM<_yeP<+#2t5s*2vmJ4pa-UKmPK(Zc z#yKE!7diBg*@!NcyGRFj6Ebq2(LsWb%6&>dlmjbql%t|RBl-}@eTwkaww?VE;kSS6 zz~Ibq%WsPat^5`V=GZXvGSI^(kQx44O@1zR<* z89*?Z#dh&}+_5KYCencx5XS#%M?H60)*etcO3rV+mNREhx&$LCjjy6PNKmD+}@Ll(Rq^-^egKyPJ}%-wsj{kDRlD#>pCVy58T{7!kr1I zj2QE|iBb`CdkW@)uE`eqDD*7Wp-yf!wXC~iLlx>BjO$@1xuEfXfyM-)UjU~+n3k82 z1(u@ccjC7_{kZ!IlmY3(Qk1kCa5i*^D;=Yw&9@fJs9{uXuYqD)6>K;zQ*ZfpC?alX zp@uL{fRBk@29H zAd0mK5d$}s;3lTQz8XEovL`v07X@YQ&9W_oTClwvajrmqkzfbj;K=v$n6bfrhf@*g zg~K6XS9EVGH$Ymjo^=iJKP%Ema}_d`M-sVJ7A zdK8q{eMxYg>Q7vJkF`NS1@1IBy@@XyNckxtKu(J)UWUA=Nd89F3c2?gXVNbEx+AkN+;vWmgPeEd5F#L>IVca}5}6M1za zhw z_{}D=utFEushxt080A*wkJCS^LR$kE#|kkFmXZaYvew0_Lo-lz!SZV4_1$u|zFT(hC9CmJjf_m)-aa|w+fkmhQon`+JeTn4epfpaH z$@t_dv&{X#KRlAVhzqQPRrsnO0t2>0ucl7Lg44uTM12v%vU|kS(QS`fgoYTpd z)HWKuLDyjRLdl@)QbSh)H$L-q8Ry{1S@b0bcRaKR0k*gT4?Uv=+|)x)!GVLk$$<+C zB(xlzTKEfXLoOokHIPJ>!GfO>l6d2^6O-)fB$5~)r|lgHOu;e@KqW`3Gvczv1Jj6a z1Cw0S;B49&yp6A&+0>i32v5boI|t#QP0wws<=Q<#sC>i*L+7JkcS^)haC5?A6Te=C zCX^h7aL#Y&HZ@!rWLOBUOsLmSdobuQ0BzjPa+hLyw|8Xn~I@8P)v7DKr@qZDY zBBl<*nd&&TmInoVdkETC45=@1q3cz~j@%F3;jmu9VW&4E+}1X6>=}7kH2w`ZXfm~=a5X~A5r`saAsa!1h@4-8!ViSxm z6u*#gG+#t3Y7AZp<5V&;wVfsO0AAY3m*5zvM^YlW!eq^6NBlo9l;>B=@6y7M2)BB- zi^aN$dI}f#!kRF|b>v=>t-&S*{R`HkIJ1I2r~+ZTwFmD&I+sCaq3jCo|ib>&q&)wLUS+RB3{9KQO-G#RaM_F5E-MuE}!pt&^&YJ^7(g#=9!a&=jyF3r~vW` zr@#|3r;tI)a$#E;G33$crtg6Jc^Wtn!pCRzQuYLt9x!u$*1_^EN@x%uY1?LRfmlSu zNSv(YBqEyWzqA4srZ{^!3H7+5(|bN`1B_8AU*8QhrJ^_95olj!a2>P4=eu)hI``j1kTvI+ck?Yl24%vi~wxO^H zItN2egeoX7>!%D{2K=y5-+K$oECPTxao8KUm~%H00x0vFC{ZVb!Ew$vZp}cKN;vD zo4I^0mMKV(n2-wwFG&$7E*acZOTdGlA^hF`-Vc-it^ddd4dkh1Rvgc6Xfq{M|HOde z81IT{Q{<#6k3buB2w;5$>sI?F2=@W`VL5w*P;z?l*E1XGcXQ7mP##mglofHzrrgm% zC3E1N_H_9HEf*aU-iN8MF;R7=BSzj5b^$%~O45qNHp}qshu&jZsi}+6fd|+N|h&S*xY_ zTuOaFOInZWmb4yL^*6P^O3^pUU(Ja$9i(FqaL(yntj9?(mM_E*m{vMsJEH!_o(saE zZcIHjuZe43QaC9sI4YYe4(;X>GlVH{!UjrGHQ&eh!UImjLO7~Dzj&jnvp}ZxrYi$B zb`nJ8bF!glsG=*Jq~3esX?&fSTRHsceEYbBOM0J`)OKi2Hw?5|;66myzZyT+; zgB8J4XcE=|Td^oiDn0gg8s$~!>xKmWK$BMFOg^M?C{;ucTyHF?OWI;<7gb6f091^! zf^i6fBBo|j*=Tcq+7o0WL&{tSK|bduzNqZkl5*)zs4#}rm!+Qbf7M0+0)Fi(so#-W z*G$?m@nL(i6q&tNR;h-D3a=dng`!Q1Wh<9~&?V|pdquKN6xYUWO(_@bol7a&S60~b z1k|-snWYuDTAwm$MQ!o^uk)r|CVES2ODzf746v1|MI`by^rh9dyL4W4YN(bU)wG&+ zAucFq%7s)BV-)A?6H^*q>(vm_N(x3)wPLMY7%97KrQ>o;V zvPUJC^k}K%puN<0FW8+fQ2@#4I>AWuOQ)uEpHylszI0+<6)vuM+5#l?lv+$`DuIa( z+I;B7BtVPLr2n$FNO8WPBa+rGvpTM20QMIqQ!hpG zGwcte>Q$mkPi=Pp|H4QdX!TF7QvXe^E2{q}N#6;eGGINbat$FIH!(f6qcfL{giE9Z zU09VQ=P9W#A@fOzF}LwszW8+ue`V zQ&v+*lB`@P4M{ANh7!<$S(rgNl>UPi{ytbWYpbn=kv#NyV-QmNCe?pbL@ByL7c92> zG7>NVBLR9e5}<8jnjhDRHFfNCE7xcS>6$#~nzRat<~IY69I7%0bwgX<3zdz73`@ws zGgVg{|5UX>p+y-59dW-F%2;?0I}{WpDQ={EV%F4DLRO3^_Nq$CMo}$YP5L2KqaSag ziqj;!cVRKbsu&j`H7gByLvILc#NsWq6a22nV{0gWFT6z9cvE;94++AUz{hKb>H9o= z`JDaa_`Bj(^VeAHgd1}ahsqlV4w1xRhqN@A@LNi9a`K0#s^Gd6bTu}PL^2Y7*O!z9 z+_!<{SQaWDE4>V}F7wP>=yHsA8K%jn^yir#_ZGagv&Phiig%*&d+VXW)%Lk=%X|F} zVo3X~$OD#Jo*szY9>$bwElJD&Ra1X{dZ`^_9}P3D=JajWIh06kxfue|hub z<~J(if?rmUjF=FQ;!`2k>u9QG)=Kd)!%T0USvxGrMsMzT(#tQ|6$-H`h!$=R8mPDi z-J!OY?>{FaO7tv>sqhs>xcNPWxQ`$nKQt2CtJ*-+#4M(=Wfd6l6RX+{Ri6Qb#yI zM%DGbv|A$1K=nHbZO?2jwEXxd7~n!vk6M%JOYo&~!7D8;MEnqef~j|;u|Q=Fx4>c? zj-XpDUT|_?(I9idC=Lg|2~Eu~yOo3tfk%J#Y^+x>xG=u&xbtGl8G-1-Y%iwsX1q<{IMpkLBaAlYP>3ff{VgaN=lJJj6+I^ zsS{kqFR?LIHzBnoOg?u3`Spu0>QdEh9!)}GeRY(PRtP34{H7PxNhzsDv4no{85B>8 zah-FEdRMUvE_(Xqi%Aj0G=z-dDhBL>$$E<-dc4D*_!{GbM&*AmBQ*r07I_M(e_pgl zTf(CgrS(%^VscR~%|%`@mqT-IIOwVYL|kE1l=8(3*1Ae#_gWIk;(k*E#T3o>;vN)J z7(j6RyyR88I2Y$G#4S`v!_yL?am=EhOJUQmd`hl`HNLXLJO?F*qY|Smq)clkZ{>41 zyeWb(mrFfutVl%Ff5J~1EGoQ+`shpg3yz{hg_&R3Rp!Z5K9^1hRs^-A7Fnkr($c-c zjfn3{96>D$b5SL8Igg zXiae8*{^&BjVm1Ul?7Pk|CU&#_cvB8fj33aL}{b-m)yakF@+B-R(Z*2X}Z)8*qMwx zep&F1yAv%?111L3S|WK`4+PL37>Z5Xo)mP1Or;$(*Y?ZYK}Av>5d$mO-WSb-)a%fy zlI&+%mb#o;R7}TV?P_Eatur5`kYWfwk*@9jpGYT=qqJB|upfV^yLKX-L`Yiws9P{O zA3{nCCezoGmr(%nmvVikUfOE1Pfvyyg;41Bm8S)y_!Kt&%8q8@DrN8}oC^ZCmTL+J z{iB~_|AOm z4UHZ{o8ntcwlcIZ(ic{Gx3I*=A80G_I+Ps##0#wlKZkR7X}xNKS>6LZXAG*Cx3s~Z z1X>+lE_Zy52L?O_ca{c9hG3w?+#kV%kHYQ*QZj=3q++?_?|5QZD;R?+7L(z@qJyn) zrCaRoRNY-+ix$zEZ|&JYXb=;mo6WET!}U{=E3VDyh`JW!V+9W{fk(&j1;Q}xN@*-B zY<{ocG#s=?H=)OXRe&@koBHMG9vu8c7k)7|l=kCFheuVAh7@Cqm1D6Dx~G;H#c?|6 zJk9jLP}FHlO!wk}s~S!h)rHpLAYFBX+8KwxmFUIRls<7H0bl}cslW@hY>^&qsIb=V z8IacT+rt^1K{_x9tu<{{A?{EZnzfd|D0Pr%nf|v94608DHJ=A9RK2uqZAuAgZSuK0 zP&N!0LTzw8BVV`!Hf=!VfjvIEq z?fOZsI-~VqYt|Ka!M&i9lIYMxZ#TM)s~~6*y2&VQo{y5LNnwRVO*te+_hVTKMGCoo%;5;{opdy75Q+F&xE47gsI+NyHZrg z^_fyonkol4prcLqxzO!0(wr?88)HAQ0HvB#>vehdIN6a-j==Fk5;h7Uot5j@KNFFr z!9CG3+ItY~;_B0pbvQTVQ<9}h=H@}@PNHfA_oU9CCGn?lrWbXAq%*yAOX78hoTZ?a zCk=W{Pqc<~SXg)3UPs5v(B-|7x=ni>w7NF!#zFfjK^M>nqE-XPsGw7c71P5I1Lk#n z?a@tMrf@0xzVajE1VdL;Q#89W`z=wsVgCruS&_0DWl33-r_DyTwb?A1S-E!z&9JL3 zho8{4OF0apdKtqeIO_+8?`Uh8Iv}gHlws^x)^5(Iq;5e9X&0ZfxgXI`&K!_UD`Zn% z`GGZ8lug<-(6Vwr4=OXM>KsghL1ROKln7SWNV{}V3t=>hmf9@3kAA}6&pk_d77t2k z!z+H+RD`(CD3g1}Le%Cg!k4tUk-D*SiqZ2xS&UWt2+JTQDJit8u|UKX3g~&F4H|!e z`gJGf{DP45Q%a#QB0Jw6X)Au+3VYYQm=@zNoCF>5W*>1O6c3w-3+?c*jJR&&dL*VA z4mwAeInU67DmKqY7?rFX34K|=vLAMev&dFubrW$$%7S9fdbnuqN!|ulVuH1LJdO!h zQP7AycZ^Dz2`7uXO8Y_4;vABy2pm$O>?c#sGFDt`ULhRMdu)trM6mw!c`&T{x!MqT2#kv1!X4IL~&SaVWdctUb?!ip=9DOe@Q4c zn{2REgR~##%UHYpYbGVPMxx6PQ4S+d32 z49G`n4pq7=CPM24&c-wsLf)wFS@40nw(urJK(3Om3fHY9WH+_0IPI3wlIY^r%{amK zi+55$D6#|OeVZ;a>BvRllTw>~KMWsI-m$z(KA(s`x3J7`xmc@H53OWj9r6wkQxcUp)$x=jTkkqXA&A|^QW>lk!)1G1lPQT7V-n} zVs+Q+iVLwXiW;c~322r(E2XGZ^|2X`9PcTv$37}*nnm%Xo)!+#Q#DJ#>{OuqK(K9f z*DJV>>_w5UBwaK_iC3s)UzFpp$;0s&Wlg44Nw#W0az%m<%a6>K2-Ok4GJR0V$*L)@DE=U6lwlm!-r> zOcZl=<1dsHgjfCg5p2S=l=f0i)b>i1Bw(npB*HYm0l=baMe|Qu29tNoL(}V&P4x@i z@QHDe8i3B7{!X@MWXpp-Pgi z?vynulQNqihBxibs}2s`q0eb|5TJb_QKLL5r2=Uc5kaaq3a(1A+Y3@Xh=u#wcwTkY z3a{H>84gsMe*iT;7C=jWlu|9H)YZ7yy`z+@tBewD@Tu%Xpe=!N*9_VOwJ%UJag_o* zx*tLZ0F$WD@S)UO7z)>f3*BO0{nw2|8x*M^AB{|v&8!%+p)`G@W?~5KtwzdHvXqPA z<|_ADNL;`@4CuI+r#fJs59i2#Jx+!lIh3I%sYk!QC84FR?ZMfP(%$aM8hynvkp6^D zf5c3dw%I9|4eKnD2&4~{+6szAAU4aYW=jKOA2BfI28pNh5EJg`AD$Zl@m1W?Jo(bG zg`PaaTszccf}tk)oP6>>o2vD~(e#R)w+VmYjt4Z0F_9^yR5fAC)|^Ac>dH|H=ToWZ z{>c|yAWJ#}0B5odMepH`1V3q~p0q*B0b5#0Ny&riFlPfiyWYc&TzLT9qe92n3djAO zPr1#M#pe~KQB;+q2uhqgHr?!m?;Th&x302yBfO)~8dV=-+TD#4p961T#R^Ug%ulR~ zM!;Evisg5C!0^B5n%;+H!d-vYlGq~L>Zxdpb0UhGrzDt3LvonjsoXOz_0+Z73Z=}( zk+A2{VX#`&qKZ$gs;Mn?;-9#V#P^QdOk+Ak5-9>t+H(%28h<0ORL~Mpq1;f=k+>jy z&Jz{&xbvx^l~v+KTvel&FPMpPO7x_=fC;-=RYRH|y7IINLHm#x;O6nbJI=yC5jL~X z3BIHXwXh-H!WV4;Nhg5OqwrjUCyf!1skHx3pZ^w)+$ZSbu6!2jzAMAhvobv>p2G_d zVMM4>12y}*Xv1E zst&bNq|P_g^UF}rH8ZMz)k~tzh>fC;Ofkb4Czj%dl={x^GpyUr>+fvl=jI&$7IUb( zLEAaGQmB}dm58oKS^iyzXvGKBLCRWz0oh_-d=h$u9khZ%2OLtBOHxUC05w4cP2dle z`kZNCBBUEFjoWnN_-p9a!#Ccg{$O!sf3W!L7?2RgCN^th=ztjXV~e#>pg)NFl}R$R zWLNev*6$;u=?bZXVykqUZM_5HA0>Wcg@M>vS@KW8b-~}jam0m-AYB+VB2UYS4=w#Yz ztjbu3uAc`b9>P@T%K;tky4ridMP;(Zc&a@!Kld1Lm?@zbQ{m^St(3Y7<4My#YMv>L zl1_T28zRLH8kJdJ3~gxFZUo|{BRU-8v%VjA=PPCZ@MuJwyLL)iEz-tPIkvq|LdwDg6r=IwUmR5 z^>IDdfdF}R*Gt&pS&;fk6T3lCT1cM%|3v8W^{)~E*%%T*PDyLiKv%AkifRVwzBnyD zz_hySO+`uUi&Sg_{28NFQbCH^RZZZkREqyQ0i~Xlgj!pW3*G-A0VVW@9x{I{T%K-Y zzw3$kTr}Xyz)Ypd*K>mVyL@Q|w1ZKDaZ{Z%fI?%Vb8g2>!MIOCabgk;GbBI(n*rTH zI0e-ViWm+aff|rMljfR&o`@fW!?)qUjSLmwl*RSyG#CsaG_kpbNQrk_x( zKm1ux?De8rbQulCMO88{L4yNAFuU+EDE57oL7#uDP-t+TYJ#r@S9KN2eyDO)DipLO zbpApDY9l&-0ibONGPhI4)*=1&z8==(A4z>zAr^VB=@~($`qETxyP{k@b-;^R5Eaz&Lx{#FtV+XAQ~crXq=y676|I zMR+fy0a09LA$ie*Zu+FuXu%nlmqCNI$VQNhE+YU73ck3D{v+Z&}vf@gA`SZ zrGt!04dcS~_b;VZ5|y6jF$Nu=nIL{y8pv7KBiP#r)G)s4Rj zzxyF?QL^}RMbddh+9QM{rU6s5K&xN^0)Im>gtn|x-n6OSky6#EgW9EA+J$N@J|~U? zx1km0LuLDiOym?T{j3P<3NuHEGu=TLWfY_+pM*&l_Yu-I&;P0`n0(Fj>7jel`!6t(4%WG|1is9cu&6u>?1ZP(*ONX|pBbakA=d&k zc*PK%iOyL&$6ze^8eaIaQxy>BP`g8i|Hv2ohzw}uJ9U$Jc+C3 zcRfi$h^AfTlS)+*j;DO1#UXWxztr=PSrp~)T11Dj)kFhfmJA0Jem<83G=biMOJcsX z`t>Ev4ucPL=Jhxdyy51q_vEVK^crjIIzlF&-v{rCo6SqWK}=}GScIn>9&sEAePZ%; z*eRRqiP@Uirl_!RQCcG9R26{B4+5V_jh$Oy9r;2zV#qLbC@b=&D;2P2!dI?dB6-CX zYKf;2B;55HQkKu5@nuy&@2bI(4f(=zpa;cZhO_>#n98egBrH_ci8)~uAZRrzUAd|z z?824xqx=BeaJSVnC@(P&qwmp{^{Tc1g8gOO9bu zGKLZWac;?lf=w$)4urg_$$$ri83-g43m3yvN{P5qZUO{Q>@zJTV&uY`L<~K&BlB=S zU79wXp0uJ*x>~9$C4l`0=ERDkPEskf1P30m7G2ffoZ1#GhtTc}H&2R`3PWq}=JgO1 zmrx9e+w~EIbRoK&tYWd4K|MsMD40j5PUYtn4O( za!w;>+Cea_9{nW<0T2{p1xA%YF$a1%X00V=jyddeVE7x^uXs;(hw*?B-^e<0R*^*R zE`7T<=#tQ2QB%D8!;Q>|_U+sAb7#+bz=$x}=gykpJ3xdVZ^k@58OudHOzfMP$nEAt z@RciukUPca1q1iwT!w>iCR?U<`9NtQ0E~L&3LDX1KbcRq)OR<%zR?|FJQf~#hq&y$ zZp*v#@bGZTr~2&S`A#cWtU!9*y5if5Ew{nDc^+f=Fv%`3-an5VbK|!B6h}DE?9S;O zVb>YSa2(&CWO}`^yJFrvD(@lW;SkbA9&Lyg(AqpX^Q`YTa*CpDR7sK=hVlo$>nZLW zlo$STJ@K8}zI`;@Jk_-i_HhAC)N5ZRdBWswnv%egMoz$~b;xr%<=G9!Gdz3?rK5%& z;z-6=;LM|}LW8_}B5rn=v8`UezuPLp&JSfrS^?Q8Cx!14ch;%hFUNj@7Lx1=zkYa< z@qzJ$>6V$ea>mLT;o+Hy?W0@OY|#aN(4-|hr{F>wd#ny1 z!$J|Pim8rI3?@njLwyqE>Cg(|06hiR(GM-2^wYy%vNO_tG8vxaW(Y&})PE&E)VZXe zF%0=7-JJYYgP|}Ozm@z$PnN<`J}8_ij1-5!Y-;PV#Q3;LgPL2J$l#{={I5b_f`(Nv zEauWaG3Tm5K(Q-PZ5w3j?7>O554bLP=(17S z`nO|2&yK!)@#4j+;^N|Zrz0FaF1&I7sdIK=^WcR?tZwxj*YQYHuY0pzX5UYhi^^Re zGj`MqSiEd<$x@ru3-eNQ*0xZ1SRU=9?QC z>uWAE%TvGnl#?ef%Z&)wWTdj>8{>X%_ORsD!xLjpwOKmH#fk5#)j4EOH=F6VyS8>J zFDok>TXb=9p+7IZ(x&|KyDPo;x?vBl{PdUr#Sg02^~%kKwx}k8B*qgJ{`MQ%yQeRAadvFfz}k`+ApIgkhxQNh z_v+HVRWtj#)>7Y!v1yTGhY#%C)6dJTV;e`i+HztgON^T`Zsd@DLEXIFJGE(MZ(~7v zetOdMsIei#254=YH*Qed+*DYkm>oYgB5dT~z5#xou86r|UAeG)aYov#*vaEZ2M_Gs zqpL?}XD0`1VZ*8=3+5!vh@KceYH0sJf27yiR`_M}+T{xssR`4jOb8t@s1IejmGw#8 z?|9zfgL`*u-MDtel9X}UB2@Wn464vSbLn4ARuhzI0LnPP&xHCam%fK=yBLqZ(`EMa zL2imMd)@R~7`V5+u|(qFl++HUS)u%m@X+7UmGevd;vEEKan z=C1qRRw6$(-;2k+^x;Wey76X{dh+w>LHtpA zAO31$f4;zF5FcMSg!?81^U{(LJbFk7-?e58&pRH*FI*kVEl!T-m)A$|$dQwHZ`ox2 zcHtEMSTBla50B<{KgMwNxmZ5vuW5Yuqd30o@^t=i`wSi(HIp}MHj6(wJ&Ugy5zjk5 zjOVL|B=GDb2|V2{k>8z?$hRL%z9)&d*^!bSB@e zp2-_7naLlFoyp&HnaTTCpUDmH&EO`xXYk7Lw<|qQ>I7rKRQP9g|DOd+MQ8ce?k<`afspM zmQUqxdr#%YCR2HI?iAiJZVKaF2`#{-k3BFUp_5dnzYzqmC1JgS+GTqV(~6 zWb5%fFbJc>;Jfy{FzU){CZ!;={JC=^(Y2T0H-YrM*F-J%8$HPYQ zbFWA6+KLhUnC%FDecx~%)NMF#ekYhum>kUIdcnNzl3`rgWEdZPU?^YjHjL>l+dw{I zZ2<4sAb`iO>d8CW^yDL!_TZ(KJ-E@r?tHFkcRp)QH-2B^&kxP;=O%Cb_}K_QuK$-W z-!;saU%KqW$9MPPaq6zTtV37+;b(6?!Pc7(_|A)G8hG*VrhD=yPdWcJnDbBPM4l~* zykw^b-)-x`@2lMT!ZJ6WHNlOKywQcH_;%rq_quW~TUUNZ;le+>?aUXA?96{Y)rotx z@5G0$?kMR?)hBh}Td%g~$K2ZU&<*YQT;q1URirZ?aHTC5T-x$>tJ?tct$Cv{t@(pv zt$1_CR{Xu9CGTG3#2o^h_`F|Q@F=qu{BcBc{_wOTpU~Wq&zRecTR&>byLdO{MQfYz zW}h7RtAP&Oe{W;nyn184Vr(P6EUzJVsMnD57<*oH){Zx6V#i;_+wy>`4R{x)20SyR zK0kH69*=BQk8he?mruTK!_PU{@Z6+2-2X~#9@?}vuQQ_-AAP1K_ij*=XGL1`Q)(+d z)!d5j9c9Vq@3uhwWWlTVGUo@@$azUo4Sv(L1|KlDI*+_+#vK}(@oAH)@o`zE{DaJt zH|=f0->)?0p^uDsY#SrqWQHM+J7T~mR5Rdu{bgKStu0>G2~`0$-TL(67*l zt>#yVztk=lV>f&f7ql!DKmGbq%o0C{$B(}gn+3fU?_7N?77cwR2IRjK4Z>cCwF{q# z=@W~@fR}~hv` z5tnYiosMZblyqD@eg*xhWhcf zlOE9)M?74@4tb2v-0xAp+D?zK;Xipe?pp6Lldbd!>GQou@sIO8%wEs&SdyCPF{05_ zkF~jDJot!#9?d^>^VqV?%_F&eYma;9?LE$oxAKUQ8G5*RymEgy<(m7ujfdQSzqa1} zzHz#{XY4?C#~b$UV%#-1r?`P`t+Uvf3w&oc2ZhnUg@TNYJD_^ zJN?^)f5psHs3$ZNDqSj{S|79EPX9~=Q^8pfg>FJ`q0*)Dsr6CJoZ*A~h{7OYq!2Dl z6e?XRpIRTzaHoGG@h?i4E+h)6f}_!Y_;Zxku5Z`Kp=q<`Eu31mYTc%dbG!B(I(F*Z z*|m$CyNAfRmv>hmUq63;N9%^o+jeyI@bvce@7^;YsCVB1gN6(X9x-Zk*x2zA6CwSi4z!_paT0^&2#7L`Z1(_=w5T(`LjcrlihQE?B%|>55hBHg5U(mz{g| zHLmaM6*Oc_MAY=ew0WwM5N3%h{tTXy<=FE<@M$fG#dL!-8L#_)%xS&U8!R%QZ^yg}^CaeQ`boE#Z z=8ArvC2NTOoH47-nzD|pI(m3ctP6U7R_M<-GZXY|nqj|24fJnXG7P5RM>;S|CcRf3 zJMb{+yQWjG9VR{Z$$9&1(r>$r7?@3Zt<~!}*`&|5*tI^J^w{=chq6h3m04ZOCcPDP zOE&4NTelkIke+(zrDYE3r@?LQb4V|JH@;O4>7%IAa!3z7a?C%6^v`pT`{$6}iMla| z^vyuC$vLEFu9nB=kbe0hH7$qqO0hH}hxEzV35#<`j|{lFEN3e8$C;hi=8)ca@cT_U zq%R&W*p@?jBHDtShR_d%_=7p57ecsmNFPL-l0$mn-Fl~UY@z?1;umvB@B41(wH(s- z-bCEVAw6$f^n)DI@1{;I$RWMXDC|WJ>2qikb4ZU{)Uq^(^f%B?O?n&JRyFBsXmi!1 zr=cxYlYSOAshXPfvRke-)TEE0O;?j1c3N$vCjARKfSU9!=mzQz(6>%sucw{|Jqx;o z+7$W~bPP4=RepOLt4W`NPNM!EdK7dOHR(@H0-V&OH$6PoO5F(h5_BFl=}BQ5+No(g z2}X@~(w)?#55bQbeo5C-BP{7)YSMcUr<(K~q@hMyq|2#Ezd;_CP5KJTs76^y7geL|q@$`yF9A)|q>q3`YSKeMGx%qu1FJzx5j0hk zz5yDmL2D5-SA+HnYa(P$4cQYRgKEg42$@tv zHbuy&n%Z&5tQxW_LWb3lWf3y1ruG^#u7<3Oka;y^Ujzo!z=8-&sDTX;7*SI@49uv3 z9S>kg4J>&8Q)*z#0~k{SYaYOy8rbsy2Gzi#2QaAyHr;_yHL&Uq%&J*i6^1F2>H9E! z6L!g+uuJ|4yA+kFZPmCG1lE3A{9s&yF?GdF42duOY|b_68#9fL{Gvl(U-7G^d{^Q{Rz9o55g|-hp=OS8yCe^UU6K#NF3AgFm*j`AOY%h6CHW%klDrXiN&X1CB#(q$l25{} zB(K0O$uD7-=GUcyM#}|F5#81ONQRbj@-x(`6awlSc-$Dv;w|x*cuhPf-jfWFERal)Y>|wS ztdY!-?2!zTERsx;Y?6$Utdh)>=OnE3xo;624RG-LYN`! z5QYd#gek%nVT`awm?P{F1__IVNx~*!l(0&eCG4`c)i>+DC2SMMb^aynQyrj-PpTWJ zj?kqi)g4ra=1doun(DR98`*r7OQwmrd?-!FI$tM0 zQd>Z6f=<4qwu0IWo%~5{3AHIY`IOokYIAh*%XRWBwN2DU>EvB%yQmG*;X!KKsEyO% zMQZz~4bw4c6gVYMZHzChQ`N)OJ%FuB#8E zww>B|U40?7{iFlv>Jv#fARR$h-$=Rx=@7d5i0kSnN!LJ`CEWuwkaQ8!Np$s_q^pq5 zqO1QTT?QDIbQ{oE(sfAZ(bb=lE<`$!u6~ttC16<6oxnp$mjX{E-HLQ9U41R-UZjKR z>T|BE-z8lQG9&43q{Hdj14*|d9Z%O@NV*^CfV%cX(hVV_lCDTPqptmtbV*=X(k&t5 zlCDWQr>^~ybWzetb?uv^s{%8U?n*kWu051=TheiL?IqW>pOP*NOiH>j>BzeFma~)n zHj@smYmdpDFiifby{7PlVTzA1Oz{(jDLuk4rB4{9{1ApIf21E!ehI^rf5I@8hcHa# zBMeh{3By!=!Z6W;Fii9z3=_Qw!$d#AFwv7RO!OrT6TJz;M1R6C@q;i-{2>ezzX-#` zKf*BalQ2yDB@7e43B$yH!Z67LVVLBDFii477$*5443j(&hDp8%!z6EnVUj;-3{Ll`DJ5rzq0gki!P zVVLko7$!Uth6$g9VZtk6nD8qZdM7(_BR}Mq!cbU>gW{q%DQ-%G(xNmeZOQ}Xh4Mss zqdZbxDbJL5Dg%{;%0y+OGE!No%v5%w0nvhJLbM?o5q61YsQ)Ay5-o|QL|dXU(VA#Z zv?m@AFNi0^8{!f1ig-r6BOVejiKoO{;xX}>cuu@086a68nIPF986jCAnIYLB86sIC znIhRD86#OEnIqXF86;UGnIzdH86{aInI+jJ875gKnI_pL87EmMnJ3vN3=kFw6NC-I z2w{aVL)ak<5tay3ge}4tVT~|H*dq)Q773GtO~NSJTM4r`l>oD!L(%_k#d@;w=z%xJ zVvmvNhqq(BStNSmj##u1ivDfA7qC zu}SFRH)FnR4Ep(Hlr3eKQTp+0 zGrN!Sd*OzkER?@Dn~yQK#-PP2b{*7+WZT$d(8G_-#_}5*P-8JW2kL~f_3RF)6U}z9 zBGAW!&0xQRJ^^eVI|^zIW6RhTP-_DAT08)~yjddq4fN{6RO}R}H;S!hH$c6~Y&&}b z`uVd|rUv~6vhUb=P&17E$o>R1W7uw-Frf!(&SVEb&p@VN$3Wd+wwzrBbtBkM>>=pe zl_jx5pl@HcfSm@lL)aR26V#r;N zi3dUdAeO<7gB!!y3ib!MF_CR$e}Nx9EE!8)YJ(dK*%@$WG+WDVfjd*#4ps>MbZ2u| z9{4kuEnyeIt+8w)y9aJfV|&>P@XM3MW4VqMxTVBWmqy^-N_Gw0o5X%*kH9})mcp{Z zzy53yI}2`(Ve8m!a5IYSWKY4*9xR<50Y8VZAJ`>ucN|7N^TFLXwvW98f2U)7bDUrc zuGSFJ1$XeerLajD3Lf_mjtFvaUBlvpR^WC6;Rm57WWY_>CyWR0hX|Jh191Nxnv32^nna|30cBq$lgfdx=;<$_lZSg z{P;)QrMXz}hb(p$b_rpS!2!ZKp)RD-RG2NeKpGu|^};~Ns2{HXih*o~3U>rONat(p zJhF#WnhWy;5whA^*dhc&MgxSSf(4{j5M~H%Agy-7G9eH$>>>OrL_l_j30DLoNbd(W zS!e>OttqI4u8`&S!ge79GTcWvCDejc8)A&P1EkqOSS|F0jC%{e2~!~3ql6oR8Kk?6 z#Rx4R)pdpMgl>>^7h$&$4jCUPoEPdr>Z@Ud+7;5?T=-EK1Pu5KY9SV~A13@M=tKJ7 zun3_cq~1bM2pm{wBm5)`2L=L#V}d16p(o4~+5!#s!g3)97!id7!bD&rShy+}105gP z6rm|lQA=1L_y8*%gkOZwz(`-=v``zUF%pu5jzCKjVU5ra80w0H_ND?mA;L|eI?z+j zVg)Clrk?P<&>dKE74`^YfuTWIbzUE+G858-EJb|^g!d77fFcu^n7p#CfePNd1474>ARtUX-K`tB=CINfHg+Bxnps$2Y z6`BEcwS|R(FR<8A*ddGo2KxzTggQW_v5+iu0vekNYlZ&6sE=@1hypf83%7(CKxYM; zCbR@9>kCVS9>8iBVXrU_7#%EJ6dC}v)rC2N8_?<`Y!rq7!`+2EAr9CbE8N54810YN zLt$ML>Lcw_TK81t`=9K)C3&TICwnD(CW|nh$-zOvy@G>=_KIm9?HJ{lRyVEgVv8Tm zcAM_0R%c(^j81bqrFBeqnbSF~bDBq#->4pgdk!AdV~F>#uAy!d+f8?z*(Ag%s9nFH z{(T1b9N1%!|IqHkdkpU}$uY_ywoz=Og%*n~zq8t4w%K&AQMO@@@g9@fdpkw*aPQH+ zV|onnAJ%gT04)hP#b*ALkz1VOGnG#&hgKng+J=7&_d2e2a+Yk*#8yPHj4+ zX?)$Zdh@L2Td%6I&U~%qw(5IK4;kkg?lM_tT63>kr2oL41N!$H<~_Lkpl-oEM|T_F zC8ASwhp5g|TvFPnIWBEDzrpCnfh}6h809_DX|iK%%USl*9pV}$HB4`$toeQI<<@I$ zR@U88bBB3m^-R;H)s^yEdwEokzWw_J_Z=&a>NcutSoer-Q#()VkkDaThuF?@ofXa2 z*e`An(lF3bPvXdVPn==|lL@m8W&_Mhm_;!2VOGN|h4~I(s4Rzk#ity?w(*jT$>RG-*O>`(K!>GcD>0x>eeqb$mmb_~N>Ap26CY*8N4cs*JUn3x@3cYeY z{qi#XGMVg?LFp&M5<>&y50#BnW4cauNiDCS(L_J zP-@nd)ia;vGET4h$@iLOXwxrie$h-v4RfsGVY$peR@1ZbWAXUWH=v?5G#CSRU-O5i zOydO|%LutK)?C%}(Q9Ma!SsaLUxN&e>9g0GXPQ?UJ!n%+V2ZI*_6N-#O*_==ll89Y z8yjRAEQuI<)B;+IG3fPP^HlRdlaIgpX!k==1HVDrk$~FigkbgVhsQ%K-!!)~>~EjV zww90A8ygqPLNu2@8OL-$+qLz5Ok|nHLhtG8N8uMW@Ac*vZyvr|qtK6iY1nU#=B)ng zm*M_DXin%Wi<`Nv&?M`Jyx!S*v&KOG!rKvzvNU7#e*Cb!)@9Al!jGlNe!*Im`-}?l876v@TFu3+l<(_gF8QJq3PdFt#^=F^42L+E>`Uw|i=L z!|sUPR=at2qwTubncCg3U2i+uwvp|f28$YaH+WHhY5gwsZ`6ybXIgJ{-4=EC+jOxx zT*tl6f!eKWudiiZE3syQb&&OLD|4$z%aazi7BS|><+bFYHFj42Xy$2_R_&yzsc8?B z4CCWQdPbt*bc4OJr}~Zbhw6PNoJIyZX(B7Ol;16@RTlJVUg?pNijQ4BPWy1+{rh(= z@8aL)zA=8&_x0*mPm8-0&wu&gh0BZYo)%3;uHa>-fV74=o?&Jecyp;lbVeYwwS`?|A=x{_*^^`P1_U=ZpD{`L*&* z^Y!vse*Tn}a(!U0;(2bGUu_xFls#DGQB9APzI%Gczg>%_jT_oEs9&$HO`Y1cYFb-a zTA0ggR5z<;YGQ0;Xdt72Y~L8HAaCpM;$&OX%#fYfyeNLssQ&&Q?OWK_mK(EI_ph8d zv}@Cf1!=RQ#*Z4@yPKzLyOvEGHmGB5Zf0Vjhiis1GFGkHvBP(G^t99rRmRe#tCp@> zzh!-Da=J>TTD*Ai(pC7;yy%uKJ9Zq%J&>E5doK4}zRa+W5n3eh-K>7|>SZ6~Eo^EC z6=L%b@0)m)>6gm9jXs*!Xjb@fe3tiwuV`X5`=Wv?3g=+&<1+`2-puc>L?ytJN2 zGlO?62FrvBcQ3;-&8O}z!UwAn4L&flF@`eZ=i#m2V0E*;o=H*vZZF=o9{1GPvT57e ztk|z#Q8j~iv9&&y){cFvum5pmec5|?p!+M0EMBinziIzEPxPv{sBTxY%muemH}3Vu zs>EyXhu7A!KF$xVSx^0!1|M1me-z4V`P!9^Z2s1uSy%Hift610eCJKenX-aD2G#V9 z^q7h1U}JN8X4crf-^8>v`_KO+x9=PnmauHssryzfyoW?7He_CUY-ZE0Tgde9e>r)t zZcE>xQFGVrKX<=+t&Y7X%wE0!++T8=mYzeS7i>Lx*Q$=#H+1^qtvT0f*|qC6cKWhy zXCBsU(8_B<{L<}5^KG4bhRj&7`L|1ttZX{?4Ubv4CHHpSMqdgVYSo@|k7_sQ z6cV4Yao?p!woP4zOiNk2_vDkB4Y1~F@`8(qd|1b}L;uvJTYfw9s7YJT{^O>t-gD~l)xAqnCXO1= zw^yKto2yHE=eDg{GoQwl8D;l4U=vShg{yYhSnEZlObh&4F|_#@oT6kwYW=`uRF^XcQCf=i{?G+{dSp z*8rdX4l%0b%57e;f6mO>w&}*bTN&3D9=^5pt!mz?ZCf+$+*WS7efoxC>u>L~lrdSi zvob`S^tTY(4Ymt*t+;oHx#I)BEiTrDD~s+e%GE`HLEaW=%!et;X7y(u-~~ z$>#kLe^YuXdv>s|vGh{3f2ak$e9Ye-Vv7@IG!@TwjBH|r7wobzTr4f6c{W@=N_sic z&&K~xdfU*wk@p5XFDG_)a@~QKQwjcUyUfPRmdNg|;<(Ei&8Jyjoqa;LYf90;QX@RU2|M|Dm zx1O3=HE8YXKR9%H+LFx&PTVN8sNJ}=OJMMXS?S2{*}KncShVWMdk%?+PFuG9@cBQB zP0SlOy7&(s8>d*gJ^S3<=jK)pZCwKfjh~jb^rx)Tx1O0v!gyy;D@f z%Au7(m{CA#P)N0(K zOVIGh1m&u2htKC18_OHD>)LNjbn18D$EEz2)yJuwFXRm&tv2(uvap$3ve>{9`Y1hGL@YvYIj2|}cq5PRQXyXwubV3|F z>_&XW@|um?d2}Bb5*e4G+I9Ta^ZRE{WggtMcIAq>anVyFCyg0BvX@VXc5PcZ+1u5# zG}ULCPeqTfo;rHqr!5b zkLc~*Eq1`rY4esXSifKuK@>kBG#r?8Xf$e5#M-R=S;}xvZ(x=Q_7{~Z_42G$<3?>C zw*~vD($Msw;WKBwCj~`hDaVFgysA>}STSp?1KA^o*s1cZj-sK|YtSrU&^wD$29SA+RJw4RV$IsilQL5*b za32StEgjEBjl9#YzF(`1h!_+edOKmJV%pfWsJV*q+b6VZwCS2^Vb-!4V{@SwQTi7r z^*EGXvQ7~mxpLZ|u(&X^l@1QxK8;6h3J-N)dJTWd*cl$$Ur#SIVtSmzu{r>8`CIJF zAvBleH`Ts;y5y>@1K$4bE4_Rw$n0+<`6>QwU=8Wz<=$bo22>e5+!Ja=HX6-p8Fmul z_b^-@EWP~EuTHmT^tLphA-{%a&Wu2(&U7lvJB7cKo06PTz1w+596@Ce6VSP1f<_Yx z)H~|1Z-7y!8t8>o!?!U;sEqI&CNY39PdoIAK=fxVu@S5TW5GVy4Hm+%n@#J%u`y%$ ztr^>d-EBVIa31VP?Dfs~;x22>*lz3&8|TefSwF`5PX=2zY27U`%GDIPXpPZ35#wRO zr*m!`xVQ4b>c`Wc&3t>dtb=}fwRu*dHsK9=*n2nI)Uo8l`*&}jUOs*51d&K-k%_S*-rTzELQ zGQ2(eV|(%dCzhYPK6#WUd^nmLq4~kjbnNRI1JC`{fS$2^XPXUKDYK!cpM|sObN$iQ z^t`2a-KgaF4mmv=9q4Ott8|koJ^kLawsm^gvxZ%Ga-I4u8<^e->1O$S^;^SdZLO+3 zT(nvCd{YBG(|Zy6<)v>6uO3*MIz4jqfNt*2j`lWI^6J&TD1MhOo6gdHx2pBE%^w?L`nfsT*MUb9XrcOg?B$^t zxBBK)wbIf@hvyD#Z);T@$!hh~lA=GdRws|`=iRYI!@4yss++QklA`mQrUkaHXKrew z^`j{-d3i^@I&Oe#liG5rJeu-P@1Ng0vu}C)=$@S&8`P8&Og`M%FrjOU`j%!UR3v8S z8nOP|ITGQ@pKqJ4lec_j)3-;jk&}`auitU*+_`)WdQkZZJ=}alR0k@9;JG7uK=**) z=*2tE<--g8wxmxD4-1c&mXNV{)fQ;J=a%LlNDu4RYe2|!@}>2ZpSyH=Sn!bH;nULB zAIQx|*!=thtJ0@U8W%oc^0ZW>nffYcZ`z<9&1?BliM7Dnvj{cXK%4A`e<#}hkQ>a)@pSJw4yEH_}K zPtI&j9^BE!kd?i-k+o!^zoVs$mA|=vVoUN+SG(%^tm1v))q~$p>fW+8PF>cN7T-G# zmo5#>4N*OOdi&(^uir)XY;9vk)kgWp7k?hzlpO5d*wUDEtMZc9k1p>2E;68Py&5F# zDeOW!_AJGkz02xm%1Zu7X<^7pAN)M1o{W7eJThCfma)=j7uJtyV}S;s_~wDsKFx8& zt)`;z)Vc@{YpRb*3eRs#9@wrn=_jQxZvM7pqF*yh%1POq2Pcs)7u)Kj!<4;ya*5Jy zV^fVj%RfH9ePm$u{UVJje1-sYF-`?CbqNyqR@$VjFr}@`I2Fl+*IkRrOOKnR2W6>Y`<_u_K zMO3JG^XHLuv3^a=D8m&WpI!v;+t!k_t%}m(JJ~-(bagPNWHl9^-aI^oTz76z-9Y*- zd;jzgqP0^kQ>vn8vy)xeli78_#{e@{a&5K~xKyxX5asLDnN$~C$XW6J&!0v#Hb$qf zq#$p$S8d9`r`579VsW}ABwK+OY7g#O4|Z} ztw+~Q@pX{M0a$>3yXOt>T(6q8?ImbCwf#h07eXIp|e>gE{o0Z!!!!bLl~Uq;HwlLRR$~U0nK>Jd(SCA;xrc--h^>85l*! zju{gc9nHo^P79ehKGZ%WYHaMJu*euTIyO8!EXqD+@?`tyNg)#_!beP4RAk6R`>?2} z$x&>~VIh-PRM^zmu;>{3$jLGG<0nm-7)H^Ag?^4XIwmA0j7ciw>PcrTIWnMLm)AYQnQ`yNLO*i`$ZkO=R>t4`i#wgD8z7WxY-)Ymom3g$+T|KL;Nx@nD)}D_ z`@lNonq)YCcJKNn{^@Yv0r!UA2>)+9S#DEK8|}Zui`Pn?{06sv--xr4C(rAaYkqX7 z61Ga2r^7lDyCDDihw#hc-p;FBv*#aZo(cEgyOwKyC2&;Iv2Dc{vkoW$uZy8XoIZwo`%v+VR$H4v8D3pyV zlyA7xxr7ms<(lXJ5dVJIyG$w9>_G6(;j5JWD%_93{n9tWQ`z3a{%};e#;Iy}yptPU zz;*_1-@;)_xaGoabJcJ@(o&(n>$RM8RZ(fTj5*f35NCd_;SsD zJpbm3;=tR<|3|*MW|nJu{)78!gpbTB*PQqV_rq|niL1VT$MbXks^H-ctTW-> z;UB`6!Ts#vat+;%{;lx!VV{*Ex@-6q(u zJ4sKh{?Jc#(KT(j*P?*A6A&*O5<*sA&YTfEBWM*G3@k3!NMp^F<S#a?l5776`Eo^Kf8OS>;D^l8X8q-T>gvlSLUUmNrh%ODUFqR`46$?SG_{Bp=x^n zVYozGKWknUqyHhz23l2U2L2c6Rq{8cCeo`)OT1IriNE9Eh92hsS9WqI{`RU>p;=;C z#r;3b>vmiooB2P`)Tvd4CgL0I#lP|1yM2YGKeGAX@^A#gMODSre^|ahyHsepej`1i zn>*RNRcN+-gRcKnj!IrdxmReGR*hFzKN7E=!7c26z}ik+H=Jo#| zr`K_JukwEg*P?HQX7>LOE_h^xCWscCRO0tPEMHV)g(iy*i25(X9Z#>&T&+sa{}A`< z6e!;}WTH}L1RN4eXMO*-`B}ZBLNgb^K8O2TyP*F=g@#tpe#<==)%*!T~+u0ppCFY znD4)l=D*=`=GqEPkN?Nn)c{sGzVG*(tyLNqK* zN?(gU)&~~rbW+mC)G)PJDk{nREJEl;pS>ObpZ|Zn-Pe6z*KH#t{+_s?_c`FrH|*bhiql@pMC=lOdYxR)aIo&0cYr~e2(!ug$i2DWu4@tzvt z*k#?zuqFTX&)dtK+;D5S5)c2n?fr-Qe-FN~<2nRY{rrdfu?3!|n`58jJ+Jv0H7YAh z{vUaNu2or?Was^d{dl5oW#!rk*P;LIIQBKGtgLB|+du687iVCueY>5W{$JXvvT~sP zy84HCpKFH)fFg_=kBvlZ&!1IU8NQ*a$2wyFt&eL^W*v0ieXKdV1u83XOWoxG|69)P zD6{f^>Hn)8D=R;=b4veNXF9ft@syb823<%Wm|$P1ow>1S#3%L-yM%u46ylsaLts0GDGY#o@44>@G~Qv z3)!Z0Y#-lPS$WVdZyj@)h%X#jS=pf-fM>t6d@ijv3aZhlZY3B?`^*ptuf<0yos|;-H$C%t_Qdqz!gWx{oh`vWhi%jgmT=+iP+lB zuB^l(C2pT_y-993w)?;(!B&k2Alowu+mqlvM!TvwtFJi-UxlY;2K)_Q06rtTGU9!0 z<}bx|`n<}@jj-PQY}+wx&w=M;$W=Tb%f_P4o!~av<7~bD`8vI3k>}hZ=RD>f27Utg zNV)ksod>Skcv|11WrKeU{NxD7D08m^U$`XlKHd#(6}W1-tuZYF|2gXYiIRQBiJ+Qq1 zjvw>A9NYK|xDFAxiHNO<&<>7YHnzp!cG%^t@mYs>k7p|@c}Z^9$+Ek#bp$v2Z~D*g zj^?j8^>}4p@VJDt0bDO&J1^b*-~CPko=VI)H_9o**0W}m(;3@Y*nHS7tr6u6!*&g} z5<#MTAdUih1^l>_g?b`G}A*!p0b1$}co%l_+e zzmp7m61F|!eNo?1{9>gy>@V1!2i^z13AQ8HLePxGmWlEwkb4^Dt{(fF-5wr8-d$Mzbw z53n7<#%D7!FkXC?f}8Wyb>WX)cxnSS>yjo|oSiR=7;MyWA0{Cd|GwWz!@ZL4%yywad&?jPxtY^tUg(<^!&YBg&x9R`24wmWmgDH~;%(?a1m;bE} zmf3>7ux-C%U-?g>Z`itG>xpeJwsF`NV*3JH9G;tO(s{J+G3?Vf|H3}RuYHaime6qWovBw3x78(kGZJNXEVm&myPuK z_XW1Eu-P$wf5*=@cI;a;gU?;qvB`LE;j2L3zN6=ISMKjR&T_1LjzE^{0{-(bh4 zUG6x1rooO~fajR_9D^Mz!bBc;{6G!?bsDrxQ6ibW9&3MXJeXB)s{twd5@P6Vyis) zhCGI!6ngrWHXFY$^2BP*!!x{|vg6S>o~P~hrES2ZP@dQzT=1;&jTExk%!}e$07C+EY8QsYX15kaqw&W>bj2+ z<9Ee&z5<-Ahe2n@qJPADG|nA%Y|{zcNAc)J{Dymvp4j+5@R`$7_I)%p&T|}mP=oVi zhX1PC{2#>d60X*_UU=@4-?7?ldHFP-!|zY+*aP^mg055>gWGXo+QU=tiZ(un-*?(& z|H28D-(}jdyE>wMp8fXlIX;KqLE5^~gj4%*1TlWEXzPxi>vQ;Bq8*!>L_vAFC$U_#A$}X6qW< z>~r|tnH_s+w9n!9Vs>oxSf4Z36YDx257v5Oxexdpeph9e{T3G-{2t1V-M_-;@H-|u zHZz2Lo_^GR4*T2_JG9Y<*)pn^y(Qllo<+sZ_c3CtJ-SC;^f~;l$JQmh>f<~YF@6VQ=WC6V!C;SWEMolr#C}beZSy&;Jma!tm(SsM zA9lV2dwmYS*RW%w{)OYz)3=Eq_?%uIo%4y$;dc#o+3(9weQkY)H#~lSVC#C-GuM80 zn>*F_pYmQi4l#ZgV3%!!hv<0!-;R~Gz%`d=tgDmqSJG{4S>vj$DV+NS&vE0F@j$if=zr%aP zcG>-Drx!`7X`GXC+VUEyTk2 zQ>|;;j}dF{X>;WifA}}`C|=dRl!wjdDZ72~S@;pMr;hUxOG3!Cc*N}Y{ZA3= z=qVfhh##}KRPS35u>qcZWrz*&{Q{6?@up2r=HDvd6T0z8^DFRUf}qh$SJ0zpDN5 z6=J+!XqSC`6UNFDi!Sh=a$URwFUjQ9QQI&R!*j$J#p6ftkv z_Ym{;ty2-^5%(P9iLakJRs#_8mVFj6-mA0gEh;{>Ex#bfdvdmJ&33=j*VDIe5aazf zTbH`af6C{c-w^Yb?fE9|MR@9X9I>vRAweQ`#MhjVK{csp&Fy`{(&C=)-S|((~gUBf?4mHe7GIu+yK8q^3fj# z|KNU??+?G+;=9Aw`l&w~eu<@T3BSzJ@2=qlPl~@DZ7PO;!tx8@AG7@JwVa^yj;VhQ zu2ZMu9z!#(#r~1;p}t|8 z>iIrxUEOcm(&X9E!r1aNonW+8-;Og)e6!g5!N*wqo6W21=QcO`%MjObWjmTk{K)Bs ze?sidVta`Vh>a2ZS~H`M7mLaF!sEZGsj=B&uN8Y7_d&RSCgaVIHc4!BOE-3C7B}e}Xc%;tiF@X(}ws7jGVMz6NJI z&b0&F_R?=Q!07Hxc7kIq-AMR)yi?b$ztP2s{k5MH9Bt{pgg?si_rp)O{GITJTmF;% zoX`(4uFQWP_%w@;gFnpj>%mX8{Ga+d!4%8?5By}yU!P>!`>fbSml(grCGPow^+v;Y zyiB*|nbrSw5`RK$f7n*2Hz59*U90z} z5&T3eZyoqOEdQtTonXN7x1Vq7orAc(kFmXjB>r<3C)mx>ABCS_`TvIB#q!_t@NdD7 zxA?8_?fTbv{H5?KtmEb?`1*dyb`A9S-QmYs`RjKv{n>t=^h@lEosECJ*z$ADep)Sd zMS>G-Y30d*-`w(N!f#^vdpenXBgLM6wtGHeJNpcEU-#>9&S^B%3ANAS(7X!(`U z@Hk&~x!XUMJ94$DuO!WVUG_yAZo|bSUk?Mtwi5gCRWkmt%s2Q-Hy_I_7;avlKV4^Z zJFho(IxJte-NfHE!NecB%RSEy8iD)e_)x}ruMxZF4&&c-hkN``_v1K|?|!lMVEOv~ z`gUXAhGm}iV!s<}{4BAUGB(UFyv^8q#NK(U@!N_`9b^1nVmpp;&(mzjv!f0FxY(jw z%y_PXW&Lx-o+q}&E$;b}j-cjn!U?`-%!zX+E7UY%*| zC9o|2$V0~OF7|>4&3;<^fQg?eHao-kdnUWb_vsVSZuolsqW?U6eLtrEB=vH<)1M7L z)AE0~zq-EUepAo0V($i@X6c(r{Jr~3J0F8(KmMF#>||K>^QU`_|0pc|wqkeQW8&w- zGG2H$#!KE;*}jB{?)cHqn`*}I^M{Ro3M}ipN^Hp#SHBBmylX0aY40YKZTE=L&z|Ol zn&3NV{H>Tc4c|>pbAo^3J8t!#fsf^{!~WCYFMQMqPM18D@H@euW%(`PXIp;EqfV$; z`a%6`;KvGo?W2zKGJJjip+5&3`*G=Grhf^KIl=j&A2-8sHe%y>Wa13Be~b^CZS)tw za{QXlGBzFM_4CSg$Qd=y=&r~%e4A`1lqBcpn^E@1xz+tSbBu1J*qCFUs~XnJBeIf z3QWFPo2$qB!Pk7$`Qd9m`ro|lgu2P=U^8;Jde!8w3Cs2!C^U9)p%Yvt?W*$%o&$id z=N0;oimn&pdVXR2Z1{S9p?`+xGGB4Wlkp)QKNh~Wll+5QO}j4J>R$hxhc;f|@qgK3 z+B2(|%>6&T{y9l862m@HH>}kVpUZ>!zL0yzaI$ zzXE+RJj!?=a;W!1B2H z5c>=)<5S34!Y-_kdE)71abF1NkZeS`LLyz*h$uFLnh*R8D)>j%F`^3cB!zP5{gm$yy% zH}|@_d3$kv0DqE{qd)H*GcKpWvc9AHjD1J!WBc6wbr3m6z}NAiKWv}dfBFgFwg2>6 z!`J@PZw$TmpZ;fWyZxsBt+eBvcieV9i&!yy?Jxb!@U_46zu0fu{p5aEcQazy@U_46 z`<0mcm~Bg(&~Vw$OWt*y2KGIatC0P>61mJ#=di4Auh^eHbMLDxLR-Fqzf+C_`Um0b`H23o&&+Z6=cm=#&=z?qSDSj_nNWpSfc1 z0k8cbe?9!&(jNL(!q?-6e)q#ps8q(eA^bnTFyr_oEZg;-*acs>dD|g&gT&h-uJ0p^ zr+n$^8hwfT?(lUy=%0TC&l97)9gpC=EyvIOh_`_sXZa1GYYyEkt2}kHkDB&v`o^@c z#@9};p4^{4iZYk{r@H_3SJnORQIEEl`VA*cz6G#+9en(=$@|bx<~)8mEI&6k|Isbi z^hdm}{$_OFok0Jj{$k|#T;fZ9bK|!oHoX$}Q$+XR9}eb9$Ndz`9|6Cc<(L13*O%pg z48MuxZ-F0Y`Rm}fwEPhKc*|c3KVbQ<|7rTWLTv9ptLra>Z|83Z-!A{*$?EkzeA0|Z zW3gCZBYgb)5bX-+-EwM9U+hV+L6+1xeH-2B$emmm#IS<$H z1$#(;&aUBeu7sa#`GesnT7GZ%NtTZVLc;ZK!m~~MTsrVHU+A#B4pPBwk2QQ5z9?e* z;>0d*VEk6FJYHtjGxj1_>VB?k>`P+%iLE2Hw2t97ialA|_@CAG1yiJbtUpfT@5dPa zQdnM}yp0E)!s8|Fzq+P7E-ZH+p37o?_BS)SE=`R+7e8ELxq7foz!x?)`EF_C3#LlF zZ(%I#B zEB>*>SBZT<>@Cnuv~>L>o`CpxD}Jo4w7ab@ILeBzmiQvX)2;X;62H?EA1Uz!u~A|R z<4pc%<9xx;~$|c^FEDuuBD#_U&odC8zq?We5;dtd}pIgTj1+{ zrN17&zHiXah2LEA(w_sriRE7nU(e&@FN5FG;s?NwxBLs?>v^8~q*4N}&*4I5xG0$X)rz5V%GvilD`~t+sTK#P0DPL1`-zT~63oL&K{v@m1 zBKZ2cBLB=_vtJ&8<$mcTw*FxE^__x!=9l*I0b}fxcj#2JzaW*lo?h3hD}PCp86^OZQyTmCBeHb3G@ zQ@))?S9yhb{l9ueb$#+sU(k{7MVY@F{1hvHbNF`tH!j0+% z(eYybZRi(|i|uK~{v!U8tBrr(O{U*bu)NNBeUv#LtP;Ctq|v=3cEydxzZ90|myWPJ z|LjXQ@jS5)iH(D$uIUJ0uvEsq{WU(P2KIEJuLQBvCoRV;96g>#HxQS+Qf35uW`qZ?R;^x8J`?j@-4+4zs2~a zVpoZsDR$T`zThFr-{xkY(_P}f0yEEpV&iXi>!WVvSW{oSv3Q@7@^7NfPj18c!}7D? zCt7|M{9$rjP(S)MpA(1iXok4b+g;g}fd9I;ox@_1`2{&wsyece%? zKf(0(Dp>Znsn`>D8NcK%oCoCjfc_YhZSeJZIQlQqm;TXTj&dzf-#o;1zcW4tzK%Qn ze$er{<20$~g*#1sBgCeNjTU>yc(>myKM=n5gMQ#{(~rFqO@CKRbkB!V5X*wEdiq!0 z?F&Xrzq+IBrSSDWJN^FmoA#ZVVe%fH?4IxDfh&Qp=Ue)3!LKLz=x>D|WBF@6<(ql* zzujM5|08@m|2OdUd>gJGb#T8fVL5%@MXcciroHE7xbXz^A^QPe)&0v>&^!QNKPS+? z9)7y)NBUR5*W;A_e`cAysk3mMD!TQEcZRPz`ie!At~ z2tU`-UkQJ>#rO1-?+SmI#h(Lzl;wZ$SoM7S;p=h9`itS)?VAff%_{#Wd_8|q{}6nA z-==>re7n7Oz>l%oe=YoK?Sr3c3!=@IGtt2WObq(_X}rt@!Ne=Jj&B*x)0^ zpDuR1*nzO&_cihRW*Oa&Q;pp(c9PhEu++B}|Fws4+*$Q*fS+dd?-}@Z`yYp&Xz3q@ z-^23nf*&i_6&$}C;oIXk6n-~L-v@pd%l~YOdmdr={qW;0ehd5r%ijQB&yUnkhi~uC ziSYIOOa2Dg7b*|dN>5%t|yf+-4Ey)mB6EE0Sm^E_#y7*)E|Y~H;e5vzxsZTL7dkOEuS#<*T;=rBzDZ>XrHw|65)@s`~Y-({T!Kx z&&Ag9k~q)A4`dtry4Z!;c>l4=HDmE-1ijWhi_-|I+URUypP8o#E^GjecwRdi_Sf z0sQeY4)p)Zbzf)nUxBZ$Px=ExrX6R6-1mX$Xj=>T^Cb`cy6{uwIH3RQN}QMF^+*2; z_}P~JWB9Wye=q!DmcJJMbj#0zujd2iyBofqXXy8Zul=UqX{8zWuY%_NZF3OkF{?fI z!_Ttv4~CA{v5AOhTJdi1Gb}#={v^w~*j+U&O%VR`(G7299zq329|me^5Z zTRrF2dnRJ>YfYZa=iTG5)AK%O68vbXkA7$P+FttCtvBVKU+eb2H*(z%f0>k{p9Eja z(LcD+l)G?)8}GWo=ZwrZ@f2A0CjiUut7_-F`}JFt{cfXMj{XNyE(Be!)O$B#izUw_ z#I=6Lr@UzD>F}bfFGIXB;;i?mrDr_;WuvbPOaAefjQza8w6C}T=My>Z79vM3e7z2* zKVEc~A+EiH1cBR;?P1W-> zm-r#{KhMhZG<+Q=wj<*e)9<8L+|L=kF$V1s=Qw-;%>A?TWxQ`m9`a90JOgoUKjQ=8 zYkvCqg(lAnk}pr})vua(t*yo$+hXhivBhH7id`V~QLzohz9V^F6`L;k(!?gh@_pwe z@fV7HOya&`)BkT@H}&8Cx-VEL=f7XK`JD6M7g>H25C7+D)%kDW+vVT)@Jl`X4Icit zZSMH7{w~{1`xovq?Hsn<VA z{j{dB2acKig<{|R+4yIOef$Tvz8}8xId6Y&+SwPD*B2+gbL%JnMMIPKgZh|L0OL~9 z!nCJ#6XVwwyR@-CR3NY4F0uIid}G6Z)(CTiA@80>{!o#{?|@%u`E#LT{x)KNKF#>u zWBpa*!MrBv_`5Ctariqe|J?Te;6d@5w!<7;@JlWK^MF5C zV);ez_gVfT_=hY%8UA6*f8i{D=vV%b70(MYeDb$J-+F`*xl%JV7b4d&o$+? zC79#p2C;1t+;S}ud!>gdxAr1`uuSsrK#t6dO!+?RuMdbbltA_LV34gU77)eF5L@$8OQBMcf{jJdbXX=_c9qdV5i^rN&__4e(BZ}+2EbQ=-3>s{s1JubQ_h}+|GuSb_Ix*>?4u*R>i zNB4P8_qgNnbWcCi-kbWl?Y#-d)V1)nz4V)lu9iplNncZbZ(p|`)Ng}tm!BuPOvH7+ zQFo6=cfROadvqs~Og&#GRj+4{#0wGE@nPOI@a_61iS8D}?fS3t=*|*dBag295>x*t zmsGERKYY8MT+z)%+^**lkM1JT1w6V+w4JZ}qj;U`al!uVllWG|?S4Kb@tKJ0ey9FH z>pVgKmwx`x*x$|hHi&(B6n>WFzXN}n>!$DA5? zKRGAeA4)1Q`@iuBzw^XRrd_wdviucd_m47uf3X*fZ7FucNW*7~J!hmp)J5`+LS4UO zW4;oxtHs`)?zWq{iMJZvaIuSSGyXkdhl#Btwh}sC4;&T!4P*UIYxqN8SzlM!cI>D4 zFNiG~XZV%38{155x$s#N%s8aNGS6Li8GG@a#?}=3{dnUq6zhz4`}5}=e&_f@CeKV* z<{2gSQn4MyW<2N*-#5AIL0muWH~S+Gb>9rX*z$Wr$2_%QdEN2;1IC{z_O}e`h|(i>)Dc?_{+19k;%xCrdlUo+SXVEOs`$tk#gmGLRd^gG$`cUt~b z_)VmL?sy|5gYm&MPVVd@qgeJ1sTke_LYgM`AmRUAWl9Cy5;> z_U1(tls2KB1^K;RM$gy~#(WQ!Qw7~d#<{LXy?2spnpOftmjgs>0-{bJJ zEdN3Hd6qv3zSc+m;khPH``O4NuVcnrd;AGAjqZiVj9oXweVtL??Rj%twu0qx`RN+> z{Ihlq=A5E0*QxY-Y%sbeVmGWe{yk!E5_<(KUpGtF8oud9^SVjgh|jZfKIn?rnfZqI ziCrr8j(mUUnDoCNVxv9&A<^Y*GUcxk+eU01u^BHK{={ZuyKi>$z5`8rkAH^8Ur}J% zy$F`$GZL1s_iM#ZdCBlSVafYo$^Rz&N{K)7l0U@x$#}d>LF{^9etxV4%W|)5G4^?} zkBa@d(8TA69U->2*k)ose%a_2hh%-5rPHD7OdYcs^OZ%RL`m zkJwZ2^?XEs9(+9?(Leu9lfUVk{t)L}V>_Z@@850WXNvv!E#og2`-YTzLF_K*czsj> z%YN41WBjeK?EiSNSBo8lb1|?F>4*;ppJDOo;J*+)6Y&i2%Pc+<{99-k{#N87z6^Y!#pinO$xlRlJp62np9r7x!IPhlcsBfX7C+zb1UWZ6 z`FzCJf!}BG`QSNEJoysDaoC5-EPfw&&KXa>9Pu*nF%8}RmxJg0@#O0vjwK&L@fMFm zBE-4m$tNHl4?o4?6X0`RdGe`wLo%i_mJIl(Kk44;koEbwbA zJ{$blX@*~icnJURwD>jP7YV-`@nZ0YEq*8bknl$kKLNjacwt{0@9sdY>@rm%~3qJ{V63TN9d-6H(=Y!9;_#Ecn zVE6*WcY`kzejn^U@SNM8<;&rhfsf(Dn()b&gXcW=^y?uWSHlS<2_JwB)WCd*n5Th! zGW;a)qbxodJmkwZ9ez(Q11JAkq@wZ|h;=93@ zS^PfmN0@XO$Hj(?VqLA+&*6G{|54mJ++WOBZL@=5U1z)uo>IP7rn zoco`A2K-6jb1XgsJl6przYOtp;P(li51S93YXXojfxi!Yxy6@&=lTHTD-e&a?SukN zP5WbDV`}5|i{BlSkB1)spKS5*@VRaP`4q&{;b#gz3U(CAa}5FVS@1K!FSGbe@LW%T zd@kb4z!zG4E_kjjK)wj^67Utmm%^5U=Q;!AkHN11AKT2dpZqcSTyubY6U6ZyWhhzr zc-Z(lPLS&lkWYc14n9-(QLv-Hb1ee$S@3hf7YM%$b{TlCOF+I5{yy;K!k567fae+o z9{kE@6CtMCEXKs_hO zbq~lV!ygVlL-=&qbnsjQfqW+X`QY<~&wZ0?#!Z$Y&v* z2|m~2v%qsb2l9D{=YlV?_&o4j+kt#B;-%n^34ajwAb76xK>h^$W8j-$Qe^t%Pk`r| z5A>TO-URd3cC+~Au{gis85;6E5KjR=R`^s{%x4>%EBtu)S>W@8pAI`6JlBO_`4Id9 z@TI~R!WM$(8WH3V!Y>0K(@KtC_~qcaUIh7ih{v6V*O%}C*uZH{kZVVfPli7ne1`Dp zu<78rjs*Ek`18T%3!ej<1DZsL;V92FD9C5Pp9DU~;xpiLJqq&65MKj-xA5y= z*P%SurXar${!Z{mEPglmal)4&egu4U8`FN4FN4oDD_A}Tam<4p3RrwhW1L@F7(O2H z0Qh8!kB85-ELc7T@!{|@ginV}M|rMmK|T}yeDL|g=fLKG=NcE}3*hetUncxM*nQx+ z-Uaz`_+{W@;!OL=mxEu>-thGhk86VQ7d`+RXoB-|yy27K4+ozid^&78___&(&xAi8 ze7^8GusPtlK1R5G@OOhR6Mi4;KJZ*CBiugtW#D7lO8elKgXg*#vE7E z1wS2prp1qf&ow&8XCa=+d={StpX+sy&qF*Peu?k}um#A^wL8d{!Y=_|VezHlxsC_< zV~AIPk3GxukL8cS=b9emn;;&4IE09rFR-YWP(6Dd5Lid@6XZ^}+Jv5g!YF zmc@?;&vie@XCpof{2GhT2G2D>$ge{@1b(N*uYu3?K*;Y#d?)-P7QY+ixi$#-GQ=@| zdMG+z`j-H|3_jNhAs>TybaTAEEk35X6Xcp9mw9uGdn z;uGL=trGI7h^N3GYw@Y@xo!#h@rY-_&lNrkHVgT=h6(vR__^SVEItoB*E1nsjCc|F zLl$2Qeha>1BYzn2L*P$Z{9*75XBgh;fX~a|Tf$P$`kgcJd1AHU;}CBNKhfgj;B);G z>XQ&pgr9ElNto}SYoU-Ig?KvnOp6}{p6jBJ&q6#Ce6Gc3f#(`2h_;B$Qy@~McYz#nVzsVL92R>+S>d@T4`7C#<5*Igl>jrc6^Yb-t+Jl9|$zYg&= z;CEa6I`CYNh5SCmcY;4+@w?%3Z5Hxnh#!F;9q;zP48DF35`%bjOT7LqKBlD;5GmM}g0>_|f3Gt_%6;h-ZS&wfHRXT;qj& z9^$#+i!445JlA_6UyOJW_(K+7OntH84v?*V_f#V5i~-DUW6#D~Mru=sT3|4sNz#3zBzvG@%5 z`hCVS#B<;mSo|`S=Xx@%zYy^P@TC@C2%c-pkUxlc8TgoUO#jN^mxJdzGvwj39z7Raut|5OA@e=SA7GDaU>)4P#hImVW znpke3x!5LRW5w1J%da%3ixvwL_GiJ?KzzE`EU_74F+DZc!HVWBaoX`>$BIpdW%=P^ z)5Io;<*ickg<^SYi+;J-06r?vj}wdUOTvDdSbh{IKT0gVKMDI2#qy&zd443P#rG#+ zi|#2F|jc?1Q~BBwu{(gvBSlV7t2cy>T|@d5zA98<0WE`h&>^;9$xz7 z@zEn}yNOK^n=W>u*y&=IiCrhQSZt}-GO;Jcat%h-6A+8oUYbI39!VP+3n)v0cO_iybZ&_v6Dl zu5C_zj#%7x5Bo)8OT^-SdN_VUY`qxcT+flZEU~!%8}`?TEfQNI_K4UMV(Zm6`Z%%O#HNT% z7duhxbg|3C;{I*8zGAVZVsW1~96u>G7T@WI_rKU4VpGMA5<5vOp8=pgS8Tpm+>Z^% z4~i`p>ohd+CSv2o;{Iw_KTPasu^D2s#p1qbSXUr+x7b5sE5x4mp6@H)O8>kX&qUw% zSG^|_*7&pF_IcmGV$hMO7i+v!YswEbFInZ^fA)(lzKdG#TN>Tzv{k;Kf9gFy_-5DK zT&uvBGUgHACEYLTJM^S)zVEsL15-PvJ&MT$rulk)>3_mk*lbp_GT-aI?yG8Tsg<@W z`qSu;e^1SK>wZx42mjmtx1x6V3jFi@-})YFcB1CisPylAw}0eY>f2mD=+B87`K<3} z|F8`WpZBfxeeM6cL0Cb6jSo>(5Bfhks z8Vu;aHfo9Qt7eORt84sJYi_M+_$B45zK}mZCK&aLZ?
      sLFzU%RwM?`csL5YF{2 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

      GHkmj*l*I#K+;YampR2Hapu6YikRE%Z@h->kY~~ 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 Rj{7Jv4ErA4Pkrhz`2)<2;e7xA literal 0 HcmV?d00001 diff --git a/Audio-Frameworks/bin/opus/Opus.framework/Versions/Current b/Audio-Frameworks/bin/opus/Opus.framework/Versions/Current new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ b/Audio-Frameworks/bin/opus/Opus.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/Audio-Frameworks/bin/opus/include/opus.h b/Audio-Frameworks/bin/opus/include/opus.h new file mode 100644 index 0000000..ce86038 --- /dev/null +++ b/Audio-Frameworks/bin/opus/include/opus.h @@ -0,0 +1,906 @@ +/* Copyright (c) 2010-2011 Xiph.Org Foundation, Skype Limited + Written by Jean-Marc Valin and Koen Vos */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** + * @file opus.h + * @brief Opus reference implementation API + */ + +#ifndef OPUS_H +#define OPUS_H + +#include "opus_types.h" +#include "opus_defines.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @mainpage Opus + * + * The Opus codec is designed for interactive speech and audio transmission over the Internet. + * It is designed by the IETF Codec Working Group and incorporates technology from + * Skype's SILK codec and Xiph.Org's CELT codec. + * + * The Opus codec is designed to handle a wide range of interactive audio applications, + * including Voice over IP, videoconferencing, in-game chat, and even remote live music + * performances. It can scale from low bit-rate narrowband speech to very high quality + * stereo music. Its main features are: + + * @li Sampling rates from 8 to 48 kHz + * @li Bit-rates from 6 kb/s to 510 kb/s + * @li Support for both constant bit-rate (CBR) and variable bit-rate (VBR) + * @li Audio bandwidth from narrowband to full-band + * @li Support for speech and music + * @li Support for mono and stereo + * @li Support for multichannel (up to 255 channels) + * @li Frame sizes from 2.5 ms to 60 ms + * @li Good loss robustness and packet loss concealment (PLC) + * @li Floating point and fixed-point implementation + * + * Documentation sections: + * @li @ref opus_encoder + * @li @ref opus_decoder + * @li @ref opus_repacketizer + * @li @ref opus_multistream + * @li @ref opus_libinfo + * @li @ref opus_custom + */ + +/** @defgroup opus_encoder Opus Encoder + * @{ + * + * @brief This page describes the process and functions used to encode Opus. + * + * Since Opus is a stateful codec, the encoding process starts with creating an encoder + * state. This can be done with: + * + * @code + * int error; + * OpusEncoder *enc; + * enc = opus_encoder_create(Fs, channels, application, &error); + * @endcode + * + * From this point, @c enc can be used for encoding an audio stream. An encoder state + * @b must @b not be used for more than one stream at the same time. Similarly, the encoder + * state @b must @b not be re-initialized for each frame. + * + * While opus_encoder_create() allocates memory for the state, it's also possible + * to initialize pre-allocated memory: + * + * @code + * int size; + * int error; + * OpusEncoder *enc; + * size = opus_encoder_get_size(channels); + * enc = malloc(size); + * error = opus_encoder_init(enc, Fs, channels, application); + * @endcode + * + * where opus_encoder_get_size() returns the required size for the encoder state. Note that + * future versions of this code may change the size, so no assuptions should be made about it. + * + * The encoder state is always continuous in memory and only a shallow copy is sufficient + * to copy it (e.g. memcpy()) + * + * It is possible to change some of the encoder's settings using the opus_encoder_ctl() + * interface. All these settings already default to the recommended value, so they should + * only be changed when necessary. The most common settings one may want to change are: + * + * @code + * opus_encoder_ctl(enc, OPUS_SET_BITRATE(bitrate)); + * opus_encoder_ctl(enc, OPUS_SET_COMPLEXITY(complexity)); + * opus_encoder_ctl(enc, OPUS_SET_SIGNAL(signal_type)); + * @endcode + * + * where + * + * @arg bitrate is in bits per second (b/s) + * @arg complexity is a value from 1 to 10, where 1 is the lowest complexity and 10 is the highest + * @arg signal_type is either OPUS_AUTO (default), OPUS_SIGNAL_VOICE, or OPUS_SIGNAL_MUSIC + * + * See @ref opus_encoderctls and @ref opus_genericctls for a complete list of parameters that can be set or queried. Most parameters can be set or changed at any time during a stream. + * + * To encode a frame, opus_encode() or opus_encode_float() must be called with exactly one frame (2.5, 5, 10, 20, 40 or 60 ms) of audio data: + * @code + * len = opus_encode(enc, audio_frame, frame_size, packet, max_packet); + * @endcode + * + * where + *

        + *
      • audio_frame is the audio data in opus_int16 (or float for opus_encode_float())
      • + *
      • frame_size is the duration of the frame in samples (per channel)
      • + *
      • packet is the byte array to which the compressed data is written
      • + *
      • max_packet is the maximum number of bytes that can be written in the packet (4000 bytes is recommended). + * Do not use max_packet to control VBR target bitrate, instead use the #OPUS_SET_BITRATE CTL.
      • + *
      + * + * opus_encode() and opus_encode_float() return the number of bytes actually written to the packet. + * The return value can be negative, which indicates that an error has occurred. If the return value + * is 1 byte, then the packet does not need to be transmitted (DTX). + * + * Once the encoder state if no longer needed, it can be destroyed with + * + * @code + * opus_encoder_destroy(enc); + * @endcode + * + * If the encoder was created with opus_encoder_init() rather than opus_encoder_create(), + * then no action is required aside from potentially freeing the memory that was manually + * allocated for it (calling free(enc) for the example above) + * + */ + +/** Opus encoder state. + * This contains the complete state of an Opus encoder. + * It is position independent and can be freely copied. + * @see opus_encoder_create,opus_encoder_init + */ +typedef struct OpusEncoder OpusEncoder; + +/** Gets the size of an OpusEncoder structure. + * @param[in] channels int: Number of channels. + * This must be 1 or 2. + * @returns The size in bytes. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_encoder_get_size(int channels); + +/** + */ + +/** Allocates and initializes an encoder state. + * There are three coding modes: + * + * @ref OPUS_APPLICATION_VOIP gives best quality at a given bitrate for voice + * signals. It enhances the input signal by high-pass filtering and + * emphasizing formants and harmonics. Optionally it includes in-band + * forward error correction to protect against packet loss. Use this + * mode for typical VoIP applications. Because of the enhancement, + * even at high bitrates the output may sound different from the input. + * + * @ref OPUS_APPLICATION_AUDIO gives best quality at a given bitrate for most + * non-voice signals like music. Use this mode for music and mixed + * (music/voice) content, broadcast, and applications requiring less + * than 15 ms of coding delay. + * + * @ref OPUS_APPLICATION_RESTRICTED_LOWDELAY configures low-delay mode that + * disables the speech-optimized mode in exchange for slightly reduced delay. + * This mode can only be set on an newly initialized or freshly reset encoder + * because it changes the codec delay. + * + * This is useful when the caller knows that the speech-optimized modes will not be needed (use with caution). + * @param [in] Fs opus_int32: Sampling rate of input signal (Hz) + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param [in] channels int: Number of channels (1 or 2) in input signal + * @param [in] application int: Coding mode (@ref OPUS_APPLICATION_VOIP/@ref OPUS_APPLICATION_AUDIO/@ref OPUS_APPLICATION_RESTRICTED_LOWDELAY) + * @param [out] error int*: @ref opus_errorcodes + * @note Regardless of the sampling rate and number channels selected, the Opus encoder + * can switch to a lower audio bandwidth or number of channels if the bitrate + * selected is too low. This also means that it is safe to always use 48 kHz stereo input + * and let the encoder optimize the encoding. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusEncoder *opus_encoder_create( + opus_int32 Fs, + int channels, + int application, + int *error +); + +/** Initializes a previously allocated encoder state + * The memory pointed to by st must be at least the size returned by opus_encoder_get_size(). + * This is intended for applications which use their own allocator instead of malloc. + * @see opus_encoder_create(),opus_encoder_get_size() + * To reset a previously initialized state, use the #OPUS_RESET_STATE CTL. + * @param [in] st OpusEncoder*: Encoder state + * @param [in] Fs opus_int32: Sampling rate of input signal (Hz) + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param [in] channels int: Number of channels (1 or 2) in input signal + * @param [in] application int: Coding mode (OPUS_APPLICATION_VOIP/OPUS_APPLICATION_AUDIO/OPUS_APPLICATION_RESTRICTED_LOWDELAY) + * @retval #OPUS_OK Success or @ref opus_errorcodes + */ +OPUS_EXPORT int opus_encoder_init( + OpusEncoder *st, + opus_int32 Fs, + int channels, + int application +) OPUS_ARG_NONNULL(1); + +/** Encodes an Opus frame. + * @param [in] st OpusEncoder*: Encoder state + * @param [in] pcm opus_int16*: Input signal (interleaved if 2 channels). length is frame_size*channels*sizeof(opus_int16) + * @param [in] frame_size int: Number of samples per channel in the + * input signal. + * This must be an Opus frame size for + * the encoder's sampling rate. + * For example, at 48 kHz the permitted + * values are 120, 240, 480, 960, 1920, + * and 2880. + * Passing in a duration of less than + * 10 ms (480 samples at 48 kHz) will + * prevent the encoder from using the LPC + * or hybrid modes. + * @param [out] data unsigned char*: Output payload. + * This must contain storage for at + * least \a max_data_bytes. + * @param [in] max_data_bytes opus_int32: Size of the allocated + * memory for the output + * payload. This may be + * used to impose an upper limit on + * the instant bitrate, but should + * not be used as the only bitrate + * control. Use #OPUS_SET_BITRATE to + * control the bitrate. + * @returns The length of the encoded packet (in bytes) on success or a + * negative error code (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_encode( + OpusEncoder *st, + const opus_int16 *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + +/** Encodes an Opus frame from floating point input. + * @param [in] st OpusEncoder*: Encoder state + * @param [in] pcm float*: Input in float format (interleaved if 2 channels), with a normal range of +/-1.0. + * Samples with a range beyond +/-1.0 are supported but will + * be clipped by decoders using the integer API and should + * only be used if it is known that the far end supports + * extended dynamic range. + * length is frame_size*channels*sizeof(float) + * @param [in] frame_size int: Number of samples per channel in the + * input signal. + * This must be an Opus frame size for + * the encoder's sampling rate. + * For example, at 48 kHz the permitted + * values are 120, 240, 480, 960, 1920, + * and 2880. + * Passing in a duration of less than + * 10 ms (480 samples at 48 kHz) will + * prevent the encoder from using the LPC + * or hybrid modes. + * @param [out] data unsigned char*: Output payload. + * This must contain storage for at + * least \a max_data_bytes. + * @param [in] max_data_bytes opus_int32: Size of the allocated + * memory for the output + * payload. This may be + * used to impose an upper limit on + * the instant bitrate, but should + * not be used as the only bitrate + * control. Use #OPUS_SET_BITRATE to + * control the bitrate. + * @returns The length of the encoded packet (in bytes) on success or a + * negative error code (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_encode_float( + OpusEncoder *st, + const float *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + +/** Frees an OpusEncoder allocated by opus_encoder_create(). + * @param[in] st OpusEncoder*: State to be freed. + */ +OPUS_EXPORT void opus_encoder_destroy(OpusEncoder *st); + +/** Perform a CTL function on an Opus encoder. + * + * Generally the request and subsequent arguments are generated + * by a convenience macro. + * @param st OpusEncoder*: Encoder state. + * @param request This and all remaining parameters should be replaced by one + * of the convenience macros in @ref opus_genericctls or + * @ref opus_encoderctls. + * @see opus_genericctls + * @see opus_encoderctls + */ +OPUS_EXPORT int opus_encoder_ctl(OpusEncoder *st, int request, ...) OPUS_ARG_NONNULL(1); +/**@}*/ + +/** @defgroup opus_decoder Opus Decoder + * @{ + * + * @brief This page describes the process and functions used to decode Opus. + * + * The decoding process also starts with creating a decoder + * state. This can be done with: + * @code + * int error; + * OpusDecoder *dec; + * dec = opus_decoder_create(Fs, channels, &error); + * @endcode + * where + * @li Fs is the sampling rate and must be 8000, 12000, 16000, 24000, or 48000 + * @li channels is the number of channels (1 or 2) + * @li error will hold the error code in case of failure (or #OPUS_OK on success) + * @li the return value is a newly created decoder state to be used for decoding + * + * While opus_decoder_create() allocates memory for the state, it's also possible + * to initialize pre-allocated memory: + * @code + * int size; + * int error; + * OpusDecoder *dec; + * size = opus_decoder_get_size(channels); + * dec = malloc(size); + * error = opus_decoder_init(dec, Fs, channels); + * @endcode + * where opus_decoder_get_size() returns the required size for the decoder state. Note that + * future versions of this code may change the size, so no assuptions should be made about it. + * + * The decoder state is always continuous in memory and only a shallow copy is sufficient + * to copy it (e.g. memcpy()) + * + * To decode a frame, opus_decode() or opus_decode_float() must be called with a packet of compressed audio data: + * @code + * frame_size = opus_decode(dec, packet, len, decoded, max_size, 0); + * @endcode + * where + * + * @li packet is the byte array containing the compressed data + * @li len is the exact number of bytes contained in the packet + * @li decoded is the decoded audio data in opus_int16 (or float for opus_decode_float()) + * @li max_size is the max duration of the frame in samples (per channel) that can fit into the decoded_frame array + * + * opus_decode() and opus_decode_float() return the number of samples (per channel) decoded from the packet. + * If that value is negative, then an error has occurred. This can occur if the packet is corrupted or if the audio + * buffer is too small to hold the decoded audio. + * + * Opus is a stateful codec with overlapping blocks and as a result Opus + * packets are not coded independently of each other. Packets must be + * passed into the decoder serially and in the correct order for a correct + * decode. Lost packets can be replaced with loss concealment by calling + * the decoder with a null pointer and zero length for the missing packet. + * + * A single codec state may only be accessed from a single thread at + * a time and any required locking must be performed by the caller. Separate + * streams must be decoded with separate decoder states and can be decoded + * in parallel unless the library was compiled with NONTHREADSAFE_PSEUDOSTACK + * defined. + * + */ + +/** Opus decoder state. + * This contains the complete state of an Opus decoder. + * It is position independent and can be freely copied. + * @see opus_decoder_create,opus_decoder_init + */ +typedef struct OpusDecoder OpusDecoder; + +/** Gets the size of an OpusDecoder structure. + * @param [in] channels int: Number of channels. + * This must be 1 or 2. + * @returns The size in bytes. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_decoder_get_size(int channels); + +/** Allocates and initializes a decoder state. + * @param [in] Fs opus_int32: Sample rate to decode at (Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param [in] channels int: Number of channels (1 or 2) to decode + * @param [out] error int*: #OPUS_OK Success or @ref opus_errorcodes + * + * Internally Opus stores data at 48000 Hz, so that should be the default + * value for Fs. However, the decoder can efficiently decode to buffers + * at 8, 12, 16, and 24 kHz so if for some reason the caller cannot use + * data at the full sample rate, or knows the compressed data doesn't + * use the full frequency range, it can request decoding at a reduced + * rate. Likewise, the decoder is capable of filling in either mono or + * interleaved stereo pcm buffers, at the caller's request. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusDecoder *opus_decoder_create( + opus_int32 Fs, + int channels, + int *error +); + +/** Initializes a previously allocated decoder state. + * The state must be at least the size returned by opus_decoder_get_size(). + * This is intended for applications which use their own allocator instead of malloc. @see opus_decoder_create,opus_decoder_get_size + * To reset a previously initialized state, use the #OPUS_RESET_STATE CTL. + * @param [in] st OpusDecoder*: Decoder state. + * @param [in] Fs opus_int32: Sampling rate to decode to (Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param [in] channels int: Number of channels (1 or 2) to decode + * @retval #OPUS_OK Success or @ref opus_errorcodes + */ +OPUS_EXPORT int opus_decoder_init( + OpusDecoder *st, + opus_int32 Fs, + int channels +) OPUS_ARG_NONNULL(1); + +/** Decode an Opus packet. + * @param [in] st OpusDecoder*: Decoder state + * @param [in] data char*: Input payload. Use a NULL pointer to indicate packet loss + * @param [in] len opus_int32: Number of bytes in payload* + * @param [out] pcm opus_int16*: Output signal (interleaved if 2 channels). length + * is frame_size*channels*sizeof(opus_int16) + * @param [in] frame_size Number of samples per channel of available space in \a pcm. + * If this is less than the maximum packet duration (120ms; 5760 for 48kHz), this function will + * not be capable of decoding some packets. In the case of PLC (data==NULL) or FEC (decode_fec=1), + * then frame_size needs to be exactly the duration of audio that is missing, otherwise the + * decoder will not be in the optimal state to decode the next incoming packet. For the PLC and + * FEC cases, frame_size must be a multiple of 2.5 ms. + * @param [in] decode_fec int: Flag (0 or 1) to request that any in-band forward error correction data be + * decoded. If no such data is available, the frame is decoded as if it were lost. + * @returns Number of decoded samples or @ref opus_errorcodes + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_decode( + OpusDecoder *st, + const unsigned char *data, + opus_int32 len, + opus_int16 *pcm, + int frame_size, + int decode_fec +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Decode an Opus packet with floating point output. + * @param [in] st OpusDecoder*: Decoder state + * @param [in] data char*: Input payload. Use a NULL pointer to indicate packet loss + * @param [in] len opus_int32: Number of bytes in payload + * @param [out] pcm float*: Output signal (interleaved if 2 channels). length + * is frame_size*channels*sizeof(float) + * @param [in] frame_size Number of samples per channel of available space in \a pcm. + * If this is less than the maximum packet duration (120ms; 5760 for 48kHz), this function will + * not be capable of decoding some packets. In the case of PLC (data==NULL) or FEC (decode_fec=1), + * then frame_size needs to be exactly the duration of audio that is missing, otherwise the + * decoder will not be in the optimal state to decode the next incoming packet. For the PLC and + * FEC cases, frame_size must be a multiple of 2.5 ms. + * @param [in] decode_fec int: Flag (0 or 1) to request that any in-band forward error correction data be + * decoded. If no such data is available the frame is decoded as if it were lost. + * @returns Number of decoded samples or @ref opus_errorcodes + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_decode_float( + OpusDecoder *st, + const unsigned char *data, + opus_int32 len, + float *pcm, + int frame_size, + int decode_fec +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Perform a CTL function on an Opus decoder. + * + * Generally the request and subsequent arguments are generated + * by a convenience macro. + * @param st OpusDecoder*: Decoder state. + * @param request This and all remaining parameters should be replaced by one + * of the convenience macros in @ref opus_genericctls or + * @ref opus_decoderctls. + * @see opus_genericctls + * @see opus_decoderctls + */ +OPUS_EXPORT int opus_decoder_ctl(OpusDecoder *st, int request, ...) OPUS_ARG_NONNULL(1); + +/** Frees an OpusDecoder allocated by opus_decoder_create(). + * @param[in] st OpusDecoder*: State to be freed. + */ +OPUS_EXPORT void opus_decoder_destroy(OpusDecoder *st); + +/** Parse an opus packet into one or more frames. + * Opus_decode will perform this operation internally so most applications do + * not need to use this function. + * This function does not copy the frames, the returned pointers are pointers into + * the input packet. + * @param [in] data char*: Opus packet to be parsed + * @param [in] len opus_int32: size of data + * @param [out] out_toc char*: TOC pointer + * @param [out] frames char*[48] encapsulated frames + * @param [out] size opus_int16[48] sizes of the encapsulated frames + * @param [out] payload_offset int*: returns the position of the payload within the packet (in bytes) + * @returns number of frames + */ +OPUS_EXPORT int opus_packet_parse( + const unsigned char *data, + opus_int32 len, + unsigned char *out_toc, + const unsigned char *frames[48], + opus_int16 size[48], + int *payload_offset +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Gets the bandwidth of an Opus packet. + * @param [in] data char*: Opus packet + * @retval OPUS_BANDWIDTH_NARROWBAND Narrowband (4kHz bandpass) + * @retval OPUS_BANDWIDTH_MEDIUMBAND Mediumband (6kHz bandpass) + * @retval OPUS_BANDWIDTH_WIDEBAND Wideband (8kHz bandpass) + * @retval OPUS_BANDWIDTH_SUPERWIDEBAND Superwideband (12kHz bandpass) + * @retval OPUS_BANDWIDTH_FULLBAND Fullband (20kHz bandpass) + * @retval OPUS_INVALID_PACKET The compressed data passed is corrupted or of an unsupported type + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_packet_get_bandwidth(const unsigned char *data) OPUS_ARG_NONNULL(1); + +/** Gets the number of samples per frame from an Opus packet. + * @param [in] data char*: Opus packet. + * This must contain at least one byte of + * data. + * @param [in] Fs opus_int32: Sampling rate in Hz. + * This must be a multiple of 400, or + * inaccurate results will be returned. + * @returns Number of samples per frame. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_packet_get_samples_per_frame(const unsigned char *data, opus_int32 Fs) OPUS_ARG_NONNULL(1); + +/** Gets the number of channels from an Opus packet. + * @param [in] data char*: Opus packet + * @returns Number of channels + * @retval OPUS_INVALID_PACKET The compressed data passed is corrupted or of an unsupported type + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_packet_get_nb_channels(const unsigned char *data) OPUS_ARG_NONNULL(1); + +/** Gets the number of frames in an Opus packet. + * @param [in] packet char*: Opus packet + * @param [in] len opus_int32: Length of packet + * @returns Number of frames + * @retval OPUS_BAD_ARG Insufficient data was passed to the function + * @retval OPUS_INVALID_PACKET The compressed data passed is corrupted or of an unsupported type + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_packet_get_nb_frames(const unsigned char packet[], opus_int32 len) OPUS_ARG_NONNULL(1); + +/** Gets the number of samples of an Opus packet. + * @param [in] packet char*: Opus packet + * @param [in] len opus_int32: Length of packet + * @param [in] Fs opus_int32: Sampling rate in Hz. + * This must be a multiple of 400, or + * inaccurate results will be returned. + * @returns Number of samples + * @retval OPUS_BAD_ARG Insufficient data was passed to the function + * @retval OPUS_INVALID_PACKET The compressed data passed is corrupted or of an unsupported type + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_packet_get_nb_samples(const unsigned char packet[], opus_int32 len, opus_int32 Fs) OPUS_ARG_NONNULL(1); + +/** Gets the number of samples of an Opus packet. + * @param [in] dec OpusDecoder*: Decoder state + * @param [in] packet char*: Opus packet + * @param [in] len opus_int32: Length of packet + * @returns Number of samples + * @retval OPUS_BAD_ARG Insufficient data was passed to the function + * @retval OPUS_INVALID_PACKET The compressed data passed is corrupted or of an unsupported type + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_decoder_get_nb_samples(const OpusDecoder *dec, const unsigned char packet[], opus_int32 len) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2); +/**@}*/ + +/** @defgroup opus_repacketizer Repacketizer + * @{ + * + * The repacketizer can be used to merge multiple Opus packets into a single + * packet or alternatively to split Opus packets that have previously been + * merged. Splitting valid Opus packets is always guaranteed to succeed, + * whereas merging valid packets only succeeds if all frames have the same + * mode, bandwidth, and frame size, and when the total duration of the merged + * packet is no more than 120 ms. + * The repacketizer currently only operates on elementary Opus + * streams. It will not manipualte multistream packets successfully, except in + * the degenerate case where they consist of data from a single stream. + * + * The repacketizing process starts with creating a repacketizer state, either + * by calling opus_repacketizer_create() or by allocating the memory yourself, + * e.g., + * @code + * OpusRepacketizer *rp; + * rp = (OpusRepacketizer*)malloc(opus_repacketizer_get_size()); + * if (rp != NULL) + * opus_repacketizer_init(rp); + * @endcode + * + * Then the application should submit packets with opus_repacketizer_cat(), + * extract new packets with opus_repacketizer_out() or + * opus_repacketizer_out_range(), and then reset the state for the next set of + * input packets via opus_repacketizer_init(). + * + * For example, to split a sequence of packets into individual frames: + * @code + * unsigned char *data; + * int len; + * while (get_next_packet(&data, &len)) + * { + * unsigned char out[1276]; + * opus_int32 out_len; + * int nb_frames; + * int err; + * int i; + * err = opus_repacketizer_cat(rp, data, len); + * if (err != OPUS_OK) + * { + * release_packet(data); + * return err; + * } + * nb_frames = opus_repacketizer_get_nb_frames(rp); + * for (i = 0; i < nb_frames; i++) + * { + * out_len = opus_repacketizer_out_range(rp, i, i+1, out, sizeof(out)); + * if (out_len < 0) + * { + * release_packet(data); + * return (int)out_len; + * } + * output_next_packet(out, out_len); + * } + * opus_repacketizer_init(rp); + * release_packet(data); + * } + * @endcode + * + * Alternatively, to combine a sequence of frames into packets that each + * contain up to TARGET_DURATION_MS milliseconds of data: + * @code + * // The maximum number of packets with duration TARGET_DURATION_MS occurs + * // when the frame size is 2.5 ms, for a total of (TARGET_DURATION_MS*2/5) + * // packets. + * unsigned char *data[(TARGET_DURATION_MS*2/5)+1]; + * opus_int32 len[(TARGET_DURATION_MS*2/5)+1]; + * int nb_packets; + * unsigned char out[1277*(TARGET_DURATION_MS*2/2)]; + * opus_int32 out_len; + * int prev_toc; + * nb_packets = 0; + * while (get_next_packet(data+nb_packets, len+nb_packets)) + * { + * int nb_frames; + * int err; + * nb_frames = opus_packet_get_nb_frames(data[nb_packets], len[nb_packets]); + * if (nb_frames < 1) + * { + * release_packets(data, nb_packets+1); + * return nb_frames; + * } + * nb_frames += opus_repacketizer_get_nb_frames(rp); + * // If adding the next packet would exceed our target, or it has an + * // incompatible TOC sequence, output the packets we already have before + * // submitting it. + * // N.B., The nb_packets > 0 check ensures we've submitted at least one + * // packet since the last call to opus_repacketizer_init(). Otherwise a + * // single packet longer than TARGET_DURATION_MS would cause us to try to + * // output an (invalid) empty packet. It also ensures that prev_toc has + * // been set to a valid value. Additionally, len[nb_packets] > 0 is + * // guaranteed by the call to opus_packet_get_nb_frames() above, so the + * // reference to data[nb_packets][0] should be valid. + * if (nb_packets > 0 && ( + * ((prev_toc & 0xFC) != (data[nb_packets][0] & 0xFC)) || + * opus_packet_get_samples_per_frame(data[nb_packets], 48000)*nb_frames > + * TARGET_DURATION_MS*48)) + * { + * out_len = opus_repacketizer_out(rp, out, sizeof(out)); + * if (out_len < 0) + * { + * release_packets(data, nb_packets+1); + * return (int)out_len; + * } + * output_next_packet(out, out_len); + * opus_repacketizer_init(rp); + * release_packets(data, nb_packets); + * data[0] = data[nb_packets]; + * len[0] = len[nb_packets]; + * nb_packets = 0; + * } + * err = opus_repacketizer_cat(rp, data[nb_packets], len[nb_packets]); + * if (err != OPUS_OK) + * { + * release_packets(data, nb_packets+1); + * return err; + * } + * prev_toc = data[nb_packets][0]; + * nb_packets++; + * } + * // Output the final, partial packet. + * if (nb_packets > 0) + * { + * out_len = opus_repacketizer_out(rp, out, sizeof(out)); + * release_packets(data, nb_packets); + * if (out_len < 0) + * return (int)out_len; + * output_next_packet(out, out_len); + * } + * @endcode + * + * An alternate way of merging packets is to simply call opus_repacketizer_cat() + * unconditionally until it fails. At that point, the merged packet can be + * obtained with opus_repacketizer_out() and the input packet for which + * opus_repacketizer_cat() needs to be re-added to a newly reinitialized + * repacketizer state. + */ + +typedef struct OpusRepacketizer OpusRepacketizer; + +/** Gets the size of an OpusRepacketizer structure. + * @returns The size in bytes. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_repacketizer_get_size(void); + +/** (Re)initializes a previously allocated repacketizer state. + * The state must be at least the size returned by opus_repacketizer_get_size(). + * This can be used for applications which use their own allocator instead of + * malloc(). + * It must also be called to reset the queue of packets waiting to be + * repacketized, which is necessary if the maximum packet duration of 120 ms + * is reached or if you wish to submit packets with a different Opus + * configuration (coding mode, audio bandwidth, frame size, or channel count). + * Failure to do so will prevent a new packet from being added with + * opus_repacketizer_cat(). + * @see opus_repacketizer_create + * @see opus_repacketizer_get_size + * @see opus_repacketizer_cat + * @param rp OpusRepacketizer*: The repacketizer state to + * (re)initialize. + * @returns A pointer to the same repacketizer state that was passed in. + */ +OPUS_EXPORT OpusRepacketizer *opus_repacketizer_init(OpusRepacketizer *rp) OPUS_ARG_NONNULL(1); + +/** Allocates memory and initializes the new repacketizer with + * opus_repacketizer_init(). + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusRepacketizer *opus_repacketizer_create(void); + +/** Frees an OpusRepacketizer allocated by + * opus_repacketizer_create(). + * @param[in] rp OpusRepacketizer*: State to be freed. + */ +OPUS_EXPORT void opus_repacketizer_destroy(OpusRepacketizer *rp); + +/** Add a packet to the current repacketizer state. + * This packet must match the configuration of any packets already submitted + * for repacketization since the last call to opus_repacketizer_init(). + * This means that it must have the same coding mode, audio bandwidth, frame + * size, and channel count. + * This can be checked in advance by examining the top 6 bits of the first + * byte of the packet, and ensuring they match the top 6 bits of the first + * byte of any previously submitted packet. + * The total duration of audio in the repacketizer state also must not exceed + * 120 ms, the maximum duration of a single packet, after adding this packet. + * + * The contents of the current repacketizer state can be extracted into new + * packets using opus_repacketizer_out() or opus_repacketizer_out_range(). + * + * In order to add a packet with a different configuration or to add more + * audio beyond 120 ms, you must clear the repacketizer state by calling + * opus_repacketizer_init(). + * If a packet is too large to add to the current repacketizer state, no part + * of it is added, even if it contains multiple frames, some of which might + * fit. + * If you wish to be able to add parts of such packets, you should first use + * another repacketizer to split the packet into pieces and add them + * individually. + * @see opus_repacketizer_out_range + * @see opus_repacketizer_out + * @see opus_repacketizer_init + * @param rp OpusRepacketizer*: The repacketizer state to which to + * add the packet. + * @param[in] data const unsigned char*: The packet data. + * The application must ensure + * this pointer remains valid + * until the next call to + * opus_repacketizer_init() or + * opus_repacketizer_destroy(). + * @param len opus_int32: The number of bytes in the packet data. + * @returns An error code indicating whether or not the operation succeeded. + * @retval #OPUS_OK The packet's contents have been added to the repacketizer + * state. + * @retval #OPUS_INVALID_PACKET The packet did not have a valid TOC sequence, + * the packet's TOC sequence was not compatible + * with previously submitted packets (because + * the coding mode, audio bandwidth, frame size, + * or channel count did not match), or adding + * this packet would increase the total amount of + * audio stored in the repacketizer state to more + * than 120 ms. + */ +OPUS_EXPORT int opus_repacketizer_cat(OpusRepacketizer *rp, const unsigned char *data, opus_int32 len) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2); + + +/** Construct a new packet from data previously submitted to the repacketizer + * state via opus_repacketizer_cat(). + * @param rp OpusRepacketizer*: The repacketizer state from which to + * construct the new packet. + * @param begin int: The index of the first frame in the current + * repacketizer state to include in the output. + * @param end int: One past the index of the last frame in the + * current repacketizer state to include in the + * output. + * @param[out] data const unsigned char*: The buffer in which to + * store the output packet. + * @param maxlen opus_int32: The maximum number of bytes to store in + * the output buffer. In order to guarantee + * success, this should be at least + * 1276 for a single frame, + * or for multiple frames, + * 1277*(end-begin). + * However, 1*(end-begin) plus + * the size of all packet data submitted to + * the repacketizer since the last call to + * opus_repacketizer_init() or + * opus_repacketizer_create() is also + * sufficient, and possibly much smaller. + * @returns The total size of the output packet on success, or an error code + * on failure. + * @retval #OPUS_BAD_ARG [begin,end) was an invalid range of + * frames (begin < 0, begin >= end, or end > + * opus_repacketizer_get_nb_frames()). + * @retval #OPUS_BUFFER_TOO_SMALL \a maxlen was insufficient to contain the + * complete output packet. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_repacketizer_out_range(OpusRepacketizer *rp, int begin, int end, unsigned char *data, opus_int32 maxlen) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Return the total number of frames contained in packet data submitted to + * the repacketizer state so far via opus_repacketizer_cat() since the last + * call to opus_repacketizer_init() or opus_repacketizer_create(). + * This defines the valid range of packets that can be extracted with + * opus_repacketizer_out_range() or opus_repacketizer_out(). + * @param rp OpusRepacketizer*: The repacketizer state containing the + * frames. + * @returns The total number of frames contained in the packet data submitted + * to the repacketizer state. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_repacketizer_get_nb_frames(OpusRepacketizer *rp) OPUS_ARG_NONNULL(1); + +/** Construct a new packet from data previously submitted to the repacketizer + * state via opus_repacketizer_cat(). + * This is a convenience routine that returns all the data submitted so far + * in a single packet. + * It is equivalent to calling + * @code + * opus_repacketizer_out_range(rp, 0, opus_repacketizer_get_nb_frames(rp), + * data, maxlen) + * @endcode + * @param rp OpusRepacketizer*: The repacketizer state from which to + * construct the new packet. + * @param[out] data const unsigned char*: The buffer in which to + * store the output packet. + * @param maxlen opus_int32: The maximum number of bytes to store in + * the output buffer. In order to guarantee + * success, this should be at least + * 1277*opus_repacketizer_get_nb_frames(rp). + * However, + * 1*opus_repacketizer_get_nb_frames(rp) + * plus the size of all packet data + * submitted to the repacketizer since the + * last call to opus_repacketizer_init() or + * opus_repacketizer_create() is also + * sufficient, and possibly much smaller. + * @returns The total size of the output packet on success, or an error code + * on failure. + * @retval #OPUS_BUFFER_TOO_SMALL \a maxlen was insufficient to contain the + * complete output packet. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_repacketizer_out(OpusRepacketizer *rp, unsigned char *data, opus_int32 maxlen) OPUS_ARG_NONNULL(1); + +/**@}*/ + +#ifdef __cplusplus +} +#endif + +#endif /* OPUS_H */ diff --git a/Audio-Frameworks/bin/opus/include/opus_defines.h b/Audio-Frameworks/bin/opus/include/opus_defines.h new file mode 100644 index 0000000..9fa3ccb --- /dev/null +++ b/Audio-Frameworks/bin/opus/include/opus_defines.h @@ -0,0 +1,655 @@ +/* Copyright (c) 2010-2011 Xiph.Org Foundation, Skype Limited + Written by Jean-Marc Valin and Koen Vos */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** + * @file opus_defines.h + * @brief Opus reference implementation constants + */ + +#ifndef OPUS_DEFINES_H +#define OPUS_DEFINES_H + +#include "opus_types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @defgroup opus_errorcodes Error codes + * @{ + */ +/** No error @hideinitializer*/ +#define OPUS_OK 0 +/** One or more invalid/out of range arguments @hideinitializer*/ +#define OPUS_BAD_ARG -1 +/** The mode struct passed is invalid @hideinitializer*/ +#define OPUS_BUFFER_TOO_SMALL -2 +/** An internal error was detected @hideinitializer*/ +#define OPUS_INTERNAL_ERROR -3 +/** The compressed data passed is corrupted @hideinitializer*/ +#define OPUS_INVALID_PACKET -4 +/** Invalid/unsupported request number @hideinitializer*/ +#define OPUS_UNIMPLEMENTED -5 +/** An encoder or decoder structure is invalid or already freed @hideinitializer*/ +#define OPUS_INVALID_STATE -6 +/** Memory allocation has failed @hideinitializer*/ +#define OPUS_ALLOC_FAIL -7 +/**@}*/ + +/** @cond OPUS_INTERNAL_DOC */ +/**Export control for opus functions */ + +#ifndef OPUS_EXPORT +# if defined(WIN32) +# ifdef OPUS_BUILD +# define OPUS_EXPORT __declspec(dllexport) +# else +# define OPUS_EXPORT +# endif +# elif defined(__GNUC__) && defined(OPUS_BUILD) +# define OPUS_EXPORT __attribute__ ((visibility ("default"))) +# else +# define OPUS_EXPORT +# endif +#endif + +# if !defined(OPUS_GNUC_PREREQ) +# if defined(__GNUC__)&&defined(__GNUC_MINOR__) +# define OPUS_GNUC_PREREQ(_maj,_min) \ + ((__GNUC__<<16)+__GNUC_MINOR__>=((_maj)<<16)+(_min)) +# else +# define OPUS_GNUC_PREREQ(_maj,_min) 0 +# endif +# endif + +#if (!defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L) ) +# if OPUS_GNUC_PREREQ(3,0) +# define OPUS_RESTRICT __restrict__ +# elif (defined(_MSC_VER) && _MSC_VER >= 1400) +# define OPUS_RESTRICT __restrict +# else +# define OPUS_RESTRICT +# endif +#else +# define OPUS_RESTRICT restrict +#endif + +/**Warning attributes for opus functions + * NONNULL is not used in OPUS_BUILD to avoid the compiler optimizing out + * some paranoid null checks. */ +#if defined(__GNUC__) && OPUS_GNUC_PREREQ(3, 4) +# define OPUS_WARN_UNUSED_RESULT __attribute__ ((__warn_unused_result__)) +#else +# define OPUS_WARN_UNUSED_RESULT +#endif +#if !defined(OPUS_BUILD) && defined(__GNUC__) && OPUS_GNUC_PREREQ(3, 4) +# define OPUS_ARG_NONNULL(_x) __attribute__ ((__nonnull__(_x))) +#else +# define OPUS_ARG_NONNULL(_x) +#endif + +/** These are the actual Encoder CTL ID numbers. + * They should not be used directly by applications. + * In general, SETs should be even and GETs should be odd.*/ +#define OPUS_SET_APPLICATION_REQUEST 4000 +#define OPUS_GET_APPLICATION_REQUEST 4001 +#define OPUS_SET_BITRATE_REQUEST 4002 +#define OPUS_GET_BITRATE_REQUEST 4003 +#define OPUS_SET_MAX_BANDWIDTH_REQUEST 4004 +#define OPUS_GET_MAX_BANDWIDTH_REQUEST 4005 +#define OPUS_SET_VBR_REQUEST 4006 +#define OPUS_GET_VBR_REQUEST 4007 +#define OPUS_SET_BANDWIDTH_REQUEST 4008 +#define OPUS_GET_BANDWIDTH_REQUEST 4009 +#define OPUS_SET_COMPLEXITY_REQUEST 4010 +#define OPUS_GET_COMPLEXITY_REQUEST 4011 +#define OPUS_SET_INBAND_FEC_REQUEST 4012 +#define OPUS_GET_INBAND_FEC_REQUEST 4013 +#define OPUS_SET_PACKET_LOSS_PERC_REQUEST 4014 +#define OPUS_GET_PACKET_LOSS_PERC_REQUEST 4015 +#define OPUS_SET_DTX_REQUEST 4016 +#define OPUS_GET_DTX_REQUEST 4017 +#define OPUS_SET_VBR_CONSTRAINT_REQUEST 4020 +#define OPUS_GET_VBR_CONSTRAINT_REQUEST 4021 +#define OPUS_SET_FORCE_CHANNELS_REQUEST 4022 +#define OPUS_GET_FORCE_CHANNELS_REQUEST 4023 +#define OPUS_SET_SIGNAL_REQUEST 4024 +#define OPUS_GET_SIGNAL_REQUEST 4025 +#define OPUS_GET_LOOKAHEAD_REQUEST 4027 +/* #define OPUS_RESET_STATE 4028 */ +#define OPUS_GET_SAMPLE_RATE_REQUEST 4029 +#define OPUS_GET_FINAL_RANGE_REQUEST 4031 +#define OPUS_GET_PITCH_REQUEST 4033 +#define OPUS_SET_GAIN_REQUEST 4034 +#define OPUS_GET_GAIN_REQUEST 4045 /* Should have been 4035 */ +#define OPUS_SET_LSB_DEPTH_REQUEST 4036 +#define OPUS_GET_LSB_DEPTH_REQUEST 4037 + +#define OPUS_GET_LAST_PACKET_DURATION_REQUEST 4039 + +/* Don't use 4045, it's already taken by OPUS_GET_GAIN_REQUEST */ + +/* Macros to trigger compilation errors when the wrong types are provided to a CTL */ +#define __opus_check_int(x) (((void)((x) == (opus_int32)0)), (opus_int32)(x)) +#define __opus_check_int_ptr(ptr) ((ptr) + ((ptr) - (opus_int32*)(ptr))) +#define __opus_check_uint_ptr(ptr) ((ptr) + ((ptr) - (opus_uint32*)(ptr))) +/** @endcond */ + +/** @defgroup opus_ctlvalues Pre-defined values for CTL interface + * @see opus_genericctls, opus_encoderctls + * @{ + */ +/* Values for the various encoder CTLs */ +#define OPUS_AUTO -1000 /**opus_int32: Allowed values: 0-10, inclusive. + * + * @hideinitializer */ +#define OPUS_SET_COMPLEXITY(x) OPUS_SET_COMPLEXITY_REQUEST, __opus_check_int(x) +/** Gets the encoder's complexity configuration. + * @see OPUS_SET_COMPLEXITY + * @param[out] x opus_int32 *: Returns a value in the range 0-10, + * inclusive. + * @hideinitializer */ +#define OPUS_GET_COMPLEXITY(x) OPUS_GET_COMPLEXITY_REQUEST, __opus_check_int_ptr(x) + +/** Configures the bitrate in the encoder. + * Rates from 500 to 512000 bits per second are meaningful, as well as the + * special values #OPUS_AUTO and #OPUS_BITRATE_MAX. + * The value #OPUS_BITRATE_MAX can be used to cause the codec to use as much + * rate as it can, which is useful for controlling the rate by adjusting the + * output buffer size. + * @see OPUS_GET_BITRATE + * @param[in] x opus_int32: Bitrate in bits per second. The default + * is determined based on the number of + * channels and the input sampling rate. + * @hideinitializer */ +#define OPUS_SET_BITRATE(x) OPUS_SET_BITRATE_REQUEST, __opus_check_int(x) +/** Gets the encoder's bitrate configuration. + * @see OPUS_SET_BITRATE + * @param[out] x opus_int32 *: Returns the bitrate in bits per second. + * The default is determined based on the + * number of channels and the input + * sampling rate. + * @hideinitializer */ +#define OPUS_GET_BITRATE(x) OPUS_GET_BITRATE_REQUEST, __opus_check_int_ptr(x) + +/** Enables or disables variable bitrate (VBR) in the encoder. + * The configured bitrate may not be met exactly because frames must + * be an integer number of bytes in length. + * @warning Only the MDCT mode of Opus can provide hard CBR behavior. + * @see OPUS_GET_VBR + * @see OPUS_SET_VBR_CONSTRAINT + * @param[in] x opus_int32: Allowed values: + *
      + *
      0
      Hard CBR. For LPC/hybrid modes at very low bit-rate, this can + * cause noticeable quality degradation.
      + *
      1
      VBR (default). The exact type of VBR is controlled by + * #OPUS_SET_VBR_CONSTRAINT.
      + *
      + * @hideinitializer */ +#define OPUS_SET_VBR(x) OPUS_SET_VBR_REQUEST, __opus_check_int(x) +/** Determine if variable bitrate (VBR) is enabled in the encoder. + * @see OPUS_SET_VBR + * @see OPUS_GET_VBR_CONSTRAINT + * @param[out] x opus_int32 *: Returns one of the following values: + *
      + *
      0
      Hard CBR.
      + *
      1
      VBR (default). The exact type of VBR may be retrieved via + * #OPUS_GET_VBR_CONSTRAINT.
      + *
      + * @hideinitializer */ +#define OPUS_GET_VBR(x) OPUS_GET_VBR_REQUEST, __opus_check_int_ptr(x) + +/** Enables or disables constrained VBR in the encoder. + * This setting is ignored when the encoder is in CBR mode. + * @warning Only the MDCT mode of Opus currently heeds the constraint. + * Speech mode ignores it completely, hybrid mode may fail to obey it + * if the LPC layer uses more bitrate than the constraint would have + * permitted. + * @see OPUS_GET_VBR_CONSTRAINT + * @see OPUS_SET_VBR + * @param[in] x opus_int32: Allowed values: + *
      + *
      0
      Unconstrained VBR.
      + *
      1
      Constrained VBR (default). This creates a maximum of one + * frame of buffering delay assuming a transport with a + * serialization speed of the nominal bitrate.
      + *
      + * @hideinitializer */ +#define OPUS_SET_VBR_CONSTRAINT(x) OPUS_SET_VBR_CONSTRAINT_REQUEST, __opus_check_int(x) +/** Determine if constrained VBR is enabled in the encoder. + * @see OPUS_SET_VBR_CONSTRAINT + * @see OPUS_GET_VBR + * @param[out] x opus_int32 *: Returns one of the following values: + *
      + *
      0
      Unconstrained VBR.
      + *
      1
      Constrained VBR (default).
      + *
      + * @hideinitializer */ +#define OPUS_GET_VBR_CONSTRAINT(x) OPUS_GET_VBR_CONSTRAINT_REQUEST, __opus_check_int_ptr(x) + +/** Configures mono/stereo forcing in the encoder. + * This can force the encoder to produce packets encoded as either mono or + * stereo, regardless of the format of the input audio. This is useful when + * the caller knows that the input signal is currently a mono source embedded + * in a stereo stream. + * @see OPUS_GET_FORCE_CHANNELS + * @param[in] x opus_int32: Allowed values: + *
      + *
      #OPUS_AUTO
      Not forced (default)
      + *
      1
      Forced mono
      + *
      2
      Forced stereo
      + *
      + * @hideinitializer */ +#define OPUS_SET_FORCE_CHANNELS(x) OPUS_SET_FORCE_CHANNELS_REQUEST, __opus_check_int(x) +/** Gets the encoder's forced channel configuration. + * @see OPUS_SET_FORCE_CHANNELS + * @param[out] x opus_int32 *: + *
      + *
      #OPUS_AUTO
      Not forced (default)
      + *
      1
      Forced mono
      + *
      2
      Forced stereo
      + *
      + * @hideinitializer */ +#define OPUS_GET_FORCE_CHANNELS(x) OPUS_GET_FORCE_CHANNELS_REQUEST, __opus_check_int_ptr(x) + +/** Configures the maximum bandpass that the encoder will select automatically. + * Applications should normally use this instead of #OPUS_SET_BANDWIDTH + * (leaving that set to the default, #OPUS_AUTO). This allows the + * application to set an upper bound based on the type of input it is + * providing, but still gives the encoder the freedom to reduce the bandpass + * when the bitrate becomes too low, for better overall quality. + * @see OPUS_GET_MAX_BANDWIDTH + * @param[in] x opus_int32: Allowed values: + *
      + *
      OPUS_BANDWIDTH_NARROWBAND
      4 kHz passband
      + *
      OPUS_BANDWIDTH_MEDIUMBAND
      6 kHz passband
      + *
      OPUS_BANDWIDTH_WIDEBAND
      8 kHz passband
      + *
      OPUS_BANDWIDTH_SUPERWIDEBAND
      12 kHz passband
      + *
      OPUS_BANDWIDTH_FULLBAND
      20 kHz passband (default)
      + *
      + * @hideinitializer */ +#define OPUS_SET_MAX_BANDWIDTH(x) OPUS_SET_MAX_BANDWIDTH_REQUEST, __opus_check_int(x) + +/** Gets the encoder's configured maximum allowed bandpass. + * @see OPUS_SET_MAX_BANDWIDTH + * @param[out] x opus_int32 *: Allowed values: + *
      + *
      #OPUS_BANDWIDTH_NARROWBAND
      4 kHz passband
      + *
      #OPUS_BANDWIDTH_MEDIUMBAND
      6 kHz passband
      + *
      #OPUS_BANDWIDTH_WIDEBAND
      8 kHz passband
      + *
      #OPUS_BANDWIDTH_SUPERWIDEBAND
      12 kHz passband
      + *
      #OPUS_BANDWIDTH_FULLBAND
      20 kHz passband (default)
      + *
      + * @hideinitializer */ +#define OPUS_GET_MAX_BANDWIDTH(x) OPUS_GET_MAX_BANDWIDTH_REQUEST, __opus_check_int_ptr(x) + +/** Sets the encoder's bandpass to a specific value. + * This prevents the encoder from automatically selecting the bandpass based + * on the available bitrate. If an application knows the bandpass of the input + * audio it is providing, it should normally use #OPUS_SET_MAX_BANDWIDTH + * instead, which still gives the encoder the freedom to reduce the bandpass + * when the bitrate becomes too low, for better overall quality. + * @see OPUS_GET_BANDWIDTH + * @param[in] x opus_int32: Allowed values: + *
      + *
      #OPUS_AUTO
      (default)
      + *
      #OPUS_BANDWIDTH_NARROWBAND
      4 kHz passband
      + *
      #OPUS_BANDWIDTH_MEDIUMBAND
      6 kHz passband
      + *
      #OPUS_BANDWIDTH_WIDEBAND
      8 kHz passband
      + *
      #OPUS_BANDWIDTH_SUPERWIDEBAND
      12 kHz passband
      + *
      #OPUS_BANDWIDTH_FULLBAND
      20 kHz passband
      + *
      + * @hideinitializer */ +#define OPUS_SET_BANDWIDTH(x) OPUS_SET_BANDWIDTH_REQUEST, __opus_check_int(x) + +/** Configures the type of signal being encoded. + * This is a hint which helps the encoder's mode selection. + * @see OPUS_GET_SIGNAL + * @param[in] x opus_int32: Allowed values: + *
      + *
      #OPUS_AUTO
      (default)
      + *
      #OPUS_SIGNAL_VOICE
      Bias thresholds towards choosing LPC or Hybrid modes.
      + *
      #OPUS_SIGNAL_MUSIC
      Bias thresholds towards choosing MDCT modes.
      + *
      + * @hideinitializer */ +#define OPUS_SET_SIGNAL(x) OPUS_SET_SIGNAL_REQUEST, __opus_check_int(x) +/** Gets the encoder's configured signal type. + * @see OPUS_SET_SIGNAL + * @param[out] x opus_int32 *: Returns one of the following values: + *
      + *
      #OPUS_AUTO
      (default)
      + *
      #OPUS_SIGNAL_VOICE
      Bias thresholds towards choosing LPC or Hybrid modes.
      + *
      #OPUS_SIGNAL_MUSIC
      Bias thresholds towards choosing MDCT modes.
      + *
      + * @hideinitializer */ +#define OPUS_GET_SIGNAL(x) OPUS_GET_SIGNAL_REQUEST, __opus_check_int_ptr(x) + + +/** Configures the encoder's intended application. + * The initial value is a mandatory argument to the encoder_create function. + * @see OPUS_GET_APPLICATION + * @param[in] x opus_int32: Returns one of the following values: + *
      + *
      #OPUS_APPLICATION_VOIP
      + *
      Process signal for improved speech intelligibility.
      + *
      #OPUS_APPLICATION_AUDIO
      + *
      Favor faithfulness to the original input.
      + *
      #OPUS_APPLICATION_RESTRICTED_LOWDELAY
      + *
      Configure the minimum possible coding delay by disabling certain modes + * of operation.
      + *
      + * @hideinitializer */ +#define OPUS_SET_APPLICATION(x) OPUS_SET_APPLICATION_REQUEST, __opus_check_int(x) +/** Gets the encoder's configured application. + * @see OPUS_SET_APPLICATION + * @param[out] x opus_int32 *: Returns one of the following values: + *
      + *
      #OPUS_APPLICATION_VOIP
      + *
      Process signal for improved speech intelligibility.
      + *
      #OPUS_APPLICATION_AUDIO
      + *
      Favor faithfulness to the original input.
      + *
      #OPUS_APPLICATION_RESTRICTED_LOWDELAY
      + *
      Configure the minimum possible coding delay by disabling certain modes + * of operation.
      + *
      + * @hideinitializer */ +#define OPUS_GET_APPLICATION(x) OPUS_GET_APPLICATION_REQUEST, __opus_check_int_ptr(x) + +/** Gets the sampling rate the encoder or decoder was initialized with. + * This simply returns the Fs value passed to opus_encoder_init() + * or opus_decoder_init(). + * @param[out] x opus_int32 *: Sampling rate of encoder or decoder. + * @hideinitializer + */ +#define OPUS_GET_SAMPLE_RATE(x) OPUS_GET_SAMPLE_RATE_REQUEST, __opus_check_int_ptr(x) + +/** Gets the total samples of delay added by the entire codec. + * This can be queried by the encoder and then the provided number of samples can be + * skipped on from the start of the decoder's output to provide time aligned input + * and output. From the perspective of a decoding application the real data begins this many + * samples late. + * + * The decoder contribution to this delay is identical for all decoders, but the + * encoder portion of the delay may vary from implementation to implementation, + * version to version, or even depend on the encoder's initial configuration. + * Applications needing delay compensation should call this CTL rather than + * hard-coding a value. + * @param[out] x opus_int32 *: Number of lookahead samples + * @hideinitializer */ +#define OPUS_GET_LOOKAHEAD(x) OPUS_GET_LOOKAHEAD_REQUEST, __opus_check_int_ptr(x) + +/** Configures the encoder's use of inband forward error correction (FEC). + * @note This is only applicable to the LPC layer + * @see OPUS_GET_INBAND_FEC + * @param[in] x opus_int32: Allowed values: + *
      + *
      0
      Disable inband FEC (default).
      + *
      1
      Enable inband FEC.
      + *
      + * @hideinitializer */ +#define OPUS_SET_INBAND_FEC(x) OPUS_SET_INBAND_FEC_REQUEST, __opus_check_int(x) +/** Gets encoder's configured use of inband forward error correction. + * @see OPUS_SET_INBAND_FEC + * @param[out] x opus_int32 *: Returns one of the following values: + *
      + *
      0
      Inband FEC disabled (default).
      + *
      1
      Inband FEC enabled.
      + *
      + * @hideinitializer */ +#define OPUS_GET_INBAND_FEC(x) OPUS_GET_INBAND_FEC_REQUEST, __opus_check_int_ptr(x) + +/** Configures the encoder's expected packet loss percentage. + * Higher values with trigger progressively more loss resistant behavior in the encoder + * at the expense of quality at a given bitrate in the lossless case, but greater quality + * under loss. + * @see OPUS_GET_PACKET_LOSS_PERC + * @param[in] x opus_int32: Loss percentage in the range 0-100, inclusive (default: 0). + * @hideinitializer */ +#define OPUS_SET_PACKET_LOSS_PERC(x) OPUS_SET_PACKET_LOSS_PERC_REQUEST, __opus_check_int(x) +/** Gets the encoder's configured packet loss percentage. + * @see OPUS_SET_PACKET_LOSS_PERC + * @param[out] x opus_int32 *: Returns the configured loss percentage + * in the range 0-100, inclusive (default: 0). + * @hideinitializer */ +#define OPUS_GET_PACKET_LOSS_PERC(x) OPUS_GET_PACKET_LOSS_PERC_REQUEST, __opus_check_int_ptr(x) + +/** Configures the encoder's use of discontinuous transmission (DTX). + * @note This is only applicable to the LPC layer + * @see OPUS_GET_DTX + * @param[in] x opus_int32: Allowed values: + *
      + *
      0
      Disable DTX (default).
      + *
      1
      Enabled DTX.
      + *
      + * @hideinitializer */ +#define OPUS_SET_DTX(x) OPUS_SET_DTX_REQUEST, __opus_check_int(x) +/** Gets encoder's configured use of discontinuous transmission. + * @see OPUS_SET_DTX + * @param[out] x opus_int32 *: Returns one of the following values: + *
      + *
      0
      DTX disabled (default).
      + *
      1
      DTX enabled.
      + *
      + * @hideinitializer */ +#define OPUS_GET_DTX(x) OPUS_GET_DTX_REQUEST, __opus_check_int_ptr(x) +/** Configures the depth of signal being encoded. + * This is a hint which helps the encoder identify silence and near-silence. + * @see OPUS_GET_LSB_DEPTH + * @param[in] x opus_int32: Input precision in bits, between 8 and 24 + * (default: 24). + * @hideinitializer */ +#define OPUS_SET_LSB_DEPTH(x) OPUS_SET_LSB_DEPTH_REQUEST, __opus_check_int(x) +/** Gets the encoder's configured signal depth. + * @see OPUS_SET_LSB_DEPTH + * @param[out] x opus_int32 *: Input precision in bits, between 8 and + * 24 (default: 24). + * @hideinitializer */ +#define OPUS_GET_LSB_DEPTH(x) OPUS_GET_LSB_DEPTH_REQUEST, __opus_check_int_ptr(x) + +/** Gets the duration (in samples) of the last packet successfully decoded or concealed. + * @param[out] x opus_int32 *: Number of samples (at current sampling rate). + * @hideinitializer */ +#define OPUS_GET_LAST_PACKET_DURATION(x) OPUS_GET_LAST_PACKET_DURATION_REQUEST, __opus_check_int_ptr(x) +/**@}*/ + +/** @defgroup opus_genericctls Generic CTLs + * + * These macros are used with the \c opus_decoder_ctl and + * \c opus_encoder_ctl calls to generate a particular + * request. + * + * When called on an \c OpusDecoder they apply to that + * particular decoder instance. When called on an + * \c OpusEncoder they apply to the corresponding setting + * on that encoder instance, if present. + * + * Some usage examples: + * + * @code + * int ret; + * opus_int32 pitch; + * ret = opus_decoder_ctl(dec_ctx, OPUS_GET_PITCH(&pitch)); + * if (ret == OPUS_OK) return ret; + * + * opus_encoder_ctl(enc_ctx, OPUS_RESET_STATE); + * opus_decoder_ctl(dec_ctx, OPUS_RESET_STATE); + * + * opus_int32 enc_bw, dec_bw; + * opus_encoder_ctl(enc_ctx, OPUS_GET_BANDWIDTH(&enc_bw)); + * opus_decoder_ctl(dec_ctx, OPUS_GET_BANDWIDTH(&dec_bw)); + * if (enc_bw != dec_bw) { + * printf("packet bandwidth mismatch!\n"); + * } + * @endcode + * + * @see opus_encoder, opus_decoder_ctl, opus_encoder_ctl, opus_decoderctls, opus_encoderctls + * @{ + */ + +/** Resets the codec state to be equivalent to a freshly initialized state. + * This should be called when switching streams in order to prevent + * the back to back decoding from giving different results from + * one at a time decoding. + * @hideinitializer */ +#define OPUS_RESET_STATE 4028 + +/** Gets the final state of the codec's entropy coder. + * This is used for testing purposes, + * The encoder and decoder state should be identical after coding a payload + * (assuming no data corruption or software bugs) + * + * @param[out] x opus_uint32 *: Entropy coder state + * + * @hideinitializer */ +#define OPUS_GET_FINAL_RANGE(x) OPUS_GET_FINAL_RANGE_REQUEST, __opus_check_uint_ptr(x) + +/** Gets the pitch of the last decoded frame, if available. + * This can be used for any post-processing algorithm requiring the use of pitch, + * e.g. time stretching/shortening. If the last frame was not voiced, or if the + * pitch was not coded in the frame, then zero is returned. + * + * This CTL is only implemented for decoder instances. + * + * @param[out] x opus_int32 *: pitch period at 48 kHz (or 0 if not available) + * + * @hideinitializer */ +#define OPUS_GET_PITCH(x) OPUS_GET_PITCH_REQUEST, __opus_check_int_ptr(x) + +/** Gets the encoder's configured bandpass or the decoder's last bandpass. + * @see OPUS_SET_BANDWIDTH + * @param[out] x opus_int32 *: Returns one of the following values: + *
      + *
      #OPUS_AUTO
      (default)
      + *
      #OPUS_BANDWIDTH_NARROWBAND
      4 kHz passband
      + *
      #OPUS_BANDWIDTH_MEDIUMBAND
      6 kHz passband
      + *
      #OPUS_BANDWIDTH_WIDEBAND
      8 kHz passband
      + *
      #OPUS_BANDWIDTH_SUPERWIDEBAND
      12 kHz passband
      + *
      #OPUS_BANDWIDTH_FULLBAND
      20 kHz passband
      + *
      + * @hideinitializer */ +#define OPUS_GET_BANDWIDTH(x) OPUS_GET_BANDWIDTH_REQUEST, __opus_check_int_ptr(x) + +/**@}*/ + +/** @defgroup opus_decoderctls Decoder related CTLs + * @see opus_genericctls, opus_encoderctls, opus_decoder + * @{ + */ + +/** Configures decoder gain adjustment. + * Scales the decoded output by a factor specified in Q8 dB units. + * This has a maximum range of -32768 to 32767 inclusive, and returns + * OPUS_BAD_ARG otherwise. The default is zero indicating no adjustment. + * This setting survives decoder reset. + * + * gain = pow(10, x/(20.0*256)) + * + * @param[in] x opus_int32: Amount to scale PCM signal by in Q8 dB units. + * @hideinitializer */ +#define OPUS_SET_GAIN(x) OPUS_SET_GAIN_REQUEST, __opus_check_int(x) +/** Gets the decoder's configured gain adjustment. @see OPUS_SET_GAIN + * + * @param[out] x opus_int32 *: Amount to scale PCM signal by in Q8 dB units. + * @hideinitializer */ +#define OPUS_GET_GAIN(x) OPUS_GET_GAIN_REQUEST, __opus_check_int_ptr(x) + +/**@}*/ + +/** @defgroup opus_libinfo Opus library information functions + * @{ + */ + +/** Converts an opus error code into a human readable string. + * + * @param[in] error int: Error number + * @returns Error string + */ +OPUS_EXPORT const char *opus_strerror(int error); + +/** Gets the libopus version string. + * + * @returns Version string + */ +OPUS_EXPORT const char *opus_get_version_string(void); +/**@}*/ + +#ifdef __cplusplus +} +#endif + +#endif /* OPUS_DEFINES_H */ diff --git a/Audio-Frameworks/bin/opus/include/opus_multistream.h b/Audio-Frameworks/bin/opus/include/opus_multistream.h new file mode 100644 index 0000000..ae59979 --- /dev/null +++ b/Audio-Frameworks/bin/opus/include/opus_multistream.h @@ -0,0 +1,660 @@ +/* Copyright (c) 2011 Xiph.Org Foundation + Written by Jean-Marc Valin */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** + * @file opus_multistream.h + * @brief Opus reference implementation multistream API + */ + +#ifndef OPUS_MULTISTREAM_H +#define OPUS_MULTISTREAM_H + +#include "opus.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @cond OPUS_INTERNAL_DOC */ + +/** Macros to trigger compilation errors when the wrong types are provided to a + * CTL. */ +/**@{*/ +#define __opus_check_encstate_ptr(ptr) ((ptr) + ((ptr) - (OpusEncoder**)(ptr))) +#define __opus_check_decstate_ptr(ptr) ((ptr) + ((ptr) - (OpusDecoder**)(ptr))) +/**@}*/ + +/** These are the actual encoder and decoder CTL ID numbers. + * They should not be used directly by applications. + * In general, SETs should be even and GETs should be odd.*/ +/**@{*/ +#define OPUS_MULTISTREAM_GET_ENCODER_STATE_REQUEST 5120 +#define OPUS_MULTISTREAM_GET_DECODER_STATE_REQUEST 5122 +/**@}*/ + +/** @endcond */ + +/** @defgroup opus_multistream_ctls Multistream specific encoder and decoder CTLs + * + * These are convenience macros that are specific to the + * opus_multistream_encoder_ctl() and opus_multistream_decoder_ctl() + * interface. + * The CTLs from @ref opus_genericctls, @ref opus_encoderctls, and + * @ref opus_decoderctls may be applied to a multistream encoder or decoder as + * well. + * In addition, you may retrieve the encoder or decoder state for an specific + * stream via #OPUS_MULTISTREAM_GET_ENCODER_STATE or + * #OPUS_MULTISTREAM_GET_DECODER_STATE and apply CTLs to it individually. + */ +/**@{*/ + +/** Gets the encoder state for an individual stream of a multistream encoder. + * @param[in] x opus_int32: The index of the stream whose encoder you + * wish to retrieve. + * This must be non-negative and less than + * the streams parameter used + * to initialize the encoder. + * @param[out] y OpusEncoder**: Returns a pointer to the given + * encoder state. + * @retval OPUS_BAD_ARG The index of the requested stream was out of range. + * @hideinitializer + */ +#define OPUS_MULTISTREAM_GET_ENCODER_STATE(x,y) OPUS_MULTISTREAM_GET_ENCODER_STATE_REQUEST, __opus_check_int(x), __opus_check_encstate_ptr(y) + +/** Gets the decoder state for an individual stream of a multistream decoder. + * @param[in] x opus_int32: The index of the stream whose decoder you + * wish to retrieve. + * This must be non-negative and less than + * the streams parameter used + * to initialize the decoder. + * @param[out] y OpusDecoder**: Returns a pointer to the given + * decoder state. + * @retval OPUS_BAD_ARG The index of the requested stream was out of range. + * @hideinitializer + */ +#define OPUS_MULTISTREAM_GET_DECODER_STATE(x,y) OPUS_MULTISTREAM_GET_DECODER_STATE_REQUEST, __opus_check_int(x), __opus_check_decstate_ptr(y) + +/**@}*/ + +/** @defgroup opus_multistream Opus Multistream API + * @{ + * + * The multistream API allows individual Opus streams to be combined into a + * single packet, enabling support for up to 255 channels. Unlike an + * elementary Opus stream, the encoder and decoder must negotiate the channel + * configuration before the decoder can successfully interpret the data in the + * packets produced by the encoder. Some basic information, such as packet + * duration, can be computed without any special negotiation. + * + * The format for multistream Opus packets is defined in the + *
      Ogg + * encapsulation specification and is based on the self-delimited Opus + * framing described in Appendix B of RFC 6716. + * Normal Opus packets are just a degenerate case of multistream Opus packets, + * and can be encoded or decoded with the multistream API by setting + * streams to 1 when initializing the encoder or + * decoder. + * + * Multistream Opus streams can contain up to 255 elementary Opus streams. + * These may be either "uncoupled" or "coupled", indicating that the decoder + * is configured to decode them to either 1 or 2 channels, respectively. + * The streams are ordered so that all coupled streams appear at the + * beginning. + * + * A mapping table defines which decoded channel i + * should be used for each input/output (I/O) channel j. This table is + * typically provided as an unsigned char array. + * Let i = mapping[j] be the index for I/O channel j. + * If i < 2*coupled_streams, then I/O channel j is + * encoded as the left channel of stream (i/2) if i + * is even, or as the right channel of stream (i/2) if + * i is odd. Otherwise, I/O channel j is encoded as + * mono in stream (i - coupled_streams), unless it has the special + * value 255, in which case it is omitted from the encoding entirely (the + * decoder will reproduce it as silence). Each value i must either + * be the special value 255 or be less than streams + coupled_streams. + * + * The output channels specified by the encoder + * should use the + * Vorbis + * channel ordering. A decoder may wish to apply an additional permutation + * to the mapping the encoder used to achieve a different output channel + * order (e.g. for outputing in WAV order). + * + * Each multistream packet contains an Opus packet for each stream, and all of + * the Opus packets in a single multistream packet must have the same + * duration. Therefore the duration of a multistream packet can be extracted + * from the TOC sequence of the first stream, which is located at the + * beginning of the packet, just like an elementary Opus stream: + * + * @code + * int nb_samples; + * int nb_frames; + * nb_frames = opus_packet_get_nb_frames(data, len); + * if (nb_frames < 1) + * return nb_frames; + * nb_samples = opus_packet_get_samples_per_frame(data, 48000) * nb_frames; + * @endcode + * + * The general encoding and decoding process proceeds exactly the same as in + * the normal @ref opus_encoder and @ref opus_decoder APIs. + * See their documentation for an overview of how to use the corresponding + * multistream functions. + */ + +/** Opus multistream encoder state. + * This contains the complete state of a multistream Opus encoder. + * It is position independent and can be freely copied. + * @see opus_multistream_encoder_create + * @see opus_multistream_encoder_init + */ +typedef struct OpusMSEncoder OpusMSEncoder; + +/** Opus multistream decoder state. + * This contains the complete state of a multistream Opus decoder. + * It is position independent and can be freely copied. + * @see opus_multistream_decoder_create + * @see opus_multistream_decoder_init + */ +typedef struct OpusMSDecoder OpusMSDecoder; + +/**\name Multistream encoder functions */ +/**@{*/ + +/** Gets the size of an OpusMSEncoder structure. + * @param streams int: The total number of streams to encode from the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number of coupled (2 channel) streams + * to encode. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * encoded channels (streams + + * coupled_streams) must be no + * more than 255. + * @returns The size in bytes on success, or a negative error code + * (see @ref opus_errorcodes) on error. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_multistream_encoder_get_size( + int streams, + int coupled_streams +); + +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_multistream_surround_encoder_get_size( + int channels, + int mapping_family +); + + +/** Allocates and initializes a multistream encoder state. + * Call opus_multistream_encoder_destroy() to release + * this object when finished. + * @param Fs opus_int32: Sampling rate of the input signal (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels in the input signal. + * This must be at most 255. + * It may be greater than the number of + * coded channels (streams + + * coupled_streams). + * @param streams int: The total number of streams to encode from the + * input. + * This must be no more than the number of channels. + * @param coupled_streams int: Number of coupled (2 channel) streams + * to encode. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * encoded channels (streams + + * coupled_streams) must be no + * more than the number of input channels. + * @param[in] mapping const unsigned char[channels]: Mapping from + * encoded channels to input channels, as described in + * @ref opus_multistream. As an extra constraint, the + * multistream encoder does not allow encoding coupled + * streams for which one channel is unused since this + * is never a good idea. + * @param application int: The target encoder application. + * This must be one of the following: + *
      + *
      #OPUS_APPLICATION_VOIP
      + *
      Process signal for improved speech intelligibility.
      + *
      #OPUS_APPLICATION_AUDIO
      + *
      Favor faithfulness to the original input.
      + *
      #OPUS_APPLICATION_RESTRICTED_LOWDELAY
      + *
      Configure the minimum possible coding delay by disabling certain modes + * of operation.
      + *
      + * @param[out] error int *: Returns #OPUS_OK on success, or an error + * code (see @ref opus_errorcodes) on + * failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusMSEncoder *opus_multistream_encoder_create( + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + const unsigned char *mapping, + int application, + int *error +) OPUS_ARG_NONNULL(5); + +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusMSEncoder *opus_multistream_surround_encoder_create( + opus_int32 Fs, + int channels, + int mapping_family, + int *streams, + int *coupled_streams, + unsigned char *mapping, + int application, + int *error +) OPUS_ARG_NONNULL(5); + +/** Initialize a previously allocated multistream encoder state. + * The memory pointed to by \a st must be at least the size returned by + * opus_multistream_encoder_get_size(). + * This is intended for applications which use their own allocator instead of + * malloc. + * To reset a previously initialized state, use the #OPUS_RESET_STATE CTL. + * @see opus_multistream_encoder_create + * @see opus_multistream_encoder_get_size + * @param st OpusMSEncoder*: Multistream encoder state to initialize. + * @param Fs opus_int32: Sampling rate of the input signal (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels in the input signal. + * This must be at most 255. + * It may be greater than the number of + * coded channels (streams + + * coupled_streams). + * @param streams int: The total number of streams to encode from the + * input. + * This must be no more than the number of channels. + * @param coupled_streams int: Number of coupled (2 channel) streams + * to encode. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * encoded channels (streams + + * coupled_streams) must be no + * more than the number of input channels. + * @param[in] mapping const unsigned char[channels]: Mapping from + * encoded channels to input channels, as described in + * @ref opus_multistream. As an extra constraint, the + * multistream encoder does not allow encoding coupled + * streams for which one channel is unused since this + * is never a good idea. + * @param application int: The target encoder application. + * This must be one of the following: + *
      + *
      #OPUS_APPLICATION_VOIP
      + *
      Process signal for improved speech intelligibility.
      + *
      #OPUS_APPLICATION_AUDIO
      + *
      Favor faithfulness to the original input.
      + *
      #OPUS_APPLICATION_RESTRICTED_LOWDELAY
      + *
      Configure the minimum possible coding delay by disabling certain modes + * of operation.
      + *
      + * @returns #OPUS_OK on success, or an error code (see @ref opus_errorcodes) + * on failure. + */ +OPUS_EXPORT int opus_multistream_encoder_init( + OpusMSEncoder *st, + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + const unsigned char *mapping, + int application +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(6); + +OPUS_EXPORT int opus_multistream_surround_encoder_init( + OpusMSEncoder *st, + opus_int32 Fs, + int channels, + int mapping_family, + int *streams, + int *coupled_streams, + unsigned char *mapping, + int application +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(6); + +/** Encodes a multistream Opus frame. + * @param st OpusMSEncoder*: Multistream encoder state. + * @param[in] pcm const opus_int16*: The input signal as interleaved + * samples. + * This must contain + * frame_size*channels + * samples. + * @param frame_size int: Number of samples per channel in the input + * signal. + * This must be an Opus frame size for the + * encoder's sampling rate. + * For example, at 48 kHz the permitted values + * are 120, 240, 480, 960, 1920, and 2880. + * Passing in a duration of less than 10 ms + * (480 samples at 48 kHz) will prevent the + * encoder from using the LPC or hybrid modes. + * @param[out] data unsigned char*: Output payload. + * This must contain storage for at + * least \a max_data_bytes. + * @param [in] max_data_bytes opus_int32: Size of the allocated + * memory for the output + * payload. This may be + * used to impose an upper limit on + * the instant bitrate, but should + * not be used as the only bitrate + * control. Use #OPUS_SET_BITRATE to + * control the bitrate. + * @returns The length of the encoded packet (in bytes) on success or a + * negative error code (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_multistream_encode( + OpusMSEncoder *st, + const opus_int16 *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + +/** Encodes a multistream Opus frame from floating point input. + * @param st OpusMSEncoder*: Multistream encoder state. + * @param[in] pcm const float*: The input signal as interleaved + * samples with a normal range of + * +/-1.0. + * Samples with a range beyond +/-1.0 + * are supported but will be clipped by + * decoders using the integer API and + * should only be used if it is known + * that the far end supports extended + * dynamic range. + * This must contain + * frame_size*channels + * samples. + * @param frame_size int: Number of samples per channel in the input + * signal. + * This must be an Opus frame size for the + * encoder's sampling rate. + * For example, at 48 kHz the permitted values + * are 120, 240, 480, 960, 1920, and 2880. + * Passing in a duration of less than 10 ms + * (480 samples at 48 kHz) will prevent the + * encoder from using the LPC or hybrid modes. + * @param[out] data unsigned char*: Output payload. + * This must contain storage for at + * least \a max_data_bytes. + * @param [in] max_data_bytes opus_int32: Size of the allocated + * memory for the output + * payload. This may be + * used to impose an upper limit on + * the instant bitrate, but should + * not be used as the only bitrate + * control. Use #OPUS_SET_BITRATE to + * control the bitrate. + * @returns The length of the encoded packet (in bytes) on success or a + * negative error code (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_multistream_encode_float( + OpusMSEncoder *st, + const float *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + +/** Frees an OpusMSEncoder allocated by + * opus_multistream_encoder_create(). + * @param st OpusMSEncoder*: Multistream encoder state to be freed. + */ +OPUS_EXPORT void opus_multistream_encoder_destroy(OpusMSEncoder *st); + +/** Perform a CTL function on a multistream Opus encoder. + * + * Generally the request and subsequent arguments are generated by a + * convenience macro. + * @param st OpusMSEncoder*: Multistream encoder state. + * @param request This and all remaining parameters should be replaced by one + * of the convenience macros in @ref opus_genericctls, + * @ref opus_encoderctls, or @ref opus_multistream_ctls. + * @see opus_genericctls + * @see opus_encoderctls + * @see opus_multistream_ctls + */ +OPUS_EXPORT int opus_multistream_encoder_ctl(OpusMSEncoder *st, int request, ...) OPUS_ARG_NONNULL(1); + +/**@}*/ + +/**\name Multistream decoder functions */ +/**@{*/ + +/** Gets the size of an OpusMSDecoder structure. + * @param streams int: The total number of streams coded in the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number streams to decode as coupled + * (2 channel) streams. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * coded channels (streams + + * coupled_streams) must be no + * more than 255. + * @returns The size in bytes on success, or a negative error code + * (see @ref opus_errorcodes) on error. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_multistream_decoder_get_size( + int streams, + int coupled_streams +); + +/** Allocates and initializes a multistream decoder state. + * Call opus_multistream_decoder_destroy() to release + * this object when finished. + * @param Fs opus_int32: Sampling rate to decode at (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels to output. + * This must be at most 255. + * It may be different from the number of coded + * channels (streams + + * coupled_streams). + * @param streams int: The total number of streams coded in the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number of streams to decode as coupled + * (2 channel) streams. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * coded channels (streams + + * coupled_streams) must be no + * more than 255. + * @param[in] mapping const unsigned char[channels]: Mapping from + * coded channels to output channels, as described in + * @ref opus_multistream. + * @param[out] error int *: Returns #OPUS_OK on success, or an error + * code (see @ref opus_errorcodes) on + * failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusMSDecoder *opus_multistream_decoder_create( + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + const unsigned char *mapping, + int *error +) OPUS_ARG_NONNULL(5); + +/** Intialize a previously allocated decoder state object. + * The memory pointed to by \a st must be at least the size returned by + * opus_multistream_encoder_get_size(). + * This is intended for applications which use their own allocator instead of + * malloc. + * To reset a previously initialized state, use the #OPUS_RESET_STATE CTL. + * @see opus_multistream_decoder_create + * @see opus_multistream_deocder_get_size + * @param st OpusMSEncoder*: Multistream encoder state to initialize. + * @param Fs opus_int32: Sampling rate to decode at (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels to output. + * This must be at most 255. + * It may be different from the number of coded + * channels (streams + + * coupled_streams). + * @param streams int: The total number of streams coded in the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number of streams to decode as coupled + * (2 channel) streams. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * coded channels (streams + + * coupled_streams) must be no + * more than 255. + * @param[in] mapping const unsigned char[channels]: Mapping from + * coded channels to output channels, as described in + * @ref opus_multistream. + * @returns #OPUS_OK on success, or an error code (see @ref opus_errorcodes) + * on failure. + */ +OPUS_EXPORT int opus_multistream_decoder_init( + OpusMSDecoder *st, + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + const unsigned char *mapping +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(6); + +/** Decode a multistream Opus packet. + * @param st OpusMSDecoder*: Multistream decoder state. + * @param[in] data const unsigned char*: Input payload. + * Use a NULL + * pointer to indicate packet + * loss. + * @param len opus_int32: Number of bytes in payload. + * @param[out] pcm opus_int16*: Output signal, with interleaved + * samples. + * This must contain room for + * frame_size*channels + * samples. + * @param frame_size int: The number of samples per channel of + * available space in \a pcm. + * If this is less than the maximum packet duration + * (120 ms; 5760 for 48kHz), this function will not be capable + * of decoding some packets. In the case of PLC (data==NULL) + * or FEC (decode_fec=1), then frame_size needs to be exactly + * the duration of audio that is missing, otherwise the + * decoder will not be in the optimal state to decode the + * next incoming packet. For the PLC and FEC cases, frame_size + * must be a multiple of 2.5 ms. + * @param decode_fec int: Flag (0 or 1) to request that any in-band + * forward error correction data be decoded. + * If no such data is available, the frame is + * decoded as if it were lost. + * @returns Number of samples decoded on success or a negative error code + * (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_multistream_decode( + OpusMSDecoder *st, + const unsigned char *data, + opus_int32 len, + opus_int16 *pcm, + int frame_size, + int decode_fec +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Decode a multistream Opus packet with floating point output. + * @param st OpusMSDecoder*: Multistream decoder state. + * @param[in] data const unsigned char*: Input payload. + * Use a NULL + * pointer to indicate packet + * loss. + * @param len opus_int32: Number of bytes in payload. + * @param[out] pcm opus_int16*: Output signal, with interleaved + * samples. + * This must contain room for + * frame_size*channels + * samples. + * @param frame_size int: The number of samples per channel of + * available space in \a pcm. + * If this is less than the maximum packet duration + * (120 ms; 5760 for 48kHz), this function will not be capable + * of decoding some packets. In the case of PLC (data==NULL) + * or FEC (decode_fec=1), then frame_size needs to be exactly + * the duration of audio that is missing, otherwise the + * decoder will not be in the optimal state to decode the + * next incoming packet. For the PLC and FEC cases, frame_size + * must be a multiple of 2.5 ms. + * @param decode_fec int: Flag (0 or 1) to request that any in-band + * forward error correction data be decoded. + * If no such data is available, the frame is + * decoded as if it were lost. + * @returns Number of samples decoded on success or a negative error code + * (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_multistream_decode_float( + OpusMSDecoder *st, + const unsigned char *data, + opus_int32 len, + float *pcm, + int frame_size, + int decode_fec +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Perform a CTL function on a multistream Opus decoder. + * + * Generally the request and subsequent arguments are generated by a + * convenience macro. + * @param st OpusMSDecoder*: Multistream decoder state. + * @param request This and all remaining parameters should be replaced by one + * of the convenience macros in @ref opus_genericctls, + * @ref opus_decoderctls, or @ref opus_multistream_ctls. + * @see opus_genericctls + * @see opus_decoderctls + * @see opus_multistream_ctls + */ +OPUS_EXPORT int opus_multistream_decoder_ctl(OpusMSDecoder *st, int request, ...) OPUS_ARG_NONNULL(1); + +/** Frees an OpusMSDecoder allocated by + * opus_multistream_decoder_create(). + * @param st OpusMSDecoder: Multistream decoder state to be freed. + */ +OPUS_EXPORT void opus_multistream_decoder_destroy(OpusMSDecoder *st); + +/**@}*/ + +/**@}*/ + +#ifdef __cplusplus +} +#endif + +#endif /* OPUS_MULTISTREAM_H */ diff --git a/Audio-Frameworks/bin/opus/include/opus_types.h b/Audio-Frameworks/bin/opus/include/opus_types.h new file mode 100644 index 0000000..b28e03a --- /dev/null +++ b/Audio-Frameworks/bin/opus/include/opus_types.h @@ -0,0 +1,159 @@ +/* (C) COPYRIGHT 1994-2002 Xiph.Org Foundation */ +/* Modified by Jean-Marc Valin */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +/* opus_types.h based on ogg_types.h from libogg */ + +/** + @file opus_types.h + @brief Opus reference implementation types +*/ +#ifndef OPUS_TYPES_H +#define OPUS_TYPES_H + +/* Use the real stdint.h if it's there (taken from Paul Hsieh's pstdint.h) */ +#if (defined(__STDC__) && __STDC__ && __STDC_VERSION__ >= 199901L) || (defined(__GNUC__) && (defined(_STDINT_H) || defined(_STDINT_H_)) || defined (HAVE_STDINT_H)) +#include + + typedef int16_t opus_int16; + typedef uint16_t opus_uint16; + typedef int32_t opus_int32; + typedef uint32_t opus_uint32; +#elif defined(_WIN32) + +# if defined(__CYGWIN__) +# include <_G_config.h> + typedef _G_int32_t opus_int32; + typedef _G_uint32_t opus_uint32; + typedef _G_int16 opus_int16; + typedef _G_uint16 opus_uint16; +# elif defined(__MINGW32__) + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef int opus_int32; + typedef unsigned int opus_uint32; +# elif defined(__MWERKS__) + typedef int opus_int32; + typedef unsigned int opus_uint32; + typedef short opus_int16; + typedef unsigned short opus_uint16; +# else + /* MSVC/Borland */ + typedef __int32 opus_int32; + typedef unsigned __int32 opus_uint32; + typedef __int16 opus_int16; + typedef unsigned __int16 opus_uint16; +# endif + +#elif defined(__MACOS__) + +# include + typedef SInt16 opus_int16; + typedef UInt16 opus_uint16; + typedef SInt32 opus_int32; + typedef UInt32 opus_uint32; + +#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */ + +# include + typedef int16_t opus_int16; + typedef u_int16_t opus_uint16; + typedef int32_t opus_int32; + typedef u_int32_t opus_uint32; + +#elif defined(__BEOS__) + + /* Be */ +# include + typedef int16 opus_int16; + typedef u_int16 opus_uint16; + typedef int32_t opus_int32; + typedef u_int32_t opus_uint32; + +#elif defined (__EMX__) + + /* OS/2 GCC */ + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef int opus_int32; + typedef unsigned int opus_uint32; + +#elif defined (DJGPP) + + /* DJGPP */ + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef int opus_int32; + typedef unsigned int opus_uint32; + +#elif defined(R5900) + + /* PS2 EE */ + typedef int opus_int32; + typedef unsigned opus_uint32; + typedef short opus_int16; + typedef unsigned short opus_uint16; + +#elif defined(__SYMBIAN32__) + + /* Symbian GCC */ + typedef signed short opus_int16; + typedef unsigned short opus_uint16; + typedef signed int opus_int32; + typedef unsigned int opus_uint32; + +#elif defined(CONFIG_TI_C54X) || defined (CONFIG_TI_C55X) + + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef long opus_int32; + typedef unsigned long opus_uint32; + +#elif defined(CONFIG_TI_C6X) + + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef int opus_int32; + typedef unsigned int opus_uint32; + +#else + + /* Give up, take a reasonable guess */ + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef int opus_int32; + typedef unsigned int opus_uint32; + +#endif + +#define opus_int int /* used for counters etc; at least 16 bits */ +#define opus_int64 long long +#define opus_int8 signed char + +#define opus_uint unsigned int /* used for counters etc; at least 16 bits */ +#define opus_uint64 unsigned long long +#define opus_uint8 unsigned char + +#endif /* OPUS_TYPES_H */ diff --git a/Audio-Frameworks/bin/opus/libopus.a b/Audio-Frameworks/bin/opus/libopus.a new file mode 100644 index 0000000000000000000000000000000000000000..b137150ddb4f7358f37fe4cd44dc7bdae8213c10 GIT binary patch literal 3939524 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�glInvPU_kEhH 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⁡c$xTrL5XA(~4d-17X+|CY<0U(^#_G(QpF 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

      r$0|C^^NN5LEjzG~&{3N$7l%^7Vy$ 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%0AmfY6O~(cL{bxjmiF;bloR^MZ{r=Wyd)6UxCy|kc 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

      HC`dRPnfqtA2kmb9N%OFd}EpF6q)iI?4) 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�a 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

      cX4O3!Y}oh9;y`XNBeAMIheyJuhziO zY?c3b?*RDIzYJ(%*Z^;$#Wm1i83k(m8PKPjPf#}KYIYDDCf6bxg9m}~5!QT|bjVQ90@5^`!MKJ76IX${ z9%tzA08n#Lljiy*X^cf1ExWtM2vTEFxcd(bj6R5Dzk+lBg*1xvGtzfShaG{JPr3mg z`9rl%TN&>1FzPFC=2f1L0DN(4Ms;SO%N@vsUB1R2T?+~|GlS6@+8H==qJfoS!TcJ> zDCQ(1!lMWCB?i@*Sw;jNusuBGRd8l@n<7)|R1J~a@ZRxymm1$9Cuh zuCfc}TOSqKYeZz~!F(B{Xo?Y$uLtwHmMUGU5mAZa%mIHE4tsV`WeDp9@6}Y<&LgVE zs;mIz@2YhT>t+rQ{tc4xjh7jt3ieyj0i;;ridBrkZ-ev2nTZvy^;hY^?}78s>D*3POBjf&^vK|bdMg|7ag%%IR1pPR=P#O7c|J6 z9DFT;NldkVHaOm$2912S09yTkFMxe_?ZLy?F48Hn-M`2lFGZ(vPcYy`cxcVRLJ}crZW7vgf#Dy|@QU zf3)KenqvcLve@n<{*GbTHQKdLn7KUoY2;0fTX(C{{}EJOeD|nPjbpE(KjPRK%&~>z zp1DE|a>L-IxmWYY?6twKf}SS57Z_4qTm~C{-7E0F8HtP_zhU#3ckbUE3v*6e4ou9!tz#du838ce;BJ0U!hd|pJUlE`0wrTjaYRIzR%`Qp?$#rVe_Z4a2NcH&3|D=yaXPE z?xfDQ$&AfFQ7kw|JvqT(Ei}>+WbYdKlp#zd@I@?oL}u#et(7b2R{z3hVPfq{@|Sbq4>*a ze{jy)`2uA&UqSnW^K0%`I-#^!%Se**6;Ly7q&`V)8$o4 zap3AFVL$p4cq%y8{F{G4e*zE1ZJf&A0kqc$J@^WnzlZh$?{D*iXfN>LHh&-O1%AEF z52L-nQ*8bL+6#OJ_#mF|L$nw8Ebv(JkDwpZfILYcwGbLj-Fo64wi^eZZp`t;S5~(z z$UScrvWcZ}AzU+lw&5p0`HVIl2411-C{3ZoZLS&5Y31D%c^q=O(P4t?(3hZuERV(=+IVIk(je zjM-^KbvtYf>wSE=C;yOVh7p1iG9BK?;Bg?Ez&m1HyO~n^$b|>XmD zFcOIxR|ADt=NHm$i$1kY&zxzsuEL#QV zP60@!LWw*tPDPMZeBG#ym+_`K=FifCA$QbCifjL13fahSn9 z<^t(RCB;G$s?4-i*5P$oZ3Wjr$ZC%{RoZOK9=E2zBbqf?z80%5w1hcDRz7S`oL@9j z%bQa(Yx3NgWi{HQnptWE#bi#d$F%s=Y|+uts-a1lDAhc?*w-diRn(Sdmd-1!OspuX z#dP?&bNE?9)ehHxh$7h6)#l%>)vAf{<<-`Nb!)c$XstFOmqmpq(_4^`i_a}q1baD+ zO2uUY6(v|rW2>+QZEFBH@w{!JPEF|@1YuzimItYVv{6J$W3A%Tkwn1irFN2%(%K5F4QMBYIxaW*?u(2ni>!=c zB?OwI2uncJ-{}=|GOZO#Q;KS4mDX`FO2N$PS}j|x2~z7^V293PnOK5RP+eM6Y^_2_ zlCF_dHM_d9bUx}?o1;1>mKaqQEhsI)N~4NeF726Hi`61rTvAmD{UvNCtSCb+D(1{W z4O+{4P)AryQrE`WJ`-x|DrR#n&>Y8ER1LR64sH`d~ z(e5a!VZqc{QSzk3T(&L!f|5io@A#HwWEKCVTZ4s1hEAGkU0SfPsQMMGUSHP2Jm3*`L6 z-g&DfaEs=jQBJ?TTIO`@=2^qQ`97WU2sj@9+bb=2n@4BgB;x5s<-ye4_=lT+99&Vs z`#C%oDnD-M{3|X3;b$z~Z}MZSz50U4gR3sMx*~VuyxX^?-S_aQWuMRHDh#g7;0leu zKi4JhXMqpbbJfK&5h264^1@!7LF<>FLg#6?5LChdIL;bOftvw08?GLXFRP!1Ttn~I2UuPNdS1Ia2F4z?y+?_z5v_r_7Rc~hg?C4z@w;XImD-DZ%)yh?Gvqj)B#(om zDtiv(E5d^yq@15si2N8sw7$=1uFr+@!w=E10$`qa~7%zC8;21%>K02Bcicj?FJiIb_ zKD3QOfWk=35ew)`raj5;=%0WWOTF`3bQ5^CgC7R}zJnhGk8<#Lz^`!dec&z!-wWQ- z&pIFV?*aeN!FPlIhl4kQZ*%aS;7>XDHt>fW9M7m57CZPB@Ja_q|J!hrgKq-&IykC8 z)eEi%qJQq%ZNdTCB8Okvk7D&0%``lE!P$OkLnR;SkjumH`45=Z1G4(X!Hwq~r4_Tv z>uPZ~SyNR}Bnc`UzaWn2)-RaEp@NYKZFAi&oPy?*Sd-0Qhj!$+@V3K05A52D&jTBC z?WmDf?7~2`dR*N&b26Mg6HFCZ`|r*N`!vv+&qc&op&aX#$K}iin}!Ck=Yx&Iq(qD{ zxB|3#0*`N-561L7p61CN2d<@hn||ATuuJH$RUjXio)6ZM4*W`}gTLC}HXp1b9Y|WQ zlqemSo)2~j9kvSOvjklGy==;&xZ7`Hip3YmZ4GIVq_AM9`F)Un9GDE@HasK)K6 z^m9i(Ex#No9)IH2feYw2?o4(!c*?sy)43tE zoYn_j4Ooo*5UoYVzVBWg+>#m?{L>G7!?x5<4{hkYI@>oy>)PN_==E}*RY*hE)ib<7 zm`N3~T5kwlZ9JUhH5;-qbL#moyR9DJrS+^G<(`%jPnVX!F79M)_%>K3#C)0?KHjf2 z1^*QOc;@&%@7;;6U0Em2&i%uQb8~~%c-F4*2CsW0vD2Zz)!m;-^afOOrq=Q=qrATI z$+T%3Y3|p@nlZn4-)IV0eRrboP?yJ<>pt%XuI~J314>StWg6z5MSIJp1vK9i&^uWl zdCzorRMwFEa!+5y44BJj~be#~AboXcXx|(!r$lq(?}H>;&ZvwAl$Bu*(nwO1^IMIf zzr|nPiMt1p4u6Xwi}q;l;iMxsE4o_?NFW`?bYtKGl1No(0qImy75Wp>>Hbir4=5!a z@ge?x3~alWfchX3dlHlrmO8Cvs8Z~~RjD3Kl_vo5&b$zC z?Ly`GnWabze1-u=mrBHZ0bb*(F17ITVZ(?F;`3P`Zj>>fD2UHjfyWrz)rAE-ZpD5Q z-ZS(@{U7SS1TcysZM&y?W->XM9AZG!Ktc=}w|x?gl%Kb9bd!#Dxf{LfSUc2DP+0K1?5|6fVX zQ}0`EynBU+hmho|vb$i+{ouAts8u)$Mj0BiL_R}9lH5|*F+zz!HZ39)i=0^7H%FR#J4b~EFr%FVm@(#XW2`y& z7#AAOY-0{*`mNzi?SFVlv^#h@KiU@%_llyz?ma#=CJZ$)k4`&Q zG_6PX9?QG`m+n)Ki)pICs3QwsTiip8@MRL&*LLheidd}ZCu`(HK&crddPLtC~- z1@@_A;|cFudNZ zP{C13OeCv;Ud>PQM}!J1k+Do<>KzLK<)-47*N1wEW>!Z^tj1_nFCv=A)5Q(q8CJtH z6_FR*ao=tRD?=$=Hh^f})?#p#dk(**BKwl;wprJhGRlqu{d8<~)8)>`&`e5E(YRqL zT*8ELl$5?%*(n)Q=1iJ9qkG@%?5ti{7x(Luk}(-p)2S(lR9%_qg_=1J7G91xn6WU- z_UsSKaf`#Vw9Q_EU9+4+KlT`!GVpRFasdawrq0Ar4z~d`ck!F8abv+oG1{!gk{Yu( ze-XB|x>%bs#|-ri?LY<7{sK+qj#1bji^>^dvW495?k?P@C*WDKSz;_#iokUE74W?I zmU9||d7t^{(J^cplK0eKwTuq{U*hDa!qYj^l5U!o<^ODCe9%G9YKacLHI;{^hGg>H z@YIhUj6#NK0Je<9mJygn;?MgpDWxHJC1f9l-v<90{0H!?_)oyc;>3;vd47CHig~kE zSbRgKAq>Y?A*J{(6c*paWbsuj30WPI#h0wG`06H$?`}ybMnW}RTcq9=se3|F;52r; z&^+OmY^$s=>ktnp-wgBu1F(^@Eswt9j-lY?z(z_MZWHNC5x)oY62#|&?t^&JaGOYH zBYrRFm5ApH0fk{JX}C?KlM(+i=(UJX0gW5Dl{DO@6#NWDX7KMet4htyW*6zp1$#n< zv}KcgP-w1aA^%MGHTYWeu|dXke-`|c;G2TK6IAUp$n6$-yC82G{@uS6Tqn3%kj+8- zyV(dLN|A8${*#_3I7N`HN%D&Yiv&46o_y<6*&n2!0{>so+O~?+E@ukQE42xhwdYvT5Hd^qqn$1Sw~77n3ec+^G+xx3Z*kB|K+ks2i$ITe z(DOkLa?o=?_j1r>pf7aLR=)8Vsmhe+%L)^Dx9!u&v!Vg^x@(5znlp%<4MQ@Oj<8%; ziog({MnjvvkxecP(pL?ew5SAwt&JB^bH0w+dNFUvn9s1oIFB>uWGF-@PwYpCE;+E~x7iWjoDci&0S@Wn)xt8qGOHk2j zDdu(ZGu(pXM%4WFBQXN;^iu7^j>0v@p+rsB7&B%q-h52Y`jIh!Y$a)m0>n1G z9(Do*U{jv7Xi|uSwVSzPazpgOFt%-ekCN^WXP_gTZToC=gtKi^2j6{GKGx%UfTU}7F5zt3*Pt*x zj6~n!S)+RtItG}*W;(*zw(C%5_ePpkERc;|Gacb<+g(sDg2=}!XP_gTZM!31JaD@b zOmzG@^3l3&n>wl-I#%H2AkSMf9pP--JD?*CItC>=a$p9V=?G`r{!nzxJOdr!Y}@tF zaV4(l-J)YJ&P6VbBOk5Xw)wpQz8~L4W7SRsTAn*~R@O5Y&bG~I+u4x(N_32AXX~<6 zGQi{9j5xMGvN2{{ioCN8QVdT=8O!q>&A4!GD)cz>Xvv9f+jCAJE}(TBas0srYXg)?B4~+OZG>9QCL^e(^WmF zZV!%=Q|neKosx!<%&GmpLaRy7&N=#GN63!WI?>L)A@8kMU7dK$PhK5yFg^RG{G1bd ztyYtx`SP`z&e{HYcT9G5=m>Y?2!F0%-g1u4=mLpe)CqkPwT@aUG)7Jv1dXZ88#Q+B zHJxxw?TCY$ z67-t)7K}K!G2T_Pf1zGesf{?8qwV|W;M9G=7+1vSyJ`Y$I=tsf*%$P=w3I2;=Y8s} z3AhYJ@2I)G&AIR8)ZLTIGu; zTsxpO3Mq%@=pB((L)!QRj7(@{-K(Fk8KmMm<+$v)WEFQ|^^QCbQYGau&650t>Mh!K z#qkO!vYJ=!`I_7|*^oP~R>)JUt0Rw)hTo)kxlP+R=fJ-cSo{z z>NU$nB~uTs;%>W0UUM={@N_e#1adP1>OI^KZ{P_8HH`AOFe$%~Sh| zH4ftm+=nrc4}%@zJx8`ge;7>bxHfQ4`{tu4e{T zn@>Q@%EKT2bFeF_CZKPr(Tt3MyC&Dw@ck`^FR6A)EpAb2*5UMOS4Ki3eWfi*jyoJr zeXgsqs-5E~!zq=Dqq?@#=(@XRAl5Kotvhm=29D;+)1r`%@sR9)SWCgV#@4>#Maw(F z&|FcP?oEioS~NcBk=(k`h>3{U1&Rzb<4`BigmNW8TnW&nufs1t1qyKgnm-;-SF(EG zM_0dYEn+2zeq>zXF&;;AA|&EA1+|E+h`yR4eLV(SKE4-840lxnT7ymB9+vHF@3^U-8 zLp{Sou`e6Rj=R2{3nsHjvOllycox6xF-QKByLu?Dt^g(@+Tm19=k>-w%1wYMcqFO-Bruraxf7rgrD~yY56vJyW*dHDSK$Yr z{Y;PhZyaV42t%#RZBu1r#PQ6_$xD=9wce5%#HgV(fdiOmAP@}Be1{7mqpQ z;U&$^<^_=!Vfd9f6?$~4Ldf|ShAsD zMxl{3{pErpJu`8bcMf#Nel%?G?Jw{7*mvW{_+sEwA7e;q(Z{}tSf}QdssXKMl;dK; zS{0nI0dT?$vV@O<$Jhx==5U-Af|CJ{nL&uz4sAEYjwG0x#)UME3uzh`(lm~mmMBf* zY&8g=*g$?1!PGQ1q-ktO)7X%vvDCCuX|ji4s1fZq$d4wZsNi_~DmM}5!}^LtEtVtw zyi!t3P*s^`>tpPTDt08n+!J?pQ}2ZNpuARWpKyjKk< zkVZLD#=^1Fa=-gr|I@pbiyz#+@L%t~%g#zE{CxNdc(xvx7Di0v*t{S;+a%S89!dX? z&}^ZQE)e=`MuwP-=a4#S6q9J&Hh>qeUDk zvOe@+EhFF(1M8y>YasVHJkS3f_-goL@LpuH9egG{8yEQ3_-;)D!m$-cRw}%(*ft`o zI>chLf-FACvKZhHNU~UqvHFE$D}^k+iG{@%G+BH@3+pS8WEF;_*wP`ZBE$mKqT{6w zH^#(j%DNQ{GmCfOdb`o?St2-Da1;>TT-pl-pob&A4wnmU(XFHzPkKAz`5no75dR|Rrw~t?@uZUx z&xSbm0^czJG>XJl(u^nl226f@bKo7Z<5MtS#+Vst#*^kvL=i2o2QvA0g7*ln5?lgA zF?RF)L);|%yO4@_F5f!v%*5UM6_4V76eUU}wROg6#!)->I*S zAZ_@=AN!U7-0zP3j|! z>Uwhn9#D&30s4@Gt^oZP2aVUjW`6tAl1I7R{H%js1bU-`#%pBr-3~ef33;B$f~=ZZ zCHvr6wX>DSYjG)rxOXt06_!ng`CMIqIPMY5`Uq@$d@BoK(sXidRhUghi@)0ue%}#3 zkDB^B~OB=5I3{;l}9r z-5r|U^7)c!?3(EaH%51z)CIHnl4|T6I$9s2qmBVcYw6gH>miAo=?FJQ_YicXLC0ff znveODn(asYThX!a40MDWqx%v%zC=C_i;lN&F04!89Oq&_bK%C<_M-kuL4y7AtYySC zFJn~3Hbb_=v5ilfhb@M8I+jlxzd7abb0!J9kLV6ec zvS}6(LGmK@7C754f;~|^gZ<@vkUsVj^ll`t0vUOZP2$N!G$*|2nT(!Ak^z%kNs?U- zlY9(hR7acC^h02H@SQoZY7xXa#vvGFuxm8cMDs+WbMSLoleTkZf!nlit2GOz5xWD* zyEkOSZe+raXl%mvH8x>KhR6=6fE)&HbpjP_nrVZgIFjSYAO`*o-YMY626>2ms zm{*=vrXDKCl7%$bs~;UX*H}`y0t*z3r9%t*8B2y5ksFK~KQbbRs_^veA-#<2D~&dl z#=@aS>;_}DFJ%?hFxYDpSc$>nOi%?(Tpu{L73h9UbE|zz&e-Ux zn);!;r|xqJKiNEQftu{zvtP*~jdS#2U0j5nj#`w*cc1x1@g{0;nZwMOZ)A_e?pD2E zBfJ{>#aW+A##fRpBOWgry}T(@*qVm^$B9Y5%tRdP9?F!!(>c?UZkm=>th13}qnVzC zhmNg&=Ak7+A|86%fM`uMw+w|eBGQ03A2PSWKM21S{$+StH+~Jz^GJnfafV~%OBO37 zX$Y~}B8&BwuvlA@)fHY?tmnvLMJKvg$&tlcPNaBc!rAorjFp>7+%pB4Tcoz<`?7i^ z{R_eS1@97MZOr(a1aA5@lEIX76?CIkf%>MzA1>E1kES>^tO=<*cSMWRJcuS zQ_TUrgSQkk+a+b7`HfMFo(h`VJ6m)qXf>Zx&?*RYr`s=q>FFlp_)dp5T!lrSuD{xf4od~{(fYj9a5}7P`Jw4_{nc~~+ARn#wSE=Iy6iDlumf^n0WftJMm^#AsSNT28EzEeNeON2dTt}Gx>L;u| z;WAXAFvIfOOh>r>>e=WB*I%U$j{jKsSc2=p=M}D5KEm}^KX#kn?7oPd3%CmC$Tow` zbcE}#w#RdpfHbpM88>##bcE}#Wr>>LTb!gO0stnvWLxt7}Eafiut%uD|*+bbN_?#IOkm=f}Co<#n7(>vKvs zqM~43Q41Y*BGBfmf?7k*T(~~(7AQ!8Tu^k(M?RXCQ|jhBrvh<&&Akj<0%Wl)hIcxq zrAN^X>y{wBGryLg)#rWsyHn*Ius=ag-7N;@5gMxkIdw~2KU2FRoL6>Jeq@<`|DS_e z)sA|1@s4_L#g2MkcEsu(^-=yd_xm4+U7fhqb;M`96YO8%y?=19!}`+td!zi>?y6j3 zPtR&!b>dbXbNO5~cW8_wKRpnA-*ey9-n!-05yxv6yVrWwMLeuM*zo=H-x^taj&7I)Jd-dFcT$L9kvYc`&A`Mv8t2t+>kPB3F*N-g%)u6k%^Mqp$RpHn@lf7d<< zzsE73H0Qz-chvh%M%Jx95Tm(kIuH6h*k`-%q&9ZV&Uoy~fIj-rXv|$qxZhKg9yli{ z`lM&FUXzxGUVHjO=)3Fq+D_^~SGu=mN+K))KExjzaWJiref8bwovVJjJK5}~FWUX; z#z1}`euH*0^1G*kTFzZ%fq`*rq2*{rz+2Nf&^!N{d}!|LU;8WQHtL`Wb0$0Gc>Zy)@>CJLb1X^fp(1 zf6FtzwK41UZ0kyHoc}qlPUMEDnw+TUhaNr8mHBF2?lXy7GX&y>f1!=_;$}# z!44hx^`2PVdvhjZ!}r0%?NOA>lG2i0VFn70ORvJOo-VclzJ{>Z!{g*#^obNKV-LxU z6ZpLl-cS<`yHH~R$!h%QUEjg)ba?mIB(rECFqXZoc@C27&e(h5Jur$0`6rV9vPr7* z@<;EXj;rQBVk+WGka(I>7x-QW>|(HMB=tq?#Sgxv!|d!M`vTur0FDUh8Ij)tqWBZZ z*GM$m#%@mx)5S*OD1V1{#k)GkC3=jwc$CHS;=Z^Q6^I_jCh#L{*KXPhqD<37bZF{b zj5+l#*4md{?S`mptC01dV%nS8OGQJqC3}KmvqU+}2kD&d*4|g;TU|75+D2pUhLOfi zLq{4NDn}R-U;N9Sm)HBQC>-+0ONGlH8G_vqG7Ad}U%BPCzQt2VbSs)Mqu20{ zyWZ&>qkJf)yczR{8t3X6u54H$d^hNRna{?)JFE+(02Wc~K+x!2+FnJEB+OF534g== zrFYEMLWIPQnvdYkN^lgpmgBnw_6LF)JBC952b7vImJknM#*X7Hc^)3t2*OSXB4=sD zy(-al%z~MI90ZgLpPs@@-$EiEqS%DsE(`!Z*ElF4MFmH5Ucgcn980KBLHp!*M!aig z8o`~AJFN}4ZdN-2 zSD07XYz_SD%?-UXL9@0bpH=`mXIj!$v9!|uziQ23-N`(%@=Sw=W5r1pD^0OLu;L|) zHLtMt35!*&u*B}5v8onbtfrZe^{q%DB#zf8oLz%YcN{ztm){3DH!uamPLHCUwbZBW zNCyv(`Bu_!n@Gd*^8(v)w;-N22S4IT!)+qn6CV2P_394^O`9M2*@85FlkO~dfuQ-c zY3@X!+X(WZ#J`(wE#h~g_lV#>1^*%VH^EN@|18KiA=B>>d|6N~qI-wXa-G$x0?Ka? zzI8s9edk``R|uN573LBNeZ3%SBI=ngNLxPX(Sk*S1%j6d_7%($>?+7-g6Y{vAhr=? zJC`)>r9yzh4A^C+q8$&niG7nfpzoCX#`b*~=p_z%D(Gnrx)k&%2R#w=l@5A5=u8Kl zi~}(rC|+VE4B3C=oDhTEhT$Qn+yqCsog>_`y{M#jGrl#=1K&kJ2cF+7X!L<-C&&3I z=u!6k4tw53NzurE&mPsgch7#!?NN@5iA|~{d(@fCpIDDh4d*`)c{}MXYwVfWqj2B; zqxlm|PgjOKINjOUqgv5nt2~`ODx40p2%g#eiEuiQi3%$tr?W@3qQg>Q+mgbqai)$# z@YXfmf{V%L22LQoI>Oka-jWCLgEP<(&K`9(I>OnbsN;2< zgO!inxE_+VX6F*l9<>UR%b?>yDG+<0gDo?-W;(*zqat7zOF#ndSJA{Z(-F=d#cj~p z@#=gAI>Onb+Ojf->l9_8))RK7Zn7)SoFxuu`72jZo0Ej8PfiV_PKdIUv&@ zNmyGFqR!gUmNYErzWd{#uj&QNp6K}5v-R4ZXY2K9qYU#V3c-ssYTT(K4&LU;4Z1IT zdZ*`PTwQ+Iz+?CJ_MD9Q&NvxUV4RFQ?yKoM&|Q;0sNz6|_T_um2Hkho!aQMJ6tsitR=#C?Mm;d}h(-AR{__Oi+4aYt+huob3Xpv)1kFxb^cF)v%o9$ncW zXs>|89|6@2W<-7j@O^=w|0Np(CmJ|6T*Qmc8(O^=;hgH=GtCN-rddJls;O&iN&h6a z181Y6iT$8)6w9&0hQKKZM%0V53Io#$i-r{S81nIu!XY#5WHXp^oz*;ryr_=f>CQ-|aj*w6xlR=C`rX zRSw&Y&Q+WDUA?eW@&c_r5<-v9qSWj^RUzrFBj@Nm`e zWbrYV-Yshhve-ux7OMraST6{R)e2dxS40=<6tY;Uh!n4Cxc>1(#Px(n61zW3ZKUT4 z&Jvs=$SRHT#ezkGmkV0`x~@XA{-pf5f~;Oiv#KNl6ynj@oTn&l6W`@?K+nWG3~m$O zhh?D0Iq0dN2Ri6d(Af?e=eGHL2R$A%KbdUl<9m{2fx5;E6YO&2@z7H!Z_Wqo@%cI)*~J z3oFLPu9=Q-{iak@rmV*n(wGES3Ik>H^3i&~=`!d*-KgCuIx1Sx5w72KKXjx)$KOQ< z^CHf1E{=S(&~N&U=!j@du1SQ+dILSjk!lZ%IOf`zCd>dmgH9jw6drp$*vK{T~jcGTZVD^ zm`|}Uk!y9OmW>^4{`PHN;L~8n@=t?)*T6tbRcv*{T5rwmO5T)s`&;)zkm#w`4APnM z(_qX<_kG@)3RiL9sl45aych^T%C+FX`Q%mxmG>*+5 zsMVzAJai!0{b2d~L4Q^6e2n1-9>xwtE~JYoHBP#YXf+*ki_25;jiid5#z{|7e7OgE zIk{@0jCDKDOLEtw-Qr~7Sbe0n)hZ~Y5cRyG)a=?eu=?x zW|?W)TF0@|R7slTQeQrgw0!3Wvs@>=n01hnlQ5g9Ix(m5yX)I)4f(98yJpYPewCkMw<_GFxY*UX7ic>pS7U(op$kvkgB`K5a&eDx-of`SiU20gzs65L3f70+YD!H$8S<1Tu!?^f3U@9xg}m~7l( z%_M=3cbUz@%Wd_VcQcL?8GXPnf|sRlnGduM%;AM-x) zkRs4|7R!n^9kI1f?Ch50!mJH1O3L&(u9JoqwN9()G$a!9Mbh)0-?^_xUl?QG2}5p(AalIk-Q8`&8~9n>_&~w^PoSv+v)TK~(lGPHb>`(JZX3UKatF!{ zOVAxCJ4d&j|3ySqT1HN7dp_Bbv8%N%ImeQgk2u&R2hVcKxL`^SY6d)?UcYw47qdTj zS2mw_KG~`H8}Ll(xZ4v34lKj`m;Chy+)4X`D@z?ucE0sw?+>oXZlCYQ{Y*^ab@f29 z!tcSo8Z$Z-Apq`#Z=A>rDqlZSjSN@mF1!1Twoo?PLnHXQmo^s7@cWOnCH{UI?kL;J3A%q zWhp=9t?7z-EUmP2e*PT&q>;FFC*+SVpJUWyqP%q;*fAeZh_SmqT{BA%YaRphms}_D z67Fc#Iw(okqvp}JTQ!f%Z`M55?|#)6aG5pFd2!p8qXaES={dB`yWaE5&+(3$dY+CM zO8cHN-!+w*Yi+~#YY&CyC%G^`$z5*9s;7qUR~@8-DBFRy!pLk;?U+;NPZTce8P{pTQd7RmcbuHkVufK+=V=nr)QiEqE4as#eo zq`oZMvyP%`NxccaheN|=WKV>=kCOZazf0yVX7FJiB4QjQUq`lly}_f?pN`CB^s?+I zu6gGy|0r(Ma1Fd?Hh%Q1Xe7LyYFGp2WDHe%JOr1Mm~p~HJa8S{p+ z>|MxY*_4foi}O~H>cOMXwfPc19^L;oxCao_FYx~v!CD40;yJ6O4TsJ>Za*`V2oH(x z0Ov8-HJ*ABC>HNWC^3n`ZqGSnw>=L(hK^Pm@LUoeM>thGhshM*8Sa74SV5E+Vs2&Qw|2ZaO5WV~t=$zCZEpP5uEwIxjo;ew!YKLP1~-0dM_r0G zH-2l!TgUrgZT#jh0fB8*u<={`P?XUBCDXHx&S+E9b7%z|3b*xfAK&@dOLDAteDu|5 z4`Ua&o{3Bf`waqkIHLPVASN`!Zb;(aZ;eTTcx-6J9ST-7&b&>?yzO_Ix8qIoc7kc% zPUIAWq|ns4bIhr8ZLO(u=UUs>B|G<+Yu9v-x%Q4d=J?%X-CWu8Q!L$UW>pGfHMgx! zQ&Rxz9pfGz#_m_TI*rWSx-G&8* z1B|6v#hm5G;7wU0v1YJXxPwL@&}GDAN_8FHZP*8ej|?-)eP0=gSw{JE8m+^$#&iS=RP17K z7eco-6H9$(BBTG#Hj7-6Tr#_0DK|aD;Gqi6oIC%9MfuziNHeqDYKdvGYPnHq;u9A@ zk>fMQ(rYP-&)|Vp1 zX1^q4tD91+6=YvT_5#Ravse)wPZ0I<3$zV?l%(zG1RjpDl{DNY(r>{--o00_>A33egnup$MmhGs zh@3!5WG0A5@I(AY@M}RX9w7fSLH6iKb1oTiuORz&q+bx^`T^401RoK6Sa6MCmEg|> z*`LI}y=UO{LUU~Z`O^hU1g{Y+6dWv=BglOZ@$c>{$SyGHj)L3@n{->j1VOgn$!EWp z7?kUHT=0;f6fgG|LVqs!k>LA+e-vbooceYPJ|`%%)ZH9=XZ&VCcJ@i%D|n~i3c(7& zn*?tVY&wp9jqt7c(Zxa+2{s)^Z(5GhMXr-zdqI|Y=8v5iB053}QKl6F6tes?-Y3{J zz7NL9Z^JkW+$N3^@N`F5uCbEAc~Ot)n!Y-kzLPQ9E8ngv znNl{pS=+=CSJSewv)`2YH!;QOr)T5n*bm^W<`eYo-!EHDJV&w*1g^y7>g*bRcPkm66lUCul{7r2_eAeP00T_#56c)-|1q z`{FiJgKIiVN4WU}8wYNb-xTt}Gs1n>- zoQsu@6}TQ!?3(2x+M&gC4-|LXfJ}t`8-tuP!!6t%i_VjYv-_*(&lM zAiax87JPy%Mihf)$HZ5M0G&QDl9`5*D0VU504tgqAv5}N{7_dkN2WOEEqXM5hQPzc z{02X;QZmCB=n9g`U>0K4;V)7_bxxfr65AI)dOCw~-b)znMu|A@K!&?B>>a^iCPlng zF{mV~;y2+Z ziE+O za34u?pemW~vJ<4$Kvgoc^$|&Ppep%(gqdp@s7mGySF|}$mCRu<=1>Nzl3%gn&4H@q zH!a#6s7ij%qRoM-WOi?rK69Wd`D=?d2da{ffaWpnfvPV-@Eg$>sCtK``X}0l;s4G+ z6+3r{=4e&8fhyGZ=Q_uylADfCwR4P5CF0`Y8w9*;Kjrw8)k_I8JQa$@4LyU=sn;}) zPQ~b5UB1-sMi|#r8d<)oWh0D5mA=$ZjIou4GrDgYTsUOdih{!13Jb~#D~g5%h7B2V z+if$36h2}s!l)J#s41nwiKanu*4NtK1g+ZimNN z5F|f5A>~dJ{RD(qd+_5�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�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ΠN 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

      $*g>VI^|b?hmcm+JJ3tG6sw_7s zeeJ-T25Wuoz=tNh*4GYr(DPJ$t*;&EYVgg;gj#*819k(FSXM?Z9M% zwZ3-XQiHX=cA&~&t*;$uFj(tr2bv7l`q}~h#;WpYeeJ+a=Dya~4sfJU`Pcf|0SbJp z@LFFxu+QAr`r3i#4c7YFfxj87^|b@s{Z{E|eeHl3-AQ4suN~-Su-4ZOP=8$A-vMRM zKKKm;R?pY^+JU*|zSh?ctTb5bYX`XNrs8XT?Z9mYYklniSIpIYt*;&6%DTc@Upw#@ zgSEbPfGhFp{zFP%JMbQ`8gsS2cAyL1YK67Fb|4#=btb0l0{ei2#6P!b$}XTx+u;SU zcPmqNfy213(%1Uhfe(P6W_Ycy9XJWB`m@&84#Z+q<0`tCvI`^u^A#0Sc7dJ1JBYQu zcHlwapA&0+?Z6&j^*pVw9eBoIt*;&65gY2h*4GaF-C(V+9r(~-t*;&M$WUS*P^Rnx z9Szp{+JW8%YklnicQn;cg4Wj#OaOijWfW6(fdowB)bq8zb|A&zKPXdnf$j#sqDD+kRu&+iPii`ZSanTt` zYVzn>$E9@dmkE=IG#alMA?16&?t`ZmOcSAA#o0fpm&Cs|za6c(2b$>NHDh_*68vbbI&tW;rN<^+Wk;U&pVHrVYeu@c;EBXxeV_d@GLM~ZcI1(0@ z-^t?oyRf+aPZq!Egtc5k@rzVgTmfb%esoJ#AyW+odPLmd6=5WHF~>7V#zeall8cn9EQt%`#kv9IitS*CB@w zF>)z6xfx;iMRv7vb4HBNp=ZZeRL)s4_djG$Yo|1Vkw-BYUF$2!qad1cCOv~eS4a3E zJXBG(xGc=Ue)iasv0>cW*G_sZf*ARcX!0l~@Y&*NCq2BKVQ12dCXZs$=`2ww-`vWz zpI#Js6pm|=?y)mWFPc2cS4}UPJc>!rG|`#nFPc2c%E-dP|M?k~H<~<(Ne{mT%AIL? z(d1D${?e`2#OkOgMuHS+w|%3@qol}tW)isJ3)4HjJc>!Lk0f}e=|z)AIal&$();!Znf8qEN^VBn5aQreK0OqY=bnQ@$>a870_m!g}TlbNv)qH}6aX7E|WNYr4?5jiI_V^a<>=41w+ON=?0 z8Ee=dI43jj_5@BExx1IkkR6vbD&*)t-Fq{rqjn z;9aH5W=(4QTcK~_?`QlFfO}EG7|gcjmB^cLrBFR?;v`*MX=%xYGfNB#)8FzF6OQTe zReK&E06ocQBVUWDYGXLT*6EpaOh>;P8PTsU6Km_fXnu4^@?~P)Zwh7@t*DvLM4KO( z^e*FPG@MEAVRX_g&1#WdlU}s>(Rmzv;i!i}7w>2q@wff-qRfwO=gSx28u;?HbnT`W zZGQAs(~CAgGU@TlpU&j(7(P^m)o%Wx&5xSXbUHU<{GcoArRhne_q_JDn_jf}QI`A= z^E;OAc($eyf7?wj+We?W(xd()-SB>zM*M9zy=e2JK?8Km!BSbLI9S46K1S)Q(%UM% z)6b7e`9TS1-pD~iG>-V&ZhFz?M=wiyQf%w4GfXdw7^#wx=LbP?>A?u6Lg|XbAbhRRRZk|KSanmc;K!Hl+ji{Y zecL|2a^E(}$F@%Ic0kxlg=h_mlCamf?yP1%@>uG!g1kT3 z<=+Gel%z2(Z*47PfU98Nl4Z=kp-jmjzY802UWCuEy_=5N0ad1VQ8vb%J=_XnUFJkQ z!t)trcn1B9I|j1HuOsgEKwhw4$NZolw$>)YekASN9qoF1>b!U>m|dP9gk^$ZjQciZ zojV~eykK5;*gSpLS_t8kD4d)fWt)iD^&Ob&*xF0zA}Fr}R4zW};Pc1#k@UG~5SfoF>HChCIS9V9KFxtCP3) z-k%zu*jx;Ia`EY-t%ZGV$y>g4f>q)|9o^~63m&r5U{}`ELzf-Z!x7i=`m0eFtP>yV z>Pp+U>Bd+q>2|lbw*RN6O18W5RDIk5xocx;=SI|4Yv3;RCT$H{UCj#FPOeB z=7eu$esH604fR##2ge}p8un3F-)5{82eBsGseAKT&EDT+Z*sXxkG}yso`>wz9VbKe z)?-H&^2=w|qAXsN#TNs49h9a2S^HDLOD?$3+T9;vu*98|?()|bpd2g%^Zy9mXXgC` z`a!{Gr%Gy2uiMdwv*+r(6vSC2X(&hhq;)7u{HFdWPbZW|)icU?1m)~duv&~+NyEeS+*Kidu#GlTX5`%8h)I_kgda8tputlem@X4YRB+6&X%PLXwG#w^}<#o~~r85hDfZ+h-_58CeL zGUaDq>V-Diuvd?F8+NZfI27aF>m8Rr_))0;bl$PyiM0o_z)z>G;9o@eACK@q7UAC$ z;eRy39}N3%cOxy>H_iH0_n>#=I+cDt?8W+A*2ppGy^udEH_M-@-gU@JH`k#5WTQQ^ zeO40f>>lZu_h8nAS)07?uJ|tRpYQTMhqH8=ue{TJA}eiUusY7WsR!C`#Xas5AEPdH znXTL-)Zsv%*^a)=F`Hv4+lYNIEAv*}eyD%;U;KV{sz$w`+&PCahO0Q>7s&Vlm51W4 z=El z@Hu|;57keQhmBQTZ_9cX<-$9!o{Ka+u!)N4TBqA-50zsl+V3sY5BvXHXj49GHRADk zZalAiT<2!K2XA5w;xi-1>fvUH6rlv8tOItN5O?uXCJb-LT)X|LjA)`rtRM z9DQ%-kUq^`^hN$YRu*4~aWD<)x8rlU6KU49WkH-h5M&*&O;miO zpLK1oU^(J*4EL_I(|q{7yw1IM8SOCppofF;4(~u-@Ke0A%maU0kD|@qkRq|k63o@*SoO6%4hSr>>nF3Hu7ER55FI29>sj1@XFdI=oB?4{Hb3PY_KM+!t-lo z+^oTGq|fsC|B10KGHamN4younAlZJMHK@$v8V^IL8M5 zCeHD59@Jq6>znyCdBmwS{tYs&zwK4?kb`&+a{1mDTsf}^=leJN|CHUt_oY z9Q5ZYC=2HQWr&j%hrWZpklo9g zmc7!Q5|7_3XyG*Hzgn}K@8!16RuFU4PEUZohW^UF!{2)L^PTYf@XP_3ebn!60p9mb zc;7d}mMx#lXKunX&3l)1bFW}^a^4BN2hEt*sJWjPbH19Njsws4HuLkuc-Kp(vsujg zcoFr@cIDC|=0j>;JOdLaJ>^D?!?o4Vngy=QeGUG)b6r&gxRf*VY3OG?4u*TkSf&aW za{zzb!x>m}JU@Wf6XV`W{slS}6MHszbg(=60*HIeM8wI2FGk6gjtiv{t5Q{%D@Ady zGW2*ZI9cuo_@_uGJR5#Gvt(fsp2mc?;D)`Piy_4;5px#`W4mJkr}H`02x0pPO9)R9 zQjf)b$rV`m=#6OheS|Ys05%goN_goSz|Qb_DJ1Q_tcnj=_uF{ytAyVyW-{wujQ1WU zy!;vjw%6^AKYd_bT9wo-h!#U5g*s)VhK=4&LrK%V~<_S&M%OZWl^&BhLw_3Oxgto3!E5LT>(2;+s7->5lFG9r6>Ft-u*FMIR#1|l$ z_WQ=TECo^sI$EAS=wlvtN2+G@vM6pDt(?hY%|E0OYvHHEBL>LA8J#1EBLnI zwenW*WAIA1462YkY%?iTT_P2#lof+C(xh0WtQe$bkz$pyV(^!SRmzIN9bj2%QC3Xq z77INU$n4S-8V~FK5dH*i$F0>Pw!{2>t2Y!8gD)^YMAC|g!Tp9+iiklB7OdwPsuU4} z)CXi+u$3ZW@Jq1FTPq?4dB&w;l_Fv=Xjr9)7#v_&rHB~JH>^@b4D#cs(key7;B>=k zMZ~24MH$Y4%wE~2CdU3GI3NBB@}GM9S)Slhc<&(l8MK4qJ;9CeFCyQ8XAPbQi>U9+ zVY}ac@QkbY&!LS3z7#LZT)ve5wEG>1$Fsi%Z+ROt_#*U9U_R`=D;}%&#rB)QH%&f& zQ^k0nDbO?7f9Iit!Oy{}QoZHv*TWNx#bZ)8IpFP=8&-z5z5RxHf>eM~Rr`*&U%n^U zAFL|jyWW1IJi%O(_C0UE0#A^tu`2REy!|G6f}Gd!V`jha?Kdgx*Btcro9+qLn;-Xq zx8E#J@N&a`==wk#y2;PKXpb_+e-~a?1B&f%g2Els} z6hXi*h}{>04eGpXQ4jmL^LGT^~`yf!ib`S(FWqQ)7YO4f;A$S#nze4Z^TN2L2>$gAC zWA%L>+#=l9o9pTB#dxT9@0iBm)e!J$#h{nK>-TfR;s9y1`#TJaH{J0BA2uxB6Pjg7-{% z2PORs-nsM+IPNBp{Mb{2{Xy4296M5#FAFSV#h$JTG}Ex7Re>%7dn-d>O8^C;Et|P0 zUo4CVq@ZgtEX)J+#@ho{Wd(ZxeLcYqhE>N>2Cp`3k+)xePmr(;6&a_~XL*7@1v{5H zt79pHL~bg!nEip3bSKKN4KiT}%*-T^_*7=8?y_hgki8$qv<%|Zj5 z;8D+<#r0<6jRnt#uK0mykKivte8msK`w9bJNpB%>Bl92JeH6x~Y5-!!IsZW=z>uO} zm;#^|^=OW$J~=OAw6;gu2_XIbJIXazs+y<17)x`h6aE@43H z681D|g2_gyFhwf~riN<=1|zi#dxg{mdxw+|`-D^t)5MD^Pj?f?nSUTYtG-<|4VgbrhQWeqmv%-(-Fr^6uzU05f5!*E1BarTW`J5gYv znyIX9;?X)_(7i<{C=T<)Pc4f5QEa^P?&^ov7R7%CRmCFDG`r_y=k`M9oSR%SUz(r)jM-(QcXSG(PkQPIkQ9dHaxE>+EuN+I^i-&RuJr z+nqbte&#f8m!EmLbD*`|ncy9k>b!*$Aq%Gz+AR-Uwh|@SbqFQB!&wZ` zr_Sirt%Z9Z@@Az>z0BEN=#0JGTZE^KDpC%wo^oAiWcnqje<+Iap6`mv#pjYN@nM5n zIiCDv{If;Y#m!96)=(7VeMt(71F2}WgpNaSI*5$-d_HwJuhp7m{A)#qXvUj@o{-LC zEim39S5$4h7rUYhjQ0x>F@NLVgBM9>R{gkm&8!)>H1p&tne#yuISqtppM*Xeils9R z{hck|EkdChYrJ~3i9e^rcsc5#!?9n+8>+z)Q-h(S(MpWBw_B-mjd!CfDly(IuBgIz zX_-aevBY>Mx;5_}K>4^UDluN#GSCTYjF(GCT2x}Z`(4poz-sKj_*bVc)w_f=O^V!Z0S1KfZ|8OjOv3kz1^} zrlg@_&DA##{hck|hlF~p;!vRW%@)B%p;#R@-q8Cr-@H$uLe4+3kn>F;&61hNnlHJ! zWVZO$3B}o-#@p9@qbrTKK%Oz`skiZ)g)xs+WxSKZq8Y#AR#cUHbMed;`kqjab*}N6 zo8X3i<2QHlST)9LZo+8Bf0x^=YRvN4n<0_h$|d)S&-7jVei%Q7{mS9{VZ51cBl26u zZG=5W6_^rlk+BI)r{Gm2J-FVG{J)=cBb3U@E7JNz~qi|tIIk(&8HbEy> zC6&n)Z@Mnd*W4sQTiht;n1dz5$|ny`=fc0I;nG4P5V^2+R1*uF2?0G?-qftJ_)cKY z8k|~w%tx8)qlV6^Y$}~t$pL9YX>s+^%Fuz0g)pKkAv&sNIQnJ8@hwf2jTW^wDQJSe zrd4Z|SC!S)R@UfaiAW(W;y5F31T!8wq_oMRp${JGICO|r*$ib*Aafgwrca

      in>%FAjhHCtR+Sz#4dSAd;c2azg7P;ihL(8Nx(4>{5 zr4}Ms*Tzfi#!yF{@x=uOwgMG|Tc`)5B4{o0n!3iu2{_<2qKP(6FPflVi6U07IX#kp{4)1lLPkyMKE?b|Dkf^FytJ~mvSD6}73RlbY1MP}9on?2?pRp9!W!^<^zJ zb!8Q*1ukql;-Dc(EHQ>sX@|sv}g98>d#I zEwa6%h8WILhJSOqD4A*zTHat)l{KOx3MFrKS}a8@jHb7cjKF( z@A)!JyjW<3(8&Dvi@d)K1P#p>zCfrMLq?`II#L|E@k*2k94}LkijKNZz^rIu)FP7%{+!Kd1}$T z2WRg7yf+F12$wYm*9=@V4}1x(D{%b+*Il?C!}Vue+++U&R}#jyC*m58YZ9)DaMj{k zjf<-(x8r&M*Y9z0rvgdTjst%W9QXMt;zoaeB~k0<6mj8PVsYP}A};!ih}-@YacfNy za>JUUFHoNni`W5*)`k)ifIty<7bF(9SSaEii{!Binwhg zBJL_s#O(tS5&b~XS)n@;{y@=OTyn=V<&NAmk%Zh4VJvQmh=|or5x0gUAz=v=acUv9 zGPsFE5qFU!A@{K;;vR~KxT#DLH_k-FeP4>WbtWS2D^bLWiDYkaUWP`Uvjr4-;x(Hz zEg1}oxJ6l-j{Z4b@=V0*K>d(%A?O6qeaIeaKsmGYZF0E&gxlpjghHMOS`XR}lv}@~ zFQHh+f$jnA3%UuE@s@!yoU3nm(Q;_1G!5lx(o~&I2Vh$c-#k*T`1Jwh`XJP{a=5?< zb*r4~@cZ~XwrHwsZ&03v{1GKKQ)s+Uuh0X?m*JdXlK!{QKMK7`=+A^M5LzzuRH3H` z4GN{MCi9~uSkix?yrf(iCVfxn3qqe3O4td*`SOuA3#}JQOShDl3Y{pFb7#tj3LPYr zFE-_ALjQvLAy1$#=^CN50YZM1&|yM})1&-SJa^JYp;ba>3q3<9fl`cjqEG_Z$bW@) zLQ3!$>0gA3nV49%C&~#>BE3&2=jY^a5=x`TQm}`-GY^@IKJ*R4ieC41ZPVi$eDa-6QnZLU#+5cQTgvKc=T; zYtkh`7YHpEdY;f}LMI9xB~&`V*ev0X6H4SF^Zi_R9LZP#v!XFj- z8=<>|-YWEGLN^OtBD7X$xlnU9-gM!)49@$H7CKz$K%vB8GMw-uQo=MziB%zeRVXd? zl7CXDIScQ8;dctXMd(k3^83SdtwJvqS}&A?I)+abdWO)`gbopUvd|2n+_z!6M4=v` z(Bo3__l5pl=wE~qz{GU>gzgdgYoWV^-YoQbp@dm69nn{$<}5t+o8+s7mI*yq=-EOi z2t8e>oVFU9CH!$hQ-#J0^$Pt=`jdk~X%U}H|sg{}~~MCbyc| z-~K@8--P~;(C36cDfAJc_Y2)A^cJD~zVd$DCm~%dlml<_WkR_uOP;#Cq$7k5653BF zJ_{-wL{Sc08K0}_r2MXv@(*d`?|DhmJu7sd&^s!gA zZ#TN#+sNY^Wq1zsY2U%{ZR9bQGrHS*$m3pF{q_C!k;nLOuJF&2$Dq~dKEFgB!+E2- zyq`RjEsXB*0rJ3@7~SCy$fI(M?(b;aCJD0H`gRt)oosTkJ{ivXq~qj;ag3V`PdFcl z2$%7TiLUIzg~xA*NWUS1m-gqTKM)aa<{TzMNksU-2!32d`8X*HFVE8v@$ZS?W%2Zg z6??s=8opewB|HU>YZ+YhlC%>Q*ZC+sIZ7{lfds34SmnlQEmp+K>szc+y%5ADBrI^x ztC!r|1!uk5UCMPE6ScY=Y6ZF+p*0$mL@oJr8Gt1uwU#7-vWA1DEVY`cvl5{!&Xk6q zJSahGZN78z)+i?eV*dg*$YopP2kv4I4U-Jb7mI88+Q`Vzd@)jz zug#1M&DSQ?hURNiB}4PYG+Vy0%_hd#^5ulUkvhNOa-!gHIZ<%9oG3UPCklR>a{=>^ z;fPE+Ww(SCUtZTx>Dn&o%5KSQ^d(j%E;!7mtZ0i&3}0{x|61<3fQCnRWAP%ijP6+N zmVAJIhHe$gfG*K`50ecpv{*iC6^U_QXJ^FZW8&8bjIV2I?1DtIGh*`dslwn~K*_IY zxL(9Tt}L$WOnzl^=5UV+zklL+<7S@ehJTC+E8Xq#;x`?q`LMrT=NHA!$PIi@VJ`jO zv@`N;^NVI@#N_uA`BkQTucH2>3cCEg(d>-mVxfTU9)4Wm?m9u!H<90c+S_G*(d>-8 zF5kAHI;}N_opxu}Wq#4@jHI5V6aO9GVY;6jV}8->jQn$u&S$nJ)}?vcv-Wf-!)R|r z`HpU9Ly%K}sSTD!ZrYxac?@;l=jL?m!+je8=vNY6rx&pWB)+ zWcy96sU6UFcI|&q2XvdA*0CeAuzeErs-4l+<~ZmCAAo)^&i>mxhkC&n&Ta2q*gnt` zpAcU-aKmJTGi<&m{^=d9DIHK#*u1lEVf*|~R=hA7=^4IY9L@+V9Hey08Mh2^$08r< z8c&3N`Hk>z`}u;A)Ynab-Y#@mpWm_N-I0@*dx&jU=M>I=a^QxY*X)iQ#)>M4Rq}Ar)=KZ&w4K2@^@^1Hf3|BXV2(^u&HvV9q8EKebwmgo3w0y z9Q@P8AG2z70pjiVK$e0$@q6Dr1LeZ+-HtlnJ|U&;Ui_}NSEG(w{TptHe)GTqdg-0_Be={?NzQ^{|ewdeVLE1Vnp{A>0#?RKw@b@9Os zpF=-B2wN-nKNf7;w<5N9+l1t{=4%&>{445w&$-uL$Z~v!c87JW8GnYIlqXmClMgiF zY)R;+KQ+ec*%#+NPF~(O{axE0lD)fc`k--FOo){tz}&lRzKHe9sYvw19@YYlYn-%id@@^@lZ%~WSh z+MXekv!6_R_fl)ff|H(1D}{{?%)w`6z_!eL(BEb~9fUoP!PM7BSk2w*(x~h0AkEm- z)}lUl-+?p`&8l;^sJd}{){J$im$>Er?UnLe|r0Utus14giV15Cd_Ip^jgEVUp!sg3F5O$fE^srv3TceKw-P$@XBPX zWe3{vcKf`J!kD-X@7gIt20dxD{Ki+dE}G1AAKrF4xaAE89u$v-tSpyIN;;9EgXV81xBjKTsNxC8r87_y{nLw|6ueQw9ScqebO&*{J#Ny=E* z<5-P0xqZU)wz1u z`a#J5FgiYcH=Y;lvwQsB*9jcxE%!fBDsL-k-l^L0@auTj(qJ{3j>C76RMl zQv)~LcFN-IyYM{fViGsJ``n(E#HUW%@Q>f`X?g$2JuL_SYfnqPy{CocFMz#>z%qX_ zj7avhR$%)F{)urbv&VsshwSy`-t<=Z*TNt02GTz~!;_vleoex2%YEs4Ja&4ZU~|H_ zaiwjUh;sts+_c=2e)kzxdfxce3FAB=c^Tx3L_T|Ibz8s}NXYAH1)gipZkr6-A9+hN ziZ`1!NgEEZX>*|+mv9^Emwm*CcDEh;y&F=jS?o_AKwo}0`pet!y?{N4=h=RZY8;Bl}6G@-aHhwn%0^p4q(Pe9oVQTChd zmzpOoi%T!E?DRc-U<(8CjpNoP+}!V_=AvBK_duNS2+x+^x@O#(gj*)O)LgU7lRn3Z zOW%t=nPEi*8xw9W*J-j%8uY<==zCR~R;CH4G|$0~NH)S$np-3d;_*Ilko!%V$C$>i z(mac2#xRxU4Jn(Xc^mELAlj6=kNq;zB&jq{;>_Sv5H=oV+tu&o=Bwk9(sBN8&-Jid za&X-Ggq7$Aux~o+Nj%FF5szWNn(%V-Ehxv6c#i!=c7OTH%}=a=Z0`@-P8Qj3T3>EH zOxfxmwv7_muWxy|`98|V{je=xWcNPya`RHkJU?tZ9kRi=$M!c~ZoYGr7iDNo_~RHK z=;a9q$8-bzS;C!T`hsprs2kH8^!kLsct5g7r>CESZxH*M?3Vd$CkB!d3Q_0T%e$xl z_5`cF2=%=Y{yWhg3j5HDv4w1&gl0dkUKO-h{xAR@h%TX#013 zfcNM_*lT+Y-_Gr==XLaJfsGXOk$*t@q%D%2?|(JxSN6<~JM9@AccTwtzs7dRHi%`u z6t+{oQwLxN$Lfx82*xQ^94N*pRtzY{Czgy)w)I`#-Wcy};C-@VNPBhU(RLNbEwE>^ z;1Sp`K^`0fIo9+J3wiBFUeNGIKA^~JKk~9L*18Pm(epZ#v0Py zlQCo^!Z#p~$=&VZNgijQ1FSyNFh1rXDJ%!ywK&+?axj)m7-c0_qbw^?mKv1h9hBuC zD9aAd6={jq#iG-X*2|Dfc&oR_+L$b9_8J7l@JvOW^(*kj+Psr0h{Auz1R1RO zf58`%>Bi2)8dFRTS#_rgU}H~nLv`Y_T)qXt-DZ(hd3ECn!uqb=7Kgm6=vCP{x%k;} zT;8Ue9a)-b#u?3oi&1pCL~h-h?G_`9 zxujb1Bp zx>3ah$?ybsyaO>_KX=e^Hae^JVR(tZ@@1v4peog0p&LB~vRIFjnZ&O_-_HtV5bi(4>cyM&F2Ebn=OeWLTuw)io6 zu##{?--x~izT&ju@UjYgv#8IWHpZ~ZU`rZR8C9q<*pkNGeZ?w+Eot+?5;);gr^}}; zF|0D!l7?xR4pjzQ(ug2Xk(I%gw5trO47Q|QYglElC5-$e^U12*6PvQVSc~Wx4*A3?P=zRNWLcZvtBZ+GT4%a(Ug^d4&0{vGT4&F{#->?23yib8de!>Nt;KJ1$kw#C9MHoeqVjsU`raYi95(^gDq)W;Ah+MX@f0k z{HQ8k8*E8C4=)Sbo=*(6_@BZ3?qUXCgx(2X*t-Ht78m>8Oe6S3<)aL?r2QQ%wJ?3k zU`yIZU{$GcJ@jX&GD}ya*e2-LGWw0fU-zpVZ z8Ei=_0!uKlPZ?|p{TgMk1tU30s|>cJ5%{38(gs`nvykutWZ?Vg_&t7~$CL39x+QgM zuQJ$@!KGGJ*VZav224^~FW|@d#9&LtaB~YW*pflegnHOwuqDH-a531D z@k7K=Hx+{|8E&b?U`xg#lc^YN$#8#&7;MSdU}A{DmW=C-Kn%8I+zNquB4V&5<8Bi} z47OxE34wa~#9&LtK_d`@Eg4?vH+*8SB_m)2Vz4EH5Iq_wFlg|h5_hkGOd(Wto(y8$RB=b44%T6uo=K}L_dx0$?dkn8{JmLpd6C}QL%j zWV+?X!#hEe!)t9uGxu5#@_~JK$D0dULG8&Kn zzy&jirjv+aRwOq3;PU~V*m%3Aca+EZoAb9r?GHXO(_ZobEO+d(m#lG?OnI>Nq1Lri zR!_4V*4RCrCT~IS4<^||y!}0ooO!u7H`Si%G+p)^=aSaToCcpAvvqYSv<}&Oa|3qV z1DD|z4}S9S+J}prOTD?hz5P=TeK^HA-9FhFWlzEtbVfb+pm$inPIv&)IQ%IrEOd4s zT3cASx^U{jDN{d~GVS1Wd(j%i+y&z$yX>k5rW6$w*@4LvCQT-9$9-fsPhJmuC(~g9 z1y)Heo77r(XjRe5vzJdhV_NI-X)C6!IQy)rtt+Rln!2i}5LM!gcK`8)g{@PjKz{ba zE2rA^-h9ubNt5j0WV>RGeWG`m2WC%N?T!^|?2R60l(!(o7ZY!p&gE-xI2jlZV2Sxl` z@g}1Eh{$*|T~WF5&UQuT81E$ZQ*a)u+;}f`MduiAjVmfQUSdpj!gGvwl`ASYUNdb) zQH^&ZdP|+K+<4D-MduiAl`ASY-g;Mbj`31)K=Lx)NqnQ>aL3u=Z4QZy_byjdexzxQ z@;wrof-X$*>MP!@_}Gcac)!5ciq5vK+`7Ur#^@%B!M>KRLMTL9aOB@C5kdLgc#Gtj zA@`S77{+mHy25x$``8AW=UxR)3&h8-zGB@QLb;Oe|@0S5x<`EZMrYqC>I#- z#XcQ`dzn6VV@RaKLVvkfMn}B|I@FozzfI~cs&SLVe%4KOL~}89xYn)dBO2W%33}X( zQmqRS`n&arI=*nabl(+jH-1Fza2ihcrW<9tQIf64#D>meU2MF|T+z&R;@#wmF1}T~ zce$dOkBj$NS5#_Dw@jB0iN`9f5^qgNv`oCKT+s!_YbX-x0*3yYPQ)xsc46Smtbv+U zQgn&(WJ1}PrO>0r;kvkf^@yG1N|r{|hL2dGPH!~ynfZ5P7A0(0eavSHA5Ca#s1d_0+Mo^0ZH%y{!}x}_K!YPy zI~!dI>n9t~QEGE4&5JBi&=`mGF!=<_AN3H@+(|VCHjT`K25G7*nyq@%>8ZHZc%&F+ zDVtGc74y~YVXmd2NyV+MHJ#jkP@wHXFA~A%5AHt$9&1i%Rb^R4!$NBg`s`YvC<1Mj!2SmyUp3k6f;kji(&M$4miN0pCd6+4y>@Gsr;-%%IIi!gZ4IPkApTgE`!|- z+V7yv4chIXZH|F&Pr8w|I%vOx_Bf_qw&jP$w#NbF^-o+>1v~-QFkENhx)9ewT&r-= z@cV7JXwCf@T-af?KEf4)LhnRcc-1m=e^5B?v{J;aRuORrjv{Ws0hmm87eXoGg1m^h zmr4p&FA2FT$ynSE5E1v@DdOh4h`47=5jTxR#C;x$xWq3a z?$lGHmhwU2xZF<>m-{6a*VrlI8oP*$9T2td&t#UxZD_{gR*#h4dK~lap0N9{2^4G2 zH5)Z8;dCMu@;3cja(=EWBc}osxc;0JP&A^PXOJK6ShG*l5~4$x&tOeUxCe=Q#u|NY z?pTt4Stxf!$Ui9b4xzUR-6(XeP@}&*O_wKjywKBxK8Vbi-@QWfQ4aDf7wOYNuf=mF zPuKxzgHR$D$WIeW=mYt|Li-EtBQzj1R_K>_QyBk{(07II7fKVA4FA2*{}TFu(0hd5 zF7!sBG{MMp8-=bGO85@tKNNbdP~cycoai5hX9>*|8Y7h0A%+u0K}x6*>7zn_BXpNg zqFNYEzzXSVp-Y6;3N>~Z2#R4mZhVvG3ne~@JTWw+@j|&3LY}}WQo^rDUljU`(7i(2 zh2A0bHla5NC6bEixtd8@FSJr9aYU4l7s{<$^1#C?+DmAnP@mAlc!wB|C?(QA3nhYx z{JlbrT?NkMDPJdap-^I=D4#5p_$2Zt3(XK}?5}(-@4-Q#1dcKOGeWt{LB3rmac1O+ zOCTj&fwWcVr9yFLo|2y@v`FYgq4`2{g(eG45c;LOf1e6{S12)byx%^ddxZX4C=qxJ zH+Brx32*Ee5U|H^Zn%<87kY-!(L!^DW(hq`XsS?0D8IPO=M(%PB|ebU*eQ5Q_(z5Q zM(7TqJY)p_V}C02YN2a|E)&Y_aQu&@9y=*F&`Hk~Dt&S61mW|Aa`hDdV^0!#oY0;^ zCt^E3Zm#Fp#?%C`|;i)=YWRyk4*m~$iwXk@b{26i#$Ig zkG5b|X>KBqwru$Abo#({vKKHF zJY~i$h9{ht=U{@ZGa|w-is0ory740N95}KM&#=JM&#=JM&zE#3h9@3 z%8=a5kjsN&{7@*b56#ca9G;tp03Do{n>%9Iu*}T-Q}Yo*=jx*?O?{(~{_pCeZ{o`W zw+ii-&hTiiYG9wFq{pt0zE2ts^TR7-`Hu%ClX-kYeRPwL+}@hR0v*K}{qbn}=qA65 z@Sf3`{F+fdmJ?2hW=ww3^wIm_eWV*AzxNh)Hl1D9`9;x3KL_t~xcgHeoKyZT^8=?vNSFCV(?}=6_9ojK;2Q zc80R8X!%bd_*pMZOqbuqN6d@um#?q9((oO-JE}f`7cfj4WHe5~w={0e5@hOyoV1lX^T z9k>&04Oyi=G>Ds;HY!6Ma(!Htw zdxp#BpcqJl)R+=~0S5@hpQ1^oHFf zCd}W@3S|)PKgH_KoAvk={v^?eE>EBJpAOGrNc8Em0h~VT=lpLqMM{~$4^?XGO0rs+ z!CwHLCg*%gnZZ95?9a$*Wd=VFU{v**qm&u^)rQx~41Q`)u&U(rS^p{%u9X@5R~TL^ zGx)a{UMn;Be`$EF%;4W{c&*IfC(eX3N}nh*ICp~iZwT!XJ#qT1|6lO33iRo-{#f(? zidD)CelChDRw*<1k2kDRX7CRIOEbp$^jSX@Arz~W8T@A%Rw*<1rx{i$Gx*OntWsw1 z|In~XnZZvr36@$;pLKqPQeFa?UD}=b^tcdz;?FLY~2LE=j^$bW8e%hK;p-P#-&n9hWU@Oyb@rOe=`Wy>P6TA9IL1fG`I z%Z0Hqm&u^ zcYwW#sgyEMY;C~aWDzQ>#@PA;^DrE-0 z7oC!dtdtr2#LMkQ41M}+=+`J^20uT)>b^>u!GEST!xPL#kWhqRfyw z05Q}}MVTShEwv~!q>eP@7G;K1_lJlwLn@7NtJ{h)L+TtO5M_qc8VJ-A5oLzd78661 z8StT$S5uT3Qn}cq-c?a%NPWsA5oLzdmyJM_8B*Ud0#Rm2{Q?5@xI~#DH4$$qSE0=5 zv#CJ{RMAD5AvM#)5M_o`7*VjU$7N2RO+5sLD}?6s+0+eS2Cx-~GDGS~V6LS=lo?XF z(5dbs$_%Mo0aXG~W=Opeg4JvcMwubF5nLWFC^PifitlR=eo?y7ByKmKb3X)C@Wx~~ z55v2N-a!uSAaAC3Krb#0=f|Atp9Xq2#4#hi&;;`rgJrCk(|Hi8f4N~t^Eg;PbslI_ zIYu1^>*umD3mG$x$HDr4Wmt6_tp9G4RvicHzu&OxI9UG!hE>PG`X4c@Iu6$VTd*o; zbsVh!3B&5+V4eR(8D4JFu5%yps4Sh?|p;BNvSH@6&kNTSw_C-y$dT+Fc zdr}Fa`!#a2wL(W~H}HGOYlV)~0QldN*9sk}>{I?qUMqB@9*=PK$c#cq@Lhxsh7<}N z@#8U0QMX2+JOR&1J(6SW9s!R(HoeDdD>2pehU+_g3k42>fg=xj4XIW*u8IPN^l>5O ziFmC%kzkZ35{>dicda}DqnlK&ND5b;@VojCqC61@DNpnaDNiJalqXU`$`h$>Vo{z5 zx+TN&>=k}Qt2yo!aw{H>&uje`>+U<#q=DmFP~jA3+-J_%Pn-g87HR<1 zpxiK_z}^|}RtdyWm=bsd$#qlBFkU^v=K#L?i0C4al~qKUX}qC(&5f2S%e_~z@rF{B zM@zNUO@-M?*RH=CAi(2>l%b>kNcBS_`wH_*J3 zZaD8Peyh1cNBPOP=)MUAj_K$k^Cx`G3X)h96_axD4XAlYWedmBm?n zMAc3hH!8Tf!v$@^+X#o_aa4rC5&A~B8)0%hx{44u1B)Ykj>l5**eV`vMF<_?bA-+j zF8A=w`Pn=Yi?BK$en>A|194G-e>yH&(dUT?>v8=Y7r*Gg#q}p#2XOrp7k9l+z%>ll zS-395wGh`TT-V^@@E*}D4(|m^#zh{AxXL3UPQNJP%t}ODGogs{LJ@JUPZ6hiBI1%F zMV!8fh|7l*akeKzA5Qcr;!ICs<%x(BLlJSAld=AWOGI3}r07Ka5fPU@DdJ2osb3QV4D6(=*19H&ij#awS<(b z(xm2$4ele7w}o=4nf!jCFA0^piIvA0%gq4ByIJUugsv3YB(z58455WW#|RxEG+k&k ztjX^XZuUIkwSG??)xHmfpnDM)u_1>43wbmEvp@Vgc|19@fBH6gyhVm*{SzBvcw%;l z4Ke$pUy{e$X7)F^f<GgHgjAfKq;x*iApE$3 zaIlHQI_gmgVMzVb`Z6A633Q1$k2lO3fy|D0f-3kC5gKhWLW5042-ZZPCW15(pozwCC~Mnmh8Z!H-14qnP~ufOnnFT@cwT8VJj&%VWHES@Siw_B zauW1fA?M~71&`7u_zaUGpB-dp*JXau@F?Flzi48N9>wIx{+RAq^NWT@St8|=!H@OnHz{8ic$DiS@=H5Tmow~d zm%ld}9_10q??;kq%-7_{Xc$LX+fKv?8?+5SjOI2uo8UK%E)tI-k6Z^HHw`Aj3M`il$Zd)QKCMMTPDA(v)t^rW34!!>_~UE3p{3 z{T57P0?sl|F@_^OtF9e1vikZ#BOitBZ4Yo3cx{e|Kl{W%Bk>zj5PwrP&R{s<%B&6H z`8oB+6;~lnS81zGTrkq{SP2ZT3c}`g9L^NLeR{#>bjyH2o6-C?{n;BTpTUh}E;u!x z@jru2-?w9FBi>o?F6^vV0k1-P`qgvJI6Tm^r)AP|Cp|k3W!l@hOrQ3%Hota@wR!gV zK_llNuHDy4-Y=MxD)4bJds@cA9(Dq-H)$-(nS(Z?DQx--WpPpq4nMi{fo6{vcHDxezrgQdodk|j z_rDx85}!WU^gVt^75r5=r+{_18n*fQ%rMKFRW)DN>)t5O&l%+}hOWb+r-33l@a2s& zt6!Pf5(nG+S+Et4?k%Ou=hmaJo%QT2!?^`dq_&jpnAoWeRXuS|i+ZjIt9qqpOW7Tr z!)O1v>-I4FW@!f~&lHrs59)r&kWk(8w;qPg;Mq4X72mjP0gseq4K(;X4M6M!{j)er7#BiudgE zd3(2Yl3Ms%eLQXNwtro^ciSG=GVUsm!C!sFo@C2Y7zgOC1hoTqB>t!ZQjeG8 zZErukapKH4!eEd3|CS>qIGeUKyeB<`d@m-;!%4jZK8ClA?Av5dCd(O%{R!DDvYc@E zxH;&};kLE+YR5MPmFxWhHwV2}XT`)aY!IVT@h&#bWqlA?u`uut6cdBF2!TUjJBN20 z;D%ccCl@ikI7V*AWgj2MY2aRZ2gWnd7n2Z+Twvf$p^_BSolKJD96)%CH!cs{`%H0s zTt2*?(wmh))d`gfs3eCgA+a7MGl_RY+5dIFUcAPk9`AsUqwAnfQCvKo~Xpk2ZLA+JzLff-;q ztrt{MfGaVoQZ*_mz*QN=YgAI;67Z}lK_vy&nsALu3S4D)jYhh-9FWfKsq5R)Iz(1$e}%VihVW;5V#7B?V42tU@IP zMu1()w93S4V7y@!Dk;F$r$QAfDNt-!g-Qw#SEND}Dk(r6O2sNvQlJ(rOD(9RxCc>S zYBkxVJt{$x2q{Xq2ocnyx5NB?7~QiQ13yKCrA(kuNr77pt58XS-C!?gs6r(Ls8_|d zpixPI--2b{8kH3IqhS>)De#J66)Fkmmq=uVN(#`Bj7qCeNr4!=TZ&bvqyP=YC|0AA z;(mE+uPWZy!6_1q+R8nA@$w#4*0{4LZ4O1ypQh=unt5PXcQs61D z>Lv=66e@#4B?VqVsH$3pN(vkRt4gR)Nr8_|T7^mq#G*4(krgT_&>QSyh@nwQpZXE93c95hR8o+uyed;cB?a9d zBB-R`c_xOSl7e%MKu}4+dI;1L5mZuexrrgDq~K2=P_LJul7bH!fuNFte=tb|l@w&3 zrV1vgq~QBTAgH7uzkBL&2`VY*hhQaQ8B|g*4FZ*ippt_9O$zg_o;iG zG0x(L3a6}tolxhFsm^$3i8H!=iqkly(2oCTmDBPgZ&tE><4R|jw{I9!C=2yS2dI$o zZo_ZTqH<%4Zxy-(5&c}e_k~0{?8v|UMFbOr#v97J;>f%!j?BB_$XvB#lAHI;Xi>}p zi^nRC7A4coWtQ=VN?2)1NNsI8k5zeO2`hD2=G`#DD+BvEBKKlx1xZL2uy+zoF=QTeld=Q zCS!dMK>FUcSs2Jj?Ie8Ybr7k;(Hpt@hO3ls87*tkh!y$9g-unZ$^_Poyy05XQVS7mYBg1cVw_c0 zU5hj$EG)BE;P7|cLaUcEizWhM36p7@Pz%HiEEX15&x4k_DtIF|3hS$z%BzY>XXLZ6 zVkvBxib;)jm;i(6uSOgw&s|5HAK%!d?o(V|R#T};3gk_BX=N=zM^>2sKWN+R|3(1P znXC@|P-XwMX#C8XtN>VBtEjG>$4^0ZvsKs(e6PePo6}fVvlv!0VfaiZU4WpPrm~R0 z;CuMJ;w2ku%5N}6eX?5)4@Q{T^*$MXy708*BhwNG^iASmgJ0o;QkWSWKbYYdBO}8w zl1p_8U&J&9Tg1&erX{Y3cp>77hzladhq%VL<|yf zN5mfyZ`6T&6Hr0NFDI~!LS zt|nZZ8X=0BjL60orxp}(ZXqJh!zubHsED}WMiEB{f`H*d2t}OiNh~pBV{y$#M4uuC zV{zgsA}$kB#HqN9?6@jP5tk(;7FP}_;&ex1ak@tl=X)aJ>Ig-gU`oQhU@77}UPPQ6 zQWOU1;gT9foXkoru5MDq+6sC+rn4L>f|gW?{9;gSsn?vZX~`s!j{;4FJYUn26p??7--Xs$ z^MR%%FM=}veV}NuHIHjr@{q`BTa4k$gw}&%E3l?U(~?Od9|fAu`)OL@6L|-I6&BcQ zKGw8^_$cPLO(WuVNbS<{m9MP3Aot;Cv1nwGG)!5&&omZl~7peRyouF#i- z-T@)yw+X#L=ruyu30)x5Pay;$ftp(BO7?0entd8FM|Jb1pki+K0AUJ93rIJO^PU= zv@a8E=9iI(uxQ9J!U9U`=FY`9wDjC@6HBWnOgz&n#kd0*lvbBl%$5179%Cr8tU8Js z9!BzuYpdthH7v}RY*ZXI_*`5ID1)(bq$FpYKkJBCm?(x@X)P;ns%r?3q=uO&8HYPz zrO;wpf(;WYgRqrI&M|akfLm_bjx_)_q-azl(y(0Q2Mr6)AiT%wX+ypF>RH4&kf zC&rfY#Mn}v7+cB{V@r8MGy*Pfh=#!B4bd35ydfF{mp4Qs-SUQL7+jv9;_?I*mv^d0 z*X5m>hn5fzNBd0qnIZSJ_L*R)Nym2aa3PeSG17#*|6N>MynNFQF3#}iV!jnFj^9l> zgNxgU4in!uZ17pDNQ?tctgNZbaCl8hCytvnF2tLBjD(o)qd9{+i-wCc`Hg3X4QKM} zi;un(S%?ld`9;IUUBO{7TrS>!x_As~B3#$`MZv{AfId0goraHdgzGZDXt=mFB&fH5&7QTBR_JCY9s(oAU_G}GQViJxO#lE=!R-yeIWS> zOVVY2(Qt9MNPbV_TTIuFAN`Jw?KQ+R7&Qz*Q`QYI_LPDsgSMZv3i%P& zX2SRz)?GNgJ4LspWM$ zS*2M=Tor!fAlsT1hw@)>^UjfYPMa10hc&-te#e3}p3S?gJXFzG_2VOwxvDtN)SjpVO!KgO;3ToPW3Z(Nt?u*;il9%7&jfMCM;W#bxT?0<*b_VsQ z(PldPZ1h~-lZGJQ5oCWxcEA(x*5LBpN_HSe*T7!+?g-4EJxtg1hZ=dCPf_5qxn>`zS7er+yFeJ9-DkGZ4tDmp~FZkHcJ0G2O`kdBp_@ zAg^o`>SK73I3C_F=*>zj&D(%^=(ljnyWMdME;kc1(xXb-%aB4rOMPz-i4SwUXW2ET$@Y2?*; zU{^C(+k*K#6<2ABm{udNxOk&j zjl7y+SdF~8z_1#5HQTTndBp`Gl~yCKn!vKu26=TQ3cMOJAg@jZNg~KAAqNrE;|B7| z^$YUq7l=SZ(}KL(VOWj4x)&^$oCJCGD7Q9E%$gBN^)yS(446Bh> zG^VZ6YUCAgzM9p@t2Dz3@`@I#XolM$uZF?@4qpUi4=OMbEZ<#&ygC>BXABnP)m-pw zI|g}06+*=e@+uo?*;ZWS6&E+x-~#f>eJ6mta^Dp}UeQ>K%10xw+Q6=7Dvi8)99~r_ zjl6mmth$LtUb$t^$gBMbRaL8zSMP&WIcwzA=O(R2UL~T7QIR$B>Ugj}K@34&xxYpu zuTC>RP9v|T8&;54HzDC5WZ)vNcB3NHtp$1YJa|>tg1mYKysBJ-ym||QOxC^}ZXN7q zZefsDNf4-qZID-P5e@Q+^9FTOgS>J}ZID-7K~~jgkXP;xF~}=+M=FLvUey?ZL0&C^ zKs^zIylOQu4DyQWdFu5t$g90ZV31cYnj{8!^@b4`bugGg#NI~A2R-?ogQjqV{W8}3hq~H>StMVILNWK1uP#%*3TS!R*@Ih8Ko03k2 z?>oRob!7}G1eL<)_Wz66D20qd4XSCY*SdqA@5~sI*(MBIx(NqDbrPd_9}5-=+C81D z9x3=!JX$L(9)038A6kFrWzJ%!vEyN9tTVRt&?kGGmJgh}R<}Ob-p2Eqm$VkPI=iPh zV>;oQGFcyR0MTSB4>m(k9=fBLK*H2YIUtsdHK4la^!M1E@3A`u^0H`gS#6U((m_FBxS#PocIUgp?o6yK|IeID7>2B=cQH}Q zmkSuuaGXq7K4$^9gi2?e3djv`H{nIQf>XB+er# z;!s>fTt%UX-)ljPaIuFXuJ%Y?a_*EG)JsCHM=%y=0wUtN5=C5C5)oI6DB^OFh&aQe zh(l}<{Z3+W5HBJQ^cjl-eGzeVO%X@eBH{`ZMI7;qhzn2@agryc#~L#Vi58LL2gUY7 z4(COroI#a<2?MbgJY~jlt0J6#Ac8NA;I~Hb8zOj)o5S-fh~Vc%@N6&P@dronE~cQIb}+++ zq^03o=-~!#xMAOjoqzS|mE@`i*EokT$&hgo)@tTlQrTP&R4b2CQh)@3Mkv&PhzJ%~ zvPgje*!Amp5GsUfV`)>_90979&RJU7P2H>c{I`cw5reZJn8&(~IO^0n2Qd~Nk6 zU+?+n>n;C$z2l!R8~(Ynp`WW$=H=?7dAUPF`}?wCueR;KZhwF1$RWcb_xFj~HCy}t z?!Nw$`eW#xzhrp4Hs5Mr|3##uGyD2QcwhM5f75+^lMj>9&609z?#RDpA3oZ?zRB+d zY2YTmjVK?w96BMIG5JN?*Z)NFxk5*`7PG=SyRP$#vai3gQ*2o7JI4H??dyNr{G#pa zoBZ13H=6SO9Q7wv(dieM`ir)&&v5`9`&hc)s77L0w<14|mf*U~FWSETG<+B6@Euj| zkLcGUT$lMp+t)9X{7id!?HKcmwy(bi->GotJ#rH{qI^f+*Eji%l1z^^zi9jVRK=v@ z*nn=#Hz{8i`}(g(`GxAq^&Nuq4MOB`4*B5%$U;j?Gf_oNt zRy~iVy=f!jph%l`gEG!8&&KQLd#<>CC2X|h1g^N=32eL`hYu`z8vED_VE?3gc~bIZ z@2Z(KqpajBmdB?jjM|Vec-ib1b}yg(!d2MA?os`IeyyiR!r3rkG1e2m;2-EJ{|fse z2kp2WgRz(YSIDN_eN`H&FNOYtcKnVSiE|3%8$I1Oto2zlrcJck*8c0O;d@{wgo9Sy z7^Cem&p`#rSwsUo@&;>LgseGFolW?q_vAz5;B1b?y;)!4Z$Gjxkb$bRR*3<0`5NuKN#_{S8iys$c`mZ@r;8@g)xn>>{S|pE9 zFGdkVYv!F#6VOV+@mgirQbo2_u}t6n;1az@fY?6ec6dO?_4Mmw1 z8B`&HXN7vK3nHV`9}(rk$S6%mM7bz33VJDd^~{IoJ6x5Pr}ym^q?s7%VWQ2{SXI~1 zMD@|U5n<}1P)x(xO%qmQwa(L#i?zt0QJKR(v$1r+q@`BvoYKa{bLKW+O=lrg+YoFm zENfPjey;O0RxhozihvrPFrFj-PU|&%ITNK$)r%@?Ju^S(c3?2%8*ov6vc&mMul4Yw z$16qh=O8CsZ;ES23?gMY*rQR;$>>8F9VfQ8OK@>?$*%M+TT^WU0|4|CApwnCt%Himhe|$d{u)uq$P=< z$>2G313h9L!K@qn3*oq1EPG^9Zj_URY;8x?}I)mZYk@s1a8RPSJaGk-7fv+Wx+zrns#B~P4 z-%1{ZFk{@EGqIEc@4bMDQsQeDn!8UO~RWR7;&#IkYq{w{)R_<#!H}EIJ8? zM31j0&3Y;==Oho+lkcH=@;y{fzK80`_fS3g9;&DCL*<}koqU*{h!59c!*y85sO>jB z4|({Ap(8St3*qe-*ECi(%7pyiosY-xrGhg!d&8r7eXIHSbonNm`S?1#$oS8$XBCNY zn6DibXK(T`@tb>^YQi4cTjJOE>7BE z7V_(_MP23>Z9d-0P8jYuO)Q%uo6fGw{G!drw@Q9{rF@ykm|wK{cv(dIcn$q$go`NO z(dXkPzfqFOvE~k>9vu%rDw}{BM$9raX_zugQ;v z<$Qb+1`4G6@R6Y|Cts`Sxajx@cri<6CyyMyV|QKQ>_4CP==Lw_9^L*`s|~!pZ^s+c z?CjTjS?!+!d;b}1(N0?CNyg_{*@&f`*zGtInON;?%-QiXH%*4jlO1;h?RlakTdG(1 zlHcxUwYSvv?K##?UU1s4)~9`bs@0BD2=o4tV9iPf#@ty}a803i)$^%H|7+N0?R`$% z4gY+@+Pw18p>5hOXfI&n^%=)0z=wa)&%1dQ!ZIdWi_pe_(@)uf<17OiCs~UQ0QbLb zeAWifdhceFmgO+fhifw?ClxLytq8LtnIy% zt<8<&3j)86wPpj?R3{T`vDPeBJIR zdkTM(<=nwP9%UERc^v+3zWC7yehywcBYq;h{3-UJ_-XKdPVWGRqw^SF!bp&O`_#l8 zkaCmL9?4TO6CVQ0$oA~e-Vn4$wdvuB1&{Ltx9$n%f!zz1piKl>7IV*c~i9-#m?a{^8fG@!1&5p}PMZ_^` zcmC_q$t@I@;-x^?E$sX`#x9P~%5E8}cM=ByO0;n;V>B z$9?o6fRN7kvs%|WueI7sC)@sy9&~oEZhh!|JK>|>!cLqs=AlnMxSSzzAK8r`*(o1+ z2Pb>`hpli8!!xGC3YYN?=5tq~dD?U2-&_%4(aU&4spcLTUrRWFr^7m!@tS_fYhBH0 zU6(FPq%i4bykW`sweHfHp$U3Y<86|N9;@7V!*c2ynN5WVe(okSLjgBtmH3+7C>I!S zSk9SleDRnZb*If5F&VirH{unf`#`7%Yfcf4y&xTXJ30^SgNT<_WkjSsp}&3L)lZm{ z8+Hr-M@+-H&Hmf1=czXY;L@4lN4|B&S2jYgAM^YW>JsaH)?)k#*^JX1-mwa0oj`dm zfi8dDC9DMT)iRhMPPOt^tKghXbxmb87A+cB4X~iJ1WaW!>`hfJv??1K>KaTPY7+;R z{;@E2<4VO;uLo;)SJ>q_(KBs(LQ&Jrl^tqRJ(eHF|Bb8a52D{{Yho zYE`kes2J^Gz6HZgrHkZt$GqHlzvnM+4@N8Cpn&bE%WTdGa!EHrB9kzgR00 zTE^u@AHq1NSI zzmMNLS$||yiui$(UV)!`iuh%fSo|VV#80Bc;xcx*l~fXbIEu=_P?M~^6X zjgh}xCSZIHt>3<}2rO+m!9K+mKpt)1@P8rSEyTY;9`BM_2YHt~CWU4l;}Cg_v&=fgKglOx4Hq&xg)K`A@w8CJ zHCr=}PbQBw3o{SrJ|x#{%{-bvHHm-3{Sq{cRo2+T`LPk<8zT5+5qwbupB2GZMeq@8 zzWVDB73bAJlz9z1Qvv38VTwlgzoqps?lK3fPz%Csvouy!*3{5;4S;0^?^V+{=l@~v zUBIg<&bHyT_sULo4lHtF3jsM8gn%I7oK%zq6bXqMLR389CM1ExgamScpz;!k)?lDQ z#Y)8%Y;B8(^-#4$q(ZfpT3anz57kycY{NmT1(B#N|9#Iqv-i$UqS*I+|L?o5uXAPR zp68jFXU&@Pn!_`pUS#_hTYOA0hi*6v)7jGLjxnXkpuDtH%kBz)`iIa(67Sd0$yvz7? zH-CHu+CrM068PnKO;3lsA==udyzb_YW6*ZejMZS>fzCM0bSba9`Qr;k-c>TMzv~R; zbvJ)}S6KL@&YwwP@%!@mVu&z|Wr?2*lB_GfPW-xi5;C`w8(XCspEd{iDm&YfS58t@2FdP!n*YdOMCmhj~%IjwEBHRiNCy26UF3VDCj z=5sJd4B3-$|JESLG;`N@-(>O*z|HV5KoxTQMY3bEljOZnOK13FVc|^R#asqxH%de`xlSH)FnbCE{Rs49hr& z^2)YFwDY~nX5hJTcvfU|t9s@+gELp$5Z^jCvDf+~iOK5^^t|bDZ_ zeS(h*ep|3cut0E(#&_LTdz};Ax-=!al{#^{(yKBLeTc5Cdb*&qPL&cwA#nHAw@H{1 zW%?n^^Zp1t_u#qGA=#W;be~Jl)%fY_u!cMU>tFDTC_tjPhtV||{v!B2qe(wSd+z7I zh)B9~3ft}<`CY&sT8Br`F~Z}etmsGZZ!$EUkcc7C)AF!l&g`v7j@l4={!ScFd;{b6Sw0ao_<>(H1iYLULY6S&^+DBQj2M{*y8c6B! z3nVc0qd1dc83vBlkJ1x2Q#rhuYCKs=KZ?Vfsj^9G{U{EP%iK&_=|^#RGu34zwSE+b zH&Zc=5n4Zr!<(rTt@WcgyqSurBl=OCTaCNckK%mG&{{u=v(eC6KZ^4MLu>sg4sWJX z^0j^xX9wsT7$3QrDzX>^)#%z2;&C$-R4iB)lR)c7abgUq^rJXbm!e#ieiY{%Ln{3! z4sWL74r#3)#i7y?MJoL$POc%9eiVl{Qz=)aAI0I#REkvkQJi^(RQgezDv*q|=tqgX z1`*abQ^neFisQGHmxBY9^>&Co-ipV~RL(t=ho9Du;_zlFMJoL$4sWI!OxGoxvUhkh z)d2|8`ca%;f~0J%AI0I#REkvkQ5@b(rAVb8#W`X~r60xl!jMWoio=_!lxL+M#Yr}# z){hdI4&VA_ss!Fl<(v<9eoAWnC=PF?VqF&fC=PF?dXCOoKZ-LK^aG^Z?bQ7-E{8W$ zDO&4CaahM$7L0zB$oKI)eKS?CPDF&%6_*u{o2eY$Or_)~{U{D^rn(Y8tslkV%~UE@ zN<9l){hdo5CQegREg?ls-%bTSoLVFA0_D}&?>F9ew3uw zK&!+R{U}L{$uazF(T|ekGLI1bC`r*^sN5C(C`o|?7yT$n!{I|cRP>`H1!67wQIgoS zs^k;>C`o}A5&bAhR~sLqA0=tNVTgW|q(xw;91;B}Nz087(T|dJHyEn6iGGwM4ulm$ z^rIyG-UJc-C`o@d4AGC0^r2yheiStgc7O>a`caZNdv!K^8T}|pyqQY9oajeM8f<)s zev~BMOm#VaMn6gtZ>CB@F*W*8l6W%}>zvV#k~9oCI|DzXA0>%5Q>mwjew3sQh9UY< zl6W%}HGl{7qan;YB=JI}jF>SH(ldC~67FO&Hzg&={YvnV7`$pJ zDG*q$T1pPY43D=s+vc{mG8O)}w`m8a6GGO%LU_phe_MM7M>X--qq zvrSL!_GUF5&pna*%x&Ip>}vY7sVO%%cV(`7Qm@>6ckhr@uz`4Wnh?by9Hr1;t%!{P z4JR#Wz)BZuS&&sJ*5J}hvG(5iKRyza3DGzbd|XNA$CY$`TuJB0m2`fP=9q66th*WO zI`QkW=7)zGD2!VK-S}8B_F%A5V?80SO>g1mVqpYdZb9dlThRIC7Ic2O1>v$sfq~Kj z!#NfXYW~k@Pzfo(|IX@`39i4VJWNe#U58a;_62dOQD!g69|lA)>5H#kGXl64Kk|p-NAo|u;@lH5`Aep77z`U# z9J*R@<_a@A5c(#jHE2i&hnBVUI4^Pev&TBTVO5>;>xtS5Qvun zb#;NzI|%=G{CF)yFZ|N*y8yq-@hifw4!_&+yB9ysaO}qKRs8;npSjkDqg5Yd!0f>f zF6zrdSnOiSdKtgL_`#SO?$^c;Od0x$!$0x00alDV zMwS3EwyB(}aZWxEOF@-+8s|&`_Tjp>#yQM@M9^G+2F^(aa$P)L`&MkLI-Q5I>m24>yoQqq`AHtRO5$XstX z>m*l_MoVbuIi%5wm~{`m@e)VlQ21yT(j6_AS$6>0VZEIV2YJTa4@)ThWEed+jFx-? zSDW(yq2VtLqgho$-A!fJp|v)pPh~Oy}zPB7YVc8Z)kR|{GrGzf`XC#vRnQoD-L3aG z4%L3wm`XM>7*=du%j;&nKWu$aO-<8+hdcTp!JLzdm{O&{gNfLA! zzwXxiS8}uo^DCK@aE;OQ1CaMEEwD>@-L3aeyHJO}NQ3pl6tM)MOL^U`_une=mUCnY z6ERg|$p0?ob+_K{%9W6kek=1eojf0dY;6sb_vP#TuFG|x?IL#NEU^TkOL^U`_dhK1 zWY}hn>|D3IlvjnjOl!MX@Bc%XyqRYxue5rM`Z-gC8 z3;{Z=_fsUhd5jOgw(;6)3NQ?5#SW(e>OSde{omZt;Zab>lZ zM_R3`|2ng^JO=n7&;kAfm)T%BO(85Avn~KbzS)Ia{yCH}}uN-UMqj&zN~#R$|!9}d4^weu`ing{rD z^S-TaZwunk`s}?vJUeL{(|7>35TA_NoHEdDjbr*Ej{;}74!@DrKFpKV&ihib@BHd> zTq_E!*0RW~))SB&jXe7~^5bX7hjKUHJ-VU??v>%WF+SI4`C`4NT2!2(+gtWM2)}m# z8NaRWn3l;v+P$CA&D+8~4EQEMnrgpvkN#ZS$!~_8@5gdLSx4-|F)`q$A@2u7>-`(v zSDW{3fgkT1tM=UwbPs7%urlm=>0|)o^E-TaCRIAKEF~UPPH#9h24i0m|_t-W)N|&3pjy_+Q zjCB3P?zio8q$BrPFfC8=Y$g0XiSvFq)0eQq?X5Tucj;WwHw$IIu^^|f)tWyvtJOag zX$tvAW3Mh_|=pDBdv+av5Jg-XXV#)wB63XmaE*)c<{6k2UjxVS7`&lUMC)MqJx& zw%VIrYqb3l*!Qj4w-Nm2S*!Nl1!Veo@Qi08ah4Hz)^>ANy9Z_9shZ?XZI5KN+px2o zAHcgF#QPkQG|Xx{J$~<11uS!;+mN?jSD)c!E^7kYmKZy$^)Sjbt_xWFTgaSziM4|~ z#4UmE--5K+i#B2JhiA3&93}Ij7J2b3^5LP+PZ#D_~zG&s_lfe~JHM*xeFOKmDxM z{;z}mR?n7N|3j;Nuid2WL&5JM_Eg9*eg;_WZTDoiMlTyM>+tO^ zmY(Rd1t>-O|?K|RcGh6+x z*oqmCwWJ(DeVeg7u5T>r+c3E0p>2sqnVgKaZcifWH_G5-l-K)Fmts(l4%>0tHiJG1 zY{6c(qt8XHuYCJR!(}ML3*Y{rVY@3X7IQa=+dX-)mF2j1EZSO+x|6839>ZN}ZFgm{uTgF7;oGy?_as<_X`8NU{a|NSJ9J?v z8CzYAt!W;wlJg1TvHu}0>jZSDv8`iU_5sr3L$sAF!|dmep?)$w_%5-yKW!M&CE67o zJ1p8t*oNoDxME@v*My^gI^6K$TSppZU;%l?a@Q=RZNia14QpUn_C2{c*UU67N1b9C z-5+fg#v)yYA&y57mk;oJ7SA|=cpOC?KZbW+_;y9Z+Vb-nDv%bqhi&GK7;AinKJf_N zbq1d8hyQ`mSvMU=n(RRs_9uL&1JbuL4?hV_JMa(UeU9V(-V;C3JhKgdY%{%hm$bWl ztw(=&*@H2V--fhfn$AEur~n>AIjBIMvkWl&ES3ZG|0{5woN5 zjC@MAqGOql%$u}dNnRqZClQ|Mj=Sk%nO9r!9Iq=Wb}RY;6)!291Cefgmu8$RcjIog z_j)dST;F}ycN@zTWu)Epoz}KUoxdz6eAlkZ3gsSF?;EY&m(M+dbj5dcvayHzIl0Md z{{Za{%lNS6zP^V~TdjxDo=-+RO&(WFMZTfUJMxCr&a!tHeJf5#58s=J^0zZ;{pok@ zWz7iBvcdYnyW$Spy~m`TyEi2bY23Cm3e#nc1@A%s!2Z8ywey{njsf^R@k5M*kl*#F z%Malke);^AO=)*urTUA@aP}T$sQ~q?;283D?Il?|9v<}Dlx?n<;T3q+3iO{9yxY#z ztHqE0<>(umQ!sCr3HxGipD8!7K4znQMPuwmy$ET)OKWkv{HH?W!M-33;Rhfb^$&Ov zrw#6u7WVb*V?O^m#xHiCZL9HqtSh-F-+fWGj-+O_AB8T$BSW*=j}h@69{~9-)LB5C z2!~%r`bVvJynblRrq%yy*|!Y+%CSfKKKO+li?Jo@#@kl=any^G=$|+S%89VXaZH5? z|H49-HJ)i@?jLOX8_Mjmn|Cy0SIU7K+cQi$Qb$1x%4pdy{W}g}Og|m&nCd`UTVvQC zf2L&UKAGwMyt|;)ZST%>9e+1tKg!^H=nu(nI|}(2JFqUlj`y#{ueY7javy#hF!tGu z^f>w%bQt^^V^`LhN3MJDgSWHVZ-)MYhtYnmS#PbcaCz3Ru%j!EetH`FcQIa(ygdck z?Rdw}f1cI;X$y2r;{E*5&^O_-+L_)nTqzyKLv5$CT5tY!T1(sH?AF7ZSXZNS+t4oW zM?R>y-a{VRD2~I>{|-al$&LHLzKW+;{{!v$rt*KTc(vl6^Y5xad&aVQ!k^V1jr2T* zv{;R?)0#o}CG5U-7~1AxE3KIop4GV{?zyUU*rxBauEDb^dc2fUaiNuz7YV(UXcyLE z%vrI#M_>OiYw;ZkEh$Hvvf9~h#G#L1yHSDX=i&L4cs~4ZYQgi@{Im3~78lw~S8VQi zi&qs4K-;3;+vTk|j&>dE4u!Gcv(2e}><*>hGD*=%6_vgj{fXCw8=*vv4*wT9G~}Txf^9J0%iL^Q{ICIi?iDQ zYT8e{C&pnd(QrdvW~E{~k9p2-5`0%HKhYQmp=_wS%klnnw>3Tu z?`G)e=4rk;?m-Wg%g&#CwR4eAQ(C1to=yEBbnQ_fV{BTYE2?}s{%z1X7<<2&;R z#u_NUi;uv5ohv$KKl*`a=<>iO-w8*etTDr(=X3_j#BX2PzVGNuYyOdoGI^salSOyc zqc39oKSAHDQ~%Dfs5g%|Uy>HgC|QD^s3)ygB9d$2X@;W}k@odeKhYyTH4NZ3ycm z&jPS-@VfftQa=05&C)ipY_UCJ+w>mVD26%kD*7?hM}8-~FXJAzJ=DR}Aua zcjju8pTl?-+bq5d+n_JdhOr$wF&6b0`fk{^b1dV6o&6NYb?nEE4nRMMFu%q7I^gG( zrfj+sebdN>0kb|r8-7~e^Y@73yRM!U3BKJKBi%iQKa6~0zf^@jZH>!mS%Y}2boCg{ zJ7+7<*7@v05)X*J_=PdO&$B*S}qiZ*jyg8sGTC z(4WVk%pQZR$%x}*eBZagFUubDlx;r0?^k|)8cV&_hF386uO~6RF3{Kr!BeoIW)29K z``rciR7! zqCaNX?{0>xedkAZ#74Sq2*f+$p^mgp2<5&3!^+5~>3lc6qw%mJUkZ=|V2k_{$$RO# zg5>)F@?DZDjg_bonBwtJ=A_10?{D_{Fmi0^}b_CXiI3PLVt- z;5q?0A2~GOdJV~uB)`L0{QzXtjDV}o){V^8s6292)ML`&GX_5^@@g{w%8=9nj>+si z#F^%K1fhvpgzSjfjZ}{-q2CK!%;A_uFk-j^A!a{4ZQ;MU_}8PHp7K?hzXhnuk!*yDFWS_O!`1+PH!il7$xycP)wG_mO_wpi#8?D--JkzrmeOm~gT zu7lk!dk%3vUoSkyyaE}KH-YW`obUZOk{2d^7yj90x-cgMLs{{^f`hwM98{T}{~L%) zQ1xp8%X8ErdQnv)if4V?6})dnr+p>U-b&ikvJ$c&gFZ@kT?pI;qtv_NF4T=WhGyXbmN8A?y5vyfpivI%Lq?zitn=l442g_ z-jnC!sVKG)p377cKM#^#Ja{*x>6;?d1I=1!^pbx9pMM6=lOGg>EoGxn%slSokKj6< z*8a(#!g?XCX}uPCF7kb3o`TdzMz$L=OFhMgM->OC0z+2y0C|W}(s^^1A*ZV39tzSO z30EizLkdneuE;s0Adgz9u+STZL@6-jrS8=0UA`ia>g|xPm3W;VkW&txC#N?>rZ8Pr zxGnW=9SD_T)!ISXds=<_C3r^qmLv4f7@PCei#3AWO>&f-+8E>Vtp)u%(m2D`*x%** z4(PW?;|$yGK`!5B&?-VW!`66?%lA{z^N~>=oMF2a^izh$8MbE7&lwtL*w%o4&4iy| zr>+D27ei09Q#XJjl@1RI{P_&VYrwpl1$oc+dNOeNa7Y~ohvpON?8w~P!hE+F+`_c`m zPRRM79ZG9q&gwz%QvJtA?LduBs)yc4J;5=@~g0yllJ#p?nU&Q z@vrxMB&vE@+v?35dX*hH9pJ+r;D`E&w|Wis)cXF2Fi$~{r%t{4K|`ujbUu8{SihvJ zIz{LE6r?JmOWmm{E}sP#%Jwv<#-)cL)hRk(Z$qk6biOo0s#A2nZx~XYqVr8Pq&h|C zL$K52C#)MvxGhon9c>WhP&84#&Y zg!=IPuW5ZE)Q34pRXZY4o7TBqz6r)%p9uA38CstR^8G5~) z`VQzj4gGB#palIr(5hj&%T7H6`X`3oV5hc$e#-d2+fF?Odat3sW2b%unx`Gr^X{=z zPk{c&&>QX4Q=mUJ^mpylFF;#J8Rh?8G=%75vDB;SO=t)~rx^M^G=!k>xvbs4hlUXJ z7(;&_=?9t@0V;W$(GY^>pi{li7BqyQuQBfT+o|_~USQ}S*r{7UFE##uXs12^nq8=p z_kf+c6*LDpivAJu2lS5({bM`zQP4XL{S!O&3DCba^j14{2k5sA{h*!t4Cqe`y$u}$ zX!cAhz7N@{&x0NgT0L*Oow^rvmZ2X;c>q1b&_6|a0DXg@A3=Ely~NOuBL6{Ss#D8* z4EYb*j9NU8BmY73TVg)T+s}~yptplo&G!??f6)63{Uq`mH2amcsO_GokiVdpqwId0 z^v{u>=em4%gI4l(Ab&tVVCYul59ptQ{yzQhME-zg7o^JbGj{4G(7y!Dy#=0K$S=^p z1I;Sxc^3HrdI8*;Nbg2^fUW|)j`VXV9~h)91+AX{Jf1%i<3B_H3eN|9m!V(4^Fedu zsr>K7^FVXxsp#LJe1QIe@&6*q2k7mF{vF~2`dLH2g7N|S51>_-@CTF+&<8;8z{iH? zRg?$NW)SIl9qBvDAhX-bVcb{j70+2k8&`B}4xi^$Ya7 zpr7OO{(}6#u=E({mr1`1`S@Z4qGo2aCUgPs}k{QR%%INVT1((E*WAO>4Z>_j+&Cc;6y;O5i6N z2J#qJECbn}BnB~!7!N)tgP14`Vx9-R(mW>VyMI*FR3Ft6{EY96@g^b{3xAP}+$G3Jj6WBE zeuVTiR9w)^)Tc@3py1@Ve7^v#l57Slnja7QH5^|6Gb*=tzXVAL>7rGlz#i;xG)MZO zUKySuAN7!pML5qq6`kXT#3w=ohGd2;Q91H2kZLqss=6TV%T|RD9}xJ;Iops6+^HCw zjxc1I>X9aagpv}=gU<_$B&UK@74$}a$5_c%!>ItgsEWS5=SJ1~_=PtVyeK_D`ZJ#V z9?ANM)ZNdbLo0?~HfT{xB2rJ0VQN^^(umYA$S_qbsv#n^aW@!?5rlOhYFR|;tz_J8 z7&k?vHj`mKkfLsmNL@q5{l>>F5vl9Iu#!JSBwE3BFHda2H)kRn7SBJyh>A$w0!9p` zAM63iKY=xg*7K4dhjlEiLk3gW>l3I(j zo@3vIAo&(r&#~`PLn=MTzF8(LzE_YXvkj>~Jg+xop8D{dYe;;Jp-n3RsU+(U&oV=5 zJ;%vdwY2KNbEhTVh7a#VrhY&A4-N;P#YmS4A_Y$c;XB(y6L%oUz{I@_$YT0Gb1Gb2 zrWJB3yyLxEQ9%-)A!oZrCndNNU9)4aL2^e2-Ka%5Cf0RjBqls!aacVOO>>+$dvXxr z9zlW+bb=%cf6oxX=yc=Hci9flk`Il`Ng9YJC3tYWoD7Oe)aTEWQ2(vqNpbk<6+CF} z3mhqz^XO*GXd3sQcNWXWaV-kF*a6Rr5S>2qI!FMuX_K zIOq4jcS^l0#m#4Wq<7R6i|T7fK|+`iUJpBJer0u09W;u{9{XZUM1&A%MLOtx<~fL( z>dN!W=c|*7#(T(nQLA^#PP_N2+@_$}xwFZh z>pf(T^VY>c@yW$5JHb0?m;IUBJ?o&$(@nB)18)(n`7VLJ(TOMUwP8|@Gf^+@(J&S-uj)b_DxUQ(NBB-W~V-F*Lo*; zABK~C6J%O_mJH>kuUdo&0y~ta0S?jLjJKclhm)mjP?RcrPKEZ>%OK#iw%+6nU zAM;*lS9$B)BNFTs_XrmrWMAT))MQWo$88a|{n>K&Bv*vnlVY!Sdnb9U%WP+cT{Gjh zTN`tl-Q$wo8NIw0y0d)KE`R2D6EXz9+@_r;@Ek~}_in$n$y=Y(bo{g1KJ`A7+vHA5 z+PTYH<4!xv`&aMeZ~ojnb=M~+yf=FvZOXOtpSH&!qaT4#?}bg%b5E@N1zz#9rjy?H zZ}Zl>$0d1}dYA0nd25p$^R#`_DyR$h);!Y${&Bo`ZY~lmce=YDDjF*u4Vp(~y0{4s zJ-ad^1mVS4&5D7`DiOy3m{4hfP&18{Rh$NT7PKY!pXcdl@-?76h!5BY27;A}YXHoG zM4foCtve674KV_(C5_9vDqXDUdLEdp>0%A6Wms2f@4^3FNZ(=`>5EtyVO-Xg4Pp&G z@JjQ*6EaH;U*>^(C56B;v){ouT&aZy|926GHv@6FFA#^q2Rg-}(8M8L@)*n1$zmNB zWEF~aa3E<4O-!E;#I&$;Ogn9)509zKy3wQ+6}iwr)4PeMxp)bz6X>#O`r#vj2CV5~ zrQSGUm5BAVAS+FBHJI+R%sW3C$opBZh&2QKoXEOZto;JXFv}!ETaaa}uVCasgTl4j zHbgMXW@*>p|IP_fW)gx*zG$Ga;{ma545UqgNt@l0An;|$TAI6q2xcFSSHr(LDn;dg+VY4d}&MYf9KpU4di~H z1Im9utZ{(?k$lbd#oxq+w)B1J*dP&JMEb#QJ8C)h1Ti6TpC+I;B|`C~x_u zyuB1CZ~3OYar&JG0Zn;37G#<7<_(mjd{f>w23e-Oy%}V6E^qm!ygd;pZ~3OY@mpIW zVanV7Aj_1uFM=#n-UbHBTfQl8Tu&ESTyCcc7QuW|1WN)%Fy9oxmx3(QybKN$!F*FH z^Mfo?DrW~-Wn#TGP~P(I6YGv3%M`&^0_83LHL+#|%3J=$Vhwg2`TBK&{~M)nB}+-- zAjsHFk%D3;W1TC7h2D()r9fGlZ>;Y~DWNxG-ybMBvyC-5P)x2j){FqFbdp%t1X$M_ z>#b5uDBsv02o#+XV|_lry53m5Qgj&7*y94lX|}NjyZ7s}#PuafeTFo4lMN{P#%j`< z-olMZ?2?e=G4?fqfv^Nn?@6h8E#kGc)^9t^`p{WdfDqL@@ z4FT454~TVtfOTzeY2i%shT>!fNTx08;!Den#Z4!I&k+6m;QtIs6s}CuxU6eui9vM)3bYNk6lv$YotOTUgfzlJ>fwe{C~ekJ)^LcX-n_L`ERo^~M_VuBLYnid-YT z$`gT(<{D$&5nz=XYg>SIjjH3Br;ssOxR(vm^=%CFhI8%{Yj8j|$5_q4tcw9zgERxT2AYFT`TY$%T=$jK&%ovG zFVz*uDdhj%JF$Y(fM+_nh`XdJEBu$@DvnF4)HNjjS-fbTS6nHV9H>$e7tPQF-=hwf zmuTM1`qG+Z##d=oF-1&SR#%Ekt)R$@j5_F)GnV>Vt7>XlQB@VLO@UqzJ}X=cVZc47 z3ine%8=FPNV6{aH7gd(>0xN4_QG;=s6~ZmA>VjKRT3cRITGEBfqM~J(J}qH%d4o4@ z!+R~h=DMeK!(=M4x;^M;DgsD>s z7_TY3;j6Ctvg)d8s~R)6Q;Vu*EiJDrF5`=;mkEh+QDtTIQi@tyUQ$;U@OSl;g}4&t z>hij>>iW8?ifYP>=2e#FtBUjkjb(IzHO87k%nWOKzQ`!6uBl@hj-KGJQz`3LgmrlyxJ&$i%d5+4_2p($%8P1|W%W#P z9T&vFMCS5YGp&ZjR&8D(;#amvr(|CKRBg#F;Hx5S^QQT;3j!W+;d_2f=@K1kUj2N3 zc?r_eh%gK!M+vkNm6lkG;Mu>RsJsfoCZHZHEyGo7{`nB2<5N|;SmL96QajLMcpY!m zE-Ec8F7p=^*Of0pX=4(oQsSRyiiuxmyOlSkpn!q%ifZdF#gp`nZoDd}v}9m$Sy7FO z#H`?DaoY0&OY1k{8{=v^TwtUwi$l@%YX`=W^$q&?po>pMFGz;eJn^tFSnGrnR^x;V zaTSnPHP2tGGCJ(4I^?~HN@d+5|H9IR0kTL(%&IIxb`&i_>Ei#Z%d7Hq)C-Gh7L=;G z>z}u%*2-7)*VJlFu{QG(reaGycB&MOsli%Zr3z>5#if-+%SuZwE-fyvMX}bE9i?bd zbtP(03G=B|J-@ta0aEaa8eZLmG%6`Ct_#wv@0Zlpl`mvTt_pdIO5vbOcOeSPYD#O% zsw+!W=|L%*SzlCzCTVGisD<@@7QdO9r~$L4`7fJw)lC1a`kE!>OR8&Xt@-6OwYXoY z28vGnMf33jen>=XEK5L@r6{N6RmHf!3Z=&{EupovsAdsfOg$AZHNU*FavF<6pkP2R zZ;OW+@x4*RjVXZ7Z=W|D_x}WiFE{(SiNPC zIl-DbWi%=_-VU{Zb}bXBO$Pd)+EQGYSghGVHs7`Wnd7aJ(#pD`%T(nTPQ$R#Q}5YfZ!TYgMXofek&TvZ@zWwb^32;r29D z4uVfokuv4s%iPMV*uz&<&r&V3X*yKqmsYW7F41K|x533VrA4(U3FSKd{q$#U(o}Z! zC=7~t>6=NJS*ls<*pN>zs#!Rtx*D~Uy|SfOddXCt`7rHJ$ik|;D9NgA)N;9OYt`nf zdW`X$DlKJ;tXkczh4gUBdRaC*JFAwDn2vC)HM$L8>!DMN0vr73?JNkJT3sWZYlpYd zPem=pP(`(js+=J6##*(Pm6uqxETPuIayCFEXq*ddkMy1Ot$~|%VfXy zMY4#oRi%dKSJc;8m!aD;y=SfJKA~CA^arL7B`ahAY+i3#P4&VYHl&cpyA5lvm_Irl z30GWSBexx5AY7;KJ;b125~Z*jHGV$FW%Ubn#i?Dka9(vKgmCCAjSib~6&>B^21iBy zy0RMo{A!d)HTY#mP;Ldsp%$FbtI1$P^%rPpOQu$rpkK2PxExip#JX4}Kz0j0FW4p+ z{#ltO{B%JR-b|!~`#*-wFfY$^^60>K=X)~=SsXdf#_Xj#4JWm!(6%pr{qP(6`?JPxIwY6jXg zJbjjrUon0>2M3WBck%Q6VYtbeEbh%6tT<{rD_PvPD!zD*h%6o?5*ClYk;Std!s3ZV zvbe)iSUgZg7Ps<>cpkeVi^n{~7dNJo#ht0b;*L$SxMfpV+>A;VHJ7T3CKf$WbqWBuvpE=nvb8z;x1^ixW801 zQ&`+*P8PRj3yX&m$>OO*c_PpDki|{f;)`2>$>LsM@nvzn2Y(~EJ_#KbBe?+ydJac& zRTI@_Bo{n!t>s9rg`NxKGU*T?S5V1c1cZ*ukz8aYauXF~kL1!Ubg_@T7&r(x0yq%J zgKzu?t^d4d-UP81v^I9QMe{VC5S$V2v||04Lh;BN(=6Wk&AsNjzTzbE)@ z!8-(32vW}gBeJ1~;;1R)tf^P`EEcl$@PQgb7w+gb|r@Re<%LEq-&KJBv zaF!r+yQy$oj%N4_!I6UJ3PQ<@a!(YD667&ohC3m6Opu4#$bUjeu1a|E*mp?p>OJ6|wWu&*HZ8d8o|@So@>Nq-^; z9aoAzDENlp%Yx4fJ|oD%9>YH<_kZh!Ht4z z1#c6)Nw7wchlDBLFIXs;CkP#k$~{x?e8C}teFdrMhjLC~JVxZW`vw0f_&Y&fFHHBR1s@UoiQs*L8wB}zPXA_nxkTtHL4NAdovM?FS%MjY z=Lx0?_7;p6^a%b_#-;xdJR%6ab4u8DZ zTER2Do2gLz=Lu#DLP@HU#~sA@i&Q7sfY6tyXdbp9|D=rXKNNgV@NL203%(%ukl+sm z?-9IHuuia2ut<>GWcWPZX+fMIc%ERYAi4?V4p0c4jSBY*z9~puN|eLt3F4!ITLrfW z^81VK>jbGlf^>MfSS0+}g872e1+xUx1P2QC7K|4>1>uzckzkwPe!=kauvhrI1x-2F zBJ@VVb%M=;je=!@a|LG$<_k_2%o5BHOc(4e7%%7*v;F#sY?>YzL88IYRsQk;a(L-09MvG{&mt zPL?60Irh%g{?8}PZ;Z<|&Gv|Qd6_#+SPmV0)0sO-a!BKw)7&X?F@p6(99i#a2&9c+ zdXZ*&(fkCz5NC@@5<=;jVeZ4j=#nt{$uRn%FnP^f`8L z=X^@2f0_3{C~by@xsL`r)W5W6#ygdGc5weB%>O%Kv@9rh+B>J$nL{_u`SqP$+JTpo zafy=4zaj#QgWNOa_jB2@xWZptR^eYzUsO|K!CFd&-qVFuZZ5WQZ%px`WfIu9brcy` z=B8BbpJFXP7U|*BUtU}?UjzhqF{phM{zY{rUcvQLM31Yuh>%`mR*Spx7Jjn|D~>uM zh^yXzphE~#HX~>r_L~KEnHAU9RnIpulIP|X`0J{%ucf2hl4?KqVsIr|i!lj+y&4^T z>di08qrCMZ?kPabuw$*LQf*`DnCSD1$}6ql)oK$m^xbL`GA1bQgp7%T`g*kqa=+RH zxnOOA+^{x5u2`EOcdSh?m#n1=V|03uqaOhd`^m3+&)VoQV*F`Fda&#z{| z{_ozi_Ru+$f;JNEB8{QZ3|jo5Ia20K?^!bkj3^JynKdE}%O;c%VKowr!98Y0bw!54 zzFPmq*@f9b+Q>1SGPJv2X3V{4-QBZhl;FO5VK1SW=OfphoD%9$+;!#t|L+P zkGDkNew3N9o2Vyx1=N=Gajm{LZRzgJVK?v29OUuF7DHX=WUsaOA?UUq zaK{psnT%cCVIlhb2jM=4XJhnzXvQ7G&*VY3*hy(i8#7H@>Q82@RKKXJxvgtwa+h z)UEknGu6EV7z^Tls;tM+?5%qp_jwJf_%y@#J1BbFKgGQn^nV(6M8rbhHQ&XH`?ywL zl+!+3^llG}&cZ@@TFao+-I*plQhmcJ_&J$stv~QXYkex*cxMIq&EQ9Sb}ySu9qYK? ztT%MBe`Bb%9?j*tPZ5tVmi8a>IrM>Ju5f)$#pfAN$+WlvarO4fYX8kmI~&~4>3;zC zjf6gHI{e|TotfwwlHq^!OJV+9(CZ!Uf2HlsHN1n+JCD9Hna>!MU?rI6828Y455PSb zvA91(r6b~YfO)xMcV<^OyZ<%sF_x|E@JdCv&$6vCK&{Gi*rme2Cl{8L}+pq8%P@hKO)YY#g7 zp=bW+AjIX_sjfeKQN3sDXAAahJ>}oC_2kuiww}0R&(?q5yk{%#PGmgpN8v!)!0@Y@ zTT~_!LX7%)a<2u)o$6A4=xD|r&}4o;od$DJh{kS4blm5zhTK&o`=d6xhwu|W0zaF& zJl#V{@+-$4Pcn_<4E!Rv65$@n`8@ZX-iRg-@ceHvhIgiUrqONGW>6@{&^%1?Jce{5 z{*l)O$Oy*5Gl%pDI%mMyvm`)XPv5t7^c__OCe0c=nI`H9VVn~5+|CfUT?={Kc;dMy zK>k4c@IHZHo``5ZaR;n;?<-*4P3!O&I!1V689c5O|6Ep&cstMe9PCPvwoS4}d=K;JtuGTGM(gvM+MDEUuoSlrB5e zkFCfo>V|VT@KIzo^^rQ9lX((9TPa<37#&3_rOOV#WM8E#w3cPKoEGDH36(B8-!i09 zy6oI-NTqbyp#}i;c3SCjG-o-s<7el@Qe;o23({7-TL(g=ShaRg_MTRJzXW@vvl}69 zMe^H9>9X@2$n_+((q-or(42C$(`_nUcHRQLjr3@xblEuwT17}JU3RE-Tc!6{rF7Y8 zH?&r|>~I=Ixof4%&RL*U_zBP@d5+5&WN7Fsgwkb))3eGy^c7O+a`aPROv2C3RBtTr z;=LEFNSBv0I9^u*C$|&V;a>t%CGlR^dSuzN94;o1u$9tfXNn<}(q(75A(hf)=UPK5 zrOQqg$h#R0S5?6eqCDP4BHZAhhb*}2z{O6jumV~|u{ZEK~= z(GS4RN|zn3 zYpJkG>9VudkV@&YbDtr#(&gyQh{OHh*(=n`s3Hud%fZ5(4T9xGy}l>Jo~k`5eyDwv zmGl<+-*i{R5a(K0n2ixi>2mVAh%~1JEM{edQo8Jvf&3;(t#sM(gMNy%Qo8I^f@EGs zXr;?eJ!ob?gjTxjG#gqgU3R_=nz4;QZGzHe2bbGu|ENtHKyz_Zg-31L2>NG+)=HP1 zU4}+&+5&g#cv1ef(q)J0xmj`|MCo$$_Yt|1VA>O6b6_=vBv3HiCPm}Z``NcTTTR<} zn;ZH#o!^2~l~E~Ob`BU)DP49x1-T6`V=JZ0&iSw|V?|U-mz|v;D_BOf(q$(XPV9qh zt#sMp`U|6OYo*H$*Jl*1l`cDMgH$=uN|zmu9WK1QWah+U3Qubt(7i2TxV78TIsTLzo8#dN|&8h zLqDpNE<0}+`Z1++*?G^mz~Eza}C_qN|&7-po>UrrOVD9(CYcm9Uh%=vS1|W#=29RhRGwrF7ZhK8n?lX}_wJE<1@B zv8wpJu9Pl2eGL7EQo8I6F!Y;B>9RA*&|2xTLme+F{5wkNvcvr+iq=Y(9qvz|qHS9% zU3SVrQ?a%!N|&Q~b3{Fu?){0kVi=vsF@Se77*P??-vxszQ9J{px4`-&t>;BQ1nVDZ z9ny=+Q8GLe9jdP00JbMnHHi0sq%Y3}YM8gjkV-kN^CHNn=!!8RMt$#sWQ;u+1SY$j z!-iDKX`N3@Sf!lS`OJ_?Ij!?ALn`I8jvLWY&sEB4ok);MvQkd##28X5r;Xl&IGhC@ zl+*qfM)t9MbJgh zt?SjOl?_$-njBR53gxo46B|oWNQ5cKAGh@zCWq^DJjDe=0)JiTSGCSWk3wbnJRbBP zSzA*)ipwKbn4n@DMup}Fwa62go;R9WL#OPE`3)&5SD|hdaSANsU}cEsR%21G&qR~fBc(;A#9+Bi-;$8ap+@0Qs zcQ$z+{`s@s>Pzh&|9Hl`bdUF686nBn6v3X)R4i3biAl%8&ivnI|8CEz3r4$-#@I6X9zej23 z_bBcB9;N0z>H;ZQ8vf)gVayhES+k9`EWqNXjt-_$s9OY){>@?y#+ysZ9ZaQUteN+K zj-o(WG9H`75BG7{QtZ-od|g8^rTnB$xJ;!n^Q2nwguISfI#I#Q00d@2OT8;qXFdq6%8Pw)Cl?iA4MSlPb&fm=;J~w z5LDh3P@(W2Jt0b`jHm+ZT3rYngG$5xCv}JX->F~%idhzlRvHLRK+;OYmEb-+lN!g5NLk`y+mB_XEe zPVhG3$Bp`OSj6IT2GanBb1(?0ra6SgiGQ*oG4w1!A06C}4H8-+20WPvQ149<4 zV1&ilC$c#GB(k{BNETNbg~j=LvN)S20SAgNPPYqdH+;|+=TwEoH7~L_%_y=sokbR> zrNkFkKgi-2j>NuRd~u#kd|8JeBp&CF9|dBsOXYTrbG8E2xo9A^?Nn~mIHy_ow*avn zsEhivTbj;bN?^>^%i7R z=mURDJK&sSNJ6^r2Mz@P9gTBd0V?@GoJX&GM&q3AK!)F{an42{{jCAwTzh4+#yO2Z zoFlKiMdO@tK&F4X#yJDNWl#FBcJ|>ZwYddmNb{viMI=K<(+hiAeZt< zX9;Eqo-No*Fh-CY1?c~8_(yzK@HN4g1RoQ8Q1JVL-x1`pH~u1<1f?oQE)rU=@LQ2{ zgf0-AAvj7<_IXFf3C(=NU*us)hXaDI3z~B-&k4O#@KHhL7sG!~@NU671Xl?z5cCTc z3g!uB3uX$QFE~VyTL$?Y)D4BGk_rI|Sx%YP#(bMJ(%#IS+)EmD$Iw3@9f58vUWZ`Q z!FJK?&3v3RS{Oq=O&U#uq1mMKJcHSL`66jFX=d-_KGK-sHG3cbL>ldf*=u-^bX<@= zLK+*&%-+F&kj8liv-j^a(&*1T19f~sb~wLq6By(f!*(i^o)<>TIVj^@ZSn~9Ul1lw z@;%`H1atB{xI_#tmY_IR)(16;b&+(KW zd+ITuQXA%#Dl9D`)Tv5ur`N8X4+rS+)&eS<3lR`b*H@K8?bgDKP(MoHVtv&j9B7bv zHO0APc3~%9n356&o0vuO&xh($sP_taoF3EZsB~guXc+33O75WNlk@DQ4dD)fc=M2h z(FlkTwbY>)>RDcBobW=^IP8qT=&@tfnSjw_#|g@Y{;~SZ!0561%)sce`pm%Sv6vAb{~^I2F2j(o)5?vJuYLQGJ*2}`Ur+T9`N5jAMjT;UNDVl zXJ`zKX64^HA8-im7Y*g1sk6$^f#MHqP*x+sn6Ek?VB{G8C1|(4%$WWB-JK6G^0=l= zW8|fy!$*@w!{`Q#k=Nb%fN^M7X)>gNdP0O~uKM4#yl&11REE8u(aZi-^13@8@bAj& z?tFlew^-iS#BU4IPgq^PZ+GVd{)~QyW(4{_nmHIS(QJjhZ)j_m^13@85Y6u@7^(%M zS&e~dnCVhpcjp6!h`a?7>c?j&ue+O zx=`c^N$65ucjp5JVPH!$Sc7%{8Op1|EI}>0i170PmxRgt)fvj`?tDPG$XhOj?eJH~ ziE|+YUzA!#>6N zfK9hVBw=_K*rU9)Ddp7Z)Aoa>PrDy%uI!gMz!g!k4O>WVjCnV>U!!u`Wk*ZOytrR_j^CzJko*??IC-&(xmBikA? z+KnIVz}U&|9u>#%Zt>V_zaM-46BYx#DEK?v4!$*ahaF)h z9Dt1X-YVWP&vM85tvD6l1wRLujovXDX<&J+gvp5=!>3#Ev0aCc?K(X6-M8TRJ>9O@ zkEdQTEZ&_E`!Sw7z#UV8?>xqT z*7}c;2aMwZyYIGCcUJ2`JANC^myE7N{M}Y#>p_>hWr~%Rc{xV=qZ5&C@z(l55!TH6 z|8;u&-)-+U#_e5KOvQ_j-H~$Yv5hGM&b1cr`2y!T5D#=q>t-Mx=M3|1(q{zD+I9fv zFHl1^tgx-oYvZiKB)m)Ximbb4AfBdtXAFwj)MvGO{bz{Vl{eS!;J*Gg#L=~^c88I3 z5OPqBlLxuY`HQo*kw@9dNF(T7nfYua%01G%qn|#?5B3rzYA-~sRHR$ z$anrALd!t=qRuu<$NOO~+Tw>$Kl>sr%BuR!>V>>4vwOAdy|FE00P33e%I0g6&$g1< z?S9*^g>-Q)-l=)WTPfIykrF(@~_F?^ssn%i_>MP^dmXy`L z0_P|Aj_>1r7PLdaqY$S=c$#PG|i7M;oB>CCv z&Y~+@>Ik%KmirQRn)aP-t_XhQx~KI}mX;q7Rk?BO~N~97aT%pj~$?Y2A`fkQM3xp4elO(*t;)IN6?!{lIPCN z0{K0XR1KhAUnO}VNfq`aY*E<(G79H+#3hQeusTc>HJ-R<%z(70Ike_cu=h1a6NXc^ zG~PoREwg7tjZtG(!P#um;FKthyCQZk*b7N251c!r;hY+cdtux&@PNl)ta2x9w5mYs z0)aM&=e;ISb$B2I)PW8M0&#YU=9mezSj#6F46dGJw!>J?W;nWsxR_V2o==h(PJ2(4 zzeAa$J%2@R+TUn>nbu+S5Fe$oX{5HlL%y=ZlJFS*c_I?&l*E6DEMf_N2iNOLJVv_* zaf*saK1D}Z?E%TBVdZ%g`@G~Bl+O!j9ny<)>lyY$-%*4;4j;DKdg%KnNcytX)witzNN_dYy^IN4<> zB85a!h&{?mrl)@Rx%(%di?YJWTlerJreop-ppz&t@e-CITvC6oljO0T1Xp}yU*`bz z{kenp&i@Z>V+`(UM24C@jnT2LD=~u>6LRT2Mt!m4tkFr_C>ci!H$nFBhy{D(^}ffU zaXCo?;kRdSYbA;or-%}Q`y|aqM!l^uIds=#hfR#W@Xe8D1@~0;)_W@ZnC+4&W^<*g zt#0dwOu_#nJ0E4@A#~$ofQ4-S(mjnAa8F|&_XwB0%sc6hXL7NZ@%ZuMAL2fDPs*pB zzRlC8ds1+C=P5hqX>a`}mw4;F7w)>m)7QSpTZaUnIz!0a);~aI&)E5iJ$c57XIekA z%VyZmTi!|b4Kv(ny;kJj`cdvDjg9U0k{P&?o)^>ieA@eXt9R=1o!+0~PWskQ>;`xS zv;O!FJp7mTvQ@`%@p;qEColVElfCTer|cx}B@9Yfo25%n=Z-pGA?Vb zv7QQq;)H((vsIk-2E23<%*7EJ(``YpqC@_fEwPPKAb5YHu{Q_GOG!T|C&BdUlw8(s z)F+yE1YOn*ni2fZRXCbpmX?_;<-#A0%PP~B;C~KKXc`5(*qD2cpq znJZw*t9VJAUxHSsOEAK=aCE#>>Hm@&L%!sKB6%13z(!YW2CC8b1)2N1u#3aIFRuJB z)~bTqvhw-3@FVD~R1e{rv>J=If8>=eDXqlr5L|3jZs{5NlIo>MzVfPB^$U4d2yc4o zVmm8T8!1T?yqLH8SvOi$d9#?*CX|k{@}+JaQMN-;9KR4Wqh5|hx-w>82c7xDI7As% zb+fmG_ARsaemwfA?=P=#W1YKN^lsSwnsS=DYYMLl~8P(U@n@KTY^ELid-P zi60C>)I?RXl7{gjFnkXRWzv~QnMC@-2uDrodxgjSC){tseJ9*=!o4QEv%u^%F?Szu zf5~=)c@{s+(pc}~cM3m_e){7#8o!J2yBfb6@#6>?e`>TVn-e&GCW`}TVR58Q7Key~ zfiN6DlEnd}_~O`_EVd}J_kp8QvN+V*#SyFo`5m_FPMU`Jb2yo6jKum3q zWNS@#?zJEm3MK#^n*;8L5M?y2mHRc$sRSZYm1P>|To1$mpmMgxIc{_t{2HVNqk_ENf_#2W6Zug~v%nomtnpoHW`}vo3QLX|&B|UF8PSm~=JkBJ)XOjnAxWRFTHwfmxRT*jGi1uH-ynU!sw2Q_hdlOl|DnYH6b_v z^4IbHJag`bhixj^>(~0H13>|ofo*jDvjxU$!6MOV;nHS#V6c-Y+mFUGEndldks*j7it~1;(W7{Q_gs z^?rdd6NH{%XxSeyk!>XR1IPluTII(sgY>cEGbfA%bA0+}@W!OmVRU->gmL2r4jemS z;soUp`U1H^xD4rwkt?o&#n6g66~AO(z@w;7)pjhx z>J5BUd$%YL&49HVb&rUCvXNkn-;et|OKXZM$7zn=Ux*DS#?`Wn95fZmG@?yVa)d^c z(!qSyK7%JZ_=X-8)q;gFLrAkPpu2qrM&4lwW90F=IEiOybdi1~rSs|+_`BO@@I7fX zszlyGWNwY+Zj8N_z*jlE!JD6hMH2LGu#TcS;D~BO_?2Pj$H^1UCQfjpTTERV522|FP@>i?)Dkr z`{4ZauDk6CQW4f$Wklwm#Ga-Gv3#dn>{ zm9=YN?}7bY-huty@dNv3XAJ7^K4gvZLw8^c)-bL35&i!^_TD_cs^a_~pL0%@o8%&a zARu5!xGZ5O39Eu!5+{{HAB=RWhEne&{PIWu!+dFGiE?KdoW zRTSK?E{XN#{DC7>Lp&}A{(UDEG_CdclBcAlBtPKkn>=|^@20-j6f{NAehuunfA!ct z$$ejN!$qg{al^d;zvxL#lNm1BLbyK3bz@VKJ!go6mn za7BGhIP4Yt-b8pj0Qn7x;^SQ3cL}2cFdnvOsvxt5egGf03mz2}OGY04#O|UiN3YRQ z9v$R|SkQ<8yU-ME#H#Jygr4kI z@uBJoMp~YUUpjHmUC&8+s2`ZH)wz82i*^)NB@i=hOv#5<0pk=-jR&T}!@Ue1A{I;K z8>evkNFd0pa4%`ymEmHm4gT;jDdJ$*Ak3ujFy?;tpj~5ZA$MgNKSM`~Wvoy>eWTbz z?(>UNfMAFrb;k4{CjH;Gsek_>F+5U=RiRYhvn2sJBREp9QB#**fhOrzb*)~y+I(;0kWx=8^YAYp#!SvWRpyi6f;U=N*z z<6{{w&ZhB1Q9tY~p=QpD&4zpeWrVNTw3x4=n>ajR2D>Yu6IhPGFfgyOTrkJQbmw@P zROZa9+Ul8_y+1pVr{n#E6u^ z7Zb-RW%`BliP1+g{W_+T^8%({Rz-}GX8J+Qcg_nKd^IsDt?AcXON@B|(=TB@o{|W? zeTXv+v!Y{2e#rQ^?Mf0N;2 z$||Z4jSv?Yev!tJoT8^Gbcv#_vM|#&zX;>VTSCh)7zWgGMBMrX| z5+@VC$B};$^)}-dX&l){LLU%*_e*+tbZ%$YtxbNB#*rQP#ek7})y-@;TbefcMH)x; z7JjB};l9-{(Fk7(ad!!c3d|B8?-T6n+bYNybU|k$HDq)9~%#cyTViId_8s2Kvx! z+jz13;*(;^F>LKOZON-2a_lW%IM$XgA)~%ZB`q#}aZL{`Zw?t_>hW%NG6(H z?%BEKqQg$wplj@|kdf^IdEKNfc=~P1KR;1pLZDY#ck=^-i#aE z%#1WHWUaOAM*j8W>@jDuq^C{tg2k~1@c#JTO@P1rT z9gu(4U_$pDX-UqgsF?L|iRF)8Oo=`MTQmkW|94?E3Y0|$hjTIRa4uGcbL=75Y9W4q z*x_6oA7OVe*Fx7^U&v*7KD*BDo8&q3OS?DJyM|mziw0*7!JE*v6?A~S zmH)pCxsD({Y%y8k`?_(XOfa2T*~N+D1hlC`$GTpDan>@yZwuWabemAhB7;>78$nXG zFr?QDT_vtdD=LyXbdX`YOU-a)O6!ShB^K(vj5KYldZ!xYKM~p^wEd#*#ad8}F z@Y%#suBZmAisLxFw;W7q&c~(qmJ7awI2L=$1+x-z9A)}Ji-_^fHT{^S#AxSCKV$_l zK3?X#&wSuG%HZpWF^)3d@tcWJAI*38He!72%y*R0Fnt?X^`0(?8llnr*T&F8Mp$JP z6wN5Nzy#L$1mo4~@f7NWHtiixRYkku1M7Ul z>wJcfdA=WI3B@^JP?TF3jDJpe-k2FLnwxUju{wb<hmC+uihSzT5ch z$INh;yIrDwgt`%CB8|@sKc2!tW8yar`6o_o zrZ>{~Y=QLuzn1bh8f^znF8Hl>t!?s)G(MXr_nYzA2nuktG;Q*WG(M{qe$|q=takE? zG(OvBDu%@Asje*}2NV{+6OYdfzwzIZU!?I_inJqrh2Q7jC4Oy;&nAcQ>w}%|W@gDYb=0AnKmCYE-HFs1;cVH~n z+)XudFJ?W)gxEW|YaRF*MzU^nWOH>RNx zab`M{<^Lu=ZeFq)xX7%1ev<&6CjNWyOg`(tUFw?ybJRD_+t{DkP0c=pcqAg8DKB8n z)Tee1#P#XV?S|>8s^PPjq8jc5wGu0mJE*!_{(*DO?8K_%e`4S7zp!u8*XzES=~w%2 z{Wr$8+%tN>gEdv~VqU#yCr;18-q|di>9#k%Q+?ExU3*4julC26mo&Y+y-)I#?S1P% zf&C-cabAmFdyU4uzjz_F{^R(V`h`1E>)(F4plPRPL~_OzCCAcV?30{##?s{UEBYP# z*NT#+L)ia((375=5BDVa*PKzETzz@Tu|(k9_$s*dJGM5hDtUz92Vs9O3VVy~=*5$; z_8R?SYW+v?(e-N)zmJj5PmpH3&(6QVGhacRuJbHN{;l$V^YPdP$s_Hggjd$8W4CP| ziTKxQ|6joW6Y;N&SDi4H@ANUk+-oN;{yX?%%-oQwx+e5iJr}1QIX=7Z6;;QgaqU68 zccc7q?=jQO{jISp=O2q%>p%8e&%)%jX$zAF0KWqJgJ}zrk%v3&xFyC{Cx3!G$x2Z>d)v<9LXvaIHa}m8@8Tw3Z|}=e=z_TKoQ%B6Mw)(ud#_C^NuE;I``F8#;^Z~plfBY+Y%lJ86nnL?_dV|| z?k88LF2+9lExyw?&%{|7vu9zi`EKML#t>cThn4KvDPC2-DPHAyti?5^J%RA=um`jM%wmcUT0u5)@85tALG1^@~0;Ir>Lefyss}& zCs@ZAmhHsu*D`V5UKd>lJ>%vjvo3Sr_W1~#5?7jxX1@#L#I^%#Ftb_b^fT~0hReR* zf6T^nvXN%RbmIM_f@a~lS$J+AJoooVH{T)eofL=mWNe{s3q07%%xm+Sxq3hIHHZ`A z`}|AR&I5yADBtgUq5Nd$z9Ap#esyFYhhMuBhIKlNI@0hD6KQVh$MCc4XZSn7`VHE8 z`J!WbMEV|>pL&j!F%Io2;mQgrj&b50XQ1S5`We zz}<}SF@p(5{29NxZyk*{EclP`jvh{!!6bac(4z?T&C=2Qd}7Rmz#T3J%GkPLQqXme zo)v%}0>;b@3w=?*`vTk^T@ZjA5=IvV;46e>0r)LpWdJ_LcM$s)exjm0d^>Uc@i4Dr zKZh%hrehLu$OS@p;^~9~>6i)Lf8eL13fj@bI?3c;PSOvwS2Z{}=y4|p)J+s+~ByujN^~?OG?}pi{Ei z@ve3jc=kEVS6`29m(S%+-@5ggoGI9s3Bi$N)9YqT|JBoLoP>j(2|3d})oZ6Y%T_yy z2d5uen=^gQGfvraPOo#O&zwHpGhzDHH92R`yc#E1)c$(w+O0FDISJUmIeq$?Yo<@# z?mV|@wX;(_H+}jc=aE$hosX~$9?$lCq&InbmT&#nudkiqxePql;LMEX>GqJ2InK#= z{WO^4G}bFoo@lTi(_`%G#LZF{y(`wwLV_8)p_aPP<^0Ue(8{<@i;XoH(IOMk2Ld@&WUP+|oJw2{t$#UPNrUf& zv2N53bSg1c*tJ32abk*V4@RNHM4>kLJYx;MzvA%n(#F(zsmod!-gte}40Dqhx^0&S z8SZqGTLWaH*vzMhTTsKz%9)U-RkZJ|-H3nKDvh z6q14|+-F1+l7cDC;ueyEDcdEM`+~8Z;@%nj?cSPyKEHf4lY{r=x-P+A^BnH|qG4Q( zUbML(Zmw_eH%k0M?wdMZ+(Pb~8oa}`d0O8$d0OlH&b~z49v8~DVbXsj#O-Z)L#C`F zod11s+Z}w9ekJcKgDmq*QY*O2HmBmUv!VDC`)21as5YB-LkPX+|`CV{GoWlK~A=C9}L-vz3=s9mc{>+VVW7u#mt&jua9R|fM#uPU*q@ajV5 zFtmpX@^R}d-C1TR$d_{QgrgMdn*m&as~Q)3n`~y-)9ech!|o-W*s&BRHn((Q_fwpJ z%2EC?S2T18DB@7gdH{Oqv#2+iZyH((it*vlk+=(Esi7&Lh~tc2E}f7Finz`2x^%)0 z@H`FSYC$ojHFO>*`S43Y{*zsL>3C4wg0tUTS|jwYcs||V6Z)Fa7lra9Rr<4^P0FKG zNpBQ-wb09iE)qIl=mkP&3e6IFhR|U``wQ(Mw6o9{q3rhaxgQGslhC(>a+E;-Ekf@X z`ct7CRM5X#DA%Egd441*#~`F<2+a`MUud$>&O+mb^2|-%_m$93g>uM4_g94eTIf?k z9}&v7i{b7N%65);tSjuQ$Uf%^V_LQfakS*X!n&i(9s4#&cz z9|&bnh4@vWF9>~F=wm{EF7z&;>~7*ehJ9z!tAs8Sst1~IFBHsuqWF)|V_VQ{!Dk9h z5!zj-7B)e+Xu)4gJ>y6pPBHHZl{O^iMZugHp#Qx>Zx?!#(6vHW3gx^4!(SkDrqC>* zX9yiGlog+tg87%1R99k+ z7ANUJ8#r{NEQXTrvU08OTC`jT1(da*vgo`XC3|B>$==vevKMxg?1hyz^9)%u&k$kc z43S38fH<<=b35AIYnwSv#G1#s{4&S6{4&RJFl*$NW#K%9=A`>+(?^fg0lCh;yktcc zbihDPARw~*yRZNLEsBeNh5SKLR`Xc4Q*goHTdR(sJV!G8{?G)yJM-1JxB$7AnlCWD_eeQolKv>yJNgzoIJQRkoy4l`}?i?kkYW(oEQ6P^tnX4>Qz zX+3;9D`trCi#$MxQy9M!uZJ6c>?hN-mtUmy@M99czAig;<#&l+8|&dI(vBE@8{5e* z(t7x0;kQ8I_wq^jF*7l)P%le)dKur?I^fXtaJFr{SQMqq!S>xu8rIAxi@X?fb^D>K z82#xj7S^w`um`pe_MWCJEDK{V9HFFy{=|?|%IH2>(FX{~`QN#TE4z!a?it%N|tphlB&M z*r(ilj(MHdC|BJ09fpYV(AUE|PPXjOu0;p5Zz20hDS{k%N9h_o(^m8Oc9TlU(1{ zzotg6s9mR|2e)*#e6fn^;>s%vYgMt{ zy;)RRR$Zlva0*O2C5U%4&3v8xTwV7-2QZUhe(1R#=02}3WDdh7IdravZmjs>n>JZL z>COr&C4$wLPOPq`km$XNa16)}v+qLuqEL=yh#wRB3!!%ky+!DCLfLXK{CuGo2{mIo zHZ=4fER^jKF+ZiGAev&{sD-R>FJfebsb{>8V>E*Y5l1Oy`e5nA=pULs3QIo6Xa-Lt zM*qTK#*1S#(+4@17~d1qhnP)_2FdgRE+$S;%6xN~UXIZWE+fVm&3r?duX>DzIMOV~ zrN?N3k@gm2GBZYMQRqX*E;59XF^jtqGDAilqU1-$F*1yiQH%^?T)E$ouHQ)4Z=~xt zavb9Fea0oDGRI_?aR~+U&n>L2E?e=#jY~d7{?nLoiNWk9^5S=!roH2ma+D_;GcGB| z2cPu|-@7^zW6+^6I0ws!K1G%oqR{34A@48NBof+l_sApayw+swa6MmMZH!AMh4Fi#o%|w=OG<>_wGzLN zPQs6w*&WwsC=ggzQN8f7e*+Ysmq2flEO;?&C!rwU$+RV>d&r5xK1v7sDD5p@K_+k= zWf(DT>9!+HpC_Wv#9&{V!)DCx6J8_0d-n^-*sSD)g+S)7G)^m(J@bQ<_&O;&3 z!}oCuG+~le0M1fXG2V80-M=fvjFLp0PO2m6^Tcb;t-itDf8wr#jtmmH!=_HMDa-WR&+i9j7~!2G%#@ zyddb_$@mH~xO)bu#@*f2(cOp(&zL!kvr>*Z9U)Wd-EtK1`nS_b@;6H7;Xb5mFZZBA zmT=Di$RBs}AN?2PNk4~7@IUpv-L~wwx?@kB_CKXHHCtV$7hXQPsW;>2>O|TVm&7!y zEeG)KKEpe+E-!8Bv$C}5T$~y3Xb074*o#B!*IZG7Jm`~b|9MH%{5JA|c~JPLAx+4G zoi`yb7UMbx_Ejo=@imZ{?T%->2N~B?=x|!Apz#W_o`17DF8&PXvlK#x_W5jU=ZWML zSD-C&8;N#|T?YimuBB3Y0tX3M8TGBZC@M8@m^bvkcIA{^zg@m6G4klbrc#v=i zMeKe9TNHbR)^N(>=}%YmQQ{Hg^>5gey@MF1z?i3-FR+Qlcm_?!=QL*IUp=%7YI?D4y48`^K-=JzI8$IXHp|~sQCvtyU#q$3LL-DXK zWF(Qk1jz4QbFOE?*)y(<@%SO*7jKWSwr*Xs>Uw)@(lbXJ*W^xjR-WVe*q)KJZQ2ay z@`EqfBa+sf?OEw8JICqZdBjc$5w077ETuVt5-9W4!7$!fIXIxP)B@Mi`ZqY>5bU}Fu&u-Nr${mX9&4VrOd4c=Ac`UQWDm!UWvVw(5{W4JIF-nE&U za))>z!;G~QrI5yg#%Hl^3OFq^))}Y*63Vp%e+}>3#0fcVtd9ho78q+)fcGWFYA7xv>TxM;>yI6X^14G z#4jGx#gCh`wH{dM#ILA0HA^Ud2gOOLIskO1hq6MTzdUq2DDkh|z%fq?W%eLwtNE{m zh%em>gw7VqPq7X!)X1jv65K_oM<~cFLU#xamsz<}+;0(jy-@Zm$fsE7 zB|`Ir@(2g|pCxp((7{4|LMivjaO}2_a)Slw--YfG`bVK}34KNAR-s0>JR1xA$7~e( z6QS%S(Y;zIyGq1*s|4sA!83$T7CKHSJ6-sX;n;^L%2I4TBdEM+J4d zRTD=;rw-g`F2}|BOM_PvW1h+28;L#8F@Sq$Zo$R*OEcHN`C86jnz;hz1LrTz*qr&p z`AdVJB*y%u8EZdBj5gYgm0u*rfYgk2hXJ!gTMA0Uq!SyH4NC~5Twn_<^POQ$XG9^7 zw%SxTaEPc#P+3BHhC5xFp5e}yrf0Ylrs*Wjxx@t9}Cg=;PYfkDie}N)*ur&P!iVjWddaGpBAYwk6l`INx`Q>wg-^ zG528D8$Kw$+Vnz1 z$j=y5lNRP=^RcrfUgoC0CSk@QjGFn*Nb|9V-`_bo17rC0Jv%Um7aCpU---33PfB+A zc;&86fv=Y9j^DQVMVOC0HzjbNww&I-B?fAfU!?ii@5?XJe5~QeK`@Pp-&4pxX%pIv zU!?h1+voBbCGUAxnv0vj??czxCcjAYv15k1H?fVUiOqCr$ZwncBF)Dx6Ml2ie$q^7 zC%;JZv2UK?^7-5)>K?yqd1GdvdleSH6VJzPJJY?tS@_*NNi0FqCcjAYu@ACy1!Icw zvMd*e{I&$v&fFC=R9c+?pt){Pa7B6 z@%7UzPkkIPKJ{ICU*(=3z3v;Ae~z_%7yOR${xXCw!~JOp&*y$|-V2+)x#ERQluHSX z_g8bC-+ZLt`ORj2m--%#C;4|C&(7TWQMPJ4f;q~gnD6}p^UHg1PCNDWp`8!tdT5@b zj&ACo-x!B9ZSLQhY3qE$t!sB}!LvWboNLa7NDI?3SRGA6Jf4ZarEykVH|lU`@L1l4 z=HcpSa{}$BG{l`RVYAiIjajOpE5hAx=QlE6?~{Dp1WehShq14F%h!30aX9n39{xkD zZuO61Z}>S^b?ABH3xn#n#K+fr5sz~$Z~f+&xcb3XLOss0&oBSzZ!7Ak(;joj{@?U& zLf)j8vwC;N+-wH&dAbVGeb485u5ywT=B4@EhY{9uRb0<$sR=!sUrfV( zcTc@_Pw_UDmYS^Y>AMZ`L7gVzoO#a0evNtMO$+iHr^Tv~>n5(=wFzlyJ{$RlcdYH1 z>gYPeb#r`vqv4&?FQF&TX7BUm)$eS!Z)w~dA6K7>cexw$&MaS;N6+7Xw*TlrtFH0W z;r^pJadGtn_xKw(|EW{s{!F_2$89-dHQqyfJhXWc6Ux`IE;6E z*!DIY9)S6E%$x7Q8R0x@eXra%|w>T^Qe>7H4icJpK$=%z9zTJeiLPt^A) zwbeMChJ(os4}6=~*j(vvn@|@6`Ug()cj1|d!?oUsIOOmC<*IT2?W*xBCvMCBpTmADt{T=igndXg zVyM^!Yc`#ZARULXrgX?Rd*DRJvv^)CbY$G+Z>0Uutypu4QM3Psbw0L%dysdjb+HZ2 zTl0>t>w$Xq=N%L3;!zI&0Lt?C4k*f_n?G*eFs}Q1``I3hYxen(hM_B)CxSlKwb8ue zJ$Rp~%B$7zY{r_HZEYXdjCRNZ zrOsAUFHPGs2yM^)Y=7gccHAJ36`zoFjmq1cq(=T5&-q&qwRB?=zKeGE#gF3qczC(L zv0IE9^|yHFKZ#be`CfO=xon&Aq$Tg3GkTlJ>%+*`!N|krGyRRLY|r9Fzdt^E-9(kt zj66P!`rQ1Gn}>d^!|g_WS0j5j97b6@;y|qh%hz2}zFuGFmapG}vV6U?Zo)OT|LE#u ze`C?Tb-Mn$`N?~`q0G6uhmeQV4KfaGyMErGg2Kf8)K-Me}#Z%BV*fME>u(0neU(Md`DP@a)Bi%VIodG3?Wa;&~T$&sb&6 zTY4jSFS@k*EZEbxJaJ=>125SPi&myRi*~1>w-vQG0eW+ez^xhIGf(==aUUW-+4dbp z`E&I=;hTUpSC+HGh{qlqbwPA7v7KN%_QP!=`UeM4k01UBx`VDLZBl5@lxJY_yp?HO zFU7Os7Ei}FzaMnhFi(fRe0=tN*jeYAQPwuSbbO>KEAtR%hUxIq@!5M&W>QgRzCw9v zzDw%c>!@F>Z@&d)eR~NM^{o!&<-^`ZIII0 z;O8=UK0-Jn(Mz^wK7s!67<9LtiG=4pj976uoYRFcm#of1^qk)l<`F)Ghd8S-kznN$ za+)og=OS9?-vU-q>+3#N(TT)!9|tes4^;HW#20RJ@o!c1=foGG=EHycD=PYU2(AO} zh)%C{@q$=9Y5i_r^l2e*yA|D+a6ac#poYeZ9!^;Fnr8OqdMoBk;yHf+=JwH;Y{En>j!NotNQ}p;}Jgg z=K-j->&HG!{G+!J2U}S&&jftW_2Ax@0&po{?C%IKWt^ip`yTU`0R9O>9|*v)m^h3+ zL^zM}ve%D~iN{#hjb#NqV>%M* z7{X^6lhfd&;yWRv(Q3dMaT;r!<(!3ZQKg?C(`y(mfwS#2)6nIh@p{4HZgHG!9(PZN zu1w?lru9~bKHByOY{Rr|!{5~@+#jn;)G1S4+Xt#6%kEF{jE>w)`vxqD++EuZ`O;|x z1L?Cyvn`0gLrUNKDaffJxA&puq9~SkS~wX2u+6njz1k;y;C@Sp2Gl zT9%b`#C;kvA)!v3*9nb(6n^23mSZJtpWAvn`hH zt`0KKnr0nAjqTcj_H!)OiEiC!pJd&G`qoWXwJhr)+I4&2w^+lw>H3?k+k&pWS-oE`yJf%+fMu!Mh@f5dKo3IMy={xRV!2+uZ36ce*N!=D zxSY!NBDp8^HBe!cGpGlK8p`g_;^qz^H@kM#Yb1h2mAcK>>A?b}lE=d%`d5~9`fQfQ zr&+a650=x@gJsmiv_)@ayi{*yZB%p$LFznYr=|KNIx~ECg4seq=UmKAS-xKYGKe$N z_IWJdb9@xxdA84Msh%|m`8?d5+#n-Ib?Jn+9&Pt*f^RprmdQO|g0(lTX??1kvwXYE zQzq)C{MkUie#%D%PO^Q8mhYc{x;e|TecdhJQ3JDWUz+8M16S5kXR_@ZYxxEN>cCTM z-+0S6)WE5>Z-(Wg7831yw(Yyb@?`_+)J?N}n4swSNAQ^rHzy~BEc-HFR@q9Ytp(6I zR_S_Zdq>r;S0`tvuK;(iV#_d0Cu~08O@zZ8UtPTAs|5ZT@d)5#%eMmfLE?1Bw>{PJ zT?4EmlmY)fmTv>F&hJdew-)#ggGV~Pb-+BCS^JN2d^Z6i zKm^Wgo!C7Fo^ShX%lCp*uEIc*8vaSz1dKEAQrkDe@=XC`1MU2X1w!?_7xsL(IR*W5&;SiUH%+B5({y4T zmBR0rw&P6)++h#6hlWX1efl~zzF&jkYA|wYb<$rqaG6f)yMRBY?`1l17^k>Jbh+*8 zVfpq0lDD(M_Vu!S{E%q4()OK>?N9L0@N(OS64J@QD{NnH%jYxjN}Ur!47|$rq4=C> z;MKN|Z}(2b!4EfQl}?Nx8Jz~|Y>5TDhHwy}@_mato**8qUuy!qZzde#_%>OVuM03=K+I5- zZj_(_1`k8&22KZNY-3QHHUOVx{85{31D<9uYSSIS`39pl-3`orj+#Ge(?;Nh2BS7T z09*~sk`sg4w8=*P{S1*~m%ZI=A-H4_#W}0Hkpci zljC~>*oz9wq&YV`zPEvWz`7Lu*zvs!JjLMkj_>!t6a&!VH#olcfiE$*!SQ_nywu=Z z9N%u>Rlqtew>rLkz&99to8xN+rpgS>?PdE5p z6cykhz&bq}QB;7>H2(LYr~u~}d_Rf`@P#J)&rwu>7a0EsP*i}I8vG#M5AZsJf8qEZ z2foMPhaBHi!0Z9(_-%50&jN2Vc(dbc0{(-+Tkv53{wJ`G@57GoWneE#j=uj9$F~Ex zkHL?kJOERrjrM;GPvHFna|EODlX(BYHyHfCc>lmZ z0oKj;Q+WTtTMhmd-ZwBm6c@7QJdO7YyZ}Y}N5s$IefG0_R|9MQ&*J?6-)wLr-VgBY zz>64uE8Y+AeZaarH#xq$fFB0tal+0vyf5IVfmubJ=kY#(b5U2$Bi@eu0G|oqN4gF#t!xkgO#r#c8G4_#sl66;fdIx`m>j3AUZ$jEEXF$-0dtjAS4G}u_ID= zlWseY;{!yXo7P0t?-Eb!DBn#8^cS)nt)KD}z)uO$iK#<>&~$oY(TRB(_#X3|ai|Nx zn+!e!?;iMn4L%cf0oZhsV#lK{0Gm!$>;%+>M5O&IJZvj&iajeB(cjss-|peD**;1v zuVQS_-&FWUA>1y)DR`0Sf35+(0wavrsi?TX?*d;(oP&asWBL9Bth4MKRI~y->{fVw z2uExBfM!^Oxq)6sAZIL{KOI9{l0xhgRlf~RY_2aA?~J3N*nBr?fKiYci=CyvFe3oF z63%u%DPw_kOwLCY$0sHWm{m0P0#tF}9N<0-e<6w#@VN$G1ngM8JYfB_i-Dsp-^B)B zf+iY0JWAAP|4UJ&fGZ6C5vmCA3WE#KBm!S$@I1U$;Cf&kze2nw;9CrykJkju)A+Q1 z5pojvmj*9DdVrrZcp=gQ{F1??s8YZ?fpz@KP~?H%2j7 zdK0bv2mKagY}6RvIiOF&Icl7KZ!-ZID(XyKjaC>qLH8T30eqjn7&@Ww{uGc6MHI$L zU63gTqI6=c^oY3^!yj}tpD+;PofOOWD+6cPKD5z|24ZlBCUP5~=A38yhFHEA3`A*S z1F;uzcnfY;+5pZ}>9T6NLqTva`q9i2?ele%8o*4`_cHNO0|tD6d%wS+|1irr<&1y|?kcpl8hum6K%SGZ7nv+#TQvLd=AmZlx!kA2T=MLc}hfpp(_v0z|n; zNPtG-&Zzy~5O)OYFjA!_@j0hNi>0Hs;8BU%3zkl_@M)bBtn-1B7=pMqj# zzhZ!^S2-;SZ_9WM>=s}(NV^MP^#pphSO-87e@J}@?G=0;PU+|2!-nxcT(yE~hg(re zIV3PkDvBzLOA3O*Z$%2}nN_whx4N>ZU~10XVWmi;g4_+xL#hElZ?>eOmNx;QHV1;v z$b|#$#Ytj?OK`?xHMBs5+$2B?*y(Vp#Q}4JdB9xO^@rAMU2_8zKs(DlU4N6 z-sxiJTAnQD^5-B3vD)eBsdc>PTy@^zsA%UUbxxG!Y+JQj+n=-3lCGJa1D8n$?P;C9 za<*8{ZFPQs^*PQjtkw32u23gE(TQ6f73Dm6HSUW}a^AKMqI4~X25KmS-f^`(*7B_M zO!Dl^-4oMwP#{>Xj|#0< z=J0sDiOvCa(3$-l|KmO5o!BlR4> zT}X(9Qwa}3Bev(4PMqhFZCgFR^nC1@aLB3lJmQ?{8NV&ccGlaTT7>)8RnGz3XCH)p z-&MH5?%TyP5qy`~<2xPpOz`+U6A%5%`PC{L3(y~XK0dV74n4OIA75>-i^NzT2{;vr zEkMj71Z9P39JPMCGT;jo0~$-6ZzhD_N6R5jv(cu~q~L>1gHS`n8d%a$=evHv-|z=w zM}v7BbsExOnehR!-W`a+?CoMT+G7#QMCwQ&QnOn}YPN~gu|Pa$v#UuHj3;G`TbS1I zEHm*OABg8H6VJ3jJZFs;>!zTSiFzWMCK_x>F;V|K5cOFm>PIAB5z0h;g~S(5544K< zESG8Uw{_HuP1H-}HHYlxfwY1)aC%CtV*?4yHwiovbTSFd4J0sswpfdUP8-CU7D#ix zN%MxF(`-rpM_#2*C z+|*=pt16INd39o~4dhmy$t|kZq`}rIlUtt!olI^$9>|(JQylsR@*&S;%_Tu6lQq~y zY}lKu;ba~So@lb>^FY?*nXIV|WKEvQnlFM*t+OW2Wg7eq&l>11H#svekTba^XE={c zgLcQ{%ojnY?vf)T0y&dwGHXZB$z;|efy~M^nUxaAnOu`u^MXz$vz`j%Os>hS=Ae_w ztnGo!$~BoaFVHyTa&nQTDv(*ZCjU|bMJu;;{^h#21%J6HLNhXu4Mip!OxoKx-85J3 z8X?i33U_1oiyK<$yDbAu;ciRUyJ5CTQp_;MZjugWpDP2}!;BLbG-PJ%!H+M60*R3a`4wwQBw+0C4!!=&Fq1DDo|$Uh6hQJHjPm5)jiY+5G^dbGj}rxIy`L0Y}BR_os?*DQsbHE&C`D)^L!cMC5!WN@v)-T4#R z*DtIsksiO|fV-rqps03*j?RB>S7{rgoAwT`+&!eipt!Q&f=QD(c4^@p7&Yk)rFw(Z zjI8|p0=X*?96I(3s83&qpbq@Z4BnBMQBbQYF^Z!noLp~&g&o;fTT))`y493cR@Y|e z?W+Za)zyV7RaMQDiXv5$y`)0rR1{3hEtpk{{8yJ1R+kk*H$Po!meiJ}7v!anYUP@t zU2BjS+&jbETZ_FAHD$GBl@&4?tf*8tO}5010)j!QFCI~Yj8Ky*3f%`9OM1X5L(PRA z|5-drK+UXPm|qBvvk;Ynys>IpuJB-bm;>pfLvkQ}w3^ASxtA4y%&aV{DVb4nSxI?T zSz(PT;z`rkuB)?%uR<8joRz0mELAl#W+Q&3RY=%KfZS}?GAW-)rOVWUN%?^Q*zlWM zU2>Uw*ZgG*3d)LC1X&mdWJhs9O-V_yszP9WYyp^!#`t!5X&K7;0`42u@u{d;D)G@F zXU>>4bt!_5QZ-d2B}JtLg+;YxmzCA7WEK>bmsc(?m=E5|%ZiaJHOtFti%J!X4R4-- z6BT$CLk`pnBTi)tD@uw}ib|n6kG>ddR}_}dURhP5;S5Beinrq>W*00+!6`4PSXf)C zSj1cp#&J?^PQikjf@zn#2?;_3%VDm9rv%W4L9}owE~zQ2E-4NR2X>3WFK|ADTM^{x zEsl{WudSkbXcM#YLN{XAbdA?hh=l0hIb{_y+^EkktX^1Bi&9fkFu$rsEg=wuB|QBIGGLhl4(m?wDPQRTA}R8Q`Isw0wJYN7cV}ja#^(-psGg4F*{3DxI6A^RHfcZzm(~k zRa;V}Ul*$i>atF3&~dcN&Pqr9Mj}xeXx9&ArqcnfUQJ0kiFO8MNvJ8v8>NadT~&B4 z%DAprW#x-qF4jZE3egX*3A5Z;;e$aF^bIyD{+mk zeQtf$&A01VR)KO*QlnTMYfv9Gz*};wCX-+s!NYZwd~yM^Q7Ws>ne!Gbz)RDW*S#4p zvMRf>WI;h*hRU6i@7|>wvZBIrlvK6=v)KO3Dk}zDPzfg;iK=DgHHer_Sk|%y0ZYyb zRWX&jSZi`is@t!LkapkEovW3sKWpc35uocSDz5 z++N^TP1=yYq8c@opG@5Z!B)AfR$Fy`=sJ(KpkzVKiTfzJVGm}NurhWi<8ksAF}U3K(J zoL#b{N+VT+Pqt(S`!LzH)#Yv#Q;1?QU!2R;r3E#t3vOdILruy@KO;Xw;d3tW41CyK z9$=vYIi{E=8V2%8%_v+lzqrt?F{Z6RJ6g!Dw61V;CQjg-k0X{&X%tXQy|Z8s9j=b|qs72D00#cIAPR8M zn*_hzYVfLuVQQod5B);1xltQ4Ty#pD(Z>Ch+f~%oiC^1nt#!wUk}XR{z>!aIrqMK>-Z-xZJyO>@{v~# z9(i?t-tF#Ys{C&x``^OGUye*|Z|AEVv{$=cnd7FKw455yqjSszklzDzOE*|~61Xmrd zTX9k1yAjtLxIV^3ace4gp!9YIt|_?Y;#!RBYFrJt9>DbsE-IP+3$D*`ImnQ%xCY|V zaso&n1qG-u1%`q^;H+h5#EFvebfRdyI8l;dF>;zSt)L{(3%Bq^J+2;xJjPX?w;mN-$8olX>G7pJ{|bfTDqL{AHd z!0DD?Tqq6CP!xxkP?RpB6D5U&mp(ljP81^%CyJsoR4uB$II)$X(_}CZCrrB6dtFO7XJWs4V$4;p}%S*D2n}1E*O!n1A`P$uD107orf6sK)s;!=fWJS+Rzc8 zr-LSf_M$st+yj)04-7X16iJ!rOxb3yxpa$OSYP=->kI`X9aeV1O!m6`5vZ$?(YI%A(p zCvff@RemVcdz3;mVQ zM}<=F6!}Pl5VKM+H=@z~e4*zG#fE3?K1gV9q1=JR@L!|ck{%TLiO|0ZeOD;AZZX^w zLN^QjAEDgiMgJ>=a$gxS1zkzc6FONaH{H=aRVeqX5r2z%Li&}^KMQ?F=nkRVg+3tk zZlMiAZxBksUh=z4=pv!>g-#WEmQe2HVEBPTPZ!GVhjiz*5z>DN-6!+|p>GS_AyitO z7&d*p?@poStjy(tD}@#d<>D{H=LyXbdX~`9LI(@=3GFU4QE0T#Z_s{_-$9|=CP&QX zosCWAoq~ZDuw}|`wLT?wkUg%n( zR|;J!v`pxagkB(2zVR{Hg2xISA+(>+NM~|#a~$Kz!){4G5c;mrSB1VH^l71w3H`ay zyM%5Kx=v{LnVd%N;e7EodJoSN%x)$AV}=M#6?&RbqxUdIu+e*XNWL@8LU#-Oy-?}? z$Gj-`IibH4`jF6@gsv63Qs`2l3xxhi=q#brg;IAGq82k+D7*N?=o)H@W?WMcP2U&# zw$L3yw+r1QbfeHagl-VJLTHuHQlayNP7~@E8vb4GF7Am!Jwicr{O&{KL-jX4M2s?J z7DZVOLNUt+aW1~=G`}WB-7&i3ULi)?VDMYSX!9na^F#9UT7{#28oVcQm@dx)Nh-WpsHZ6QfgV zbaC}3MrIjZT43KozvB?W&$`i3$3Yp!nDqdmI2#_J_;47m48s?MVW}T*bq$Asq5P(X zJ@4W$Eak`CuAT_He@s~T4q;g8ci{fYF#lV^`0WkDuZLloA9iQx3PP56-L-8l51fs) zr%7CxaGfNmyAs1$&=yCXhMt~^<%&I9agDt7NtVDP%zNuOzS_|adR-V%; zkFm*x=Ml+_TanPJ-)86x$HcEK%L-P|fQK~KoApUWZ^O-h=28KNa z?d*w+(cc+KALvH8`AMOMA9un?JX=K9@QZXlQ$E@bnj)8|U9IESHa}4qSx_)}&ZPXQ zayO;}g`aU4#TU@hw8<}$KG5&WFOoh`!|!^DlZjumJ0_-UoAHaJ4|KeQHs9+eN$=<2 zC)12=@{6Po^c=^H80L4hd5xWemZnX9k@SIHBK!^tj}O|(PhKy|cgy!XGpr82g?>Po z35(x}^?@3Gq9#+dmtQ1(pf^hV`bwnY@gBlV>Tvg|KzK!1w;#SQ33T?q;p&g%?&+J95Ja|m(OQFJIvxi*p}egF|dB1ikm(VI{d6D(BUV~B%dieKLIJ*e@ZNaY(SJdAK2l8GvXi*;% zrqTB)!sY-x0Go>5j-Mz`^cy5mF+T%|-H4y)Kl2CYvv#ujostyooYKikjOlsGo>h2r zc5vHP=;k*kxV4MB-J*iq+X$nB`^{q9%~`ST<}9@aPqLLB7X6Ut(1v`U^(H74uc)!b zHO>(03)|nx?%RVqYiy)5kk4x+2qfA~=x`bg(n{>u1P$J6Y~|v`gF%e_4ij82RuSAC z63W;&id$Cem|#z)ZfAJ_e2|fkMx}bq{QiF_sLmWP~LHEHl26;guPsX(pNONx7q3 zE~DI2A4a){K8zZJczmDnRr-h#<1$ic=EduQF(qMH?<>I&rmgYS<9I(Rg}&}m_B7%M z=4db1gLC&Z2ICd#@l~RB<#?!;!ZHC~>crFLTe!OyCKO8DB*juNi(+0YGE;%|OMIc!oxoQzal9t{ zVq{!31Pj?=rcHj4#%uGjU><5RQbLiohw(e{c+K$Rca5gK{34Cl{zu{`d9Nx`G~3Xh z$nk4qy!K)kzgybLFVcAJW8s%1v3U9<{1}Yi%C$%kZ|#c@;|LT~R)2oOX!weGvHbEo z%Wv;@H77d<;lN;=h2Zqu>FKp`=7-m-&0mC_eXwaw_ap0K@*CHlk>9u<`oeG3=QSi} zV9jgX#=Z8=pW-~%HPB_g2WKaIDEiLhz-wJbe&Z$&^uAvJ9r7MEY8`d5V{B)6)a)Zg z-5dUJdGA@xvCy6U>X>@+-s|+vpw4u4`lgwN&%kjh$*bYF8#?=`XB}z3ZQZEVyMB)| zcJF{LdF022c<3C5vbv0~i&R5Xk+bvP;7xwJaZat)&5nEbivDEH3;K`uz>mD#a6Pnc z>kknZ>i^cyIOCQ^e}bp}1smrhARO~%9o*uqQ|tW+aRGNVa9%Rc8&)X;ldr|H$x7r2 z(~fUR7nL$7`4PBb4KsaQtjddr`)6MtpIr+5_RNR-;CCPL&!kU32kG%xTEF(u&1>c! z;h6-5823K^lC|@|;1|kIb|wLN96!El)m11&ZZV8B2EGA7E&ECS_OqmU47PPpnEW!m z`p=M$k@GOJ+8U4t$h9-)DZ;e*fJ+FQ2nSvY_yAzkZwZGk1aum9Tpjf)VR|Mq#c9}d zb<{hA8QORK9p0!v5@yyQu)V%}bPYmTL!uF*55OsU4?RavP>enA==}jW9U-E>B-DX_ zLU=gfOYt_W!t<7>STbXW+fI)4!n&8%K^}TWMaOl6OFXnGqKYLX+B3Y#unxp!YYnMh zOgbnAv9*R&?^&>to$YE!jU5F$WoPW%AR`CjBn)Q9UJb&PS3LMy5H7~rX$e*KS>6j^ z)lbnHQoYa=H%QYPhwT4vh&43%|t2Ly0A2YsML#p=) z1GR=!@3RJK4XNJW0_xPc8d75!+27%^bK=Od1M_8-t#sO20G(r%u7|dFRHyXnWDoW3 z#T}DS@@%ak)ywt3nS`!}RPQ0+i;1Dr5gJmx$AA|Sr$e7ss^yJ_T}KEy9ibuB+XYzX zcc#{m>g{DPbUH#qs&}Bl(CG*bsopcp{iC4;3wW}@P%Z`ysos1O9?He2AvLxJ4h6XE zaXQ747A+SLW5uMS%jvN?PDPnaJQqJ5nJbBNU`z1Zv%HilA+WWERBwraT0^RLv4L7c zs`n}bwT4u017JSy)f!U0_ZX-(q){yF5 z4|pD-t0C3P{n&f~&QO$Y+wwka@Gz8a;9mhVw$wKa4XNH2jX!D=G^BbdRi^JpZGwhW z?|TNLHbFzGcelZ)P0*0)Jzy|u6EviHzXE2-aZsD6AvN}5MD8>+s`lu(7+6gq2^0+5 ziq|xuFP6Psy7NT*HCLn_4WWugIx`&UJ6EOey)a8FF%VK-=#IAdg~0nTWd)5t~dA| z6qUY~mjbOiysIJAd!NCshE(t4z&bq}QB)BAdE@VDNcFyHu&W`}`xg`5)sX7_)cCs^ zQoT4Z%YEL1T0^SVc(0%DYDo2_q9$tWYDo2_8|-RG^-eN)v(}L6z1ZL__%I-THNZN) zu7*_a2IKE)NcB>XPV;|MYe@A{&{yNfw1!mg%Lcm|QoSD-{J7ST>V@(;H~bS?L#mg> zUElvC-anq-!QlVJ`v*P^SU2BKX$`4f9LC||Uug}g-hAMm;AuatHKck!1x_J;1|PP5 zmRHZ#v;01b@(tVxt(1PAt0C3f6PQ|T?X7q}@b70@wkEA1)jJ$`Ed94>4XNHUfEj1o z)sX6?ik42q+qH&NF9ko7iCqn;-hIIOd9H?3?>`OxjnJ zL@$*M`Y}s+f(0G;hUz**gkpm0JF%e}06jsaesPvo>KAX6`XvOF`gy~Z`gJf${Z0ug z_3P-a8zs8yMx8>H`gIN}^;5giw%d9^<%iVc*Om%CY~_a3kC~&?t4u*9d1$3W_oEu! zd2q)3bjV6nKd8!cI@*)1ZU4;moaOn%PCM1<2u*X#&#_0I`laVGEKvRO+O1B-YNyA+ zFYLbE>>(kGRh*Ef!D5xMK7v>5Iu*N?*1sdf32JkU^>ew4im+PW;JR@3nFd<7j5Xvo zl)tvk5OL|CB^&(4Zdf7QIYBP2 z?Oky&_hS}KIGDQ`abs@}CrYr=U^UJ$c5`1FN@dLB>H@cI@ay|Seuisybl?;$`#!Gx zRcHyLk_ET;=^OuZ>vdtZ;=8G63BB3Xi;}H!LUf{Vdu)r{u^O~eit=AoDcF4bUsWmp zRh9BzRVn{fmGWOzDgRZK66_pkf$s<%hyRSK6jy-|l>4j@jVM}i)n#W>RY#%Lp)>+t zvr($B08-tG{cS{Ft9^iOGD8b8DvH(O07AC_3VB+{;jn+@)qNv&DtTet0(1Kx8nW0i z)hiC51Lz22WN)Nj*6Q9+`JDEIVGo%rW@d33^Ab7^j*7+~`gJgL!`PW)T)kl*11&8T z$xb;p=X3KtH_>xLJvZZXgFQFjbJIOH;#2mAoA9|gpBwVI`JS8cxp|)(`QHYgy|})@ z6^BUo!ZjRM7OwMgmEyVr*N<`ChwCX^oQnSwuD|2r(v6W2@&e03F;^_;%W-jEP#8{7 z(}^?G;>6i(I&t<)ZsfE+ovy`?IB`OlPMi@ICr-QA9#@phq1AMqnX9}v1u zXr0hyLb({o@OeThn?-z<(9uGB3PoONf7V)t1JU#;&`_DO=ZKNc3h!&2Qdo# z7vldr;;0~gj~J!Q$i)1G7*7k88KI1s!3XG%NEv*P7;+XyCgdnFnhhh=HIT zFw9@dm>C%eriC(Q26rWfJdKfQNG687iIGX@PmJcs$P@s!kU6^_m~O_PEVjTC!*ER) zo*#zU8i(?02*bHySVqPz#*q;>cFkW_y|4gkG0PT|VF#ApPo+PPlQQ%-Dd^ySPPC>$ zc>n`sObWS&-=)9?uh1P@qB$xcgV!Q93ku81L#6Wcj;Imb8HI1%=rJxC>ymMrjB)+O zxZ-$Y+`Ud?TyeZHt~lNpR~&DQD~^|*?s}$UKuE6X_>{VoW&Zof>5WMb?t^kO8tM*D zBB!ToPzoLhgLX?%KSm_;u*h?z=vt?g!Tc)nlA_#hIla44|7ge$RaL!#LdiJbQ(H%3 zOhLhk<@5|6mT8(M)I0JsMjm4z;wSvr*usR%5pt=6hHVVZ+u#?<1INt@PY{36Ny@fb@Q9!f})EcN6K@SEW}waG7% z+~42vU7$ffM4JxAA{eAiev#zPs6W|X=s9JZZo}++p?p`S^xtcJM6VaaHBwT#|j-=xh)9M6_7A!B#UN!s$|L-yt`v#o}8ll{-`>#dGLw@)X} zRsLHKJ6*QSPVl^bKlXm@hJ6oY3XS~U&&BNv@Yv(@*g`qMea@*{kTgaW%}M^F7df8# zambgHDXMAgk>jJj=;%NCC1ehv>**=(abrGN$k%&g)Y8`>^Vf`g+>h{|A`cEghVdNi zd7F

      kSjM(5u{6EEeKj6e~`3&*KeR+k5qe@FnegyGj+7e>a z>;ydPCOp?dy8EnL+?0*WqyutO4fk3Jizne(3|}ARhG!n*Q?}t6Jfj2d&*DAc>jQPh z`jVr->$4=gq2%%fSfG z2;tYRT+%ez1A7|r&?XZ;72#|0RRiO+3VReM9XrkgrvJ|}n(=?|jlW^ty7Ak_TsNw+ z^O`f>eB+G?{zYgY+y;oFPtK;WHy>(l01(+tUr=__^qU~N`7Q(W9pG|N z4o5#$KSK6J9X++spRk;8KYa(J13pdoPr|e;z&{cmCLBoLV}$&%22B8@>I#Rm8`faL z^{_>CCLBT-eLAffGhuZaj$9qxTSK0E?5tmFMeA{CruJR`g^H%okR@=RiXKWh(hdB! zisqo)8tDe!u3|C?M=<(-ge_)V08+3pmUArDaL!@qeqGFD;>;A_23#>YIy51*QO3+9 zOeY+GuYC-)CAyFbh+?%ioDg2+^v+=DTN%0{0AC06R1uD1PI)d1SmP*hNkhp+n)p~) zDE3H0@kSc!M-Hb&>=zfnp%Tns5?;oS{i4OkSy4f6<$VhtQBfV}aSDGr48f205L~09 zPGQPB@C|gNLsWDkLv%VDKaL98qm;J}4~+7Be?f)dMpQgEWE(1)f$wr8qd9gl^f*R* z2@^uMzox*!8x(!$;L0YP;z}xX49Y$vy0QGA;kDIL{Qi(q3L=ppqp_BU|Ctm0 z&~pzFKk!lfpsPL2aymWdR35Y^CpCTvkpqeyOk8v5OCDFZ^;~DsIZo0+C&9DN^XQ@I z)UTp!WbwypHICg&b?#i{sf||aJRi+y+&0CDd(QLGH8VXE{Xc%c{%PY2-z^}d3_V1sI`r|a)134-u~dN)Rc z8oI`}A)Mu+gY1HOInhQ3k%yrAwJIdpoySIw=?Y?3HVsOo8zlf=%EVKOheo5Et=?y2 z>B&~VQlE2yUYSVsa-VaKcF|g*%+FEpMq!>rm_ixmN3S}!LcI6JlGIoI&qQBQtzM~A zIq2Jrd$Fsd_pecJEJ=;(ofG9(dq;k7ZmkK3nA6Ph)XPUl706$z<0JID+Tk7{sz_5|00A(UfTO_-RB_?8Vj` zJk1};lGQxtTv(M)uq?kM(%4c1Tk;Divf`Y(pdJ?cxs{IYpAy}1g?p;dRy(Yj*V?@? zBJ-R}94>EFEpcFye_o`eZHc*s@o=4M!BVFUcKCHYEW*f~gXER~SRXSOrqCU%keO?c z3`3WzD!i_5@vZR4GR1>!Bo8}PL;t2NyDHW!&if9l^%NYBnDeo9GWG@-?@#=JQ@#Sb z@IBgfGnO$PeaIY+{-f1>XUBx;$;E>X0EKG@W)M3z62yK9gV&H`#bBvmKhi_H!*7B11AP`0YZL`*L6MY-)s~K*1BzQ!oM-9y(?OYDzBQ)z zP4L5iI@MrEUljTqp^V4y5kjvL`aEvJaCRg~zbEuNLT?w!ekadgB9wha;#oq~Zsu^o z?A7voNGQeFiT{CzAbnTpUxofr=q{lYn`gWZq3kphe_bg1)Wpk#vhg9V5y~z(afwj1 ze_0?{?O&cCxR+3Nl6l=h{E)JFCgpk_=^mjR0TBOK=wm`R3%y(DtwK3U!GC(2P}8Fa zt`__yp=MlwaIw#qK19O9Lb>{h|MVV0147O42;qC=z5YSykA-rC#p`YtdW+EOg=%?d z6Wl1YQs`8nN4uW37uR{XvATDNk;gh_{2&4IIe2~}$_pKzkN94}S%NnS?j!g?!TiW` zJx=G|`zK(k)p31pi^MM?M#WZqDlsa&&Si5{$Mrd#>zzi7im$keI3tERkmLHC&gIS{ z#wbGPVmY$o`kc3sgS1iU2yuS&q3*7M}!+i3+Y-cVx= zwy!y}x@}3r^0B0jf~Aeva1VQv@dE5@#BGe?4KKDfH!iD-R7|Xh zV}lQELoGI`!X_$aeXph&h9cw6n+mT~367FA!%=qWu}Ew&7O9;OH539%A+R?E`-#Q5F;_UUc*Mxjbp_nEFxG&a@`!S7J+aO-`_?{;ZBl;0<( zMAI3c+{3Q--HvvLZnycx)*W0t=$0VU;^YQ68%@=LYer~D|> zLZ|7=8WL>-lcq1#df(T2TRybyO*bDMIl4aJH_CdG@=LYecfzsuqLG$3Z=fTY;F9u7 zwcdB8@OvKLGrBMIvo!8EDZf{)LHmXF_CP$W&o%sM{np2S;NP|72kx!|&-Y#b&*z=>IRErX}c!bck^plzhm4@u!*t^wn(0WU5|P+8TGJt5`=xs?N569x0iYQue$E!6{``a z9&xY?GVZEB4L7`lV&`KY)&>W|Pg@^%!8XeFmA+kvv-6>8tNu-8N8U?$7lnhlIh#(k z_XzrSj0;}j>+SdT&#At-%AC)``MYj**RTHPwa?We9d-YO_aM(#JGrW36?n8G&is!n zw=OsX?;f^V_PUOV6F?r+U~LTDWttXUhqB3Cyw^>^GtC1pKHDn9sVl4M_%`_5i@0^b zTz6ZEHOh(bmmzE()+od9=V9Hg6z`@6*D^1ehwaEW+^-1xGK|}L@ZfQK@y_Xg41S*H z8ri)qS4`kK8739bEoy%PVNZPH>&H*P!Qs`GTk$=$RWitGlw{p(9YTHnt^6I}GjSMC z`wLh%dyc10{t2G+7@T%*!ejadE&^X(*97#Lr`|tw`C}j3Fyf8#^0=ys6drFWeVFBf2 zgk+Auk61vVcPtLEfWoN~M)6w+xDT00kXS(Bjs_;bM_LOg!xW1Jl+zT8 z1(XWCUM!%Tqj;>ffKsdR)dI@Z2w02*7Et)a@+|4UMG!2Y(0T6Nk zj#xn9&Wqf3M=YRJE3_6+xG~a2JZmkWaK9u|M6Csss{qMcETF7aXf2@Js?b_Mp~({y z*;+u^s?b_Mc~YUZfU--WSU|ZLX?PJ~uz*4yrU*}f(UWN5E(M5|VOT(k`eF4XS{~y4 zuzuiP7-TJ=d=s#eP%NNq0KS^oT0prA@Iu0&FcaYOWo-uL z3vdgp1(XiO!>k3AUjQ?OY5|4&X_@$_O|*dWC&j2uw1Bc#u~{7bP| zKndc>SaPBkP#Tc9Aqa#8ls@okA&C|Yzvig5fI^u|({5P{C}>h`WwsVjDD`dXwzYsV z6mTgHv4Bzo??hHaYXRjwz%eW%VgaQcr%H*%0t&Yz;-jbq6mD5$@Qv02%2r@gY`$VG zpuDVDETFuh@z+@kD1TSH-daHEhI<))VgcnCV3YV;tOb;l6pIBET0AlF#R5u+VzGci zYZ>PJt=0lcy<)L|!b)n+iv^VBip2uTwTi_8%FT+!0?J*A#RAG^#bN>F2a3f4%9Ft6 zdBg(BEd)&dH* zJ~LP>pq!-m2i5`#EgzZYTP&ckmK!V})Euj1jm}&Nl1(dgehZ2hg6mE%U?k^Tl ze9{#7#R5t%#bN;^PqA1)p~Vw(y;wjgQ7jfvrYZilwSYp4Cno;0)&fd1u=ynHvKCOT z0_HbGEuef6t&WK=7Eop={=Kz;LOC>ZUM!&0Di#YU+``bD7Yis?Di#YU>wzP@pIAWo z7Vtu1wSdCC{x%~pusfYr_yU1Yc3?=>PvPZj2n_Xy9beXSfb5J03jE=KFY9%MF#iTa zb{{Jo?hj+hpj$O#qQ@E-k->{h+leI}15DGJ?Ray7fzet05$PdD9%Jq@1du)J06H=4 z*}g38^aRj}`6=*7oHwZ$=Z2pGK11=Ts0+YT6`zK>0IZ#)!0Bikfwhwr7>~M;jfDOj zH><=&fiq$WMUTkaJv>mJ^%5HSvzQw6H<1M$c*wg6C*egF!!!`Cn~otwU^04i!0e)* zLp&9xdZzlaS~M}!P|+f|Sq)BdV^rVt>@D!das#~%K9$KCpZSHEnP^DwIR6C4TjvI5 zW^tF;r+BX_le9YlUm%?2592X60sf6}wl%8tFtEwCv)%A+e0?7WW)%&bgDMWZ6Zr3p z|0Oipz&}%bKCla;TEOOR7XYXEvYuBw2YuCaU)CQLUx=?W@ZS_)1S3Jf?6@F2zW@jSpqiWlH{fKO9g52HfBQ-MwT z8&IWyxhopS6@f+=2?D+l*p&4}=zTz?tJ{AgGnx_TYs#L70a-Q^(}O?RmjK3Ijl3pP zzOMqq|KF_v9mjr%HP8PU?k1pY>Pk3iOn(;%UvKFrrw#+pjoR;S}-ptse#TDMQ*7Qvcd0^D1S&Jj%SPEAuLe--RecNb9M0b(D9d@*WW7UD=g4S1Xe`We6cN z^>U7e4q|P}Tjiz@)RnhpqP+^gbH!IL)aRV1Ud>A6Q(rk7CHhQU38#ZloAtzg^W`OR zPJk|%tX938)3ier(ngN`z9msMNS0xGOMJHp1>=e8zc&_EuKtH(VP)#qoWZrFv3ptH za1eV5*PJ+{(bd@2>P0P$*rX22q%qqCyy!nHJ=Udye+nV8&OEG{Bd4`|QPbz9j_Q_J z(K_zeXkNY3iY*JB<%^wG3bwV@w}@dQNV*vdN2OIopPM>zN@sp<>gaP*N1vNI`rOpf z=cbNg-G%>srjA-?)mOLFITh8dZ8UE*wW+plxih7D$)d96=GL}I>!P-L5h!P%iOhKR z#B6N)YklUyTFFZKM-(ky93>^JZI<2Ku{9+a44R!hbS()m?&tur7qZ*F;Z(_-`@Ao~{oVvvqyogcfVxv6bQbE6UP zqYbL%PBpfJHUfiADP;2JH=1pnopW0o7MLF+agSW2#J|l?6Qc6@ZS_m)8*4jB%(DxQ zvAl8gt0ew8uYTvPp}=O17<7<{@!3n;V-A6Kh7K!jkI5J#ONS{2hidQ;K{a+cdVx}g zlvbz)SM7M6R;XxsN-b6OoqB74)~aZ!O084TvK6gbUAyAy`Ltq1YgM#vMJrddc(wnR z`zmSCYCrgfkSRGh3UN%taV`$Z%wBdpGc6I zra=(rX(Wit)QrV77rju}a}H+!PQm?9VsUO(VsR~$7jiC0VsSN{L0nFkSX?S)5Z6j2 z7N-yy#OXkZ#kF?^aVlSexV~gA#N$g4*UTAoODq=GXc@#cA&Iq5cyXFn?r7!_5zL81 ziN&ROUdXk0iRHWmX4I45(7Hb;N0um)6&!UU%@u1wk*bQzK`}2~(P+<)r=l3nkFT}o z$IrFr$Dap^)K|>5bo?k#WJkpaOUH9DD*()~FX;G(K_M1r>~Vo!NO^qfU(5l`1)U9w z=d74%>G&z2c?cf>8V2P9fpx_vcrMWK9JN!g;}uZqb36*#50tYB#3i7--|3civCGwg zaIj40^O5qoNclXZoG>OW5n3#CsL%mI6ZIJWfs1$@>j&xcLMgjJ%zPl-B$V%nc$Lr< zLMa}>@NpezD63t(9>e>@$a|gHIgo%k z|HkvXanNN5{)^zAg7*qOUhrFj^8~*qc(C9P1hai4|NVl;3I0TIDKQE%3p3qRVpIUd zmBgqhD#QCFVpJrRajhms1ytNXj7(9?azVWZm0@Lhq27bapk7UkwoPS7Zy-j~keg?c zg zDLoi<2Xxg8g_?q)qV_OC)Eq{Ln!^ZDa~L6N4kJX(VT7nTjIe4Bg(LKOQJa8@hB1*g zMy?+t*N>6w$Bf~NJZk-i!m%TZa_Ln60Xkwo`fR8s#vQ5t z!$xT{RR7`OeB0N<2eVyR3BNk{X|4sde8SGrgxtuO*10 z@=K-vp!~2PX`H6-JmjAQCC$H7`VVLGV+&U=7oU8*#dE=rvgmM0`K8i-=-|KvZlop7 zjlx7ANm72P^dH_6ey`!XMz`Y#`K8i-cpe?acz4gq@yPfS(syY62j$1UCEbzoOQrwN zBiFEr_SOG64ifTmE*x8$l{1D%2B&R=|3D?c@lIV0qY@MMftvlZ>IWQH+ z{VPw{zW{RY#@-pMie$h}lmlIYH(u+z{_0B`w)tRNt8~TSZExJucYPl84Co&WyHFE+ z-4?zHJ6QKa4!!|*=`v`ICaa{xA{xCD+ zX>>jNWKzci`=<`^Wrlv3nYrf0UkzEqJSbUl$+rH!U}!gNtnCq-YrOU!>CSqSZ~krz zhaex?@w}U0Pi^nz!4s+H;S)WNJ1=&(Qa55XWc~38F}fA_M)qmHxV*#ICX2IOMtfz9 z$y+tQln$Qd^!&2 zptB+Au0^`*kXP-GbYDLo&q}*-HlM6M!tMoq);sV0_Vm?btxkpGYahRRkPX}DZy!I! zl$Z0({;YZ2pS9e#>yzf4n?7E!bJPCF&P^YkyK~bAXYJhdugi9B+TliCL}A`Qn_o^z zzsZ~N-Ln-gXj%t>=VNH;z#0?iCvNgJHJG zGQ;e{KAcPoWRM?6eg2#bngz3}3z<9_NDCDsB+HJ0yJPcKkHg<-IIQY|N7V&Jv8oFm zClkm{R2MQhnC6_2e`bu4>jXJplIG926U3@6WZVZYr-l6a-LZMA#}B2si&0(hI0iG& zs4jR^T`stXz0fcN0=PYsb}59SM07tFJD0w%|r?Fr-W;be33R_{YxF%PB8sxEj`U1%n> zstX=f7dRm#stXhJT0DTc5$HgEMfNodYn z)di1}EarNvy5LcD!C*-JVe?jxlTIc+r2e>hYsLlySk(pd#PTdbPS>UTf>w2*=K_@0 zUQPJv$z170vEuF}{#hPX7YMBCf=AT_1C8o}N7V%bjp~9&)dd5M>Vikrg;ri`R2Mv| zE*NN37d)yi7-&=%JgP1jXjB(GsxBC4R2Mv|E*NN37d)yiTtUuObs^&#_^s+fPi_a; zYb<_3%mnkWt`nMz2*!^$9Sw&+8Xg}f+v$$YTRn=I)`5{#UGS*7V4zW5@Tj`5m}iaZ zg0~FN6j7tP;8AsfyshejN7V%bjp~9&)dd5M>Vikr1p|%hf=AT_1C8o}N7V%bjp~9& z)dd5s>O#g9NCRht{a2ZXF-3R+bd;inyA*)s!#qCrc8L1JHj)XC_YZe^tLlPB)rAUV zwpCr|gUwq#sxF+zAfvkAQFVbr%%ZyBQFUPhu~A*{sJhTXXjK8tGeJ(b-`fNCa5lWR9!IGsxEj`T`(B6391VoRTm6KZNlcQ z9#t1ua#VF8<8ma|QFXz@x2g*sRTm6iZ&VjNsxBC8RTn&}E||pMVpJDAsxBD3!ED~@ zQFXz@x2g+XiDIj|;8AtKoWIqmE_hU3F!(mJd8|QFX!K+s)>! z9#t0%zQb(Z>fNRIn`ZM?kE#piyj5NBexTT@E_hU3FzL6d3m#P$Onj@l;8AtKV5_>| zQFXz@x2g*sRTs>8tGeJ(b-`e(y5LcD!C|QFXy!tGeJ(b-`e(y5LcD z!CcW|f|Ag7R)uZZyDZksy=B*x87rw;v9cJ@ZkE#o- zqN2LsQFWn+*s3mgR9)Z(v!c4-eFSXoXH^$GsxBC8RTn&}E*NZ87d)yi7;IG+JgP1j zY*iP$62(?^!K3PeIsa>;y5LcD!C41H~ijkeApGgjQRyk)dh3@6|;G(N7V&`|7bRE^{BeAg!i+m3m#P$ zsI8!?3mNMHtm;D0sxEYg>Vikr1-=HWy5LcDf!$H7y5LcD!9b(B;8AtKK&!ft(Z-k= zI7WmRY}(F)_y7@@<}};Mrs{%6)rB35Y*ZIKsxJJR5Sx4#i!K3QJ0m9ivb-|Vikr1%s{Xf=AT_gRSadJL_zjLTV@7^M*2r&`8u{%W+u#^0S*|y=_o<=NLdBUy z;L$@jIL?l3aNN_H4en))2=|WP;J8oR2FEV@C;u;18agjh{2M9_T`do1`zQK>%ih0g z{{jD~WBvKZe&}ZS^L_7samUn^Q`>`Qd~ttp>5Sk6|A5}Xy&nc&5AJnWJYE_6tA9Y8 z`obs_1v<#!tCvGT8&qRGU4KVN5QOQ~8@sBuYkV6rGHIJ{Qsd9~RNKA7BXTLv$Z{2~-iV zmiil-%m&k~)+~Q?3u;QZ;R}xMy3+uGeOld*+l?9lkZEIJypel$o-qMn9Q`V?U$r0& z8=ibFvj0CNvd^(dg2+CnjE=Q$LPhpDeJMdIvd?)Y2~v@LE@4R!S1S1$xojXoDzeY{ z2?^rzEMsx4K`+Fd6@xfCAwxE<%`%8{k`jw+fDGash{WP5GK08`EU{E%pKF8?OGWlM z4JNTvWS>*m5~L#gob{9-t`(F0eX&?7vd^^;iM3A>!Rbu7ql)Zv0!?D6$Uc{cB^GS8 z3f(RAC7~*#|3kr>h2AandZAYdZ4=rkl=}R<-&CPz2puEz zaI)vUa52-Wt}ih%ROK?LFB6aXiiz*VK{t#TFKCnC(ZqomKAjlVNaY#1eot9&mG|S~ z9A&{3R}!N#DCSHAWx-XRFG7sDHkHSlPmD^V@^p)cQRY;Bt&JG7go-aGMpf*QYm)D* zB8Duu%9Bx7fwJJ|%6Y&}vf#{YhN(-G1^+Hi#GjY~% zfd7_&Z%)9SWW_sARHT#@kKd5w`H5*_Uu4D&XB^ zlWS}3zNWclMJJQ@^DeDh((FVaPhJ$Ca(-&5L1?FwT9!1|Kv^%sFL8WQ5-seTD~?W} z9D81mwesC#t$25_mF_OK!s5kNR=n7XdKX(s?_w+HU2NsVi$zR4$qw3fC+)G(eYA^n zWA1SF@JEg=8f9b8&1`7G4g%<2G}kVzX=A=bt>HUK?cvWweROhhz)>uAKk92L_afuM zwF^~@Dr@AyQFV+vQhD%aB|iB{lVL-;$b;8bw^d7IkVs@=>1-Buamq*WOtdM7aw>0~ zYQJjbw^NuXzw^+xNIE+uSNWxq-(K&tjB12mPi9zWmz-Y;`}I1_sw~=$kY6hK?N7@u zmHf8yyGatL>8nTnNme9%-c<72D1*jKzg>{Pk20AFF6r~8lHaDZ1KqWjIJ*wRkId08baK&Gz~|n{MIT`mD2i89ew%F@ z4;Dej`800IsGMH)0T#FRs>~72`XM;D7jboIWLqBgG%maG%7QY`QtW3u@9M}l`fG5^ z3(kW)@VuOPJ8f7wXs7VBQWLivG(OzPug)3V)9E<@`})3#eSP=2IYlS+bQWh`eZvVT zvVE{Oaux3%@%a~i8S6vAr%qWj7{@dxb2|58&cnXOOqZW~FiX0~^AzlJOqpNySM7@l znwr^F&i5;b;q(89zhU29Bsh%IHrChd{tf}Y0guWFcMsvogkc=+>x2Wh;&(ERzz2k< zkW~ZWKM4o(?C%Nx6@{iBo5mheAei%+jZO=Q2kG7 zBu9PE#Kltov(Z?I9&Iq!Mz6|t)UWsOIp?RkEEeUw#3&vDY#HAvr~Y$>!;-!9qg#{g z!a+B2WCyEIOoq^3GGg#__$@ zyMe^`a40SyM%B~)EuWv`d+q<7MvT@`aTziCs*0x)BN5uan@OAj8O>~L_TjWW^>2S?iB;7B_h9BGGxBkgc-w7qV$y>5)XZcHJP6CMAJhz`_r==SADZkyqMEP-?VZQ-NYy{<(YTWk%3mDwDEpcWuvpPFrYXhVFQjGgnbczje z!6W3CYTWl}`K227DL=MPbeg_)$zf|MCZNl$OVRHHr@=G=D`;Msuu@q5cGQlOJ@6h8u<)`DmBjuNB z-1nNKZ-6AK=4jHFWZc(H+7;z@{Sop@HSVL-JKepOI1e0#A2XBVzP%_dHqB`klfXq2Ee9*!<9OYl2r?d9%N#v;G^{e@yjOgSciN^g&Bp z>__#p$hNyLt>2c5{jW;$u^-r_`P+if>pkcXF7zEdNE1MPcrD{PCD>E!(y`m9^V+vJ zc_!&Qjk^FPGjI2}-JgP{ZZI8P1O zh+jJQN&NUu-i+Tdgg+x3xD&tp><3;YJmq=(Qd9GFqQT$e2^@BpD2ttL+ZY-MejOx( zKS4In-JZrzS|F2`{1%5VC-X57(=$6I#FK%vEXMBs41Q1`K6``b2~xvIQ*2Nfw4=!k zJGRV>7aR`71c$S%;Ba>p9G1c71xWE{I{4H+h8=Qtk;e5GbG*6yi(AeLwtncY_`91C z{EI&~Zt$6p1kqvesotO35CqkUuL~IvjZ&%J*j2S%qDw$-^r|ZL#;&T7lTi{I?d_JZ z|J-OVmdi&s#*^z{NN|2*b9I}uq{eAp0{c5=AlJ~;HnJ$v<}|k~ZH0gWfK!Ujt+UW+ zI-(KXvc{oL4n@|OY706@vT4e!(kW~rdCfrk3M7u$7Yv&Tqg~GY@o5V zwKz62H2p^te>4Y3(|;VtFT`;rj`cW9od#v4J{AWYD>akLDn9@R9GeCPv7$?mjLn># z2$Bn(_u$93pr8d5eTf2QNKdpwEX<%?Y_ByS9Bk9C7y3W7e#`HC{P?Ym7`dZu>QrLn zq~e*x$Yt%Pn(-FCq1ul#<1O^56|-t`{HC~(IEWUMZwJndx6lXDewG<;;Tx>|q^l8! z<2UV>tR_ZDQG63IzQNkh_!=>)r1lfONsP8vzw>-mJ@_N;6wo*r{ch{|{t4%0$xtgy zvNcb&fpv(LLfH~qcEpwqv1LDO*$!KF!QeC_DNaEu%j>P80)CVjl|Tp)%o) z);`pz5u>enDANu3r1fBW&<-0#C=8Gra1AIAH4a&f>Nk7EjP z3U^S(TWTLlF^Y&87ov_BcckOOPb9wDhk6!?VZnt!RrncDto+y46_3%ryveievYC%MERQ8`r%9`%hP;Ig8g| z?07HI^b;Htv1f8^@qnD4{_Lb}=*CL>%kcTP@Hgx;3x=B4 z`rW{q0f#CGl z;7bbxnS{fQTaRMNGqwV1My|2Jsw{m5?O@gU4({rASXVyNL1>bWjUA81uYeBnWnLFN zW97;xRt1+$UpaO9*0W}Qapkq{;%nR<(^gKO{={Q5IzDjgr@8$e@3cC)ABm+q#Oi1) zN~Mk4^*0u!D)FQ?7}~;dEp&=R(iVYXYb9)hP=;+1zp`hT1Vu@|u5n7EC&e>IXsuB2 zDPJ!B)p23sjgofp#ofOwdQv>AgzgpUb2tgn$vr6OQK7i~#7+?a9+rR|LYYMIMoDbQ zuHC8s+>kwKnLN7Ddsh}Rj4y@i0k%(w4dt7#=>T*JB8H;nX>%4Xau!XgZk%t1^w=B$ z1N)*Q8r4tBeEi~}$k8o0*hmbL-2JRa^=z1V^b!8-cO{PMd4C`#um#JCY=nW14}ju!6(FSJPY1;{UDj!DLmZRG3Dz? z*+7%BktL;g1*vJ_LD`-Y?-I(-0r5jZzb%y04Gdo|^je`;2wg0cUl+!kA(S5<;vquA zLW4p<%=r^QweQHVTw-Jhzb$kFam3?cf_X9B7#y58(9hv`Vq~u3iNqKu>NsRNaXM^v z^IgNS`QyBS;x7>+k&5RMXTZD#?m@Qz2iJYIAKgTZ&XV?nml9_|#vk{fyBr7S4HT~; zM!TT>$hE}ib7?=2ttsWYwI9dFjGsr4d4VKVF>WDP3`S%0ZVX4;Mc=VP?Aq^GJEk9N z*M7&^wcoK;6nLy%K~5@ATsXo`4HT;R=t9f3u&_wy14fQHiuK{Kg~ieJ;S{E~KhyQ% z@ApK8!s&XkVibW-wO$-#MTR3k7O7Fkp+CcbF7pD1mJ?P!yp(P=%G{xxj>}T57c0MG zBz?+n4$_C>M<+GF0_B%#9RCGYT(}=t;(QZjI>9C9mtq|MtngDFGbK@qL6h=JHIDzZ z{8EkMmEWt9AWh#h$UkX%lBO@!IQ|iNpTCm#QG_~A_X7CMu->HnQjOy;m;Bt#)s&Tw4 z?Z5!xw^Aq2W64aNz9i%LK?(f6bA+`k?7FR}OU@01i&cP}lN2VT17oR@|BCZr`d+s;8GP0QL8Y4IVQ{V=DY z>Fn7#Z9$~%Zl-OhvpCcTY0F32HX>~^ZQ5$CF2yt2`4Q$5)7U@1e@-}1iu?+j_3^}X zhMlr5d6tJfql|XgDUY2ijmuA_GizcjKX+cVEl>0Fn9gaQ^3Q{#(WmKi)hK82LJw&k zfi&+xn&-ynXIV5q%W!YL$LgM?1uMa`EFbeNc#mA$&%--ROn+|QuK65IfBPZQzcxks zufAwo|Dkd3;P}qZQ~&Y7(WQKzi6|f4@H{1W9>=$ST6_HSlqY$fvQE!qpR+8*b0Xb| z_;md3q9AI_Z~mj`*B^Wdrd2S=~I zJZ2kQ?POPca`50=Sh##fX#Kw|?)Tr8@|-z4A%hvh=Z%kX5g3}f+vh4I1E3N8Jcz-A}E`u;HUGwkxoOe7b8Nq zU%(TRIC1u^0H)>VZm&91N#aJ(kv0fTueR&+~OXFByrmV-3^)1T!))?yzG1gy;vHog| z^&N4nzY)j!c4d7wS$|(y|1ie-kr?YoW2}D=WBqs>>n(Atw+id-mx6U#z~iaztKbg= zdhnFTpB|ZbQHPtrO|7w_76{Y6;4AD+wU+ZjUqa6%J{~Ef+{of1h?%PH*1=E&f~%5Zl=G{=PtR%^`^O1#997TKA+oijhj8qoxuRlzYzgV z*SNi=xl%l`rbF22S+cAEQu@0ut4qv9l+qAhQy54S9*V}R4E~#S^ zPKSjc9sk6#ZMHoZ`yDFYxJ1TITHgo>(8MR1wbv*yE?uVN^;C>Ym-n+yZgiW_WHav% z%DHVqVXRSnQSz|(G-s2fSEIzZbV;wCigD?Z-l0-LMhQ)pUL&=I1jR~Im-JT1<@(x_ zq*tTFxO7Rco{DkllHT2NqrHbn?Zur)F6mXhnr-&Oj!alr61#`>af-sG zM`yMEbIU2I8~CGJQ%S+cnx9N^vT%$sC}B3VPIkKJ(5FWn@^tYb&)PdPM>ev^QUYdBJ zGkr!-EcY8{x=iqW%RDXq%RBQIEQ$PP!52I zzbcd?BjP1OId~$TA(W#n;vqsg3?mK-pjgmUOf{0@FdIaVcoS||sx#G8a}6v|zZ7|vlY={%tv852(sDitA} z-)e>r5SqBA_>sKFcZ9ws^kt#X3VlkbRH$^0GZ{&Ycd7VPVw5di11TlOB9E>SOd&@5rT8pjEGQ{H zhZu>_HGm6=F=?uE__f3s+~^$qLShVRbk2JTFq^~JGPEcoACP%IQp(?U@-EfihTLZfVY)N;kT z?JVSq`5>@;XudrW+I`|<$SUH$D_8s&3lp5m6)V>DL$tHT9jRRLYIzYVSG*eU(R>)Y ztREg)u2}g<@|^RKAQb7SLvilpu-eG~+#5$i6-3D4ovufI zaMt$wKRS2&{re-^?>|`X-^D#<_d>Q8%g*b52>sCed93WWpL>?x;CFgGe?rEZ8?G$5 zr9bvZ#lCr!yUl*C!Oghi2Iz_`eiO3BdvV^M-IRl-U|ksNldvUKiE6TLBK&V4erdnE zXG~gAzs-T2qK&!XoK@-0?2Wkta^J=-H$QzsXw63GtU9nylop(uGr71fC(BoI z^Q6A>v6t%noaax-S_56y%D1pC`Zna5C;ws5wx1(zI?i1W8RpmF|6B3=ocn-(jy+i) z!W!p%tZ{C~wCG*f>lJIByRZjtCDXz*FT}F%D+doA=R=z3`Jpe1bfH-^a@HkGAMGf` z;Vj@1NuPuC@mWiX=VHBXZVvZ=-DL7?j@f5*4|s3?iL)!!{;Eq3T(up?gkro*TQP&C z=61EabThKp=YN8~`M$j*IE>S87}kb%BfvNK0~_wRuM(cZncS)H1r8Dp{{n9Xh1vk9 zZ^Ur?vcs5WdZ)uUuk;k58T}c^rX=k|MmDgC&~#}HybsVy&lPZhXqv|~GPSIK1z$HZ z^_kO7@V^)-kiiGYd>21K`qBa+Ui=mgUrvZm#z*j-lEssOwC*HkH$R{G?croHB-j%X zv3ztGz1<^}e?|#Si%o!Yt{g&zcCLJ?nM229xvc~|503Zui<=kEMf&M56_;x~u?7ko-e_AjM^0fg9r1M`{bEtn z+a3+7O^mJ|j?1G_YSbIM>iivYmZg}^=hRqF?01TIw?%{0*GDeGTw1C6&y%p&tm>Rt ztP=HWO^mXPdNzsg6QP`^n<5-^rZw5z-NO?9nb>ucXUlb(rexP?e<$vKlY~W-Xy%L% zen~P3y(DRtv;+E|ojOcbvX6e^5M1h(w8C0D4dm)TCn}R26UR=aSzX#xcL`?ljFot` zwgr{!B{h*nFsW6jo+2n;X97=w%Swd^As>15?;Zw3p$=3 zBz!+BaxER-hKqT=#nSQhpghk+gN|qWgg#CI?}dzL%(e8w(?P)^Do@S_Bz_J*r2L+d zepe_zf5c`n9`qW)%Y^c4$@5i0rwKhnC_k?FPwyv`?F}(|0i^sP{YcXBj!^SuN4Vs! z(Gp_3r{w%YLccBa8$wMl0`aaFtaC-o7hXR{C|he{_8Ult2^}aDVsa*&{ZF0`3I#EE z259_T(QIO5yta_%C*XO4*Mb?{#W*;Zq~qVk#DN&*94P0KbUe%F;9Qc9_pT#G-&^sG z#7Ly#4aDf6>Ui#UVsrs?Ja#uRI^8;+x}O*|PscAT?3_zd%=VUZNje_cL5wk>jwkqD zD4(w50X}BDe7cl7gj$yeB3WSqMkQd8XO}6PB(2$})O?4OyODiQkb$@A?fgVRPygM zL`28-hwcT*M~lpFa(*f1o8IXZ+i{xM@N{;aVrcqO%{P5oeyQf0l;3wHO`5({$Un)_ zr0GjF-*ks56pr(MU#{^be;=vln{Jfy%lQMk?wnZY?2@K0)qK;P!mm=& zchV8^OEus0UPAe8(cVrhjS1;H^n8=@WBW>Xr2JCNHw~5YJHWDY9z2@#C7ExUnZS?s zF%n$T=S?-=q;}co3zH8H!;j24-?SFrE|!T0(U3g|%Gby~5*^z%9(=|4gmo@(z(?YA zzUkmfXBVpMx}dM*Kn9NcSDv*0&jDvK?7u)BzWup3oV3sbkg6^Sz!WTi@;NY`x33WBeYseS8G^=MTVcT6bJKEa*M`u6xxZdCM1V z^DQsf_MYpke{x0hHg|H#Hp+zOL9d__r{L;goLbN zuR~;e`^RK^wavx+jp@#Xb*$y?W&8n?!7U7*`v&33gpA{=-wU<2Vl2nX@(T0*`q zUq1Vt-y`f!IGFISgvSz|LddiR@(733;MaeXlQxj3fSiWlNE=ExoQbN&kzPz#I32$M zaB|X4B_1&vzqjH@=MFIOrza5`W>4_+S)ETi-ChL`*ly$X8T<)ynY`QkgCE@cF!MgC#U^7DIev8c4m0Z$o9Icf*cO}HN!;Dp*^I>gPe@0m=;(Bn zjvV5{+)nVpCn*%!^!KUPeuUkTzuXZ#tz)ITVwxLze7f5>%{?~wpg%iqMu&Y&x@5vt z_KXvYl5#rdrxF!1jN;V(U#5UoIOC|#FBS*s;gp*&q);}#^v0^ zD0m=vnaK9p$I+xj<JwhDK@!G zI~(Bvpm1!g8N_B-f*fZz0?;ogVBer8=2BSPLA%(@=ROoKB1XSbaT_rbp<{{5h%t`PvA{LN_z-Ge{sv-n0JZPDju&DsZ#@Xw}jpDpT(b4SdHE!IPQMtxJ-UbgS z`=ZHKYOyJce^=h->KvQ9DsQ8h!wnv+t8_;?U%|3Zr}8$l2cTdxpv!#4q2+Cq59HNo$@=G=U@ra}k*>Bu6N0YuJ^B*rJ@VoB_`K6lw z_*nQ|FS+!q!|-D?&VRgu2V&LiHxPT3fX2^%a9)Im4@YmIAV=k%#L`v}dvgu`(lyUz zI2mgoD?AQGxlb^+YHP-ZbGGLDf{=T_97TP32lc*DwvF9Chw~HJxjB2?lZu?&yqpKo z4IrN&Z2wI({^A_vnGc@$tiz^2$$|Vo>|IWN@qBW3I~}yE_v>e#8Sgml#V@0cv)Pnt zzTzf4quAApo3GHi2%CD(GD3KGmdy+IM%>;v;1A$y<}0p4rSP51rJ2b%0_zF$2^$#S zSaeSdq%+`69R8g2>pa6L%I9r*D%nc4n|&@jA&dl=(Pf7tPbIQPIP z{u%yo&=;BkNOu0S{NXIDX|e}53t|45F-9;q{cQxL`P28~>;pWTlYS81AJChh+2TJV zG#_4bmkH)B%?eA*T~;V8^@p>4p_PDd@up?|a9>~OMup}6aK10}O~6bX{)zr@u`l#v zJv+&dX`awdg_Hf^3Sa0cgr+dGi{({i^xQyLw|1k4lAHmCe`iHyW_Do;MMRE8Y@d)4?Ux*4*dx#6& z@QyrR=ony=pdy^_?+ej7l*#XrZg>^&P{pI%@M_?3ibuQQwZPPOHrJ1F!|QVs`a(ZbILDNLUn{)OA0FWg{Q>Yra=wTK0$LXE{|#aOh<7b|KRwprC&)}S z59>O?t%zX!c+=5v_@m+Rak8Dv0shud6}nYF1|xr)dGv_FrRG`d0e{7_%gn=ZPaIQ3 zFY$*@@P)1bByaz6f4HA7^ks!B{NXS7LSI#QsXvSo@@<8e`NJpqLO)V?xygwg3a{{o zQG9-@@JfG}Z}&x{frgU(SDA+~MHmfZtZz#nVBpm97H~D;_ zO~8BsZUIU+O3)LEhoN)>{|uO^by1tv0Y9hbQJXdZzoHnm={DfMDMoF&1Nc3~s7)Jz z|EU0V$CBw2D?)TT{-xQ2J-l+ISH~cK{kAO`X`-&TW0r(G!Z*s%G1Kz9g*SX=BfZtQR-VMJ3 zoQ9HP_}}b?cLVnZHi^H*4gUrB3yL?m;l02^HU3xK@LRxVDE^uoeh+x2;#=MD2f#Ew zVff$XhW7(6Qv7u{{0Z6>oCGTYxJS-|vRE0WVa%86O5_<7~U`N$H3np{t@2i$-Yo8v`Qwww&48$=PBNb_X9ix z_&&ye0`CWSG_Wbp+uZQ&z!QKU;rR}{FW_mwtfKzycpt!j0j9d1e+Tjd_)Xy3h<}3e zfnLK0z~=rx#r+F>A&4nk{4?AiI9r+q|IcxM;FAYQ|juOOy}bGZg;{_Yhfz5;j$^2q-@$^-Buv^s|Wi^$*MzEFkY-=ls3S1Eo8 z`3*cz@yn=Rz|D$ZLH+|@uK16rU%)p3Kh6973GV|RO{%Hc3?>8NqG4h0z*v;M@6!qqth8EFrU4@Dn#c8oyGkMhuhBLuMyLa4s2jVkQbS@ z^B_Jz1g2@tcDm0A21bW+5$Sjg5CUV&T?PXVBt$2s9sR*^(pCk~iTNpTAH@HKvI65#7ciHZUWA*Sg^L1b#1i^jztes9@IZO! zMYP#Z@R`xyLRS*ZqiiGAb@`J@AvnQ&DiH`a(^bm}#hJ5!~#z zIJpdgzUe&%pqn4d4fHyqIpZ_=(<3gVcbtEM(|w&Am>IeiY({}cpvolen}8*Rv&uds*>?s8YaxQG5}q2=F_KBWMzV-&Z^ruNBybOg8DO#%lr&DxQbe1bnRG z8ssGK$%^OWd4NYKUV!HT9;dh-RSNivz$X0-DDuEFfZxK)4K$*P0AB!X%K9QS8Qt)v zE=Fc7LZGjy$8R`$^;s;BqS;A{Er6!S%eI@XtU{qPP(FfIwmm~-+cSInLLnNN!8p1* zgyyIACMeEi!Ob#}P&>J=r|q-` zL+*aZV^8=e_6`2kAHRQdJsywl5X-M?Z45-I6kivDkBD(emR|?RsZr4=Tv_Pkh6CZr z;5Y%w{-xD%jepeYwmNxW6Y)R0beJ%IUgI47s$pjqPD|^grW&WUd{L7#wJ9=XW@J_y zo>-O(yX>^Jta?d9^}NP9Mr>WwR$myYEFA45h8CI7){2>AS)nZ3FbUY&(ALo06q&!I zdQn}Zso7c7TwA9`ERf5*bL%;!6P?ngYMT!Az!ta!6*=d@Uid7oU^+9FEU2mm$5}{9 zq_WtVGE;ceH!s0n&rNNxgAv;)tZXy|tmNitj!ZP{NrZ(&_ zW-MkP1)7){vnrkCi=9?eL+V@bV50z_Icz+oReV&2OpcURMOq~S)S(96 zrLL}~K2lxN*08LhZ3VNSy0NkOlE^&pzNDcRxzc(`Lt9O~Q&Cn`#fvMdTid<}UFWGy zwRK2S!-A%|+T5D@>Ln%-vw*7`XRm0fGq3^)XyN6w;1Rh58q#9cV^KBMhRq44v2^Ct z$o$sGluPY{#2}(gWv+s!M1ZyTgpk_0)&}S$B!q(9Lhy?&P1^z^cki@%-PqO=!4_AV zvc_tgFbAI2`f5Cg`8~Ixslr+$nO(hPL0ub4OB1TFw0% znie1jt$h=`h1!OiwisqUPHJsySj3Xt6n7Vs!?81|u9#hq=Bgfw7pC-}pjIxeZfdJ& zz9f#-qNNd*;L35R0kbAY&YX2lWn|XUCCeI?H7|j%K*N&OHmQ`=^YOwcLQvO+O3~D| zq`9#XY9p-;O*N1XK z=3!%jW1RA`Ley_OBq{^_=BCVa2GrG{#x;_dU{IEX)=1@Or?#%Kt@=!qaZ|DIS+rcr z%e3`xXlhy77C|Dg#!MNC2lpf&(>$wLkVnX zLOFn_2CHK$>Z1X8OSWqA5i}4yY@pe%~W1{FN&3(HH~G5<;HwBOxeZd5nDCs z!}Ha&I+MAzq-lcSYsPD5Yh?1n)Om;5+Ir~Dg87ofQei$!T9i;-CeA(&4EfvCJj*oW z+Rm6(qzn!C<;t<|&HByl>&#nWhs}IhXPE}E z^Cw_R^^!$p&CRIS{GN;45CctQ-prnu&GK!c7|y0uwS28LsF|kfw?#j5POJSO#(f)& z_smj$CY@H^V#-YWeY4F5+Z~%ru)_iAB77&=F)inwAzh!w+_i*gQD= zcu?NcS%S|~E!tSzD_$)Qz4xS2SSxpS`@>M2+k%5}2H~KKzm^!IE8`dkqb*}*>uBO& zWJZm%lxlZWx#JDkfyZo%S%Ks*jtl-hac~8aE0oth^y{YvSM7NH>;wIG-kNz!d)2+m z7C$m|%`JVW-WnLW^6f=b)B9ub^0^&%7Z0YI-p21dec;*^SI?&k-`^ex6`rzh%ANOz zy`fa)+yBdbmA`xM{A{j-h45fGI0|u0#6h{@i*eA}(K;OW;CKwjFLAtr<6Rtnj1{;h zl#k;y95ZlK<7mUdd3Z!IgNWXCP{G+125~|{*2y{j&mc~YNf4)X7{pl&3F7()gSbE< zL0ku85GSQ2$P9iF#L=$=aq*9__TbP9g+0gaG9u#2A7gRGOJZ?_i9sA;ORP5m8FU>E ziNysd2JMK&;=~MtILRWhxT47*PLN6vXYI{}U?4$UiDVE9fdp~oi$R=em!Q`H8N|sq zNtcfa3kbxD;EgjzoiuLTqdP^_lxDa=$7-8x7Vo-2NCngm+ z#q`C38-yOM{2T8RFaLHbF>bsTl&%CvJf0$W9Vp#Q9F&jSU=T_waUg~%?@IYNmA$DW zMmba26h1fQ;}o|N`rx=qlgL4&0>e9HPU8=rW}yPtWYJ_ z@GG=Zaz)leRgsl;E3(pVMONCa$Z{#NQgWipC#rm+$v4u<%#E~qeIqT;Q7k`4tKU}y zCBZSdbaOMCI5M?^mzbVk%ruqBmSpmBXrvt{*PJ%{-rj~Xk;>gK0y4S022L?sVjgUP z>5f!hE*s^8j{H!xooC9dTqm0Mc804v+`hNUr&cZ)frOBsI#h#BF3OLU7cLT+J?XsJ z*3aMNk}ec?<8A}Lcpj)mo!sH%@7jf*UbIm&N&^z;;pFd>Ux)BfezPZuykY0ZKdk)S z_%GN5td|OOVK^Z{sraRkzx$2IRVtTv2BCT}klIpR6NyYbx3p?<^zMI7;CJu{`K6M-bNMlcyHB1fTw-ASPp9W4=!@g6 z3h3H{UXG7D_dsB?0qa_-LK#AI96e`gpb%jJ^*`ISWMsi@q)npS=mE#oONSh@99({S4Vw79{a-n z_4|4|2l9Q+0ko^@px4+@dTUk3DKF(+G$mtj&Xko^Tc=)MWn}z(kjcvn4mH=ii1*rY zPR9`J_cE*Z&0B|D;C48Jb91=I4{cxJ88DCb8`F6&GEs$R9?jGm{L=< zHRyLnJK4i>=4A}UelbIH-0TtH9ggzmemZ5pt?Vd6I=DX&_mZK$BV`JMxX-5Zu6b^X z8(g!u2h!~;8Fx~KvpA2ot^VBH;UF&4@|46m39^L~YTT_~#31AckUyOA&(~H2ujqYZ zci76}b<+bh{m$^pt;el6Y1TXb{yDS*b`0!CoF`{yWV74D6c|9E^8m_eJs}pUR4dFB?pydy7C-l6H362W_7 z9zjp_O+1f__s??yq_GBjB@e*;S7WcA9!THW2P?O3$8$eD#F^a>`mB`mM6+vbsPX-| z+2eD{@J>w_aB2SVoc`nkTG|(TL4j8;bX>Xj(w+%U2jlVltEa{J$Hw_DvHoF*!?*>Y z4*2XI36-Rb{G2z&<>m~2zT5hJW1RzoUjsePIly?3FE#Opf__xvuFtrl*Rum-%buBm={?3&fIC5JLpe^K8PU;I`6n&sfda`P(WVeK`2qt{I7 zcJtQDLcul6^D^9{d~DU$-Lw4b_aKeTf0ifb3!6Ax*?>MzpPGQ_)@|5>IJ<8x>DY5x zNr$N)`N)G?osQL4mE6+%?aQAp1E2g8gKLi6)onfRY0B*ml%2~?-^P2D;yn3(FtX&p z)6hlE4>*+#Pv)-~9LiXe_hD%V278shjJ%u)K8I?vvu}8E@R~P}A5$|j*7W~bWLs%5 z$|KHmFD}%x!ba#N=i#01Io_5}-shjgoddl0?g@BDNdJ_vH*aOWaE zIlXt@asuwNe%>?vb53%D3#;*LuU%5oK|6x5#W{QL1bi>t<2S=j!eWg0XTO0x)Lra( z<>EPMA8{qxf^wvLV)wZP46`_U8|@X|kG<2GrrpRJmJLmhi+l)w=<5h0O=07AI+zCD ze-G~8j3Iq(4M0P>&T2DXDN!}rFIz6ihXtQ-Dp_9^Ulg?UnrZ+;D~sYTe;;8`!<_B}|y`MyY+n1%s}Kk1*9 z9p6U$Reev+Ny|oh(1s5DYe~n?5q4kSfjQUZ56t-m?m6f~f5+?N2IdS54upM8&@|VU zGd%A?lru;AMJxx^d=}jQWL$?KSRa1#OxkcSrmehhIA<=-<^IFp@#;9#agc)i?S}7ghTD;m;q;tooQ`|r!zUno zbX?v_zlMEH9{YOZI}3V}FXPR-@GRS5xAooAb~e5}a%bb4Lv}Xq3-4_FqV3wf$3Fw3TxVhKLQ%8<$osjwaFv8o%9`~cl;*ldqZvWQ1SCvp-Rn^%xy!Y8T;gB#S5FiQc5D02O5D0@oiG{-T!EiPQr66|C2%bQ_^RGbPwq^ zQdP;}czPB2QZO`v9p~R2!-@QmA(TQLGtZSZ@&FP zKtx1bB*6EggC zB`|J;Kk+*FbT7jn+v*YHcNM6k6vy0ypp4=u#WD9=P-f?7#j*ICA@k*yljmjR zSY4>EJ#Mu;6dsI1>xqKO>N>PeqZjzx&am?jwG8L*6$J{i~Ei6kM!oM(Pz9){asfbNL<2ACqduG52ZkhsmMp0>v?R z8~BstgR#xHm+ig`t}3Jz$6S6jQ?>UHr8wqN2}<#yN^#7k{)ggFb%ElTd(xyIj?KZ~ z4rY+b4|}emIOfKJtN7S+O~tYJttdPRp3Vq$#BwZMZiZK+-Q_Ss19rC`VlsBc6{6LR zt$q?+(m{e#W8mo=p*+}I^Se#KV$yXM{v@&y)WJGd z;vEQ7GI~1b4>{-`8Yjl;(Z{KA|A90O$jDKOV=iu~G*yaYZY(Hus2rs@=DHBo5LJp} z?)jk1+fj;R?hr$j;+RVn1Qn_j$J{FnRf=P7fuTxq%q=riDUP{|4b_Tc@sEI0CBa#$ z4n_@Otcc#=9u30rp$^|4BB$s`%0E;dXeB>`m3@#MalShoLN$I7N^z`LV??T(33@BN zl;W5>4&vRUT5-(16!KPbr8wqhLA;+-D~`F7A+rM_1}Mcbx7cv4IOftwAZr_;702A0 zOgLr}6vy1#4aaPP;+RYA2$i2!9CLqaIA#+R$J}*>V>Ur?%>6YuM@|H06BWneABG1W zFImp;#7O`%NP+{yXIix9pdL=WdyiQ=mExHDgjqY4;+XrAp-OSg{S)YuI2cDMj=3?I zxwmj7P>N&j&p|6WMzrFXI{*{%Mslq<=8iNISu2jYKQR1VYpTt zbNK;dHjUG$6vtei`4w+cieoOnm#4T^9CKd;R}0B~N^#8HZTKpsIOg&jSStRHmExHD zx#9OK#WDA^;Xi?vL5l5mLD?$)YNa^lQqf9rtvKeMXSh}zbJGleKq-#7qYQsgDUP{3 zx2p6%SBhiqRfcQDF}J|*H5e*=Y_}3z9gkKVb8j`_T5-%>X}DG#b00MEwc?n&!GvqY zF?W;UT5-&M!*H!Q=I%FKD~`E`4cCfeu7$2w_1B7HZld8@am-BvSM}A3V=fi7RD7*C z=9U=#gi;)HD-G9*WA1Xpwc?ojfZkZe6W9}Biwc?n&%W$nY=KjHOtvKd>Vz^cubH6nFO{F;IMxbm}-djp>%OI;+T6rIIRLWZ!5(y_wOeDyGn7)J#P3PmExHD55wP6ieqjx(yILbjQKUtcH<4- zrxeHB^9=usQXF&B!B^wwXvHyiJmhuc?`y@e_~$_I<$BA%zekM!Lbn_u+uyG=#@r>K zyukD;jWKtHp-N-SeZWwyF&2LxZXkaNKmVXaCQ^&$X`FdT)S4P&^_&^-4|A!T^gbf{ zmByI68Ji=i|5yljv$f$GOwc080)!zpnt4;7Zz-OKFhB(#@u4WdxunOjJaFEZ^2EsUu%rH z(YPI4L9R8%+*okcWTG(^|6>Fu@SZWJ>mi6hr7`B#8a`8LjJdZOK1*qgxx6t}@wLX7%iCzh^OeS!%ll}>wZ@pc z4qVkwYmB*%8Llfj$?q{1O0_s>#Uk^=iGdy z^x?2IJ+Hd5$kTN@LlZ7^vv-KzTx$h6t1S*lJLh(M*xfg?z0)Nyay#xM`q)$ay(UHY z{8oL0?bIxb@Hy?5McDpcoBdYq_P}FDj|VPu+8tT`LZIr-+X5N>#6SikPeJ4*TbDoU zRQmecferp%j*Fz|<7-u7=e$6z-+DghwiSV~xjT;qHaYVHk1t=Iy*xW7C&xE3&iVVT z6OTCq0tcKU){(#yfknrT=G4_6ug^VP|NQfTQGqAw{paWUtt{uUTelv?cXFPww>rCT zUAASr|9t0ddl|Cc9(elr(QOD19KgqQ0t*9|1Tv2vUB0~T=(f!#oL+%iXZDe8fhX#6 zv+g=^G>~!l`JDP~n|JzBJL7;d82ziG$M8v>ZJV8|w>tORN1V&h6vqy4UtYI!OW@-z zFZzadKDr&BR9Dm*>>MyzBP*9f6j+o$CW5CtW_ti8~Tlh_CnH zzjNb6UuxnRpSLfNcDJn(BR-C6S~`5^{Dg=BEF~nGMq4VlFS$nkpTOeMxb-fY!*pm+Gpr)Sdg7wTZ z^*rTynR@01E0t&Jxy$o1^-Pt@A^X<#%+p1Ce{U9%MndR(R%2GN%vpo*%T$3Of0{*} z5v*qUXCit-s@&B4*S3)IqDiLx$OT4QFOblNmQ4ug1^p*;l8 zHZ)8g>qGJiFVD2o%ij@atsI&`l$8~p4UgXokX{6+_4H1HZ&;*G8o znRgM!PfOn41CsA&UjCzv++W5!+rY?PH{3hO%SB5jFPgleW4#7R9wF&Q>QL`5ADPmf z^3sjbKHgtbzL}25yH#895hj6R3GcyL)&~!ru>Gzh% zr$YSJNm0DDr(--Ng#3BAb^fEzlK*Hv?w||FfApr-`H$AIyuZfm>djug#(JSz`aW^` zNLl6-ceegI6;>ZCm*GX_NmJB@G>Q3g^5zh~@N_rJnqk%u6hA&ZP7Lmh==eTcJ0qow z&)GU)hJ+P(aYmPlyfehl{0y39>xErJql%S!81DXA4?Sfu|)A7OBC98 z$p4rnivQT4&~`cgpS3}u4gBDtH*9slHdJxt4KPtsxUjYo7nLyCK|45w#n;0Yj(kXH zwgrnA)pM8RtBW>ekp&l+FmIteVJBk|o^Q>cs%*^FSg`SBdBMim5G~SaJ5FP+8o#(| zu%#eP8}Fg5jeMq4SEYr;#aiG;s&PrFEO<`ThnjfJ`?^G`0?5BO8nO1r?zhcFTjsZZ5##ele%&1C-XkZKX5TX2E7mL zEphgNGkAe;Q(sBas=hRw^6$jKn>=MFBMwN%W8`t;!vOflQ1AGeH`|Dh2-utqWqaY} zs5Zs|!zwhuVhpm-@CuEq(C7*cvd{nv4X)7G3XQbT*a{7_&=3oawa@?y4YSZ#3%{#Q z<1RGn5`ly5hF?GYGVtRVFT!sTetcj5Ab!8b??wD*u%Bc9ANbL1MlbxhfBJI#xJ#8g zN9*vr4?k`KKs5D2Uu=bN3n9JK9zq}-_cYLp?|>y1ciYj6dr`!T+g|CV_D%xfxZ{#u z+~Fm$xYd$g+-uo~arFBTdhwmJ#NswydT}4Gc(LmA+UBZGKxn=un|*OGYgktx0Sa$QQ~ zn{#?`gS&Wfe<8j2&_xX5a3c!6xcx%%0&9n~{qa4um+>5D0OlB<=KyCF17Qm!m(P5F z8CgK+Lg$Xtn2`!h0PmwQqX)1Xc)Z4p_4-hA`6L^qWz+*r+^t1z<6-l1O{es zuMN}3Y0PLr#W87e4`|F-r4Gc(ZPb{t0?7K*Ys`Ss46PRB^642cBOQq6PXkhcXqH?q zP{52#jICktA0!xuzDxs;5IljFW_Sy5FpwjHJQoOc{Q>d7p}=;)bl`q;2kZ+B*bQX- z$AwP=;!$ZXjlBaia)IdA+$@b5eSqkQ++>XzJ%Bu(c#Rn`KurGJb{aDxfat1Rt{}jS z6Bs{e>fB=*Gu{K@kaGFf0hrMY#0bgVtTCezh^Eb5sWGD#h$hLc(wLD9ya@IG3_}D> zq22}oGuDCQwZQ2lhaCoyLsA7(-}^+|M*-YyvW$RX|iVw^5_A|AQiOOTmE| z(|{Of6?qzG4TLAMjJ!ZFQt+Sfq(9nPA?l*=Z9!UAX87BJw8TtK^%3GDg4|9;-XutE z6Y_b2C4$+4qXmZv4iM}lNR14p=N>a6RW*pO3%)4$D?zGwFnpQdje^{cOaD27*9cA# zoFGVD5ytB+m?+pmFjDXvbUx!95#)Ct$f(lcZt=4+|^Fb z&F;i;g4EI>r!jpZm3WBXVo(#QHbdkWQi#-KB0eL?kFb#Q+bl#XJ`uV06Bi1W2^I=Y z7o^@4;|&(%M*_%Q!7hSr1#Q9Om`sdEH7w#D!Pf+z5Tp_p!|xKjO|V38mLNZ-zmYHH;G=?T1Xl@iU1Yr51eXZT z7o>I`!)Y*|I7V=|;6;L+1)+O^*9-n!@W+C83oaA9L9kM=SdcdW%zv~X?YEHQT%+)OL4J~r{+$J}EGiCA z$Q=L-Un{s;uu+gVj`$y0C0Ht0AebeXDVQ!eNHA3}Suh~TOz}VRgw*4(;Cq5^3GNcy zDQMblt?<=?je?5>s{~603k0(SGX>KH2MNXt#s~%k0jj?I3|OfByzb-})8>V6uQ1Nb zW`@V%B883?9?9c{j}YENIFx5pc(U+p;eCWp7M?2nYT^Bb7YZLFyiE8|;nX!``RT%M z5#8N#W+!t!Pc-z~gAIB&2R zUM&2t!b^pJBD_NQVc}K6d9zD6JGB*(ei z*!tr28Lv4E=XD$H7aD#sIWA0Nd+GKXMUJwJEw0PSabat0Y5jm47rw?8)>Y)VFgCWV z^2u@GY-~}@CC6YjwxlY_aba(4LE&)EuxIGNgMP*(LkQ)x4HnA34ddBiydsSMC5-2V zaarf!tKBX@Xn8UpO|bsrM3BL{X;^%Dg?`SL%xC*xamnH;NhXi`XyO+}Yv&FgB>uDm zwuI)OOXOjqvU5w*?nPBgB#ykM<}*e$YkT!$le8qD0$QgKmveo<+8{+z*)4*!@)qTapT4Oj04NNh(AOi2y5=+Q(!y*yKfvmpaJgN^`>6 z$K*TMWK7$aDu~uEwP13l1x)Q@a;6nb?W65r8h>pZb4WTkUfvH$H(X++>yJtgNjDZU z#YAShwvjnxgf_f6M7}dUL_RbCtbxPRNO=FmaI)0626qV$7b>_@0r zQd3sLhtwtPQtusLDe_y+rYq74-F+VIb_>K|u zpXd=`)e(&QS9UN>K0N2r?Zkr)EYU%S<@gL2%n$8O7j9ScEvXmJ*>s1IAM0maXx{Yu zS9Ue`OMWIjAIN-{`&V`~O@5!qImYDIAB$;kopES&S-+Cm3+Lt+&YsQp5a4Ip4SW?w zUFdjjrTZjBW60mL=XVafnu~jeq=dNoyfZo2S@S!WUCsa7{LW=p)8xkw2hy4Pjhq-f zcbv6;=d!E$Y;T=UW*3d`rfM9A{GQisde;2TWmoenJP4!1b2jC=UM7MEXU*?ib~OV$ z3BvtaCPM1>%O09ku{%Rp;O>DRZuP5Xl@ zCf4npy)^KEjeMMbx9!~zTW>htRXfI53vO#;O*=l-+Oh^V#$c~ynklOkWgVQFxnKK>f1J|A*xMO1L`_C=cD%*7uda%l7H8; z8P5}xjlq1}67EQ|7Vvm~f#d#u$L#xGJZ9Kolw&r>d;0yjlc)cTAKD=N*gy6E-yeH2 zj$O4MZMsSOEkyeT`xf=+Yxnrc+{rt@+OWCKq5O&{~&!M(; zQ?5roZve{%w(b5Y@+n6?Wv}&Zxc;?%4VkpT2D_BBZOXC3yf|iZVOMS8QoD1YZQb4- z7<>3=>9lT`LoG-jK>8&=vYO&-e^cUuh$h^QHb%qV>*{6r1UK4uzY_=hl=14AqA=%e z<)?W(Y^$|PEl;X@p%8W-3zYrW4{j<@wpI7vl)U{E>;;9GXRDU^ zn(+KP_L}9sCLY&mUzhU2Z%$7uxDodF(2l(V$wAw0v}b3*E?vQm%0}Owp02fEH|*ZE zbcbCw*u0I4wPJ5xW;K1?CbQ}5v{6mH13c~?%GT|NIDW1T0URs);8WO8ygtL~oPA5% z?xr8J(f(0rx6x>~{W$*Kun8DEuGHD=i>98V?FFOJ4?fh3ZR{X!uRu`}<0U80PC5=7 zpif|J+3$4O_yKH9vP_tbQe*v7v7u+dF79oxTZo&0qyZQc2X8Fh+!yul3tNZ>Z%o~+ z%CY0hKgF?qE0~?DZJO7yjiBr)gAs-vZj|JchZn3gx(X3ttNdwT2quXAel-w3`6!Vq#sA&tcWlG`$ z){^1PxHOKV+;hqB%{5V0(@i+@>FvpsX!tUv5U+3~(|2RFZEo>qmZ^%^k zj`5yg+A$o{8k~Pyx~)lE-)~pq2AsqDVx8N#apT_CH{N}u-z`xOWPiK#?TOzOyq#^g zjb4NER+rej64%nUDaO8@Tli27=7WVbp)KmgF~xj8zclmYaa?1teRxfA5O#^Lw=oAX zZe= zThmTD?KjfqHP*nrg{a2|HL$yibQadn3o$>F1F1>v@S|S`_*t}rjeh8E)pepD?P0&^ zK6wSl3hlynS#rZ>wU+({^L$C)&Fpv1S+zbC+8EnyH!_dU(6>K)7D}PEH<>6!CI@HI__&1YSFu-gCUQAkdteG@yAv z(zd4`NUVK&RU*gCXG-r)+GezIG@*J7VYFgO>+wcAq?mYi#Vlh+|nShwW#f9FDWk(WZY#{+x>~ zSVIrue0BF52h%6o-J>_6jo-&Qi~R)CxW49(wifh9pXb{h%HR0S-HCV<6G!<|r^7}( zi=D>sX!!TVn5@BC|JZnI^KY>Zv<&Q#R_X+zr{R3G6z7F`Jz5`23+mX?CMoS;o9muF zqwZLnTgt61pLDjiV13=Y0_V_DT#IuJ909xHyRcT^n*SuP*XbVs-(j^Y->`FK;%6PL zEnG_iu$SHPsDHyhmY=8ABCav1wv~1WbMLCx4yI?l){=hO7bwp~8w7BkNVL1#PlZZ|U+t*==_<@ciGuOI`X(JMhL6$oKKK?HYaId|C!(o~-c&8gQS`bkieIO)WpjJh=n)v~its6f(yG*QgKBCuZD-j){&K z6MZorvM?T6Fdj@Cwl&8p9{sESpxi#z%Y)$u(HAY~3#P*(|Hd!4e%@ql;hM)jIE49; zh4$WncAtoAnQXN4CLB*gC!C96H(nh>k+lW(leg@!qRTh#Y)CwGt+nM4`Yj9nmI!;$ zsqB{vaqexC+4PJrMqN8%o&NSK^v?;Wk-`@c_&AAf8ztRJ=c3HwKR#} zL->Ug+q}zXVa!@-eeKRUfj3&xzd)b#wFA+k@NEK)>4Vp1Zb4YI8V87z9o_Z~+A;sM zD052%@?B|nf1}q;70u?F(n>E(;x%xPN2!iEa;Z!Y?`0R5YZ{>8dGnKr6haDEyA8^K)f zS}x2yc@4hF@XW(eP3&8qFS+*o;_K7XKDla4-~E=h^NjP{_T>2FB=-Awd;@{<6BuJ1FuuOPwb5Z*cjn`K zjJ+GvB5>}B#P3VY!TlH)A2=}^$M<;n3a(#|p^wkEV6z(60>4b1lN2d(J>*_%qi`P` z)ifAu(U<5m=CLBVAgMjttUgejR3BfGRFA&>9j^ENf%B3|($7o!73@0iOzxHRIo7k^ zl>I$@Fvi~~Uu5|wJ0DE!wfp>}RWII?_%(R zkH`JyNu0M(zc*07Ls&PWF%Qe_Hqp5M$9#w=XZ}mE#((DcH*!r~YDbi>e5ygMsgyr+ zBGj77IFG}BBCdV7rdEuTHP!Ox;7#Ea-0$=IBkCN8XJR8V|9KkSDxXMO;f#ii7pnJW zDzu)Gr}A}|8T-tqHhj5v((F9=*KMI4XISNX8JO`QI*iYf@U~Drd1`I9c@@HJA0K?! zW9%R6Ek%rv4Z-pZ8@8MI%G4ga1$Pp34!5G(;|3#dK4x@i6wn_3XN2-qv-2y`3BwUu zNBUdR%W2%`IZ~PywX;|dzd-1`M4G(`p#_kfJ){#!A18gEG>0Fe=cYZFW&zD5b#a5> zyiPia^kLA5j~RJ#CTPUHb^EP|FUhA&()`a>#3}NrGzX3FcVQR_S=!U)D8BP;D`@m#ng=~ zCsm;lap;Z68$F&%epfJh1fpA!_j{agJN%E3momHaan^}^EJ!1=7=5$H?`8CLtV|xG z??rS!d(FO@Bg4hdf0Ut$t|a{(6JOI0jqoDrTcj#&Z+Q7>4PJ*XCH)KOEauFQFZyq0 z&MNKaq~)Y4Z4OR&{!bbCx(ktOCFx<(D@h+E#V3CxtM^F*7#=#SE?A%{r!ktGO370a6KC1*Ptmc-&S-7qOP5HvUPKy4F^u znmD+$Q_gNurM}X-)Ws6RG$ zld*qnNAvqZzI)T7{HVi5#_aGLRC5pndyO5t4YJeJcx&{l6z;9Fquz!Pg?Cy}??YHb z;Zq3jLWnI!R?fXAtWLK=z`^7FMHQvqkfOg<8SJt;H3S2>>s?2C+DM&$0;w0brM1I( z+p5RprK?a4h$^kMV}AvIRi&pXuu9KEn97>G4q+S;N4*Q-VF;ZsM5&)c=rkUJF6&}S zs!D%T8SJt;a~p9C=2YkFAPl8&J%p<$EP`+^1zPxh8bYTv5L8Z`xl8$7c)`W}H~#n| zy8IPjU+A;#uDC_B?2*2&(5&6mYCll*O*hUR`ywr?v)v#qs}td1Evs|$03Vm&ZtA4d z-xr6j>#CNbOI4h%JuoY5k*TL+WHtFSe4PF9T{9S!N-YyKrFtN5;JrO~9T zTJF zqkOEcPjsVvq-E78pJ-V%N{g0Nqa3hRqo`Bwhqh`IRpArLzw5Vb+>~0~G zwOhzMwi58{#PW6XNi-GIO%D;3M9WqpE>p46*gR#~-MwYUio2sm*|mzJQ<-{uMdIm;N8V>^#M+O?9QwPtb95hE{VRB6qSrs_CVp^$(RA{Y%GMv zc}6|E$N~E=XvYriDo2JqurhiXa^oy&o#4gR=0Ouf+lv`=_gV@A+zVxx8)`B%Nt+Sv zsf~&zdj>>%X#=9YjRDaVVU7*5Sr-=JXPiX*TZ>Nv^tW8z{JCnx*v zz=uxfiHLhwAmf;`07g3#mTeDw!iqRCN1W>>Iu`^+20q-;>>CsxSa8Lc+qVTWzS%Nq z8=hSFQf*(KxWK~O^1eL!Wlr{qqq)yzZwqYNvK++MCw|-VrB3@m?OmTQufIHSV<4j$ zDVHw~eC#Y<2K${(%|s_5P#YMP9r(~6e`f^eT>Vm5E`@be-%#6^+R^EF#OW3o>9obK z5GGEK0I{75k2L2jU+(k3#|{oI;}l=m&2sN}6qC(_bofsFdixhSUAnXv3= zVBt33(3tvWXV@~|xL7A)t5do)4@O1GryfRLo%U$-iB9yg+`!`F&J7ch%?@WS@^F{k z&OD-*IWw0z@7#*oAK&I1*}-Y=n`t{SJhG~-%a32a9d=U#nai8MMxPxBTrSoY0cbs_9f}4?7%Rqr& z_Ii%Md;dqqD7R z&4gGj69ZmGjKE_SI#q-rG2#h(iaNCQ-=X4VTUQy8&+h0jrUx0B&+q7vlM&a+jU=NP z`El_>G$WcZ%V;`})_;vLNtn7dqUm%TqUm#E<`G^-Z1L73BYqb2y4HvhxHzK2s%6AL z(Cbr-+k#=vMDcPd zGtacXBh|`Q85f7;t89YM&&&9KDN3W1{F%2#)Y*oZVPRX>nc;9MI2^7sVjws>OO3cV zI2f)oVyQP6>TE-TPm8SU!dqaqco;=HO!Rakd-a-b>a{*tujxj7*;`4{jl3&Z*Xc%l zDw_ov>EYF1FCIqk56Su)+32$2Y+*!m7>s7*alu2n(ugm6 zmFRC|bNPYXjF=pwOJ{CI?h~x*mEmWF*do6t2phyFWR3EcUMVIdzc`7W z986aHa;uz*>tzAdkApd@uQp<1aBZBCD&_HAEZteAXdlTtD_C6VF3I3XEQyft&t7lbZ?&R)&>{d3haVZ z&g-m-@XYz1f-a=;xvRx*r&sx09n1TRyL#okGhnef1DbQ(S&aA2lvEXhc)%;t3PCi= z=oV=xe6(IU_+_q^271eDsPQ_~`)hLlt`TM8n0hmBQ}NAS9WuRKwRE$Dt@PrIG4c0% zey!4F$}x-+w5^#&G>Eybex2lArNWB&_q&4!_B(|WN%L4r({(& zQ4Nm?4w)H7Jr*OaS_SmmuLF-G=I(pQ<2v{_qlMQ6lgAt{YK zL%JK$bbY+P=J?IK5Sr*VvUlu7=Geb$P?)R+N&9#fpiM>`mf<;hRWXvu=Y(A2Tb7YR z^2s#$?2}`INiLC2d4qdGjLcnAZ&QYcD`Wty^ae?$7pkRo5*A`vztuq6EOAUpXvp5- z`83NBy(7qJV~#B#twz7yas=jx;5W|52H`g$Jb&}kW`sv6kSOLOw*>ls#JW|%p7vj8J|=Z03RkU67x6ThN$wJJ=t-U(g{RU8x1t5t=m zl{cX)!dvFwE3VEf?pzspz0j(x3h4!N`+{2_Bbq~0wD(&!M#+7hAS-EP zbN~E3Z>85u7Up8vwxIZQrZctlnj}W<(7brHay`91cwL?61!}2If?gKn;e(#Tt zeo6@WvsS{qtgj9URpL5{5>mtPC|0h_N3U7S!sD3b(BRo>b3m5UQ-Wu?W@Tmct*g-| z9t~>+CCRzDS58W%l>k^FNFH|4pybq|io*GG2MilD=%TcXE*{=DIdyhnO-XSwf>qoh z7Y(UdG{3L)eO^4A{i|gI&;7RH`()~UBj6nQD69U;FhXAb==p{DMTHeb#zbpP?GXJn zfRG^CVSp_J377}d3j8d9$^eG`J)%A(pufAO0&7Yut83GgM}A>-b>R}7MtP*EK=H27 z=3bF&xb1&@D4=p7%3@Be_Tb?m-v)sFgK}%ORcO@|RTtJ4mC}%eRWm1FvV--8>e~E@ z!nxM`+4(gKXV1a62rB2HPZyWfF0tlR7tSlOimEGXl$ij1fapnB4XCQE#^(&?!gR$A z3QNo8mNJi`+2#2)C56>RrDBV=ta!1Ni-=>#s5JP1!h8&bqSC@@<*gKlRftMic4LXk zuBdY1e0~@K)tg%ai?k@M%(`A1&Mkw2kR0!mT)9qr|F2nK0G6q z4wEDjg5k&X9EL!NAw(UM*TMJ%%KXaed4(0|2lTHRa`{sKvBM|(5WV=$MXvl=;Mi4`zAWwsCLj6SU2H?KeH6ZeKj( zF9V()d-#dzf7<@;z&$JPOf7z+4sjasTZi8!{9eXyAAZO1i$I2IClTaNOz8uJ<9-r)aqEb9aYqTg zxFt%wxIcwn-1;G2YSRn6xNihzUFp;Y7a+Hlh!;2KFd=ugNJ6!72437bBeB#b8F+D* zjCjG=Fb1s))1cFEL4c$cc^YSB0ntdg<1}Ur1)`?8gEVFYfaf88gvME?aD9SK%srto zV;_*=?`fR%mW1z?@J$l_l!UJZvit`%&T0f+2)P7_5yOBK9OJ4Bh~^3;QvtJ z+@nYT2*Jg+PM-;+f2ttw3CMS0g7g6LPMrP2+il>iV>n(!iTq4(tl*`Bd`8Le{eo`` zz9IOc;8ww(3;tM;k1Ls;?MEyWyjpO$;6;MH1QP^LqJ5a|OTqsVd{yuA2j)LiaKGSr*fCCj?i?rDg4|e6{#QZnZYAF;$PKXMKM~~4Sn?Xd za>0B-ZlPuPNI~wcC65>6rd#sk*w01eR$byA!Pf+z7kpN5qagSAGX9-{O9iV1uNTZ0 zyh<=vkeh{>zONv69+Ue8zs0U%@*{$W1pg|?ZO;tfBKRA@UkN@W*d%zD;H`q(Kh5;l z3UU`SdAi^r!Se)N!A^qQh|Tz4;Cw**L~x(rJA$tXz99Il;FE%n2vYBW`P2z67OW5~ z7Q9+;vfu>4%LLN|`w8|G>?Rm3=m?&``H1Bn7W{)Cx31IwX+dsKC%;FKS`_5h3(gk2 zQt%4FG(qZQFn$L??xrWFF?r(O1m6|>z2J+2TLqsKq{;`=-7QFs5b`;KR3ITABS=L6 z@?^ny!FGZXg5Ti0$aqHtKNkF}AU^}ZaO$fNpBCIG_>kcJf-42<1xp1B1g8s55*#f! zLNH0Nt6-F%Pw;D;Z&{Bo1P=)A6XY9EhVy|Bal7C%f*S=N7W|3ey@K_EHw*G%81pF> zyjpOw;AlZA|1ciD?XHlzLge4z{7*b0_=zA@i|GH7;5NZu3sMt_;SGYz1#b|f;u6EB z3R16$e4yY3g53o>3$_tFjf(`vKQ2f$De}F7uM6%Fq*fKf9}v7x@J>N0VKKZ|kT+H2 zlLfN{FB7DOAH#WhOQcR0F;eiKxM(3iBFH`CSMYT~s)#ZCQNcBWs{~gHQs0R2 z$^@?yyizbnaI9duAfM$k-FbpkSR=OusoX;TcfpSZ|67pyZVZ1;@YjOj_V63Ue}&-9 zg0+HWf`x+91t$rP5xhk3B0;L>vHWO3N07=g^#4NefFQ3E>Hn7CE?s&0NR2JV|5C2^sESGcdqHZOkv}F# zoj39of^~um1*zG|@F{{51xE>9EZ9%5w_rEHj)L3)&wRd->pFx(#h81cVEaG>A?f;|M|1ltPQf?vt?=idcC z6#TQ`TY|d;w+lWaNMk{4A1VP8?-0CIP^m(~Unx)m^Tq!vL8W#H|8c^(H-q``{)Bj* zAa#z(eS%8K6#R4CpV0p!!T%Oi>aFlMcKvsV|I>mS1=k4vMDT9GWr8;dRtnA*yhiW` zf|mM1FysxKHpMLD*(c{yPOX2~tCw@%bGT;tIi= z1$m!F|5CvM!SRAh-wfet!utvK6r|m3rjHVo@B2i44Nv-0f1J2iQ0an!?+{LPbB4oE zpu+nER|wV#77NZ4oGeIXcKnaLNbr0?J_MqFtRNo@k^fWfm%bD{DEL>wcLiS)d_nM8 z!6yZOA^20ldj#(gTq3wYaE{=0f>Q-^1TzKG1;u9MIqmr`mUvZyrGf>5S%R5@Cf`BA z;{|cKtl9<3yh4CN_Cu)sdp_-=&YgKTwkC`}DttYz|LOSQEXIFIIQyA=vvBr5`A*@l z3g0FCzsNE6-x99u!-w#{NI36@==fa;#(z)v=fZj4M0cDVYr=lv)GO?Owaswq7SjH^ zvANrx9OoKileP;v8p&{%9Orh!&m+e*im^Ehn{UegyRjKNj2zd5#^x*M745$po2{I0 zwEu2wu3kZodk14PRoRC}XBnHPoTs$^{>Wwe_;5I9*ndw0r=M}RfrN5AD>{R}6vkf< z6a;vccP|LcYkW&c_ES=fhOHdfgc2n?FSS z%jVtDMaoHwbl3GG(NAm zwkkh7O8o~EtJ4^K1s=u!s{x>!empkqMLQ6P-qfP?+`v_Z+98$2X^(2!vxh7TE$ zoIGsMU4mk0K}!4Sqop_gzk_F`bh%i&=+-4_4EcNZ{LW$DJvsO`N#}5w7ZGQ=v*vd$`|kg@`JKzY zyUDLij@Q(0GultQ&RV~7*>}H-)|cSMZ6T0Coh=d$nqdr6Pv$~}}K zf(K{K?_BoX?IfMhya?a(J@Y%4efLRyb$*AXKJGv*WL_M6kr-CL@3!xr(NCwZmHgTd z62XJB=65dp?!S@z`bhfQzGr^tvhV(fu>5}cJ@Y%4efN`+-<@()ul(D-hta+q zY6V!$-vi>&Sar!apUzj)})2Uh&?rV3!YCb zxG>(DrflHCHd(vX#ap89uE%4==!Pd|EZf`OYTt0tVW-K0y*E3iUlJ}Q8~+BIaKsOZ zE9&>gK#uTbZYTPQE0)7Arr|es=7>>I)`CLpBj_J!+pzMZ%q@L@P2DT^rs-SeMM=?Q!FZw=aqsn)FP+ z;Yo`Ymo#_H?6bXVR`K>fUNS7{hNz2^R`t6$smr)N+iyUfp8;Rf0rnqZv-E4&yFcOd zOgjmCb{D^t-+bbdp-GFQ(v#lnm!33qdC%srUd(S^6*V0B4ow;k+t%+~lActHa?)Sw z*?bIsU*D10+%5WIgkPLABE@QokG5iaI&tNX!L}>zr?&ZDD%}o zM8naD%r!ND8lLq%oOL`h@GUbxt zNs})boK%lI>JdLOt53t8%pTi^p}aLv95i#6rt{8@WW=8 zCXW4yu%SK5jxB%V(CKM?>Hk6ImbR<=Yze6OagDM=+Y5EyG1lI5s`7>P-^_hs{fYb+ z)_--?3+s>l;DzZr960K%J6W+v2+$ z$!y7#7 zEd!0XnxXSjSc!WB{)-uSJp)%F(0>VOIg`E!8mS)f&-oQ7?rRZz2h%Ekf;5wKE}vuZ z*@$0#08!D0NPiFvEtL8Svx z;Wp}#PsODW13M8b(1<^6J0VLtyFRKr#9NVjbQuIy<*4%^@kv$GUs{fb2&CGMRl-6z`yKM8%@=ARMA_Ed+kyI%*F7Ohk!M z3m`lPp&cK8eNKVrf)rf0w)+u;YavAc0fMgG&mrB%uoDoTrQo3CKT-GqKHpMcbM=zz zkM^&yCJ)+n2i5k!VB2?4?f$S5RhvJeMAgp^u`4_LgNc60ZfsM)cHN-FDvFOWZX15O zPm3K?7q4T44yq4+&OYd%hSVCBnd*bJ6x*HP9(2lY7Z;w=Ivvza_;4jA(RYZdQy+>$ zmB?Kl_6X+Cv5k6SH&WMW5dAY$orZbhB|%Y+K*eUAVtfelN5nF93`~r|BvLF>cVdk? zQR>VX5&k&JU3THmX&6K%=}Hn~bz{<P`GGH`9dcWPm>k?ro|lnh#T|$N5sy?SyYl=y+es zNIQZ1l2qCWzLZ=$p^c%J`%-4w30*xVN+Woc$q&P875J?t zJ%-on-ZbN>uF$dulX~)dM;uElAp8|Ax4u4|VDxF?{l$hyEP2hVk z5@(t^SWZAir~6WTc0!X0z0#KwVJGlqnF_timlA0wFuP`^ouRt?B}1=PUB27UYgCuh z`ihEttuH0nPT+T~6`iR@z=wv;@}&&26ZjQuzNvGrVkBz{h>&ww*;XR$A(hn=w2&?UYU*G}L|O%-~hF9joHo1r)PQhM46ZyI{DY6-p> zRgrJ;rC|7cWazEF6!z{b;D_*Yma2nMLwFR{s^H)r4H8@d{2_9Rj-;9;R32z`?~NxN zgY1a&6CT06!;kTcxPWcYqcI{i;R#T_MULpJnuWF@=@rqB)JmWYiNBCvsJfN!pZQUT zi2hCrEXO5051AbhF#w|*BZxOAieH4$4gP0v);0pOsS&)zgkv_X0zYCnX47hL>MyGF zm`x9YN22D6V>Yb?k2M^#X&rbEaE_b^%%=5N!kbvJOU-F z^o=+#fVVTe$w}D<-plYGIVt2*DpW{6P#A@NI_w z976^CWy2pr`+>h{_!Br#eW1t1-vV` z3SWnz0?w_PivJS*1DA}arOA00?K{v; zm~HqUF~7h|4Sx^q4Zhg$KVyD@-){Imv_JTd4F3z}7x*v1x8djf75#ye=F^a0C4V3J zGIW4C-yJs;S3S5&q;9tg9jLDopT)aJ znmzUn@-CVG%V)*!ALtvK&>sumV~F6x^&2jT_aLjUNynpMa6NYc((yvoHvtm?oO`%@ zxc&8Iqa(8IgyE*Fi5R%~sCY*NUItG)r&BRR@46gkaaKw#;2QB?g@L z*@_on$pC)}T-C1-O91$DhR?nK?B!N!uBlr0vhN6^gw8%9v?14Uu-F?a>&|Xlbmr z9ok9T4(;sO4vo{cL%SH0px&(Rg^nZy+SJM={x*Nz$Xz;E{;1XdTwQ zv+Z;+5qoqC`dcNajnCT1+i?3I*fapU%kaU)nq_|<_1m-S^jc>(D|*K3#v+!1w;Om( zU8CMVmWFs}%c9;pZi%P8tuyS4{?(#=(Kz2A8+IbEUgq>$=DdX4XWQAnbmBHx(S$Y2 zJ92WaaGqZ}(HXqe=`itjXVKQl&a`DYw=H+(FFRU)G^ajr+0mTlZP~fb;;l~9k(_N# z`4Q(;YwILuJ`ya;2`maMd~VXVKuus2ERyEr5_$pMB%qA==h9`?ku(qOoc;<1d zZe3p9S<1^hOL=+W<(a%f%4-#8XIOc*RcMNPOPUZ~;W-}&ONEx38lH@P;pq;CrGp)b z@MQ4%pGnn2s&7UL25#%JTGh~`%9PYNis{87o8<7D5ne}bJ)$$EANU zbT12{^y%8i`}>}RnS)21R{8LuDV?b~ zk3#!+e+NR;(YQ~9k0-)+gDG@t(vba1YJ-~E z!*)YqbyZ1mes12_{KEN#6-#K(!rRd#mJO5vkcz^2vx^HYZLg!KvSbc?t7vOOS$DvN zhE-Wz3`+^~Eo{$9vO>I8Y!3qUw{_KTw z@@XQYCM1TJjJ6c=5T+wrH71W%sj~{J=Vj$t*row%4J9STtbMqh5M-7In-^y^3N~@+ zuE$m`Yw-;h^O;&&SXDA1drD{>t@-)ti00?#POw;C2-EVcs+#fhi>#Wl^X6OG^YgRv z@~5hXSyWhERyez&gg!O%YD)*_PaZtX3inM@zBMQqX>(25S{y@7nc88fEji4uwB}V7 zm*{FEnr{1=D@TvBV3)s^?BAM2=HYmHf%+R#u+maW0D~ zSLCAo7Ucu3s4S}~$t_t_QZa_+CX87UHH=ULQ<*EKPPP^=2zC?>Y$yoEml8%#;i1yU zi~^zPR@46&q>J+B7Q)uYWSDHJF1ew!thOY74hMiLY<|rGDNMz@B6sS91&BJ#s;Md| zfmxTrqS~@Wu-U@nE3AN3mi*Zm3pbP%@D=aE6shtXwC)}B;SuRc9RFza0X>%fD#T?C8&o<6{HS%i4 zl~fciDJdRTQdCCkN7llc5_KF^l@-XpnEh0v%EuO2wBQfaa)CA~E-R|_IQwUOO)ZS3 zaNviOqFUGsIai8lG+slqENb*%W=>vMIKMWx@`jMC<}Kuu&7VBNVx{sYO}%n*{?vul zi^>*NR@Yc_%Brz4={7E$!_A$@v7}a+&Z(}fsK9!OUA{#n*vpG}RfS6`DhrD(uB6=i z%Q1^1A3J6W`yXp*#RQIu;P{}KAQ)`HEnC^xaTBbCnBkroARWt?bx{$jYE&J^jlF=7MCG*vD0gE@21U259u z#OT7Ru{dMpPfoM)#!t~%Z~)X46;@!3(k{|eo++l56@$*HH04z-tf)c7)PapzC}%tf z*;w=^&>&PzUP-l{CB_3M0j$ul9W=JI5F5!WYB2vjV&=64qfZRIVz!=C*u1Cy)~`5r zIBwMGK#f`?&)1WZ5{|E^hE|_261ez4f*~m-s`gN`-D0zvE$m)Ns#0dSs3CNYFiezj z(`KL={5!vLs#?I!3ZvGKF&JJG#*ft_r(`})rNx@)bzAMZSAC?$O+Lq!rTb0Gs`wJs zD{_LjYSd{RHn&0-f1d8gR90d}^EB<9{aK9m;#pryDo?eN>JyQ^p32kLTNcbbq1`dQ zlx?ln<*V3Lyj&PtTV0`ty@kZZY)qX_qaL4n>BzN4Pr)gDN}7(3=&FjU#%ER*$EB{+ z&X}fHyo$Lx$*jexvaq@a8VxlyT&0S6kStkMLbE9)HMm&NrA?pD6D&5;hqf3Z%LSBa zUCv4@km~prTUGpj15B==;_7nmdTWf8D_7#?&Sj@?bLVaDd(ADi1P6gTt>_vxSXFY# zUoU8G#LR7ixra-ZdpSuK1XCYV{#z1a?)icdMHnPVLmzY|y?N-PeZ9ZNIuncMubl+( z29%bU=qR)LAFba1bz#RpfKm8X9v4xU1*&9iYTcYPdZvlN{oU zC(}>%e&Huk_tia}-EiNOb&D3nXa6K($nwwU(Sj5$Nzu9#ElI6?^o^6ZFS%_FElhp< zSoGk22eZ~}Na@g@R;Nz9c5pH+QE@LF9|vuUg*X5DqVqa+!a7C^;%o`sJA`z z;>#F`#l0}};)`kV;!X;BamRyrsb~1`;zNA#;+`PJ;tOu^;!Y}h@fAZKARIRY(Tgv_ zBo;TG(2Fk$B-Tzz$emOYi~CX-iyKoU7WXvKi|>jg)-Lhldt341%Y2m(C|=y4L@(}8 z5-)Cup%-7kix+o%(Tnf&q(t?S30{25B(Zo4&sf~}B(WAF0rqYWsE0RNF}F@*#?3&) z%3Z86qY8+qxfL2SN`c5Nw^(BavqLEr$r@*+15s2Yr!;Z1U|-!dk-Y@{g4|HZcpnII zry=?Cg4}{g{(vC&CX(MESSeT}$nA^_A0>FP;Dv(R_sH;oAP=7WI1ZY~4U)vYg0Bni z5adouhCd+4eHG-ikx#4=ED@X~I7N_KG8yk8!Se+Z1v?2w3UXf@SM}C$L*v{Un5v9SRlw}`V7wy#M62xMIIC6b1?e9CCCR- zR&uOa$+D#0L5_2c;rEc^APm2s9ILs} z*LsK?=R2cs^(%6`3pM&uPm<$0#^^geOOErs(N}t&yn|&KeWO>%vBDdDq2H6EF^#?t zo33L>`$_x5S3BzMgan%hwzzB!c~E(FjbPk|6qQpUIDbxIS%p#@)#{~2Wfe@Rsv4zK z9M$4q;j?p5ixno8nj+8?kogPxBltazMdz5p^q1IpoU9V=%^jdI@q#pK4fA--& zkzFbY`Nv{)I`XK$&(N%lJgUJcQmVVhdO_7*c~rAbYUEL$=&xlj@G);vjO6cB@~DQ- zaBtsiN{*R9dE@94UW$ru<^bqZ)pB5?>R(_mF;K z6g7OY57fITAsS%z8c?;4=_F-R1xuQTORe_W9Ta3r%ly=RDQAKQImRU zpP9not#hW-&o|T>!w3GMW8&|ZAVfd5B%E8&H>iutf z=B8QQOVzv4G_UOiUUTuz$^`$K2?#^RqJr&?KO=2I7M`8G((==LrA;X8l{PmlJZm6t zNuGB?{*ZAZpLFm!2pLR&m_NA}!x`&f3gy`Y*kCZxiqVPyU$sxt+$WLVR~XHuT+Y51vCe?>OC*yVWr73E9ns zc)ykn#$6bA|E}eg&ApHwe1GZk{>_x79B2C%PQ$yioSkFh&$C>NycgTZ3x=8b#`xd- z^-wzMJRFktD)RYuPy8AS@yC<_-&2Hbon!F5PNCgxusc3b|eR#?0+yh))^Z z)7}gFGJmGZo3bkkczj;aY%ctjU0txf6mEM75ArkRs^l_fJInCF&iN;L+VO|55v+KJ zWAABGZWPt<#g8|B1@fbl(9^yM&nV;*x>-%O}GV#WVmG_1sUrmGpc3dA&);L44kh4Atk*I%yrx zhSrP68PJKAUSH=-pyZ+Wv#l-=e{&%nV{yo-#oyd%(9($(e{)d~)v5U+{??I$)N)$S z2r+W3Bu>})JRR47a32p|{B@9*sLkpE@i+HcXw_Sk_?z2gpb~#`DSfGImH3;>?Lkau zE&k?mAg!Phe{(r)N+~cc{^tJD*edZicdvm;{LTHHflB<%Jpia;r^VkoZUjDp$C=WZ zEW0vYApWM})&i&$tI-xpkDb&Me{;Pkg46LhO8m|304)V&Mf}Z8fu4uKiTIm)9`p^w zIZFJ^rF63jkQRS)d9W3;PsHC`O4KL}fgOmyxl;{>zz)RUT)s>BABip5z!e6M!j@^^ zdgFdHcJ-sMb!>tGA7_k;vBV|mk1&d}lZr4d_1mel(AJ!F1^!Z*Drc2L*9GEl?hUXe z(Bf|{Pft`(iNCqL^G`t~{^mYlpb~#`p9T!juM&TAISZ$t5`S}ffTMy+{LTHPflB<% z{f&W2{LTHNflB<%{R?0vIcxE^j@8hA3Nt5=%JbFF%D`V|CZdY0V|6Zs1Eoh!2hE`m znuohdwz@$4%`J#oydo1C{ujy9|)?aa#P%y#-JeQ6>K7-UUeBTKvuZj)6-2 z&3(*3CI03)b9Wo4#NXUK1}gD4cfWyJ{Hy}XbQ#O z+{0*6RlB9c-(1d$sLH6s-`qY1D)Be>0zhtn)Z%Y$9kd0kh)Vp;JqgGeQs;IhTjAaf zt9)WD{^mXa%&3U?oBKn9?^NP%E@wwo8M{k~zqy>`S6GX`xhIT!E&k@(;H~(rQ{rzf z1%nmV;%{yyu!_q)O8m_oV(@w;{^oL4SGm{XZ!S;dRQQ_?#oydggYSiG2QW|cRQC5N z@i&)pxe9CXH}`7>YwgB9-`t-Xti|8lJ-{kH zTKvu3Z|t@BoBLOTwfLLM*>UAwi@&*vs97q!TKvsD%U~`3=AzfD?X~!uJHcQr{^oL) zUisJJZ|+=!wfLKRy}_H6_?x>PSiN71zqvm&_FDYSk2!cQsjH}`#m zwfLL+g~3|<&Fz8Wt=#`miNCo#xmIB<{^kxb_!%Ys=JKRl)j&V1#NXT!gSGgZTMwLt zcZm3#n}}A3X(HlpZU(U8zZK=XkL^<2PGK$n=8grXh^2_Xxs!lZ`E6F>Z|)4>3u(Vy ziNCp50<(&W_?!DNa2l}|e{;EN$CVioe{+4(G&oxP&82vrdcPKbb9))A#oyd)gSGgZ zn`f{Ve{(M}_~%Oe&Hbvuzfj_DZk54W{LQ6+wE86MQQ~jzUBI&tMiGB=FO#N8#NXUG z25a#*x6I&us9!_zVK-Qdzqw5Yzoo?A+&c~agA#vpHvnJF_i6DrmqN-5h(-LZ;|%~D z^ZE97N%jqNe+@0u->1ai+_wSQ)$}RxH}{BvO8m{`vE0g5i@$ZGuuw;s`LdPlk7_j0 zz-d7s_OX(!l&k!{5$-@Z`W_tn)Y%a3aKNVt(R;z!5W(J#54{(h4dIS8?-`@chHx)3 zSf35y78!g2DgoS^-jQ!C8bx5!yYl7fvmrYE1TVV+o_t>k1r&06Df@@|3fw=Vb)U}A zC^POsyYu)GO|_O!FMKpRR8 zbT^oK>T6@G|IT41UBmR_tdzBmZ-)CY*zDxHl$@Ts5%6_FC8y{95b%$L#rj*a4OnH5 zmeX@z1ZLgzX*oUj=fHoVdo8EuzG1MI({nlOR&UdCdhS~WU!~;qT*^i&`#DNZ&;7_? zEvM)5lzC;Z<@DTt8eF2}^jzL5tHP({^xUonYdJl)m%&<2&!t49as))#3xy^fzCF&bfLSD$qSMrCI)+y4zRc<163 zxO&D&%6U)&JA@#5;)#&^Vgq*HHDZG%V-IT8B2w7sduw7C}&aPv))Lf^Km|bTr zW|wTF>$-%5=G;hux~@hRFC`>(m#XFW&eHOG-NNPUx`)ZxjX}UY)()oJzhBNSaydoG z+F?KN3@o&8e-q^B5S$i5b>UmwluVwMwG%fXPgV=zyG+X7C3?o%z8*)t9;Ez-mVd0* zcGj=B+3Rr*E8y$l+_Sqsn#Cw`-+mjw9JC}vzqk`<5(R$G;Yol_lY5kumMz%H6XhXir zTD#XK=|NvbM!Oq{Muq#5wI=j`pJ>fY1%x;9L$+Gy74P{%qq#{IJDzq#1veA2L~oW( zXr^sL|4r!7QWN3;(u}z|C5{0@;3hsauZQxJB^T_k{1;D(RvZ^RDu??-M{7zS6&M#rMBO)PZ6S z6nFS<6LsKH4AYK784-2hJR6NTMRuv;IM$_o)Ay*tX(uj*K;)*NdG~!f? zyiv{5!H5%e;)-kBbhRer%1Q?lY`z&xF$jz>3-@c9$JH2Yu`PT_(>(4~2dBalGnL?)s{ff|$Lb-*H@9QcQX{|7bqTPkY+FO1z?8En#uO>!< zaW#$VE_IiTlR{XA6Ex@NmJ;2_7x@CxVT58`FvJ<4PhG(~o$f;NJ+I zEclOtSwpEf1y1)f1RoJxEcgU5^k(lY6N!7>4Q9FGUU#z>HklX&)9e-Hq!0JH8=Ovz zL^qfdLEP(Z_JU>;qoSC-oTG_Rk<4Dqd}36zRp|&A)MR2*M6(x?<(_-p&0faY#MtX@ z_9B)LBXiAOLckV#-D`nqW)$xR3dgJm;TW5CT3~K!3b&W?2ve=NgDKoz=Brw57suvf zO0vpkdAU)mqOsNr;13sO;Yfk9+GXOKU4wc`l46QS&wtINzH+&e*biv&Yj!KLTe3a< zJ@{&GKK9biBQq`#n^{$_M;mfue6h2tbO=r$}iSFe8X>@1ki-8zgYY5%f+>;{aWt{KY=m%#oC9zRQRzgN%cuP z`Ni6YUnk!-%?&cU5=nzWBjVfkK77M(tT1RVzgYY5pOWxp3cn%9hX@rre6^)zk@aJ5 z1V1jKN2sX$V(r8KMEK1UCQDDjkIdPx8jkNe`&Gm7J--7KB)AWsZ5tmJMY=f?g*%WJ z57hg}i>BZ{AA2A6k7F;py$}1}?f69O*qJ%^y5h`qyztapYYGyVFSpQu}IBTXEy7Fz+2 zRl`?(iL1Ie^(6KORITM=coeU50k3uj+AsWV`wJd#^p#S$h^ow&1PI#hhor};o@NxJlG;1`dN5bxoExt zkF>a~fHY#|6C;)^7zM|-Hwdm1%9>33=|Wl2i3bX0J3!1&4JnACG!Gw7_9sR(Oi5;O z<@n2BjxRX=GJPJ7Z#n)leS!;#!QJ3OVtg+RW{f%hGT;0wh|zwVZ+0m$+6VK^ollI0 z+I-{KE^z#1@KWNA7@sk@p_nclf0=L2D&o#aWwA%xTa34Y>-8~PhcF@G9Jw%7y8C+c zAotVC^|ZMn*sFW~ayM}R%#nc#{$;2_#Wm2supG##hyFq+RbJgB)0q3r$$dB4AbkvZA{QfkN z7Pdu(&M(F|V_`&|^T6{66_sDCamJbQi#5(L{9ctnnec5v z`bm;T4PUHr#&Ff@S=P6tV0fimZw0>z`W;dE#TsY)0__$Ryesuxv@;PZD!*9cj6Vs# z#S*z6w3A<~amI{@{7ml>5xSPu1@)utafabHTiCRhU#xM)MhRc0@M}Ds@I@JCydJ^t z{&w<+0a%(20$Untgay`TL}mWo4#4spL#ME*uXz(`2|Q11|^ivmZK1oB!%K zn?G_AHj~F8$O?Cfv(|aRW1PoX_@2{o^ZQPx%^x_OH{-mS;y(K-n!jf`iLXq|Z~mUY zZ`!J?K545Ej)@rmtipQ`{}lT5HP$vKPjGtl-B;WEQ5S37W6Evcv_~Nu%J95_YZVZt znd3b13y(NmHkW>WvUq-adfH*U192!~m{fQ$rJA{KQFA8zWbPZ>{3QIn0e{tapWkP7 z>6O(ht!ICP`_q%fyknPoD=8z5W^Fs>csGBH zcbN5m;~=cf_)Mt#e*KV_-MI4X+XGR=iJS2J7;fx z$LYTLUFV$5?}?1?2Ha0;LB7`y`Re_U2Y%a0*^EN4-tx~+qdawq$J)LjF63tZiu`;0 zyGE|LKheKN^NesGXKg>wEq`0jF4p2+$e;ZPM=!@-=Xve?H7(wo5aJp2y$N`4r*Jn6 zf5f{wSxRP?aptpWf6FM)Cm9vLz!T;ri>4eJhUC{ZsR;X=Ny^iY}#8!uWR$GQgp zU-D!`>)yJagb1I57-T2R^kjAYYQ;BqNWRC zf&pLSx%5Y6f_+Qa%=76PKHO3enz&Ufp4gX$^VIO+USPqp9y`xU)y_1WBhTv$%rW=DgYkJV zzuxOh9o}mR4bDx5u+VP` zW!DqGxO$sS=x&(MenQ!?rMc<|gR1T_=-(tCSV(C92ciEb^fjR` z3f(AlgV1jXWw)CC7YpSlg7|djs_%xs@VRR8XV-W)9x5(yh2uwvQ3lLB+~dUF5PpUj zb6{p(?FC{~cQfzAcyaF9V8)ko*9QNZI3DYXx{0uUPmJ!RnHPGOIMK4qyv`wFG%jWy z^n!a1Pt4~F+7@%$oC~L!Q5QfHjwSt# zwK{|-+&(xr9;-zU%DP2PJ-6KEBfE!G%g@#~+Py-WRcP|MC5PA>g?P9o#HG}B8(cA= zscg?N)AczrU!Nn}ePqTyN2cs^WX?V(SGMbnk?lZZWIN9o+0HX&7={jdAJ1u>%Q-A} zOm4bTB?;<+32fo1T^3lXF7HrcpfxHFqRrEnaE>-zXVKXpZSCK|T#!=SZ$o7;itrij z-?>9^vHs=#JBE+2vy!B~7#vB>Jb0{mb;FPKmCEpY0(DQC0wLPo@QXFCevuUVQtjOO zS?lmc=NDsM-E<6voyCipBUDs=vF6p!lwYiQb;Iu-36u$6Gty6zB5L?z&8zdce5yZd zV!a^oeF^;7y@iU(FV?(zZ?xG|W?ubaw7C%~D!*9s>Six1+fS-z+sQB1y!tqNL&DV# zd;=m>MEKgCS2z63{+;&ni#4x)orKSH?EY~&;fpe_{$K>Zp2*h-6*a!G=G9*me)EJ$ z!72EWIs1;>w}a20H5}j2)u4dEd37$8@L?9y&6%hK%qLGCp2m}oa85{5(SU4gT_T?G z;{)m($kOpWo5$ZI`kSENCHh^^`^IZGKD)Vp7psdps}W~Q9(2-jIUk#F({1MjY|ldM zM=#FWJzz~do~c&Cw5gb*wlBQ|+<^`4-w!-ef(8yLPP z$h3`^6a5XXG9Sf1mGeIS>^@K7KZEc?!oJ_d|0Ke{6ZU%s{|oSVPZACwRCA)L$FAT@ zFtU7q!XI`B(RT;_#ciS~`!7E1m}z^)FElIXgpQTq$rRqONjkvTJB04Wdpv6H_Dh|V zi~ebDJuR1ICrm#&?S&U!c+P*lf61{HdxSW2p=x7#E#xHT^co8{6{dyql_ttxh)q$X ztyC|oL@Ye05k_yQZE@#C3uRix5;2W3Z^hPJmrC>P{m)HS#LBMIo34n;#o|5zUT!7( zjueFSn-YN|kgKw|19}S_xH!=}N`aNB- zHD(f@6f%S27qvZ`kywQpUe^3fJW#CbG-5p$Bj`8>0@L7rq@{vi7s_^m_G}nP9}*fl zCae>4wmNhtW0E*FO2h+&vdto9AteP-^gPh;F(KV?40s0}Kn=jdF`&UY#Hb*q&&POh z3~2g9`YAVLcwvjC9= z`fj;bX@njSjnLzv5qh{ZVmN|yX5*rqkwN(e9f4LuBC?LUf9Z6_MK2-0sm!>@V0Kga zu-`z{-u+9fwDW&?Tx9qNJIkv|wLz_^8OOvL7a4vJi&w*sr&X~rfD)pC;TLOM#MMhG z^QCyKb@-z5i!m;05`LO1{+akKRaAbl#zkk!FV?uo@Vm=|Ny1l*^pl`R4PUHr5!)fE zmo%~N5`I^KADRHFsQhA$i}s3ZSNpY!%okg5EPk=ZMehl}PsD$DJNd;L7x8|la7Cfo z2o(|Ew#P+=pBWdmmtU-L5l_^l%GAXA=IMkl%DCwK2!7AElV7ZH(bd9lo`mm@r{KrL ze*GV$j0ikmC;m_{Fy3Rg>^9RDd-^Tw%c)Wih z>`%CW@Nf`51fAvEOG9rQefvJ(-@kF#W8IDyc&u{#{~N|TVV~UAL!EvY>NFo!Bb}o+ zOZAC(CS`CM!I#^c)*(3+`#>}?98p+bMVj(B9Bb}gw zC8gBlh!Q6dbRZwWv*E&T38jTZOXUOQLfJ?VpK5%<_Bnifl17Y% zY!xU~A3PkN7|fLB_{8+Rh7n_Y(u9{$osWm(6NASSqhDe0WMb3+)AwL_IX*Fchs%f) zEX#cR=MdwAVZOEH#7QB%kQn0=^X+7MaC~CEeanc^fi~YR29s-2L8TXVBD?otLKV6H z+L&aR9@&i0W0_VX6tiBFtruX_|0(6JM~xn>opZfr{t~r)At+4|eLQkH@)Q>#|EP>S zg~7KMYQzquMmbnh@;;^c=o27%n? z_~P*)oE2UUV0>KS9dgl9XT~G3#y5svobWaL@)2JNXLxWKzKXd^t_j2%-wYAg_e(JT z$qZBngd zXceayXtnm%+Nv4{o ziS@%%@MB`~`?(wCi4&QA6sjjc>1_rcsxI=d{IcA%$N=E>D6{|nWPxW7s;t_}AFuYb z_dHHHZrsPLSN9BzvxYWbVs)N&lJ|t+zOT+0j~#)$#or*4L0&nY#5JBFtoYVNc)8%GtL{ARef^G^$8w1B|#DJ;|Ir%HW}*#}H$}&iNX4DoS{M4~w@=p-(^L6RjxIx4 zce=w$@hKxo+^$@OjY}2ttkNY7HR=>1OYf|uEPeqt=GK)3xHq@jDgen<|2ZvIw%8h= zEmw+qv$^)XnXjl-u^%Y2|Gpt6+X9A{4NoQ>D7GCmV*4OQRyqvu4H`TjX2}1-a!vC% zH`f*WVHtJMIsD$kX>h;m0>Qr!%GQbYn}j|jG;;0CjA7aK(fxFxY&eMr3T3-W%D zh@vAw!^fr!7srjJt)38prxH7m*9H?RPS|j)YVd4gpJkbTb$}ReGyTqa#OPxiyoeZq zGPr>leMr-A$%_}Dx>KaJwV(UA4G(a>U(&& zpVIV87_IQJEAv&N3Z3q2gyZ1ao2e+#&P)qGMy<_ljIlpQ@2xPC`eezC^EGuf4cGUMQ09OSfA zQTfFh2bT%I+a+?t+Q~20IQYYe^0D0nG!({&@U=Y-HvHIrQ?-|0ta0!SQr_5pQ(cUY zZiI>*z9{41ha&hbZYRH33F?F44F&cH*(Eak&2 zW_GlQAaHw>83!M`WXC4TzMm{ei5L%`cf9}gwmNeF`&SmfmZHYGMHa@JHqId6ebe}S zt9!W3z2W_@&%b9N#?XUsM>g*Z|FB1VZWoM?J7Em_k(2-Q5y;S^jZVS1bln@aotW&g z6aNMo`-2&tb$xEMdt^?sdwBMhH&1|!{5ae_eh6!Yaq!>o)gf!1dBn5l-Nt#%&pu-B zDPKOXxg2K(tXkf;nfFSU!Tp5MWofT?vF_-JTlf&hyZPxQY2_H7--<95K)(J__+QzW z)BIkBwXS#fxoHz%b~A7$&NUdktnbzbEqfux=EZ$q&0h08`1v!=Ht33XJ3RA%_n;#z zeD_O@_06{|uUBU%tipTCvdYuy!DF1K>p~mnC>*tXYrJqnyOjvjM7r^prsZQ!aw-cfouMnVXu2=Syl5- z@$kF|<{hrrT^F#E7WP7z$2Tr$P9KeP7T~UF*??w*W8FgJ4|(78#mQoo|G0{C79#53Hw=@|2(&$1Z%j9FgJoSuy`8IBp8Hr#C!G(zCN+XUon5du&uB= zE&K@c8ApI2sb0Ki*U&Y+mMw0ci?bn2*plO{Js;Wjw4R<$3zHbWWz{NtC5=Oxe+hnn zvaOuIB7g2c*z{b+95t7*i*p$(tvx)8;MgU*Hipk>Jn{1PN3KSjt?NpxISuwQZO_yE zpJGc33K<-!V3^Ms2Sa=6<ira&_&-DA#bYJpBOdQl^LM~=@x)&O6ZL`wUT&CAS8Bkc-GGoyxyedCTKoYZ2k|rtME`6p)GrnpQpB;gD2rE#Eth+Ck%n6 zgc@$ETM3Q-ApZV@2d&=A__Ob~?Id*s!edOHq&)DqmA0eGj_)#sJF2XBfGL(#KnIT~ zEw}#J-z%d7mHZDXw*i`Npf;&ImWNh*`ndpaeppp|+N z!wr?V7k~Dxw%t*cirZK!bRbtVWI8xsQ>Ln%+^*iHUVJxAh5em$EbQ;%HMyO1kd?W5 z&lh}8E#9M2piVJY92-Q=6pTvn=dA*M_~PG3-6cobTyONkXqTnHTYS zeO>6p<-y;bt*+E}rn%4C`7&DjQ)tw60sd0RH_Wy8In~VCna-=7XXkX~Er+ucd21-{ zKg{XMLm+S}3^eHa;&6zZt~^pAL0Q2hF?5DRI=m!>Hl`z!LYvl+@DwTO9Ga<14$aMV z(Q|XInVajXC-G9`luPca^;jkN|8i&Q!iQ;kvaZGDg0EVQV-|ElX`jZ=+PE(IMHP1Wl)alNGo2N~2xRk4BO#MxBy58*n!BPJOAFrfYz5hK=_ptfCVA~YztRU7c6*|gFVZKi~ z%%S!n_EDO_mdHXEB)ST=GU}+s7H(QKovnk{+R4loEC8~_;64-tD(t-b-R^O&taRVV|wv$}<9hm!{3a(^(AM)!o6Fp@_9Y|xd_nYTwvinZd} z_>OX73CDrjl^Lr42PcACwhX5^7py%`EK~9u&A;+ zu(Y&lNrhEjvt({n1uiFLu#D*oF$sPtV1n5yioI zX?At^m@zFYkC~UI)P+&^KRvn2PG{7+O=(Ad|K`EKeH?g|;HkyaghzD{LHpsMQlEOz zK2jUiCmFa(uGiP1)wxhl1mfO#B)AESLI zoXIM4J5Lc~t-;J4Jx82uS!V8sNfEx*kOdr;JUmCG1vYC9EgIr~X}uvQTW^`m`B!f} z$(CakM#?b>Bjp%{k#a1<$PtLknXEqy8!;+u{h_WQeC+`&qpm-cpiEflwAJStw{>2E zD`lsNexM9Su{k5Tpe)Hi@{?k#_~QH0q&52gRO5 z;d>P6CrQyF1}6Pttrx_hU8CwHo^NGi3H1c{$>%yMzgX)9{m?E_;d`sp_tCCJsHps6 ztrv_Dejf>wZSCY2YrP;#>X!-AMzpgLDk6MsuNN48T(72TFTYsp1(*|7DpM2dz0(O_ zl=Xtu5&Znf*9a9gzOmK|o)CWXgvp>&@FR2fvkLLO!Y9Wn#5ZXzD80?VLxoS%zkFW8 ze9Y-$Ubh%?%zJs>@B%yo8wYO1`AC>YPF(m9=4n^JO-Ic8a!=eL%=cT33!4vPzSwT8 zYPQmQrE$Kuqd#fQLy#RB3_7H-YU@)zYa8c?@5H?J4$SL5fw_C&F4n$5%>(xhQv5j| zy~2)HbI~g-&%&Q09R3^f@2T`#GZBt^_^zs5{nsRd=O8>5=Ckd_`Rbhv&qtVR{?JLp zna1&$caGmY4(~aHusnn_9T+Z5@fAPxa?j?!VNN;wjlk9;wzUoG)H6TA8N`25bIr+{ z87`!C$`Q=RcZ_5B1~(7bH+U<<#=Uh5F^|vvb3a2`>kRj+8sGXXhg;yn_OQ=j_hZjZ zE7NX6c4-f-vYr(S=XZqtcjBM@E$3~*0Waf!65+dq0|_hfc;6=+x{X>qmhaERL!QJx zJ9~Q5oU%RyXvO^+e_n3~+N%@4aPbTM`uX=|OwnXW-&OGiV+3G?`zf$rwV9 z68ia)r^%!@p{K}N-25`q_UBF6adb){eog-TX`IqZ`unPBKfY!1v=?xq>a?x?Ei0YI zsZQea9!Px!bBjH2sy4Q@g`BjS648D!fC_RcGDfi|CLH9$p?1a6S(G^l4w$H_G(l>v z%{L$J)nR5^MBf}{CfXpmPjpWRh49re(dv@T5R`~Xkf2vA#s4)i`%lh-1T+5hW0aGa{vCmZH2--Aq$xO+($&lM@SC4DFe{XqJ_t-b^*T z@y-73AYj!7fc8@^zWiwcwnKcRpP{A*!lwoJT81m~mYP3^Ia>kwPO_n(Q??Z5)7k1= zhy~hFt9w_EiaFaHFp2x6P_~uCF9>}`==X)j8lNr}d$xG=KV2vrMB;%$*q#TbL%FveKDpZ$D^k2!}xMMYH%YlzVoIpvw|2k&-6uZCB{eJ^d%7Y7UNGDU$$M$ zL+44z*bYNGnvK*O(njhHX(RQ9w2`tQO^-51>7ye?=`rFcJwzO%M~GuImob{lm{ACt z884pJeVM~^a)akdTw7XKTTve1R@JckGFy%y|JC#MZbN=jnen5+H0HxT7FB!CmEc?t zl^H)KAwN;1_}y+IG3r#~N5jXsH*!)2M^ZChi8X#S{Q64x48P$BpA>f?nzP{-Yy9|t zxc;^TB+Y!rLII1;FUI)M+)Zq}Z*3>PSmVbtzgXkPuL{3@629NHlV7ayqnYCi zhRJ+Dg9efDZF~G^_?huz@Pm8`ezC@n&FU)>`Us9ao$y5&Kkkp_4c&z(~>$Ttnpm8;PdfWrD^tc13sS`Z>=kh&;O$L=<+m=e{R~` zthwB0_Qkt!zY_blR)N>btg^I~Fbmiz3lp(N>7C{MKPNxuy2{TdfG7QUuIvA~A7jU! zcIv|Mkjq+)F=bEe+d70jOa~E1*v(A8CI54EH_Rlfc{TP`F&#Foyh81D!hBNkjsku6 z%4gT?+IT#$YvU)Ex8C>E8}(9GXx(dXJs#!GdE2v-|6ylonC}4gJng4d<`Mi;$$g`r zK|7N0Z}_wOevJPr!V`r3;_%i-3BAzRS%m)&(3?Ow_-y<;cdxa*-3W&ea?cZ~J@6#m z;jw%@TH?6#hzD^OMlzl_#!SQE&{-Ycr$?{8%P9Ak)vFKnpGkuQWkoKEK_UXVCN?L9doDKGYkJrJ`&7{AOLQrqY1b)fF^{yhH&p3Ja;@^A#43Ik=M z%|?=IBldfvs%$aE77?RO5Bi!H)e8&Psy%f9bxcn*piM0?SgikH5GIY zF`Nd^QMq35Sj{z#?Jn)R3zYz9*;|-@DDK}8%1;2@?-0s9GVv2a9~HV z3Y{V}a(%jon6p1a{(hk#3SR;mKK@tZb9^MtH}5LiqmyGW+bNF!%~)muu@C2BN=Ilh zG5T=^Hxi>CX7CDP1j6*?ZzYb$;Zxv2btfK<|4mjxz!tsa*Eb|3zRMKdR(~Bw=)mJoNKpa5DEL#{T zo4+s+Arv>NjroFD!fl*`7^P<&M#*Aywk$qp%bft(awkAGW*2zRZgzS|o$5T8oH4nh zMk?ne3D?$PY*A6CHZ++dVWQ0=oQ@pa(+Crlk%Kds-F7~xmrAvF9$_cS9ToYZ2wSU= zx%o6`HIGnL*-%keswy|E1A*cTXBX3AB%v zEi0#YOAHj1U#xkFGvya+Uc&JEiiE<1Z{ql1-H#f+So0DOrs??oR`R(l+H81h*aP8TA<)1mfB{QI?{HjYARn$kBm*~Kc0F>eP z+jjDcH7_wx_Dpp}WX!@*lJotp3wu&|{ zq3(gj*!n2uBRac?x()Qy{*UcLy zQ64IbwPStv4%W>5ldP?c7`wj>cl&X#>N{{lJMuZ$FaJbOJN}T(vAmNb~ zqNT#uDs0`X6CbO0rK->xQ>}-6WTdVA0jR|M|JN3$Fr{M%NML!|Jns>KE}R-rsYe5Wn&X$21}NYXrzDMACZVSlK+?v z*1GEoa1N0ZzwmL&-f>O{^HfZ~6MGZaq1(7N3-9^N@o)Y|fxYhNN_*Y07wvWFU3rJE zE_bP8lV_zn;n*7XjpgTWO)m(Ul@QMg;mLS!$#v&%RblALd8zn?hp?w%|78X0?q3`4 zRC1muyC;w~yAjrB5P$y-U3+leDiLQDF^tD1c!FX47-9U(@vaMxH}<2g%fD_!Bj3}X ze(|2yke5iyy}MC9j!m%Eef)?w$OAH%MV~pTn?FZcVcHHx+BRJjs$=>6tVa4nx$d&U z<6k%s>3ALD@*|X!^(ZeZ60OB=BOMuD`u~Nh3r%}XIvzzBk3HgBw;wW{CjI6kj7`gj zskBh(pu<=6aR%lgm*$UQ`FjX;WaF((W5}mJ&X2la*@4F0o}z6`i^t_1{^ZOw#s6L3 zI_tV9{OO+Q%(6U0`+W~>!rMLbPuv0iyRX(}(~!3Bg2($vmk*Ghe@3}FfV@A5y#EXG z{t&`{`0LKP6E(j6hn}%F9emu{bilDr?8n{H?;!2i-e5eJ@~`q>8-jN3jPHPsY&%-j z!-5W&2gcpoovm%3KrZ+M=7c|$ySL4|+0HNwynA~i%EotY^!HfN0rR~`^X3B2p3j^f z=8o>|M-lguu=e;0w8u>-FU!?jYE#ku@cSVAPJ`di3PSC8dRY0oAAa&LvbJ6iKO4aR zUATK2cYD8s`Dfnk{eI{CZ6Ba)GL20*HX&Ra;r6y0<9nF)j^~Iapj{g;?b<_VcX^JO zi5KH^CiiM%RCo~{^d9(dPf!z|iFnX6QFg?W@r)jgzO(-P#+nPh4J<_dwGX~ZqBaV} zTyP!??Y`fL(6U{o^a5Q0fQo~1Fr<~(s$fw&BK~6l%pTZ zKLPf$#f0Nx|J(I8mfn;6Qxy@0_`jtz#=^6cenAPj8SzX#`3NDP!Y2m}8VL$*tyb0(lIu&4bR zkQVx_g-ohlgwtqyF#|yk-menQ+y}>e>pY?v!MDaM$x?+a&q2NnqS)reRqXE2Y>_jc z-bxBFchdp+>Wo8Svr9k0v@9G((p&;18rJ>eL_GHwR>2_ZgWmR;@x^kZzN64IN&(n(pz-$R>4w22#p z_)u*S+F=7ghZ6o}<4={T2C?J)rd0OwurhU<8QsPi7U^QrVL#j|2EP)IZyE+G!WcYB z=gQfBu{LM!+D&23_5__7QHSG(+f8B4(8dWjuLOfxL}lL`=Im@$kMwJKEh?3na|Gg55_jQ3g;;|}@wi+fg#UJ|O9HVfD( z)V?!}=|;^Iehs@UG3l@Y92J9PF-Z|>e?5%B>)J4`P%Kvq?eHt(y;e*bgxU{;c|RhC zo_``i?5AwoR4OwKg39#}3)m0Xh@_y#Igb!-VSPb2)pDLB{2^fz;SR#5S$&=(+(q~d zo0!9dy9u8q?2X4kpWU*5MEF%a-rvx6o2owRj@;;di}3lO;Ox0OSyzay!3q(#6a1)- z3+-T`1gZ2oASQexmAySI!gu3EP;sA&FLx66AHD$62lU!nA)t)w?o^p40;Hc zvw`pY5dMG~wZFTw!^xWX(%m^`Ztdv^kE2(ivBgJT(V$|8de8uQ& z1IK$ZlI_$CK-Jhy@MLtiQwJMZ;K|6cQ`s;x%+5ql#%Md0l4i>Bg`SMDcIspUCwVdo z?Npx5plmPlWL#yZUJa-sFxis<$-+*<&>YW$nKMNt!&ywB6&_0kzXebURAY5Jw~I44 zl@}WSjt%(`6`30VKOh|HWHcq%skZ|kCC&y;vs3Q@<`>+_aWZ!HvQsHjs{)Y=``&iy zzc+Z4ld&F{XFn)@qn(WVu*BQx zBm(mZ44p9@i&1al?2fxphW&Q(D}EG$U*In#-%ejJ=dNMqAss}a- zUgpX0+Nmi9Uhc_=vs1GG_kxi#TV*J(_*L+$Dns)Oyh3H@g$7>f$w;?T3k|$VJajs@|Tb+K3x2V($B;SNDVCOsV=Q6q~iyX_{0S8Ktd<>dHA2bhl zlWe7AI`yf)gMVH};xwqJe_-Ge71xgdU!m<%6}f)^ssebeC*vGDl}iNV?KFBa&b3p! z7`V)nah{!eu7S%vIGHwekb&2EGO%yqD+XS#QsN>5Z}4QGpj>9)jh+nVBS&0U!pvEr zBBKiEI9u0X1;zs~ZB+DqVfu`)Y96j1YIVN{LC?0meN$7Qc?jJfZ$GBN*=xO7soZJy zB#rv3Wa$ma*$3|cLM!!b;Df{iRkrp8e3@{Nld;jZQ-=aG1H6M#j!}Xp7(4{!7`PCa zq4lEPtOfq6u}8hZxHGlPVAPxYfEO8zdUHSUwFaZ!YyiI5VAPvOf$s!n$?>AzZ1f=g z_8@RuVCal=uZPwYl3>B`m=x`neXg@Al`^KP&ALU!o}#C!;N7Z9!LtT_jg4RG&jFd& z&T3WSZB(~62yasvy9DrAzWH`U6-nbmHDq_$S>t3pk%8I-%%pPea57#8?q~3wPR6f* zzXGhv*j-M>o4_Ro-|b}lA23fLQU2FD8T){*HF%wq@fI+99?JgfPR4%VZv(5i+~Z`t z2mGkP>z#}Pz|R=>-*7Sx1HWwWH=T?lz`r&4UMJ%i@P`K9=VTlQ=I2?x?^{mB=fGbW z{B1OOnRaRdIuFYJJ81HNyBT~xiVARFgTITS0zA~<2atZiqYZu#MFsdGU=^PYC@R30 z8T*G&RDjD3ei%gsm^~Wh{t*-v;G2y7qbMrCcNqLVPn+mw@{LtMqun$=D5?XYi9K55QdJRQ6Ay zJOE#5@DETPfa?w3g8TeMz^tOq4&(?;mWZ-fHm6 zct7yH2ET&$13zZ)ZoCip8G~O%`2c>|;Gd&>0RPh9Um!fd?-=|mln>xz!0MB*2jv6U zi@MJ1rJP@*JOIBAtkUNaPv{E$SEW?+o6D^aeg?@b6K-fIl(#Eu=rN!!H5S z$oT{67w}oYKjZuUi2T4uGXwb7#D4;R47)ph05BAW_WsU4#+cJ(A5gV_=nwvk1`NG2 zu*Enf**7qCIlM5Re1lXIxEhc?eS_6^@m>Sb4?=fvvw=gUI|#nd!pxVgUZ)z@llVdf z-<@oAyUOnyk;?DdNX)MJMyj{`9~qi_J9 zF!%yg7GTp~@{L7h0XF?DUmhw;G7{$!yv#;v@_i)~&|iA2Zu^J&3R0`VjY;N1cN1OU zdcc7U+=a+#bU$AOev^0-YBumW;PWTqDJWS}>{MRLpptAVYGME{I}FP#7~0c1kH@S- zC^gV638sw6gpf(sFxzofx3!LMM(Px>nF$`gA{8`Fp3EVfr9MHIz_y04SbuXaHzBzc zZ2-POrNFGizRS=C0M7@$j_$vTG6!5`@D;$0omva5-gYIh&rV%#@KtET(FI&(@Ep`R z;5!Yz8g&TxUV{T@GlB0nxCGe>yct-fR4K9v_=g71MK%HNFt`jU3H*k^^AI0kZktyA zuR(l(-!XVT>KyP9U={vK)Cu5EfjKnrRiO?6dr?JHSzm-Ur2}&6Ye)bL%S!EtP)zAcFghU@24^Wp_^Nb+BcFEEy{qkXGT`iPLC@Ct=skJV$uD2#2F@Wv zhE`S1t*Kp7Ke)cGY$#9Zv8)#RRm#xGwPsabGo!AiOo_tGrvaABmy|Ws51G$tgSv|P z(nYmZ6?NF56J{(R>lgPg0Tu2e8X!#Pv6ZErHV0*bgf8c(8)}roe?yuXysfC z(t}Qlj5hQxGzBe{nXI2L#@N}K-_iwy_Ql{Op@@ai9tj$i$MSU`=wxOrCp&{qii|eI zxK)tRr%;M>QB(+y(V8uPw$&+caJvu5T{ldZ8#+d166Fa>qCLsZ5a?^RU9jRNkLYZ8m*Z{wu6gOLC+21 z`VOJdin&=Lc&iOJ`^D}^8*Yw?o#p7)M|+o9888bK(cG9tfx`7?}mJ~{?eQL3-;wK3>xrqOcJ zPWv*An8x@wzBuNjf{cLChJ3ZELdMsIps!g*n-Y9it28ve?hpDZHrmj;T2*r6>%O3` zOO1A?ybE=#)$U82&HJ-Lw1PaiQPJ3Xtc3g-_F9+90rBzMTDk^R%N z=9bo1l&8a5xg9oSSpCxK{#JYB5h8n3L+4f1lr{{F=vK9d(oSLg(UGcDLrf7y5(3RzvMUuZNrL8Dx2c6Hq~vzE-A zS7%MHyQZiV9A_aYftjPN$ul&M>4k{Y3>E^J@|Q;Q&Y>r5Rtu7|~=>V0=-~K~*Vw-4#oECsWX=#^hPA6vBp^T0-jr@DTzgh#n#W-f+P? zercTw1cnRMrB%htYAX~hL;z~(9eGs{xE4onipL{Gm=c&*ADFycM3QN=U&=>dH~V zkPGFNWep+B1irAop>h!mY<1XMR0@Y|V)-bZk5+SjO;x!nJt(L%*-YSg)i73zmZ)Z9 z<`~@)Ts-TtnSohL>Xue6t*NWG=2h0!Hw1JVm(D|m1;7!a8)Y@s4RtkDRXAG#r=OHn z1gcPa0=1>f&@7f4IV|;7#Jpfa5#u(mvZ`tlOGU7J1XO{nY(QI7FmaN#1a&>E)T!dd z7uDeEUFD#*UbR*Q6RhgXD#{udK;0av=5JO*MXky%)htynRgn!Dj9YU=0YQpos)oTI zDxo%SsH|#GaMtvqK>38g%uyDb5mw@QRr_>(W<32E!;Ddk`yWFZSm|t35T~Sq! zRv-jS?Y7X;(02MR&U``jFP}62)Y_%JGCl3 zRGqh&to3d8S=84)6bkkIF+~a0Wn%GcFyw!A%`DZ7n|4OEA`{SnPr9%`mz;`fep<^l z(5<&Rkx1o{%CZ2(%QkRIYG(2c_Jafl9!D>tj^qS*itX`OTPITDNFIO${0Xe&;Ph<&5FdM#ZcO%2EYFHNZLux+{YhqLpX}ei5yD z{p}3iLSvGxVphR{K>`R&2v3p)b)Gz$ev0!7iYvXzPe8M=Dwc4Ruwz zzG>%3i(q}w4OXEwz6f24qFf7~bO}K4DDz(@&p!b5dmXCWeq{oeBAFLw7Y z+WF^8PxRh(Z^AuIMUO6B{PdJH_jI3fuXotW4;S&I`ag_rEZP3>=>7+eOnGp__g_14 z%d(s1^%&Dw^1@X?41kYdEWoiyT30C}TYS%wjpmc}HxU$pt;*MQ4ktco{yDM&`CfQj(>zX^ z()@l>z^H0QiA>3*S{k0yQ=lzg^m zn#V#-^FmNWp^)27LG#i<8E-BvFy8xZ9q$HEM4_-&)4X!fEcl-R+6(TP;h=K{fij&A zBf}7+!ULM-y#?9_=DR`RuIeRC=R69U4)X@k3{Wm5^#+{`iXaqD)HH7pDE;A`>OFlB z85>bLPiUf0N9YHL4DJ6Y^mU;x3C$4NL+Hnd9Nm8?^!Gx4E%Z5|PYJzWC>I;(Z;8-F zLQ90s7J8vj?!%}1bfNr!62}SsClZbLU7^1h`n=Gmh2A4{jZl^s`eTQI^g^M$%7b{I z&7!Lb^}rD*(hl5qhCeCHw>PKO!G!{~MuOgl-i2O`&%Q9W69lD9Zu; zzaaU=-Q~ph3gu>X;s&8rLQ92m*F5dHGnaIP&;dew3+*8Eq~!B4q3mGL-yWf_3jK*t zZsDi>cZA*}bhXeXp%p^s2rUvy0Rj3SDwG@Kh|d+8BJ{ZA`w^jU3Z-xZ-ER@PQRtmQ zDGEdTN};7fBg}-vRuQ?iadG=&yus6}m;} zMxh&ot`^!Plndzi1=D@DV1B1)K3QnK&@7?pLc0r17Rt^fv~k=@Kzcyvexarv+bMXf z(8%_1gP5-t+9b45XsyusLQ8~B7Md?KvK{R%=E*|+LP1n`xv?tzoFm4M=N#`uyGX@O zayVv}jQAz7A0l|S;E{q~7yK2$zY@&O8vVa1c)H+yf_a}5?cWl7wc!1N=LvpKaJAqA zf|nAb?Kmv>Mq;#W2H#4Iw$+^Nau+e&nzK*7NsNw@!4D84(F}f!7#%cow#ie(=op%_ zNuDD{2Xa#%oqj(dMu*d!4e|;xMtME|WQ%<2S?@1(~xo{z#0>GiPG}wm7G$ zQ1C|mI*Z>`-Xp~Jh-v{I;%ve12(CgJQ1OTju~Hb_>K2&M2)7>`fuD%Lb0YA*2>eO} zzBvL*I|frxdeJv*iL}LGQP(Uftt+SLm=H#ZlX^9~RK=hXruhw!%0P3v{@+8y?W^hSMDm&>AL3Wet;~ zvWDTPEN!k&)*2@FJPqT79o^^XBfW=VidbWPsP{0$pLqB%ee~AwVfyH;;lnh);ltQw zoymPrBS(x3p6`7PrpbtbB)yJn z=hju6-D#^nHHI^6Emc&0vChqUP58}{_)cplzgXvH zrAhp&{heeRd*CK+z z?NM!=<#H6~wj7hQvv`iugSZ!JT9Q@V4QKq^hkK*`(ap;J?4z5CKCeG7_r$enxf_;W zyA|(TZ)le9A=hs;)%nL;iT)dsyH=ik6V4fm?*aX+-3vyIjz7=pdb?-mm~nQ(LiB-n zHdGgyC&2t5cn7|)7FWR>5-T|epILp*0Z-QfufiVVj}fck&)>zG*&l9s?oz@JZ#!ok z+%I_X_H!0K13k>*cda?6r)@8u3_J2&?XkunKT}qF^2flRJHYl&`?)gTIVQfB)n&Eg zpEeErR^Tk3C-L3{?Ec3bK$ii&sflz~2)i}jrlJSe>2N*R#mX7@%qMBb?P`R#;6zJK?EYeys8DxM67AO8B^wX!H4>Czu*wAsN~Onnl1_&23@ z>G?(8V(W+BK1ZkNsI8ykJfogYw}rcooh<&mX4l48=Y^kco-V{0>n2aP;r-_$JpVwx z9z=R?T=41WS1oG<>p9E+w$lY=F(u3P zt2oEX&n(0};f8a1OhvqJL)!TJpB)zO@2Gh1Tpo(|O*mh@t#}_m8O4{oXdKGv;|L4p zO=iZY?i`)o%Syz(W+Qm7*8v1f*Au^L8C##DUV`MdJ-6ZC6LzoHo6?TrK#7lNm9Q?l%sXCn|>>J#{b%rbiO$ zw&hu2)6h0)Vft6Nw@u}56BD5WYOjvwO^hbzVRbZDg`zo)(Y%GcO4tr}d;xzrK!Xl; z@I7gru7UPv)DGyp7X;z9X>0#~_TB|Ps^aV)KbPIjCg*IjxquK5f<(Cs2^aBFNdy%L zD7PwFF+>6q6K+YUK|vx&ML`9{){0j2wJlPq_X=JrwzkE3DM(xG+x8WewkRTatCwQ= zeZMo$>~1!@5U76M_y74jpFR7`_c?Q(GiS~@b7tmw=9%bTjR>L%S7hb9&K(g)=TPs` z*Psv4aVzp6l7;Nt7jS$oGmu9~c?!OP*q1Tat25s71aJ79uoa5U^=diE3$=GiKGSFF zIbfJxtY&Kkwby(v4w=Y55%a7#<*J82Du0;I*<)p3r=9O5$%9PJSz^(+I9$D+4VEVh z&<)`&QQnwaP1Q;@->NN!z{w`XmX*+%QB$;9V3a=0pY)WiQIj!C3pug^D7{SH7Zuzd z+8KXe8?N>TwEOUy@a1QZ9penjU-t2nPktPJ;K`4g#|3-*JmBI&A9usMFz={``~1Qs zfEO%rdp!{fKd9zo;rNZgj$?w>Nc^kR54cMLj{EzCPmEo<^r>aR9^uP_*5kn*W7W=E zxf7E1C`q%Hxb2<@KazFrlTSN|>*AS;2lG=*)YL(?HN#v&GVLi0xcfKJ_)*i7QyXkr zSTM;q(fCo-CRH*m5(ZY!Gtu}_(~?sg+&OmCq(KrjRVsYPnN)`QylV*5#xh{(JROPu zn<^F0n+hl}6XnaufC8(QsHyByl%WxHAa<_tCK?wsy|tiL#cBk78WS|ZMB{?0TMKGc z(nionF+meeG%jdbYeB6F-w4_t6Eq1eI2BB#pQ7-SYyA|3UnWu}#Y%eeMG}qYaI!vA z{C}h*85cY1!uU=dGarR*u_WV6l-~gcJLcU^WBi+=;z>9#-y%>m$G}zyg9AU|CjM?r z@;DRSpO8!+5dUX?Lhm-I|HGLTDXPZ)Eh@FP)RXZE6Fjs*kM?NmHqEG>t_FY-S))e4 z#!gLUNS^MXtm0^-&ixu-1PLahmsqsRs|GJ_f~@jN>$P_;fbF(Z(Ia^9kzwoR$*I*jja~Sapl}> zp%VAN#=u4ccfE}5Re9Ce-e8m?;0$aDGRl?%gUPS#Zk1o=^+?k2dbr7ml)A>`l`5G> z%H{Rb9EfH=G!3FT5MS0>Y*%4hjg2iR=8a9L_MixCUy(HxtYR|s)sV%OkFeO@B8$x; zIS>tH0Cc*ic4`w=Szr$uV>In?R3 z1bla>i_sdJl0mXK%3#5RwFakTu-4#|4AvT)lEJcg%3xVMWw0!sGFWSHN(O65&or#bu08c3@<_++6)XS<)zc}L`4rXP#&aMtSM){wy52+Ud5pZ%L`+-drCT4ReC01`dgi%@iUi9*!(thCB5f&nb>Q7cK+zWUGl=;u<}PQ3ahdFp}oSL+Aogg@65?A z<#FG0tcnisLuK%CV5ZMp9PTtTt8DXzzqcRz+=MunR5DsU`tNw0@i6kc}wTMI@*cQOh(go=SnCyf4vl{b2k z*QsYWuT!{uvB#F1 z9-21=iM(0J3o)wu0;W%tf%aWYW*FzhJucvNGB2stg&BvojDB1=;Lcv-Fp`A87MJa; z#($zt!h9<*j(;C_^&AC341vo~8#sM`g6Js1g)vx1cq3t-?<0B-;q9@#zXA-dC+v3) zMTMRtBap$QTd}!aGS-1?W3+deI|IQ?o+ayN__Hk!?wWlM*T5F9cGv751IQ%WU9;Z@ zkmAH$bH?+C)9%R~7Z>DOAvV#2P6jRC*qg$MJA$x-<@WU8%h{)PL7heUa`xF|S5WzK z_Rlj=`EvHB0*0`;%9pdxNhAs?U(P|X^)C5`s> z>|bx7^7ic0)?4jW-kyD$fGeoHJ^S|ZWWwH>}#kyAJ4kS=<-02t}@fbfbP1N$>?b+{-4$^B7q`f`+rx~ccJ^S=dy^DL5 zw`YGmpn61=w`c!CK+4wMp8ZP=RNkKbdIOcWXMc%-%GqLs581HZ8zKu$g-k$x-5P2qmT10t! z&V#pSzY(k#$Wq>({U*Ry3AMLpe-3a4ZiV*t>@Ng-i@UYAXMY(mZ-97v_HQ%zL_FP& z?cW2;+={nn{{gcfZxg&d`QlQ=-}Q_UyCgs;V*N?b-h`pn4gVw`c!-1C_UDAMPPl zvs8O~_D=`=EjI1#+2^3hQ+!6Ww`c!bi2sIIdwcdTLtIq^+S{{FO{>D%+p|w)s(Qw5 zgeT1Iw$DKyg|)Y5|5qmcD&_6jf63t0%GLk8mzrN`*#AX>(Snxea_NV$7^rTJ}3Jqti3(^ zzcuN#w`ZT;tJQw(?b(0RVD0VM$KqUizxMX*bHGKV*WRA}E(U9F&;E%9->1Ai`y&n3 z-k$xbz$(Am+q1vO?AP9&{aXyy-k$wC4gRU}_Uu1ou=e)sKX34Z%G)@#FaL9dG;lfK_>H zQr@2Ze;cg5J^NwQT3eX@N#*U?&oedKQ_9=3&&h-@a{trH+q2&Tn6IdKd-k6N{vomU z_UzMm{$XP6?b)YyXmx(=?b)X>yu#Ysv%lA1?d{n=V6gV~>}N{V;XaS5q@V3~GFW?i z_K!DMdwceW8oW(;d-g{It53pqRwLS(v%e8=Cx-g8GiU!71}bOH{vQm~&YUy;ft0U<7aWku zgH+vl5Fa1{RkcQ~Y&vuHzd)ja9ug{N&VC3@+A=~kV&Kd<*60yu&OQepRW7tMXTPJt z+L^OoZ1AbdnRBd>B+i^;jV$BLIb#e?))xl_PmgC5&YZL9%-Meg)%YKH&B~dxe;e}J zlbO@boc)i0w-ak;&i|C>(!lsC~C z_0#9U8!ddw!KN?Hff)t8a>9&IIq;>+n#lYE+vnIKXg?QW z8;I>JY!_hT&@OhV2DSLuVuzh9_Hjiy%@Jj?INl;Gjueo^&a1FE@9NhPw_OD+Z*ftn+x;)sc)qK1Mjjz&nTt$<{$!zQVyz#xkn3`xa~Jz4Ce zOR8;vWc>u2usG_g4uk+Q~0k5eM#uAgl-Ue zkI-v{w$;AvL`i>wP^#2Had?Uz>`F z<(U|siQSo)or%?%7@djD*-6?2?Idl1c9NEP(n&G9vH{vqO#L6uu58GlQb|5Ft7djh zBONlpGjYAKDEr;#d;g6hRF};^R;W{P53M3>2pzG}FH^d39&1zt+J7+^jN5!v_GBZK z6fF;rp7k2uQ|1XZdNYX$u!pK@tTKpx2}YDpDvx6$$8fev{tQm0#=a_@J(-c$n-_*) zvXqyRx4Dh-(%F+u5qY1}0qzAwTO~Fo zOOf0t65oAYPk|muNVF%T9hu!>$tyU14d!5%&K#Y&dAA!ah5i5Loo+sx18WRL4LRYX zbDv%R#g)&l=X~rFP@m`rAgr#iwe8a-INWwt;NLmkK92yK3Z`y@{nOoGI42ZK>et?7t1kyjSs;!91v)PQqD&3Gwb$TtH&Hzm>(4d7Lxu zKY>D`%|wJ=ZCUwhn~7}LOho7p?=!NL%|v7rU=YWM%|xUO7?)^in~BI+z+6IYGZ8rt zn0XYNiAasX+GZls0L-Ein~6xX*{^LTBG((NZ6+c#98mJK%|zq}25Xy%$bANDn~BJy zz%V3=*-QlKK94if-61)!5sG|)D2qVb2t`8psw${#gd)Cy%0?*C#Xw~v6e$J#3-YdQ zgd$wQT0vza6gk^KWg`?h*Fa?>6gkg8Wg`^1*g$0?6uAtLxfUBCtZ|6;8F+4G7OgD2 zSMZm?=S|&uHz6K{5tQ2yxrOqONZbEJ))}bme%B49o{?q^sY6?nG6pTh_M zxGPGK&x-pmD5uC#-*0v zz-|!WevrE*>e_bRkCA0{YRBeP^xQ}s&KK$WcO>b?7Y8%@gO!g2*z_@ zd;y@&7-EV%JCD_Xx}6zdEC(Z2;9)RUf^h;;sFP-bu?mb>uCu^c1IEcF-yRsZff2h9 zAB;P|ppPMS+6Wlyz~JbCVq}AHFBo-TJja~ofUzEo1tvuljICg-21C7?xnOJq<8i~t z1LHL?*ymS5+kvqYj6WGhdoXr^@s4411Yx`VMK&zmgwYp_zkmVPI@V`A1bz;>?<}(6SRRi?2{vbd?RDUH?Jz6% zCVEkz&j96ILAzcE#P#;UM7_Pz=X>7iXd7f`y?xlI+id31tV_lP)buJ=RHVk%-buIe)=@8>CF?VxwDfXJ$;&kzevPHWtXh?% z!TA5|5={ShR~gf5aGgyz2&4WltqRsK{G78bY?XY=u;P+>(}<}Lk|o!mQ&F4+v$^!3 zT6HRxf>)$;GU)Ql!iP#HrV^<2$FVk0L&I>mY~VYRV0+LoZp?65o{5XNC9Yk>lzg|i zc9mM4POoAIL5&vAqrA1MoWiNYG^~^~z5db#bnsx}Sn{Z5hCU+*m`0+727%3s<2TJaV@snv2Db*1sf-_ z{2d#cydbKz(;gIoEmX4D4i(leVX+Thj17U^0;XciN>Z^?Ocp8578`bwiamX@*wq&nn_pzH`6VoN@yKEyPgoomAnS+NgvDV2vUp)~Mw$C> zO^K)CNC8u^T`#HNKNKJjx)?rQ7^3dSTaU&PA?8GgAD539KeYFSO)9Aj;waa^5JB6I9zioMLR*Aw?f*IDXqBk%qq(^{8CyPU+xOQ%nn zDspy6`kkVeO2{ML)_91?OQTO2$htitJc7z3DWsH_PM>nL^3v&3j68la7)<`2DvG^_ zDf5?3pYkoyFW|LM;m`S+K3AkagFq?erPHUZ7I_1;7%P_*NXw8?UOIisb0Y6zqgQF8 zymb1M<2bmV5bilP0qAH_{tm5AG4l9*VQ8zobo!KwC4a?Qob^9PlD`!ClqE^>oGv0b zPEuZPI(^EIL|&a7b;4ofF&PipRiyPP1;=Ug5H_R6VPjz3#*L3OJN9gX9cgH#PdTvc z706g)=FD>*dDuQ<{LJI*UP{MuUf$-ZORUvKmx8nf9Z;9(%W8uzrI$@Jh1jRh)N4kU z(!0G>Oo0pW|ijzsB7K$%CWWhOYXMY=&CxqlJjaS~ zQn6h7Vx1C_$ZyV*dc@bPXpP$_)89|1m1$rn>k zV1<5x_#@!CmDyakEr&gWFbhpxtZRkWA%TkHPRIC&$M}h9qE;4^LSEMp`VkPMl|o)$ z1C>(9q+6>`35SbkavlJN-5-Vj<`y!ltSJ$1}deH zcY}dSDdgQ@pjHZno<<(-2G3orE=E1VP%y?H?s5P=FY5Ax3Gwbak>V%D`&-dJp_NDl zr^ktmD^b;G1!pc4oL)6pw~?h3oZd`8YJfz+=~V)A%{8sy^y&b)1{PwD>%I!zd5pn4hAq;T&I1J$H(?-RhS*z}}u z??k+a-@~RSg?mpTdL5q;Jt^F)K%DwonH26_h&YSN)sw=#SqAG#;oddC>an>|O$zsZ zWU!tT?mcGGuTqo3Jzlnww^~gKS6WepZ-$nmyY217eswLks7c}8I|i?T0tfp)Gso*m z;U3-TtK;>gaPL@yzo#aJdjk!=O-%~-PBB zzEtV;q;PMk!Fp1-$CV4!{-3Hz;ojW_>q+6>W`iG8lfpf^ZcynTQj@|x`f5=4VcdU| z$2$f;q9%oV{{&Xm_oKM~*w2*~71oo&J+8#aiTW}r-1`mi)x?kE!*;ywy$-D8Z&H)O zz4r{(lfpeNLCt$4lfpeGB+s*+6z=)J-{*ckDcm~-n6Icz3ioKZTu-bgg?pQT7ZdAA z;T|WA&*1x`Cxv@28muRUdw(@pPYU+ts9SkCViIjBA!j;U1Rb(D~Do!o7|Lzp5sMdtD8FO-%~-I7xg4uSZV` z_f9idPYU-&8LTITdlvye%=76<;a&~!&xvJHxLT@nKA6Fs!TUi1fhgiV6z*lB9jtPtCxv?j2J1=Tu||?i3Xe6i%%t#8 zN1UuP4ho(g&nPB^M>r|m`!Vu%53gBG3ip=d+P)wPuRs)DDlS46;El!pZp9CJ(%H+(L4mqw2 z_F`&ZPpf@>qj8SJ)x_Ca=bWQ;&d?vb*-CAUv*gBA%*vJ@4-GzPU!9J)t@_TkOafP9 zie}g?u5ONVa4~IBH%pqzv&M|W$^xjZlJ(EMsDD1=nsC|J!>ON5um6zhXAX6-$@0IZ zevX$=TW^P+8l70+qJBPe_Oz6fqLVeyUr&g}ihxG_ZZ(uoC{@a|hB0SVmQR4LZLWew z<=#M*8&!!l)tGax^lwOE7;!xzb#aw3#ee%!#vT#sgzW&V@4O0 zkqvXFPoFlkvT9mm&9`eB7f^dxRaZCX^2$q~8@#-xnp(=sIYrDGbH;=TN}2fegy{N9 zr#DXE%*9LQHdy1TrqxbwoJe=~vkV#oHEreG>GjhrrEUFsLiBX#vukEgn_j6@&~vL6 z)Xk}?wl1%#pIb8l8pD}@o?HM(7b!YL(J!%_||GTCObLTg5y_1lretKgI;}W!aTN#dkWsQF3nz?;JS72kB9@rSZY{L}v zO#Xi{otcA@EJrqf#lVDJO|sZKYY&RRu~4!&QXnk$amiwrPFNf)CW~WA!lF`uERN6# zt4LT|!8WNx7CWECU?Vh3D)#jy701>oi~VRxwF!_cs%In>hu+EJ*t?`+my|4aFD2C$ zK(aVABrJ|ssskZFSk%Fg_4jxxj`@?tF-A#6g%DXBMvybIUrH7`rjm-P9kQs~kyMsd z29OKem(HNHiJ|H=l`TwE9~=_fj}MJil5JxWZDFKNvRc@}K*^u5z6C8#N5P~z zarFvWd_o(v9IaW5EKz|KDrjOeFlH8WH0xCi#M0(*I~bS|qEenyU5U01SCTT;F#q|w zFi;~io7pG z$V+XMm(Ct$H0tNX@LSZcNg*kJhqi|?^32FsTjiy*hxv}=uUIk_LVceU(&uk(>-ohS zlH~Pnqr7zXFfWU|HziZ&97Y~9+X35Fd7if7`?MSwFs(fdb{%opEo(VLyE4zi8V#Ap zZ)xgXyrpRr*U9eni^3wTHZTqAI}ew2o%iAlx**fpzRW}lSwrDC`%wauDN~1G?cZNh zO!vRb9+wfPnEyktx#}dx??Lne!VmH1oItn`TY#!pr`J7M|#BXTky9!^RgiiStjWS@MdC@ux7sI+zCy8%ZMr0J zDQrr%2zZTDC>F|+ zr?CAF8*39@2dfi#iddD9#kxc~U95%3;*r8)-9y%|<1AKNWZi>JWUi(9U`=o(0rk6PH;bnqD7#I zeZCWjQM~2_>PL**VDKQ~0G(Nv^(mE@rWASKpe3w(~jVTaQ693JK$GMhW64!Vq3 z2kk%g|Fi@5n4wwvX9lym%ne1VLR;r6@VQ~2JifiLaD@FcBgY*7sN~P!WNP|T>H23z z9$k?z7=h^+8>j6q53H=>D0J$L|e8TjizepZ!DfCto(} z(j&=VivF1=^@@?VqK)#>_0Rf?ynFTKS`QpX9t)HGv#0PdMM?2(;kOjzOYNV*Va2>! z^vh_et5;@}Su#qh8C&od{5AgqVIF8J(LztWCZ{EI6+u0#fJV!+8t>}&P6mxg~*aZQV^7Md|C zq*x6?_9QgM#~W5MjY~<}uZky`n0&Os@g$QB%TTnY(XN&rd#Ob2hr^{IKK04tg!N ztFW!c#`lov`63o$L*V;M7OAlA7Z%@N>95=?EWYBxvW9A2%-`*eg4YOLDRiDt)+#tt z=p3P}bcp*1Wt~Kv+$UjQC9zM^kr?lkX{!|xqXZ1*&0wFzw7pIw4qBFJn+zt#eKeTg zM)pYz9!`u*n6}4gVthwT+kvkh`y}Su&q8LO#C&TjiE-x*o~UEEJahZMBNqZgW$5P z|Fj?SI6uq?rXON3n}yttv>&pPg^lo^_Ct&uEe$U|GjoVw`VHy&Ax2)MZUDsO4b44t zyEk1wWDjcygiN{K+QYPqO#Z6U^g}+v`;{0P@jfI4$+_kldFlEgM=LK~Kg7uEBiC#4 zw;bgstd#jn*AL-LGlo~>;Jf5GTm^YWYR{4NL*AF?!}LSup?*jTDf5@EAL2^CW31$F zX&dFG>xYb!=VO3mY8&b+hE>S0-1?;a9l9UVEb{nCQNg^Z2Aej8;L1uZFI_)mfIM%- zlK#Oq%9~v^YkEV9ehB;b3`XAX+bAzxKcq?IVV<7~pB_dY3zPkj2T{IJQhfBjihfAf zva)&515NT4Mkl`Q9$VTc%Ni7hk6C|VH2?ZzJLKKfuXFtkivknh%ji=2ynS6^t$jn` z4UvMp8yAHq?sL18u3Y3#e8#rsy=bp2+-)x}tVH}W#CsynzRaj#m%NJ1u6cgYDvj7( zOBZAR3dk58aVL(n!@bdynSe5xHxubm)&;xW&ZU{BS$UZOoevNFqZ;I6G4fG|e7u7^ z?nPcU*w+{O*2=}}wq3`yNn^}=n^xMK-S6jK6#m_^hmem{8s=5ZN@AHM39jv@}@~u)_ zXGOTGBl6y{lzqI~_RSN*9jt-9us(Y)thH{HkMg#_moJx?)h|)H{@oNj3AXbc{G)$2 z9*>edP3V$I41GMRhMnS*ic?zco6LWfZAQXcSAQrp`eZ{EKXVH$hgzn z+W_JYwQWCsX+Dd_J%yL$$FDGQ8o8(QGOX-P_zTRnby?>O2M>t5a?aLqo-CS>w`c|V z4Ju#Jggjcgzl5k@gO-FYErB{m?#tY9uHF&(6Tx`y@LyN_zQ~=Gxr=cps}SHFM!RHj z4*3U+_RM4IeEwy!6f*)@<=A&TqJgeiBN083(LRUkXCKM|X1u3O6=(2RyCk2T^2y!> z`0PPvQIb!72KnC%X>M4K32Gmj7{_q4wOTYQaoQ7R*lJgsJ^UibLN#GLZ(?>?{Is|g zk}%lAAC=FfIg%77z%7WM4K{CanL25n?)&G9?v?JY9BUm4?<*VvFpXW+{f`6Oj#0DO zNNK>_Bjf|_-Nx0=nO1q$sL7gv22uSS*$Gb&Ed~ibw(MXOlknYdeQ?f%G0pCRCFd+2 zwb_k6v3%^vQHwSQqi+5O*n7bf*t;p!-X#IJMRgC@O9E~%*L`u(2MYhp8NK+N@V6E3 zH;YCG9HgmT;`BuEpo~;7)x;r&BFsQ1l9)Q7ryLI!-QqG#inAt5^boQG`XI{)OmTXX zB*nStp@IQNwc%VQ|E4B|YS_ruV(@ROu|uUXd5vdia_fs{7qLYsle~_I<(bxzEy7gU zWloNTI$P`qFiDzYQd%WpyA2N^g6T?p1*0|b=l#e=YUH?d8f@(+am6#qAaKNya%xS@@q0uM8TOT1ki z%wd;}k7V$i^OoPZ_RLkCUjNSj{ATQV%O5Da^ty|{ufxVR;!14mu16q_vKF`Oz znKB@sfn~-4E)H~2qfagWOShc%u+j8K*A%UovU_6g8l?L%HV$#Wgl#9b53%vP-w|71 zY`cJY9)4wuK@r%bAd8=QVX-|y7C*Q$^2P5kS^QQDi(g{0_$ihH*(M>2jS@-4Z#h}~ zmUtk*2@OOVy2WL>TleW>Zne#~raw6~Re* zsPH81!Evbe;5bx!a2%>_8-{AzhN0TFVW{@tI8>}B#Kyg(R3BMVst+wGEj>EFjio0K z85A3ToO5X@GXABGKXL^J1~dL>FmB;djXzFS(zHB0R`GCzb`VC65%3x-%0mP*9+z(X z(a2*Z#$e<LY>Llg$rW=3!L=H0LcR3$8gx^D+TzX1*>Fgk; zN@@%@sjySz2_#7=FWvZKy`+9d1bom&dFjRT+@7?x>b(E&_t(S(oJztoGu`_Q`M*h1PGh1nARcvh6oHu5X z-)ZHdNT)I7E4}M6Zgw5g^+KAi2fEH1_3U*Ra}0Ys-S7sErLp0rFDR_ul-BEFC5)vN z+uuQQd84rA7XSms(%AfPj$f@H3gHpLo=n^wTj22+R4=+(@d} z&frmB;uuVPJf)=@88LHM%adB)<|)5A`*JKLtUjoEj3WkE?kz3JPq4Gbe&@+?;WwJE z8Rvu(#udgPDMN~mJ)b^?coK78G#~$LY%!RZ*tS}An&aJF^X2*~y1TJUKf>;=J}zB% z7kyK`Rx>)XvHodd=Za5kst#lJTfe%qFZP+Ix(5phA@Nw^PI+8T3Q@9mS7y{#o zoj39*llf%ljGZ!e)W!f;Vynl-w}bncSLxjFPLaizM_7EF$>OVJs#tZ~!Hn5Vvu-0k zM<`!P;yyz8&Jwd~CIwM6U7OxKZ>CLeFy*jKZ`v@XO>e&OrcH0~P^QQC&){Li$b|WZ zGoNhJn{Tjb)0=OoY15l;mTA))d>sEb?`Ga<%zA*r2I+l+P)J8J|8($>lS@r|e$2San4h6(^Bd>Pm=SN< z|EG2ZyZE6)FztGS*^J@FXNIAz_RZD$V-&M1sLqww<_O#MMvgu^#w?hbLj=Q`&pdlz-8_BueZ{($G*N>8epdVA=`NOm`V)D|o>nA4lTXvv5k`z+rFI~I- zXyv7A*Bg0Mx-ppi6{Gy52vX)RUAumqs+F*ayd1Snp2NP7SE^5uQeL`t{aw-y#o;P+ z`vm(H%>nIw6`+9)qwyZ$YaXH+%Q4kM45?SSnsC|{0U z^~K+Q&_lKBlU_ljK72^@$9{0BwSBkiYH``DA-8Z6n+wGi+VIgbYPrw^?T-m&+ z)%?mk8P=o+7M0!dUdB}qBUh^|tL(F#cJ^9(fVKL>)2;mXyIZTBrn#HCW2?5Dilwk? zxCZtG*DTELbV)e7(-~#gc*k8aU{f??t;V}C@9KXaoJ6@BgH|r8=v5`iW51XCt>~Yf zv*LZ%TD^0@+)a05JI=By$|36v$T|bEimdETR@oA-$jHjlvhb}hz^8fDM!W1Yyeg|+ z2Hluj_Sx@FF5A2>-`f0g$Fk4R3@i94u3;ap0k>~e6z7cm_pDD%{N?hTwZB8zsPs5~ z@2S>(z2q3YhO4^an%~5+49MWuJAmGxyw$;mK!)TicDVe)jK}<_%oDe)-b% z@n#~K%vr8BZ-`}?ZytR0{~HOM=?_U|<_@9689VTQ5q7xWB)s%A{BHsbyvxLwy+-Cu z;ox?K#sC#y3qDU+I~dV=Y@rX--kFGI3__HlOe%`-8yZ{ARhjP~`W6ypevAm!2U$vQ zFA2Q+5OI3JXhBKu%bfV?y#3B+RAs0)RZG4)Umr$8pYosq%t-_x^sg9HQnOzI2?lbw zKgz#90lQtI<%qt)Xzv_eQ!fAVm^Kj1R~K0YhHbUOY6R_RH^EEOs}Z#4_%M^`)d<>m zN0fqPHG*g(;ytlB<8prllFh3KI?6v$y5ueN1&04(jT zVBD5K&C-rT+#wGq$-{}mi3SXrK{0E{qJ0Br7#z}8fyTwz@lJV;?uSPcZ5?v8{Xrg6 z>19LnwWrqtuSH04!7cU!u+^%oW7F~Z3WkMJzB5NQLeyG>wsim>1_@?XZzY^*0#r6u!Bc6? zY)o2##R8_WD3_Zp3>Orz&cO7Rp;o#2pIv3mzQmdfU$rnys)XE$YPrfrG}s$z8f)gv zu2jxVD`(HKW??PW*y;7EmTF&m>k54+dnD;t)6pZpr z;Q0gCh}qNQoE(mfaa3&J(!I0HTpf;-EyVttu-$|0F>G70{TbVP*!baO{`uvUA+k3B z$>Nt-Sp0mG#jkNOC_+y}$>Nt-Qt^9C7C*?6iXUULw&G7xv6(;?+X=#&io1d~YCjrK z;^O-~hh6Ar)@{*rN*yTL`gJokoib7|UtRF0@Wf0%RMROPWIx+e+#i+wtgVo43JZYg zSsM^Hfl_{>rc;VQ(Qd8dhXHiT1E4rG<|Ba*2=M@+@?eApA^+sF{Y9E9lwUI9f8&qz zpF;NtWy6j9-w1t1=%YgK7kanQ?+d+A=y!x(A(RbA{6gmmHMSMQ1smH6R)I_>_cGL3 zFw2en&*b{v7y5Uh|08sV&=-Vm5xPm}okDLFdcDvkLN6COM`*Rsi-eX7Jz409LQfFd zNht1}%5PXGh{7F&;@L{M{~GWUZ7`TW+F+QE3o8KHU>JNGaR7#w*cdqEOdAX{cJm`* zyp0BLB*t59@T0`Yq#2uek~kA`m~n((V51F&85?0^oi-R|Y-1ZSYA-W3@fvZ&vdq}R zPGWqK%-FzgVvJkF`u4zyHW>B5xX-arn1s(x!u^tPRT37PjuhXT%1Sy>omN{pZDwud zrSq%mt0nEE_~!wK>F0D1cScoBof>D>Bf~?q#m5jm z_B=!ziwx1mB15#X$PjHTGDMr44AJAuL-g45Nv#b>IP6>^gV-flIP_@7od*pVFsMj{ zsaafTxoUP*-GYXi2Kn^H2A==Zap&*Ic&-_DHrRY*@K~tO)^X=zc~B@1uZR`KbEjBG zIPPrZ$my+n@xB}?m~q{7bmPuPD=*!+vyr!5GGy{sWbSX8@=G`Fd@oxq2-R{wic!BY^n^Ut z#|SM-#N3Z`)>BgN4MP5kqcY7P78WPtu$uFV^afUvtXqO*igr-q$zf_+ryKPa}`Q z`5f)W^MtmU^(nr0D?xc#c1=a#;U@x>d0*7g$v{)*o{`+C#3z?KC$SLJjX(6qN{ytQRP|I?$Lw%z@D)A+E& zuSVRLcopJN9e=qT#};f^kbQb~r@J~^^Dq~DQVzzA_h(c-{E)Tf=3Hyt2f0@B2S2)c z^@=kCIV(`Sjotlp;9wlOtGZaX*Q zpQDfF4wyO{`QnS;Y)=5x>o9`^qi=0 z;y9uBh|CgG9#wqSjm*GGd%{>>e>=;~ToT^sW{y7V@nscH zB7`@Ns(3PdO8APWKXz-vr@5Uzc(R4@PwaV$)d0B0mVsSB1`NsRNbCQ2k_oMMYEC@K z#B@p2J;zQ=>r74(7KWinVgw%Is1b6MsoZP}&PH@tC=_FJ_eykAob?xp?u@afNGwM9 z95Woy1etD?1l6m&p>ZpqaD-F? zN941vX7k4kA|(zIwZ)qyD@I-iYes2LuvR3CPm+x0upT6f6``}I2qYq;+>o$%-n0ERF#Au_NcJ@?ad|*sF z`BGxfvWirWEo(M09(IH06Gx!ul>MxeI0n%ycqwsCykCZEZ!rcTV>sYS(0%+ApAoa< zLENltuXkBt}ZXrzc-lORcH7CZ-U7*=kvAFnlSfS61TERf zOWVI^;UJhV@AIbO)@=T#mY1e~e*s_UgzzW43rQiRymbBhqm`Gge{bYn&KD2CTysC0_-eCL$OlrMz_g`w1fN6}h-q z+9)qw|GrqR??K7Wz4DQr+EMo{Tj%f4{d?p8#mJk~E`FgBOS)byFJ1rs8hjiXFmnZC&}yCMtSM__b-aPHzhk`4kM45?SO43%2(Ywd?47U#V07%y5}w7 z##>DBEiMqaEy48fKRWlB`~G?UGxvR3`OJNvU;4~_2j)C;-@)O|cD&ZB!myFb#CG4( z!cPYyJH6m*6FM7AacrKj2ewCjt+JbIJNhf$g*_Vj%i|;Pzq!HA^4QOwb*8nc4*oV# zqfV&&V%WUC9qH%gl81){t$7vgtx0`gU)48kjVEt!*L4$K`tZ*B_lB*TaN|GL*6(wj z(*5vH^FI93yaC@hZ@QgI-)gW*ce!rq-(0)&?^n`#s0)f z*P6G${eIzK>(;{89c$h{o$nX6b8jvDBW%Q84Ry);#I*+hF{^9d&jQxq$3j+V547jh zIZn6oE{883bsnTWDd{|aJj8hp;yiy$I?qYAoClQWK{a0R$82}vADni*A9Jh;sHR$A zG?@w>bGnwI+EVnfGq8p+uK8ynYy54;{jsocaWsE{|KEi}hD9fK8fN7U9cJZUxwu28 z3vaiKHnpNd~C?CN%`odw=APKVmh-3}X|(?h&t?J1AkT8QRW!DGE& zEj+lyn)mp_cNO9jRlt3pyB#;waa;z+6e8XE-Cr%7k9*q-&)O%rubBHc{xdgY!{@HQ z;ncIsHXV5FiA{Gb&R=`S!HajmpYiHD4wmn@((PPv<>Iniu3UV~+Sg(8xUkP_x68g; zX1ZlJhl6WZtj%A3`-K_S_)a6NO_do|$=zQZoU|PBM=lDl4S#X*jxe6ptdFm{xfbJH ze9ni#4$pu0;3PhSyYUQ$JGNVa_hj>KJjYw{9QVQesdw=#uf(&w*!F9oubs5JYi31w zQO~uRUrgNr8_v>9_%G@Sx#2}w;9b0~&)~4Y#)+nDgxV z&o6y;{il`BuK(xx&#q6l;hT>etLuSuV^No)TCkl}_;+U6+faAN7s9ek8w2A}i@|he zUnCzlH%K_A17LR?7g$EvP{mWhaPJ19`IN*)w9=kB^*;y1vxY_(dmv8ZU?dLz8PO&( z5!Qgg;4I194fef=W_^grZy4eHefEg5s6wVXJB#j@c46}_z@HMFbp~P?kdieW5ju*> z8jA=W*@yp(i0RB@SVaYAgnKI_1sa&s)!6)xWKZDoEE`8r?W~z)hy)fWCUw)`&PUQ_ zM4U6-+re>HHQ<16Ar|}r;Tm3U4$=gFOn56#QA+qg41SaF@fd6(BCzBb35?+^PJIR80|fPTxzkM6DdjGf&sh* zxw#qa8S2y-{o+x&R+7~0LP`QW8cr;!<8S#?Kh?h%7yu_@WeK-qTLGeQEX#8GUIiGXKxq3$i?@D02Dvc^e z&mDv7w(=-5pT!#p7I0^~W5Ld`+82YgCnGWge?cev6fo)#McJ1l+Q?|nJPK)lKK|kd z+ae;5M;~r{vyI-MPz5H8a3)z+a=;VTukis-WnUS09M#gok_UUn)Y4D1#EitvDzg*E zNpq6@JVoKSDEk!eRF5v9a`~7U&rfla%K~k3+0K|;wil;R4J%@o@H!| zHJObUtc9Z}bUYILLbbHB+^g&?Go1nU*zn($Hec)hZ1EG$xPtI0*NqJx^NI5DR607r zbJR%shB{k$j@q&eUZb*}FkYit>~WixeDLWK?Dt0pT=%#oL91fyva#XI;UMZ5_m0IM zz+sf-?y^RQ%a%HQ+l|^3aNK(qha24)qus8f-KrhXg$G+u z6E)wGRF;qnCHeia!&(hSnudT^y)^uw+u}}Q!K2+aWIAv zu_V=+5&t(y0({*OY^&OQTVTR(SUM8_KOj+7#|*YLgS898nm9`{;{WCx3B{;Bdhryx zk|I7-8ecMITrK15i6R(}N|NH(HOx#-(m{3&jV0kQUyEQ)K%Y7cIMGECT@zzXUnkK= z<1C##{y#`|RmYOl#&_zNIY&|KUbVU?b3>ksNnx|6MR-?s?T;mCb)s={g2}NHO>Q9q zAg&iMBQsx-ULd(XJ94c6BuuYwm>wU7OE*uNgO05dSB@{&wyLAfIq%E~6VDu2%E_YR z)42+(uby5H`QJXfs%CcOcuZi0l#Z`62?l$8(yhZ zKBumlX=ht7IAWwN4#;pGXer9&h!MlNO!!>n1RljM;Z`|wdR2A(EP~3}LXl4k$#8mW zdVM|eQfiF{w(1&Y*34*B1M$4?=Dq#BytliAekAmO(Bx-iq3{oToIHui$A^VKLa2HE z%|o7?-sn}R62xVuB z_(S}W?h*Psp~i;ze!=$&H8#WS0OA+=w$Rx^rwL^*0>4n1PhMSC>8$`rQ(316yHazTTxP~^n3d6 zaO>xtR2pCB{G2fp&nhj~O2Ab1y{hsq(j|uBZ|gRG#L|Sfqk2aXD|`fl`S@@{ov1=v z^?&Mvi6bZvkE!KDpTjmDK9tQQCRA3|)nJNHRUMq6GE`PhI&<;}_&YAp|4aTW0Bs=)Qk4;2olpEP=HBjc3A%bR}5{7ca;oH2*TB>Q7C z@;+vvAsBfJQGRl3WRKo|IQ?V}-eHDL^0M?#E--z2bRzu6^popE9@}XQTiU4aOsAiGE=k_5Hp)w*xUVlY?+9tC4Zo7m38y1E0Z=BL0Zzb%4&-qoq z6=VOjx9R2JmIW`{k&2B|I!t_VFn#5@`Oy31u7tht-f7P26Wf&yy??=po1hOGzvqjC zgWp|Swz=jiJO7;>_Ub)uwDf(~uh{dO>|Vn%q3eWS4Ig@<_uR6Fce>t&z3|U~dao={+CW%k<-+5VmIiYqE7Q>`zm{Fw*%+y=oYY6cRNtN z;|<%c_#JGM%NO+D^g85YEv!l9nb|A4HCJx3V54j;jIOni9uNO&3+YQRep}*L72}cL zUm(B8+lHNPWJ6^bw${)sIab-`?zC;j@zZeZG#ra{Ojb|BvBz1CcLsc2IL~$6R03Ta zeTJ-rE%p0XmTey3L@V}RX>C4eXV%{R*}+Ng4#%}mv^MX(t8DZ8ZlvP<^R3Oi{#smr z1lPY0*Z&^Q&1+wQ>s}527cb-5X@|Yfjc(Y#pzFjauGwaOl|e0ZYPE~3wY6WIy94)Ub?q0r4Ei`;#R`V*RVV}Mwts?W zY|rKJF*31i^Jv~%Yc{S`|?zw_*$Q z<`4d<=O);rji;Wo=HCYgw@3NSzp8A<0&Evr>n8m7!JF#;b@0FPI$6u>|MJOQ6Fzm@ zZ=fz0J|JINOusI$*MA%5?6qL#Ch97Cee=2thuO!}c6j!-Ldacx(zD+y9Oi~=-@tY3 zzABIpUTzrAc30TJqdzriCywoE7uIGzbbH~a#C+6ZJ)GT;^)}`Uyo2{`k6WPf=|fk#a#29NQ#ate z?|u>!}l3`fBZVJFhOfwatXPn6;MS!?RMTH#vsV<&x#JnnY8!e8dAg>U2iJr3*4 z?8Nn%^t_e|o)5>r4LQ6w8_p`*G#ckZK66LoT)lCwkvPvMD361vb5@`{66>ZT)#q9{ z;f#RiyG|r47|KLXDl_B;f??aqcpp`;u9DMfdO3chHN9cm?Ew(@0sn%*6G1`)@t0#| z+ymmAVXA!qsio~%;blOyWpYMmx`rM8DHugO_1H|;G)gl+VXEQ3)Y-8z+oQ&JM!W>b zEM&3`=bZTp;9|fmcA=dKuL8O^-DYR?B%Jt`f*)B~y%XRzD1ZsS$;8f0QSW1(XZ#gF z>YMKIi{qTP(qNyxbZ6W?V2(ri<%E;Cn|^8hvtzIuV*WWXID+u+G1-?APKxd2v}FH+ z7z{z2e=(staWBH@F*t^h<2!oqt%MDPD%Tvbi_9lfxytSf%-}TU3`W$w=_4yzhRF3u zk~<3#tp~_sx<|odFk|P=d^u*DK4xRfW32dH&b0D3<3P9#u?v33NWbqvUV*yc{w&Ob zx5+*6ZbT#RF-06J`)4TjT<_`Qh zUofrHp5s6+FT6|pjfi@T_B@8=;qvd8t&CA%kcY~{8IOmpWBAaf*0RRcnXaDV5s0fN zgIYZqGU~~UxQ;XK>PD@tGb*2&PWrZi9@VHlsYHdpni#}h=u{1)Le`H%CT_XLPNLQ| zNBO_O5qN9#`aZcvJDbOJaXoH+Jdf-)7R0lIJHe7`pQyDxMij0kEK=pr^D9)iO4nU! zSz~eBF!-l!;i={qN`ufJW7Kid(8nd-CBz zfIiVgw_sFCv#PgBw6pXip!qA7=yP$FPTu;zT3Cmeb5k5kGQmXSr=QmP^wV0Oep>R0 zO)ETp`U{eiaB!btp(eQcDH4m3Mv1MAC1I7`B3vVAols1}X|W&RQDOX^j|xJHrFKk` z2k{smCdrFB1*MqOrcz8Hm?P5+e(Zi$X-542T}kq3EPGSqJ9W&c0%yjgv?|RMNsQuo zVeF{M%O%QzdxjJ_UMIUAjU}0&)5ibrZ!`FwIw>tc+C) zZPrlEp|Y@M_N5p~i>(nfZDtkqhnTliQ&(H5Wm>U>0}|PA88ExLa_*eE1ym67AgK1@ z3sGaRvbx%uhA~Gd5@$d!2rXolQWBl&-9aXiO({#9Ml@a?KPYgSbgVpfCr4^nc;zhCapgF>G&SY82v zF=BLJywTiz*~8>UugBZVXM;L3tNziOc0SensxQv|)%_vFStCrv#&?=8Et_&Y_S@JP zR3icOmtdm(ufjd}XY?!$mA`x9D#0dClDt)(j#PJN#%&8kKCgw>#s+8*qYIR00+X0) zWveyO`A_1Uu5~|t;WJioH(}%TJcey6Ha1w;++n+f`DepKhCR58EH*}j#YPWVY@`%} zBCu^k78^Ih;^&zxHfrQRHj&6;8%bEJgvCa=9EjL~06zB6?QI3ca84cHWY8(gK{3|S zZ!#zZ^y8c*V%EeM&a0cO>68(mILDYWO}{Y|6ek`tNYiih1*Kem;VAc0o!8KQp-aJs z=+JCX$O)Yfid~^|gyuGuXU1fCpR-X|W=xg$KO2gp*qA8Jmjj*&HHaiYr5{SfW0UrGOTs57 zVbKA~N3Ml0pF|%)_!JGF(=e&(5-x73K49Vp=p+N@S6$5?Q6HM3$*4k#(v{WTC1O zvr?7JKg9a>+DSe<+AC-IgT!h6AU(^mbP%gE>K{u76ve|~^^Ze_Nb;#!ywJ+(>C@nT zFE$e~l^${`KPp8$n;zr-6wi3N@EyL42+ceO!C><}lSdD?pmBOrqfW#BR(eC(^%uT> z2$aWYxFaeCG6GgJi3x|(^BFlN{Y9({4iStVEuEgv$lD`jVdM=({_u)1NX|7d^3u&i z{0$2TVWqr4XNz7)bJc%pd1>@~6H#v@h8>cr1YSyc>GXU@D=(d%&&az-uGi#mJ<3m5 zDf5?3&-Vc8MFtMGG4yApkMJPmVR95hN_pw@d<&)gjh^p-iD+4A<)zc}-6-q5;7);rB7 zXD!O?6h0R75}_kdx)+SmXF>-u5;~ykLuH>~z4#SbH8n#=W6k)>uINQw!0PKmTNVtn zvuZ029-Oq^DLZ**cYF2Ey4%~`W3Bu*phtNV% z+v8t{oP7_iDtvEIG=JYWth{|#v;L*QS)DeP-{kdMp!^MO--zqD3&*U){Iid{!$*FC z4q^%NU5WXZKk-yvUfGTLk#A#uiQVkwg;8f|;c&koZ^Xjz#4{H96Vaxfx5Qdf zINn}e*cEZi?<&O70fksxC_gvQCC?6b&BIV(sf#&?!?3^HT3U#qnTb&=+8dVW6NX`q z;{a<_;m(X>OS@iT&D)9m=2}tcVR9?5uf+S;!AZ>DzJA*&zdpLq&R=b>C>(IYw!&P@ z+uYZYWt!b--=gS53v(^4g*l!2pOMq){qizzAMV?}1$&$JotZarUu1jX+$#{bquze# zoeqlcr-LZ>{g2#)ef^rClU&X6e#UlcSA2YM($!tC7J}%G_zd2+^ddDk?+wmP{H3)$ z-JHCC;9IF*`gEF_Dm-eob3Oi@VQkInV7|4Ok9QWBPMH}Ha>o&tZ$X=V2$H%p3D3A4 zr>O%B{Fd;n9|5|nH!TjZDes*9FyT#Gtv~_cNJ8hPo`KFpqcjQ!k0(0woA}3WG&p(? zk7j@ET5O>KF}MM-jBgND{1Leb55V6#9)i#Tr)O}^&m6@RColzb5;~8t55?bu{h^Cv zkk+b}(gg9qd%?{TS^&kVlb<4BoA{v-$ z^Wf)jOb#P~dV3p6@*l+CC2mysL_~FflAc*tN7=bNL|;cn{2DT%I9gv$Mt&@6<=u}X zgMoaO=7WejUGgtNlzmXAcfl_ycBpOVMtH=@6r8K%oN_ZVpR44Y%4i0abMEO(V71$h zKU{*&P5XokYJVH{V-HVuOu~gJ6%VK6;UbSoxIioV7l;Zr$aTew)r$UuJI>WRGLFN^ zgX2~1s0Iw4dmpl76?}j{r#o^_t6`^@k9{s53g`HpI8ko=smi^d+#Y`;_euzGdj5*n zq#k4SoMprxxs3SZW_92x^ZN0WPX70B$Uq+4CI1JAo~q<@U{3P*tcC0jn-TA*7>|Gv zwmbe7j1JrR$MY4Ig(h~Y#~y;vB&WM&cVcc7{HD|0u{&LD;CW8>fZgd91J8H5hwM&2 z{(scH2Yggj+6R2^+?ix1lR!d3F`?<8CKM&1g%uaJzo6)6^0*90tJTkLgrao1h3tszteOVnMz|Nq?Q%$<}$#MkfleJ8o|oc}4$ zJ^h|@o>Kr>Ng^h>0$wv|w}w}^0006vXnqkZ|DBhGR}Zrti7TMH>RbB9RL(2Wb( z1KH}7H#+`-J&-}ZU=*dVqVQ{>Tg#o0l)#ZCrYn>;PnLomB{%|Oofu@rQzRGXgdU~D zkw3FlW` zo$7i#mzwPSnFWG+EFF{zItC~cEp}ZNluVy6w|oj`FwU954rAyxOpGDI-+eKPS6_6X zKyhTl6AfQ^KeaB;_TFgK?AUp8*3zt7AlSP;+v@Kf@uVlg)jwWsrJS|Q?XmhTbGxl& zE(rVp{=U$=bzD9Kg~9!rE60w>TG#+5>s&kFDb9LjAv_>w{^-gc`y{q${%v7)-jiXD9VOtJ0S{`M9lNCdT3e>6>_xUGBJ1U+x1aOH*8 zI`5h)mO*l#==KWbMog_|<4grfoz{MAo4}~BQM7Jk50zTq4bRN!$ z{&I791Qp)3QnVW#BiqjTJ%O*gf0QqWrLEJ9r~WXP6FAY4(VaDPAcHyLD zgF*41__YOp1$p@s3o|E7$R9sR2?^Vg`6-X1bFVDCI6rf=?JIwLJ|;-DMTi!HN9R4* z_*XJ@UQrodi1XDU+`|EhWebA$#g;87#=h~B+KO1ACK~fnhZxjk&7N8^1)B;hOQz2* zp4wXpI4dfZlhGF#vo9;2QdK?|jMdIb_2z=A;);Tj1;v=_9g0xQ&tq^L!=c9L3sRM6 zv@kEdmE@E*C8ICA*idJ#!Mb=#VP$a{i82PwFRCi8EX*5XOD)H8n+>h)8~i>EP&kj^R&c9_7b z+NeRikP#5AIuW2ibzX}cwUIH)m|I?jOKz(b7YKb-da9&CP>U-tjV+0#>#MGu_esUm zo%q%@Kvz)RplEj-9Z~fbI#{S}>ilXcsGjYGFhVK5meR{mi6vQ})1=JUQgG*G()&06 zi#skK%9y_D7yr2^_RvS;M^=vc?Kn;pufVeb&wY3v#q%7Vckr;~CjZ|`+@2M@NH9Cv z)Yc1T=bqZX3+Bj!+AP5weNuZi9x8Uii9aNO(s2~$KUvbtG~$y$=1@$N){TM&oPi`!T%fD~_97=(C4NUBY-nG0Qh9jky@%#(V zXL#I*7>`fsi)SRB33#U9;SRx7csN?Xzro=`A5bU`6==lXvdkOuqe3J0i^Ubk7Bu4E zLR|6PG~zHsjM&Sj5xd#qk-cpivAZp<*mtK9JMUt|AqkDxeHV`$57LMOLUG0JI*m9| z6C-x}X~d4Zcr=W?0I`TH2UeJ>9nc3ZFah-LHuI+?p#@gMP|&|0C( zg>oM-{v){9k~CB3aG?W*a`=b;h$G-jDy26fUGPAm&kNmd$0vdl5p=&!=q*Cag!1D_ zdmbA^${7LDp+Y$nC+;Ma<9gyF_#x%co%9u<&k21%=siMj7RuU(|AuwNDKF1UL39Dt7r!U`dQ17c`Um(iuyk@^4}0%tRZqj%1&mK+ za9=2k3?H&&c1zO$-N~!=XA6@i7Udcm}L)$Nh(Z%EE)34^UNjrkgg5) zFIj>8gGK_(Q~Q}qI^FQd>crB^yA;rFaU}M$!R< z6#DEr5lNS3uJykJdUa;4e+N(Sn!~L+s7$spQ&almy+$HHyrzQDU4e64EZd!uo zQQFmr>-S8*+MP2>)5#CbqPRaTX@HmRPfO}sb6x!aoN-IJ{5Ht<5#IRH6eDTNfP|!e zHD}cKGrH#}GoJNZVDd=5>zjW#&D-s7jygsqeh$>Cp zRhQV$ZNy!$ds*TK*v~pD+L$v7dr7z8orSn>31c%za8Wkiol~D}_5>YRzxtWf+I}@N z>-#}ZzN>3yR!w&P@1^ii@f(yNUp(9&N4US}n9{>pjpCZrFr%DPCWJA42Bgp>3GnLz)R5+|PP4 z=K_C+hS~m*cvVZ@_KvCHs;D;O6kz zHGt5=83orMt~IynHZJxQ5)OV&!M%$-oUw5Y`77bNdec)uIP^mWH=3U735Ok4aHZ*4 zMwo8HuZ@VcgadP6`v>SEZVy5aj3RzTn8t*ePxyPnR671&!UuznpCJ5G5WY|NRM2r1 z8h3TUt?l&TzIA!;p_u|J-&e42} z+Y>{5hez;Z88KvP>(y^ZBZf?rKGKL`*0j-EhM(p?B$z(Y@w}n3-VnhwcZ!BwKh{<- z?TCeap<>}ETe$1Dg}c#?05`@K;C2WKa3?dX)unDfzW_IMkQ*w;ZE4PwY_-!fK)Gz9 z>p~N^m07zC?^dgR@iHrMhc!LhdIq)2v@XC^W#{i8`E1E@Yse03+>V_&-jO>Sp1NfG z@|-WTyyshA`Ka93sW-k7!XrimSC7QMssG#=34=k2YGV6UbSx$Cbr{mZ&-gvSpuL;D8j;>^l{V zY>o4)-@GIkf~&N4WzeX2gJ_=!8eO?pwC_1aTI-}_vGXEZw?bSyysz3SMh@?5_KA^` z-dAev*TL77wdSo;Os9!u#BOwHpi>7)pi@KBc2Xr-5^S(g#YzK*)m3^efWzvl)}i9E zJ*vBddC;a{@PkZM9dt5TFAvxdG-|`ROe%v@1KKjyZGuy8>^C{TJh+tV&Y%;D9$Kh7 zrS3c$tV3;HI(~LZ6&ZGh*L^V3Hd+MtFK)Nw_FAAAfDZLIGXzu&o_8t5HWV{89(;!MP|%SIgQvW?*j_O z-aC!heHWvBfHY!nUp#VjKqGd>#pv&1#MVeWvZF&+?C6V8qZqNLFCP0Nl9)FfaNKRn zqL12iG8YG9x^lokc)`3+8S@BqGUsZ+6`ggP-YN7h@S!;eL!>tfLg*bvHr8SVcml;bwy9YVR{E|h%=nzN%rdWleu z8j1S|?JhJ2 znkV#Pq2~)7B($H<-a@+xjS=b*%8@Ghe=hV>p&Vk<*CLBa{Pl;zdF^ekZ<4 zXo1j6gkqnGvgh}g?)nSG+@iv#35^lT=>fXij~~(xg#K0NYeJt9xD zp?dAa48hk5y-28DJCG)r^C$R^V4WqE8X3WQOw8#P(!U6ORp>K9cL@EB(A$Ns7P?Gm zu~7DC$uD0h=YELK70ULI_=naETmpBYGXAl|NK4&Y=XioLevSEF%J{Vmkl~?>U(3j5 z5o6+0<9Wo94qix%235n; z+4HUTR=0Dovu!SWtq0jx%BBsn#qK!6+1`^q$QI+L4U)augKRPWpdt2N?Ll%Q?I5|5 zcF+(;H7Jk&G5fZM4;q}_TPcyp7tj7b-M4+c$OE+;USkxSQ;ii!A>~ z?%URUY;HIM8|CywO3Tf|$>B9WoH44D=2y|fmchXgHP2C+UpP7ZeG(o$uIeLo$l(x% zUl=)jf7G*3wUvUwma5(Gh1<7%s{F#q;WfYcQbBe2jw1cUsNL{|+qZqMbPjPpq*7-{ z8}c>yU1uA$%P*W9eiAx5RKmvCD}5!~RQgcM9vNS*5{4CEd1DGq{?CA*;2L3FPt3yw$8TaKEflOAFr0GU4G&A zZ9m?M->{S97fufU58-#G6t=5=fFA=3xu`J-=}V{HfV~Nl)ocPDDppxOWXbB*stUs7 zht-MY@SWcL#){bdrRCZD@l_Ei&6b6I-1dI%eg2km`TZZ^d|1fplTD+!2>Wc0$9wC( zig(w21$p^(*n_KOV%K3m_f+61E}HQyS6fzgT@ZKO{1NtVBjg+2=XtGNjfveLGaQ4v zN*m8M8X5;d)^?FAzA<1l{0aM{A$x01tf{Z(I|{L{+7Fo}_m0oNd$Je1lDxb7);8Vd zs`F$2cp3JO=hmcDZ(UGQ-E^B(SKGs%lLO5C`?C*XPxe3z{|;b(_95sG zVt@9y(_c+I1X*kCQph6Dd^s`O?9ev_Zpg13a_K`ox^?<~K=-*vaVG6y?&-$f@N-tus;kQ+hVMOE!fiz*=qh>Fnbw$uMc6b_TnOYul82cpK}Q3Uc)YR z%QxRoWLUEYyh8qSx8RK5{>GBTT810@w6hm>Ny^4P?J~&!XMt`R5Cz$KY{6>KT&xRd zinrsPd3vQVNrS3bemb%?}q)=Wq3+)R&Z&|D~X}* z{gAqueB_JZqd1Rp-N9vBilQ&C@&Vs+op8{s!c< zC=)gNQGWJYC`W#y<^!uM{3XF(cgUyh^8${?N7OA@kdAwZch&4a8)Xe=6ZjxMo)MMN zjDGeIFUrw=t6N%coGpw#MnX33o9&A-mSQH>`e5fRnVD|jPFR-TMy#Xo;%wU2)J0ygniG1?Jo&AN^|ui%p&9*x2r!Pl{<;>TnoXl)~)ck&m>Gug)N}l zJ%BJxpylSk&^2hJZR>Jp5)RH%aHGdPj&R6j3Vv+5FC!dk!{s2{Q()w&q|eoOe8=&#MtpkZb)M^^O>o6YBT)YJAZUECvp?opIKbw2dgfF}2L=i| z``N{RgLpr2mBL-YK&y^-K<9DCvQXUxt*d8j6twqK+c$1I2sZwcsoBYiW+W#s>?lTl zK_@D_PM=dVoE$nSr@vsu>7<;VM{Oj(?AG~oU?jYWAMWi}FYFu= zrOpTJ=rNdGLZa4%$7o}3Kcm?tB#K7ddtimV{fbj3Ct;1aPiZmUwup?x%RPB2bex#* zj6auY)0GAtxy!-hitPatO2d#coV)5xZF0w9AQ5I)=5SZ~>BgUq8)51-yHV!W^>Y5? z;O8{#yidFwHU#$0`^0NCR6Fkzr)j8m-X~UTsCM2bvJ9{|+dJZhRE zd7t>WhHB@1A{TWiTeb5(@dXXl&ill-0NE7D&imMD(BmVDo%h{hk)mCb@Y9WHp2T9} z_H<{$^ymxIUPgDCYdzDUC(XY%jqXeeWzo^-&ZH21$3G*lBHgjG;p`n|Td&x8(EgL! zem`aH!>Mn}*BkGBEzh>b+Dd!Jy+8D9>}b6YKgQV;ueRkoyW$BuI!h{ILzh&JO*?EimdL%vLsI14#~1}G7yz9HZ6!Mm-j0cMm{?HXfRJ$85>@?P&9W%b^X=N)cc zyDX<6*E{d1_W~{mS&;4N=AEZ@<5z^+jbCr?#{bNU-Enfe@xAliF7J6qcOCPd=Y7O` zy(^=OcVy0S@BE$C6<8tC&-?L;olBSBblm%iEA&R>TnV{p%+%UOi4N8!@BkaCVBaJB zQU&cBSKMmtz96GZ+cLV;=G^vI`^FlRfm&ZJ&d{a3PqaLRh6+Y)nNPIs+Wu;Wrct7` zH;OAP7SX)l2nM`B^VR}dxZ+om%1M+0+o0{Qeg{rH(ApW|3L^#mx>p>dcSQS2Fa-HJ z1deDpzikNe+rHa2(XYko9Ic%cd|jRnK?3R^6_#)G7ww*42=a6YHUyJAuWbnOYz}RI z^=pxzv07gy&akvd2cdf~2orP=^kNRUN*7xSGpJysLp358stFmQz1lI-y|49-QQNTV zp})-=zq-#gF&L;TD@41*F$y{t%?W(z2|?TieiFXIIm!Lucb~wCj*Kq1?VZV>W62Hy zRXbn5RLZF36-b@n5f7Ia7EPVWwHNkMl1eO|sF+)R9S?K3t_1r)=M3Xwid5}kc#E?i zc+f;)MHS9#IJILQbOqP7d5zRmJzi^Ft8|UlEs%D{kv>&|&}5;usq?FsW}u^~_8~`$ z6<@2Deo)V)6=Xr`2IYYbUH4y-!2=w4kOL2N;6V=j{_%6Z63<3F92M8&;mD7C&XsVi z7JN1+6-QCD|E<_RD_F1n;_!?1E5x27JK|k}bv$TB)jA#w_m6Qy|9oV|-C*Mtx(tQ< zV5H2M9>nbKMvC4ml;%`F_dyLDTr%z)UG@Qm>McebK8YZMqfENu@Jd{D6C;jA#nt_A zL024{i4lidG~!rGJaWiIBaXSm6^D8>;#g0NHi{9)ZQ_yB0(8ZB0dd7K8;#Vk8x)EI zL>h5aC?1UjFp0%lm-k=>QBB!in@)ZM6rzFwyFfdE-U$j(%K(0jAR-yS&LrM6fE~YX zpzMqwV+XK+(%lMBY)u|e1`5&WfDBObA7RtUTkPOP{7&c`p(R2`2puf+Y@wKMW*j2A z2&J5#n6q-E|G^LGaiIr=^1U=4Ec7{{cOd>W=VTRWwa^No#X>o^MSJYSQk22-_x{z}Ahm`3_%Jd|COsHN9!?P1<&eN^^~1rze&oGfXh(0xLm7y6{o?Ls#Ty-Vn?gtGC+f5Zx*HA3eIv^eZW6oJodJ1cxi6uL#{Ov_UA>(9!-6LVqpvmqM=> zS}t^|(5r=VP(lBknR)8Zo{Q8lO&#Kxnym z3Nh9gXt{POagVyBF5SrE!WK>MyFcKWv?Lah{G|_SW*GD zSex^%n9+_((%lC5eHst_XmuVmp}3?K{&OqL_BPbL#m!1Tdt z`BHCLzZ6V&`z(>4dXC7iQO2p*U7*sKoi9Ep;!2(DIU>4KNq(sAMt2l^RStjT`X$Xr zUT?VBz??wo^+w^=FKK=hu2E@zeGopjVNhaY1I;ho`lYwfR#EM>iII=CrIl)*Uzqhv zn+Ny zn{e-THO@^ad0|K`?xuPZ>p;|<3kYih)&RwE4bCjA`&ftPFz$`#`lFXIYtMTgj$&_r z-GZal=iYm6&b6RNu&(2KvqNe0_BHC9fWx>S;#{1G(aVf2-Hmlb>;L{`b@_s?sw;3W zc&w{qPA^x7(hl2iP239i7+a=p##s>$g73QsR~goo+={awh9ew&*Ij1k(xniAmzf=N z)+`uaJqYG82-|wBmGL7y)PH7m+l;E4!1E8zIV+=j+db#_AI3Qdv;Te&XNSb4k;i9P zN3{=Um^9hq^aS4h-tptY>R7~Klq4VPEpds>D@D$6iSH0|@ti+7Dhh10@Idpy&Ay zyr<-?nRI)M&xA7Iv<4+0(X_ z{w89b%(Ju_7_hk*)+dCiT(vS3I{RFPv@}2@ui^fJwnO%U&%J~k>e%ogA$#^VJOeJ= zoZ4{>y8wQd5F!o4_C-Q=+ihFMz|EZqHXKUGPPz>j1A4{~4($eQ#4c#5^ghN&lxgD~ zF?>&`YiYzj(ds!oFWu=cfu7)V-Q+t2;~wf$^H#2&-!#Xd2lMawyTACl(1LAwTI3$>*kh}iBh~K^D%J03OW$K{ z>ARuM{V;Ava{SzM) zo0YZt*fUnyGRu#9tFv>hIm@iL>=j>m=RI*Vjwx8Qd#o!rVYxMChc$B9EuOA8fF3Ee z(OTwqdAeGSH!kxSV?9YbJw}5kDM#6Du(Dy7WF3UvX}0t4agx2ubDFhuq3zs@Y004b zZ(X+gn`oJ}%+)RA7zEvSfW%5`FGO6aaO1VDY5Ut-j380fTF2Lvw(f0{?m=I{!|XXl zMAgpm3hW6`wc|^N6uz`pw~O4#-&&o36Q@k5+Ihd`teudv*5}&3;Oz>neNXuE)u zlX)4ODP@1N$apdvBdXY7Tqoy>Rtsmq+jispvfZLWmq01E5xZoGOQXR-Ue{`EdJBgd zWjGGCc0vn>8m)I6YVC%g(F8jT&hOV^r9U?9+}Ev>SbuHWaWX+tUw>EHk&a_>%CKGO zG49VL@eOUuPC@7!^ll#(&u!K`vYn5bz2QD=g6oW;;KA@l*iG!?F65=zW7R(FAx171 z=aw2}<>eKXYTveO^d3U)t#9=%(c8eWwHw~2;JkTUflBEvLl6Q*J8f?99A&MAU;LW$ ziI&`EPE)W&Ar*~CZ>pa3&s&nGzC7Xnl=m-$*(5xyr}yAtZgC0n%~C}8ou`=v%!SKT z?6XmOHUX4=w^+CP?jPd@Uurc83>l76j8A*QIfjc<6pRy<7Q%6lIQNEgpLo*n>T4_D zW;ve!!Setfwl=Thc?A!{%-)H#hU}Tph`kbw&ZyV`(1_g;F=AJSM(oRo5xYe++KV6I z#WsLO>}QHA+|dn_SjeDmvn_-BV;2eLUM&1aa883XUnpAy;(bURJ?Z&EhYICrg615Dka9&aDJv)GaiIr= zz9Dpv&?kjHCUmpVdxhR2bg|GXp{(EJpC?r2-XnhOndq0mf2a&)EHTnn_fIY*Mj6p~ zGO-)Ie>_yhcql{Bb9b|dQQOyE(Q{+$OH+oT z=c0Z?9PMD1d&*Gs+|o8;e5Ul=5Yv@16g{_tG;1M4VMV4{P&xNZAmtfh6tn3pf8?EBuy9QMI+E(Wygq-|BJT@fzln4_N-3*G+%axaf@LenwR7c(bGb^%u+2 zZ(ZmqcnyBaO=I|)ICsH=9;0R~{NR4!yo1;)yUmP_%7ve?nBzu0s)KplniprKmwAlg zIdE5K`b+!aoaS9t;a~rV$l3{IkGtE>6&E2HWM3t&P}OOo+fTFH;&L)qpBKc&+Cg|G zyXgTu)*FOp{T?1KCcKvKJDYQ=C4lbPgnc*TSJf~3eBJ&Zz-kSih#P3#?`3F>$b0bP zajC;%?}yga)5|chy>KP_c7jAcgCDQyqw^>lL{aB^k3WCIk3YjIh~^-Jz*5($Mt`KC z+T0brUqiLIE1Dg7>7omns%5pzc z$nmpypEHf>4V^~y+0&>|_B5*B*~EmV+Uk%M{|o{JOO1zu`}I;M{1*0h+LVY!c%472M1>Kjz)q=e&&O!?*DXH?Kqgr9iokncb#fa@Wjo6HfN49}9Vk4-# zCi?EGh=I2Ih&zOC5V}U_9HIR3z<%Q|4VsO`(eK(H3H6BfjK}IrK};{E{KJjJSu`1MVR<7die5r+*o|ck4%ulZOoy=dw=jvb^9J z8PWR5_ia6)N`DUFkv_EdVEoQ?4NBge^_kM@5YSXza8z)yv`1Hr<*pCTcJL6=Y9ZRM8 zbwzvLO0^r`aN}gi_Lb5jxAT60ADMHU{4vT?EGfPh)u8k?0S^_&$b49S>E=|_Vw{Zy z`Nu>r$H-Ve# z;?5eWo`#{@K#X;7qg9_{5@TyS;hDT^m3;>5EyA-{H7_Rol<;gyjo9O`_7f%(u7S=? zCa!*er52Cj`GUBABYxRC^87alKOv+f%(i9N)%C8nXCso`9go{fPIu8$PwziL?x(h| zkNhGz4#Uv-YmldD+|&C#$e*cAj*0?5AGfVUz6%4d8O0@8zO(QXMV9~H8EP7TV1SMJ z4Aaj%oJ42A8A>X^a^uDoExuswvryn;}-Xv7)uFTrs#hypsuS zoLteGi!*N3U5uY=+^X{N6vnLB#G^9#++dF_&Mi;V&oOc*j4mvn zJGFQ&+K1r6gvxod3h}yftUN%MIs{=C_N*4eLe$VULq4W%Y*hJ0{XyA`(aqU-sPs^f zW>ikGqC0z;!jEwi2_AeB$P5Z2AH~PQ!T=9G7lm1 zcZm@jP%&boNRMn4#bdf{6dZ3#LPxY-2XIK-u>ptgh?j&uBlK~hZ0~8mLFgKxKXtsy zZ*-`<5tbb=4Kc(P|i-I^f)uzxK;BzD&;}*TaWT14IgTPqcp#8F^yz`iW7y;R`oz z{TS^E)web=rph?!Yw+u2o3+a?+_?39enp_fuTl5|;~Jg6;l{0>3BUdlxj84vFWk7b z2P+fQwd&U}ej|l$B`TN{omTNZ@wj!N@S7q0{v-SZlC;Y&+_?1<;U}LoqZsXME7dN) zaOYF|BvP8+s*~gwZrnOR_l>?{fu2T zi?RP{CiVsOjd>}tKjf;lIIEaur7-Is^K#-^Gs@p|o{@&bB=ere{+(^uzk_JhEcW4i zW{iCYbTjHY;_lqTmUr{RyWg*V@zD92gbaS810Jo-vz&G;P>DM zy{fmu%_GRqoSt~X=-+u|_Z#a*$n+gB%|-K#kQ{F={*dmr*%KgPg^ zuovl^y$7ndnH_SThTl!_n;f$z(Q8Kgd*K~kyu-V2~0uXMjT!z#&UAN=c z)z=v-Hv&^(to$~JtKaidp{!=Y{;vbFpJ8!Pt82hJ_+>Z2?IBG47{C0=+xvhN+z#mJ zOWT19@ax87L@dRxt^f%zpmGh1T&Eq_E_y3-!$=nD8Xn@pI}oO-kST6c#SLRc<;n0fvBhW{x5k30Gqnqij@ z9hgzdMOT;O)7BgQeRS=L*#uYrhSt?H<{@YgQ=8mj2ecje)8QrR=sSi#>=nZ0yC7Yt z{W*5|P`(_|az9Tb_w&%)>o+gO2i_ODj|WK-x{Jr}h@YcFo%KeIjtP}VqX(E3kI2ck z9*WXk#_tjTpMR2|bq_6c&Y-Ows#AO0d_t!b&M`f)QLEKPoDaDX$GQvKaANJ9Is3S4 z$GQgwXXbc}n>}Y<>@lA5BzQ+E=kHqBq+@M@ZAy+O;R|K7Ag_B+&&)vgrB;om{20+AZcZbj{rubfu>*f{f4`k!DYK9Dlyqh_)rC0GmD=BMp#f1|s@{~*dfNo-(v)4P+RVVDyi?NiZlPO+ zwkCtcAYJH%LZ4{uP_Ukz;D?D%w3wsHqo6n&Ex5tLeEWvs(A+Gopq7gqA!i%2@8u2SFu8h`e>=SJ_5prl+#Md^Ph@(PZ5&E3a z%|h=L$}9tm;M~fig7*pCEA&;N&kN=1EBa%1f%I2G*9l!A^hTj`gtE6m_v3_KEVQ3c z_El)_6$+y87@-+LTZg-wn8ylj?Y}3?L+56g#GIRH1f}BpIX9zm8nGLDTv+a*hU4Mf zj2@?D5TlG~d7L=-H%5ao?vdKbsOeP)i~2CG#hHKCm3okyB}(=x*uvUx*uw< zxgTm@AvV;WoEc_M&ZOIDxQ&L}Q#HexrdU^yn%3J0t2PzWi;k6jSrGisgs?T*}#GarRQamQ2>xV=s+7w zNVLMZ_=M~3H6QIhL05cj(2DADcDQ*N&Ce}uq2{*{;gcXs3AY(*e&Ob2HnQSC?PCFh z>ekn$A;0bO3o|cMeO8E1XuoDfY^mDi7j9nWRQZLQm(l!q=OvX6U$^n9U7}ID;R`n} z^QRPgF^ny$aNvB0b8Xxk{Ce7H+AhCv^D;$j2%!eq#Q0#OXdKcmzi{(18-!mr+9Ili z^KBaP+b+Lw^D_S$ZTnmz<>i_z8^=xxjuTt)JMp~CH5b|bbvym9?2wSz+IIPco0qwm zA0Q|x*2W7tHV*l1mtVMfnVGHlHJv2CaPu;^3O{brr0S4s(~#d5;UnmVXTlZg{7+-o zm4@*hFtc+49xB#*KFpFhJP~+)tO|GT&UfWcKk$8I#+%<;zBfPp%4q&~q0#&m?+-g* zG=GWv!#*5sG#|&gJoq%K`-%4D;2tsDO|)rw;@4wV?i#+bQ(VK!h`ffz_sxdvs$Ijq z-u#BF8#9LIR4*C6vO`=0@yaOB@A4YzlQNpWKG$d-6=%%ZA9+_|FU+xQnQKfu4Qm^C zmd_Zh{l_PEeKz=yc`>;*rshEPp~sDe&4Ei&w!~*NALwT^Z^7M42S$P7UZn$PgW|5F z0|BG?Ku$(;sqdE!wGsZ>1D_hrSY(i&Qq!vd=LF^NKQ}UEiEBjNzVnRc2QtmPExS9! z9k{=9if{gs{Bc+#arjfSVe`TcNlhP_4KsnWso#S4?(UG6f^&sZV3q>2{rwVBR=E=D z_9tPxOt)okt#bKl_v5~_{a<0<0_KwT$HV+IF&~d~g1^RIM#IX_N7mu~s^){!agP<^ z;eEb;ZR6WUbK@x7FXg$SuXk4Wg3dVCr}2g4+Q#>d=1s<~w~`lo@9_TT+S?lcfjipD zyBFYYtLBuNntCtY{S9Udai^MPHh4$+`ZgXj8}3SsYiJyeyVd4p498sWoTZpQ^W9KW z-*{d|L$c+K!rs{-$B;%dqVgN2{vy9&Kk}>ThF)n|xce%_^!igwcTUqs(RCTmr_|1j z$ZyC#^R%R;FZ8XoVE^I!8JwKj!1I?@;XUNRJk{?*c}(CM6?DH6$d~$WtX^sR??Ct% zhG)%&=1Ww3o0AZS#gWDw&J$KXyD|}bX;ZJg>^78oV}lp-fHTh6lNg1&$o5wnX(^aD z^y7S`WTa#1LT}PR%Sy|B#G90xS)0=r_mMc;R-`Qe#f{NA5~Q-y@+H+#kffYh^e~iGFh7 z?#|O+O#B-6o88t0b;F8HTWrOb-W_R742|zMIO}Q*?jx&2oEKY2hs*B>rb9_!Phv9f zWJ5ZP!5rkwMX~XvIIoIj%D>Q$yV+vnqi}Cq*20uKQvNgf?UXq^I+eP7IVCVJMVc|a zl2aJ}T0irR@z1t={;X6Zj_DAEbjX@x#5LjGyPuK<-V>z3N~FPll(`g7e#0o#^?j(j zAK)A;oN27~{?smxjK{f9ab*k50>+2>Qsf=iEgkwOvhKA7GwWZ6IquI(dINEaT@;=4 z+DL!WYnki)57zXp&&K+tLYx=11#6nV9A-4%(Iu|o=(Cv(`|rqXc)&6S@4qCY*@wIR zRxOT=Up>m`bf8y8LpIV5ci_dRr1+CY%Or4XXj-!FY%*{G2T8q z-i+_+4tWhsXO?Z2>4Rts*SwfgyVlHTz`0`ap?tTY9CJ_7Hl)S2;ohXR7a8?y;h$xD zlo?Z6ig%6j8gnvH$5$ohHTY1s+lvRzxtgfo$9OOf57v~`zmE4EMLc3rrjBGrCB26C zy$0T|;eD@-^tOl>--Wgr`?O-?*Shi=q7e2i@IQMY{UOhW`;tP#yJdhksn!+O;D?`c z7L?V$3bzlzEz@k`g{C$>R>Ld5!BVqfYsBL12mfd^Z;i^>e()hs z*TU@ww;0X+%_VPbbwzJJc)!t{tM$J#n#;8QF1U?YwEf^6pxW$L&Ab zqv4=Gqj~21d-6BmyngP0XaA5tYu1{%-XXYe5q*lL-%Wa;aY1AC*9)4e4{f>pfhN!| zaK_!Cof*yFlKwHH`5V%QGMYao-ICFK2=o@zr%!H-jsN!uqtju0x86oPr!0y{I(#If zVfHUPNv~%v_usm^u>K9itK-O6v?pj&@ohhxxzfLKX<>awn0Gj@V-n)p$-CH#wg%>z zw)wc>w)q&etuN8sEUfPU_nZ56Q0_M^@+M`|eD^iVd}cq}dS1+AhKL&2l&*^kzOMyzq(TMM@nUm|EgE`}WY{8N0d5d6XPOjf8 zW=HN|`W~siYB9`rUtRyMnC}~v|G;N3KL_sDExo$_D9m{V;=Tp@s?8faCauf7y8c5k z`*K}I^Op<0tbTn_$D}c+w_c?Ej5FMzxBJHgx`E!|Pd?)`&|Cf9-m#!d{d>-ECBH<-wiq9ub-LFaLY5X4UOmzHlhA`YnrN~7NYF^ z8U4KBo+MA^YX4mw(LSNwZX6FcXpcU6JEOTH!k)OhSN%AAbMo-bso3{E!Woy8h&Xq= z$*5;oF;47M4w>o)3(cesT{@s#*7*+)H6#H1?3eE1NTOh}5yaoM0(`Xn2 ze%au67~wfmo6-DQ&5`PtP=5Aw_9k^eSXQGwXPTmZcRCuG*?{t<+G*B{Pdpv`w|1y& zxHYOn?d$)!utBHcXQK;Kjx3DhH&lH`y(zItdrpr_ia?%i!uQl`dUCvGL{1ah+d{O( zpFN(@Z~)(-557fy85s@dj98rV8rs{J@Lra^57Fklw$PQtaRKO4MHM;t#u8@1By^?N;0IbQUCF?LE|8-#VtaZTtiWaG}&F`kt`xzK zdi`w6(Qm11`Y5A$6#B+X-$40h_ws&yF2;fzzMqKjB!@!N1JbcSH62wxU)q$j_H+=F=x3OeXkp13mVbCUhOpoV;z5fG`>r# za9{LYxG#Dw?u$Nv`=SryzG&X*oNca6T#NgnZ{>Z_xFdQE?u>rgH0Hd5`=J}nm5J!H z&&h&*2K0SVPO@-cbPn!|j>dh_F}N>!G3;x>BOCWcBi;LARYE@f&^_i#5*Q92zKK|C zsKVkOVZ@gpEQ=AAGK8fGVL61bY&KUXMjLAqXCW-JB`mlLT7`w-)L~f#{g_h-ix+vd z59>L&hJx}Qdol!}g=)LE9+M(iL$M6Mu8U2Xk-~mFne4?mtbc={>ym##zD;HEp7F!OR0_MLhV)mz^}EgJ~kqb@MWFY_G`e%k@WjCZ3jXZnH_{P2nz_Gq3uD!NkQ8)kfxEvgwKA2)V_jn zZqV_KfZpo~?KmK-jK~^dl|28Y>t%%M#e*S8id;jecwJ7oG3a<5;ctU*FX4Sb_$}d< zAWVe}$}Z_!S<im4M5yB5gEQj(b0Htw z#oVro9u6&zPc>pL!q0hlI^@x0-PcC+WN7N}zL*kdyvVSa!_b@$O$XlLWUX6oM&op8 z<6)R|9E$?9kqHD`gY;*zjUt@E zAT<%H04v+xh>{&(WjmTs1z5ppget%at|C++RDRzAR4T3(#5EgdM08TkNVUm!BwiK$ z8%+kHlWJ|QH`&~DQf*;{$tn_$84bg=&}7IusV1}BWSiMZwTN?U_o`i)YqIcmQcX^! z$;#MCwMJF8IeO!UYo7fs)nLsxnHZf0(Y!|K<3~|%zbii1(I>>KDr^T7cV^v#$XG=x zNT!FC$GYxrxb~by?G&X|*`iY0=OnbxNmZYdNIoYueNHa;R2fl;>T}Z9=<*2O?QwTy zl062kyJy$M&^}3R-)?(oS*Zf1KQvk>hedlm5Ij#M6EXwk|FkOk6lvL9VhVC=MJq$k z^)W+XJVl9+PII&5K&=s~yu=DvDb!P=yxd|-ojSh__qgbruQh$07=%3PJ>94s{{+&_ z==?AISnDJ~RVuD`Qc)FdJLy!hx0BA+IyJ{mFIA^}PK~jXPMI1>pW`jAO(wF8MM^cm zp0^Mb*Jh@sM-`$iEPo#Lc~y;$$7w@6sx&>wLgsNAd{1A*!}TzWn@4?K9#LASQTI4s z1N&S1sCt{zkb9gK-~OmRt{kWjRK3y;1KdYus_2LQ~)yu?m<>y1#q>-gRQ_y z;F~laVg=R!|Bv=R)C#NzzFXsAR$v40gW7$%71)SE-xb{)V{{W@#%UV7VfbsK4$@{@Qrf?yk_7RfGT+7T>*4TyS@pRqhRKq;4rd`J{9is1NoZK zD8=Y14Koy@VhuB0fmkz84#@Q=?h9OjZf2lH!_lrlvKinlbj%+2g|0xl8Q|q~%JD_6 zzz8$2LBoq(fm}0ihlZE90#}=X&44NbV_bnUgg6mz*$y*zmdbI-%PzdJF~aP!3SUmI z+5K%e>hX8{bmwb(d<ZO9h_QP#rH7_=|?>c&WgC!1w7_ z9WNF5LPK@DRN%iFs^g^s5hw!6u{vHV5Tl_wUMkR8Lv_4V;B-K?IBxrRsji2iKL=*+ z!tNWy=FkVtL*2w0efqd71HXp+@_Zr^l3iLJuUVMp^--WIKs!vx97r6o~-TM)S?l5yNR*_Lv7~@E%a%TdtIH>4* zLi7RKkund}pKF|nUF^m{GvchkU%EQnFeRAk4O%@52NR3l%kU5BfvKZ`w|*~ zzXNk&PDDRdu6b5e6 z7m{GXaOo61V_0eBa!YpuZ6fEnOTmP{J=8Y}P$aHGa+t-u?=-vg_HajO-02l#YU zXoc5VfxiIrR&?cmy%pFCoUU=56?hMLtj52z0{eik0#<>)%?f-BT&(d1E6@ncuD#-S zyA?PH%$uzg{vRuF6nLY?zp?_yfgjX(qZRlXm^Xwf_y21Jz5{+r<6q-L(8mnCtnnTA z5CHRrQRV(l6cyl4HU15X3h+^le~a`3Zr1oN6cu1dr|tOMjiLg~n@knIdr(w>&(!!{ z6cykh+WqfPRDdtg_V=Nv0FTx9_sAdMsT%*m3Oo$VUW(#>zZG~Cm|YcxH(7yt;Q!V5 z0W0tX@Egn+V~uZ87zC>ji1|cE{&Mv=PV9pSX1L&@E9{# zG+0**6Zq{IvV8}o7k5vqTX+yAa*lJh<@5%hPGalHLb}AuTNOy~quK8)uKj06XT{Tf zmp0f>ok2~P+~}s;4{f_OrG8CO+Y>DEkQl`2EYG&SoAVY z2CMh!*ek>-ozs;D7H8o6N)L~$#8TiGI1fF)vX67N<(cs&Sc${4x|)8!?Z@~9T2Ys= zg*p8*o=Jj*#`fMKrNM_RYc>~%R-Q8heTbIlTVf&V+;Xv)TU=Q*tD+3IShPL@Ga_`? z(F+DI7fN(ZG;bPb`IcEV*<&nUcFqc`df78p)#sMqm2MulIxe$bFm_lU8QH7;G=BM$ z%dJM^bL$_Aa3zuTYct#WPjz!)ok8y15F7KSNV_nIea~f8-26xV?$L^)Sncl6+P1C~9J%)EAc0SSNliunt zybmp38g#eH<*o8=dBQa~?yH-=@IL6B?@Er{{RFN%TJB1Y`|6l?o+~}>E7#yIKu_VZ z>KE^@K0xp;@s6+tecrG7Qtt~%RcEnWOM&=Wgzj^!-39$Ngl^|_I~ z^E2z##o1Qc=QzT4hxOk@JFtUsN0#-PvCP`BDBIcvn)o@GSpH>JLAG_#GV46=$E%j- z;17n?%PgO_YAMokrL`dYmWyw?WJQ+uyxhfO7mZ&ye$n_v;}(xQGVbx5u~|8|!zpLy zPVYSLNId-Ak_ELq2kPdhyq}20NE#|rW=*bloAuSA&#l#Fb`HXv;~jnz-tx_IB>2C* z+m`0svOLFozIU7Vyqpy)a&lITxdrJo3Yz6PJFRHfKoh*ZBcDJ}SKR#M;&D&s;FhQ^ zIXStoj_Q8Z=i~Bo z>#dq);}&N%Sg|`+jvbS=umPDIkNmT)*b&YaS4HKzyr?m#HcG7!igR+bmX}9RSq3Ig zHPF}In8p;X-G|Ra(47YCkW=C2Bdy(p)|*Q4(_pU{;)Wfq{Vvp<24l2D#+YJrY5SWY zMmPgjYuDqmK!wY$Hi*_?G}X3i`&%VO5O8U&o~J|Dmju(SwNF_njkgtO?Fw;h8q*$? zXdMj3cv@=)8V?QzV4~KB1b`RVx32~U{avcHP6|xdDc}TPdi!i}aZ`}dWm@|Nz5!H7 zfqGMe!DzIpOru0=LjqbKHl>nnZ}4}y)`s}Q%FR~lTESlnM+D+MOM~uGPEmxkc7{`Q z-?KE(*8;+w)`qJ|?ixaTA+tk1bd%+5^cLG{)w-_A_a=)fE_je?q`X)(SdZx7@naB}V zOVvk8!WgHJv~&OokXY%=4aw&a)_YrfGj0@r2Qkc{LWFl&8XOlx)3|mjdOK8K3x$!w zAwQdh)z)Ar+vJqC+7;eOy;wB{olv^nLcJqa-vymqskIY=#eCA$qOEX@T5ti-yWpaO zPIz`u3*{Co$H^7BVx(Wt&b?|{9_J+BRGonDp^Hq_&eer?3gd@^!D*9#cZ-#7T~MmE zRu`Lgj#$$S>%%jCRIGFh(oUpyiIZ2tbJ;6a-vymqskIY>Wogp2qOEd_>@;zHqs1yA z=;VqCqSe0J389ujI>}zvP0FjLX7D=0;LEhHWO2&t5w(6qu()5XGw^7LGp%#K7F+;0r%06{w4J*NCy13k zMG5Wc)nXJ9jib`)+U)qN-5=!88VYeeXln4V^bv4zq;2c`E)nJ{B`4tTIa32C!k4}$ z_B!IGacKgkRH(RSfeKwpt#$JA(zeOM4Yn=RK?#HNy36mD*X1Lt?DSUKrZ}vS%iD(Wa)*Vj>(<6sacd|2#fj55nN%f4>xH&+wdzK(x-;nHn)^h%DQMKDbF@pW zbpHv({|!rns$dgTsI?)9^hTRRqA-JMZ}5F>K6aE~P&ti68z=k3$>8AIxizST(pFrE zK-Er0>wxNI1?`-(s#h@RH4dmi(smf-3iNT$ptkj`WycG&fIOx!TUfsOmz! z(YaURP=Bq(wRuXLHSV&D@(V7~43ydI@{&rtVn$I#ap9bKMYF3)7T}1}ijt}+Gjffx zqUpvZMYx?0CyNXk2B+~4nvWYbn#R}#k@l{bl0*x-b9(hw%JbQZ840Q*u zZNdD>oRC#Gt+H^;0y}sP#8tgnj0$*)1Kj1?%4BMBWy##)sjW=Gt`z)cUsqVE64A~K zdAl;wK`E=MD4bP1D+r4URlrcT?NX2OjIw`u$?RM^=o5?PPA{%PjuaPOhkJ-86iq2D zt|~ySD4eBHZh2*8VMX!WDTaFOXvvS!<($5)Mmig_RmNB1cH^R&;;9!FPbsNHkul~~ z7OQwvl$U}3ROS=vHQrw`dpc5ZygFVO={&V$N|l3|KNnS2mCRx(nH};L6%ofKoR5h! z(Cp19FPo}r4ys!o>v?YZ^&zZg%`0R*%o}ds&@{H-vb@5Ad2{EN%rBo?X-q4bTUjLq zzGxaRS_a4BDwITAol{;`R*X7YGJ8sKVHrwKVMS3*S$WY^Ce-l?a%M*ah>Z{Xguz34B%6xjwvy3@14WWMVo8NFd-L34tUG z1`Cn^DoH>_6{m&>NMaa-AS4PT3~C@CM6Fo$e?_GlP@G$H054GOEhtXZs<*WjE4B%< zib|aLo@ecMopVUQq4(=|zwh^T!^yMWcMW^3wb!)Q-urz5j)F>K&cz%SE5^^5@AMq4 zz$lDia=I~RWNFEqIWuNeU=#=nx_28GY3O_Dbxzl+kajh94x1Y;POCvkG-Gu6Tg~rA zMM1$tqvB%xDZ_kNhDmHXyCm}*40`=db1*)ldtO(9p2n`ufme;ms_i0rvC}o_Liwgu z7#EZMN)179&Bf*AXr$^x^?8HUTJimh4mE29bD;)(4CQ1$<3KTL@)RV*I)rY%VC7zd$W7&}C@+49%Vcu$sg<5}`99SYT~3z?iFgib{VTR|i?f z{OMQ^fDm~8bjU!SJV*6RI0h@@@Xio|uyeS~p*M}Kv6O7J%*p_cf73BY&Q!c(w9{tX zfZ!+@gTuig7{Ry#(xK)WImv6n4xApnolv}0N@oPj; zD|oly1A;pJBj<>(joq;t`IGx&by>9GJ#FTnMd3{&ciUL~;g?=s`^?BGEx#XodF>@n zFT8E!zN_XmKYIUwQ$K6yvjF}p@ne1(@N2|x4}R|nvY5Y+YsmM%DR-3Hw?DwmbNvDS z5psR`_BO-(QR=5o2hODUgswq``*Hp}h@daC|_nNmgM<5Cslk4M1vfgil$i&_ce|NS-~>3|tOf_K9R*~% zc@AEi=u}RGTkt#QT10#yctG$y!B+)e65K5Kkl>?Xs!$RCA($#iP6re=A{XZ+W(jT= zT!->d&o4fR<%0ZZgz{)XZuU^_Ey%C1C|iR3W{dI%g8Zb5@(#i01vdz;6XbJ0hFdH+ zSCAi!Q9nj-l;99SeqToaj)Js#NZA(T=V+7<2y$1F@{5AM7ThBEu;2zke(c8Z^964Z zEEeRqar7tO9+7*`#4dvIf)RrJ(vJQg3I18|O+juo)Bi<5c0kHo1RoaMAh=F&r651_ zWB3w5zClKrFIf=>3-XH>%KY+)7%6xf9gFfwL4IXOncoQz_X_@};BN%^l?nYH5#$Fb zl-CR1D!4@OMnQhm$Z%r?FA~fZ%o3zwE`}qoJCQ>#k)KQw|02jQDk*Ohd{*!=!3PEJ z7UTz+3_nkh-)mClmt(|Hf2x;8TK|1RoHr z7v#r+3_nMZ-x5+T66B|bl=}##2!;!OE92Iuf`SJFREFjugfAiu<*f3zT9w50r{GfhVD>rKjU3-aSm%FhV$+fT}O2=dcV%CHZl zaGKy0!SRA41^JyS!*>_#DCicn1^M3Sf=>(bJ8Jr`6}(mOX2JP_GX;wU zX*`Yb_$f58zo1XBt012n(?3#>Us6*(D9Fd$l;0BEE6BIwssD{2_!X4=h~T|~GLJ^A z5cw9tIfDFg0lLLct_+{1z!?u5Zowu zmtdV>jbNoK2I=Luywtqh`zI6oS;h(pvrMGkas2esDXpBe&V-=GTO3!WXC&5+RN55?`&x= z``%t~;Mjy8-fK6s{oE%gV=UJ4^OP}XXn6-^WJ=q|eVH=mU~S)aA7!i&w0+vQDPxWE zS2i3R@8d^%+1ftrLCRP&YWuE7C}T~l?X#YwjJ3bEugapg4=KOYKeWz)Q?Z@`2OmL) z%6tYKD$@*asNB7kthv4Mz^AyFn|IU7i>H;A7tg$@Wd3yVRGa)|H#^&0&ekutqqD@D zn>8ia947!sCbRfDg#YKHsq$uIzvpV-py^X#tM$|EWFjgz30IIJ7-*Eu)F59T+qf zb^KU+;5$4{cx?~-?lN_s$Zdxj$H)2mL-xRRIy%nK6zw`YYWv;ivInlyThqmfuhZ*w z1ME*bD)jQ;q0>8;J@C;3ov=eC)}A53xZ*l{dgrhQzH;!H@xz9mDMLDIdiV@O6}h;0 z)D`&?FAhZdXVW{EJ#d}g(J zXHD;1_P~=TI`IcMU_997U754j-?{98Pn7glV{GNI|3{{GE_>kb|J+IEX{oGhq~ASI z6?hN5Re8VP9{8H6PI_F&@QAtI!H~aaP48Ux!0#<_V)l{*I?oJA$#I@Fy>r0j9dcfm#)?SVJZ4)}J{ z-_Y+)|ACKU>kqtOwnW`ov)@`0b-xMwXZGmj`;pJP8~RQ3(@twSY@{VZ{|#(&yI`aA zq~)sn0`XjRc|%Gq+W9jQ_S_cc-?KW*|G^z${wCNf+_OB)-vB#qO|aSKf?dKrzqS3! zhMe7T%ZGN?Elj_r-L7G~x-T166AknLBY+)&7BFGiFrNRN5efD9Vl=+ma+TM81N*^t zr!AXdXZ!_kUdxw1Gg`L5PWK_$6n>^tUdt9Y+ykI%59|-yri*qBDT3WWbg}hoQ1&|5 zihTk$vya-|oClW~^S13?@B(cG&tnvOV9w8vez0ba~-( zt33}Q{#8Jx@zn;?-xc*(hkAJh_RkL;M;@#5hP(=!e08wZ{VHto)$yFLyM73E*Q;rl zair1m>Q-YiZTm8A5k99Wgk3+_8=QEke{|YmyZx5K?JfTe`R0T}Zp%L#Hq(zrTK;I* zOz%%Sg^O%|8EhCfSJ?i|kYRh<+iY9@GT2OSK5fF*v0Ln>L;tnuZ+;=aB|ST#{*cdr z-Ahl=p-T+^E3m_NC>ioCu@)3&=+f4CF$*+%{0nMAYx@HF5&*ui`Y>GXGRPS1|7KXirBk~XiGvdgY)*TNS2 z@pAGLcHIKI*IN$lM82wFzZTcr1-s`>1I(7DD`=B_jIzm|1e?jtPvy7t`5o-C|Jkw2 zUb{r>vcC&kl(5OzJOFl{VN+SzW&eZNWuIv~cG*YT{tsX;J#kUqkm_h-p4lFDCSenq zeWYnpp1;;~MdS07LC3}!E!Y>E_n{rL<=D=Ae||Jak zAA#-S!)TwgVIQJTCRcp#VxQKNqf{8Xg9-go$C-U8u1SM@>*z{yaskK zXCdAiv%Py3Y=q)^$1{y$#Bn1|JA^HUefEq9oDbz+WqaI*F3Iz!ErDJ2c-YX!b&Nru zc4x-iKdS)ttMf;|=48|)u~$9m*k`aIxi>wx5OLS+9^qdLyOjMR^8D*z)AJ3q6WIAw zcBhZ#$DUyedf%WJ*m;gsc9YklZykY6O4_Dejr;<$kHB8#8rZ93{*E5cYk8t7y|O$i zs;+$ZNdG?Apd15^#(l5!t*e8LN|tH$SEmOZ!}a|Pbr`UDk3Q7K=6xjFTepDS`_D19 z7547n-K}lk|Jkukc?A8J>FhyYf@Of5|HgGag)yfIwkQ)}<BpNxY8KbwM6+D|Lqa z8Em~CDS{1rUjHj>UjLR(xVBBOhwMfB(KhiH!Y2L)u!+Cx@_YEgr?QE^=U;3Se+AR%ayxeMF+U|S%#XE=@9CuN;(L@`{9@R@&%5G2Rpu`+x9o{9 zCR~;J!*=ltVdJ(4Hg4I!&t(_C$o_u2_^(+13wH5w{k2{EFJKe@i{Be9pNz|Ed6hQX zF(!YnZG5!Ztsi!-@Ao6^&oM{AlFu47>Qq$Lr`j zM^%2Zzt=wg%Vy`>?IL5x?`7ZAp%fkG}u%0+! z$8KqF<@rBB_!NXUU_&*eQq2+x8b5jqQ8Z?7!o?(}OTh?tcdM+p{jjV^WD1 zhj`gb+b3pY-IKl4Ow1bL@;+VFzY*uHKfNqW+24OEs$JcQ{E_~6#0x!N9OA_xUL4}Z zUF`Cn$hZ9`F!ugnxZSoNd8_{b>!Kd8O^xeQzZLV%aI;hSvM*0hK7ux|9^>E%jES|h z;s1tX!@q92n(y{E!R9l^$fIbpuBzFXXCo4uZijt(jOC6!|L7uK*TWc-Z-8y(SJ4Kd z%qZAjcDoOuT^4?rU4IC+`U}9d&FBGbRh%6qo?1*2sZ?E5!A2ZVk9 z=BFqxeYW{=aK)ew!SS-C`7!z-%p*Y9@Nb4){#CHy-+aH(k_Nl{D$E9)L%aK%EoIuB zVInTl^O-H1wJsGp*zj*o2EvAav)63d0Q>#TOY`nZgZ=*IPG-xVSNhbsV3)t?A1FWU zA+zjkPltRK))uhCpKAG=VDDJf3FTzVUwiFDe;2xEj&#EKVBa6M`VV;#7W0$~^As%a z_?zC%Yr*r4`orst7B}qmAFcyxd;R_6HjhRdZ0dwKxYkXHz(2q)Gwd)oRb!08diax% zj22~|JvHC|u^qQ18S4{R@0|R1*lXSk8{gzDfsNvXgNyQ7nsKgGmCcpuusdD|{To@; zX>~wwJR}@hhyGo8q;l<&STF61qfaEzPWigZ;m9#N$ zdar|S8gwfw|4~VfliD6`*kE7lZt6kX?CagGlz49x?4s8$w!N!*S>8Udi4Vhs@nKls z{uk_s{~hh%n=g%)(^#i9p&cb-o%A@yfTRDweGJw{o71Y($ce*pfcq!mm@gk~rk%G4 z@{vXPe%M3y(q_6VljmFIE`Us|b-9X~kS2MikK(%R48vG3$QjQMe~op>67V5BVz!i4 z0Ure31iT-Jb!*cGtUb|QT^QG0RppIMKHFb98~Sz7`^IgKs%oxm?u0dW8F+?nH(Q!< zOgKXWa^+;mH9xw@Nuw10hd1Q6)FB;SW6iH~^g$b3(=lrE;r-Ado z5pw=p&T{?_Lh@g6mi!-g;+Hdj-`OA7oIQ$miCK!ryHhD)Vz6cZiL`~C}R%xSd z`^V9y4)@P*IRP%NsHIWf!&f_bnS*j1&B$;0Th-CZa+D`;vD@QE z{{@(T4i`CoCE71FzvUzNEo8h)9KYF!^Ko*1%g0q8S3b5l)_Zhhe#_dMXE)x2INR~t z3jf1ie;*^>}j}rR;R_AF-4h}+q1zZk-fBw_wmdw z-V$&Jy4tVeovNY4V#!$_3hjro0+X`XTJ(jHyBF*vvR+vLVR81FJL-o=9dp`cg1 zHyb<}Wi0@^;V?U#*6RtV-NMiEC{OlJz-;qwtKgO!w9IsI3 z<>*uJD~I3FKo~QJiM;x=wtaU$08R$ zd(EJB_pePzsDBb;?%%-IfH&u|%YRjORkdj;zJ}xAYp6Ecm;ddVI!_$9B~tJ^+J1z8 zv=Lhr5AKHHn!CY0!XK3u@4f)s4Sg{G9bPoj-x>TyqlX)bop4`rs$wM83M2f@SWA5s zIl?~={0*nR#`*#J=F|E9ub@X-Asi0z=}~5^O0Nm`4xDdwnoZzvaDm5(Iv37SWT1R- zmzTJ`^N^<^!=vQcn3EodTzkhT|M2v+<>|Or%EX@5+DOA+N?ru)MXa(7|9xKUKY%BU z_mAb!*TKIJ!qNXe_^(p_Sc4!;8ulAlM`^!Wbrty9+!?s%oekb9m?$k;yWLD9M+EsU zR&_G`b#CzUAWRg(WFQRg^^5AB3rnl*k2F)&eSdug_Q0C17zr*3SNTJ4bDybZ|0j@# zW8KVky5bGNeu>_DXs*8Ae~5bzSLe0N3Ln|Xwex7~I~3yDu6kybXSfwzp3nU%jO~BG zenFY#aSz0v0r!5QF^+fW9eqEq8J_)5ZYUgB=h_Xft`D%c0Pdx<_`Ew0Rphl4;GX_a zF?bxnt{O&j&cqmffp8+{f6n8+;2^Z24}i z=edtjhadK3lMW;9*T~o61S4TM!WSZKmW}%%qkG5PfAnkY6-33>mBMWTmq*3E+Jv^= zjJAGxkEr`A@l*Hoo$^}tL>n!}irqtZSvA9&u;+v4{MldpKCk73?cMUpM|my#Q06A2 zmuz~<@u+9=9;|WuArB4FNp(^A9NVMFZ5W>pZjfe#%fP)%8S;7Lv%HqodoyyQcaQKF zq0b({nqtj|9qZRrEocO&gAiL)e3Ae~xnSI-kIOZrth9gAU>PvQCfvpp zs?&QR1IoiT*x#WkA1J;2AYrce7*X=6Hg(Q2^|mpFm*1(B}(I!ryEH3nS z@O>rBDeP0X5AAae+9%Js4(;;^oU8pSnYpi_O+JZs_d4zcp5j~rB){8M@cU?fnkShy z+T90ecWn2-?AgzNn+A3CT2MWP!kx!yeCvmA{|_gG9DL|zTC4Hby1`Uo z=y|t1LkDln7$~js<5(T=uro3JTC;3CaNAAsTZ*&)3h^%pXJ1Hh&UXkr4X3p)!t*w3 z?nm(bm||o!#2dfD3kTisevO?(aUR8AQB0vYpJF(kK!^3ASaA|b+3OA%VHZ$b;E3-T zVIwKt#1q-;nhZOY=Uqtg9mKWys;jk#foV!L{89$4+>UoTjHI~5Rb z!5$>8*wF*xXtB=84)Atd;3Wxo{ESZ%{p349-J9Cy+aP8 z#Ahj%G42xj($se31q`gj1rQ?^(zn_`h1=`ivm^O7u#*&cn~aE?>ARGbVy}DJj;x`$ zd?muXgGXJi4HVUha2_PBxM!5i7mOkwruRyQ&Y}1OMRnpkC~gl#J_Ip}ww0Z zNGvq*j?Tm5b~T9AE(?F!Z$&j^;dIuQap5SFRbw0QO+{;l}}JtexM3(uiF)os4n#=Q`IVq9CJOI zfHhnxe5kJk)sTLsWP9BXJLWPbc)m*DApGOhHFPp$uUl!y+{ySuRrp9Ww;0vK2CMK3 zDXR`RNcsPgGM18tb)k}XP=1*4hbj33%4(qKV{)YEgh%iRs*em%{v=e2|2gw>u}Ysd zH{#2K^4F9X1m(x@nM?dK%7x~CBfU>3-x2grOMrZD(7%MTVrX(I=$Di?(Z4{Q??uX+ zgYsvP6Q86k70Mwq{%IM}EW|F8?%ePYANqMY!8?G?F1d4x|vQwe7>kMNjG29u6C}^pg0d{}gI`N^`>KI6ygS%p{QY8vBut4n=TWg8`*O z6C8KKk#q$dVQ9IXE(E51PNRPLcS&?zbu6;Lq#PbLd$?sb1U$DcyOR+~l{EA{) zKqOC1WL7||qL@ojCB^SCI}fK=&soD^J?iuY^0Hn|U4ugMux_)QfYVh#v|%H16eG@L zmb`F9j-^=2EL})ZWmx$xpr|seeECU_lVK%pqo^{hM3NskIaG1aL$=h>g||#rxn-Ij zHOEw0%!t>SoYeU1QIq*Bi?g{$4Hyd?y)$82oH0GlTxxML^{7rf+hQm7@_Q0%iN)M| z)I2}e38Uu1IToh?kD4`awAe{KYC@f7aRl?IxpuyzR|8Xpb6zza-=y;Cd7bH3I(b%| zcd-iNeLr|!Z*z!S%{)uhdAoX@nNLN)>cWqTuuD|SH^XP3y6o#(P@M2GI;Sb8x}@q# zMFlTXRPc&KsV1N*I7&4gRrOK9D;O2LTv5SmV|3q(bBBi|^P0Z~XIS^-Dmed0XL`y3 zdRC~6=_QtaZ4rz~Q<1&!3Rdt)^vBo-FtYIIBQIP=r=sCL(MlPd%3)y{i)-45dvU`*m^&8W+mg$Z~&6kss0!h>}^ifDXq~Z8k4H!18bMl?wrZPquN)RsoK|J^f@bC zO(LGz$e)#As&*POFnK}-C8yo>Q zzDm>S2F?)f4VloqA(NpuWZv+G4Ef%W(cT*}m3Tv@5pT$(>)fF>6AuCQ#$jaF0 z$q^)VFFIaWcrSLm-n6}D8s~vI$+r$k{2rpioaDnhg9d|yDdr^KQxF+D%wbMS{sTgC zMI1Ihn2>FBkHG95ZY9&YZVa3lsZ!xgqO;F=pjGnyUY|wLD*5=*t~#lrRr38wi;7ms zcMxJ6;ybiTzGGTcv`W73AaW>iXq9}}({chUS|wjkEh<_iAHO(KNnJu(C0{N?RXT@O zDR~Ie$%8Jepcj+u!+NQ<3{|!>1XW{m9S`MhZ={h(%f}&tcX|$ymhTFPybly2E#Gv= zEtElh10pToY{=o5#)L@A$5x>-5lwm_uiKQ&v`2|^o+5KUxg%6?MNxs+MO~E0O^1Y))MI_~WUyF)J%6CkQib%@GZwyZ`t|F51@iP}CDk3Rg zCoL)>DIYfe9A8BwLOe!aMI`0>BSh6i z6_J$huMnBGLnP(n%%em_B<15r?@CleQa)OZP@*D|^3jm05*3k@uZI>Dk(4h>iw==g z@>j^iAn3xXRbf;U9uA7MK;zDb5Euc%L)@uOAXP1)?*2vwzrxKjBhT|4L&|$`!xZVW zKoiw>ePkcsDX9KPl_HYzeFO1BiVl&K?=#5pxFw2IL{dJQkT^RYoU4lO z5J~xFLT1Z}6e6kQ7Gw^@(IArQwFyq$NO%Dpx31AN5=r?c>2XUDN%@K)s?My4q`TCoOMPL{h#UT7FUyN%;n8*&&khjn(qgib%@G z<)BLM8AT-JTcl-&NXoZV%g-qyDc@?yYP@!cq`fyNXE4_nej;A}QZXT6Tz}d~a&`eMKbY`-_$xA}QYq$j5m;he*ozE#$8$3z1ZE zJ8V2fVL-7C^!xxfxao)Zhj;xw*$mTpkCx5>DmZ;48)@sqte$~2j+M%3!8ZoMxw~!k z0wtPl`YzXUZ^&U7gtdGg{~?;x@X`glX3#KBf7J~mGd z$1OQogst;?O^4Gtwfbus>1>YaRR6z?zw1o)D|e7`i-cS;L6J+qSk0N$&SCvhY+jo6 zD=tXTWg%*Oh=`~OAt}K(gw2cRNz#mA9W-MYtV%eHVVy!Uh+zuG`$HMSx}3=v<_Vq! zJ5|9PfXB;?DZ5*c+sk1L>mFnbOAciWO9>6A8N+%6&*jAK>2QOk21&tsIiz5{H5b@< zLB20vYc8-pnmH^jNEnvx(2Qk-a)b2^;Rb8Q#9|ry*oyw8++cx^k2ObFhytD9$8m+h z4)6H+bEg$wTrj1dVigOuBS{OA!YO8ip>0JWS?911De|xskcW-4dL_1y`D)DeqM{Y9 zVcYFW*Flhn4K>3%xE6&);A%Hn%fl@D7fY7!`YgN~2)>MEVG;I0s}RZumMjnN_N5B- zfl_Q-vfPdV`Bc^N)u19J?w~IcUtj zu=*r|=*+IzX79!M?PFG&u$1K2Sb`aEO&zsBb zM^PV-f(mVi2^zECLD`7P*#j!GN8mZ3&|U-oe;BSO$Z6JNx!twUZnxatTJ3tmm8WUQ zJ|PF$*wLU5D>`-3we^#t?L|9n_ow3#<9uYPu+Z-PseMhM-D$af!?w?Bid;Y2QN7c? zdHHU|hqldLxZHMcvllG4W4Eoalb72QxB1aXhFX0*uA5db16kUsi*CF4^U*5`T*GR{ zym0BVi^m-uzhvAo(4`%}w0i7`vBH)1F{sV>@1|u%F4$ugwzO5Qg|4Su^T*he3+sz=~#XuU`J5{X3)Zb9=UH z=%seT@&Hv@uBJ-cUi4xC>a}PGe!J|XLVI@MxT3K|tBa87B0HuK?v+LMUvb*U!D8o{ z|DwOBz`l7~ksZ5y`?8g;3Q)Yg07kf>MPpqH#~rO1Guoc+dcsaG{LJxFh2UYU0a2d4!YW*`bX?Jj?dVTM_D!fb#QJQ>HhVod@T{yPd;OA6Z%6I> zaa~_C&{9u)u9~$S_36nK%a)CMVeGO35YOFYjY6|tg_QrXB8189ZL;_M-%RB;N(Kg) z;@8dv7|eN?#tiL@!##$hny#Iiy9ne28%-_bViIw}P1DXbn1Ohxa9TKtnVg4dT%(

      K!pbpcRshy((8M|IPCkIre+IdYtb-i|KHX86e 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%0AWdx_@m|5@g0xFu{MCXq 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

      T^DU=i`ob;`2`4zC_aEBiVrGA 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

        +
      1. Other
      2. +
      3. 32x32 pixels 'file icon' (PNG only)
      4. +
      5. Other file icon
      6. +
      7. Cover (front)
      8. +
      9. Cover (back)
      10. +
      11. Leaflet page
      12. +
      13. Media (e.g. label side of CD)
      14. +
      15. Lead artist/lead performer/soloist
      16. +
      17. Artist/performer
      18. +
      19. Conductor
      20. +
      21. Band/Orchestra
      22. +
      23. Composer
      24. +
      25. Lyricist/text writer
      26. +
      27. Recording Location
      28. +
      29. During recording
      30. +
      31. During performance
      32. +
      33. Movie/video screen capture
      34. +
      35. A bright colored fish
      36. +
      37. Illustration
      38. +
      39. Band/artist logotype
      40. +
      41. Publisher/Studio logotype
      42. +
      + Others are reserved and should not be used. + There may only be one each of picture type 1 and 2 in a file.*/ + opus_int32 type; + /**The MIME type of the picture, in printable ASCII characters 0x20-0x7E. + The MIME type may also be "-->" to signify that the data part + is a URL pointing to the picture instead of the picture data itself. + In this case, a terminating NUL is appended to the URL string in #data, + but #data_length is set to the length of the string excluding that + terminating NUL.*/ + char *mime_type; + /**The description of the picture, in UTF-8.*/ + char *description; + /**The width of the picture in pixels.*/ + opus_uint32 width; + /**The height of the picture in pixels.*/ + opus_uint32 height; + /**The color depth of the picture in bits-per-pixel (not + bits-per-channel).*/ + opus_uint32 depth; + /**For indexed-color pictures (e.g., GIF), the number of colors used, or 0 + for non-indexed pictures.*/ + opus_uint32 colors; + /**The length of the picture data in bytes.*/ + opus_uint32 data_length; + /**The binary picture data.*/ + unsigned char *data; + /**The format of the picture data, if known. + One of +
        +
      • #OP_PIC_FORMAT_UNKNOWN,
      • +
      • #OP_PIC_FORMAT_URL,
      • +
      • #OP_PIC_FORMAT_JPEG,
      • +
      • #OP_PIC_FORMAT_PNG,
      • +
      • #OP_PIC_FORMAT_GIF, or
      • +
      .*/ + int format; +}; + +/**\name Functions for manipulating header data + + These functions manipulate the #OpusHead and #OpusTags structures, + which describe the audio parameters and tag-value metadata, respectively. + These can be used to query the headers returned by libopusfile, or + to parse Opus headers from sources other than an Ogg Opus stream, provided + they use the same format.*/ +/*@{*/ + +/**Parses the contents of the ID header packet of an Ogg Opus stream. + \param[out] _head Returns the contents of the parsed packet. + The contents of this structure are untouched on error. + This may be NULL to merely test the header + for validity. + \param[in] _data The contents of the ID header packet. + \param _len The number of bytes of data in the ID header packet. + \return 0 on success or a negative value on error. + \retval #OP_ENOTFORMAT If the data does not start with the "OpusHead" + string. + \retval #OP_EVERSION If the version field signaled a version this library + does not know how to parse. + \retval #OP_EIMPL If the channel mapping family was 255, which general + purpose players should not attempt to play. + \retval #OP_EBADHEADER If the contents of the packet otherwise violate the + Ogg Opus specification: +
        +
      • Insufficient data,
      • +
      • Too much data for the known minor versions,
      • +
      • An unrecognized channel mapping family,
      • +
      • Zero channels or too many channels,
      • +
      • Zero coded streams,
      • +
      • Too many coupled streams, or
      • +
      • An invalid channel mapping index.
      • +
      */ +OP_WARN_UNUSED_RESULT int opus_head_parse(OpusHead *_head, + const unsigned char *_data,size_t _len) OP_ARG_NONNULL(2); + +/**Converts a granule position to a sample offset for a given Ogg Opus stream. + The sample offset is simply _gp-_head->pre_skip. + Granule position values smaller than OpusHead#pre_skip correspond to audio + that should never be played, and thus have no associated sample offset. + This function returns -1 for such values. + This function also correctly handles extremely large granule positions, + which may have wrapped around to a negative number when stored in a signed + ogg_int64_t value. + \param _head The #OpusHead information from the ID header of the stream. + \param _gp The granule position to convert. + \return The sample offset associated with the given granule position + (counting at a 48 kHz sampling rate), or the special value -1 on + error (i.e., the granule position was smaller than the pre-skip + amount).*/ +ogg_int64_t opus_granule_sample(const OpusHead *_head,ogg_int64_t _gp) + OP_ARG_NONNULL(1); + +/**Parses the contents of the 'comment' header packet of an Ogg Opus stream. + \param[out] _tags An uninitialized #OpusTags structure. + This returns the contents of the parsed packet. + The contents of this structure are untouched on error. + This may be NULL to merely test the header + for validity. + \param[in] _data The contents of the 'comment' header packet. + \param _len The number of bytes of data in the 'info' header packet. + \retval 0 Success. + \retval #OP_ENOTFORMAT If the data does not start with the "OpusTags" + string. + \retval #OP_EBADHEADER If the contents of the packet otherwise violate the + Ogg Opus specification. + \retval #OP_EFAULT If there wasn't enough memory to store the tags.*/ +OP_WARN_UNUSED_RESULT int opus_tags_parse(OpusTags *_tags, + const unsigned char *_data,size_t _len) OP_ARG_NONNULL(2); + +/**Initializes an #OpusTags structure. + This should be called on a freshly allocated #OpusTags structure before + attempting to use it. + \param _tags The #OpusTags structure to initialize.*/ +void opus_tags_init(OpusTags *_tags) OP_ARG_NONNULL(1); + +/**Add a (tag, value) pair to an initialized #OpusTags structure. + \note Neither opus_tags_add() nor opus_tags_add_comment() support values + containing embedded NULs, although the bitstream format does support them. + To add such tags, you will need to manipulate the #OpusTags structure + directly. + \param _tags The #OpusTags structure to add the (tag, value) pair to. + \param _tag A NUL-terminated, case-insensitive, ASCII string containing + the tag to add (without an '=' character). + \param _value A NUL-terminated UTF-8 containing the corresponding value. + \return 0 on success, or a negative value on failure. + \retval #OP_EFAULT An internal memory allocation failed.*/ +int opus_tags_add(OpusTags *_tags,const char *_tag,const char *_value) + OP_ARG_NONNULL(1) OP_ARG_NONNULL(2) OP_ARG_NONNULL(3); + +/**Add a comment to an initialized #OpusTags structure. + \note Neither opus_tags_add_comment() nor opus_tags_add() support comments + containing embedded NULs, although the bitstream format does support them. + To add such tags, you will need to manipulate the #OpusTags structure + directly. + \param _tags The #OpusTags structure to add the comment to. + \param _comment A NUL-terminated UTF-8 string containing the comment in + "TAG=value" form. + \return 0 on success, or a negative value on failure. + \retval #OP_EFAULT An internal memory allocation failed.*/ +int opus_tags_add_comment(OpusTags *_tags,const char *_comment) + OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/**Look up a comment value by its tag. + \param _tags An initialized #OpusTags structure. + \param _tag The tag to look up. + \param _count The instance of the tag. + The same tag can appear multiple times, each with a distinct + value, so an index is required to retrieve them all. + The order in which these values appear is significant and + should be preserved. + Use opus_tags_query_count() to get the legal range for the + \a _count parameter. + \return A pointer to the queried tag's value. + This points directly to data in the #OpusTags structure. + It should not be modified or freed by the application, and + modifications to the structure may invalidate the pointer. + \retval NULL If no matching tag is found.*/ +const char *opus_tags_query(const OpusTags *_tags,const char *_tag,int _count) + OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/**Look up the number of instances of a tag. + Call this first when querying for a specific tag and then iterate over the + number of instances with separate calls to opus_tags_query() to retrieve + all the values for that tag in order. + \param _tags An initialized #OpusTags structure. + \param _tag The tag to look up. + \return The number of instances of this particular tag.*/ +int opus_tags_query_count(const OpusTags *_tags,const char *_tag) + OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/**Get the track gain from an R128_TRACK_GAIN tag, if one was specified. + This searches for the first R128_TRACK_GAIN tag with a valid signed, + 16-bit decimal integer value and returns the value. + This routine is exposed merely for convenience for applications which wish + to do something special with the track gain (i.e., display it). + If you simply wish to apply the track gain instead of the header gain, you + can use op_set_gain_offset() with an #OP_TRACK_GAIN type and no offset. + \param _tags An initialized #OpusTags structure. + \param[out] _gain_q8 The track gain, in 1/256ths of a dB. + This will lie in the range [-32768,32767], and should + be applied in addition to the header gain. + On error, no value is returned, and the previous + contents remain unchanged. + \return 0 on success, or a negative value on error. + \retval OP_EFALSE There was no track gain available in the given tags.*/ +int opus_tags_get_track_gain(const OpusTags *_tags,int *_gain_q8) + OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/**Clears the #OpusTags structure. + This should be called on an #OpusTags structure after it is no longer + needed. + It will free all memory used by the structure members. + \param _tags The #OpusTags structure to clear.*/ +void opus_tags_clear(OpusTags *_tags) OP_ARG_NONNULL(1); + +/**Parse a single METADATA_BLOCK_PICTURE tag. + This decodes the BASE64-encoded content of the tag and returns a structure + with the MIME type, description, image parameters (if known), and the + compressed image data. + If the MIME type indicates the presence of an image format we recognize + (JPEG, PNG, or GIF) and the actual image data contains the magic signature + associated with that format, then the OpusPictureTag::format field will be + set to the corresponding format. + This is provided as a convenience to avoid requiring applications to parse + the MIME type and/or do their own format detection for the commonly used + formats. + In this case, we also attempt to extract the image parameters directly from + the image data (overriding any that were present in the tag, which the + specification says applications are not meant to rely on). + The application must still provide its own support for actually decoding the + image data and, if applicable, retrieving that data from URLs. + \param[out] _pic Returns the parsed picture data. + No sanitation is done on the type, MIME type, or + description fields, so these might return invalid values. + The contents of this structure are left unmodified on + failure. + \param _tag The METADATA_BLOCK_PICTURE tag contents. + The leading "METADATA_BLOCK_PICTURE=" portion is optional, + to allow the function to be used on either directly on the + values in OpusTags::user_comments or on the return value + of opus_tags_query(). + \return 0 on success or a negative value on error. + \retval #OP_ENOTFORMAT The METADATA_BLOCK_PICTURE contents were not valid. + \retval #OP_EFAULT A memory allocation failed.*/ +int opus_picture_tag_parse(OpusPictureTag *_pic,const char *_tag) + OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/**Initializes an #OpusPictureTag structure. + This should be called on a freshly allocated #OpusPictureTag structure + before attempting to use it. + \param _pic The #OpusPictureTag structure to initialize.*/ +void opus_picture_tag_init(OpusPictureTag *_pic) OP_ARG_NONNULL(1); + +/**Clears the #OpusPictureTag structure. + This should be called on an #OpusPictureTag structure after it is no longer + needed. + It will free all memory used by the structure members. + \param _pic The #OpusPictureTag structure to clear.*/ +void opus_picture_tag_clear(OpusPictureTag *_pic) OP_ARG_NONNULL(1); + +/*@}*/ + +/*@}*/ + +/**\defgroup url_options URL Reading Options*/ +/*@{*/ +/**\name URL reading options + Options for op_url_stream_create() and associated functions. + These allow you to provide proxy configuration parameters, skip SSL + certificate checks, etc. + Options are processed in order, and if the same option is passed multiple + times, only the value specified by the last occurrence has an effect + (unless otherwise specified). + They may be expanded in the future.*/ +/*@{*/ + +/*These are the raw numbers used to define the request codes. + They should not be used directly.*/ +#define OP_SSL_SKIP_CERTIFICATE_CHECK_REQUEST (6464) +#define OP_HTTP_PROXY_HOST_REQUEST (6528) +#define OP_HTTP_PROXY_PORT_REQUEST (6592) +#define OP_HTTP_PROXY_USER_REQUEST (6656) +#define OP_HTTP_PROXY_PASS_REQUEST (6720) + +#define OP_URL_OPT(_request) ((_request)+(char *)0) + +/*These macros trigger compilation errors or warnings if the wrong types are + provided to one of the URL options.*/ +#define OP_CHECK_INT(_x) ((void)((_x)==(opus_int32)0),(opus_int32)(_x)) +#define OP_CHECK_CONST_CHAR_PTR(_x) ((_x)+((_x)-(const char *)(_x))) + +/**Skip the certificate check when connecting via TLS/SSL (https). + \param _b opus_int32: Whether or not to skip the certificate + check. + The check will be skipped if \a _b is non-zero, and will not be + skipped if \a _b is zero. + \hideinitializer*/ +#define OP_SSL_SKIP_CERTIFICATE_CHECK(_b) \ + OP_URL_OPT(OP_SSL_SKIP_CERTIFICATE_CHECK_REQUEST),OP_CHECK_INT(_b) + +/**Proxy connections through the given host. + If no port is specified via #OP_HTTP_PROXY_PORT, the port number defaults + to 8080 (http-alt). + All proxy parameters are ignored for non-http and non-https URLs. + \param _host const char *: The proxy server hostname. + This may be NULL to disable the use of a proxy + server. + \hideinitializer*/ +#define OP_HTTP_PROXY_HOST(_host) \ + OP_URL_OPT(OP_HTTP_PROXY_HOST_REQUEST),OP_CHECK_CONST_CHAR_PTR(_host) + +/**Use the given port when proxying connections. + This option only has an effect if #OP_HTTP_PROXY_HOST is specified with a + non-NULL \a _host. + If this option is not provided, the proxy port number defaults to 8080 + (http-alt). + All proxy parameters are ignored for non-http and non-https URLs. + \param _port opus_int32: The proxy server port. + This must be in the range 0...65535 (inclusive), or the + URL function this is passed to will fail. + \hideinitializer*/ +#define OP_HTTP_PROXY_PORT(_port) \ + OP_URL_OPT(OP_HTTP_PROXY_PORT_REQUEST),OP_CHECK_INT(_port) + +/**Use the given user name for authentication when proxying connections. + All proxy parameters are ignored for non-http and non-https URLs. + \param _user const char *: The proxy server user name. + This may be NULL to disable proxy + authentication. + A non-NULL value only has an effect + if #OP_HTTP_PROXY_HOST and #OP_HTTP_PROXY_PASS + are also specified with non-NULL + arguments. + \hideinitializer*/ +#define OP_HTTP_PROXY_USER(_user) \ + OP_URL_OPT(OP_HTTP_PROXY_USER_REQUEST),OP_CHECK_CONST_CHAR_PTR(_host) + +/**Use the given password for authentication when proxying connections. + All proxy parameters are ignored for non-http and non-https URLs. + \param _pass const char *: The proxy server password. + This may be NULL to disable proxy + authentication. + A non-NULL value only has an effect + if #OP_HTTP_PROXY_HOST and #OP_HTTP_PROXY_USER + are also specified with non-NULL + arguments. + \hideinitializer*/ +#define OP_HTTP_PROXY_PASS(_pass) \ + OP_URL_OPT(OP_HTTP_PROXY_PASS_REQUEST),OP_CHECK_CONST_CHAR_PTR(_host) + +/*@}*/ +/*@}*/ + +/**\defgroup stream_callbacks Abstract Stream Reading Interface*/ +/*@{*/ +/**\name Functions for reading from streams + These functions define the interface used to read from and seek in a stream + of data. + A stream does not need to implement seeking, but the decoder will not be + able to seek if it does not do so. + These functions also include some convenience routines for working with + standard FILE pointers, complete streams stored in a single + block of memory, or URLs.*/ +/*@{*/ + +typedef struct OpusFileCallbacks OpusFileCallbacks; + +/**Reads up to \a _nbytes bytes of data from \a _stream. + \param _stream The stream to read from. + \param[out] _ptr The buffer to store the data in. + \param _nbytes The maximum number of bytes to read. + This function may return fewer, though it will not + return zero unless it reaches end-of-file. + \return The number of bytes successfully read, or a negative value on + error.*/ +typedef int (*op_read_func)(void *_stream,unsigned char *_ptr,int _nbytes); + +/**Sets the position indicator for \a _stream. + The new position, measured in bytes, is obtained by adding \a _offset + bytes to the position specified by \a _whence. + If \a _whence is set to SEEK_SET, SEEK_CUR, or + SEEK_END, the offset is relative to the start of the stream, + the current position indicator, or end-of-file, respectively. + \retval 0 Success. + \retval -1 Seeking is not supported or an error occurred. + errno need not be set.*/ +typedef int (*op_seek_func)(void *_stream,opus_int64 _offset,int _whence); + +/**Obtains the current value of the position indicator for \a _stream. + \return The current position indicator.*/ +typedef opus_int64 (*op_tell_func)(void *_stream); + +/**Closes the underlying stream. + \retval 0 Success. + \retval EOF An error occurred. + errno need not be set.*/ +typedef int (*op_close_func)(void *_stream); + +/**The callbacks used to access non-FILE stream resources. + The function prototypes are basically the same as for the stdio functions + fread(), fseek(), ftell(), and + fclose(). + The differences are that the FILE * arguments have been + replaced with a void *, which is to be used as a pointer to + whatever internal data these functions might need, that #seek and #tell + take and return 64-bit offsets, and that #seek must return -1 if + the stream is unseekable.*/ +struct OpusFileCallbacks{ + /**Used to read data from the stream. + This must not be NULL.*/ + op_read_func read; + /**Used to seek in the stream. + This may be NULL if seeking is not implemented.*/ + op_seek_func seek; + /**Used to return the current read position in the stream. + This may be NULL if seeking is not implemented.*/ + op_tell_func tell; + /**Used to close the stream when the decoder is freed. + This may be NULL to leave the stream open.*/ + op_close_func close; +}; + +/**Opens a stream with fopen() and fills in a set of callbacks + that can be used to access it. + This is useful to avoid writing your own portable 64-bit seeking wrappers, + and also avoids cross-module linking issues on Windows, where a + FILE * must be accessed by routines defined in the same module + that opened it. + \param[out] _cb The callbacks to use for this file. + If there is an error opening the file, nothing will be + filled in here. + \param _path The path to the file to open. + On Windows, this string must be UTF-8 (to allow access to + files whose names cannot be represented in the current + MBCS code page). + All other systems use the native character encoding. + \param _mode The mode to open the file in. + \return A stream handle to use with the callbacks, or NULL on + error.*/ +OP_WARN_UNUSED_RESULT void *op_fopen(OpusFileCallbacks *_cb, + const char *_path,const char *_mode) OP_ARG_NONNULL(1) OP_ARG_NONNULL(2) + OP_ARG_NONNULL(3); + +/**Opens a stream with fdopen() and fills in a set of callbacks + that can be used to access it. + This is useful to avoid writing your own portable 64-bit seeking wrappers, + and also avoids cross-module linking issues on Windows, where a + FILE * must be accessed by routines defined in the same module + that opened it. + \param[out] _cb The callbacks to use for this file. + If there is an error opening the file, nothing will be + filled in here. + \param _fd The file descriptor to open. + \param _mode The mode to open the file in. + \return A stream handle to use with the callbacks, or NULL on + error.*/ +OP_WARN_UNUSED_RESULT void *op_fdopen(OpusFileCallbacks *_cb, + int _fd,const char *_mode) OP_ARG_NONNULL(1) OP_ARG_NONNULL(3); + +/**Opens a stream with freopen() and fills in a set of callbacks + that can be used to access it. + This is useful to avoid writing your own portable 64-bit seeking wrappers, + and also avoids cross-module linking issues on Windows, where a + FILE * must be accessed by routines defined in the same module + that opened it. + \param[out] _cb The callbacks to use for this file. + If there is an error opening the file, nothing will be + filled in here. + \param _path The path to the file to open. + On Windows, this string must be UTF-8 (to allow access + to files whose names cannot be represented in the + current MBCS code page). + All other systems use the native character encoding. + \param _mode The mode to open the file in. + \param _stream A stream previously returned by op_fopen(), op_fdopen(), + or op_freopen(). + \return A stream handle to use with the callbacks, or NULL on + error.*/ +OP_WARN_UNUSED_RESULT void *op_freopen(OpusFileCallbacks *_cb, + const char *_path,const char *_mode,void *_stream) OP_ARG_NONNULL(1) + OP_ARG_NONNULL(2) OP_ARG_NONNULL(3) OP_ARG_NONNULL(4); + +/**Creates a stream that reads from the given block of memory. + This block of memory must contain the complete stream to decode. + This is useful for caching small streams (e.g., sound effects) in RAM. + \param[out] _cb The callbacks to use for this stream. + If there is an error creating the stream, nothing will be + filled in here. + \param _data The block of memory to read from. + \param _size The size of the block of memory. + \return A stream handle to use with the callbacks, or NULL on + error.*/ +OP_WARN_UNUSED_RESULT void *op_mem_stream_create(OpusFileCallbacks *_cb, + const unsigned char *_data,size_t _size) OP_ARG_NONNULL(1); + +/**Creates a stream that reads from the given URL. + This function behaves identically to op_url_stream_create(), except that it + takes a va_list instead of a variable number of arguments. + It does not call the va_end macro, and because it invokes the + va_arg macro, the value of \a _ap is undefined after the call. + \param[out] _cb The callbacks to use for this stream. + If there is an error creating the stream, nothing will + be filled in here. + \param _url The URL to read from. + Currently only the , , and + schemes are supported. + Both and may be disabled at compile + time, in which case opening such URLs will always fail. + \param[in,out] _ap A list of the \ref url_options "optional flags" to use. + This is a variable-length list of options terminated + with NULL. + \return A stream handle to use with the callbacks, or NULL on + error.*/ +OP_WARN_UNUSED_RESULT void *op_url_stream_vcreate(OpusFileCallbacks *_cb, + const char *_url,va_list _ap) OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/**Creates a stream that reads from the given URL using the specified proxy. + \param[out] _cb The callbacks to use for this stream. + If there is an error creating the stream, nothing will be + filled in here. + \param _url The URL to read from. + Currently only the , , and schemes + are supported. + Both and may be disabled at compile time, + in which case opening such URLs will always fail. + \param ... The \ref url_options "optional flags" to use. + This is a variable-length list of options terminated with + NULL. + \return A stream handle to use with the callbacks, or NULL on + error.*/ +OP_WARN_UNUSED_RESULT void *op_url_stream_create(OpusFileCallbacks *_cb, + const char *_url,...) OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/*@}*/ +/*@}*/ + +/**\defgroup stream_open_close Opening and Closing*/ +/*@{*/ +/**\name Functions for opening and closing streams + + These functions allow you to test a stream to see if it is Opus, open it, + and close it. + Several flavors are provided for each of the built-in stream types, plus a + more general version which takes a set of application-provided callbacks.*/ +/*@{*/ + +/**Test to see if this is an Opus stream. + For good results, you will need at least 57 bytes (for a pure Opus-only + stream). + Something like 512 bytes will give more reliable results for multiplexed + streams. + This function is meant to be a quick-rejection filter. + Its purpose is not to guarantee that a stream is a valid Opus stream, but to + ensure that it looks enough like Opus that it isn't going to be recognized + as some other format (except possibly an Opus stream that is also + multiplexed with other codecs, such as video). + \param[out] _head The parsed ID header contents. + You may pass NULL if you do not need + this information. + If the function fails, the contents of this structure + remain untouched. + \param _initial_data An initial buffer of data from the start of the + stream. + \param _initial_bytes The number of bytes in \a _initial_data. + \return 0 if the data appears to be Opus, or a negative value on error. + \retval #OP_FALSE There was not enough data to tell if this was an Opus + stream or not. + \retval #OP_EFAULT An internal memory allocation failed. + \retval #OP_EIMPL The stream used a feature that is not implemented, + such as an unsupported channel family. + \retval #OP_ENOTFORMAT If the data did not contain a recognizable ID + header for an Opus stream. + \retval #OP_EVERSION If the version field signaled a version this library + does not know how to parse. + \retval #OP_EBADHEADER The ID header was not properly formatted or contained + illegal values.*/ +int op_test(OpusHead *_head, + const unsigned char *_initial_data,size_t _initial_bytes); + +/**Open a stream from the given file path. + \param _path The path to the file to open. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want the + failure code. + The failure code will be #OP_EFAULT if the file could not + be opened, or one of the other failure codes from + op_open_callbacks() otherwise. + \return A freshly opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_open_file(const char *_path,int *_error) + OP_ARG_NONNULL(1); + +/**Open a stream from a memory buffer. + \param _data The memory buffer to open. + \param _size The number of bytes in the buffer. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want the + failure code. + See op_open_callbacks() for a full list of failure codes. + \return A freshly opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_open_memory(const unsigned char *_data, + size_t _size,int *_error); + +/**Open a stream from a URL. + This function behaves identically to op_open_url(), except that it + takes a va_list instead of a variable number of arguments. + It does not call the va_end macro, and because it invokes the + va_arg macro, the value of \a _ap is undefined after the call. + \param _url The URL to open. + Currently only the , , and + schemes are supported. + Both and may be disabled at compile + time, in which case opening such URLs will always + fail. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want + the failure code. + See op_open_callbacks() for a full list of failure + codes. + \param[in,out] _ap A list of the \ref url_options "optional flags" to + use. + This is a variable-length list of options terminated + with NULL. + \return A freshly opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_vopen_url(const char *_url, + int *_error,va_list _ap) OP_ARG_NONNULL(1); + +/**Open a stream from a URL. + However, this approach will not work for live streams or HTTP/1.0 servers + (which do not support Range requets). + \param _url The URL to open. + Currently only the , , and schemes + are supported. + Both and may be disabled at compile + time, in which case opening such URLs will always fail. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want the + failure code. + See op_open_callbacks() for a full list of failure codes. + \param ... The \ref url_options "optional flags" to use. + This is a variable-length list of options terminated with + NULL. + \return A freshly opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_open_url(const char *_url, + int *_error,...) OP_ARG_NONNULL(1); + +/**Open a stream using the given set of callbacks to access it. + \param _source The stream to read from (e.g., a FILE *). + \param _cb The callbacks with which to access the stream. + read() must + be implemented. + seek() and + tell() may + be NULL, or may always return -1 to + indicate a source is unseekable, but if + seek() is + implemented and succeeds on a particular source, then + tell() must + also. + close() may + be NULL, but if it is not, it will be + called when the \c OggOpusFile is destroyed by + op_free(). + It will not be called if op_open_callbacks() fails + with an error. + \param _initial_data An initial buffer of data from the start of the + stream. + Applications can read some number of bytes from the + start of the stream to help identify this as an Opus + stream, and then provide them here to allow the + stream to be opened, even if it is unseekable. + \param _initial_bytes The number of bytes in \a _initial_data. + If the stream is seekable, its current position (as + reported by + tell() + at the start of this function) must be equal to + \a _initial_bytes. + Otherwise, seeking to absolute positions will + generate inconsistent results. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want + the failure code. + The failure code will be one of +
      +
      #OP_EREAD
      +
      An underlying read, seek, or tell operation + failed when it should have succeeded, or we failed + to find data in the stream we had seen before.
      +
      #OP_EFAULT
      +
      There was a memory allocation failure, or an + internal library error.
      +
      #OP_EIMPL
      +
      The stream used a feature that is not + implemented, such as an unsupported channel + family.
      +
      #OP_EINVAL
      +
      seek() + was implemented and succeeded on this source, but + tell() + did not, or the starting position indicator was + not equal to \a _initial_bytes.
      +
      #OP_ENOTFORMAT
      +
      The stream contained a link that did not have + any logical Opus streams in it.
      +
      #OP_EBADHEADER
      +
      A required header packet was not properly + formatted, contained illegal values, or was missing + altogether.
      +
      #OP_EVERSION
      +
      An ID header contained an unrecognized version + number.
      +
      #OP_EBADLINK
      +
      We failed to find data we had seen before after + seeking.
      +
      #OP_EBADTIMESTAMP
      +
      The first or last timestamp in a link failed + basic validity checks.
      +
      + \return A freshly opened \c OggOpusFile, or NULL on error. + libopusfile does not take ownership of the source + if the call fails. + The calling application is responsible for closing the source if + this call returns an error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_open_callbacks(void *_source, + const OpusFileCallbacks *_cb,const unsigned char *_initial_data, + size_t _initial_bytes,int *_error) OP_ARG_NONNULL(2); + +/**Partially open a stream from the given file path. + \see op_test_callbacks + \param _path The path to the file to open. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want the + failure code. + The failure code will be #OP_EFAULT if the file could not + be opened, or one of the other failure codes from + op_open_callbacks() otherwise. + \return A partially opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_test_file(const char *_path,int *_error) + OP_ARG_NONNULL(1); + +/**Partially open a stream from a memory buffer. + \see op_test_callbacks + \param _data The memory buffer to open. + \param _size The number of bytes in the buffer. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want the + failure code. + See op_open_callbacks() for a full list of failure codes. + \return A partially opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_test_memory(const unsigned char *_data, + size_t _size,int *_error); + +/**Partially open a stream from a URL. + This function behaves identically to op_test_url(), except that it + takes a va_list instead of a variable number of arguments. + It does not call the va_end macro, and because it invokes the + va_arg macro, the value of \a _ap is undefined after the call. + \see op_test_url + \see op_test_callbacks + \param _url The URL to open. + Currently only the , , and + schemes are supported. + Both and may be disabled at compile + time, in which case opening such URLs will always + fail. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want + the failure code. + See op_open_callbacks() for a full list of failure + codes. + \param[in,out] _ap A list of the \ref url_options "optional flags" to + use. + This is a variable-length list of options terminated + with NULL. + \return A partially opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_vtest_url(const char *_url, + int *_error,va_list _ap) OP_ARG_NONNULL(1); + +/**Partially open a stream from a URL. + \see op_test_callbacks + \param _url The URL to open. + Currently only the , , and + schemes are supported. + Both and may be disabled at compile + time, in which case opening such URLs will always fail. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want the + failure code. + See op_open_callbacks() for a full list of failure + codes. + \param ... The \ref url_options "optional flags" to use. + This is a variable-length list of options terminated + with NULL. + \return A partially opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_test_url(const char *_url, + int *_error,...) OP_ARG_NONNULL(1); + +/**Partially open a stream using the given set of callbacks to access it. + This tests for Opusness and loads the headers for the first link. + It does not seek (although it tests for seekability). + You can query a partially open stream for the few pieces of basic + information returned by op_serialno(), op_channel_count(), op_head(), and + op_tags() (but only for the first link). + You may also determine if it is seekable via a call to op_seekable(). + You cannot read audio from the stream, seek, get the size or duration, + get information from links other than the first one, or even get the total + number of links until you finish opening the stream with op_test_open(). + If you do not need to do any of these things, you can dispose of it with + op_free() instead. + + This function is provided mostly to simplify porting existing code that used + libvorbisfile. + For new code, you are likely better off using op_test() instead, which + is less resource-intensive, requires less data to succeed, and imposes a + hard limit on the amount of data it examines (important for unseekable + sources, where all such data must be buffered until you are sure of the + stream type). + \param _source The stream to read from (e.g., a FILE *). + \param _cb The callbacks with which to access the stream. + read() must + be implemented. + seek() and + tell() may + be NULL, or may always return -1 to + indicate a source is unseekable, but if + seek() is + implemented and succeeds on a particular source, then + tell() must + also. + close() may + be NULL, but if it is not, it will be + called when the \c OggOpusFile is destroyed by + op_free(). + It will not be called if op_open_callbacks() fails + with an error. + \param _initial_data An initial buffer of data from the start of the + stream. + Applications can read some number of bytes from the + start of the stream to help identify this as an Opus + stream, and then provide them here to allow the + stream to be tested more thoroughly, even if it is + unseekable. + \param _initial_bytes The number of bytes in \a _initial_data. + If the stream is seekable, its current position (as + reported by + tell() + at the start of this function) must be equal to + \a _initial_bytes. + Otherwise, seeking to absolute positions will + generate inconsistent results. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want + the failure code. + See op_open_callbacks() for a full list of failure + codes. + \return A partially opened \c OggOpusFile, or NULL on error. + libopusfile does not take ownership of the source + if the call fails. + The calling application is responsible for closing the source if + this call returns an error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_test_callbacks(void *_source, + const OpusFileCallbacks *_cb,const unsigned char *_initial_data, + size_t _initial_bytes,int *_error) OP_ARG_NONNULL(2); + +/**Finish opening a stream partially opened with op_test_callbacks() or one of + the associated convenience functions. + If this function fails, you are still responsible for freeing the + \c OggOpusFile with op_free(). + \param _of The \c OggOpusFile to finish opening. + \return 0 on success, or a negative value on error. + \retval #OP_EREAD An underlying read, seek, or tell operation failed + when it should have succeeded. + \retval #OP_EFAULT There was a memory allocation failure, or an + internal library error. + \retval #OP_EIMPL The stream used a feature that is not implemented, + such as an unsupported channel family. + \retval #OP_EINVAL The stream was not partially opened with + op_test_callbacks() or one of the associated + convenience functions. + \retval #OP_ENOTFORMAT The stream contained a link that did not have any + logical Opus streams in it. + \retval #OP_EBADHEADER A required header packet was not properly + formatted, contained illegal values, or was + missing altogether. + \retval #OP_EVERSION An ID header contained an unrecognized version + number. + \retval #OP_EBADLINK We failed to find data we had seen before after + seeking. + \retval #OP_EBADTIMESTAMP The first or last timestamp in a link failed basic + validity checks.*/ +int op_test_open(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/**Release all memory used by an \c OggOpusFile. + \param _of The \c OggOpusFile to free.*/ +void op_free(OggOpusFile *_of); + +/*@}*/ +/*@}*/ + +/**\defgroup stream_info Stream Information*/ +/*@{*/ +/**\name Functions for obtaining information about streams + + These functions allow you to get basic information about a stream, including + seekability, the number of links (for chained streams), plus the size, + duration, bitrate, header parameters, and meta information for each link + (or, where available, the stream as a whole). + Some of these (size, duration) are only available for seekable streams. + You can also query the current stream position, link, and playback time, + and instantaneous bitrate during playback. + + Some of these functions may be used successfully on the partially open + streams returned by op_test_callbacks() or one of the associated + convenience functions. + Their documention will indicate so explicitly.*/ +/*@{*/ + +/**Returns whether or not the data source being read is seekable. + This is true if +
        +
      1. The seek() and + tell() callbacks are both + non-NULL,
      2. +
      3. The seek() callback was + successfully executed at least once, and
      4. +
      5. The tell() callback was + successfully able to report the position indicator afterwards.
      6. +
      + This function may be called on partially-opened streams. + \param _of The \c OggOpusFile whose seekable status is to be returned. + \return A non-zero value if seekable, and 0 if unseekable.*/ +int op_seekable(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/**Returns the number of links in this chained stream. + This function may be called on partially-opened streams, but it will always + return 1. + The actual number of links is not known until the stream is fully opened. + \param _of The \c OggOpusFile from which to retrieve the link count. + \return For fully-open seekable sources, this returns the total number of + links in the whole stream. + For partially-open or unseekable sources, this always returns 1.*/ +int op_link_count(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/**Get the serial number of the given link in a (possibly-chained) Ogg Opus + stream. + This function may be called on partially-opened streams, but it will always + return the serial number of the Opus stream in the first link. + \param _of The \c OggOpusFile from which to retrieve the serial number. + \param _li The index of the link whose serial number should be retrieved. + Use a negative number to get the serial number of the current + link. + \return The serial number of the given link. + If \a _li is greater than the total number of links, this returns + the serial number of the last link. + If the source is not seekable, this always returns the serial number + of the current link.*/ +opus_uint32 op_serialno(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Get the channel count of the given link in a (possibly-chained) Ogg Opus + stream. + This is equivalent to op_head(_of,_li)->channel_count, but + is provided for convenience. + This function may be called on partially-opened streams, but it will always + return the channel count of the Opus stream in the first link. + \param _of The \c OggOpusFile from which to retrieve the channel count. + \param _li The index of the link whose channel count should be retrieved. + Use a negative number to get the channel count of the current + link. + \return The channel count of the given link. + If \a _li is greater than the total number of links, this returns + the channel count of the last link. + If the source is not seekable, this always returns the channel count + of the current link.*/ +int op_channel_count(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Get the total (compressed) size of the stream, or of an individual link in + a (possibly-chained) Ogg Opus stream, including all headers and Ogg muxing + overhead. + \param _of The \c OggOpusFile from which to retrieve the compressed size. + \param _li The index of the link whose compressed size should be computed. + Use a negative number to get the compressed size of the entire + stream. + \return The compressed size of the entire stream if \a _li is negative, the + compressed size of link \a _li if it is non-negative, or a negative + value on error. + The compressed size of the entire stream may be smaller than that + of the underlying source if trailing garbage was detected in the + file. + \retval #OP_EINVAL The source is not seekable (so we can't know the length), + \a _li wasn't less than the total number of links in + the stream, or the stream was only partially open.*/ +opus_int64 op_raw_total(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Get the total PCM length (number of samples at 48 kHz) of the stream, or of + an individual link in a (possibly-chained) Ogg Opus stream. + Users looking for op_time_total() should use op_pcm_total() + instead. + Because timestamps in Opus are fixed at 48 kHz, there is no need for a + separate function to convert this to seconds (and leaving it out avoids + introducing floating point to the API, for those that wish to avoid it). + \param _of The \c OggOpusFile from which to retrieve the PCM offset. + \param _li The index of the link whose PCM length should be computed. + Use a negative number to get the PCM length of the entire stream. + \return The PCM length of the entire stream if \a _li is negative, the PCM + length of link \a _li if it is non-negative, or a negative value on + error. + \retval #OP_EINVAL The source is not seekable (so we can't know the length), + \a _li wasn't less than the total number of links in + the stream, or the stream was only partially open.*/ +ogg_int64_t op_pcm_total(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Get the ID header information for the given link in a (possibly chained) Ogg + Opus stream. + This function may be called on partially-opened streams, but it will always + return the ID header information of the Opus stream in the first link. + \param _of The \c OggOpusFile from which to retrieve the ID header + information. + \param _li The index of the link whose ID header information should be + retrieved. + Use a negative number to get the ID header information of the + current link. + For an unseekable stream, \a _li is ignored, and the ID header + information for the current link is always returned, if + available. + \return The contents of the ID header for the given link.*/ +const OpusHead *op_head(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Get the comment header information for the given link in a (possibly + chained) Ogg Opus stream. + This function may be called on partially-opened streams, but it will always + return the tags from the Opus stream in the first link. + \param _of The \c OggOpusFile from which to retrieve the comment header + information. + \param _li The index of the link whose comment header information should be + retrieved. + Use a negative number to get the comment header information of + the current link. + For an unseekable stream, \a _li is ignored, and the comment + header information for the current link is always returned, if + available. + \return The contents of the comment header for the given link, or + NULL if this is an unseekable stream that encountered + an invalid link.*/ +const OpusTags *op_tags(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Retrieve the index of the current link. + This is the link that produced the data most recently read by + op_read_float() or its associated functions, or, after a seek, the link + that the seek target landed in. + Reading more data may advance the link index (even on the first read after a + seek). + \param _of The \c OggOpusFile from which to retrieve the current link index. + \return The index of the current link on success, or a negative value on + failure. + For seekable streams, this is a number between 0 and the value + returned by op_link_count(). + For unseekable streams, this value starts at 0 and increments by one + each time a new link is encountered (even though op_link_count() + always returns 1). + \retval #OP_EINVAL The stream was only partially open.*/ +int op_current_link(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/**Computes the bitrate for a given link in a (possibly chained) Ogg Opus + stream. + The stream must be seekable to compute the bitrate. + For unseekable streams, use op_bitrate_instant() to get periodic estimates. + \param _of The \c OggOpusFile from which to retrieve the bitrate. + \param _li The index of the link whose bitrate should be computed. + USe a negative number to get the bitrate of the whole stream. + \return The bitrate on success, or a negative value on error. + \retval #OP_EINVAL The stream was only partially open, the stream was not + seekable, or \a _li was larger than the number of + links.*/ +opus_int32 op_bitrate(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Compute the instantaneous bitrate, measured as the ratio of bits to playable + samples decoded since a) the last call to op_bitrate_instant(), b) the last + seek, or c) the start of playback, whichever was most recent. + This will spike somewhat after a seek or at the start/end of a chain + boundary, as pre-skip, pre-roll, and end-trimming causes samples to be + decoded but not played. + \param _of The \c OggOpusFile from which to retrieve the bitrate. + \return The bitrate, in bits per second, or a negative value on error. + \retval #OP_FALSE No data has been decoded since any of the events + described above. + \retval #OP_EINVAL The stream was only partially open.*/ +opus_int32 op_bitrate_instant(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/**Obtain the current value of the position indicator for \a _of. + \param _of The \c OggOpusFile from which to retrieve the position indicator. + \return The byte position that is currently being read from. + \retval #OP_EINVAL The stream was only partially open.*/ +opus_int64 op_raw_tell(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/**Obtain the PCM offset of the next sample to be read. + If the stream is not properly timestamped, this might not increment by the + proper amount between reads, or even return monotonically increasing + values. + \param _of The \c OggOpusFile from which to retrieve the PCM offset. + \return The PCM offset of the next sample to be read. + \retval #OP_EINVAL The stream was only partially open.*/ +ogg_int64_t op_pcm_tell(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/*@}*/ +/*@}*/ + +/**\defgroup stream_seeking Seeking*/ +/*@{*/ +/**\name Functions for seeking in Opus streams + + These functions let you seek in Opus streams, if the underlying source + support it. + Seeking is implemented for all built-in stream I/O routines, though some + individual sources may not be seekable (pipes, live HTTP streams, or HTTP + streams from a server that does not support Range requests). + + op_raw_seek() is the fastest: it is guaranteed to perform at most one + physical seek, but, since the target is a byte position, makes no guarantee + how close to a given time it will come. + op_pcm_seek() provides sample-accurate seeking. + The number of physical seeks it requires is still quite small (often 1 or + 2, even in highly variable bitrate streams). + + Seeking in Opus requires decoding some pre-roll amount before playback to + allow the internal state to converge (as if recovering from packet loss). + This is handled internally by libopusfile, but means there is + little extra overhead for decoding up to the exact position requested + (since it must decode some amount of audio anyway). + It also means that decoding after seeking may not return exactly the same + values as would be obtained by decoding the stream straight through. + However, such differences are expected to be smaller than the loss + introduced by Opus's lossy compression.*/ +/*@{*/ + +/**Seek to a byte offset relative to the compressed data. + This also scans packets to update the PCM cursor. + It will cross a logical bitstream boundary, but only if it can't get any + packets out of the tail of the link to which it seeks. + \param _of The \c OggOpusFile in which to seek. + \param _byte_offset The byte position to seek to. + \return 0 on success, or a negative error code on failure. + \retval #OP_EREAD The underlying seek operation failed. + \retval #OP_EINVAL The stream was only partially open, or the target was + outside the valid range for the stream. + \retval #OP_ENOSEEK This stream is not seekable. + \retval #OP_EBADLINK Failed to initialize a decoder for a stream for an + unknown reason.*/ +int op_raw_seek(OggOpusFile *_of,opus_int64 _byte_offset) OP_ARG_NONNULL(1); + +/**Seek to the specified PCM offset, such that decoding will begin at exactly + the requested position. + \param _of The \c OggOpusFile in which to seek. + \param _pcm_offset The PCM offset to seek to. + This is in samples at 48 kHz relative to the start of the + stream. + \return 0 on success, or a negative value on error. + \retval #OP_EREAD An underlying read or seek operation failed. + \retval #OP_EINVAL The stream was only partially open, or the target was + outside the valid range for the stream. + \retval #OP_ENOSEEK This stream is not seekable. + \retval #OP_EBADLINK We failed to find data we had seen before, or the + bitstream structure was sufficiently malformed that + seeking to the target destination was impossible.*/ +int op_pcm_seek(OggOpusFile *_of,ogg_int64_t _pcm_offset) OP_ARG_NONNULL(1); + +/*@}*/ +/*@}*/ + +/**\defgroup stream_decoding Decoding*/ +/*@{*/ +/**\name Functions for decoding audio data + + These functions retrieve actual decoded audio data from the stream. + The general functions, op_read() and op_read_float() return 16-bit or + floating-point output, both using native endian ordering. + The number of channels returned can change from link to link in a chained + stream. + There are special functions, op_read_stereo() and op_read_float_stereo(), + which always output two channels, to simplify applications which do not + wish to handle multichannel audio. + These downmix multichannel files to two channels, so they can always return + samples in the same format for every link in a chained file. + + If the rest of your audio processing chain can handle floating point, those + routines should be preferred, as floating point output avoids introducing + clipping and other issues which might be avoided entirely if, e.g., you + scale down the volume at some other stage. + However, if you intend to direct consume 16-bit samples, the conversion in + libopusfile provides noise-shaping dithering and, if compiled + against libopus 1.1 or later, soft-clipping prevention. + + libopusfile can also be configured at compile time to use the + fixed-point libopus API. + If so, libopusfile's floating-point API may also be disabled. + In that configuration, nothing in libopusfile will use any + floating-point operations, to simplify support on devices without an + adequate FPU. + + \warning HTTPS streams may be be vulnerable to truncation attacks if you do + not check the error return code from op_read_float() or its associated + functions. + If the remote peer does not close the connection gracefully (with a TLS + "close notify" message), these functions will return OP_EREAD instead of 0 + when they reach the end of the file. + If you are reading from an URL (particularly if seeking is not + supported), you should make sure to check for this error and warn the user + appropriately.*/ +/*@{*/ + +/**Gain offset type that indicates that the provided offset is relative to the + header gain. + This is the default.*/ +#define OP_HEADER_GAIN (0) + +/**Gain offset type that indicates that the provided offset is relative to the + R128_TRACK_GAIN value (if any), in addition to the header gain.*/ +#define OP_TRACK_GAIN (3008) + +/**Gain offset type that indicates that the provided offset should be used as + the gain directly, without applying any the header or track gains.*/ +#define OP_ABSOLUTE_GAIN (3009) + +/**Sets the gain to be used for decoded output. + By default, the gain in the header is applied with no additional offset. + The total gain (including header gain and/or track gain, if applicable, and + this offset), will be clamped to [-32768,32767]/256 dB. + This is more than enough to saturate or underflow 16-bit PCM. + \note The new gain will not be applied to any already buffered, decoded + output. + This means you cannot change it sample-by-sample, as at best it will be + updated packet-by-packet. + It is meant for setting a target volume level, rather than applying smooth + fades, etc. + \param _of The \c OggOpusFile on which to set the gain offset. + \param _gain_type One of #OP_HEADER_GAIN, #OP_TRACK_GAIN, or + #OP_ABSOLUTE_GAIN. + \param _gain_offset_q8 The gain offset to apply, in 1/256ths of a dB. + \return 0 on success or a negative value on error. + \retval #OP_EINVAL The \a _gain_type was unrecognized.*/ +int op_set_gain_offset(OggOpusFile *_of, + int _gain_type,opus_int32 _gain_offset_q8); + +/**Reads more samples from the stream. + \note Although \a _buf_size must indicate the total number of values that + can be stored in \a _pcm, the return value is the number of samples + per channel. + This is done because +
        +
      1. The channel count cannot be known a priori (reading more samples might + advance us into the next link, with a different channel count), so + \a _buf_size cannot also be in units of samples per channel,
      2. +
      3. Returning the samples per channel matches the libopus API + as closely as we're able,
      4. +
      5. Returning the total number of values instead of samples per channel + would mean the caller would need a division to compute the samples per + channel, and might worry about the possibility of getting back samples + for some channels and not others, and
      6. +
      7. This approach is relatively fool-proof: if an application passes too + small a value to \a _buf_size, they will simply get fewer samples back, + and if they assume the return value is the total number of values, then + they will simply read too few (rather than reading too many and going + off the end of the buffer).
      8. +
      + \param _of The \c OggOpusFile from which to read. + \param[out] _pcm A buffer in which to store the output PCM samples, as + signed native-endian 16-bit values at 48 kHz + with a nominal range of [-32768,32767). + Multiple channels are interleaved using the + Vorbis + channel ordering. + This must have room for at least \a _buf_size values. + \param _buf_size The number of values that can be stored in \a _pcm. + It is recommended that this be large enough for at + least 120 ms of data at 48 kHz per channel (5760 + values per channel). + Smaller buffers will simply return less data, possibly + consuming more memory to buffer the data internally. + libopusfile may return less data than + requested. + If so, there is no guarantee that the remaining data + in \a _pcm will be unmodified. + \param[out] _li The index of the link this data was decoded from. + You may pass NULL if you do not need this + information. + If this function fails (returning a negative value), + this parameter is left unset. + \return The number of samples read per channel on success, or a negative + value on failure. + The channel count can be retrieved on success by calling + op_head(_of,*_li). + The number of samples returned may be 0 if the buffer was too small + to store even a single sample for all channels, or if end-of-file + was reached. + The list of possible failure codes follows. + Most of them can only be returned by unseekable, chained streams + that encounter a new link. + \retval #OP_HOLE There was a hole in the data, and some samples + may have been skipped. + Call this function again to continue decoding + past the hole. + \retval #OP_EREAD An underlying read operation failed. + This may signal a truncation attack from an + source. + \retval #OP_EFAULT An internal memory allocation failed. + \retval #OP_EIMPL An unseekable stream encountered a new link that + used a feature that is not implemented, such as + an unsupported channel family. + \retval #OP_EINVAL The stream was only partially open. + \retval #OP_ENOTFORMAT An unseekable stream encountered a new link that + did not have any logical Opus streams in it. + \retval #OP_EBADHEADER An unseekable stream encountered a new link with a + required header packet that was not properly + formatted, contained illegal values, or was + missing altogether. + \retval #OP_EVERSION An unseekable stream encountered a new link with + an ID header that contained an unrecognized + version number. + \retval #OP_EBADPACKET Failed to properly decode the next packet. + \retval #OP_EBADLINK We failed to find data we had seen before. + \retval #OP_EBADTIMESTAMP An unseekable stream encountered a new link with + a starting timestamp that failed basic validity + checks.*/ +OP_WARN_UNUSED_RESULT int op_read(OggOpusFile *_of, + opus_int16 *_pcm,int _buf_size,int *_li) OP_ARG_NONNULL(1); + +/**Reads more samples from the stream. + \note Although \a _buf_size must indicate the total number of values that + can be stored in \a _pcm, the return value is the number of samples + per channel. +
        +
      1. The channel count cannot be known a priori (reading more samples might + advance us into the next link, with a different channel count), so + \a _buf_size cannot also be in units of samples per channel,
      2. +
      3. Returning the samples per channel matches the libopus API + as closely as we're able,
      4. +
      5. Returning the total number of values instead of samples per channel + would mean the caller would need a division to compute the samples per + channel, and might worry about the possibility of getting back samples + for some channels and not others, and
      6. +
      7. This approach is relatively fool-proof: if an application passes too + small a value to \a _buf_size, they will simply get fewer samples back, + and if they assume the return value is the total number of values, then + they will simply read too few (rather than reading too many and going + off the end of the buffer).
      8. +
      + \param _of The \c OggOpusFile from which to read. + \param[out] _pcm A buffer in which to store the output PCM samples as + signed floats at 48 kHz with a nominal range of + [-1.0,1.0]. + Multiple channels are interleaved using the + Vorbis + channel ordering. + This must have room for at least \a _buf_size floats. + \param _buf_size The number of floats that can be stored in \a _pcm. + It is recommended that this be large enough for at + least 120 ms of data at 48 kHz per channel (5760 + samples per channel). + Smaller buffers will simply return less data, possibly + consuming more memory to buffer the data internally. + If less than \a _buf_size values are returned, + libopusfile makes no guarantee that the + remaining data in \a _pcm will be unmodified. + \param[out] _li The index of the link this data was decoded from. + You may pass NULL if you do not need this + information. + If this function fails (returning a negative value), + this parameter is left unset. + \return The number of samples read per channel on success, or a negative + value on failure. + The channel count can be retrieved on success by calling + op_head(_of,*_li). + The number of samples returned may be 0 if the buffer was too small + to store even a single sample for all channels, or if end-of-file + was reached. + The list of possible failure codes follows. + Most of them can only be returned by unseekable, chained streams + that encounter a new link. + \retval #OP_HOLE There was a hole in the data, and some samples + may have been skipped. + Call this function again to continue decoding + past the hole. + \retval #OP_EREAD An underlying read operation failed. + This may signal a truncation attack from an + source. + \retval #OP_EFAULT An internal memory allocation failed. + \retval #OP_EIMPL An unseekable stream encountered a new link that + used a feature that is not implemented, such as + an unsupported channel family. + \retval #OP_EINVAL The stream was only partially open. + \retval #OP_ENOTFORMAT An unseekable stream encountered a new link that + did not have any logical Opus streams in it. + \retval #OP_EBADHEADER An unseekable stream encountered a new link with a + required header packet that was not properly + formatted, contained illegal values, or was + missing altogether. + \retval #OP_EVERSION An unseekable stream encountered a new link with + an ID header that contained an unrecognized + version number. + \retval #OP_EBADPACKET Failed to properly decode the next packet. + \retval #OP_EBADLINK We failed to find data we had seen before. + \retval #OP_EBADTIMESTAMP An unseekable stream encountered a new link with + a starting timestamp that failed basic validity + checks.*/ +OP_WARN_UNUSED_RESULT int op_read_float(OggOpusFile *_of, + float *_pcm,int _buf_size,int *_li) OP_ARG_NONNULL(1); + +/**Reads more samples from the stream and downmixes to stereo, if necessary. + This function is intended for simple players that want a uniform output + format, even if the channel count changes between links in a chained + stream. + \note \a _buf_size indicates the total number of values that can be stored + in \a _pcm, while the return value is the number of samples per + channel, even though the channel count is known, for consistency with + op_read(). + \param _of The \c OggOpusFile from which to read. + \param[out] _pcm A buffer in which to store the output PCM samples, as + signed native-endian 16-bit values at 48 kHz + with a nominal range of [-32768,32767). + The left and right channels are interleaved in the + buffer. + This must have room for at least \a _buf_size values. + \param _buf_size The number of values that can be stored in \a _pcm. + It is recommended that this be large enough for at + least 120 ms of data at 48 kHz per channel (11520 + values total). + Smaller buffers will simply return less data, possibly + consuming more memory to buffer the data internally. + If less than \a _buf_size values are returned, + libopusfile makes no guarantee that the + remaining data in \a _pcm will be unmodified. + \return The number of samples read per channel on success, or a negative + value on failure. + The number of samples returned may be 0 if the buffer was too small + to store even a single sample for both channels, or if end-of-file + was reached. + The list of possible failure codes follows. + Most of them can only be returned by unseekable, chained streams + that encounter a new link. + \retval #OP_HOLE There was a hole in the data, and some samples + may have been skipped. + Call this function again to continue decoding + past the hole. + \retval #OP_EREAD An underlying read operation failed. + This may signal a truncation attack from an + source. + \retval #OP_EFAULT An internal memory allocation failed. + \retval #OP_EIMPL An unseekable stream encountered a new link that + used a feature that is not implemented, such as + an unsupported channel family. + \retval #OP_EINVAL The stream was only partially open. + \retval #OP_ENOTFORMAT An unseekable stream encountered a new link that + did not have any logical Opus streams in it. + \retval #OP_EBADHEADER An unseekable stream encountered a new link with a + required header packet that was not properly + formatted, contained illegal values, or was + missing altogether. + \retval #OP_EVERSION An unseekable stream encountered a new link with + an ID header that contained an unrecognized + version number. + \retval #OP_EBADPACKET Failed to properly decode the next packet. + \retval #OP_EBADLINK We failed to find data we had seen before. + \retval #OP_EBADTIMESTAMP An unseekable stream encountered a new link with + a starting timestamp that failed basic validity + checks.*/ +OP_WARN_UNUSED_RESULT int op_read_stereo(OggOpusFile *_of, + opus_int16 *_pcm,int _buf_size) OP_ARG_NONNULL(1); + +/**Reads more samples from the stream and downmixes to stereo, if necessary. + This function is intended for simple players that want a uniform output + format, even if the channel count changes between links in a chained + stream. + \note \a _buf_size indicates the total number of values that can be stored + in \a _pcm, while the return value is the number of samples per + channel, even though the channel count is known, for consistency with + op_read_float(). + \param _of The \c OggOpusFile from which to read. + \param[out] _pcm A buffer in which to store the output PCM samples, as + signed floats at 48 kHz with a nominal range of + [-1.0,1.0]. + The left and right channels are interleaved in the + buffer. + This must have room for at least \a _buf_size values. + \param _buf_size The number of values that can be stored in \a _pcm. + It is recommended that this be large enough for at + least 120 ms of data at 48 kHz per channel (11520 + values total). + Smaller buffers will simply return less data, possibly + consuming more memory to buffer the data internally. + If less than \a _buf_size values are returned, + libopusfile makes no guarantee that the + remaining data in \a _pcm will be unmodified. + \return The number of samples read per channel on success, or a negative + value on failure. + The number of samples returned may be 0 if the buffer was too small + to store even a single sample for both channels, or if end-of-file + was reached. + The list of possible failure codes follows. + Most of them can only be returned by unseekable, chained streams + that encounter a new link. + \retval #OP_HOLE There was a hole in the data, and some samples + may have been skipped. + Call this function again to continue decoding + past the hole. + \retval #OP_EREAD An underlying read operation failed. + This may signal a truncation attack from an + source. + \retval #OP_EFAULT An internal memory allocation failed. + \retval #OP_EIMPL An unseekable stream encountered a new link that + used a feature that is not implemented, such as + an unsupported channel family. + \retval #OP_EINVAL The stream was only partially open. + \retval #OP_ENOTFORMAT An unseekable stream encountered a new link that + that did not have any logical Opus streams in it. + \retval #OP_EBADHEADER An unseekable stream encountered a new link with a + required header packet that was not properly + formatted, contained illegal values, or was + missing altogether. + \retval #OP_EVERSION An unseekable stream encountered a new link with + an ID header that contained an unrecognized + version number. + \retval #OP_EBADPACKET Failed to properly decode the next packet. + \retval #OP_EBADLINK We failed to find data we had seen before. + \retval #OP_EBADTIMESTAMP An unseekable stream encountered a new link with + a starting timestamp that failed basic validity + checks.*/ +OP_WARN_UNUSED_RESULT int op_read_float_stereo(OggOpusFile *_of, + float *_pcm,int _buf_size) OP_ARG_NONNULL(1); + +/*@}*/ +/*@}*/ + +# if OP_GNUC_PREREQ(4,0) +# pragma GCC visibility pop +# endif + +# if defined(__cplusplus) +} +# endif + +#endif diff --git a/Audio-Frameworks/bin/opusfile/MacOS/OpusFile.framework/Versions/A/OpusFile b/Audio-Frameworks/bin/opusfile/MacOS/OpusFile.framework/Versions/A/OpusFile new file mode 100755 index 0000000000000000000000000000000000000000..dfeb0a4692aed93701b682155e82daf6eeee27ae GIT binary patch literal 57032 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 klW)w?(Ytq6(rmZh%)=F54?F_#4xd)M! + + + + BuildMachineOSBuild + 12F37 + CFBundleDevelopmentRegion + English + CFBundleExecutable + OpusFile + CFBundleIdentifier + com.ap4y.OpusFile + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + OpusFile + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 5A1413 + DTPlatformVersion + GM + DTSDKBuild + 12D75 + DTSDKName + macosx10.8 + DTXcode + 0500 + DTXcodeBuild + 5A1413 + NSHumanReadableCopyright + Copyright © 2013 Arthur Evstifeev. All rights reserved. + + diff --git a/Audio-Frameworks/bin/opusfile/MacOS/OpusFile.framework/Versions/Current b/Audio-Frameworks/bin/opusfile/MacOS/OpusFile.framework/Versions/Current new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ b/Audio-Frameworks/bin/opusfile/MacOS/OpusFile.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/Audio-Frameworks/bin/opusfile/OpusFile.framework/Headers b/Audio-Frameworks/bin/opusfile/OpusFile.framework/Headers new file mode 120000 index 0000000..a177d2a --- /dev/null +++ b/Audio-Frameworks/bin/opusfile/OpusFile.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/Audio-Frameworks/bin/opusfile/OpusFile.framework/OpusFile b/Audio-Frameworks/bin/opusfile/OpusFile.framework/OpusFile new file mode 120000 index 0000000..5206f36 --- /dev/null +++ b/Audio-Frameworks/bin/opusfile/OpusFile.framework/OpusFile @@ -0,0 +1 @@ +Versions/Current/OpusFile \ No newline at end of file diff --git a/Audio-Frameworks/bin/opusfile/OpusFile.framework/Resources b/Audio-Frameworks/bin/opusfile/OpusFile.framework/Resources new file mode 120000 index 0000000..953ee36 --- /dev/null +++ b/Audio-Frameworks/bin/opusfile/OpusFile.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/Audio-Frameworks/bin/opusfile/OpusFile.framework/Versions/A/Headers/opusfile.h b/Audio-Frameworks/bin/opusfile/OpusFile.framework/Versions/A/Headers/opusfile.h new file mode 100644 index 0000000..31eeaed --- /dev/null +++ b/Audio-Frameworks/bin/opusfile/OpusFile.framework/Versions/A/Headers/opusfile.h @@ -0,0 +1,1866 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE libopusfile SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE libopusfile SOURCE CODE IS (C) COPYRIGHT 1994-2012 * + * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * + * * + ******************************************************************** + + function: stdio-based convenience library for opening/seeking/decoding + last mod: $Id: vorbisfile.h 17182 2010-04-29 03:48:32Z xiphmont $ + + ********************************************************************/ +#if !defined(_opusfile_h) +# define _opusfile_h (1) + +/**\mainpage + \section Introduction + + This is the documentation for the libopusfile C API. + + The libopusfile package provides a convenient high-level API for + decoding and basic manipulation of all Ogg Opus audio streams. + libopusfile is implemented as a layer on top of Xiph.Org's + reference + libogg + and + libopus + libraries. + + libopusfile provides several sets of built-in routines for + file/stream access, and may also use custom stream I/O routines provided by + the embedded environment. + There are built-in I/O routines provided for ANSI-compliant + stdio (FILE *), memory buffers, and URLs + (including URLs, plus optionally and URLs). + + \section Organization + + The main API is divided into several sections: + - \ref stream_open_close + - \ref stream_info + - \ref stream_decoding + - \ref stream_seeking + + Several additional sections are not tied to the main API. + - \ref stream_callbacks + - \ref header_info + - \ref error_codes + + \section Overview + + The libopusfile API always decodes files to 48 kHz. + The original sample rate is not preserved by the lossy compression, though + it is stored in the header to allow you to resample to it after decoding + (the libopusfile API does not currently provide a resampler, + but the + the + Speex resampler is a good choice if you need one). + In general, if you are playing back the audio, you should leave it at + 48 kHz, provided your audio hardware supports it. + When decoding to a file, it may be worth resampling back to the original + sample rate, so as not to surprise users who might not expect the sample + rate to change after encoding to Opus and decoding. + + Opus files can contain anywhere from 1 to 255 channels of audio. + The channel mappings for up to 8 channels are the same as the + Vorbis + mappings. + A special stereo API can convert everything to 2 channels, making it simple + to support multichannel files in a application which only has stereo + output. + Although the libopusfile ABI provides support for the theoretical + maximum number of channels, the current implementation does not support + files with more than 8 channels, as they do not have well-defined channel + mappings. + + Like all Ogg files, Opus files may be "chained". + That is, multiple Opus files may be combined into a single, longer file just + by concatenating the original files. + This is commonly done in internet radio streaming, as it allows the title + and artist to be updated each time the song changes, since each link in the + chain includes its own set of metadata. + + libopusfile fully supports chained files. + It will decode the first Opus stream found in each link of a chained file + (ignoring any other streams that might be concurrently multiplexed with it, + such as a video stream). + + The channel count can also change between links, but if your application is + not prepared to deal with this, it can use the stereo API to ensure the + audio from all links will always get decoded into a common format. + Since libopusfile always decodes to 48 kHz, you do not have to + worry about the sample rate changing between links (as was possible with + Vorbis). + This makes application support for chained files with libopusfile + very easy.*/ + +# if defined(__cplusplus) +extern "C" { +# endif + +# include +# include +# include +# include + +/*Enable special features for gcc and gcc-compatible compilers.*/ +# if !defined(OP_GNUC_PREREQ) +# if defined(__GNUC__)&&defined(__GNUC_MINOR__) +# define OP_GNUC_PREREQ(_maj,_min) \ + ((__GNUC__<<16)+__GNUC_MINOR__>=((_maj)<<16)+(_min)) +# else +# define OP_GNUC_PREREQ(_maj,_min) 0 +# endif +# endif + +# if OP_GNUC_PREREQ(4,0) +# pragma GCC visibility push(default) +# endif + +typedef struct OpusHead OpusHead; +typedef struct OpusTags OpusTags; +typedef struct OpusPictureTag OpusPictureTag; +typedef struct OggOpusFile OggOpusFile; + +/*Warning attributes for libopusfile functions.*/ +# if OP_GNUC_PREREQ(3,4) +# define OP_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__)) +# else +# define OP_WARN_UNUSED_RESULT +# endif +# if OP_GNUC_PREREQ(3,4) +# define OP_ARG_NONNULL(_x) __attribute__((__nonnull__(_x))) +# else +# define OP_ARG_NONNULL(_x) +# endif + +/**\defgroup error_codes Error Codes*/ +/*@{*/ +/**\name List of possible error codes + Many of the functions in this library return a negative error code when a + function fails. + This list provides a brief explanation of the common errors. + See each individual function for more details on what a specific error code + means in that context.*/ +/*@{*/ + +/**A request did not succeed.*/ +#define OP_FALSE (-1) +/*Currently not used externally.*/ +#define OP_EOF (-2) +/**There was a hole in the page sequence numbers (e.g., a page was corrupt or + missing).*/ +#define OP_HOLE (-3) +/**An underlying read, seek, or tell operation failed when it should have + succeeded.*/ +#define OP_EREAD (-128) +/**A NULL pointer was passed where one was unexpected, or an + internal memory allocation failed, or an internal library error was + encountered.*/ +#define OP_EFAULT (-129) +/**The stream used a feature that is not implemented, such as an unsupported + channel family.*/ +#define OP_EIMPL (-130) +/**One or more parameters to a function were invalid.*/ +#define OP_EINVAL (-131) +/**A purported Ogg Opus stream did not begin with an Ogg page, a purported + header packet did not start with one of the required strings, "OpusHead" or + "OpusTags", or a link in a chained file was encountered that did not + contain any logical Opus streams.*/ +#define OP_ENOTFORMAT (-132) +/**A required header packet was not properly formatted, contained illegal + values, or was missing altogether.*/ +#define OP_EBADHEADER (-133) +/**The ID header contained an unrecognized version number.*/ +#define OP_EVERSION (-134) +/*Currently not used at all.*/ +#define OP_ENOTAUDIO (-135) +/**An audio packet failed to decode properly. + This is usually caused by a multistream Ogg packet where the durations of + the individual Opus packets contained in it are not all the same.*/ +#define OP_EBADPACKET (-136) +/**We failed to find data we had seen before, or the bitstream structure was + sufficiently malformed that seeking to the target destination was + impossible.*/ +#define OP_EBADLINK (-137) +/**An operation that requires seeking was requested on an unseekable stream.*/ +#define OP_ENOSEEK (-138) +/**The first or last granule position of a link failed basic validity checks.*/ +#define OP_EBADTIMESTAMP (-139) + +/*@}*/ +/*@}*/ + +/**\defgroup header_info Header Information*/ +/*@{*/ + +/**The maximum number of channels in an Ogg Opus stream.*/ +#define OPUS_CHANNEL_COUNT_MAX (255) + +/**Ogg Opus bitstream information. + This contains the basic playback parameters for a stream, and corresponds to + the initial ID header packet of an Ogg Opus stream.*/ +struct OpusHead{ + /**The Ogg Opus format version, in the range 0...255. + The top 4 bits represent a "major" version, and the bottom four bits + represent backwards-compatible "minor" revisions. + The current specification describes version 1. + This library will recognize versions up through 15 as backwards compatible + with the current specification. + An earlier draft of the specification described a version 0, but the only + difference between version 1 and version 0 is that version 0 did + not specify the semantics for handling the version field.*/ + int version; + /**The number of channels, in the range 1...255.*/ + int channel_count; + /**The number of samples that should be discarded from the beginning of the + stream.*/ + unsigned pre_skip; + /**The sampling rate of the original input. + All Opus audio is coded at 48 kHz, and should also be decoded at 48 kHz + for playback (unless the target hardware does not support this sampling + rate). + However, this field may be used to resample the audio back to the original + sampling rate, for example, when saving the output to a file.*/ + opus_uint32 input_sample_rate; + /**The gain to apply to the decoded output, in dB, as a Q8 value in the range + -32768...32767. + The libopusfile API will automatically apply this gain to the + decoded output before returning it, scaling it by + pow(10,output_gain/(20.0*256)).*/ + int output_gain; + /**The channel mapping family, in the range 0...255. + Channel mapping family 0 covers mono or stereo in a single stream. + Channel mapping family 1 covers 1 to 8 channels in one or more streams, + using the Vorbis speaker assignments. + Channel mapping family 255 covers 1 to 255 channels in one or more + streams, but without any defined speaker assignment.*/ + int mapping_family; + /**The number of Opus streams in each Ogg packet, in the range 1...255.*/ + int stream_count; + /**The number of coupled Opus streams in each Ogg packet, in the range + 0...127. + This must satisfy 0 <= coupled_count <= stream_count and + coupled_count + stream_count <= 255. + The coupled streams appear first, before all uncoupled streams, in an Ogg + Opus packet.*/ + int coupled_count; + /**The mapping from coded stream channels to output channels. + Let index=mapping[k] be the value for channel k. + If index<2*coupled_count, then it refers to the left channel + from stream (index/2) if even, and the right channel from + stream (index/2) if odd. + Otherwise, it refers to the output of the uncoupled stream + (index-coupled_count).*/ + unsigned char mapping[OPUS_CHANNEL_COUNT_MAX]; +}; + +/**The metadata from an Ogg Opus stream. + + This structure holds the in-stream metadata corresponding to the 'comment' + header packet of an Ogg Opus stream. + The comment header is meant to be used much like someone jotting a quick + note on the label of a CD. + It should be a short, to the point text note that can be more than a couple + words, but not more than a short paragraph. + + The metadata is stored as a series of (tag, value) pairs, in length-encoded + string vectors, using the same format as Vorbis (without the final "framing + bit"), Theora, and Speex, except for the packet header. + The first occurrence of the '=' character delimits the tag and value. + A particular tag may occur more than once, and order is significant. + The character set encoding for the strings is always UTF-8, but the tag + names are limited to ASCII, and treated as case-insensitive. + See the Vorbis + comment header specification for details. + + In filling in this structure, libopusfile will null-terminate the + #user_comments strings for safety. + However, the bitstream format itself treats them as 8-bit clean vectors, + possibly containing NUL characters, so the #comment_lengths array should be + treated as their authoritative length. + + This structure is binary and source-compatible with a + vorbis_comment, and pointers to it may be freely cast to + vorbis_comment pointers, and vice versa. + It is provided as a separate type to avoid introducing a compile-time + dependency on the libvorbis headers.*/ +struct OpusTags{ + /**The array of comment string vectors.*/ + char **user_comments; + /**An array of the corresponding length of each vector, in bytes.*/ + int *comment_lengths; + /**The total number of comment streams.*/ + int comments; + /**The null-terminated vendor string. + This identifies the software used to encode the stream.*/ + char *vendor; +}; + +/**\name Picture tag image formats*/ +/*@{*/ + +/**The MIME type was not recognized, or the image data did not match the + declared MIME type.*/ +#define OP_PIC_FORMAT_UNKNOWN (-1) +/**The MIME type indicates the image data is really a URL.*/ +#define OP_PIC_FORMAT_URL (0) +/**The image is a JPEG.*/ +#define OP_PIC_FORMAT_JPEG (1) +/**The image is a PNG.*/ +#define OP_PIC_FORMAT_PNG (2) +/**The image is a GIF.*/ +#define OP_PIC_FORMAT_GIF (3) + +/*@}*/ + +/**The contents of a METADATA_BLOCK_PICTURE tag.*/ +struct OpusPictureTag{ + /**The picture type according to the ID3v2 APIC frame: +
        +
      1. Other
      2. +
      3. 32x32 pixels 'file icon' (PNG only)
      4. +
      5. Other file icon
      6. +
      7. Cover (front)
      8. +
      9. Cover (back)
      10. +
      11. Leaflet page
      12. +
      13. Media (e.g. label side of CD)
      14. +
      15. Lead artist/lead performer/soloist
      16. +
      17. Artist/performer
      18. +
      19. Conductor
      20. +
      21. Band/Orchestra
      22. +
      23. Composer
      24. +
      25. Lyricist/text writer
      26. +
      27. Recording Location
      28. +
      29. During recording
      30. +
      31. During performance
      32. +
      33. Movie/video screen capture
      34. +
      35. A bright colored fish
      36. +
      37. Illustration
      38. +
      39. Band/artist logotype
      40. +
      41. Publisher/Studio logotype
      42. +
      + Others are reserved and should not be used. + There may only be one each of picture type 1 and 2 in a file.*/ + opus_int32 type; + /**The MIME type of the picture, in printable ASCII characters 0x20-0x7E. + The MIME type may also be "-->" to signify that the data part + is a URL pointing to the picture instead of the picture data itself. + In this case, a terminating NUL is appended to the URL string in #data, + but #data_length is set to the length of the string excluding that + terminating NUL.*/ + char *mime_type; + /**The description of the picture, in UTF-8.*/ + char *description; + /**The width of the picture in pixels.*/ + opus_uint32 width; + /**The height of the picture in pixels.*/ + opus_uint32 height; + /**The color depth of the picture in bits-per-pixel (not + bits-per-channel).*/ + opus_uint32 depth; + /**For indexed-color pictures (e.g., GIF), the number of colors used, or 0 + for non-indexed pictures.*/ + opus_uint32 colors; + /**The length of the picture data in bytes.*/ + opus_uint32 data_length; + /**The binary picture data.*/ + unsigned char *data; + /**The format of the picture data, if known. + One of +
        +
      • #OP_PIC_FORMAT_UNKNOWN,
      • +
      • #OP_PIC_FORMAT_URL,
      • +
      • #OP_PIC_FORMAT_JPEG,
      • +
      • #OP_PIC_FORMAT_PNG,
      • +
      • #OP_PIC_FORMAT_GIF, or
      • +
      .*/ + int format; +}; + +/**\name Functions for manipulating header data + + These functions manipulate the #OpusHead and #OpusTags structures, + which describe the audio parameters and tag-value metadata, respectively. + These can be used to query the headers returned by libopusfile, or + to parse Opus headers from sources other than an Ogg Opus stream, provided + they use the same format.*/ +/*@{*/ + +/**Parses the contents of the ID header packet of an Ogg Opus stream. + \param[out] _head Returns the contents of the parsed packet. + The contents of this structure are untouched on error. + This may be NULL to merely test the header + for validity. + \param[in] _data The contents of the ID header packet. + \param _len The number of bytes of data in the ID header packet. + \return 0 on success or a negative value on error. + \retval #OP_ENOTFORMAT If the data does not start with the "OpusHead" + string. + \retval #OP_EVERSION If the version field signaled a version this library + does not know how to parse. + \retval #OP_EIMPL If the channel mapping family was 255, which general + purpose players should not attempt to play. + \retval #OP_EBADHEADER If the contents of the packet otherwise violate the + Ogg Opus specification: +
        +
      • Insufficient data,
      • +
      • Too much data for the known minor versions,
      • +
      • An unrecognized channel mapping family,
      • +
      • Zero channels or too many channels,
      • +
      • Zero coded streams,
      • +
      • Too many coupled streams, or
      • +
      • An invalid channel mapping index.
      • +
      */ +OP_WARN_UNUSED_RESULT int opus_head_parse(OpusHead *_head, + const unsigned char *_data,size_t _len) OP_ARG_NONNULL(2); + +/**Converts a granule position to a sample offset for a given Ogg Opus stream. + The sample offset is simply _gp-_head->pre_skip. + Granule position values smaller than OpusHead#pre_skip correspond to audio + that should never be played, and thus have no associated sample offset. + This function returns -1 for such values. + This function also correctly handles extremely large granule positions, + which may have wrapped around to a negative number when stored in a signed + ogg_int64_t value. + \param _head The #OpusHead information from the ID header of the stream. + \param _gp The granule position to convert. + \return The sample offset associated with the given granule position + (counting at a 48 kHz sampling rate), or the special value -1 on + error (i.e., the granule position was smaller than the pre-skip + amount).*/ +ogg_int64_t opus_granule_sample(const OpusHead *_head,ogg_int64_t _gp) + OP_ARG_NONNULL(1); + +/**Parses the contents of the 'comment' header packet of an Ogg Opus stream. + \param[out] _tags An uninitialized #OpusTags structure. + This returns the contents of the parsed packet. + The contents of this structure are untouched on error. + This may be NULL to merely test the header + for validity. + \param[in] _data The contents of the 'comment' header packet. + \param _len The number of bytes of data in the 'info' header packet. + \retval 0 Success. + \retval #OP_ENOTFORMAT If the data does not start with the "OpusTags" + string. + \retval #OP_EBADHEADER If the contents of the packet otherwise violate the + Ogg Opus specification. + \retval #OP_EFAULT If there wasn't enough memory to store the tags.*/ +OP_WARN_UNUSED_RESULT int opus_tags_parse(OpusTags *_tags, + const unsigned char *_data,size_t _len) OP_ARG_NONNULL(2); + +/**Initializes an #OpusTags structure. + This should be called on a freshly allocated #OpusTags structure before + attempting to use it. + \param _tags The #OpusTags structure to initialize.*/ +void opus_tags_init(OpusTags *_tags) OP_ARG_NONNULL(1); + +/**Add a (tag, value) pair to an initialized #OpusTags structure. + \note Neither opus_tags_add() nor opus_tags_add_comment() support values + containing embedded NULs, although the bitstream format does support them. + To add such tags, you will need to manipulate the #OpusTags structure + directly. + \param _tags The #OpusTags structure to add the (tag, value) pair to. + \param _tag A NUL-terminated, case-insensitive, ASCII string containing + the tag to add (without an '=' character). + \param _value A NUL-terminated UTF-8 containing the corresponding value. + \return 0 on success, or a negative value on failure. + \retval #OP_EFAULT An internal memory allocation failed.*/ +int opus_tags_add(OpusTags *_tags,const char *_tag,const char *_value) + OP_ARG_NONNULL(1) OP_ARG_NONNULL(2) OP_ARG_NONNULL(3); + +/**Add a comment to an initialized #OpusTags structure. + \note Neither opus_tags_add_comment() nor opus_tags_add() support comments + containing embedded NULs, although the bitstream format does support them. + To add such tags, you will need to manipulate the #OpusTags structure + directly. + \param _tags The #OpusTags structure to add the comment to. + \param _comment A NUL-terminated UTF-8 string containing the comment in + "TAG=value" form. + \return 0 on success, or a negative value on failure. + \retval #OP_EFAULT An internal memory allocation failed.*/ +int opus_tags_add_comment(OpusTags *_tags,const char *_comment) + OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/**Look up a comment value by its tag. + \param _tags An initialized #OpusTags structure. + \param _tag The tag to look up. + \param _count The instance of the tag. + The same tag can appear multiple times, each with a distinct + value, so an index is required to retrieve them all. + The order in which these values appear is significant and + should be preserved. + Use opus_tags_query_count() to get the legal range for the + \a _count parameter. + \return A pointer to the queried tag's value. + This points directly to data in the #OpusTags structure. + It should not be modified or freed by the application, and + modifications to the structure may invalidate the pointer. + \retval NULL If no matching tag is found.*/ +const char *opus_tags_query(const OpusTags *_tags,const char *_tag,int _count) + OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/**Look up the number of instances of a tag. + Call this first when querying for a specific tag and then iterate over the + number of instances with separate calls to opus_tags_query() to retrieve + all the values for that tag in order. + \param _tags An initialized #OpusTags structure. + \param _tag The tag to look up. + \return The number of instances of this particular tag.*/ +int opus_tags_query_count(const OpusTags *_tags,const char *_tag) + OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/**Get the track gain from an R128_TRACK_GAIN tag, if one was specified. + This searches for the first R128_TRACK_GAIN tag with a valid signed, + 16-bit decimal integer value and returns the value. + This routine is exposed merely for convenience for applications which wish + to do something special with the track gain (i.e., display it). + If you simply wish to apply the track gain instead of the header gain, you + can use op_set_gain_offset() with an #OP_TRACK_GAIN type and no offset. + \param _tags An initialized #OpusTags structure. + \param[out] _gain_q8 The track gain, in 1/256ths of a dB. + This will lie in the range [-32768,32767], and should + be applied in addition to the header gain. + On error, no value is returned, and the previous + contents remain unchanged. + \return 0 on success, or a negative value on error. + \retval OP_EFALSE There was no track gain available in the given tags.*/ +int opus_tags_get_track_gain(const OpusTags *_tags,int *_gain_q8) + OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/**Clears the #OpusTags structure. + This should be called on an #OpusTags structure after it is no longer + needed. + It will free all memory used by the structure members. + \param _tags The #OpusTags structure to clear.*/ +void opus_tags_clear(OpusTags *_tags) OP_ARG_NONNULL(1); + +/**Parse a single METADATA_BLOCK_PICTURE tag. + This decodes the BASE64-encoded content of the tag and returns a structure + with the MIME type, description, image parameters (if known), and the + compressed image data. + If the MIME type indicates the presence of an image format we recognize + (JPEG, PNG, or GIF) and the actual image data contains the magic signature + associated with that format, then the OpusPictureTag::format field will be + set to the corresponding format. + This is provided as a convenience to avoid requiring applications to parse + the MIME type and/or do their own format detection for the commonly used + formats. + In this case, we also attempt to extract the image parameters directly from + the image data (overriding any that were present in the tag, which the + specification says applications are not meant to rely on). + The application must still provide its own support for actually decoding the + image data and, if applicable, retrieving that data from URLs. + \param[out] _pic Returns the parsed picture data. + No sanitation is done on the type, MIME type, or + description fields, so these might return invalid values. + The contents of this structure are left unmodified on + failure. + \param _tag The METADATA_BLOCK_PICTURE tag contents. + The leading "METADATA_BLOCK_PICTURE=" portion is optional, + to allow the function to be used on either directly on the + values in OpusTags::user_comments or on the return value + of opus_tags_query(). + \return 0 on success or a negative value on error. + \retval #OP_ENOTFORMAT The METADATA_BLOCK_PICTURE contents were not valid. + \retval #OP_EFAULT A memory allocation failed.*/ +int opus_picture_tag_parse(OpusPictureTag *_pic,const char *_tag) + OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/**Initializes an #OpusPictureTag structure. + This should be called on a freshly allocated #OpusPictureTag structure + before attempting to use it. + \param _pic The #OpusPictureTag structure to initialize.*/ +void opus_picture_tag_init(OpusPictureTag *_pic) OP_ARG_NONNULL(1); + +/**Clears the #OpusPictureTag structure. + This should be called on an #OpusPictureTag structure after it is no longer + needed. + It will free all memory used by the structure members. + \param _pic The #OpusPictureTag structure to clear.*/ +void opus_picture_tag_clear(OpusPictureTag *_pic) OP_ARG_NONNULL(1); + +/*@}*/ + +/*@}*/ + +/**\defgroup url_options URL Reading Options*/ +/*@{*/ +/**\name URL reading options + Options for op_url_stream_create() and associated functions. + These allow you to provide proxy configuration parameters, skip SSL + certificate checks, etc. + Options are processed in order, and if the same option is passed multiple + times, only the value specified by the last occurrence has an effect + (unless otherwise specified). + They may be expanded in the future.*/ +/*@{*/ + +/*These are the raw numbers used to define the request codes. + They should not be used directly.*/ +#define OP_SSL_SKIP_CERTIFICATE_CHECK_REQUEST (6464) +#define OP_HTTP_PROXY_HOST_REQUEST (6528) +#define OP_HTTP_PROXY_PORT_REQUEST (6592) +#define OP_HTTP_PROXY_USER_REQUEST (6656) +#define OP_HTTP_PROXY_PASS_REQUEST (6720) + +#define OP_URL_OPT(_request) ((_request)+(char *)0) + +/*These macros trigger compilation errors or warnings if the wrong types are + provided to one of the URL options.*/ +#define OP_CHECK_INT(_x) ((void)((_x)==(opus_int32)0),(opus_int32)(_x)) +#define OP_CHECK_CONST_CHAR_PTR(_x) ((_x)+((_x)-(const char *)(_x))) + +/**Skip the certificate check when connecting via TLS/SSL (https). + \param _b opus_int32: Whether or not to skip the certificate + check. + The check will be skipped if \a _b is non-zero, and will not be + skipped if \a _b is zero. + \hideinitializer*/ +#define OP_SSL_SKIP_CERTIFICATE_CHECK(_b) \ + OP_URL_OPT(OP_SSL_SKIP_CERTIFICATE_CHECK_REQUEST),OP_CHECK_INT(_b) + +/**Proxy connections through the given host. + If no port is specified via #OP_HTTP_PROXY_PORT, the port number defaults + to 8080 (http-alt). + All proxy parameters are ignored for non-http and non-https URLs. + \param _host const char *: The proxy server hostname. + This may be NULL to disable the use of a proxy + server. + \hideinitializer*/ +#define OP_HTTP_PROXY_HOST(_host) \ + OP_URL_OPT(OP_HTTP_PROXY_HOST_REQUEST),OP_CHECK_CONST_CHAR_PTR(_host) + +/**Use the given port when proxying connections. + This option only has an effect if #OP_HTTP_PROXY_HOST is specified with a + non-NULL \a _host. + If this option is not provided, the proxy port number defaults to 8080 + (http-alt). + All proxy parameters are ignored for non-http and non-https URLs. + \param _port opus_int32: The proxy server port. + This must be in the range 0...65535 (inclusive), or the + URL function this is passed to will fail. + \hideinitializer*/ +#define OP_HTTP_PROXY_PORT(_port) \ + OP_URL_OPT(OP_HTTP_PROXY_PORT_REQUEST),OP_CHECK_INT(_port) + +/**Use the given user name for authentication when proxying connections. + All proxy parameters are ignored for non-http and non-https URLs. + \param _user const char *: The proxy server user name. + This may be NULL to disable proxy + authentication. + A non-NULL value only has an effect + if #OP_HTTP_PROXY_HOST and #OP_HTTP_PROXY_PASS + are also specified with non-NULL + arguments. + \hideinitializer*/ +#define OP_HTTP_PROXY_USER(_user) \ + OP_URL_OPT(OP_HTTP_PROXY_USER_REQUEST),OP_CHECK_CONST_CHAR_PTR(_host) + +/**Use the given password for authentication when proxying connections. + All proxy parameters are ignored for non-http and non-https URLs. + \param _pass const char *: The proxy server password. + This may be NULL to disable proxy + authentication. + A non-NULL value only has an effect + if #OP_HTTP_PROXY_HOST and #OP_HTTP_PROXY_USER + are also specified with non-NULL + arguments. + \hideinitializer*/ +#define OP_HTTP_PROXY_PASS(_pass) \ + OP_URL_OPT(OP_HTTP_PROXY_PASS_REQUEST),OP_CHECK_CONST_CHAR_PTR(_host) + +/*@}*/ +/*@}*/ + +/**\defgroup stream_callbacks Abstract Stream Reading Interface*/ +/*@{*/ +/**\name Functions for reading from streams + These functions define the interface used to read from and seek in a stream + of data. + A stream does not need to implement seeking, but the decoder will not be + able to seek if it does not do so. + These functions also include some convenience routines for working with + standard FILE pointers, complete streams stored in a single + block of memory, or URLs.*/ +/*@{*/ + +typedef struct OpusFileCallbacks OpusFileCallbacks; + +/**Reads up to \a _nbytes bytes of data from \a _stream. + \param _stream The stream to read from. + \param[out] _ptr The buffer to store the data in. + \param _nbytes The maximum number of bytes to read. + This function may return fewer, though it will not + return zero unless it reaches end-of-file. + \return The number of bytes successfully read, or a negative value on + error.*/ +typedef int (*op_read_func)(void *_stream,unsigned char *_ptr,int _nbytes); + +/**Sets the position indicator for \a _stream. + The new position, measured in bytes, is obtained by adding \a _offset + bytes to the position specified by \a _whence. + If \a _whence is set to SEEK_SET, SEEK_CUR, or + SEEK_END, the offset is relative to the start of the stream, + the current position indicator, or end-of-file, respectively. + \retval 0 Success. + \retval -1 Seeking is not supported or an error occurred. + errno need not be set.*/ +typedef int (*op_seek_func)(void *_stream,opus_int64 _offset,int _whence); + +/**Obtains the current value of the position indicator for \a _stream. + \return The current position indicator.*/ +typedef opus_int64 (*op_tell_func)(void *_stream); + +/**Closes the underlying stream. + \retval 0 Success. + \retval EOF An error occurred. + errno need not be set.*/ +typedef int (*op_close_func)(void *_stream); + +/**The callbacks used to access non-FILE stream resources. + The function prototypes are basically the same as for the stdio functions + fread(), fseek(), ftell(), and + fclose(). + The differences are that the FILE * arguments have been + replaced with a void *, which is to be used as a pointer to + whatever internal data these functions might need, that #seek and #tell + take and return 64-bit offsets, and that #seek must return -1 if + the stream is unseekable.*/ +struct OpusFileCallbacks{ + /**Used to read data from the stream. + This must not be NULL.*/ + op_read_func read; + /**Used to seek in the stream. + This may be NULL if seeking is not implemented.*/ + op_seek_func seek; + /**Used to return the current read position in the stream. + This may be NULL if seeking is not implemented.*/ + op_tell_func tell; + /**Used to close the stream when the decoder is freed. + This may be NULL to leave the stream open.*/ + op_close_func close; +}; + +/**Opens a stream with fopen() and fills in a set of callbacks + that can be used to access it. + This is useful to avoid writing your own portable 64-bit seeking wrappers, + and also avoids cross-module linking issues on Windows, where a + FILE * must be accessed by routines defined in the same module + that opened it. + \param[out] _cb The callbacks to use for this file. + If there is an error opening the file, nothing will be + filled in here. + \param _path The path to the file to open. + On Windows, this string must be UTF-8 (to allow access to + files whose names cannot be represented in the current + MBCS code page). + All other systems use the native character encoding. + \param _mode The mode to open the file in. + \return A stream handle to use with the callbacks, or NULL on + error.*/ +OP_WARN_UNUSED_RESULT void *op_fopen(OpusFileCallbacks *_cb, + const char *_path,const char *_mode) OP_ARG_NONNULL(1) OP_ARG_NONNULL(2) + OP_ARG_NONNULL(3); + +/**Opens a stream with fdopen() and fills in a set of callbacks + that can be used to access it. + This is useful to avoid writing your own portable 64-bit seeking wrappers, + and also avoids cross-module linking issues on Windows, where a + FILE * must be accessed by routines defined in the same module + that opened it. + \param[out] _cb The callbacks to use for this file. + If there is an error opening the file, nothing will be + filled in here. + \param _fd The file descriptor to open. + \param _mode The mode to open the file in. + \return A stream handle to use with the callbacks, or NULL on + error.*/ +OP_WARN_UNUSED_RESULT void *op_fdopen(OpusFileCallbacks *_cb, + int _fd,const char *_mode) OP_ARG_NONNULL(1) OP_ARG_NONNULL(3); + +/**Opens a stream with freopen() and fills in a set of callbacks + that can be used to access it. + This is useful to avoid writing your own portable 64-bit seeking wrappers, + and also avoids cross-module linking issues on Windows, where a + FILE * must be accessed by routines defined in the same module + that opened it. + \param[out] _cb The callbacks to use for this file. + If there is an error opening the file, nothing will be + filled in here. + \param _path The path to the file to open. + On Windows, this string must be UTF-8 (to allow access + to files whose names cannot be represented in the + current MBCS code page). + All other systems use the native character encoding. + \param _mode The mode to open the file in. + \param _stream A stream previously returned by op_fopen(), op_fdopen(), + or op_freopen(). + \return A stream handle to use with the callbacks, or NULL on + error.*/ +OP_WARN_UNUSED_RESULT void *op_freopen(OpusFileCallbacks *_cb, + const char *_path,const char *_mode,void *_stream) OP_ARG_NONNULL(1) + OP_ARG_NONNULL(2) OP_ARG_NONNULL(3) OP_ARG_NONNULL(4); + +/**Creates a stream that reads from the given block of memory. + This block of memory must contain the complete stream to decode. + This is useful for caching small streams (e.g., sound effects) in RAM. + \param[out] _cb The callbacks to use for this stream. + If there is an error creating the stream, nothing will be + filled in here. + \param _data The block of memory to read from. + \param _size The size of the block of memory. + \return A stream handle to use with the callbacks, or NULL on + error.*/ +OP_WARN_UNUSED_RESULT void *op_mem_stream_create(OpusFileCallbacks *_cb, + const unsigned char *_data,size_t _size) OP_ARG_NONNULL(1); + +/**Creates a stream that reads from the given URL. + This function behaves identically to op_url_stream_create(), except that it + takes a va_list instead of a variable number of arguments. + It does not call the va_end macro, and because it invokes the + va_arg macro, the value of \a _ap is undefined after the call. + \param[out] _cb The callbacks to use for this stream. + If there is an error creating the stream, nothing will + be filled in here. + \param _url The URL to read from. + Currently only the , , and + schemes are supported. + Both and may be disabled at compile + time, in which case opening such URLs will always fail. + \param[in,out] _ap A list of the \ref url_options "optional flags" to use. + This is a variable-length list of options terminated + with NULL. + \return A stream handle to use with the callbacks, or NULL on + error.*/ +OP_WARN_UNUSED_RESULT void *op_url_stream_vcreate(OpusFileCallbacks *_cb, + const char *_url,va_list _ap) OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/**Creates a stream that reads from the given URL using the specified proxy. + \param[out] _cb The callbacks to use for this stream. + If there is an error creating the stream, nothing will be + filled in here. + \param _url The URL to read from. + Currently only the , , and schemes + are supported. + Both and may be disabled at compile time, + in which case opening such URLs will always fail. + \param ... The \ref url_options "optional flags" to use. + This is a variable-length list of options terminated with + NULL. + \return A stream handle to use with the callbacks, or NULL on + error.*/ +OP_WARN_UNUSED_RESULT void *op_url_stream_create(OpusFileCallbacks *_cb, + const char *_url,...) OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/*@}*/ +/*@}*/ + +/**\defgroup stream_open_close Opening and Closing*/ +/*@{*/ +/**\name Functions for opening and closing streams + + These functions allow you to test a stream to see if it is Opus, open it, + and close it. + Several flavors are provided for each of the built-in stream types, plus a + more general version which takes a set of application-provided callbacks.*/ +/*@{*/ + +/**Test to see if this is an Opus stream. + For good results, you will need at least 57 bytes (for a pure Opus-only + stream). + Something like 512 bytes will give more reliable results for multiplexed + streams. + This function is meant to be a quick-rejection filter. + Its purpose is not to guarantee that a stream is a valid Opus stream, but to + ensure that it looks enough like Opus that it isn't going to be recognized + as some other format (except possibly an Opus stream that is also + multiplexed with other codecs, such as video). + \param[out] _head The parsed ID header contents. + You may pass NULL if you do not need + this information. + If the function fails, the contents of this structure + remain untouched. + \param _initial_data An initial buffer of data from the start of the + stream. + \param _initial_bytes The number of bytes in \a _initial_data. + \return 0 if the data appears to be Opus, or a negative value on error. + \retval #OP_FALSE There was not enough data to tell if this was an Opus + stream or not. + \retval #OP_EFAULT An internal memory allocation failed. + \retval #OP_EIMPL The stream used a feature that is not implemented, + such as an unsupported channel family. + \retval #OP_ENOTFORMAT If the data did not contain a recognizable ID + header for an Opus stream. + \retval #OP_EVERSION If the version field signaled a version this library + does not know how to parse. + \retval #OP_EBADHEADER The ID header was not properly formatted or contained + illegal values.*/ +int op_test(OpusHead *_head, + const unsigned char *_initial_data,size_t _initial_bytes); + +/**Open a stream from the given file path. + \param _path The path to the file to open. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want the + failure code. + The failure code will be #OP_EFAULT if the file could not + be opened, or one of the other failure codes from + op_open_callbacks() otherwise. + \return A freshly opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_open_file(const char *_path,int *_error) + OP_ARG_NONNULL(1); + +/**Open a stream from a memory buffer. + \param _data The memory buffer to open. + \param _size The number of bytes in the buffer. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want the + failure code. + See op_open_callbacks() for a full list of failure codes. + \return A freshly opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_open_memory(const unsigned char *_data, + size_t _size,int *_error); + +/**Open a stream from a URL. + This function behaves identically to op_open_url(), except that it + takes a va_list instead of a variable number of arguments. + It does not call the va_end macro, and because it invokes the + va_arg macro, the value of \a _ap is undefined after the call. + \param _url The URL to open. + Currently only the , , and + schemes are supported. + Both and may be disabled at compile + time, in which case opening such URLs will always + fail. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want + the failure code. + See op_open_callbacks() for a full list of failure + codes. + \param[in,out] _ap A list of the \ref url_options "optional flags" to + use. + This is a variable-length list of options terminated + with NULL. + \return A freshly opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_vopen_url(const char *_url, + int *_error,va_list _ap) OP_ARG_NONNULL(1); + +/**Open a stream from a URL. + However, this approach will not work for live streams or HTTP/1.0 servers + (which do not support Range requets). + \param _url The URL to open. + Currently only the , , and schemes + are supported. + Both and may be disabled at compile + time, in which case opening such URLs will always fail. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want the + failure code. + See op_open_callbacks() for a full list of failure codes. + \param ... The \ref url_options "optional flags" to use. + This is a variable-length list of options terminated with + NULL. + \return A freshly opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_open_url(const char *_url, + int *_error,...) OP_ARG_NONNULL(1); + +/**Open a stream using the given set of callbacks to access it. + \param _source The stream to read from (e.g., a FILE *). + \param _cb The callbacks with which to access the stream. + read() must + be implemented. + seek() and + tell() may + be NULL, or may always return -1 to + indicate a source is unseekable, but if + seek() is + implemented and succeeds on a particular source, then + tell() must + also. + close() may + be NULL, but if it is not, it will be + called when the \c OggOpusFile is destroyed by + op_free(). + It will not be called if op_open_callbacks() fails + with an error. + \param _initial_data An initial buffer of data from the start of the + stream. + Applications can read some number of bytes from the + start of the stream to help identify this as an Opus + stream, and then provide them here to allow the + stream to be opened, even if it is unseekable. + \param _initial_bytes The number of bytes in \a _initial_data. + If the stream is seekable, its current position (as + reported by + tell() + at the start of this function) must be equal to + \a _initial_bytes. + Otherwise, seeking to absolute positions will + generate inconsistent results. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want + the failure code. + The failure code will be one of +
      +
      #OP_EREAD
      +
      An underlying read, seek, or tell operation + failed when it should have succeeded, or we failed + to find data in the stream we had seen before.
      +
      #OP_EFAULT
      +
      There was a memory allocation failure, or an + internal library error.
      +
      #OP_EIMPL
      +
      The stream used a feature that is not + implemented, such as an unsupported channel + family.
      +
      #OP_EINVAL
      +
      seek() + was implemented and succeeded on this source, but + tell() + did not, or the starting position indicator was + not equal to \a _initial_bytes.
      +
      #OP_ENOTFORMAT
      +
      The stream contained a link that did not have + any logical Opus streams in it.
      +
      #OP_EBADHEADER
      +
      A required header packet was not properly + formatted, contained illegal values, or was missing + altogether.
      +
      #OP_EVERSION
      +
      An ID header contained an unrecognized version + number.
      +
      #OP_EBADLINK
      +
      We failed to find data we had seen before after + seeking.
      +
      #OP_EBADTIMESTAMP
      +
      The first or last timestamp in a link failed + basic validity checks.
      +
      + \return A freshly opened \c OggOpusFile, or NULL on error. + libopusfile does not take ownership of the source + if the call fails. + The calling application is responsible for closing the source if + this call returns an error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_open_callbacks(void *_source, + const OpusFileCallbacks *_cb,const unsigned char *_initial_data, + size_t _initial_bytes,int *_error) OP_ARG_NONNULL(2); + +/**Partially open a stream from the given file path. + \see op_test_callbacks + \param _path The path to the file to open. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want the + failure code. + The failure code will be #OP_EFAULT if the file could not + be opened, or one of the other failure codes from + op_open_callbacks() otherwise. + \return A partially opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_test_file(const char *_path,int *_error) + OP_ARG_NONNULL(1); + +/**Partially open a stream from a memory buffer. + \see op_test_callbacks + \param _data The memory buffer to open. + \param _size The number of bytes in the buffer. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want the + failure code. + See op_open_callbacks() for a full list of failure codes. + \return A partially opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_test_memory(const unsigned char *_data, + size_t _size,int *_error); + +/**Partially open a stream from a URL. + This function behaves identically to op_test_url(), except that it + takes a va_list instead of a variable number of arguments. + It does not call the va_end macro, and because it invokes the + va_arg macro, the value of \a _ap is undefined after the call. + \see op_test_url + \see op_test_callbacks + \param _url The URL to open. + Currently only the , , and + schemes are supported. + Both and may be disabled at compile + time, in which case opening such URLs will always + fail. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want + the failure code. + See op_open_callbacks() for a full list of failure + codes. + \param[in,out] _ap A list of the \ref url_options "optional flags" to + use. + This is a variable-length list of options terminated + with NULL. + \return A partially opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_vtest_url(const char *_url, + int *_error,va_list _ap) OP_ARG_NONNULL(1); + +/**Partially open a stream from a URL. + \see op_test_callbacks + \param _url The URL to open. + Currently only the , , and + schemes are supported. + Both and may be disabled at compile + time, in which case opening such URLs will always fail. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want the + failure code. + See op_open_callbacks() for a full list of failure + codes. + \param ... The \ref url_options "optional flags" to use. + This is a variable-length list of options terminated + with NULL. + \return A partially opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_test_url(const char *_url, + int *_error,...) OP_ARG_NONNULL(1); + +/**Partially open a stream using the given set of callbacks to access it. + This tests for Opusness and loads the headers for the first link. + It does not seek (although it tests for seekability). + You can query a partially open stream for the few pieces of basic + information returned by op_serialno(), op_channel_count(), op_head(), and + op_tags() (but only for the first link). + You may also determine if it is seekable via a call to op_seekable(). + You cannot read audio from the stream, seek, get the size or duration, + get information from links other than the first one, or even get the total + number of links until you finish opening the stream with op_test_open(). + If you do not need to do any of these things, you can dispose of it with + op_free() instead. + + This function is provided mostly to simplify porting existing code that used + libvorbisfile. + For new code, you are likely better off using op_test() instead, which + is less resource-intensive, requires less data to succeed, and imposes a + hard limit on the amount of data it examines (important for unseekable + sources, where all such data must be buffered until you are sure of the + stream type). + \param _source The stream to read from (e.g., a FILE *). + \param _cb The callbacks with which to access the stream. + read() must + be implemented. + seek() and + tell() may + be NULL, or may always return -1 to + indicate a source is unseekable, but if + seek() is + implemented and succeeds on a particular source, then + tell() must + also. + close() may + be NULL, but if it is not, it will be + called when the \c OggOpusFile is destroyed by + op_free(). + It will not be called if op_open_callbacks() fails + with an error. + \param _initial_data An initial buffer of data from the start of the + stream. + Applications can read some number of bytes from the + start of the stream to help identify this as an Opus + stream, and then provide them here to allow the + stream to be tested more thoroughly, even if it is + unseekable. + \param _initial_bytes The number of bytes in \a _initial_data. + If the stream is seekable, its current position (as + reported by + tell() + at the start of this function) must be equal to + \a _initial_bytes. + Otherwise, seeking to absolute positions will + generate inconsistent results. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want + the failure code. + See op_open_callbacks() for a full list of failure + codes. + \return A partially opened \c OggOpusFile, or NULL on error. + libopusfile does not take ownership of the source + if the call fails. + The calling application is responsible for closing the source if + this call returns an error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_test_callbacks(void *_source, + const OpusFileCallbacks *_cb,const unsigned char *_initial_data, + size_t _initial_bytes,int *_error) OP_ARG_NONNULL(2); + +/**Finish opening a stream partially opened with op_test_callbacks() or one of + the associated convenience functions. + If this function fails, you are still responsible for freeing the + \c OggOpusFile with op_free(). + \param _of The \c OggOpusFile to finish opening. + \return 0 on success, or a negative value on error. + \retval #OP_EREAD An underlying read, seek, or tell operation failed + when it should have succeeded. + \retval #OP_EFAULT There was a memory allocation failure, or an + internal library error. + \retval #OP_EIMPL The stream used a feature that is not implemented, + such as an unsupported channel family. + \retval #OP_EINVAL The stream was not partially opened with + op_test_callbacks() or one of the associated + convenience functions. + \retval #OP_ENOTFORMAT The stream contained a link that did not have any + logical Opus streams in it. + \retval #OP_EBADHEADER A required header packet was not properly + formatted, contained illegal values, or was + missing altogether. + \retval #OP_EVERSION An ID header contained an unrecognized version + number. + \retval #OP_EBADLINK We failed to find data we had seen before after + seeking. + \retval #OP_EBADTIMESTAMP The first or last timestamp in a link failed basic + validity checks.*/ +int op_test_open(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/**Release all memory used by an \c OggOpusFile. + \param _of The \c OggOpusFile to free.*/ +void op_free(OggOpusFile *_of); + +/*@}*/ +/*@}*/ + +/**\defgroup stream_info Stream Information*/ +/*@{*/ +/**\name Functions for obtaining information about streams + + These functions allow you to get basic information about a stream, including + seekability, the number of links (for chained streams), plus the size, + duration, bitrate, header parameters, and meta information for each link + (or, where available, the stream as a whole). + Some of these (size, duration) are only available for seekable streams. + You can also query the current stream position, link, and playback time, + and instantaneous bitrate during playback. + + Some of these functions may be used successfully on the partially open + streams returned by op_test_callbacks() or one of the associated + convenience functions. + Their documention will indicate so explicitly.*/ +/*@{*/ + +/**Returns whether or not the data source being read is seekable. + This is true if +
        +
      1. The seek() and + tell() callbacks are both + non-NULL,
      2. +
      3. The seek() callback was + successfully executed at least once, and
      4. +
      5. The tell() callback was + successfully able to report the position indicator afterwards.
      6. +
      + This function may be called on partially-opened streams. + \param _of The \c OggOpusFile whose seekable status is to be returned. + \return A non-zero value if seekable, and 0 if unseekable.*/ +int op_seekable(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/**Returns the number of links in this chained stream. + This function may be called on partially-opened streams, but it will always + return 1. + The actual number of links is not known until the stream is fully opened. + \param _of The \c OggOpusFile from which to retrieve the link count. + \return For fully-open seekable sources, this returns the total number of + links in the whole stream. + For partially-open or unseekable sources, this always returns 1.*/ +int op_link_count(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/**Get the serial number of the given link in a (possibly-chained) Ogg Opus + stream. + This function may be called on partially-opened streams, but it will always + return the serial number of the Opus stream in the first link. + \param _of The \c OggOpusFile from which to retrieve the serial number. + \param _li The index of the link whose serial number should be retrieved. + Use a negative number to get the serial number of the current + link. + \return The serial number of the given link. + If \a _li is greater than the total number of links, this returns + the serial number of the last link. + If the source is not seekable, this always returns the serial number + of the current link.*/ +opus_uint32 op_serialno(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Get the channel count of the given link in a (possibly-chained) Ogg Opus + stream. + This is equivalent to op_head(_of,_li)->channel_count, but + is provided for convenience. + This function may be called on partially-opened streams, but it will always + return the channel count of the Opus stream in the first link. + \param _of The \c OggOpusFile from which to retrieve the channel count. + \param _li The index of the link whose channel count should be retrieved. + Use a negative number to get the channel count of the current + link. + \return The channel count of the given link. + If \a _li is greater than the total number of links, this returns + the channel count of the last link. + If the source is not seekable, this always returns the channel count + of the current link.*/ +int op_channel_count(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Get the total (compressed) size of the stream, or of an individual link in + a (possibly-chained) Ogg Opus stream, including all headers and Ogg muxing + overhead. + \param _of The \c OggOpusFile from which to retrieve the compressed size. + \param _li The index of the link whose compressed size should be computed. + Use a negative number to get the compressed size of the entire + stream. + \return The compressed size of the entire stream if \a _li is negative, the + compressed size of link \a _li if it is non-negative, or a negative + value on error. + The compressed size of the entire stream may be smaller than that + of the underlying source if trailing garbage was detected in the + file. + \retval #OP_EINVAL The source is not seekable (so we can't know the length), + \a _li wasn't less than the total number of links in + the stream, or the stream was only partially open.*/ +opus_int64 op_raw_total(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Get the total PCM length (number of samples at 48 kHz) of the stream, or of + an individual link in a (possibly-chained) Ogg Opus stream. + Users looking for op_time_total() should use op_pcm_total() + instead. + Because timestamps in Opus are fixed at 48 kHz, there is no need for a + separate function to convert this to seconds (and leaving it out avoids + introducing floating point to the API, for those that wish to avoid it). + \param _of The \c OggOpusFile from which to retrieve the PCM offset. + \param _li The index of the link whose PCM length should be computed. + Use a negative number to get the PCM length of the entire stream. + \return The PCM length of the entire stream if \a _li is negative, the PCM + length of link \a _li if it is non-negative, or a negative value on + error. + \retval #OP_EINVAL The source is not seekable (so we can't know the length), + \a _li wasn't less than the total number of links in + the stream, or the stream was only partially open.*/ +ogg_int64_t op_pcm_total(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Get the ID header information for the given link in a (possibly chained) Ogg + Opus stream. + This function may be called on partially-opened streams, but it will always + return the ID header information of the Opus stream in the first link. + \param _of The \c OggOpusFile from which to retrieve the ID header + information. + \param _li The index of the link whose ID header information should be + retrieved. + Use a negative number to get the ID header information of the + current link. + For an unseekable stream, \a _li is ignored, and the ID header + information for the current link is always returned, if + available. + \return The contents of the ID header for the given link.*/ +const OpusHead *op_head(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Get the comment header information for the given link in a (possibly + chained) Ogg Opus stream. + This function may be called on partially-opened streams, but it will always + return the tags from the Opus stream in the first link. + \param _of The \c OggOpusFile from which to retrieve the comment header + information. + \param _li The index of the link whose comment header information should be + retrieved. + Use a negative number to get the comment header information of + the current link. + For an unseekable stream, \a _li is ignored, and the comment + header information for the current link is always returned, if + available. + \return The contents of the comment header for the given link, or + NULL if this is an unseekable stream that encountered + an invalid link.*/ +const OpusTags *op_tags(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Retrieve the index of the current link. + This is the link that produced the data most recently read by + op_read_float() or its associated functions, or, after a seek, the link + that the seek target landed in. + Reading more data may advance the link index (even on the first read after a + seek). + \param _of The \c OggOpusFile from which to retrieve the current link index. + \return The index of the current link on success, or a negative value on + failure. + For seekable streams, this is a number between 0 and the value + returned by op_link_count(). + For unseekable streams, this value starts at 0 and increments by one + each time a new link is encountered (even though op_link_count() + always returns 1). + \retval #OP_EINVAL The stream was only partially open.*/ +int op_current_link(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/**Computes the bitrate for a given link in a (possibly chained) Ogg Opus + stream. + The stream must be seekable to compute the bitrate. + For unseekable streams, use op_bitrate_instant() to get periodic estimates. + \param _of The \c OggOpusFile from which to retrieve the bitrate. + \param _li The index of the link whose bitrate should be computed. + USe a negative number to get the bitrate of the whole stream. + \return The bitrate on success, or a negative value on error. + \retval #OP_EINVAL The stream was only partially open, the stream was not + seekable, or \a _li was larger than the number of + links.*/ +opus_int32 op_bitrate(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Compute the instantaneous bitrate, measured as the ratio of bits to playable + samples decoded since a) the last call to op_bitrate_instant(), b) the last + seek, or c) the start of playback, whichever was most recent. + This will spike somewhat after a seek or at the start/end of a chain + boundary, as pre-skip, pre-roll, and end-trimming causes samples to be + decoded but not played. + \param _of The \c OggOpusFile from which to retrieve the bitrate. + \return The bitrate, in bits per second, or a negative value on error. + \retval #OP_FALSE No data has been decoded since any of the events + described above. + \retval #OP_EINVAL The stream was only partially open.*/ +opus_int32 op_bitrate_instant(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/**Obtain the current value of the position indicator for \a _of. + \param _of The \c OggOpusFile from which to retrieve the position indicator. + \return The byte position that is currently being read from. + \retval #OP_EINVAL The stream was only partially open.*/ +opus_int64 op_raw_tell(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/**Obtain the PCM offset of the next sample to be read. + If the stream is not properly timestamped, this might not increment by the + proper amount between reads, or even return monotonically increasing + values. + \param _of The \c OggOpusFile from which to retrieve the PCM offset. + \return The PCM offset of the next sample to be read. + \retval #OP_EINVAL The stream was only partially open.*/ +ogg_int64_t op_pcm_tell(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/*@}*/ +/*@}*/ + +/**\defgroup stream_seeking Seeking*/ +/*@{*/ +/**\name Functions for seeking in Opus streams + + These functions let you seek in Opus streams, if the underlying source + support it. + Seeking is implemented for all built-in stream I/O routines, though some + individual sources may not be seekable (pipes, live HTTP streams, or HTTP + streams from a server that does not support Range requests). + + op_raw_seek() is the fastest: it is guaranteed to perform at most one + physical seek, but, since the target is a byte position, makes no guarantee + how close to a given time it will come. + op_pcm_seek() provides sample-accurate seeking. + The number of physical seeks it requires is still quite small (often 1 or + 2, even in highly variable bitrate streams). + + Seeking in Opus requires decoding some pre-roll amount before playback to + allow the internal state to converge (as if recovering from packet loss). + This is handled internally by libopusfile, but means there is + little extra overhead for decoding up to the exact position requested + (since it must decode some amount of audio anyway). + It also means that decoding after seeking may not return exactly the same + values as would be obtained by decoding the stream straight through. + However, such differences are expected to be smaller than the loss + introduced by Opus's lossy compression.*/ +/*@{*/ + +/**Seek to a byte offset relative to the compressed data. + This also scans packets to update the PCM cursor. + It will cross a logical bitstream boundary, but only if it can't get any + packets out of the tail of the link to which it seeks. + \param _of The \c OggOpusFile in which to seek. + \param _byte_offset The byte position to seek to. + \return 0 on success, or a negative error code on failure. + \retval #OP_EREAD The underlying seek operation failed. + \retval #OP_EINVAL The stream was only partially open, or the target was + outside the valid range for the stream. + \retval #OP_ENOSEEK This stream is not seekable. + \retval #OP_EBADLINK Failed to initialize a decoder for a stream for an + unknown reason.*/ +int op_raw_seek(OggOpusFile *_of,opus_int64 _byte_offset) OP_ARG_NONNULL(1); + +/**Seek to the specified PCM offset, such that decoding will begin at exactly + the requested position. + \param _of The \c OggOpusFile in which to seek. + \param _pcm_offset The PCM offset to seek to. + This is in samples at 48 kHz relative to the start of the + stream. + \return 0 on success, or a negative value on error. + \retval #OP_EREAD An underlying read or seek operation failed. + \retval #OP_EINVAL The stream was only partially open, or the target was + outside the valid range for the stream. + \retval #OP_ENOSEEK This stream is not seekable. + \retval #OP_EBADLINK We failed to find data we had seen before, or the + bitstream structure was sufficiently malformed that + seeking to the target destination was impossible.*/ +int op_pcm_seek(OggOpusFile *_of,ogg_int64_t _pcm_offset) OP_ARG_NONNULL(1); + +/*@}*/ +/*@}*/ + +/**\defgroup stream_decoding Decoding*/ +/*@{*/ +/**\name Functions for decoding audio data + + These functions retrieve actual decoded audio data from the stream. + The general functions, op_read() and op_read_float() return 16-bit or + floating-point output, both using native endian ordering. + The number of channels returned can change from link to link in a chained + stream. + There are special functions, op_read_stereo() and op_read_float_stereo(), + which always output two channels, to simplify applications which do not + wish to handle multichannel audio. + These downmix multichannel files to two channels, so they can always return + samples in the same format for every link in a chained file. + + If the rest of your audio processing chain can handle floating point, those + routines should be preferred, as floating point output avoids introducing + clipping and other issues which might be avoided entirely if, e.g., you + scale down the volume at some other stage. + However, if you intend to direct consume 16-bit samples, the conversion in + libopusfile provides noise-shaping dithering and, if compiled + against libopus 1.1 or later, soft-clipping prevention. + + libopusfile can also be configured at compile time to use the + fixed-point libopus API. + If so, libopusfile's floating-point API may also be disabled. + In that configuration, nothing in libopusfile will use any + floating-point operations, to simplify support on devices without an + adequate FPU. + + \warning HTTPS streams may be be vulnerable to truncation attacks if you do + not check the error return code from op_read_float() or its associated + functions. + If the remote peer does not close the connection gracefully (with a TLS + "close notify" message), these functions will return OP_EREAD instead of 0 + when they reach the end of the file. + If you are reading from an URL (particularly if seeking is not + supported), you should make sure to check for this error and warn the user + appropriately.*/ +/*@{*/ + +/**Gain offset type that indicates that the provided offset is relative to the + header gain. + This is the default.*/ +#define OP_HEADER_GAIN (0) + +/**Gain offset type that indicates that the provided offset is relative to the + R128_TRACK_GAIN value (if any), in addition to the header gain.*/ +#define OP_TRACK_GAIN (3008) + +/**Gain offset type that indicates that the provided offset should be used as + the gain directly, without applying any the header or track gains.*/ +#define OP_ABSOLUTE_GAIN (3009) + +/**Sets the gain to be used for decoded output. + By default, the gain in the header is applied with no additional offset. + The total gain (including header gain and/or track gain, if applicable, and + this offset), will be clamped to [-32768,32767]/256 dB. + This is more than enough to saturate or underflow 16-bit PCM. + \note The new gain will not be applied to any already buffered, decoded + output. + This means you cannot change it sample-by-sample, as at best it will be + updated packet-by-packet. + It is meant for setting a target volume level, rather than applying smooth + fades, etc. + \param _of The \c OggOpusFile on which to set the gain offset. + \param _gain_type One of #OP_HEADER_GAIN, #OP_TRACK_GAIN, or + #OP_ABSOLUTE_GAIN. + \param _gain_offset_q8 The gain offset to apply, in 1/256ths of a dB. + \return 0 on success or a negative value on error. + \retval #OP_EINVAL The \a _gain_type was unrecognized.*/ +int op_set_gain_offset(OggOpusFile *_of, + int _gain_type,opus_int32 _gain_offset_q8); + +/**Reads more samples from the stream. + \note Although \a _buf_size must indicate the total number of values that + can be stored in \a _pcm, the return value is the number of samples + per channel. + This is done because +
        +
      1. The channel count cannot be known a priori (reading more samples might + advance us into the next link, with a different channel count), so + \a _buf_size cannot also be in units of samples per channel,
      2. +
      3. Returning the samples per channel matches the libopus API + as closely as we're able,
      4. +
      5. Returning the total number of values instead of samples per channel + would mean the caller would need a division to compute the samples per + channel, and might worry about the possibility of getting back samples + for some channels and not others, and
      6. +
      7. This approach is relatively fool-proof: if an application passes too + small a value to \a _buf_size, they will simply get fewer samples back, + and if they assume the return value is the total number of values, then + they will simply read too few (rather than reading too many and going + off the end of the buffer).
      8. +
      + \param _of The \c OggOpusFile from which to read. + \param[out] _pcm A buffer in which to store the output PCM samples, as + signed native-endian 16-bit values at 48 kHz + with a nominal range of [-32768,32767). + Multiple channels are interleaved using the + Vorbis + channel ordering. + This must have room for at least \a _buf_size values. + \param _buf_size The number of values that can be stored in \a _pcm. + It is recommended that this be large enough for at + least 120 ms of data at 48 kHz per channel (5760 + values per channel). + Smaller buffers will simply return less data, possibly + consuming more memory to buffer the data internally. + libopusfile may return less data than + requested. + If so, there is no guarantee that the remaining data + in \a _pcm will be unmodified. + \param[out] _li The index of the link this data was decoded from. + You may pass NULL if you do not need this + information. + If this function fails (returning a negative value), + this parameter is left unset. + \return The number of samples read per channel on success, or a negative + value on failure. + The channel count can be retrieved on success by calling + op_head(_of,*_li). + The number of samples returned may be 0 if the buffer was too small + to store even a single sample for all channels, or if end-of-file + was reached. + The list of possible failure codes follows. + Most of them can only be returned by unseekable, chained streams + that encounter a new link. + \retval #OP_HOLE There was a hole in the data, and some samples + may have been skipped. + Call this function again to continue decoding + past the hole. + \retval #OP_EREAD An underlying read operation failed. + This may signal a truncation attack from an + source. + \retval #OP_EFAULT An internal memory allocation failed. + \retval #OP_EIMPL An unseekable stream encountered a new link that + used a feature that is not implemented, such as + an unsupported channel family. + \retval #OP_EINVAL The stream was only partially open. + \retval #OP_ENOTFORMAT An unseekable stream encountered a new link that + did not have any logical Opus streams in it. + \retval #OP_EBADHEADER An unseekable stream encountered a new link with a + required header packet that was not properly + formatted, contained illegal values, or was + missing altogether. + \retval #OP_EVERSION An unseekable stream encountered a new link with + an ID header that contained an unrecognized + version number. + \retval #OP_EBADPACKET Failed to properly decode the next packet. + \retval #OP_EBADLINK We failed to find data we had seen before. + \retval #OP_EBADTIMESTAMP An unseekable stream encountered a new link with + a starting timestamp that failed basic validity + checks.*/ +OP_WARN_UNUSED_RESULT int op_read(OggOpusFile *_of, + opus_int16 *_pcm,int _buf_size,int *_li) OP_ARG_NONNULL(1); + +/**Reads more samples from the stream. + \note Although \a _buf_size must indicate the total number of values that + can be stored in \a _pcm, the return value is the number of samples + per channel. +
        +
      1. The channel count cannot be known a priori (reading more samples might + advance us into the next link, with a different channel count), so + \a _buf_size cannot also be in units of samples per channel,
      2. +
      3. Returning the samples per channel matches the libopus API + as closely as we're able,
      4. +
      5. Returning the total number of values instead of samples per channel + would mean the caller would need a division to compute the samples per + channel, and might worry about the possibility of getting back samples + for some channels and not others, and
      6. +
      7. This approach is relatively fool-proof: if an application passes too + small a value to \a _buf_size, they will simply get fewer samples back, + and if they assume the return value is the total number of values, then + they will simply read too few (rather than reading too many and going + off the end of the buffer).
      8. +
      + \param _of The \c OggOpusFile from which to read. + \param[out] _pcm A buffer in which to store the output PCM samples as + signed floats at 48 kHz with a nominal range of + [-1.0,1.0]. + Multiple channels are interleaved using the + Vorbis + channel ordering. + This must have room for at least \a _buf_size floats. + \param _buf_size The number of floats that can be stored in \a _pcm. + It is recommended that this be large enough for at + least 120 ms of data at 48 kHz per channel (5760 + samples per channel). + Smaller buffers will simply return less data, possibly + consuming more memory to buffer the data internally. + If less than \a _buf_size values are returned, + libopusfile makes no guarantee that the + remaining data in \a _pcm will be unmodified. + \param[out] _li The index of the link this data was decoded from. + You may pass NULL if you do not need this + information. + If this function fails (returning a negative value), + this parameter is left unset. + \return The number of samples read per channel on success, or a negative + value on failure. + The channel count can be retrieved on success by calling + op_head(_of,*_li). + The number of samples returned may be 0 if the buffer was too small + to store even a single sample for all channels, or if end-of-file + was reached. + The list of possible failure codes follows. + Most of them can only be returned by unseekable, chained streams + that encounter a new link. + \retval #OP_HOLE There was a hole in the data, and some samples + may have been skipped. + Call this function again to continue decoding + past the hole. + \retval #OP_EREAD An underlying read operation failed. + This may signal a truncation attack from an + source. + \retval #OP_EFAULT An internal memory allocation failed. + \retval #OP_EIMPL An unseekable stream encountered a new link that + used a feature that is not implemented, such as + an unsupported channel family. + \retval #OP_EINVAL The stream was only partially open. + \retval #OP_ENOTFORMAT An unseekable stream encountered a new link that + did not have any logical Opus streams in it. + \retval #OP_EBADHEADER An unseekable stream encountered a new link with a + required header packet that was not properly + formatted, contained illegal values, or was + missing altogether. + \retval #OP_EVERSION An unseekable stream encountered a new link with + an ID header that contained an unrecognized + version number. + \retval #OP_EBADPACKET Failed to properly decode the next packet. + \retval #OP_EBADLINK We failed to find data we had seen before. + \retval #OP_EBADTIMESTAMP An unseekable stream encountered a new link with + a starting timestamp that failed basic validity + checks.*/ +OP_WARN_UNUSED_RESULT int op_read_float(OggOpusFile *_of, + float *_pcm,int _buf_size,int *_li) OP_ARG_NONNULL(1); + +/**Reads more samples from the stream and downmixes to stereo, if necessary. + This function is intended for simple players that want a uniform output + format, even if the channel count changes between links in a chained + stream. + \note \a _buf_size indicates the total number of values that can be stored + in \a _pcm, while the return value is the number of samples per + channel, even though the channel count is known, for consistency with + op_read(). + \param _of The \c OggOpusFile from which to read. + \param[out] _pcm A buffer in which to store the output PCM samples, as + signed native-endian 16-bit values at 48 kHz + with a nominal range of [-32768,32767). + The left and right channels are interleaved in the + buffer. + This must have room for at least \a _buf_size values. + \param _buf_size The number of values that can be stored in \a _pcm. + It is recommended that this be large enough for at + least 120 ms of data at 48 kHz per channel (11520 + values total). + Smaller buffers will simply return less data, possibly + consuming more memory to buffer the data internally. + If less than \a _buf_size values are returned, + libopusfile makes no guarantee that the + remaining data in \a _pcm will be unmodified. + \return The number of samples read per channel on success, or a negative + value on failure. + The number of samples returned may be 0 if the buffer was too small + to store even a single sample for both channels, or if end-of-file + was reached. + The list of possible failure codes follows. + Most of them can only be returned by unseekable, chained streams + that encounter a new link. + \retval #OP_HOLE There was a hole in the data, and some samples + may have been skipped. + Call this function again to continue decoding + past the hole. + \retval #OP_EREAD An underlying read operation failed. + This may signal a truncation attack from an + source. + \retval #OP_EFAULT An internal memory allocation failed. + \retval #OP_EIMPL An unseekable stream encountered a new link that + used a feature that is not implemented, such as + an unsupported channel family. + \retval #OP_EINVAL The stream was only partially open. + \retval #OP_ENOTFORMAT An unseekable stream encountered a new link that + did not have any logical Opus streams in it. + \retval #OP_EBADHEADER An unseekable stream encountered a new link with a + required header packet that was not properly + formatted, contained illegal values, or was + missing altogether. + \retval #OP_EVERSION An unseekable stream encountered a new link with + an ID header that contained an unrecognized + version number. + \retval #OP_EBADPACKET Failed to properly decode the next packet. + \retval #OP_EBADLINK We failed to find data we had seen before. + \retval #OP_EBADTIMESTAMP An unseekable stream encountered a new link with + a starting timestamp that failed basic validity + checks.*/ +OP_WARN_UNUSED_RESULT int op_read_stereo(OggOpusFile *_of, + opus_int16 *_pcm,int _buf_size) OP_ARG_NONNULL(1); + +/**Reads more samples from the stream and downmixes to stereo, if necessary. + This function is intended for simple players that want a uniform output + format, even if the channel count changes between links in a chained + stream. + \note \a _buf_size indicates the total number of values that can be stored + in \a _pcm, while the return value is the number of samples per + channel, even though the channel count is known, for consistency with + op_read_float(). + \param _of The \c OggOpusFile from which to read. + \param[out] _pcm A buffer in which to store the output PCM samples, as + signed floats at 48 kHz with a nominal range of + [-1.0,1.0]. + The left and right channels are interleaved in the + buffer. + This must have room for at least \a _buf_size values. + \param _buf_size The number of values that can be stored in \a _pcm. + It is recommended that this be large enough for at + least 120 ms of data at 48 kHz per channel (11520 + values total). + Smaller buffers will simply return less data, possibly + consuming more memory to buffer the data internally. + If less than \a _buf_size values are returned, + libopusfile makes no guarantee that the + remaining data in \a _pcm will be unmodified. + \return The number of samples read per channel on success, or a negative + value on failure. + The number of samples returned may be 0 if the buffer was too small + to store even a single sample for both channels, or if end-of-file + was reached. + The list of possible failure codes follows. + Most of them can only be returned by unseekable, chained streams + that encounter a new link. + \retval #OP_HOLE There was a hole in the data, and some samples + may have been skipped. + Call this function again to continue decoding + past the hole. + \retval #OP_EREAD An underlying read operation failed. + This may signal a truncation attack from an + source. + \retval #OP_EFAULT An internal memory allocation failed. + \retval #OP_EIMPL An unseekable stream encountered a new link that + used a feature that is not implemented, such as + an unsupported channel family. + \retval #OP_EINVAL The stream was only partially open. + \retval #OP_ENOTFORMAT An unseekable stream encountered a new link that + that did not have any logical Opus streams in it. + \retval #OP_EBADHEADER An unseekable stream encountered a new link with a + required header packet that was not properly + formatted, contained illegal values, or was + missing altogether. + \retval #OP_EVERSION An unseekable stream encountered a new link with + an ID header that contained an unrecognized + version number. + \retval #OP_EBADPACKET Failed to properly decode the next packet. + \retval #OP_EBADLINK We failed to find data we had seen before. + \retval #OP_EBADTIMESTAMP An unseekable stream encountered a new link with + a starting timestamp that failed basic validity + checks.*/ +OP_WARN_UNUSED_RESULT int op_read_float_stereo(OggOpusFile *_of, + float *_pcm,int _buf_size) OP_ARG_NONNULL(1); + +/*@}*/ +/*@}*/ + +# if OP_GNUC_PREREQ(4,0) +# pragma GCC visibility pop +# endif + +# if defined(__cplusplus) +} +# endif + +#endif diff --git a/Audio-Frameworks/bin/opusfile/OpusFile.framework/Versions/A/OpusFile b/Audio-Frameworks/bin/opusfile/OpusFile.framework/Versions/A/OpusFile new file mode 100644 index 0000000000000000000000000000000000000000..373a89ce1f83810665eaa72bc133f16235c405a7 GIT binary patch literal 249252 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 literal 0 HcmV?d00001 diff --git a/Audio-Frameworks/bin/opusfile/OpusFile.framework/Versions/A/Resources/Info.plist b/Audio-Frameworks/bin/opusfile/OpusFile.framework/Versions/A/Resources/Info.plist new file mode 100644 index 0000000000000000000000000000000000000000..36d47e5a19c873664cf8911d80148c4b450680b4 GIT binary patch literal 749 zcmZWm$#T;`5S^Y72wN=M1V}=Fn0-@8#Ey>;M{$)&89PW`2(Ac49?JuxrL?4Q@eTO_ zZYk~@_yUe_;RCo(95_&%xN?E9A|+HYm!9d@ulv28ZI96)l%%i14B&|)lShwD9Y1mM z)amJrkj>@K%$z-Ues*sD!otN%mkU>}Ub}wd*6llYd#lw-im6DNE^Eb2PCkV&yN@q;*%k6CrY98!lg)cCcfXia8> z1J}35-E|?K(wc_((y)j&@_2SG&8kD!50j2+=u^k~7mPfQ!=#_K40K^3W!9X5t57rK zQVf4|AS##QYp;kIg~m1;TU>Q*k22!xf>5UpwIjQs{!gj(xnDY<#NTSw_zI{=s)kM3 zNEfn)z7k$9S!J@iY&ut^mScpG&s}B?NpV%T;YC4}>(HcW9_C0e!KSyyFI+FR_>=9tz{)n!pS=%@$qdI5WnEJFByMHDus9M^IeRw+7-Q|yid>YJv9d>3mCyJyn%P{0Y1TJ_yXVH2mFLz@EiW%2|S6XaSqSphgiW~yor1G TIkqrE@xibk(Y+)l0SA8pY)IwT literal 0 HcmV?d00001 diff --git a/Audio-Frameworks/bin/opusfile/OpusFile.framework/Versions/Current b/Audio-Frameworks/bin/opusfile/OpusFile.framework/Versions/Current new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ b/Audio-Frameworks/bin/opusfile/OpusFile.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/Audio-Frameworks/bin/opusfile/include/opusfile/opusfile.h b/Audio-Frameworks/bin/opusfile/include/opusfile/opusfile.h new file mode 100644 index 0000000..31eeaed --- /dev/null +++ b/Audio-Frameworks/bin/opusfile/include/opusfile/opusfile.h @@ -0,0 +1,1866 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE libopusfile SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE libopusfile SOURCE CODE IS (C) COPYRIGHT 1994-2012 * + * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * + * * + ******************************************************************** + + function: stdio-based convenience library for opening/seeking/decoding + last mod: $Id: vorbisfile.h 17182 2010-04-29 03:48:32Z xiphmont $ + + ********************************************************************/ +#if !defined(_opusfile_h) +# define _opusfile_h (1) + +/**\mainpage + \section Introduction + + This is the documentation for the libopusfile C API. + + The libopusfile package provides a convenient high-level API for + decoding and basic manipulation of all Ogg Opus audio streams. + libopusfile is implemented as a layer on top of Xiph.Org's + reference + libogg + and + libopus + libraries. + + libopusfile provides several sets of built-in routines for + file/stream access, and may also use custom stream I/O routines provided by + the embedded environment. + There are built-in I/O routines provided for ANSI-compliant + stdio (FILE *), memory buffers, and URLs + (including URLs, plus optionally and URLs). + + \section Organization + + The main API is divided into several sections: + - \ref stream_open_close + - \ref stream_info + - \ref stream_decoding + - \ref stream_seeking + + Several additional sections are not tied to the main API. + - \ref stream_callbacks + - \ref header_info + - \ref error_codes + + \section Overview + + The libopusfile API always decodes files to 48 kHz. + The original sample rate is not preserved by the lossy compression, though + it is stored in the header to allow you to resample to it after decoding + (the libopusfile API does not currently provide a resampler, + but the + the + Speex resampler is a good choice if you need one). + In general, if you are playing back the audio, you should leave it at + 48 kHz, provided your audio hardware supports it. + When decoding to a file, it may be worth resampling back to the original + sample rate, so as not to surprise users who might not expect the sample + rate to change after encoding to Opus and decoding. + + Opus files can contain anywhere from 1 to 255 channels of audio. + The channel mappings for up to 8 channels are the same as the + Vorbis + mappings. + A special stereo API can convert everything to 2 channels, making it simple + to support multichannel files in a application which only has stereo + output. + Although the libopusfile ABI provides support for the theoretical + maximum number of channels, the current implementation does not support + files with more than 8 channels, as they do not have well-defined channel + mappings. + + Like all Ogg files, Opus files may be "chained". + That is, multiple Opus files may be combined into a single, longer file just + by concatenating the original files. + This is commonly done in internet radio streaming, as it allows the title + and artist to be updated each time the song changes, since each link in the + chain includes its own set of metadata. + + libopusfile fully supports chained files. + It will decode the first Opus stream found in each link of a chained file + (ignoring any other streams that might be concurrently multiplexed with it, + such as a video stream). + + The channel count can also change between links, but if your application is + not prepared to deal with this, it can use the stereo API to ensure the + audio from all links will always get decoded into a common format. + Since libopusfile always decodes to 48 kHz, you do not have to + worry about the sample rate changing between links (as was possible with + Vorbis). + This makes application support for chained files with libopusfile + very easy.*/ + +# if defined(__cplusplus) +extern "C" { +# endif + +# include +# include +# include +# include + +/*Enable special features for gcc and gcc-compatible compilers.*/ +# if !defined(OP_GNUC_PREREQ) +# if defined(__GNUC__)&&defined(__GNUC_MINOR__) +# define OP_GNUC_PREREQ(_maj,_min) \ + ((__GNUC__<<16)+__GNUC_MINOR__>=((_maj)<<16)+(_min)) +# else +# define OP_GNUC_PREREQ(_maj,_min) 0 +# endif +# endif + +# if OP_GNUC_PREREQ(4,0) +# pragma GCC visibility push(default) +# endif + +typedef struct OpusHead OpusHead; +typedef struct OpusTags OpusTags; +typedef struct OpusPictureTag OpusPictureTag; +typedef struct OggOpusFile OggOpusFile; + +/*Warning attributes for libopusfile functions.*/ +# if OP_GNUC_PREREQ(3,4) +# define OP_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__)) +# else +# define OP_WARN_UNUSED_RESULT +# endif +# if OP_GNUC_PREREQ(3,4) +# define OP_ARG_NONNULL(_x) __attribute__((__nonnull__(_x))) +# else +# define OP_ARG_NONNULL(_x) +# endif + +/**\defgroup error_codes Error Codes*/ +/*@{*/ +/**\name List of possible error codes + Many of the functions in this library return a negative error code when a + function fails. + This list provides a brief explanation of the common errors. + See each individual function for more details on what a specific error code + means in that context.*/ +/*@{*/ + +/**A request did not succeed.*/ +#define OP_FALSE (-1) +/*Currently not used externally.*/ +#define OP_EOF (-2) +/**There was a hole in the page sequence numbers (e.g., a page was corrupt or + missing).*/ +#define OP_HOLE (-3) +/**An underlying read, seek, or tell operation failed when it should have + succeeded.*/ +#define OP_EREAD (-128) +/**A NULL pointer was passed where one was unexpected, or an + internal memory allocation failed, or an internal library error was + encountered.*/ +#define OP_EFAULT (-129) +/**The stream used a feature that is not implemented, such as an unsupported + channel family.*/ +#define OP_EIMPL (-130) +/**One or more parameters to a function were invalid.*/ +#define OP_EINVAL (-131) +/**A purported Ogg Opus stream did not begin with an Ogg page, a purported + header packet did not start with one of the required strings, "OpusHead" or + "OpusTags", or a link in a chained file was encountered that did not + contain any logical Opus streams.*/ +#define OP_ENOTFORMAT (-132) +/**A required header packet was not properly formatted, contained illegal + values, or was missing altogether.*/ +#define OP_EBADHEADER (-133) +/**The ID header contained an unrecognized version number.*/ +#define OP_EVERSION (-134) +/*Currently not used at all.*/ +#define OP_ENOTAUDIO (-135) +/**An audio packet failed to decode properly. + This is usually caused by a multistream Ogg packet where the durations of + the individual Opus packets contained in it are not all the same.*/ +#define OP_EBADPACKET (-136) +/**We failed to find data we had seen before, or the bitstream structure was + sufficiently malformed that seeking to the target destination was + impossible.*/ +#define OP_EBADLINK (-137) +/**An operation that requires seeking was requested on an unseekable stream.*/ +#define OP_ENOSEEK (-138) +/**The first or last granule position of a link failed basic validity checks.*/ +#define OP_EBADTIMESTAMP (-139) + +/*@}*/ +/*@}*/ + +/**\defgroup header_info Header Information*/ +/*@{*/ + +/**The maximum number of channels in an Ogg Opus stream.*/ +#define OPUS_CHANNEL_COUNT_MAX (255) + +/**Ogg Opus bitstream information. + This contains the basic playback parameters for a stream, and corresponds to + the initial ID header packet of an Ogg Opus stream.*/ +struct OpusHead{ + /**The Ogg Opus format version, in the range 0...255. + The top 4 bits represent a "major" version, and the bottom four bits + represent backwards-compatible "minor" revisions. + The current specification describes version 1. + This library will recognize versions up through 15 as backwards compatible + with the current specification. + An earlier draft of the specification described a version 0, but the only + difference between version 1 and version 0 is that version 0 did + not specify the semantics for handling the version field.*/ + int version; + /**The number of channels, in the range 1...255.*/ + int channel_count; + /**The number of samples that should be discarded from the beginning of the + stream.*/ + unsigned pre_skip; + /**The sampling rate of the original input. + All Opus audio is coded at 48 kHz, and should also be decoded at 48 kHz + for playback (unless the target hardware does not support this sampling + rate). + However, this field may be used to resample the audio back to the original + sampling rate, for example, when saving the output to a file.*/ + opus_uint32 input_sample_rate; + /**The gain to apply to the decoded output, in dB, as a Q8 value in the range + -32768...32767. + The libopusfile API will automatically apply this gain to the + decoded output before returning it, scaling it by + pow(10,output_gain/(20.0*256)).*/ + int output_gain; + /**The channel mapping family, in the range 0...255. + Channel mapping family 0 covers mono or stereo in a single stream. + Channel mapping family 1 covers 1 to 8 channels in one or more streams, + using the Vorbis speaker assignments. + Channel mapping family 255 covers 1 to 255 channels in one or more + streams, but without any defined speaker assignment.*/ + int mapping_family; + /**The number of Opus streams in each Ogg packet, in the range 1...255.*/ + int stream_count; + /**The number of coupled Opus streams in each Ogg packet, in the range + 0...127. + This must satisfy 0 <= coupled_count <= stream_count and + coupled_count + stream_count <= 255. + The coupled streams appear first, before all uncoupled streams, in an Ogg + Opus packet.*/ + int coupled_count; + /**The mapping from coded stream channels to output channels. + Let index=mapping[k] be the value for channel k. + If index<2*coupled_count, then it refers to the left channel + from stream (index/2) if even, and the right channel from + stream (index/2) if odd. + Otherwise, it refers to the output of the uncoupled stream + (index-coupled_count).*/ + unsigned char mapping[OPUS_CHANNEL_COUNT_MAX]; +}; + +/**The metadata from an Ogg Opus stream. + + This structure holds the in-stream metadata corresponding to the 'comment' + header packet of an Ogg Opus stream. + The comment header is meant to be used much like someone jotting a quick + note on the label of a CD. + It should be a short, to the point text note that can be more than a couple + words, but not more than a short paragraph. + + The metadata is stored as a series of (tag, value) pairs, in length-encoded + string vectors, using the same format as Vorbis (without the final "framing + bit"), Theora, and Speex, except for the packet header. + The first occurrence of the '=' character delimits the tag and value. + A particular tag may occur more than once, and order is significant. + The character set encoding for the strings is always UTF-8, but the tag + names are limited to ASCII, and treated as case-insensitive. + See the Vorbis + comment header specification for details. + + In filling in this structure, libopusfile will null-terminate the + #user_comments strings for safety. + However, the bitstream format itself treats them as 8-bit clean vectors, + possibly containing NUL characters, so the #comment_lengths array should be + treated as their authoritative length. + + This structure is binary and source-compatible with a + vorbis_comment, and pointers to it may be freely cast to + vorbis_comment pointers, and vice versa. + It is provided as a separate type to avoid introducing a compile-time + dependency on the libvorbis headers.*/ +struct OpusTags{ + /**The array of comment string vectors.*/ + char **user_comments; + /**An array of the corresponding length of each vector, in bytes.*/ + int *comment_lengths; + /**The total number of comment streams.*/ + int comments; + /**The null-terminated vendor string. + This identifies the software used to encode the stream.*/ + char *vendor; +}; + +/**\name Picture tag image formats*/ +/*@{*/ + +/**The MIME type was not recognized, or the image data did not match the + declared MIME type.*/ +#define OP_PIC_FORMAT_UNKNOWN (-1) +/**The MIME type indicates the image data is really a URL.*/ +#define OP_PIC_FORMAT_URL (0) +/**The image is a JPEG.*/ +#define OP_PIC_FORMAT_JPEG (1) +/**The image is a PNG.*/ +#define OP_PIC_FORMAT_PNG (2) +/**The image is a GIF.*/ +#define OP_PIC_FORMAT_GIF (3) + +/*@}*/ + +/**The contents of a METADATA_BLOCK_PICTURE tag.*/ +struct OpusPictureTag{ + /**The picture type according to the ID3v2 APIC frame: +
        +
      1. Other
      2. +
      3. 32x32 pixels 'file icon' (PNG only)
      4. +
      5. Other file icon
      6. +
      7. Cover (front)
      8. +
      9. Cover (back)
      10. +
      11. Leaflet page
      12. +
      13. Media (e.g. label side of CD)
      14. +
      15. Lead artist/lead performer/soloist
      16. +
      17. Artist/performer
      18. +
      19. Conductor
      20. +
      21. Band/Orchestra
      22. +
      23. Composer
      24. +
      25. Lyricist/text writer
      26. +
      27. Recording Location
      28. +
      29. During recording
      30. +
      31. During performance
      32. +
      33. Movie/video screen capture
      34. +
      35. A bright colored fish
      36. +
      37. Illustration
      38. +
      39. Band/artist logotype
      40. +
      41. Publisher/Studio logotype
      42. +
      + Others are reserved and should not be used. + There may only be one each of picture type 1 and 2 in a file.*/ + opus_int32 type; + /**The MIME type of the picture, in printable ASCII characters 0x20-0x7E. + The MIME type may also be "-->" to signify that the data part + is a URL pointing to the picture instead of the picture data itself. + In this case, a terminating NUL is appended to the URL string in #data, + but #data_length is set to the length of the string excluding that + terminating NUL.*/ + char *mime_type; + /**The description of the picture, in UTF-8.*/ + char *description; + /**The width of the picture in pixels.*/ + opus_uint32 width; + /**The height of the picture in pixels.*/ + opus_uint32 height; + /**The color depth of the picture in bits-per-pixel (not + bits-per-channel).*/ + opus_uint32 depth; + /**For indexed-color pictures (e.g., GIF), the number of colors used, or 0 + for non-indexed pictures.*/ + opus_uint32 colors; + /**The length of the picture data in bytes.*/ + opus_uint32 data_length; + /**The binary picture data.*/ + unsigned char *data; + /**The format of the picture data, if known. + One of +
        +
      • #OP_PIC_FORMAT_UNKNOWN,
      • +
      • #OP_PIC_FORMAT_URL,
      • +
      • #OP_PIC_FORMAT_JPEG,
      • +
      • #OP_PIC_FORMAT_PNG,
      • +
      • #OP_PIC_FORMAT_GIF, or
      • +
      .*/ + int format; +}; + +/**\name Functions for manipulating header data + + These functions manipulate the #OpusHead and #OpusTags structures, + which describe the audio parameters and tag-value metadata, respectively. + These can be used to query the headers returned by libopusfile, or + to parse Opus headers from sources other than an Ogg Opus stream, provided + they use the same format.*/ +/*@{*/ + +/**Parses the contents of the ID header packet of an Ogg Opus stream. + \param[out] _head Returns the contents of the parsed packet. + The contents of this structure are untouched on error. + This may be NULL to merely test the header + for validity. + \param[in] _data The contents of the ID header packet. + \param _len The number of bytes of data in the ID header packet. + \return 0 on success or a negative value on error. + \retval #OP_ENOTFORMAT If the data does not start with the "OpusHead" + string. + \retval #OP_EVERSION If the version field signaled a version this library + does not know how to parse. + \retval #OP_EIMPL If the channel mapping family was 255, which general + purpose players should not attempt to play. + \retval #OP_EBADHEADER If the contents of the packet otherwise violate the + Ogg Opus specification: +
        +
      • Insufficient data,
      • +
      • Too much data for the known minor versions,
      • +
      • An unrecognized channel mapping family,
      • +
      • Zero channels or too many channels,
      • +
      • Zero coded streams,
      • +
      • Too many coupled streams, or
      • +
      • An invalid channel mapping index.
      • +
      */ +OP_WARN_UNUSED_RESULT int opus_head_parse(OpusHead *_head, + const unsigned char *_data,size_t _len) OP_ARG_NONNULL(2); + +/**Converts a granule position to a sample offset for a given Ogg Opus stream. + The sample offset is simply _gp-_head->pre_skip. + Granule position values smaller than OpusHead#pre_skip correspond to audio + that should never be played, and thus have no associated sample offset. + This function returns -1 for such values. + This function also correctly handles extremely large granule positions, + which may have wrapped around to a negative number when stored in a signed + ogg_int64_t value. + \param _head The #OpusHead information from the ID header of the stream. + \param _gp The granule position to convert. + \return The sample offset associated with the given granule position + (counting at a 48 kHz sampling rate), or the special value -1 on + error (i.e., the granule position was smaller than the pre-skip + amount).*/ +ogg_int64_t opus_granule_sample(const OpusHead *_head,ogg_int64_t _gp) + OP_ARG_NONNULL(1); + +/**Parses the contents of the 'comment' header packet of an Ogg Opus stream. + \param[out] _tags An uninitialized #OpusTags structure. + This returns the contents of the parsed packet. + The contents of this structure are untouched on error. + This may be NULL to merely test the header + for validity. + \param[in] _data The contents of the 'comment' header packet. + \param _len The number of bytes of data in the 'info' header packet. + \retval 0 Success. + \retval #OP_ENOTFORMAT If the data does not start with the "OpusTags" + string. + \retval #OP_EBADHEADER If the contents of the packet otherwise violate the + Ogg Opus specification. + \retval #OP_EFAULT If there wasn't enough memory to store the tags.*/ +OP_WARN_UNUSED_RESULT int opus_tags_parse(OpusTags *_tags, + const unsigned char *_data,size_t _len) OP_ARG_NONNULL(2); + +/**Initializes an #OpusTags structure. + This should be called on a freshly allocated #OpusTags structure before + attempting to use it. + \param _tags The #OpusTags structure to initialize.*/ +void opus_tags_init(OpusTags *_tags) OP_ARG_NONNULL(1); + +/**Add a (tag, value) pair to an initialized #OpusTags structure. + \note Neither opus_tags_add() nor opus_tags_add_comment() support values + containing embedded NULs, although the bitstream format does support them. + To add such tags, you will need to manipulate the #OpusTags structure + directly. + \param _tags The #OpusTags structure to add the (tag, value) pair to. + \param _tag A NUL-terminated, case-insensitive, ASCII string containing + the tag to add (without an '=' character). + \param _value A NUL-terminated UTF-8 containing the corresponding value. + \return 0 on success, or a negative value on failure. + \retval #OP_EFAULT An internal memory allocation failed.*/ +int opus_tags_add(OpusTags *_tags,const char *_tag,const char *_value) + OP_ARG_NONNULL(1) OP_ARG_NONNULL(2) OP_ARG_NONNULL(3); + +/**Add a comment to an initialized #OpusTags structure. + \note Neither opus_tags_add_comment() nor opus_tags_add() support comments + containing embedded NULs, although the bitstream format does support them. + To add such tags, you will need to manipulate the #OpusTags structure + directly. + \param _tags The #OpusTags structure to add the comment to. + \param _comment A NUL-terminated UTF-8 string containing the comment in + "TAG=value" form. + \return 0 on success, or a negative value on failure. + \retval #OP_EFAULT An internal memory allocation failed.*/ +int opus_tags_add_comment(OpusTags *_tags,const char *_comment) + OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/**Look up a comment value by its tag. + \param _tags An initialized #OpusTags structure. + \param _tag The tag to look up. + \param _count The instance of the tag. + The same tag can appear multiple times, each with a distinct + value, so an index is required to retrieve them all. + The order in which these values appear is significant and + should be preserved. + Use opus_tags_query_count() to get the legal range for the + \a _count parameter. + \return A pointer to the queried tag's value. + This points directly to data in the #OpusTags structure. + It should not be modified or freed by the application, and + modifications to the structure may invalidate the pointer. + \retval NULL If no matching tag is found.*/ +const char *opus_tags_query(const OpusTags *_tags,const char *_tag,int _count) + OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/**Look up the number of instances of a tag. + Call this first when querying for a specific tag and then iterate over the + number of instances with separate calls to opus_tags_query() to retrieve + all the values for that tag in order. + \param _tags An initialized #OpusTags structure. + \param _tag The tag to look up. + \return The number of instances of this particular tag.*/ +int opus_tags_query_count(const OpusTags *_tags,const char *_tag) + OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/**Get the track gain from an R128_TRACK_GAIN tag, if one was specified. + This searches for the first R128_TRACK_GAIN tag with a valid signed, + 16-bit decimal integer value and returns the value. + This routine is exposed merely for convenience for applications which wish + to do something special with the track gain (i.e., display it). + If you simply wish to apply the track gain instead of the header gain, you + can use op_set_gain_offset() with an #OP_TRACK_GAIN type and no offset. + \param _tags An initialized #OpusTags structure. + \param[out] _gain_q8 The track gain, in 1/256ths of a dB. + This will lie in the range [-32768,32767], and should + be applied in addition to the header gain. + On error, no value is returned, and the previous + contents remain unchanged. + \return 0 on success, or a negative value on error. + \retval OP_EFALSE There was no track gain available in the given tags.*/ +int opus_tags_get_track_gain(const OpusTags *_tags,int *_gain_q8) + OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/**Clears the #OpusTags structure. + This should be called on an #OpusTags structure after it is no longer + needed. + It will free all memory used by the structure members. + \param _tags The #OpusTags structure to clear.*/ +void opus_tags_clear(OpusTags *_tags) OP_ARG_NONNULL(1); + +/**Parse a single METADATA_BLOCK_PICTURE tag. + This decodes the BASE64-encoded content of the tag and returns a structure + with the MIME type, description, image parameters (if known), and the + compressed image data. + If the MIME type indicates the presence of an image format we recognize + (JPEG, PNG, or GIF) and the actual image data contains the magic signature + associated with that format, then the OpusPictureTag::format field will be + set to the corresponding format. + This is provided as a convenience to avoid requiring applications to parse + the MIME type and/or do their own format detection for the commonly used + formats. + In this case, we also attempt to extract the image parameters directly from + the image data (overriding any that were present in the tag, which the + specification says applications are not meant to rely on). + The application must still provide its own support for actually decoding the + image data and, if applicable, retrieving that data from URLs. + \param[out] _pic Returns the parsed picture data. + No sanitation is done on the type, MIME type, or + description fields, so these might return invalid values. + The contents of this structure are left unmodified on + failure. + \param _tag The METADATA_BLOCK_PICTURE tag contents. + The leading "METADATA_BLOCK_PICTURE=" portion is optional, + to allow the function to be used on either directly on the + values in OpusTags::user_comments or on the return value + of opus_tags_query(). + \return 0 on success or a negative value on error. + \retval #OP_ENOTFORMAT The METADATA_BLOCK_PICTURE contents were not valid. + \retval #OP_EFAULT A memory allocation failed.*/ +int opus_picture_tag_parse(OpusPictureTag *_pic,const char *_tag) + OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/**Initializes an #OpusPictureTag structure. + This should be called on a freshly allocated #OpusPictureTag structure + before attempting to use it. + \param _pic The #OpusPictureTag structure to initialize.*/ +void opus_picture_tag_init(OpusPictureTag *_pic) OP_ARG_NONNULL(1); + +/**Clears the #OpusPictureTag structure. + This should be called on an #OpusPictureTag structure after it is no longer + needed. + It will free all memory used by the structure members. + \param _pic The #OpusPictureTag structure to clear.*/ +void opus_picture_tag_clear(OpusPictureTag *_pic) OP_ARG_NONNULL(1); + +/*@}*/ + +/*@}*/ + +/**\defgroup url_options URL Reading Options*/ +/*@{*/ +/**\name URL reading options + Options for op_url_stream_create() and associated functions. + These allow you to provide proxy configuration parameters, skip SSL + certificate checks, etc. + Options are processed in order, and if the same option is passed multiple + times, only the value specified by the last occurrence has an effect + (unless otherwise specified). + They may be expanded in the future.*/ +/*@{*/ + +/*These are the raw numbers used to define the request codes. + They should not be used directly.*/ +#define OP_SSL_SKIP_CERTIFICATE_CHECK_REQUEST (6464) +#define OP_HTTP_PROXY_HOST_REQUEST (6528) +#define OP_HTTP_PROXY_PORT_REQUEST (6592) +#define OP_HTTP_PROXY_USER_REQUEST (6656) +#define OP_HTTP_PROXY_PASS_REQUEST (6720) + +#define OP_URL_OPT(_request) ((_request)+(char *)0) + +/*These macros trigger compilation errors or warnings if the wrong types are + provided to one of the URL options.*/ +#define OP_CHECK_INT(_x) ((void)((_x)==(opus_int32)0),(opus_int32)(_x)) +#define OP_CHECK_CONST_CHAR_PTR(_x) ((_x)+((_x)-(const char *)(_x))) + +/**Skip the certificate check when connecting via TLS/SSL (https). + \param _b opus_int32: Whether or not to skip the certificate + check. + The check will be skipped if \a _b is non-zero, and will not be + skipped if \a _b is zero. + \hideinitializer*/ +#define OP_SSL_SKIP_CERTIFICATE_CHECK(_b) \ + OP_URL_OPT(OP_SSL_SKIP_CERTIFICATE_CHECK_REQUEST),OP_CHECK_INT(_b) + +/**Proxy connections through the given host. + If no port is specified via #OP_HTTP_PROXY_PORT, the port number defaults + to 8080 (http-alt). + All proxy parameters are ignored for non-http and non-https URLs. + \param _host const char *: The proxy server hostname. + This may be NULL to disable the use of a proxy + server. + \hideinitializer*/ +#define OP_HTTP_PROXY_HOST(_host) \ + OP_URL_OPT(OP_HTTP_PROXY_HOST_REQUEST),OP_CHECK_CONST_CHAR_PTR(_host) + +/**Use the given port when proxying connections. + This option only has an effect if #OP_HTTP_PROXY_HOST is specified with a + non-NULL \a _host. + If this option is not provided, the proxy port number defaults to 8080 + (http-alt). + All proxy parameters are ignored for non-http and non-https URLs. + \param _port opus_int32: The proxy server port. + This must be in the range 0...65535 (inclusive), or the + URL function this is passed to will fail. + \hideinitializer*/ +#define OP_HTTP_PROXY_PORT(_port) \ + OP_URL_OPT(OP_HTTP_PROXY_PORT_REQUEST),OP_CHECK_INT(_port) + +/**Use the given user name for authentication when proxying connections. + All proxy parameters are ignored for non-http and non-https URLs. + \param _user const char *: The proxy server user name. + This may be NULL to disable proxy + authentication. + A non-NULL value only has an effect + if #OP_HTTP_PROXY_HOST and #OP_HTTP_PROXY_PASS + are also specified with non-NULL + arguments. + \hideinitializer*/ +#define OP_HTTP_PROXY_USER(_user) \ + OP_URL_OPT(OP_HTTP_PROXY_USER_REQUEST),OP_CHECK_CONST_CHAR_PTR(_host) + +/**Use the given password for authentication when proxying connections. + All proxy parameters are ignored for non-http and non-https URLs. + \param _pass const char *: The proxy server password. + This may be NULL to disable proxy + authentication. + A non-NULL value only has an effect + if #OP_HTTP_PROXY_HOST and #OP_HTTP_PROXY_USER + are also specified with non-NULL + arguments. + \hideinitializer*/ +#define OP_HTTP_PROXY_PASS(_pass) \ + OP_URL_OPT(OP_HTTP_PROXY_PASS_REQUEST),OP_CHECK_CONST_CHAR_PTR(_host) + +/*@}*/ +/*@}*/ + +/**\defgroup stream_callbacks Abstract Stream Reading Interface*/ +/*@{*/ +/**\name Functions for reading from streams + These functions define the interface used to read from and seek in a stream + of data. + A stream does not need to implement seeking, but the decoder will not be + able to seek if it does not do so. + These functions also include some convenience routines for working with + standard FILE pointers, complete streams stored in a single + block of memory, or URLs.*/ +/*@{*/ + +typedef struct OpusFileCallbacks OpusFileCallbacks; + +/**Reads up to \a _nbytes bytes of data from \a _stream. + \param _stream The stream to read from. + \param[out] _ptr The buffer to store the data in. + \param _nbytes The maximum number of bytes to read. + This function may return fewer, though it will not + return zero unless it reaches end-of-file. + \return The number of bytes successfully read, or a negative value on + error.*/ +typedef int (*op_read_func)(void *_stream,unsigned char *_ptr,int _nbytes); + +/**Sets the position indicator for \a _stream. + The new position, measured in bytes, is obtained by adding \a _offset + bytes to the position specified by \a _whence. + If \a _whence is set to SEEK_SET, SEEK_CUR, or + SEEK_END, the offset is relative to the start of the stream, + the current position indicator, or end-of-file, respectively. + \retval 0 Success. + \retval -1 Seeking is not supported or an error occurred. + errno need not be set.*/ +typedef int (*op_seek_func)(void *_stream,opus_int64 _offset,int _whence); + +/**Obtains the current value of the position indicator for \a _stream. + \return The current position indicator.*/ +typedef opus_int64 (*op_tell_func)(void *_stream); + +/**Closes the underlying stream. + \retval 0 Success. + \retval EOF An error occurred. + errno need not be set.*/ +typedef int (*op_close_func)(void *_stream); + +/**The callbacks used to access non-FILE stream resources. + The function prototypes are basically the same as for the stdio functions + fread(), fseek(), ftell(), and + fclose(). + The differences are that the FILE * arguments have been + replaced with a void *, which is to be used as a pointer to + whatever internal data these functions might need, that #seek and #tell + take and return 64-bit offsets, and that #seek must return -1 if + the stream is unseekable.*/ +struct OpusFileCallbacks{ + /**Used to read data from the stream. + This must not be NULL.*/ + op_read_func read; + /**Used to seek in the stream. + This may be NULL if seeking is not implemented.*/ + op_seek_func seek; + /**Used to return the current read position in the stream. + This may be NULL if seeking is not implemented.*/ + op_tell_func tell; + /**Used to close the stream when the decoder is freed. + This may be NULL to leave the stream open.*/ + op_close_func close; +}; + +/**Opens a stream with fopen() and fills in a set of callbacks + that can be used to access it. + This is useful to avoid writing your own portable 64-bit seeking wrappers, + and also avoids cross-module linking issues on Windows, where a + FILE * must be accessed by routines defined in the same module + that opened it. + \param[out] _cb The callbacks to use for this file. + If there is an error opening the file, nothing will be + filled in here. + \param _path The path to the file to open. + On Windows, this string must be UTF-8 (to allow access to + files whose names cannot be represented in the current + MBCS code page). + All other systems use the native character encoding. + \param _mode The mode to open the file in. + \return A stream handle to use with the callbacks, or NULL on + error.*/ +OP_WARN_UNUSED_RESULT void *op_fopen(OpusFileCallbacks *_cb, + const char *_path,const char *_mode) OP_ARG_NONNULL(1) OP_ARG_NONNULL(2) + OP_ARG_NONNULL(3); + +/**Opens a stream with fdopen() and fills in a set of callbacks + that can be used to access it. + This is useful to avoid writing your own portable 64-bit seeking wrappers, + and also avoids cross-module linking issues on Windows, where a + FILE * must be accessed by routines defined in the same module + that opened it. + \param[out] _cb The callbacks to use for this file. + If there is an error opening the file, nothing will be + filled in here. + \param _fd The file descriptor to open. + \param _mode The mode to open the file in. + \return A stream handle to use with the callbacks, or NULL on + error.*/ +OP_WARN_UNUSED_RESULT void *op_fdopen(OpusFileCallbacks *_cb, + int _fd,const char *_mode) OP_ARG_NONNULL(1) OP_ARG_NONNULL(3); + +/**Opens a stream with freopen() and fills in a set of callbacks + that can be used to access it. + This is useful to avoid writing your own portable 64-bit seeking wrappers, + and also avoids cross-module linking issues on Windows, where a + FILE * must be accessed by routines defined in the same module + that opened it. + \param[out] _cb The callbacks to use for this file. + If there is an error opening the file, nothing will be + filled in here. + \param _path The path to the file to open. + On Windows, this string must be UTF-8 (to allow access + to files whose names cannot be represented in the + current MBCS code page). + All other systems use the native character encoding. + \param _mode The mode to open the file in. + \param _stream A stream previously returned by op_fopen(), op_fdopen(), + or op_freopen(). + \return A stream handle to use with the callbacks, or NULL on + error.*/ +OP_WARN_UNUSED_RESULT void *op_freopen(OpusFileCallbacks *_cb, + const char *_path,const char *_mode,void *_stream) OP_ARG_NONNULL(1) + OP_ARG_NONNULL(2) OP_ARG_NONNULL(3) OP_ARG_NONNULL(4); + +/**Creates a stream that reads from the given block of memory. + This block of memory must contain the complete stream to decode. + This is useful for caching small streams (e.g., sound effects) in RAM. + \param[out] _cb The callbacks to use for this stream. + If there is an error creating the stream, nothing will be + filled in here. + \param _data The block of memory to read from. + \param _size The size of the block of memory. + \return A stream handle to use with the callbacks, or NULL on + error.*/ +OP_WARN_UNUSED_RESULT void *op_mem_stream_create(OpusFileCallbacks *_cb, + const unsigned char *_data,size_t _size) OP_ARG_NONNULL(1); + +/**Creates a stream that reads from the given URL. + This function behaves identically to op_url_stream_create(), except that it + takes a va_list instead of a variable number of arguments. + It does not call the va_end macro, and because it invokes the + va_arg macro, the value of \a _ap is undefined after the call. + \param[out] _cb The callbacks to use for this stream. + If there is an error creating the stream, nothing will + be filled in here. + \param _url The URL to read from. + Currently only the , , and + schemes are supported. + Both and may be disabled at compile + time, in which case opening such URLs will always fail. + \param[in,out] _ap A list of the \ref url_options "optional flags" to use. + This is a variable-length list of options terminated + with NULL. + \return A stream handle to use with the callbacks, or NULL on + error.*/ +OP_WARN_UNUSED_RESULT void *op_url_stream_vcreate(OpusFileCallbacks *_cb, + const char *_url,va_list _ap) OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/**Creates a stream that reads from the given URL using the specified proxy. + \param[out] _cb The callbacks to use for this stream. + If there is an error creating the stream, nothing will be + filled in here. + \param _url The URL to read from. + Currently only the , , and schemes + are supported. + Both and may be disabled at compile time, + in which case opening such URLs will always fail. + \param ... The \ref url_options "optional flags" to use. + This is a variable-length list of options terminated with + NULL. + \return A stream handle to use with the callbacks, or NULL on + error.*/ +OP_WARN_UNUSED_RESULT void *op_url_stream_create(OpusFileCallbacks *_cb, + const char *_url,...) OP_ARG_NONNULL(1) OP_ARG_NONNULL(2); + +/*@}*/ +/*@}*/ + +/**\defgroup stream_open_close Opening and Closing*/ +/*@{*/ +/**\name Functions for opening and closing streams + + These functions allow you to test a stream to see if it is Opus, open it, + and close it. + Several flavors are provided for each of the built-in stream types, plus a + more general version which takes a set of application-provided callbacks.*/ +/*@{*/ + +/**Test to see if this is an Opus stream. + For good results, you will need at least 57 bytes (for a pure Opus-only + stream). + Something like 512 bytes will give more reliable results for multiplexed + streams. + This function is meant to be a quick-rejection filter. + Its purpose is not to guarantee that a stream is a valid Opus stream, but to + ensure that it looks enough like Opus that it isn't going to be recognized + as some other format (except possibly an Opus stream that is also + multiplexed with other codecs, such as video). + \param[out] _head The parsed ID header contents. + You may pass NULL if you do not need + this information. + If the function fails, the contents of this structure + remain untouched. + \param _initial_data An initial buffer of data from the start of the + stream. + \param _initial_bytes The number of bytes in \a _initial_data. + \return 0 if the data appears to be Opus, or a negative value on error. + \retval #OP_FALSE There was not enough data to tell if this was an Opus + stream or not. + \retval #OP_EFAULT An internal memory allocation failed. + \retval #OP_EIMPL The stream used a feature that is not implemented, + such as an unsupported channel family. + \retval #OP_ENOTFORMAT If the data did not contain a recognizable ID + header for an Opus stream. + \retval #OP_EVERSION If the version field signaled a version this library + does not know how to parse. + \retval #OP_EBADHEADER The ID header was not properly formatted or contained + illegal values.*/ +int op_test(OpusHead *_head, + const unsigned char *_initial_data,size_t _initial_bytes); + +/**Open a stream from the given file path. + \param _path The path to the file to open. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want the + failure code. + The failure code will be #OP_EFAULT if the file could not + be opened, or one of the other failure codes from + op_open_callbacks() otherwise. + \return A freshly opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_open_file(const char *_path,int *_error) + OP_ARG_NONNULL(1); + +/**Open a stream from a memory buffer. + \param _data The memory buffer to open. + \param _size The number of bytes in the buffer. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want the + failure code. + See op_open_callbacks() for a full list of failure codes. + \return A freshly opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_open_memory(const unsigned char *_data, + size_t _size,int *_error); + +/**Open a stream from a URL. + This function behaves identically to op_open_url(), except that it + takes a va_list instead of a variable number of arguments. + It does not call the va_end macro, and because it invokes the + va_arg macro, the value of \a _ap is undefined after the call. + \param _url The URL to open. + Currently only the , , and + schemes are supported. + Both and may be disabled at compile + time, in which case opening such URLs will always + fail. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want + the failure code. + See op_open_callbacks() for a full list of failure + codes. + \param[in,out] _ap A list of the \ref url_options "optional flags" to + use. + This is a variable-length list of options terminated + with NULL. + \return A freshly opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_vopen_url(const char *_url, + int *_error,va_list _ap) OP_ARG_NONNULL(1); + +/**Open a stream from a URL. + However, this approach will not work for live streams or HTTP/1.0 servers + (which do not support Range requets). + \param _url The URL to open. + Currently only the , , and schemes + are supported. + Both and may be disabled at compile + time, in which case opening such URLs will always fail. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want the + failure code. + See op_open_callbacks() for a full list of failure codes. + \param ... The \ref url_options "optional flags" to use. + This is a variable-length list of options terminated with + NULL. + \return A freshly opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_open_url(const char *_url, + int *_error,...) OP_ARG_NONNULL(1); + +/**Open a stream using the given set of callbacks to access it. + \param _source The stream to read from (e.g., a FILE *). + \param _cb The callbacks with which to access the stream. + read() must + be implemented. + seek() and + tell() may + be NULL, or may always return -1 to + indicate a source is unseekable, but if + seek() is + implemented and succeeds on a particular source, then + tell() must + also. + close() may + be NULL, but if it is not, it will be + called when the \c OggOpusFile is destroyed by + op_free(). + It will not be called if op_open_callbacks() fails + with an error. + \param _initial_data An initial buffer of data from the start of the + stream. + Applications can read some number of bytes from the + start of the stream to help identify this as an Opus + stream, and then provide them here to allow the + stream to be opened, even if it is unseekable. + \param _initial_bytes The number of bytes in \a _initial_data. + If the stream is seekable, its current position (as + reported by + tell() + at the start of this function) must be equal to + \a _initial_bytes. + Otherwise, seeking to absolute positions will + generate inconsistent results. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want + the failure code. + The failure code will be one of +
      +
      #OP_EREAD
      +
      An underlying read, seek, or tell operation + failed when it should have succeeded, or we failed + to find data in the stream we had seen before.
      +
      #OP_EFAULT
      +
      There was a memory allocation failure, or an + internal library error.
      +
      #OP_EIMPL
      +
      The stream used a feature that is not + implemented, such as an unsupported channel + family.
      +
      #OP_EINVAL
      +
      seek() + was implemented and succeeded on this source, but + tell() + did not, or the starting position indicator was + not equal to \a _initial_bytes.
      +
      #OP_ENOTFORMAT
      +
      The stream contained a link that did not have + any logical Opus streams in it.
      +
      #OP_EBADHEADER
      +
      A required header packet was not properly + formatted, contained illegal values, or was missing + altogether.
      +
      #OP_EVERSION
      +
      An ID header contained an unrecognized version + number.
      +
      #OP_EBADLINK
      +
      We failed to find data we had seen before after + seeking.
      +
      #OP_EBADTIMESTAMP
      +
      The first or last timestamp in a link failed + basic validity checks.
      +
      + \return A freshly opened \c OggOpusFile, or NULL on error. + libopusfile does not take ownership of the source + if the call fails. + The calling application is responsible for closing the source if + this call returns an error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_open_callbacks(void *_source, + const OpusFileCallbacks *_cb,const unsigned char *_initial_data, + size_t _initial_bytes,int *_error) OP_ARG_NONNULL(2); + +/**Partially open a stream from the given file path. + \see op_test_callbacks + \param _path The path to the file to open. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want the + failure code. + The failure code will be #OP_EFAULT if the file could not + be opened, or one of the other failure codes from + op_open_callbacks() otherwise. + \return A partially opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_test_file(const char *_path,int *_error) + OP_ARG_NONNULL(1); + +/**Partially open a stream from a memory buffer. + \see op_test_callbacks + \param _data The memory buffer to open. + \param _size The number of bytes in the buffer. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want the + failure code. + See op_open_callbacks() for a full list of failure codes. + \return A partially opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_test_memory(const unsigned char *_data, + size_t _size,int *_error); + +/**Partially open a stream from a URL. + This function behaves identically to op_test_url(), except that it + takes a va_list instead of a variable number of arguments. + It does not call the va_end macro, and because it invokes the + va_arg macro, the value of \a _ap is undefined after the call. + \see op_test_url + \see op_test_callbacks + \param _url The URL to open. + Currently only the , , and + schemes are supported. + Both and may be disabled at compile + time, in which case opening such URLs will always + fail. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want + the failure code. + See op_open_callbacks() for a full list of failure + codes. + \param[in,out] _ap A list of the \ref url_options "optional flags" to + use. + This is a variable-length list of options terminated + with NULL. + \return A partially opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_vtest_url(const char *_url, + int *_error,va_list _ap) OP_ARG_NONNULL(1); + +/**Partially open a stream from a URL. + \see op_test_callbacks + \param _url The URL to open. + Currently only the , , and + schemes are supported. + Both and may be disabled at compile + time, in which case opening such URLs will always fail. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want the + failure code. + See op_open_callbacks() for a full list of failure + codes. + \param ... The \ref url_options "optional flags" to use. + This is a variable-length list of options terminated + with NULL. + \return A partially opened \c OggOpusFile, or NULL on error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_test_url(const char *_url, + int *_error,...) OP_ARG_NONNULL(1); + +/**Partially open a stream using the given set of callbacks to access it. + This tests for Opusness and loads the headers for the first link. + It does not seek (although it tests for seekability). + You can query a partially open stream for the few pieces of basic + information returned by op_serialno(), op_channel_count(), op_head(), and + op_tags() (but only for the first link). + You may also determine if it is seekable via a call to op_seekable(). + You cannot read audio from the stream, seek, get the size or duration, + get information from links other than the first one, or even get the total + number of links until you finish opening the stream with op_test_open(). + If you do not need to do any of these things, you can dispose of it with + op_free() instead. + + This function is provided mostly to simplify porting existing code that used + libvorbisfile. + For new code, you are likely better off using op_test() instead, which + is less resource-intensive, requires less data to succeed, and imposes a + hard limit on the amount of data it examines (important for unseekable + sources, where all such data must be buffered until you are sure of the + stream type). + \param _source The stream to read from (e.g., a FILE *). + \param _cb The callbacks with which to access the stream. + read() must + be implemented. + seek() and + tell() may + be NULL, or may always return -1 to + indicate a source is unseekable, but if + seek() is + implemented and succeeds on a particular source, then + tell() must + also. + close() may + be NULL, but if it is not, it will be + called when the \c OggOpusFile is destroyed by + op_free(). + It will not be called if op_open_callbacks() fails + with an error. + \param _initial_data An initial buffer of data from the start of the + stream. + Applications can read some number of bytes from the + start of the stream to help identify this as an Opus + stream, and then provide them here to allow the + stream to be tested more thoroughly, even if it is + unseekable. + \param _initial_bytes The number of bytes in \a _initial_data. + If the stream is seekable, its current position (as + reported by + tell() + at the start of this function) must be equal to + \a _initial_bytes. + Otherwise, seeking to absolute positions will + generate inconsistent results. + \param[out] _error Returns 0 on success, or a failure code on error. + You may pass in NULL if you don't want + the failure code. + See op_open_callbacks() for a full list of failure + codes. + \return A partially opened \c OggOpusFile, or NULL on error. + libopusfile does not take ownership of the source + if the call fails. + The calling application is responsible for closing the source if + this call returns an error.*/ +OP_WARN_UNUSED_RESULT OggOpusFile *op_test_callbacks(void *_source, + const OpusFileCallbacks *_cb,const unsigned char *_initial_data, + size_t _initial_bytes,int *_error) OP_ARG_NONNULL(2); + +/**Finish opening a stream partially opened with op_test_callbacks() or one of + the associated convenience functions. + If this function fails, you are still responsible for freeing the + \c OggOpusFile with op_free(). + \param _of The \c OggOpusFile to finish opening. + \return 0 on success, or a negative value on error. + \retval #OP_EREAD An underlying read, seek, or tell operation failed + when it should have succeeded. + \retval #OP_EFAULT There was a memory allocation failure, or an + internal library error. + \retval #OP_EIMPL The stream used a feature that is not implemented, + such as an unsupported channel family. + \retval #OP_EINVAL The stream was not partially opened with + op_test_callbacks() or one of the associated + convenience functions. + \retval #OP_ENOTFORMAT The stream contained a link that did not have any + logical Opus streams in it. + \retval #OP_EBADHEADER A required header packet was not properly + formatted, contained illegal values, or was + missing altogether. + \retval #OP_EVERSION An ID header contained an unrecognized version + number. + \retval #OP_EBADLINK We failed to find data we had seen before after + seeking. + \retval #OP_EBADTIMESTAMP The first or last timestamp in a link failed basic + validity checks.*/ +int op_test_open(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/**Release all memory used by an \c OggOpusFile. + \param _of The \c OggOpusFile to free.*/ +void op_free(OggOpusFile *_of); + +/*@}*/ +/*@}*/ + +/**\defgroup stream_info Stream Information*/ +/*@{*/ +/**\name Functions for obtaining information about streams + + These functions allow you to get basic information about a stream, including + seekability, the number of links (for chained streams), plus the size, + duration, bitrate, header parameters, and meta information for each link + (or, where available, the stream as a whole). + Some of these (size, duration) are only available for seekable streams. + You can also query the current stream position, link, and playback time, + and instantaneous bitrate during playback. + + Some of these functions may be used successfully on the partially open + streams returned by op_test_callbacks() or one of the associated + convenience functions. + Their documention will indicate so explicitly.*/ +/*@{*/ + +/**Returns whether or not the data source being read is seekable. + This is true if +
        +
      1. The seek() and + tell() callbacks are both + non-NULL,
      2. +
      3. The seek() callback was + successfully executed at least once, and
      4. +
      5. The tell() callback was + successfully able to report the position indicator afterwards.
      6. +
      + This function may be called on partially-opened streams. + \param _of The \c OggOpusFile whose seekable status is to be returned. + \return A non-zero value if seekable, and 0 if unseekable.*/ +int op_seekable(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/**Returns the number of links in this chained stream. + This function may be called on partially-opened streams, but it will always + return 1. + The actual number of links is not known until the stream is fully opened. + \param _of The \c OggOpusFile from which to retrieve the link count. + \return For fully-open seekable sources, this returns the total number of + links in the whole stream. + For partially-open or unseekable sources, this always returns 1.*/ +int op_link_count(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/**Get the serial number of the given link in a (possibly-chained) Ogg Opus + stream. + This function may be called on partially-opened streams, but it will always + return the serial number of the Opus stream in the first link. + \param _of The \c OggOpusFile from which to retrieve the serial number. + \param _li The index of the link whose serial number should be retrieved. + Use a negative number to get the serial number of the current + link. + \return The serial number of the given link. + If \a _li is greater than the total number of links, this returns + the serial number of the last link. + If the source is not seekable, this always returns the serial number + of the current link.*/ +opus_uint32 op_serialno(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Get the channel count of the given link in a (possibly-chained) Ogg Opus + stream. + This is equivalent to op_head(_of,_li)->channel_count, but + is provided for convenience. + This function may be called on partially-opened streams, but it will always + return the channel count of the Opus stream in the first link. + \param _of The \c OggOpusFile from which to retrieve the channel count. + \param _li The index of the link whose channel count should be retrieved. + Use a negative number to get the channel count of the current + link. + \return The channel count of the given link. + If \a _li is greater than the total number of links, this returns + the channel count of the last link. + If the source is not seekable, this always returns the channel count + of the current link.*/ +int op_channel_count(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Get the total (compressed) size of the stream, or of an individual link in + a (possibly-chained) Ogg Opus stream, including all headers and Ogg muxing + overhead. + \param _of The \c OggOpusFile from which to retrieve the compressed size. + \param _li The index of the link whose compressed size should be computed. + Use a negative number to get the compressed size of the entire + stream. + \return The compressed size of the entire stream if \a _li is negative, the + compressed size of link \a _li if it is non-negative, or a negative + value on error. + The compressed size of the entire stream may be smaller than that + of the underlying source if trailing garbage was detected in the + file. + \retval #OP_EINVAL The source is not seekable (so we can't know the length), + \a _li wasn't less than the total number of links in + the stream, or the stream was only partially open.*/ +opus_int64 op_raw_total(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Get the total PCM length (number of samples at 48 kHz) of the stream, or of + an individual link in a (possibly-chained) Ogg Opus stream. + Users looking for op_time_total() should use op_pcm_total() + instead. + Because timestamps in Opus are fixed at 48 kHz, there is no need for a + separate function to convert this to seconds (and leaving it out avoids + introducing floating point to the API, for those that wish to avoid it). + \param _of The \c OggOpusFile from which to retrieve the PCM offset. + \param _li The index of the link whose PCM length should be computed. + Use a negative number to get the PCM length of the entire stream. + \return The PCM length of the entire stream if \a _li is negative, the PCM + length of link \a _li if it is non-negative, or a negative value on + error. + \retval #OP_EINVAL The source is not seekable (so we can't know the length), + \a _li wasn't less than the total number of links in + the stream, or the stream was only partially open.*/ +ogg_int64_t op_pcm_total(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Get the ID header information for the given link in a (possibly chained) Ogg + Opus stream. + This function may be called on partially-opened streams, but it will always + return the ID header information of the Opus stream in the first link. + \param _of The \c OggOpusFile from which to retrieve the ID header + information. + \param _li The index of the link whose ID header information should be + retrieved. + Use a negative number to get the ID header information of the + current link. + For an unseekable stream, \a _li is ignored, and the ID header + information for the current link is always returned, if + available. + \return The contents of the ID header for the given link.*/ +const OpusHead *op_head(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Get the comment header information for the given link in a (possibly + chained) Ogg Opus stream. + This function may be called on partially-opened streams, but it will always + return the tags from the Opus stream in the first link. + \param _of The \c OggOpusFile from which to retrieve the comment header + information. + \param _li The index of the link whose comment header information should be + retrieved. + Use a negative number to get the comment header information of + the current link. + For an unseekable stream, \a _li is ignored, and the comment + header information for the current link is always returned, if + available. + \return The contents of the comment header for the given link, or + NULL if this is an unseekable stream that encountered + an invalid link.*/ +const OpusTags *op_tags(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Retrieve the index of the current link. + This is the link that produced the data most recently read by + op_read_float() or its associated functions, or, after a seek, the link + that the seek target landed in. + Reading more data may advance the link index (even on the first read after a + seek). + \param _of The \c OggOpusFile from which to retrieve the current link index. + \return The index of the current link on success, or a negative value on + failure. + For seekable streams, this is a number between 0 and the value + returned by op_link_count(). + For unseekable streams, this value starts at 0 and increments by one + each time a new link is encountered (even though op_link_count() + always returns 1). + \retval #OP_EINVAL The stream was only partially open.*/ +int op_current_link(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/**Computes the bitrate for a given link in a (possibly chained) Ogg Opus + stream. + The stream must be seekable to compute the bitrate. + For unseekable streams, use op_bitrate_instant() to get periodic estimates. + \param _of The \c OggOpusFile from which to retrieve the bitrate. + \param _li The index of the link whose bitrate should be computed. + USe a negative number to get the bitrate of the whole stream. + \return The bitrate on success, or a negative value on error. + \retval #OP_EINVAL The stream was only partially open, the stream was not + seekable, or \a _li was larger than the number of + links.*/ +opus_int32 op_bitrate(OggOpusFile *_of,int _li) OP_ARG_NONNULL(1); + +/**Compute the instantaneous bitrate, measured as the ratio of bits to playable + samples decoded since a) the last call to op_bitrate_instant(), b) the last + seek, or c) the start of playback, whichever was most recent. + This will spike somewhat after a seek or at the start/end of a chain + boundary, as pre-skip, pre-roll, and end-trimming causes samples to be + decoded but not played. + \param _of The \c OggOpusFile from which to retrieve the bitrate. + \return The bitrate, in bits per second, or a negative value on error. + \retval #OP_FALSE No data has been decoded since any of the events + described above. + \retval #OP_EINVAL The stream was only partially open.*/ +opus_int32 op_bitrate_instant(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/**Obtain the current value of the position indicator for \a _of. + \param _of The \c OggOpusFile from which to retrieve the position indicator. + \return The byte position that is currently being read from. + \retval #OP_EINVAL The stream was only partially open.*/ +opus_int64 op_raw_tell(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/**Obtain the PCM offset of the next sample to be read. + If the stream is not properly timestamped, this might not increment by the + proper amount between reads, or even return monotonically increasing + values. + \param _of The \c OggOpusFile from which to retrieve the PCM offset. + \return The PCM offset of the next sample to be read. + \retval #OP_EINVAL The stream was only partially open.*/ +ogg_int64_t op_pcm_tell(OggOpusFile *_of) OP_ARG_NONNULL(1); + +/*@}*/ +/*@}*/ + +/**\defgroup stream_seeking Seeking*/ +/*@{*/ +/**\name Functions for seeking in Opus streams + + These functions let you seek in Opus streams, if the underlying source + support it. + Seeking is implemented for all built-in stream I/O routines, though some + individual sources may not be seekable (pipes, live HTTP streams, or HTTP + streams from a server that does not support Range requests). + + op_raw_seek() is the fastest: it is guaranteed to perform at most one + physical seek, but, since the target is a byte position, makes no guarantee + how close to a given time it will come. + op_pcm_seek() provides sample-accurate seeking. + The number of physical seeks it requires is still quite small (often 1 or + 2, even in highly variable bitrate streams). + + Seeking in Opus requires decoding some pre-roll amount before playback to + allow the internal state to converge (as if recovering from packet loss). + This is handled internally by libopusfile, but means there is + little extra overhead for decoding up to the exact position requested + (since it must decode some amount of audio anyway). + It also means that decoding after seeking may not return exactly the same + values as would be obtained by decoding the stream straight through. + However, such differences are expected to be smaller than the loss + introduced by Opus's lossy compression.*/ +/*@{*/ + +/**Seek to a byte offset relative to the compressed data. + This also scans packets to update the PCM cursor. + It will cross a logical bitstream boundary, but only if it can't get any + packets out of the tail of the link to which it seeks. + \param _of The \c OggOpusFile in which to seek. + \param _byte_offset The byte position to seek to. + \return 0 on success, or a negative error code on failure. + \retval #OP_EREAD The underlying seek operation failed. + \retval #OP_EINVAL The stream was only partially open, or the target was + outside the valid range for the stream. + \retval #OP_ENOSEEK This stream is not seekable. + \retval #OP_EBADLINK Failed to initialize a decoder for a stream for an + unknown reason.*/ +int op_raw_seek(OggOpusFile *_of,opus_int64 _byte_offset) OP_ARG_NONNULL(1); + +/**Seek to the specified PCM offset, such that decoding will begin at exactly + the requested position. + \param _of The \c OggOpusFile in which to seek. + \param _pcm_offset The PCM offset to seek to. + This is in samples at 48 kHz relative to the start of the + stream. + \return 0 on success, or a negative value on error. + \retval #OP_EREAD An underlying read or seek operation failed. + \retval #OP_EINVAL The stream was only partially open, or the target was + outside the valid range for the stream. + \retval #OP_ENOSEEK This stream is not seekable. + \retval #OP_EBADLINK We failed to find data we had seen before, or the + bitstream structure was sufficiently malformed that + seeking to the target destination was impossible.*/ +int op_pcm_seek(OggOpusFile *_of,ogg_int64_t _pcm_offset) OP_ARG_NONNULL(1); + +/*@}*/ +/*@}*/ + +/**\defgroup stream_decoding Decoding*/ +/*@{*/ +/**\name Functions for decoding audio data + + These functions retrieve actual decoded audio data from the stream. + The general functions, op_read() and op_read_float() return 16-bit or + floating-point output, both using native endian ordering. + The number of channels returned can change from link to link in a chained + stream. + There are special functions, op_read_stereo() and op_read_float_stereo(), + which always output two channels, to simplify applications which do not + wish to handle multichannel audio. + These downmix multichannel files to two channels, so they can always return + samples in the same format for every link in a chained file. + + If the rest of your audio processing chain can handle floating point, those + routines should be preferred, as floating point output avoids introducing + clipping and other issues which might be avoided entirely if, e.g., you + scale down the volume at some other stage. + However, if you intend to direct consume 16-bit samples, the conversion in + libopusfile provides noise-shaping dithering and, if compiled + against libopus 1.1 or later, soft-clipping prevention. + + libopusfile can also be configured at compile time to use the + fixed-point libopus API. + If so, libopusfile's floating-point API may also be disabled. + In that configuration, nothing in libopusfile will use any + floating-point operations, to simplify support on devices without an + adequate FPU. + + \warning HTTPS streams may be be vulnerable to truncation attacks if you do + not check the error return code from op_read_float() or its associated + functions. + If the remote peer does not close the connection gracefully (with a TLS + "close notify" message), these functions will return OP_EREAD instead of 0 + when they reach the end of the file. + If you are reading from an URL (particularly if seeking is not + supported), you should make sure to check for this error and warn the user + appropriately.*/ +/*@{*/ + +/**Gain offset type that indicates that the provided offset is relative to the + header gain. + This is the default.*/ +#define OP_HEADER_GAIN (0) + +/**Gain offset type that indicates that the provided offset is relative to the + R128_TRACK_GAIN value (if any), in addition to the header gain.*/ +#define OP_TRACK_GAIN (3008) + +/**Gain offset type that indicates that the provided offset should be used as + the gain directly, without applying any the header or track gains.*/ +#define OP_ABSOLUTE_GAIN (3009) + +/**Sets the gain to be used for decoded output. + By default, the gain in the header is applied with no additional offset. + The total gain (including header gain and/or track gain, if applicable, and + this offset), will be clamped to [-32768,32767]/256 dB. + This is more than enough to saturate or underflow 16-bit PCM. + \note The new gain will not be applied to any already buffered, decoded + output. + This means you cannot change it sample-by-sample, as at best it will be + updated packet-by-packet. + It is meant for setting a target volume level, rather than applying smooth + fades, etc. + \param _of The \c OggOpusFile on which to set the gain offset. + \param _gain_type One of #OP_HEADER_GAIN, #OP_TRACK_GAIN, or + #OP_ABSOLUTE_GAIN. + \param _gain_offset_q8 The gain offset to apply, in 1/256ths of a dB. + \return 0 on success or a negative value on error. + \retval #OP_EINVAL The \a _gain_type was unrecognized.*/ +int op_set_gain_offset(OggOpusFile *_of, + int _gain_type,opus_int32 _gain_offset_q8); + +/**Reads more samples from the stream. + \note Although \a _buf_size must indicate the total number of values that + can be stored in \a _pcm, the return value is the number of samples + per channel. + This is done because +
        +
      1. The channel count cannot be known a priori (reading more samples might + advance us into the next link, with a different channel count), so + \a _buf_size cannot also be in units of samples per channel,
      2. +
      3. Returning the samples per channel matches the libopus API + as closely as we're able,
      4. +
      5. Returning the total number of values instead of samples per channel + would mean the caller would need a division to compute the samples per + channel, and might worry about the possibility of getting back samples + for some channels and not others, and
      6. +
      7. This approach is relatively fool-proof: if an application passes too + small a value to \a _buf_size, they will simply get fewer samples back, + and if they assume the return value is the total number of values, then + they will simply read too few (rather than reading too many and going + off the end of the buffer).
      8. +
      + \param _of The \c OggOpusFile from which to read. + \param[out] _pcm A buffer in which to store the output PCM samples, as + signed native-endian 16-bit values at 48 kHz + with a nominal range of [-32768,32767). + Multiple channels are interleaved using the + Vorbis + channel ordering. + This must have room for at least \a _buf_size values. + \param _buf_size The number of values that can be stored in \a _pcm. + It is recommended that this be large enough for at + least 120 ms of data at 48 kHz per channel (5760 + values per channel). + Smaller buffers will simply return less data, possibly + consuming more memory to buffer the data internally. + libopusfile may return less data than + requested. + If so, there is no guarantee that the remaining data + in \a _pcm will be unmodified. + \param[out] _li The index of the link this data was decoded from. + You may pass NULL if you do not need this + information. + If this function fails (returning a negative value), + this parameter is left unset. + \return The number of samples read per channel on success, or a negative + value on failure. + The channel count can be retrieved on success by calling + op_head(_of,*_li). + The number of samples returned may be 0 if the buffer was too small + to store even a single sample for all channels, or if end-of-file + was reached. + The list of possible failure codes follows. + Most of them can only be returned by unseekable, chained streams + that encounter a new link. + \retval #OP_HOLE There was a hole in the data, and some samples + may have been skipped. + Call this function again to continue decoding + past the hole. + \retval #OP_EREAD An underlying read operation failed. + This may signal a truncation attack from an + source. + \retval #OP_EFAULT An internal memory allocation failed. + \retval #OP_EIMPL An unseekable stream encountered a new link that + used a feature that is not implemented, such as + an unsupported channel family. + \retval #OP_EINVAL The stream was only partially open. + \retval #OP_ENOTFORMAT An unseekable stream encountered a new link that + did not have any logical Opus streams in it. + \retval #OP_EBADHEADER An unseekable stream encountered a new link with a + required header packet that was not properly + formatted, contained illegal values, or was + missing altogether. + \retval #OP_EVERSION An unseekable stream encountered a new link with + an ID header that contained an unrecognized + version number. + \retval #OP_EBADPACKET Failed to properly decode the next packet. + \retval #OP_EBADLINK We failed to find data we had seen before. + \retval #OP_EBADTIMESTAMP An unseekable stream encountered a new link with + a starting timestamp that failed basic validity + checks.*/ +OP_WARN_UNUSED_RESULT int op_read(OggOpusFile *_of, + opus_int16 *_pcm,int _buf_size,int *_li) OP_ARG_NONNULL(1); + +/**Reads more samples from the stream. + \note Although \a _buf_size must indicate the total number of values that + can be stored in \a _pcm, the return value is the number of samples + per channel. +
        +
      1. The channel count cannot be known a priori (reading more samples might + advance us into the next link, with a different channel count), so + \a _buf_size cannot also be in units of samples per channel,
      2. +
      3. Returning the samples per channel matches the libopus API + as closely as we're able,
      4. +
      5. Returning the total number of values instead of samples per channel + would mean the caller would need a division to compute the samples per + channel, and might worry about the possibility of getting back samples + for some channels and not others, and
      6. +
      7. This approach is relatively fool-proof: if an application passes too + small a value to \a _buf_size, they will simply get fewer samples back, + and if they assume the return value is the total number of values, then + they will simply read too few (rather than reading too many and going + off the end of the buffer).
      8. +
      + \param _of The \c OggOpusFile from which to read. + \param[out] _pcm A buffer in which to store the output PCM samples as + signed floats at 48 kHz with a nominal range of + [-1.0,1.0]. + Multiple channels are interleaved using the + Vorbis + channel ordering. + This must have room for at least \a _buf_size floats. + \param _buf_size The number of floats that can be stored in \a _pcm. + It is recommended that this be large enough for at + least 120 ms of data at 48 kHz per channel (5760 + samples per channel). + Smaller buffers will simply return less data, possibly + consuming more memory to buffer the data internally. + If less than \a _buf_size values are returned, + libopusfile makes no guarantee that the + remaining data in \a _pcm will be unmodified. + \param[out] _li The index of the link this data was decoded from. + You may pass NULL if you do not need this + information. + If this function fails (returning a negative value), + this parameter is left unset. + \return The number of samples read per channel on success, or a negative + value on failure. + The channel count can be retrieved on success by calling + op_head(_of,*_li). + The number of samples returned may be 0 if the buffer was too small + to store even a single sample for all channels, or if end-of-file + was reached. + The list of possible failure codes follows. + Most of them can only be returned by unseekable, chained streams + that encounter a new link. + \retval #OP_HOLE There was a hole in the data, and some samples + may have been skipped. + Call this function again to continue decoding + past the hole. + \retval #OP_EREAD An underlying read operation failed. + This may signal a truncation attack from an + source. + \retval #OP_EFAULT An internal memory allocation failed. + \retval #OP_EIMPL An unseekable stream encountered a new link that + used a feature that is not implemented, such as + an unsupported channel family. + \retval #OP_EINVAL The stream was only partially open. + \retval #OP_ENOTFORMAT An unseekable stream encountered a new link that + did not have any logical Opus streams in it. + \retval #OP_EBADHEADER An unseekable stream encountered a new link with a + required header packet that was not properly + formatted, contained illegal values, or was + missing altogether. + \retval #OP_EVERSION An unseekable stream encountered a new link with + an ID header that contained an unrecognized + version number. + \retval #OP_EBADPACKET Failed to properly decode the next packet. + \retval #OP_EBADLINK We failed to find data we had seen before. + \retval #OP_EBADTIMESTAMP An unseekable stream encountered a new link with + a starting timestamp that failed basic validity + checks.*/ +OP_WARN_UNUSED_RESULT int op_read_float(OggOpusFile *_of, + float *_pcm,int _buf_size,int *_li) OP_ARG_NONNULL(1); + +/**Reads more samples from the stream and downmixes to stereo, if necessary. + This function is intended for simple players that want a uniform output + format, even if the channel count changes between links in a chained + stream. + \note \a _buf_size indicates the total number of values that can be stored + in \a _pcm, while the return value is the number of samples per + channel, even though the channel count is known, for consistency with + op_read(). + \param _of The \c OggOpusFile from which to read. + \param[out] _pcm A buffer in which to store the output PCM samples, as + signed native-endian 16-bit values at 48 kHz + with a nominal range of [-32768,32767). + The left and right channels are interleaved in the + buffer. + This must have room for at least \a _buf_size values. + \param _buf_size The number of values that can be stored in \a _pcm. + It is recommended that this be large enough for at + least 120 ms of data at 48 kHz per channel (11520 + values total). + Smaller buffers will simply return less data, possibly + consuming more memory to buffer the data internally. + If less than \a _buf_size values are returned, + libopusfile makes no guarantee that the + remaining data in \a _pcm will be unmodified. + \return The number of samples read per channel on success, or a negative + value on failure. + The number of samples returned may be 0 if the buffer was too small + to store even a single sample for both channels, or if end-of-file + was reached. + The list of possible failure codes follows. + Most of them can only be returned by unseekable, chained streams + that encounter a new link. + \retval #OP_HOLE There was a hole in the data, and some samples + may have been skipped. + Call this function again to continue decoding + past the hole. + \retval #OP_EREAD An underlying read operation failed. + This may signal a truncation attack from an + source. + \retval #OP_EFAULT An internal memory allocation failed. + \retval #OP_EIMPL An unseekable stream encountered a new link that + used a feature that is not implemented, such as + an unsupported channel family. + \retval #OP_EINVAL The stream was only partially open. + \retval #OP_ENOTFORMAT An unseekable stream encountered a new link that + did not have any logical Opus streams in it. + \retval #OP_EBADHEADER An unseekable stream encountered a new link with a + required header packet that was not properly + formatted, contained illegal values, or was + missing altogether. + \retval #OP_EVERSION An unseekable stream encountered a new link with + an ID header that contained an unrecognized + version number. + \retval #OP_EBADPACKET Failed to properly decode the next packet. + \retval #OP_EBADLINK We failed to find data we had seen before. + \retval #OP_EBADTIMESTAMP An unseekable stream encountered a new link with + a starting timestamp that failed basic validity + checks.*/ +OP_WARN_UNUSED_RESULT int op_read_stereo(OggOpusFile *_of, + opus_int16 *_pcm,int _buf_size) OP_ARG_NONNULL(1); + +/**Reads more samples from the stream and downmixes to stereo, if necessary. + This function is intended for simple players that want a uniform output + format, even if the channel count changes between links in a chained + stream. + \note \a _buf_size indicates the total number of values that can be stored + in \a _pcm, while the return value is the number of samples per + channel, even though the channel count is known, for consistency with + op_read_float(). + \param _of The \c OggOpusFile from which to read. + \param[out] _pcm A buffer in which to store the output PCM samples, as + signed floats at 48 kHz with a nominal range of + [-1.0,1.0]. + The left and right channels are interleaved in the + buffer. + This must have room for at least \a _buf_size values. + \param _buf_size The number of values that can be stored in \a _pcm. + It is recommended that this be large enough for at + least 120 ms of data at 48 kHz per channel (11520 + values total). + Smaller buffers will simply return less data, possibly + consuming more memory to buffer the data internally. + If less than \a _buf_size values are returned, + libopusfile makes no guarantee that the + remaining data in \a _pcm will be unmodified. + \return The number of samples read per channel on success, or a negative + value on failure. + The number of samples returned may be 0 if the buffer was too small + to store even a single sample for both channels, or if end-of-file + was reached. + The list of possible failure codes follows. + Most of them can only be returned by unseekable, chained streams + that encounter a new link. + \retval #OP_HOLE There was a hole in the data, and some samples + may have been skipped. + Call this function again to continue decoding + past the hole. + \retval #OP_EREAD An underlying read operation failed. + This may signal a truncation attack from an + source. + \retval #OP_EFAULT An internal memory allocation failed. + \retval #OP_EIMPL An unseekable stream encountered a new link that + used a feature that is not implemented, such as + an unsupported channel family. + \retval #OP_EINVAL The stream was only partially open. + \retval #OP_ENOTFORMAT An unseekable stream encountered a new link that + that did not have any logical Opus streams in it. + \retval #OP_EBADHEADER An unseekable stream encountered a new link with a + required header packet that was not properly + formatted, contained illegal values, or was + missing altogether. + \retval #OP_EVERSION An unseekable stream encountered a new link with + an ID header that contained an unrecognized + version number. + \retval #OP_EBADPACKET Failed to properly decode the next packet. + \retval #OP_EBADLINK We failed to find data we had seen before. + \retval #OP_EBADTIMESTAMP An unseekable stream encountered a new link with + a starting timestamp that failed basic validity + checks.*/ +OP_WARN_UNUSED_RESULT int op_read_float_stereo(OggOpusFile *_of, + float *_pcm,int _buf_size) OP_ARG_NONNULL(1); + +/*@}*/ +/*@}*/ + +# if OP_GNUC_PREREQ(4,0) +# pragma GCC visibility pop +# endif + +# if defined(__cplusplus) +} +# endif + +#endif diff --git a/Audio-Frameworks/bin/opusfile/libopusfile.a b/Audio-Frameworks/bin/opusfile/libopusfile.a new file mode 100644 index 0000000000000000000000000000000000000000..533cdd4f76a947d39168a6c20f4ab364bd315443 GIT binary patch literal 192936 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

      s;BY=*w8G!eg1qHgF@&^i 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 H9cA!8SvG#E literal 0 HcmV?d00001 diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Headers b/Audio-Frameworks/bin/taglib/TagLib.framework/Headers new file mode 120000 index 0000000..a177d2a --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Resources b/Audio-Frameworks/bin/taglib/TagLib.framework/Resources new file mode 120000 index 0000000..953ee36 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/TagLib b/Audio-Frameworks/bin/taglib/TagLib.framework/TagLib new file mode 120000 index 0000000..2c050d4 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/TagLib @@ -0,0 +1 @@ +Versions/Current/TagLib \ No newline at end of file diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/aifffile.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/aifffile.h new file mode 100644 index 0000000..a50c8ec --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/aifffile.h @@ -0,0 +1,122 @@ +/*************************************************************************** + copyright : (C) 2008 by Scott Wheeler + email : wheeler@kde.org +***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_AIFFFILE_H +#define TAGLIB_AIFFFILE_H + +#include "rifffile.h" +#include "id3v2tag.h" +#include "aiffproperties.h" + +namespace TagLib { + + namespace RIFF { + + //! An implementation of AIFF metadata + + /*! + * This is implementation of AIFF metadata. + * + * This supports an ID3v2 tag as well as reading stream from the ID3 RIFF + * chunk as well as properties from the file. + */ + + namespace AIFF { + + //! An implementation of TagLib::File with AIFF specific methods + + /*! + * This implements and provides an interface for AIFF files to the + * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing + * the abstract TagLib::File API as well as providing some additional + * information specific to AIFF files. + */ + + class TAGLIB_EXPORT File : public TagLib::RIFF::File + { + public: + /*! + * Contructs an AIFF file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an AIFF file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns the Tag for this file. + */ + virtual ID3v2::Tag *tag() const; + + /*! + * Implements the unified property interface -- export function. + * This method forwards to ID3v2::Tag::properties(). + */ + PropertyMap properties() const; + + /*! + * Implements the unified property interface -- import function. + * This method forwards to ID3v2::Tag::setProperties(). + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Returns the AIFF::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + /*! + * Saves the file. + */ + virtual bool save(); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + + class FilePrivate; + FilePrivate *d; + }; + } + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/aiffproperties.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/aiffproperties.h new file mode 100644 index 0000000..68e90b7 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/aiffproperties.h @@ -0,0 +1,83 @@ +/*************************************************************************** + copyright : (C) 2008 by Scott Wheeler + email : wheeler@kde.org +***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_AIFFPROPERTIES_H +#define TAGLIB_AIFFPROPERTIES_H + +#include "audioproperties.h" + +namespace TagLib { + + namespace RIFF { + + namespace AIFF { + + class File; + + //! An implementation of audio property reading for AIFF + + /*! + * This reads the data from an AIFF stream found in the AudioProperties + * API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of AIFF::Properties with the data read from the + * ByteVector \a data. + */ + Properties(const ByteVector &data, ReadStyle style); + + /*! + * Destroys this AIFF::Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + int sampleWidth() const; + uint sampleFrames() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void read(const ByteVector &data); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/apefile.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/apefile.h new file mode 100644 index 0000000..0bdbd42 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/apefile.h @@ -0,0 +1,198 @@ +/*************************************************************************** + copyright : (C) 2010 by Alex Novichkov + email : novichko@atnet.ru + + copyright : (C) 2006 by Lukáš Lalinský + email : lalinsky@gmail.com + (original WavPack implementation) + + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + (original MPC implementation) + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_APEFILE_H +#define TAGLIB_APEFILE_H + +#include "tfile.h" +#include "taglib_export.h" +#include "apeproperties.h" + +namespace TagLib { + + class Tag; + + namespace ID3v1 { class Tag; } + namespace APE { class Tag; } + + //! An implementation of APE metadata + + /*! + * This is implementation of APE metadata. + * + * This supports ID3v1 and APE (v1 and v2) style comments as well as reading stream + * properties from the file. + */ + + namespace APE { + + //! An implementation of TagLib::File with APE specific methods + + /*! + * This implements and provides an interface APE WavPack files to the + * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing + * the abstract TagLib::File API as well as providing some additional + * information specific to APE files. + */ + + class TAGLIB_EXPORT File : public TagLib::File + { + public: + /*! + * This set of flags is used for various operations and is suitable for + * being OR-ed together. + */ + enum TagTypes { + //! Empty set. Matches no tag types. + NoTags = 0x0000, + //! Matches ID3v1 tags. + ID3v1 = 0x0001, + //! Matches APE tags. + APE = 0x0002, + //! Matches all tag types. + AllTags = 0xffff + }; + + /*! + * Contructs an WavPack file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an WavPack file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns the Tag for this file. This will be an APE tag, an ID3v1 tag + * or a combination of the two. + */ + virtual TagLib::Tag *tag() const; + + /*! + * Implements the unified property interface -- export function. + * If the file contains both an APE and an ID3v1 tag, only APE + * will be converted to the PropertyMap. + */ + PropertyMap properties() const; + + /*! + * Removes unsupported properties. Forwards to the actual Tag's + * removeUnsupportedProperties() function. + */ + void removeUnsupportedProperties(const StringList &properties); + + /*! + * Implements the unified property interface -- import function. + * As for the export, only one tag is taken into account. If the file + * has no tag at all, APE will be created. + */ + PropertyMap setProperties(const PropertyMap &); + /*! + * Returns the APE::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + /*! + * Saves the file. + * + * \note According to the official Monkey's Audio SDK, an APE file + * can only have either ID3V1 or APE tags, so a parameter is used here. + */ + virtual bool save(); + + /*! + * Returns a pointer to the ID3v1 tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid ID3v1 tag. If \a create is true it will create + * an ID3v1 tag if one does not exist. If there is already an APE tag, the + * new ID3v1 tag will be placed after it. + * + * \note The Tag is still owned by the APE::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + ID3v1::Tag *ID3v1Tag(bool create = false); + + /*! + * Returns a pointer to the APE tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid APE tag. If \a create is true it will create + * a APE tag if one does not exist. + * + * \note The Tag is still owned by the APE::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + APE::Tag *APETag(bool create = false); + + /*! + * This will remove the tags that match the OR-ed together TagTypes from the + * file. By default it removes all tags. + * + * \note This will also invalidate pointers to the tags + * as their memory will be freed. + * \note In order to make the removal permanent save() still needs to be called + */ + void strip(int tags = AllTags); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + void scan(); + long findID3v1(); + long findAPE(); + + class FilePrivate; + FilePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/apefooter.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/apefooter.h new file mode 100644 index 0000000..080f930 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/apefooter.h @@ -0,0 +1,173 @@ +/*************************************************************************** + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_APEFOOTER_H +#define TAGLIB_APEFOOTER_H + +#include "tbytevector.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace APE { + + //! An implementation of APE footers + + /*! + * This class implements APE footers (and headers). It attempts to follow, both + * semantically and programatically, the structure specified in + * the APE v2.0 standard. The API is based on the properties of APE footer and + * headers specified there. + */ + + class TAGLIB_EXPORT Footer + { + public: + /*! + * Constructs an empty APE footer. + */ + Footer(); + + /*! + * Constructs an APE footer based on \a data. parse() is called + * immediately. + */ + Footer(const ByteVector &data); + + /*! + * Destroys the footer. + */ + virtual ~Footer(); + + /*! + * Returns the version number. (Note: This is the 1000 or 2000.) + */ + uint version() const; + + /*! + * Returns true if a header is present in the tag. + */ + bool headerPresent() const; + + /*! + * Returns true if a footer is present in the tag. + */ + bool footerPresent() const; + + /*! + * Returns true this is actually the header. + */ + bool isHeader() const; + + /*! + * Sets whether the header should be rendered or not + */ + void setHeaderPresent(bool b) const; + + /*! + * Returns the number of items in the tag. + */ + uint itemCount() const; + + /*! + * Set the item count to \a s. + * \see itemCount() + */ + void setItemCount(uint s); + + /*! + * Returns the tag size in bytes. This is the size of the frame content and footer. + * The size of the \e entire tag will be this plus the header size, if present. + * + * \see completeTagSize() + */ + uint tagSize() const; + + /*! + * Returns the tag size, including if present, the header + * size. + * + * \see tagSize() + */ + uint completeTagSize() const; + + /*! + * Set the tag size to \a s. + * \see tagSize() + */ + void setTagSize(uint s); + + /*! + * Returns the size of the footer. Presently this is always 32 bytes. + */ + static uint size(); + + /*! + * Returns the string used to identify an APE tag inside of a file. + * Presently this is always "APETAGEX". + */ + static ByteVector fileIdentifier(); + + /*! + * Sets the data that will be used as the footer. 32 bytes, + * starting from \a data will be used. + */ + void setData(const ByteVector &data); + + /*! + * Renders the footer back to binary format. + */ + ByteVector renderFooter() const; + + /*! + * Renders the header corresponding to the footer. If headerPresent is + * set to false, it returns an empty ByteVector. + */ + ByteVector renderHeader() const; + + protected: + /*! + * Called by setData() to parse the footer data. It makes this information + * available through the public API. + */ + void parse(const ByteVector &data); + + /*! + * Called by renderFooter and renderHeader + */ + ByteVector render(bool isHeader) const; + + private: + Footer(const Footer &); + Footer &operator=(const Footer &); + + class FooterPrivate; + FooterPrivate *d; + }; + + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/apeitem.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/apeitem.h new file mode 100644 index 0000000..f7fd05e --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/apeitem.h @@ -0,0 +1,217 @@ +/*************************************************************************** + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_APEITEM_H +#define TAGLIB_APEITEM_H + +#include "tbytevector.h" +#include "tstring.h" +#include "tstringlist.h" + +namespace TagLib { + + namespace APE { + + //! An implementation of APE-items + + /*! + * This class provides the features of items in the APEv2 standard. + */ + class TAGLIB_EXPORT Item + { + public: + /*! + * Enum of types an Item can have. The value of 3 is reserved. + */ + enum ItemTypes { + //! Item contains text information coded in UTF-8 + Text = 0, + //! Item contains binary information + Binary = 1, + //! Item is a locator of external stored information + Locator = 2 + }; + /*! + * Constructs an empty item. + */ + Item(); + + /*! + * Constructs a text item with \a key and \a value. + */ + // BIC: Remove this, StringList has a constructor from a single string + Item(const String &key, const String &value); + + /*! + * Constructs a text item with \a key and \a values. + */ + Item(const String &key, const StringList &values); + + /*! + * Constructs an item with \a key and \a value. + * If \a binary is true a Binary item will be created, otherwise \a value will be interpreted as text + */ + Item(const String &key, const ByteVector &value, bool binary); + + /*! + * Construct an item as a copy of \a item. + */ + Item(const Item &item); + + /*! + * Destroys the item. + */ + virtual ~Item(); + + /*! + * Copies the contents of \a item into this item. + */ + Item &operator=(const Item &item); + + /*! + * Returns the key. + */ + String key() const; + + /*! + * Returns the binary value. + * If the item type is not \a Binary, the returned contents are undefined + */ + ByteVector binaryData() const; + + /*! + * Set the binary value to \a value + * The item's type will also be set to \a Binary + */ + void setBinaryData(const ByteVector &value); + +#ifndef DO_NOT_DOCUMENT + /* Remove in next binary incompatible release */ + ByteVector value() const; +#endif + + /*! + * Sets the key for the item to \a key. + */ + void setKey(const String &key); + + /*! + * Sets the text value of the item to \a value and clears any previous contents. + * + * \see toString() + */ + void setValue(const String &value); + + /*! + * Sets the text value of the item to the list of values in \a value and clears + * any previous contents. + * + * \see toStringList() + */ + void setValues(const StringList &values); + + /*! + * Appends \a value to create (or extend) the current list of text values. + * + * \see toString() + */ + void appendValue(const String &value); + + /*! + * Appends \a values to extend the current list of text values. + * + * \see toStringList() + */ + void appendValues(const StringList &values); + + /*! + * Returns the size of the full item. + */ + int size() const; + + /*! + * Returns the value as a single string. In case of multiple strings, + * the first is returned. + */ + String toString() const; + +#ifndef DO_NOT_DOCUMENT + /* Remove in next binary incompatible release */ + StringList toStringList() const; +#endif + + /*! + * Returns the list of text values. + */ + StringList values() const; + + /*! + * Render the item to a ByteVector. + */ + ByteVector render() const; + + /*! + * Parse the item from the ByteVector \a data. + */ + void parse(const ByteVector& data); + + /*! + * Set the item to read-only. + */ + void setReadOnly(bool readOnly); + + /*! + * Return true if the item is read-only. + */ + bool isReadOnly() const; + + /*! + * Sets the type of the item to \a type. + * + * \see ItemTypes + */ + void setType(ItemTypes type); + + /*! + * Returns the type of the item. + */ + ItemTypes type() const; + + /*! + * Returns if the item has any real content. + */ + bool isEmpty() const; + + private: + class ItemPrivate; + ItemPrivate *d; + }; + } + +} + +#endif + + diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/apeproperties.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/apeproperties.h new file mode 100644 index 0000000..f154ec3 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/apeproperties.h @@ -0,0 +1,99 @@ +/*************************************************************************** + copyright : (C) 2010 by Alex Novichkov + email : novichko@atnet.ru + + copyright : (C) 2006 by Lukáš Lalinský + email : lalinsky@gmail.com + (original WavPack implementation) + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_APEPROPERTIES_H +#define TAGLIB_APEPROPERTIES_H + +#include "taglib_export.h" +#include "audioproperties.h" + +namespace TagLib { + + namespace APE { + + class File; + + //! An implementation of audio property reading for APE + + /*! + * This reads the data from an APE stream found in the AudioProperties + * API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of APE::Properties with the data read from the + * ByteVector \a data. + */ + Properties(File *f, ReadStyle style = Average); + + /*! + * Destroys this APE::Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + /*! + * Returns number of bits per sample. + */ + int bitsPerSample() const; + uint sampleFrames() const; + + /*! + * Returns APE version. + */ + int version() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void read(); + + long findDescriptor(); + long findID3v2(); + + void analyzeCurrent(); + void analyzeOld(); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/apetag.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/apetag.h new file mode 100644 index 0000000..1a8c30c --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/apetag.h @@ -0,0 +1,201 @@ +/*************************************************************************** + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_APETAG_H +#define TAGLIB_APETAG_H + +#include "tag.h" +#include "tbytevector.h" +#include "tmap.h" +#include "tstring.h" +#include "taglib_export.h" + +#include "apeitem.h" + +namespace TagLib { + + class File; + + //! An implementation of the APE tagging format + + namespace APE { + + class Footer; + + /*! + * A mapping between a list of item names, or keys, and the associated item. + * + * \see APE::Tag::itemListMap() + */ + typedef Map ItemListMap; + + + //! An APE tag implementation + + class TAGLIB_EXPORT Tag : public TagLib::Tag + { + public: + /*! + * Create an APE tag with default values. + */ + Tag(); + + /*! + * Create an APE tag and parse the data in \a file with APE footer at + * \a tagOffset. + */ + Tag(TagLib::File *file, long footerLocation); + + /*! + * Destroys this Tag instance. + */ + virtual ~Tag(); + + /*! + * Renders the in memory values to a ByteVector suitable for writing to + * the file. + */ + ByteVector render() const; + + /*! + * Returns the string "APETAGEX" suitable for usage in locating the tag in a + * file. + */ + static ByteVector fileIdentifier(); + + // Reimplementations. + + virtual String title() const; + virtual String artist() const; + virtual String album() const; + virtual String comment() const; + virtual String genre() const; + virtual uint year() const; + virtual uint track() const; + + virtual void setTitle(const String &s); + virtual void setArtist(const String &s); + virtual void setAlbum(const String &s); + virtual void setComment(const String &s); + virtual void setGenre(const String &s); + virtual void setYear(uint i); + virtual void setTrack(uint i); + + /*! + * Implements the unified tag dictionary interface -- export function. + * APE tags are perfectly compatible with the dictionary interface because they + * support both arbitrary tag names and multiple values. Currently only + * APE items of type *Text* are handled by the dictionary interface; all *Binary* + * and *Locator* items will be put into the unsupportedData list and can be + * deleted on request using removeUnsupportedProperties(). The same happens + * to Text items if their key is invalid for PropertyMap (which should actually + * never happen). + * + * The only conversion done by this export function is to rename the APE tags + * TRACK to TRACKNUMBER, YEAR to DATE, and ALBUM ARTIST to ALBUMARTIST, respectively, + * in order to be compliant with the names used in other formats. + */ + PropertyMap properties() const; + + void removeUnsupportedProperties(const StringList &properties); + + /*! + * Implements the unified tag dictionary interface -- import function. The same + * comments as for the export function apply. + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Returns a pointer to the tag's footer. + */ + Footer *footer() const; + + /*! + * Returns a reference to the item list map. This is an ItemListMap of + * all of the items in the tag. + * + * This is the most powerfull structure for accessing the items of the tag. + * + * APE tags are case-insensitive, all keys in this map have been converted + * to upper case. + * + * \warning You should not modify this data structure directly, instead + * use setItem() and removeItem(). + */ + const ItemListMap &itemListMap() const; + + /*! + * Removes the \a key item from the tag + */ + void removeItem(const String &key); + + /*! + * Adds to the text item specified by \a key the data \a value. If \a replace + * is true, then all of the other values on the same key will be removed + * first. If a binary item exists for \a key it will be removed first. + */ + void addValue(const String &key, const String &value, bool replace = true); + + /*! + * Set the binary data for the key specified by \a item to \a value + * This will convert the item to type \a Binary if it isn't already and + * all of the other values on the same key will be removed. + */ + void setData(const String &key, const ByteVector &value); + + /*! + * Sets the \a key item to the value of \a item. If an item with the \a key is already + * present, it will be replaced. + */ + void setItem(const String &key, const Item &item); + + /*! + * Returns true if the tag does not contain any data. + */ + bool isEmpty() const; + + protected: + + /*! + * Reads from the file specified in the constructor. + */ + void read(); + + /*! + * Parses the body of the tag in \a data. + */ + void parse(const ByteVector &data); + + private: + Tag(const Tag &); + Tag &operator=(const Tag &); + + class TagPrivate; + TagPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/asfattribute.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/asfattribute.h new file mode 100644 index 0000000..54eb0c7 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/asfattribute.h @@ -0,0 +1,203 @@ +/************************************************************************** + copyright : (C) 2005-2007 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ASFATTRIBUTE_H +#define TAGLIB_ASFATTRIBUTE_H + +#include "tstring.h" +#include "tbytevector.h" +#include "taglib_export.h" +#include "asfpicture.h" + +namespace TagLib +{ + + namespace ASF + { + + class File; + class Picture; + + class TAGLIB_EXPORT Attribute + { + public: + + /*! + * Enum of types an Attribute can have. + */ + enum AttributeTypes { + UnicodeType = 0, + BytesType = 1, + BoolType = 2, + DWordType = 3, + QWordType = 4, + WordType = 5, + GuidType = 6 + }; + + /*! + * Constructs an empty attribute. + */ + Attribute(); + + /*! + * Constructs an attribute with \a key and a UnicodeType \a value. + */ + Attribute(const String &value); + + /*! + * Constructs an attribute with \a key and a BytesType \a value. + */ + Attribute(const ByteVector &value); + + /*! + * Constructs an attribute with \a key and a Picture \a value. + * + * This attribute is compatible with the ID3 frame, APIC. The ID3 specification for the APIC frame stipulates that, + * while there may be any number of APIC frames associated with a file, + * only one may be of type 1 and only one may be of type 2. + * + * The specification also states that the description of the picture can be no longer than 64 characters, but can be empty. + * WM/Picture attributes added with TagLib::ASF are not automatically validated to conform to ID3 specifications. + * You must add code in your application to perform validations if you want to maintain complete compatibility with ID3. + */ + Attribute(const Picture &value); + + /*! + * Constructs an attribute with \a key and a DWordType \a value. + */ + Attribute(unsigned int value); + + /*! + * Constructs an attribute with \a key and a QWordType \a value. + */ + Attribute(unsigned long long value); + + /*! + * Constructs an attribute with \a key and a WordType \a value. + */ + Attribute(unsigned short value); + + /*! + * Constructs an attribute with \a key and a BoolType \a value. + */ + Attribute(bool value); + + /*! + * Construct an attribute as a copy of \a other. + */ + Attribute(const Attribute &item); + + /*! + * Copies the contents of \a other into this item. + */ + ASF::Attribute &operator=(const Attribute &other); + + /*! + * Destroys the attribute. + */ + virtual ~Attribute(); + + /*! + * Returns type of the value. + */ + AttributeTypes type() const; + + /*! + * Returns the BoolType \a value. + */ + unsigned short toBool() const; + + /*! + * Returns the WordType \a value. + */ + unsigned short toUShort() const; + + /*! + * Returns the DWordType \a value. + */ + unsigned int toUInt() const; + + /*! + * Returns the QWordType \a value. + */ + unsigned long long toULongLong() const; + + /*! + * Returns the UnicodeType \a value. + */ + String toString() const; + + /*! + * Returns the BytesType \a value. + */ + ByteVector toByteVector() const; + + /*! + * Returns the Picture \a value. + */ + Picture toPicture() const; + + /*! + * Returns the language number, or 0 is no stream number was set. + */ + int language() const; + + /*! + * Sets the language number. + */ + void setLanguage(int value); + + /*! + * Returns the stream number, or 0 is no stream number was set. + */ + int stream() const; + + /*! + * Sets the stream number. + */ + void setStream(int value); + +#ifndef DO_NOT_DOCUMENT + /* THIS IS PRIVATE, DON'T TOUCH IT! */ + String parse(ASF::File &file, int kind = 0); +#endif + + //! Returns the size of the stored data + int dataSize() const; + + private: + friend class File; + + ByteVector render(const String &name, int kind = 0) const; + + class AttributePrivate; + AttributePrivate *d; + }; + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/asffile.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/asffile.h new file mode 100644 index 0000000..f0acd72 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/asffile.h @@ -0,0 +1,130 @@ +/************************************************************************** + copyright : (C) 2005-2007 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ASFFILE_H +#define TAGLIB_ASFFILE_H + +#include "tag.h" +#include "tfile.h" +#include "taglib_export.h" +#include "asfproperties.h" +#include "asftag.h" + +namespace TagLib { + + //! An implementation of ASF (WMA) metadata + namespace ASF { + + /*! + * This implements and provides an interface for ASF files to the + * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing + * the abstract TagLib::File API as well as providing some additional + * information specific to ASF files. + */ + class TAGLIB_EXPORT File : public TagLib::File + { + public: + + /*! + * Contructs an ASF file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + * + * \note In the current implementation, both \a readProperties and + * \a propertiesStyle are ignored. + */ + File(FileName file, bool readProperties = true, Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an ASF file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + * + * \note In the current implementation, both \a readProperties and + * \a propertiesStyle are ignored. + */ + File(IOStream *stream, bool readProperties = true, Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns a pointer to the ASF tag of the file. + * + * ASF::Tag implements the tag interface, so this serves as the + * reimplementation of TagLib::File::tag(). + * + * \note The Tag is still owned by the ASF::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + virtual Tag *tag() const; + + /*! + * Returns the ASF audio properties for this file. + */ + virtual Properties *audioProperties() const; + + /*! + * Save the file. + * + * This returns true if the save was successful. + */ + virtual bool save(); + + private: + + int readBYTE(bool *ok = 0); + int readWORD(bool *ok = 0); + unsigned int readDWORD(bool *ok = 0); + long long readQWORD(bool *ok = 0); + static ByteVector renderString(const String &str, bool includeLength = false); + String readString(int len); + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + + friend class Attribute; + friend class Picture; + + class BaseObject; + class UnknownObject; + class FilePropertiesObject; + class StreamPropertiesObject; + class ContentDescriptionObject; + class ExtendedContentDescriptionObject; + class HeaderExtensionObject; + class MetadataObject; + class MetadataLibraryObject; + + class FilePrivate; + FilePrivate *d; + }; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/asfpicture.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/asfpicture.h new file mode 100644 index 0000000..aa0a060 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/asfpicture.h @@ -0,0 +1,217 @@ +/************************************************************************** + copyright : (C) 2010 by Anton Sergunov + email : setosha@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef ASFPICTURE_H +#define ASFPICTURE_H + +#include "tstring.h" +#include "tbytevector.h" +#include "taglib_export.h" +#include "attachedpictureframe.h" + +namespace TagLib +{ + namespace ASF + { + + //! An ASF attached picture interface implementation + + /*! + * This is an implementation of ASF attached pictures interface. Pictures may be + * included in attributes, one per WM/Picture attribute (but there may be multiple WM/Picture + * attribute in a single tag). These pictures are usually in either JPEG or + * PNG format. + * \see Attribute::toPicture() + * \see Attribute::Attribute(const Picture& picture) + */ + class TAGLIB_EXPORT Picture { + public: + + /*! + * This describes the function or content of the picture. + */ + enum Type { + //! A type not enumerated below + Other = 0x00, + //! 32x32 PNG image that should be used as the file icon + FileIcon = 0x01, + //! File icon of a different size or format + OtherFileIcon = 0x02, + //! Front cover image of the album + FrontCover = 0x03, + //! Back cover image of the album + BackCover = 0x04, + //! Inside leaflet page of the album + LeafletPage = 0x05, + //! Image from the album itself + Media = 0x06, + //! Picture of the lead artist or soloist + LeadArtist = 0x07, + //! Picture of the artist or performer + Artist = 0x08, + //! Picture of the conductor + Conductor = 0x09, + //! Picture of the band or orchestra + Band = 0x0A, + //! Picture of the composer + Composer = 0x0B, + //! Picture of the lyricist or text writer + Lyricist = 0x0C, + //! Picture of the recording location or studio + RecordingLocation = 0x0D, + //! Picture of the artists during recording + DuringRecording = 0x0E, + //! Picture of the artists during performance + DuringPerformance = 0x0F, + //! Picture from a movie or video related to the track + MovieScreenCapture = 0x10, + //! Picture of a large, coloured fish + ColouredFish = 0x11, + //! Illustration related to the track + Illustration = 0x12, + //! Logo of the band or performer + BandLogo = 0x13, + //! Logo of the publisher (record company) + PublisherLogo = 0x14 + }; + + /*! + * Constructs an empty picture. + */ + Picture(); + + /*! + * Construct an picture as a copy of \a other. + */ + Picture(const Picture& other); + + /*! + * Destroys the picture. + */ + virtual ~Picture(); + + /*! + * Copies the contents of \a other into this picture. + */ + Picture& operator=(const Picture& other); + + /*! + * Returns true if Picture stores valid picture + */ + bool isValid() const; + + /*! + * Returns the mime type of the image. This should in most cases be + * "image/png" or "image/jpeg". + * \see setMimeType(const String &) + * \see picture() + * \see setPicture(const ByteArray&) + */ + String mimeType() const; + + /*! + * Sets the mime type of the image. This should in most cases be + * "image/png" or "image/jpeg". + * \see setMimeType(const String &) + * \see picture() + * \see setPicture(const ByteArray&) + */ + void setMimeType(const String &value); + + /*! + * Returns the type of the image. + * + * \see Type + * \see setType() + */ + Type type() const; + + /*! + * Sets the type for the image. + * + * \see Type + * \see type() + */ + void setType(const ASF::Picture::Type& t); + + /*! + * Returns a text description of the image. + * + * \see setDescription() + */ + String description() const; + + /*! + * Sets a textual description of the image to \a desc. + * + * \see description() + */ + void setDescription(const String &desc); + + /*! + * Returns the image data as a ByteVector. + * + * \note ByteVector has a data() method that returns a const char * which + * should make it easy to export this data to external programs. + * + * \see setPicture() + * \see mimeType() + */ + ByteVector picture() const; + + /*! + * Sets the image data to \a p. \a p should be of the type specified in + * this frame's mime-type specification. + * + * \see picture() + * \see mimeType() + * \see setMimeType() + */ + void setPicture(const ByteVector &p); + + /*! + * Returns picture as binary raw data \a value + */ + ByteVector render() const; + + /*! + * Returns picture as binary raw data \a value + */ + int dataSize() const; + +#ifndef DO_NOT_DOCUMENT + /* THIS IS PRIVATE, DON'T TOUCH IT! */ + void parse(const ByteVector& ); + static Picture fromInvalid(); + friend class Attribute; +#endif + private: + class PicturePrivate; + PicturePrivate *d; + }; + } +} + +#endif // ASFPICTURE_H diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/asfproperties.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/asfproperties.h new file mode 100644 index 0000000..95730d8 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/asfproperties.h @@ -0,0 +1,76 @@ +/************************************************************************** + copyright : (C) 2005-2007 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ASFPROPERTIES_H +#define TAGLIB_ASFPROPERTIES_H + +#include "audioproperties.h" +#include "tstring.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace ASF { + + //! An implementation of ASF audio properties + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + + /*! + * Create an instance of ASF::Properties. + */ + Properties(); + + /*! + * Destroys this ASF::Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + bool isEncrypted() const; + +#ifndef DO_NOT_DOCUMENT + void setLength(int value); + void setBitrate(int value); + void setSampleRate(int value); + void setChannels(int value); + void setEncrypted(bool value); +#endif + + private: + class PropertiesPrivate; + PropertiesPrivate *d; + }; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/asftag.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/asftag.h new file mode 100644 index 0000000..6b2d2bf --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/asftag.h @@ -0,0 +1,186 @@ +/************************************************************************** + copyright : (C) 2005-2007 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ASFTAG_H +#define TAGLIB_ASFTAG_H + +#include "tag.h" +#include "tlist.h" +#include "tmap.h" +#include "taglib_export.h" +#include "asfattribute.h" + +namespace TagLib { + + namespace ASF { + + typedef List AttributeList; + typedef Map AttributeListMap; + + class TAGLIB_EXPORT Tag : public TagLib::Tag { + + friend class File; + + public: + + Tag(); + + virtual ~Tag(); + + /*! + * Returns the track name. + */ + virtual String title() const; + + /*! + * Returns the artist name. + */ + virtual String artist() const; + + /*! + * Returns the album name; if no album name is present in the tag + * String::null will be returned. + */ + virtual String album() const; + + /*! + * Returns the track comment. + */ + virtual String comment() const; + + /*! + * Returns the genre name; if no genre is present in the tag String::null + * will be returned. + */ + virtual String genre() const; + + /*! + * Returns the rating. + */ + virtual String rating() const; + + /*! + * Returns the genre name; if no genre is present in the tag String::null + * will be returned. + */ + virtual String copyright() const; + + /*! + * Returns the year; if there is no year set, this will return 0. + */ + virtual uint year() const; + + /*! + * Returns the track number; if there is no track number set, this will + * return 0. + */ + virtual uint track() const; + + /*! + * Sets the title to \a s. + */ + virtual void setTitle(const String &s); + + /*! + * Sets the artist to \a s. + */ + virtual void setArtist(const String &s); + + /*! + * Sets the album to \a s. If \a s is String::null then this value will be + * cleared. + */ + virtual void setAlbum(const String &s); + + /*! + * Sets the comment to \a s. + */ + virtual void setComment(const String &s); + + /*! + * Sets the rating to \a s. + */ + virtual void setRating(const String &s); + + /*! + * Sets the copyright to \a s. + */ + virtual void setCopyright(const String &s); + + /*! + * Sets the genre to \a s. + */ + virtual void setGenre(const String &s); + + /*! + * Sets the year to \a i. If \a s is 0 then this value will be cleared. + */ + virtual void setYear(uint i); + + /*! + * Sets the track to \a i. If \a s is 0 then this value will be cleared. + */ + virtual void setTrack(uint i); + + /*! + * Returns true if the tag does not contain any data. This should be + * reimplemented in subclasses that provide more than the basic tagging + * abilities in this class. + */ + virtual bool isEmpty() const; + + /*! + * Returns a reference to the item list map. This is an AttributeListMap of + * all of the items in the tag. + * + * This is the most powerfull structure for accessing the items of the tag. + */ + AttributeListMap &attributeListMap(); + + /*! + * Removes the \a key attribute from the tag + */ + void removeItem(const String &name); + + /*! + * Sets the \a key attribute to the value of \a attribute. If an attribute + * with the \a key is already present, it will be replaced. + */ + void setAttribute(const String &name, const Attribute &attribute); + + /*! + * Sets the \a key attribute to the value of \a attribute. If an attribute + * with the \a key is already present, it will be added to the list. + */ + void addAttribute(const String &name, const Attribute &attribute); + + private: + + class TagPrivate; + TagPrivate *d; + }; + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/attachedpictureframe.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/attachedpictureframe.h new file mode 100644 index 0000000..55067bd --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/attachedpictureframe.h @@ -0,0 +1,230 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ATTACHEDPICTUREFRAME_H +#define TAGLIB_ATTACHEDPICTUREFRAME_H + +#include "id3v2frame.h" +#include "id3v2header.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace ID3v2 { + + //! An ID3v2 attached picture frame implementation + + /*! + * This is an implementation of ID3v2 attached pictures. Pictures may be + * included in tags, one per APIC frame (but there may be multiple APIC + * frames in a single tag). These pictures are usually in either JPEG or + * PNG format. + */ + + class TAGLIB_EXPORT AttachedPictureFrame : public Frame + { + friend class FrameFactory; + + public: + + /*! + * This describes the function or content of the picture. + */ + enum Type { + //! A type not enumerated below + Other = 0x00, + //! 32x32 PNG image that should be used as the file icon + FileIcon = 0x01, + //! File icon of a different size or format + OtherFileIcon = 0x02, + //! Front cover image of the album + FrontCover = 0x03, + //! Back cover image of the album + BackCover = 0x04, + //! Inside leaflet page of the album + LeafletPage = 0x05, + //! Image from the album itself + Media = 0x06, + //! Picture of the lead artist or soloist + LeadArtist = 0x07, + //! Picture of the artist or performer + Artist = 0x08, + //! Picture of the conductor + Conductor = 0x09, + //! Picture of the band or orchestra + Band = 0x0A, + //! Picture of the composer + Composer = 0x0B, + //! Picture of the lyricist or text writer + Lyricist = 0x0C, + //! Picture of the recording location or studio + RecordingLocation = 0x0D, + //! Picture of the artists during recording + DuringRecording = 0x0E, + //! Picture of the artists during performance + DuringPerformance = 0x0F, + //! Picture from a movie or video related to the track + MovieScreenCapture = 0x10, + //! Picture of a large, coloured fish + ColouredFish = 0x11, + //! Illustration related to the track + Illustration = 0x12, + //! Logo of the band or performer + BandLogo = 0x13, + //! Logo of the publisher (record company) + PublisherLogo = 0x14 + }; + + /*! + * Constructs an empty picture frame. The description, content and text + * encoding should be set manually. + */ + AttachedPictureFrame(); + + /*! + * Constructs an AttachedPicture frame based on \a data. + */ + explicit AttachedPictureFrame(const ByteVector &data); + + /*! + * Destroys the AttahcedPictureFrame instance. + */ + virtual ~AttachedPictureFrame(); + + /*! + * Returns a string containing the description and mime-type + */ + virtual String toString() const; + + /*! + * Returns the text encoding used for the description. + * + * \see setTextEncoding() + * \see description() + */ + String::Type textEncoding() const; + + /*! + * Set the text encoding used for the description. + * + * \see description() + */ + void setTextEncoding(String::Type t); + + /*! + * Returns the mime type of the image. This should in most cases be + * "image/png" or "image/jpeg". + */ + String mimeType() const; + + /*! + * Sets the mime type of the image. This should in most cases be + * "image/png" or "image/jpeg". + */ + void setMimeType(const String &m); + + /*! + * Returns the type of the image. + * + * \see Type + * \see setType() + */ + Type type() const; + + /*! + * Sets the type for the image. + * + * \see Type + * \see type() + */ + void setType(Type t); + + /*! + * Returns a text description of the image. + * + * \see setDescription() + * \see textEncoding() + * \see setTextEncoding() + */ + + String description() const; + + /*! + * Sets a textual description of the image to \a desc. + * + * \see description() + * \see textEncoding() + * \see setTextEncoding() + */ + + void setDescription(const String &desc); + + /*! + * Returns the image data as a ByteVector. + * + * \note ByteVector has a data() method that returns a const char * which + * should make it easy to export this data to external programs. + * + * \see setPicture() + * \see mimeType() + */ + ByteVector picture() const; + + /*! + * Sets the image data to \a p. \a p should be of the type specified in + * this frame's mime-type specification. + * + * \see picture() + * \see mimeType() + * \see setMimeType() + */ + void setPicture(const ByteVector &p); + + protected: + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + class AttachedPictureFramePrivate; + AttachedPictureFramePrivate *d; + + private: + AttachedPictureFrame(const AttachedPictureFrame &); + AttachedPictureFrame &operator=(const AttachedPictureFrame &); + AttachedPictureFrame(const ByteVector &data, Header *h); + + }; + + //! support for ID3v2.2 PIC frames + class TAGLIB_EXPORT AttachedPictureFrameV22 : public AttachedPictureFrame + { + protected: + virtual void parseFields(const ByteVector &data); + private: + AttachedPictureFrameV22(const ByteVector &data, Header *h); + friend class FrameFactory; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/audioproperties.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/audioproperties.h new file mode 100644 index 0000000..e9844fa --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/audioproperties.h @@ -0,0 +1,110 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_AUDIOPROPERTIES_H +#define TAGLIB_AUDIOPROPERTIES_H + +#include "taglib_export.h" + +namespace TagLib { + + //! A simple, abstract interface to common audio properties + + /*! + * The values here are common to most audio formats. For more specific, codec + * dependant values, please see see the subclasses APIs. This is meant to + * compliment the TagLib::File and TagLib::Tag APIs in providing a simple + * interface that is sufficient for most applications. + */ + + class TAGLIB_EXPORT AudioProperties + { + public: + + /*! + * Reading audio properties from a file can sometimes be very time consuming + * and for the most accurate results can often involve reading the entire + * file. Because in many situations speed is critical or the accuracy of the + * values is not particularly important this allows the level of desired + * accuracy to be set. + */ + enum ReadStyle { + //! Read as little of the file as possible + Fast, + //! Read more of the file and make better values guesses + Average, + //! Read as much of the file as needed to report accurate values + Accurate + }; + + /*! + * Destroys this AudioProperties instance. + */ + virtual ~AudioProperties(); + + /*! + * Returns the length of the file in seconds. + */ + virtual int length() const = 0; + + /*! + * Returns the most appropriate bit rate for the file in kb/s. For constant + * bitrate formats this is simply the bitrate of the file. For variable + * bitrate formats this is either the average or nominal bitrate. + */ + virtual int bitrate() const = 0; + + /*! + * Returns the sample rate in Hz. + */ + virtual int sampleRate() const = 0; + + /*! + * Returns the number of audio channels. + */ + virtual int channels() const = 0; + + protected: + + /*! + * Construct an audio properties instance. This is protected as this class + * should not be instantiated directly, but should be instantiated via its + * subclasses and can be fetched from the FileRef or File APIs. + * + * \see ReadStyle + */ + AudioProperties(ReadStyle style); + + private: + AudioProperties(const AudioProperties &); + AudioProperties &operator=(const AudioProperties &); + + class AudioPropertiesPrivate; + AudioPropertiesPrivate *d; + }; + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/commentsframe.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/commentsframe.h new file mode 100644 index 0000000..f65f6f0 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/commentsframe.h @@ -0,0 +1,179 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_COMMENTSFRAME_H +#define TAGLIB_COMMENTSFRAME_H + +#include "id3v2frame.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace ID3v2 { + + //! An implementation of ID3v2 comments + + /*! + * This implements the ID3v2 comment format. An ID3v2 comment concists of + * a language encoding, a description and a single text field. + */ + + class TAGLIB_EXPORT CommentsFrame : public Frame + { + friend class FrameFactory; + + public: + /*! + * Construct an empty comment frame that will use the text encoding + * \a encoding. + */ + explicit CommentsFrame(String::Type encoding = String::Latin1); + + /*! + * Construct a comment based on the data in \a data. + */ + explicit CommentsFrame(const ByteVector &data); + + /*! + * Destroys this CommentFrame instance. + */ + virtual ~CommentsFrame(); + + /*! + * Returns the text of this comment. + * + * \see text() + */ + virtual String toString() const; + + /*! + * Returns the language encoding as a 3 byte encoding as specified by + * ISO-639-2. + * + * \note Most taggers simply ignore this value. + * + * \see setLanguage() + */ + ByteVector language() const; + + /*! + * Returns the description of this comment. + * + * \note Most taggers simply ignore this value. + * + * \see setDescription() + */ + String description() const; + + /*! + * Returns the text of this comment. + * + * \see setText() + */ + String text() const; + + /*! + * Set the language using the 3 byte language code from + * ISO-639-2 to + * \a languageCode. + * + * \see language() + */ + void setLanguage(const ByteVector &languageCode); + + /*! + * Sets the description of the comment to \a s. + * + * \see decription() + */ + void setDescription(const String &s); + + /*! + * Sets the text portion of the comment to \a s. + * + * \see text() + */ + virtual void setText(const String &s); + + /*! + * Returns the text encoding that will be used in rendering this frame. + * This defaults to the type that was either specified in the constructor + * or read from the frame when parsed. + * + * \see setTextEncoding() + * \see render() + */ + String::Type textEncoding() const; + + /*! + * Sets the text encoding to be used when rendering this frame to + * \a encoding. + * + * \see textEncoding() + * \see render() + */ + void setTextEncoding(String::Type encoding); + + /*! + * Parses this frame as PropertyMap with a single key. + * - if description() is empty or "COMMENT", the key will be "COMMENT" + * - if description() is not a valid PropertyMap key, the frame will be + * marked unsupported by an entry "COMM/" in the unsupportedData() + * attribute of the returned map. + * - otherwise, the key will be "COMMENT:" + * - The single value will be the frame's text(). + */ + PropertyMap asProperties() const; + + /*! + * Comments each have a unique description. This searches for a comment + * frame with the decription \a d and returns a pointer to it. If no + * frame is found that matches the given description null is returned. + * + * \see description() + */ + static CommentsFrame *findByDescription(const Tag *tag, const String &d); + + protected: + // Reimplementations. + + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + private: + /*! + * The constructor used by the FrameFactory. + */ + CommentsFrame(const ByteVector &data, Header *h); + CommentsFrame(const CommentsFrame &); + CommentsFrame &operator=(const CommentsFrame &); + + class CommentsFramePrivate; + CommentsFramePrivate *d; + }; + + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/fileref.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/fileref.h new file mode 100644 index 0000000..0f0c21a --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/fileref.h @@ -0,0 +1,263 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_FILEREF_H +#define TAGLIB_FILEREF_H + +#include "tfile.h" +#include "tstringlist.h" + +#include "taglib_export.h" +#include "audioproperties.h" + +namespace TagLib { + + class Tag; + + //! This class provides a simple abstraction for creating and handling files + + /*! + * FileRef exists to provide a minimal, generic and value-based wrapper around + * a File. It is lightweight and implicitly shared, and as such suitable for + * pass-by-value use. This hides some of the uglier details of TagLib::File + * and the non-generic portions of the concrete file implementations. + * + * This class is useful in a "simple usage" situation where it is desirable + * to be able to get and set some of the tag information that is similar + * across file types. + * + * Also note that it is probably a good idea to plug this into your mime + * type system rather than using the constructor that accepts a file name using + * the FileTypeResolver. + * + * \see FileTypeResolver + * \see addFileTypeResolver() + */ + + class TAGLIB_EXPORT FileRef + { + public: + + //! A class for pluggable file type resolution. + + /*! + * This class is used to add extend TagLib's very basic file name based file + * type resolution. + * + * This can be accomplished with: + * + * \code + * + * class MyFileTypeResolver : FileTypeResolver + * { + * TagLib::File *createFile(TagLib::FileName *fileName, bool, AudioProperties::ReadStyle) + * { + * if(someCheckForAnMP3File(fileName)) + * return new TagLib::MPEG::File(fileName); + * return 0; + * } + * } + * + * FileRef::addFileTypeResolver(new MyFileTypeResolver); + * + * \endcode + * + * Naturally a less contrived example would be slightly more complex. This + * can be used to plug in mime-type detection systems or to add new file types + * to TagLib. + */ + + class TAGLIB_EXPORT FileTypeResolver + { + TAGLIB_IGNORE_MISSING_DESTRUCTOR + public: + /*! + * This method must be overridden to provide an additional file type + * resolver. If the resolver is able to determine the file type it should + * return a valid File object; if not it should return 0. + * + * \note The created file is then owned by the FileRef and should not be + * deleted. Deletion will happen automatically when the FileRef passes + * out of scope. + */ + virtual File *createFile(FileName fileName, + bool readAudioProperties = true, + AudioProperties::ReadStyle + audioPropertiesStyle = AudioProperties::Average) const = 0; + }; + + /*! + * Creates a null FileRef. + */ + FileRef(); + + /*! + * Create a FileRef from \a fileName. If \a readAudioProperties is true then + * the audio properties will be read using \a audioPropertiesStyle. If + * \a readAudioProperties is false then \a audioPropertiesStyle will be + * ignored. + * + * Also see the note in the class documentation about why you may not want to + * use this method in your application. + */ + explicit FileRef(FileName fileName, + bool readAudioProperties = true, + AudioProperties::ReadStyle + audioPropertiesStyle = AudioProperties::Average); + + /*! + * Contruct a FileRef using \a file. The FileRef now takes ownership of the + * pointer and will delete the File when it passes out of scope. + */ + explicit FileRef(File *file); + + /*! + * Make a copy of \a ref. + */ + FileRef(const FileRef &ref); + + /*! + * Destroys this FileRef instance. + */ + virtual ~FileRef(); + + /*! + * Returns a pointer to represented file's tag. + * + * \warning This pointer will become invalid when this FileRef and all + * copies pass out of scope. + * + * \warning Do not cast it to any subclasses of \class Tag. + * Use tag returning methods of appropriate subclasses of \class File instead. + * + * \see File::tag() + */ + Tag *tag() const; + + /*! + * Returns the audio properties for this FileRef. If no audio properties + * were read then this will returns a null pointer. + */ + AudioProperties *audioProperties() const; + + /*! + * Returns a pointer to the file represented by this handler class. + * + * As a general rule this call should be avoided since if you need to work + * with file objects directly, you are probably better served instantiating + * the File subclasses (i.e. MPEG::File) manually and working with their APIs. + * + * This handle exists to provide a minimal, generic and value-based + * wrapper around a File. Accessing the file directly generally indicates + * a moving away from this simplicity (and into things beyond the scope of + * FileRef). + * + * \warning This pointer will become invalid when this FileRef and all + * copies pass out of scope. + */ + File *file() const; + + /*! + * Saves the file. Returns true on success. + */ + bool save(); + + /*! + * Adds a FileTypeResolver to the list of those used by TagLib. Each + * additional FileTypeResolver is added to the front of a list of resolvers + * that are tried. If the FileTypeResolver returns zero the next resolver + * is tried. + * + * Returns a pointer to the added resolver (the same one that's passed in -- + * this is mostly so that static inialializers have something to use for + * assignment). + * + * \see FileTypeResolver + */ + static const FileTypeResolver *addFileTypeResolver(const FileTypeResolver *resolver); + + /*! + * As is mentioned elsewhere in this class's documentation, the default file + * type resolution code provided by TagLib only works by comparing file + * extensions. + * + * This method returns the list of file extensions that are used by default. + * + * The extensions are all returned in lowercase, though the comparison used + * by TagLib for resolution is case-insensitive. + * + * \note This does not account for any additional file type resolvers that + * are plugged in. Also note that this is not intended to replace a propper + * mime-type resolution system, but is just here for reference. + * + * \see FileTypeResolver + */ + static StringList defaultFileExtensions(); + + /*! + * Returns true if the file (and as such other pointers) are null. + */ + bool isNull() const; + + /*! + * Assign the file pointed to by \a ref to this FileRef. + */ + FileRef &operator=(const FileRef &ref); + + /*! + * Returns true if this FileRef and \a ref point to the same File object. + */ + bool operator==(const FileRef &ref) const; + + /*! + * Returns true if this FileRef and \a ref do not point to the same File + * object. + */ + bool operator!=(const FileRef &ref) const; + + /*! + * A simple implementation of file type guessing. If \a readAudioProperties + * is true then the audio properties will be read using + * \a audioPropertiesStyle. If \a readAudioProperties is false then + * \a audioPropertiesStyle will be ignored. + * + * \note You generally shouldn't use this method, but instead the constructor + * directly. + * + * \deprecated + */ + static File *create(FileName fileName, + bool readAudioProperties = true, + AudioProperties::ReadStyle audioPropertiesStyle = AudioProperties::Average); + + + private: + class FileRefPrivate; + FileRefPrivate *d; + }; + +} // namespace TagLib + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/flacfile.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/flacfile.h new file mode 100644 index 0000000..31dfebd --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/flacfile.h @@ -0,0 +1,258 @@ +/*************************************************************************** + copyright : (C) 2003 by Allan Sandfeld Jensen + email : kde@carewolf.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_FLACFILE_H +#define TAGLIB_FLACFILE_H + +#include "taglib_export.h" +#include "tfile.h" +#include "tlist.h" +#include "tag.h" + +#include "flacpicture.h" +#include "flacproperties.h" + +namespace TagLib { + + class Tag; + namespace ID3v2 { class FrameFactory; class Tag; } + namespace ID3v1 { class Tag; } + namespace Ogg { class XiphComment; } + + //! An implementation of FLAC metadata + + /*! + * This is implementation of FLAC metadata for non-Ogg FLAC files. At some + * point when Ogg / FLAC is more common there will be a similar implementation + * under the Ogg hiearchy. + * + * This supports ID3v1, ID3v2 and Xiph style comments as well as reading stream + * properties from the file. + */ + + namespace FLAC { + + //! An implementation of TagLib::File with FLAC specific methods + + /*! + * This implements and provides an interface for FLAC files to the + * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing + * the abstract TagLib::File API as well as providing some additional + * information specific to FLAC files. + */ + + class TAGLIB_EXPORT File : public TagLib::File + { + public: + /*! + * Contructs a FLAC file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + * + * \deprecated This constructor will be dropped in favor of the one below + * in a future version. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs a FLAC file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + * + * If this file contains and ID3v2 tag the frames will be created using + * \a frameFactory. + */ + // BIC: merge with the above constructor + File(FileName file, ID3v2::FrameFactory *frameFactory, + bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs a FLAC file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + * + * If this file contains and ID3v2 tag the frames will be created using + * \a frameFactory. + */ + // BIC: merge with the above constructor + File(IOStream *stream, ID3v2::FrameFactory *frameFactory, + bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns the Tag for this file. This will be a union of XiphComment, + * ID3v1 and ID3v2 tags. + * + * \see ID3v2Tag() + * \see ID3v1Tag() + * \see XiphComment() + */ + virtual TagLib::Tag *tag() const; + + /*! + * Implements the unified property interface -- export function. + * If the file contains more than one tag (e.g. XiphComment and ID3v1), + * only the first one (in the order XiphComment, ID3v2, ID3v1) will be + * converted to the PropertyMap. + */ + PropertyMap properties() const; + + void removeUnsupportedProperties(const StringList &); + + /*! + * Implements the unified property interface -- import function. + * As with the export, only one tag is taken into account. If the file + * has no tag at all, a XiphComment will be created. + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Returns the FLAC::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + /*! + * Save the file. This will primarily save the XiphComment, but + * will also keep any old ID3-tags up to date. If the file + * has no XiphComment, one will be constructed from the ID3-tags. + * + * This returns true if the save was successful. + */ + virtual bool save(); + + /*! + * Returns a pointer to the ID3v2 tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid ID3v2 tag. If \a create is true it will create + * an ID3v2 tag if one does not exist. + * + * \note The Tag is still owned by the FLAC::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + ID3v2::Tag *ID3v2Tag(bool create = false); + + /*! + * Returns a pointer to the ID3v1 tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid ID3v1 tag. If \a create is true it will create + * an ID3v1 tag if one does not exist. + * + * \note The Tag is still owned by the FLAC::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + ID3v1::Tag *ID3v1Tag(bool create = false); + + /*! + * Returns a pointer to the XiphComment for the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid XiphComment. If \a create is true it will create + * a XiphComment if one does not exist. + * + * \note The Tag is still owned by the FLAC::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + Ogg::XiphComment *xiphComment(bool create = false); + + /*! + * Set the ID3v2::FrameFactory to something other than the default. This + * can be used to specify the way that ID3v2 frames will be interpreted + * when + * + * \see ID3v2FrameFactory + */ + void setID3v2FrameFactory(const ID3v2::FrameFactory *factory); + + /*! + * Returns the block of data used by FLAC::Properties for parsing the + * stream properties. + * + * \deprecated This method will not be public in a future release. + */ + ByteVector streamInfoData(); // BIC: remove + + /*! + * Returns the length of the audio-stream, used by FLAC::Properties for + * calculating the bitrate. + * + * \deprecated This method will not be public in a future release. + */ + long streamLength(); // BIC: remove + + /*! + * Returns a list of pictures attached to the FLAC file. + */ + List pictureList(); + + /*! + * Removes an attached picture. If \a del is true the picture's memory + * will be freed; if it is false, it must be deleted by the user. + */ + void removePicture(Picture *picture, bool del = true); + + /*! + * Remove all attached images. + */ + void removePictures(); + + /*! + * Add a new picture to the file. The file takes ownership of the + * picture and will handle freeing its memory. + * + * \note The file will be saved only after calling save(). + */ + void addPicture(Picture *picture); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + void scan(); + long findID3v2(); + long findID3v1(); + ByteVector xiphCommentData() const; + long findPaddingBreak(long nextPageOffset, long targetOffset, bool *isLast); + + class FilePrivate; + FilePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/flacmetadatablock.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/flacmetadatablock.h new file mode 100644 index 0000000..41bca31 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/flacmetadatablock.h @@ -0,0 +1,75 @@ +/************************************************************************** + copyright : (C) 2010 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_FLACMETADATABLOCK_H +#define TAGLIB_FLACMETADATABLOCK_H + +#include "tlist.h" +#include "tbytevector.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace FLAC { + + class TAGLIB_EXPORT MetadataBlock + { + public: + MetadataBlock(); + virtual ~MetadataBlock(); + + enum BlockType { + StreamInfo = 0, + Padding, + Application, + SeekTable, + VorbisComment, + CueSheet, + Picture + }; + + /*! + * Returns the FLAC metadata block type. + */ + virtual int code() const = 0; + + /*! + * Render the content of the block. + */ + virtual ByteVector render() const = 0; + + private: + MetadataBlock(const MetadataBlock &item); + MetadataBlock &operator=(const MetadataBlock &item); + + class MetadataBlockPrivate; + MetadataBlockPrivate *d; + }; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/flacpicture.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/flacpicture.h new file mode 100644 index 0000000..b6def57 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/flacpicture.h @@ -0,0 +1,208 @@ +/************************************************************************** + copyright : (C) 2010 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_FLACPICTURE_H +#define TAGLIB_FLACPICTURE_H + +#include "tlist.h" +#include "tstring.h" +#include "tbytevector.h" +#include "taglib_export.h" +#include "flacmetadatablock.h" + +namespace TagLib { + + namespace FLAC { + + class TAGLIB_EXPORT Picture : public MetadataBlock + { + public: + + /*! + * This describes the function or content of the picture. + */ + enum Type { + //! A type not enumerated below + Other = 0x00, + //! 32x32 PNG image that should be used as the file icon + FileIcon = 0x01, + //! File icon of a different size or format + OtherFileIcon = 0x02, + //! Front cover image of the album + FrontCover = 0x03, + //! Back cover image of the album + BackCover = 0x04, + //! Inside leaflet page of the album + LeafletPage = 0x05, + //! Image from the album itself + Media = 0x06, + //! Picture of the lead artist or soloist + LeadArtist = 0x07, + //! Picture of the artist or performer + Artist = 0x08, + //! Picture of the conductor + Conductor = 0x09, + //! Picture of the band or orchestra + Band = 0x0A, + //! Picture of the composer + Composer = 0x0B, + //! Picture of the lyricist or text writer + Lyricist = 0x0C, + //! Picture of the recording location or studio + RecordingLocation = 0x0D, + //! Picture of the artists during recording + DuringRecording = 0x0E, + //! Picture of the artists during performance + DuringPerformance = 0x0F, + //! Picture from a movie or video related to the track + MovieScreenCapture = 0x10, + //! Picture of a large, coloured fish + ColouredFish = 0x11, + //! Illustration related to the track + Illustration = 0x12, + //! Logo of the band or performer + BandLogo = 0x13, + //! Logo of the publisher (record company) + PublisherLogo = 0x14 + }; + + Picture(); + Picture(const ByteVector &data); + ~Picture(); + + /*! + * Returns the type of the image. + */ + Type type() const; + + /*! + * Sets the type of the image. + */ + void setType(Type type); + + /*! + * Returns the mime type of the image. This should in most cases be + * "image/png" or "image/jpeg". + */ + String mimeType() const; + + /*! + * Sets the mime type of the image. This should in most cases be + * "image/png" or "image/jpeg". + */ + void setMimeType(const String &m); + + /*! + * Returns a text description of the image. + */ + + String description() const; + + /*! + * Sets a textual description of the image to \a desc. + */ + + void setDescription(const String &desc); + + /*! + * Returns the width of the image. + */ + int width() const; + + /*! + * Sets the width of the image. + */ + void setWidth(int w); + + /*! + * Returns the height of the image. + */ + int height() const; + + /*! + * Sets the height of the image. + */ + void setHeight(int h); + + /*! + * Returns the color depth (in bits-per-pixel) of the image. + */ + int colorDepth() const; + + /*! + * Sets the color depth (in bits-per-pixel) of the image. + */ + void setColorDepth(int depth); + + /*! + * Returns the number of colors used on the image.. + */ + int numColors() const; + + /*! + * Sets the number of colors used on the image (for indexed images). + */ + void setNumColors(int numColors); + + /*! + * Returns the image data. + */ + ByteVector data() const; + + /*! + * Sets the image data. + */ + void setData(const ByteVector &data); + + /*! + * Returns the FLAC metadata block type. + */ + int code() const; + + /*! + * Render the content to the FLAC picture block format. + */ + ByteVector render() const; + + /*! + * Parse the picture data in the FLAC picture block format. + */ + bool parse(const ByteVector &rawData); + + private: + Picture(const Picture &item); + Picture &operator=(const Picture &item); + + class PicturePrivate; + PicturePrivate *d; + }; + + typedef List PictureList; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/flacproperties.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/flacproperties.h new file mode 100644 index 0000000..c145898 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/flacproperties.h @@ -0,0 +1,103 @@ +/*************************************************************************** + copyright : (C) 2003 by Allan Sandfeld Jensen + email : kde@carewolf.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_FLACPROPERTIES_H +#define TAGLIB_FLACPROPERTIES_H + +#include "taglib_export.h" +#include "audioproperties.h" + +namespace TagLib { + + namespace FLAC { + + class File; + + //! An implementation of audio property reading for FLAC + + /*! + * This reads the data from an FLAC stream found in the AudioProperties + * API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of FLAC::Properties with the data read from the + * ByteVector \a data. + */ + // BIC: switch to const reference + Properties(ByteVector data, long streamLength, ReadStyle style = Average); + + /*! + * Create an instance of FLAC::Properties with the data read from the + * FLAC::File \a file. + */ + // BIC: remove + Properties(File *file, ReadStyle style = Average); + + /*! + * Destroys this FLAC::Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + /*! + * Returns the sample width as read from the FLAC identification + * header. + */ + int sampleWidth() const; + + /*! + * Return the number of sample frames + */ + unsigned long long sampleFrames() const; + + /*! + * Returns the MD5 signature of the uncompressed audio stream as read + * from the stream info header header. + */ + ByteVector signature() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void read(); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/flacunknownmetadatablock.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/flacunknownmetadatablock.h new file mode 100644 index 0000000..3030254 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/flacunknownmetadatablock.h @@ -0,0 +1,81 @@ +/************************************************************************** + copyright : (C) 2010 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_FLACUNKNOWNMETADATABLOCK_H +#define TAGLIB_FLACUNKNOWNMETADATABLOCK_H + +#include "tlist.h" +#include "tbytevector.h" +#include "taglib_export.h" +#include "flacmetadatablock.h" + +namespace TagLib { + + namespace FLAC { + + class TAGLIB_EXPORT UnknownMetadataBlock : public MetadataBlock + { + public: + UnknownMetadataBlock(int blockType, const ByteVector &data); + ~UnknownMetadataBlock(); + + /*! + * Returns the FLAC metadata block type. + */ + int code() const; + + /*! + * Sets the FLAC metadata block type. + */ + void setCode(int code); + + /*! + * Returns the FLAC metadata block type. + */ + ByteVector data() const; + + /*! + * Sets the FLAC metadata block type. + */ + void setData(const ByteVector &data); + + /*! + * Render the content of the block. + */ + ByteVector render() const; + + private: + UnknownMetadataBlock(const MetadataBlock &item); + UnknownMetadataBlock &operator=(const MetadataBlock &item); + + class UnknownMetadataBlockPrivate; + UnknownMetadataBlockPrivate *d; + }; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/generalencapsulatedobjectframe.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/generalencapsulatedobjectframe.h new file mode 100644 index 0000000..42f854c --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/generalencapsulatedobjectframe.h @@ -0,0 +1,178 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + copyright : (C) 2006 by Aaron VonderHaar + email : avh4@users.sourceforge.net + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_GENERALENCAPSULATEDOBJECT_H +#define TAGLIB_GENERALENCAPSULATEDOBJECT_H + +#include "id3v2frame.h" +#include "id3v2header.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace ID3v2 { + + //! An ID3v2 general encapsulated object frame implementation + + /*! + * This is an implementation of ID3v2 general encapsulated objects. + * Arbitrary binary data may be included in tags, stored in GEOB frames. + * There may be multiple GEOB frames in a single tag. Each GEOB it + * labelled with a content description (which may be blank), a required + * mime-type, and a file name (may be blank). The content description + * uniquely identifies the GEOB frame in the tag. + */ + + class TAGLIB_EXPORT GeneralEncapsulatedObjectFrame : public Frame + { + friend class FrameFactory; + + public: + + /*! + * Constructs an empty object frame. The description, file name and text + * encoding should be set manually. + */ + GeneralEncapsulatedObjectFrame(); + + /*! + * Constructs a GeneralEncapsulatedObjectFrame frame based on \a data. + * + * \warning This is \em not data for the encapsulated object, for that use + * setObject(). This constructor is used when reading the frame from the + * disk. + */ + explicit GeneralEncapsulatedObjectFrame(const ByteVector &data); + + /*! + * Destroys the GeneralEncapsulatedObjectFrame instance. + */ + virtual ~GeneralEncapsulatedObjectFrame(); + + /*! + * Returns a string containing the description, file name and mime-type + */ + virtual String toString() const; + + /*! + * Returns the text encoding used for the description and file name. + * + * \see setTextEncoding() + * \see description() + * \see fileName() + */ + String::Type textEncoding() const; + + /*! + * Set the text encoding used for the description and file name. + * + * \see description() + * \see fileName() + */ + void setTextEncoding(String::Type encoding); + + /*! + * Returns the mime type of the object. + */ + String mimeType() const; + + /*! + * Sets the mime type of the object. + */ + void setMimeType(const String &type); + + /*! + * Returns the file name of the object. + * + * \see setFileName() + */ + String fileName() const; + + /*! + * Sets the file name for the object. + * + * \see fileName() + */ + void setFileName(const String &name); + + /*! + * Returns the content description of the object. + * + * \see setDescription() + * \see textEncoding() + * \see setTextEncoding() + */ + + String description() const; + + /*! + * Sets the content description of the object to \a desc. + * + * \see description() + * \see textEncoding() + * \see setTextEncoding() + */ + + void setDescription(const String &desc); + + /*! + * Returns the object data as a ByteVector. + * + * \note ByteVector has a data() method that returns a const char * which + * should make it easy to export this data to external programs. + * + * \see setObject() + * \see mimeType() + */ + ByteVector object() const; + + /*! + * Sets the object data to \a data. \a data should be of the type specified in + * this frame's mime-type specification. + * + * \see object() + * \see mimeType() + * \see setMimeType() + */ + void setObject(const ByteVector &object); + + protected: + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + private: + GeneralEncapsulatedObjectFrame(const ByteVector &data, Header *h); + GeneralEncapsulatedObjectFrame(const GeneralEncapsulatedObjectFrame &); + GeneralEncapsulatedObjectFrame &operator=(const GeneralEncapsulatedObjectFrame &); + + class GeneralEncapsulatedObjectFramePrivate; + GeneralEncapsulatedObjectFramePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v1genres.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v1genres.h new file mode 100644 index 0000000..271f725 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v1genres.h @@ -0,0 +1,66 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ID3V1GENRE_H +#define TAGLIB_ID3V1GENRE_H + +#include "tmap.h" +#include "tstringlist.h" +#include "taglib_export.h" + +namespace TagLib { + namespace ID3v1 { + + typedef Map GenreMap; + + /*! + * Returns the list of canonical ID3v1 genre names in the order that they + * are listed in the standard. + */ + StringList TAGLIB_EXPORT genreList(); + + /*! + * A "reverse mapping" that goes from the canonical ID3v1 genre name to the + * respective genre number. genreMap()["Rock"] == + */ + GenreMap TAGLIB_EXPORT genreMap(); + + /*! + * Returns the name of the genre at \a index in the ID3v1 genre list. If + * \a index is out of range -- less than zero or greater than 146 -- a null + * string will be returned. + */ + String TAGLIB_EXPORT genre(int index); + + /*! + * Returns the genre index for the (case sensitive) genre \a name. If the + * genre is not in the list 255 (which signifies an unknown genre in ID3v1) + * will be returned. + */ + int TAGLIB_EXPORT genreIndex(const String &name); + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v1tag.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v1tag.h new file mode 100644 index 0000000..a90ac53 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v1tag.h @@ -0,0 +1,182 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ID3V1TAG_H +#define TAGLIB_ID3V1TAG_H + +#include "tag.h" +#include "tbytevector.h" +#include "taglib_export.h" + +namespace TagLib { + + class File; + + //! An ID3v1 implementation + + namespace ID3v1 { + + //! A abstraction for the string to data encoding in ID3v1 tags. + + /*! + * ID3v1 should in theory always contain ISO-8859-1 (Latin1) data. In + * practice it does not. TagLib by default only supports ISO-8859-1 data + * in ID3v1 tags. + * + * However by subclassing this class and reimplementing parse() and render() + * and setting your reimplementation as the default with + * ID3v1::Tag::setStringHandler() you can define how you would like these + * transformations to be done. + * + * \warning It is advisable not to write non-ISO-8859-1 data to ID3v1 + * tags. Please consider disabling the writing of ID3v1 tags in the case + * that the data is not ISO-8859-1. + * + * \see ID3v1::Tag::setStringHandler() + */ + + class TAGLIB_EXPORT StringHandler + { + TAGLIB_IGNORE_MISSING_DESTRUCTOR + public: + // BIC: Add virtual destructor. + StringHandler(); + + /*! + * Decode a string from \a data. The default implementation assumes that + * \a data is an ISO-8859-1 (Latin1) character array. + */ + virtual String parse(const ByteVector &data) const; + + /*! + * Encode a ByteVector with the data from \a s. The default implementation + * assumes that \a s is an ISO-8859-1 (Latin1) string. If the string is + * does not conform to ISO-8859-1, no value is written. + * + * \warning It is recommended that you not override this method, but + * instead do not write an ID3v1 tag in the case that the data is not + * ISO-8859-1. + */ + virtual ByteVector render(const String &s) const; + }; + + //! The main class in the ID3v1 implementation + + /*! + * This is an implementation of the ID3v1 format. ID3v1 is both the simplist + * and most common of tag formats but is rather limited. Because of its + * pervasiveness and the way that applications have been written around the + * fields that it provides, the generic TagLib::Tag API is a mirror of what is + * provided by ID3v1. + * + * ID3v1 tags should generally only contain Latin1 information. However because + * many applications do not follow this rule there is now support for overriding + * the ID3v1 string handling using the ID3v1::StringHandler class. Please see + * the documentation for that class for more information. + * + * \see StringHandler + * + * \note Most fields are truncated to a maximum of 28-30 bytes. The + * truncation happens automatically when the tag is rendered. + */ + + class TAGLIB_EXPORT Tag : public TagLib::Tag + { + public: + /*! + * Create an ID3v1 tag with default values. + */ + Tag(); + + /*! + * Create an ID3v1 tag and parse the data in \a file starting at + * \a tagOffset. + */ + Tag(File *file, long tagOffset); + + /*! + * Destroys this Tag instance. + */ + virtual ~Tag(); + + /*! + * Renders the in memory values to a ByteVector suitable for writing to + * the file. + */ + ByteVector render() const; + + /*! + * Returns the string "TAG" suitable for usage in locating the tag in a + * file. + */ + static ByteVector fileIdentifier(); + + // Reimplementations. + + virtual String title() const; + virtual String artist() const; + virtual String album() const; + virtual String comment() const; + virtual String genre() const; + virtual uint year() const; + virtual uint track() const; + + virtual void setTitle(const String &s); + virtual void setArtist(const String &s); + virtual void setAlbum(const String &s); + virtual void setComment(const String &s); + virtual void setGenre(const String &s); + virtual void setYear(uint i); + virtual void setTrack(uint i); + + /*! + * Sets the string handler that decides how the ID3v1 data will be + * converted to and from binary data. + * + * \see StringHandler + */ + static void setStringHandler(const StringHandler *handler); + + protected: + /*! + * Reads from the file specified in the constructor. + */ + void read(); + /*! + * Pareses the body of the tag in \a data. + */ + void parse(const ByteVector &data); + + private: + Tag(const Tag &); + Tag &operator=(const Tag &); + + class TagPrivate; + TagPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2extendedheader.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2extendedheader.h new file mode 100644 index 0000000..d7227e9 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2extendedheader.h @@ -0,0 +1,93 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ID3V2EXTENDEDHEADER_H +#define TAGLIB_ID3V2EXTENDEDHEADER_H + +#include "taglib_export.h" +#include "tbytevector.h" +#include "taglib.h" + +namespace TagLib { + + namespace ID3v2 { + + //! ID3v2 extended header implementation + + /*! + * This class implements ID3v2 extended headers. It attempts to follow, + * both semantically and programatically, the structure specified in + * the ID3v2 standard. The API is based on the properties of ID3v2 extended + * headers specified there. If any of the terms used in this documentation + * are unclear please check the specification in the linked section. + * (Structure, 3.2) + */ + + class TAGLIB_EXPORT ExtendedHeader + { + public: + /*! + * Constructs an empty ID3v2 extended header. + */ + ExtendedHeader(); + + /*! + * Destroys the extended header. + */ + virtual ~ExtendedHeader(); + + /*! + * Returns the size of the extended header. This is variable for the + * extended header. + */ + uint size() const; + + /*! + * Sets the data that will be used as the extended header. Since the + * length is not known before the extended header has been parsed, this + * should just be a pointer to the first byte of the extended header. It + * will determine the length internally and make that available through + * size(). + */ + void setData(const ByteVector &data); + + protected: + /*! + * Called by setData() to parse the extended header data. It makes this + * information available through the public API. + */ + void parse(const ByteVector &data); + + private: + ExtendedHeader(const ExtendedHeader &); + ExtendedHeader &operator=(const ExtendedHeader &); + + class ExtendedHeaderPrivate; + ExtendedHeaderPrivate *d; + }; + + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2footer.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2footer.h new file mode 100644 index 0000000..1374a14 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2footer.h @@ -0,0 +1,82 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ID3V2FOOTER_H +#define TAGLIB_ID3V2FOOTER_H + +#include "taglib_export.h" +#include "tbytevector.h" + +namespace TagLib { + + namespace ID3v2 { + + class Header; + + //! ID3v2 footer implementation + + /*! + * Per the ID3v2 specification, the tag's footer is just a copy of the + * information in the header. As such there is no API for reading the + * data from the header, it can just as easily be done from the header. + * + * In fact, at this point, TagLib does not even parse the footer since + * it is not useful internally. However, if the flag to include a footer + * has been set in the ID3v2::Tag, TagLib will render a footer. + */ + + class TAGLIB_EXPORT Footer + { + public: + /*! + * Constructs an empty ID3v2 footer. + */ + Footer(); + /*! + * Destroys the footer. + */ + virtual ~Footer(); + + /*! + * Returns the size of the footer. Presently this is always 10 bytes. + */ + static uint size(); + + /*! + * Renders the footer based on the data in \a header. + */ + ByteVector render(const Header *header) const; + + private: + Footer(const Footer &); + Footer &operator=(const Footer &); + + class FooterPrivate; + FooterPrivate *d; + }; + + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2frame.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2frame.h new file mode 100644 index 0000000..95c4070 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2frame.h @@ -0,0 +1,509 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ID3V2FRAME_H +#define TAGLIB_ID3V2FRAME_H + +#include "tstring.h" +#include "tbytevector.h" +#include "taglib_export.h" + +namespace TagLib { + + class StringList; + class PropertyMap; + + namespace ID3v2 { + + class Tag; + class FrameFactory; + + //! ID3v2 frame implementation + + /*! + * This class is the main ID3v2 frame implementation. In ID3v2, a tag is + * split between a collection of frames (which are in turn split into fields + * (Structure, 4) + * (Frames). This class provides an API for + * gathering information about and modifying ID3v2 frames. Funtionallity + * specific to a given frame type is handed in one of the many subclasses. + */ + + class TAGLIB_EXPORT Frame + { + friend class Tag; + friend class FrameFactory; + + public: + + /*! + * Creates a textual frame which corresponds to a single key in the PropertyMap + * interface. These are all (User)TextIdentificationFrames except TIPL and TMCL, + * all (User)URLLinkFrames, CommentsFrames, and UnsynchronizedLyricsFrame. + */ + static Frame *createTextualFrame(const String &key, const StringList &values); + + /*! + * Destroys this Frame instance. + */ + virtual ~Frame(); + + /*! + * Returns the Frame ID (Structure, 4) + * (Frames, 4) + */ + ByteVector frameID() const; + + /*! + * Returns the size of the frame. + */ + uint size() const; + + /*! + * Returns the size of the frame header + * + * \deprecated This is only accurate for ID3v2.3 or ID3v2.4. Please use + * the call below which accepts an ID3v2 version number. In the next + * non-binary compatible release this will be made into a non-static + * member that checks the internal ID3v2 version. + */ + static uint headerSize(); // BIC: remove and make non-static + + /*! + * Returns the size of the frame header for the given ID3v2 version. + * + * \deprecated Please see the explanation above. + */ + static uint headerSize(uint version); // BIC: remove and make non-static + + /*! + * Sets the data that will be used as the frame. Since the length is not + * known before the frame has been parsed, this should just be a pointer to + * the first byte of the frame. It will determine the length internally + * and make that available through size(). + */ + void setData(const ByteVector &data); + + /*! + * Set the text of frame in the sanest way possible. This should only be + * reimplemented in frames where there is some logical mapping to text. + * + * \note If the frame type supports multiple text encodings, this will not + * change the text encoding of the frame; the string will be converted to + * that frame's encoding. Please use the specific APIs of the frame types + * to set the encoding if that is desired. + */ + virtual void setText(const String &text); + + /*! + * This returns the textual representation of the data in the frame. + * Subclasses must reimplement this method to provide a string + * representation of the frame's data. + */ + virtual String toString() const = 0; + + /*! + * Render the frame back to its binary format in a ByteVector. + */ + ByteVector render() const; + + /*! + * Returns the text delimiter that is used between fields for the string + * type \a t. + */ + static ByteVector textDelimiter(String::Type t); + + /*! + * The string with which an instrument name is prefixed to build a key in a PropertyMap; + * used to translate PropertyMaps to TMCL frames. In the current implementation, this + * is "PERFORMER:". + */ + static const String instrumentPrefix; + /*! + * The PropertyMap key prefix which triggers the use of a COMM frame instead of a TXXX + * frame for a non-standard key. In the current implementation, this is "COMMENT:". + */ + static const String commentPrefix; + /*! + * The PropertyMap key prefix which triggers the use of a USLT frame instead of a TXXX + * frame for a non-standard key. In the current implementation, this is "LYRICS:". + */ + static const String lyricsPrefix; + /*! + * The PropertyMap key prefix which triggers the use of a WXXX frame instead of a TXX + * frame for a non-standard key. In the current implementation, this is "URL:". + */ + static const String urlPrefix; + + protected: + class Header; + + /*! + * Constructs an ID3v2 frame using \a data to read the header information. + * All other processing of \a data should be handled in a subclass. + * + * \note This need not contain anything more than a frame ID, but + * \e must constain at least that. + */ + explicit Frame(const ByteVector &data); + + /*! + * This creates an Frame using the header \a h. + * + * The ownership of this header will be assigned to the frame and the + * header will be deleted when the frame is destroyed. + */ + Frame(Header *h); + + /*! + * Returns a pointer to the frame header. + */ + Header *header() const; + + /*! + * Sets the header to \a h. If \a deleteCurrent is true, this will free + * the memory of the current header. + * + * The ownership of this header will be assigned to the frame and the + * header will be deleted when the frame is destroyed. + */ + void setHeader(Header *h, bool deleteCurrent = true); + + /*! + * Called by setData() to parse the frame data. It makes this information + * available through the public API. + */ + void parse(const ByteVector &data); + + /*! + * Called by parse() to parse the field data. It makes this information + * available through the public API. This must be overridden by the + * subclasses. + */ + virtual void parseFields(const ByteVector &data) = 0; + + /*! + * Render the field data back to a binary format in a ByteVector. This + * must be overridden by subclasses. + */ + virtual ByteVector renderFields() const = 0; + + /*! + * Returns a ByteVector containing the field data given the frame data. + * This correctly adjusts for the header size plus any additional frame + * data that's specified in the frame header flags. + */ + ByteVector fieldData(const ByteVector &frameData) const; + + /*! + * Reads a String of type \a encodiong from the ByteVector \a data. If \a + * position is passed in it is used both as the starting point and is + * updated to replect the position just after the string that has been read. + * This is useful for reading strings sequentially. + */ + String readStringField(const ByteVector &data, String::Type encoding, + int *positon = 0); + + /*! + * Checks a the list of string values to see if they can be used with the + * specified encoding and returns the recommended encoding. + */ + // BIC: remove and make non-static + static String::Type checkEncoding(const StringList &fields, + String::Type encoding); + + /*! + * Checks a the list of string values to see if they can be used with the + * specified encoding and returns the recommended encoding. This method + * also checks the ID3v2 version and makes sure the encoding can be used + * in the specified version. + */ + // BIC: remove and make non-static + static String::Type checkEncoding(const StringList &fields, + String::Type encoding, uint version); + + /*! + * Checks a the list of string values to see if they can be used with the + * specified encoding and returns the recommended encoding. This method + * also checks the ID3v2 version and makes sure the encoding can be used + * in the version specified by the frame's header. + */ + String::Type checkTextEncoding(const StringList &fields, + String::Type encoding) const; + + + /*! + * Parses the contents of this frame as PropertyMap. If that fails, the returend + * PropertyMap will be empty, and its unsupportedData() will contain this frame's + * ID. + * BIC: Will be a virtual function in future releases. + */ + PropertyMap asProperties() const; + + /*! + * Returns an appropriate ID3 frame ID for the given free-form tag key. This method + * will return ByteVector::null if no specialized translation is found. + */ + static ByteVector keyToFrameID(const String &); + + /*! + * Returns a free-form tag name for the given ID3 frame ID. Note that this does not work + * for general frame IDs such as TXXX or WXXX; in such a case String::null is returned. + */ + static String frameIDToKey(const ByteVector &); + + + /*! + * This helper function splits the PropertyMap \a original into three ProperytMaps + * \a singleFrameProperties, \a tiplProperties, and \a tmclProperties, such that: + * - \a singleFrameProperties contains only of keys which can be represented with + * exactly one ID3 frame per key. In the current implementation + * this is everything except for the fixed "involved people" keys and keys of the + * form "TextIdentificationFrame::instrumentPrefix" + "instrument", which are + * mapped to a TMCL frame. + * - \a tiplProperties will consist of those keys that are present in + * TextIdentificationFrame::involvedPeopleMap() + * - \a tmclProperties contains the "musician credits" keys which should be mapped + * to a TMCL frame + */ + static void splitProperties(const PropertyMap &original, PropertyMap &singleFrameProperties, + PropertyMap &tiplProperties, PropertyMap &tmclProperties); + + private: + Frame(const Frame &); + Frame &operator=(const Frame &); + + class FramePrivate; + friend class FramePrivate; + FramePrivate *d; + }; + + //! ID3v2 frame header implementation + + /*! + * The ID3v2 Frame Header (Structure, 4) + * + * Every ID3v2::Frame has an associated header that gives some general + * properties of the frame and also makes it possible to identify the frame + * type. + * + * As such when reading an ID3v2 tag ID3v2::FrameFactory first creates the + * frame headers and then creates the appropriate Frame subclass based on + * the type and attaches the header. + */ + + class TAGLIB_EXPORT Frame::Header + { + public: + /*! + * Construct a Frame Header based on \a data. \a data must at least + * contain a 4 byte frame ID, and optionally can contain flag data and the + * frame size. i.e. Just the frame id -- "TALB" -- is a valid value. + * + * \deprecated Please use the constructor below that accepts a version + * number. + */ + Header(const ByteVector &data, bool synchSafeInts); + + /*! + * Construct a Frame Header based on \a data. \a data must at least + * contain a 4 byte frame ID, and optionally can contain flag data and the + * frame size. i.e. Just the frame id -- "TALB" -- is a valid value. + * + * \a version should be the ID3v2 version of the tag. + */ + explicit Header(const ByteVector &data, uint version = 4); + + /*! + * Destroys this Header instance. + */ + virtual ~Header(); + + /*! + * Sets the data for the Header. + * + * \deprecated Please use the version below that accepts an ID3v2 version + * number. + */ + void setData(const ByteVector &data, bool synchSafeInts); + + /*! + * Sets the data for the Header. \a version should indicate the ID3v2 + * version number of the tag that this frame is contained in. + */ + void setData(const ByteVector &data, uint version = 4); + + /*! + * Returns the Frame ID (Structure, 4) + * (Frames, 4) + */ + ByteVector frameID() const; + + /*! + * Sets the frame's ID to \a id. Only the first four bytes of \a id will + * be used. + * + * \warning This method should in general be avoided. It exists simply to + * provide a mechanism for transforming frames from a deprecated frame type + * to a newer one -- i.e. TYER to TDRC from ID3v2.3 to ID3v2.4. + */ + void setFrameID(const ByteVector &id); + + /*! + * Returns the size of the frame data portion, as set when setData() was + * called or set explicitly via setFrameSize(). + */ + uint frameSize() const; + + /*! + * Sets the size of the frame data portion. + */ + void setFrameSize(uint size); + + /*! + * Returns the ID3v2 version of the header, as passed in from the + * construction of the header or set via setVersion(). + */ + uint version() const; + + /*! + * Sets the ID3v2 version of the header, changing has impact on the + * correct parsing/rendering of frame data. + */ + void setVersion(uint version); + + /*! + * Returns the size of the frame header in bytes. + * + * \deprecated Please use the version of this method that accepts a + * version. This is only accurate for ID3v2.3 and ID3v2.4. This will be + * removed in the next binary incompatible release (2.0) and will be + * replaced with a non-static method that checks the frame version. + */ + static uint size(); + + /*! + * Returns the size of the frame header in bytes for the ID3v2 version + * that's given. + * + * \deprecated Please see the explanation in the version above. + */ + static uint size(uint version); + + /*! + * Returns true if the flag for tag alter preservation is set. + * + * The semantics are a little backwards from what would seem natural + * (setting the preservation flag to throw away the frame), but this + * follows the ID3v2 standard. + * + * \see setTagAlterPreservation() + */ + bool tagAlterPreservation() const; + + /*! + * Sets the flag for preservation of this frame if the tag is set. If + * this is set to true the frame will not be written when the tag is + * saved. + * + * The semantics are a little backwards from what would seem natural + * (setting the preservation flag to throw away the frame), but this + * follows the ID3v2 standard. + * + * \see tagAlterPreservation() + */ + void setTagAlterPreservation(bool discard); + + /*! + * Returns true if the flag for file alter preservation is set. + * + * \note This flag is currently ignored internally in TagLib. + */ + bool fileAlterPreservation() const; + + /*! + * Returns true if the frame is meant to be read only. + * + * \note This flag is currently ignored internally in TagLib. + */ + bool readOnly() const; + + /*! + * Returns true if the flag for the grouping identifity is set. + * + * \note This flag is currently ignored internally in TagLib. + */ + bool groupingIdentity() const; + + /*! + * Returns true if compression is enabled for this frame. + * + * \note This flag is currently ignored internally in TagLib. + */ + bool compression() const; + + /*! + * Returns true if encryption is enabled for this frame. + * + * \note This flag is currently ignored internally in TagLib. + */ + bool encryption() const; + +#ifndef DO_NOT_DOCUMENT + bool unsycronisation() const; +#endif + + /*! + * Returns true if unsynchronisation is enabled for this frame. + */ + bool unsynchronisation() const; + + /*! + * Returns true if the flag for a data length indicator is set. + */ + bool dataLengthIndicator() const; + + /*! + * Render the Header back to binary format in a ByteVector. + */ + ByteVector render() const; + + /*! + * \deprecated + */ + bool frameAlterPreservation() const; + + private: + Header(const Header &); + Header &operator=(const Header &); + + class HeaderPrivate; + HeaderPrivate *d; + }; + + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2framefactory.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2framefactory.h new file mode 100644 index 0000000..16419c7 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2framefactory.h @@ -0,0 +1,167 @@ + /*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ID3V2FRAMEFACTORY_H +#define TAGLIB_ID3V2FRAMEFACTORY_H + +#include "taglib_export.h" +#include "tbytevector.h" +#include "id3v2frame.h" +#include "id3v2header.h" + +namespace TagLib { + + namespace ID3v2 { + + class TextIdentificationFrame; + + //! A factory for creating ID3v2 frames during parsing + + /*! + * This factory abstracts away the frame creation process and instantiates + * the appropriate ID3v2::Frame subclasses based on the contents of the + * data. + * + * Reimplementing this factory is the key to adding support for frame types + * not directly supported by TagLib to your application. To do so you would + * subclass this factory reimplement createFrame(). Then by setting your + * factory to be the default factory in ID3v2::Tag constructor or with + * MPEG::File::setID3v2FrameFactory() you can implement behavior that will + * allow for new ID3v2::Frame subclasses (also provided by you) to be used. + * + * This implements both abstract factory and singleton patterns + * of which more information is available on the web and in software design + * textbooks (Notably Design Patters). + * + * \note You do not need to use this factory to create new frames to add to + * an ID3v2::Tag. You can instantiate frame subclasses directly (with new) + * and add them to a tag using ID3v2::Tag::addFrame() + * + * \see ID3v2::Tag::addFrame() + */ + + class TAGLIB_EXPORT FrameFactory + { + public: + static FrameFactory *instance(); + /*! + * Create a frame based on \a data. \a synchSafeInts should only be set + * false if we are parsing an old tag (v2.3 or older) that does not support + * synchsafe ints. + * + * \deprecated Please use the method below that accepts a ID3v2::Header + * instance in new code. + */ + Frame *createFrame(const ByteVector &data, bool synchSafeInts) const; + + /*! + * Create a frame based on \a data. \a version should indicate the ID3v2 + * version of the tag. As ID3v2.4 is the most current version of the + * standard 4 is the default. + * + * \deprecated Please use the method below that accepts a ID3v2::Header + * instance in new code. + */ + Frame *createFrame(const ByteVector &data, uint version = 4) const; + + /*! + * Create a frame based on \a data. \a tagHeader should be a valid + * ID3v2::Header instance. + */ + // BIC: make virtual + Frame *createFrame(const ByteVector &data, Header *tagHeader) const; + + /*! + * Returns the default text encoding for text frames. If setTextEncoding() + * has not been explicitly called this will only be used for new text + * frames. However, if this value has been set explicitly all frames will be + * converted to this type (unless it's explitly set differently for the + * individual frame) when being rendered. + * + * \see setDefaultTextEncoding() + */ + String::Type defaultTextEncoding() const; + + /*! + * Set the default text encoding for all text frames that are created to + * \a encoding. If no value is set the frames with either default to the + * encoding type that was parsed and new frames default to Latin1. + * + * Valid string types for ID3v2 tags are Latin1, UTF8, UTF16 and UTF16BE. + * + * \see defaultTextEncoding() + */ + void setDefaultTextEncoding(String::Type encoding); + + protected: + /*! + * Constructs a frame factory. Because this is a singleton this method is + * protected, but may be used for subclasses. + */ + FrameFactory(); + + /*! + * Destroys the frame factory. In most cases this will never be called (as + * is typical of singletons). + */ + virtual ~FrameFactory(); + + /*! + * This method checks for compliance to the current ID3v2 standard (2.4) + * and does nothing in the common case. However if a frame is found that + * is not compatible with the current standard, this method either updates + * the frame or indicates that it should be discarded. + * + * This method with return true (with or without changes to the frame) if + * this frame should be kept or false if it should be discarded. + * + * See the id3v2.4.0-changes.txt document for further information. + */ + virtual bool updateFrame(Frame::Header *header) const; + + private: + FrameFactory(const FrameFactory &); + FrameFactory &operator=(const FrameFactory &); + + /*! + * This method is used internally to convert a frame from ID \a from to ID + * \a to. If the frame matches the \a from pattern and converts the frame + * ID in the \a header or simply does nothing if the frame ID does not match. + */ + void convertFrame(const char *from, const char *to, + Frame::Header *header) const; + + void updateGenre(TextIdentificationFrame *frame) const; + + static FrameFactory factory; + + class FrameFactoryPrivate; + FrameFactoryPrivate *d; + }; + + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2header.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2header.h new file mode 100644 index 0000000..307ba96 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2header.h @@ -0,0 +1,175 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ID3V2HEADER_H +#define TAGLIB_ID3V2HEADER_H + +#include "tbytevector.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace ID3v2 { + + //! An implementation of ID3v2 headers + + /*! + * This class implements ID3v2 headers. It attempts to follow, both + * semantically and programatically, the structure specified in + * the ID3v2 standard. The API is based on the properties of ID3v2 headers + * specified there. If any of the terms used in this documentation are + * unclear please check the specification in the linked section. + * (Structure, 3.1) + */ + + class TAGLIB_EXPORT Header + { + public: + /*! + * Constructs an empty ID3v2 header. + */ + Header(); + + /*! + * Constructs an ID3v2 header based on \a data. parse() is called + * immediately. + */ + Header(const ByteVector &data); + + /*! + * Destroys the header. + */ + virtual ~Header(); + + /*! + * Returns the major version number. (Note: This is the 4, not the 2 in + * ID3v2.4.0. The 2 is implied.) + */ + uint majorVersion() const; + + /*! + * Set the the major version number to \a version. (Note: This is + * the 4, not the 2 in ID3v2.4.0. The 2 is implied.) + * \see majorVersion() + * + * \note This is used by the internal parser; this will not change the + * version which is written and in general should not be called by API + * users. + */ + void setMajorVersion(uint version); + + /*! + * Returns the revision number. (Note: This is the 0, not the 4 in + * ID3v2.4.0. The 2 is implied.) + */ + uint revisionNumber() const; + + /*! + * Returns true if unsynchronisation has been applied to all frames. + */ + bool unsynchronisation() const; + + /*! + * Returns true if an extended header is present in the tag. + */ + bool extendedHeader() const; + + /*! + * Returns true if the experimental indicator flag is set. + */ + bool experimentalIndicator() const; + + /*! + * Returns true if a footer is present in the tag. + */ + bool footerPresent() const; + /*! + * Returns the tag size in bytes. This is the size of the frame content. + * The size of the \e entire tag will be this plus the header size (10 + * bytes) and, if present, the footer size (potentially another 10 bytes). + * + * \note This is the value as read from the header to which TagLib attempts + * to provide an API to; it was not a design decision on the part of TagLib + * to not include the mentioned portions of the tag in the \e size. + * + * \see completeTagSize() + */ + uint tagSize() const; + + /*! + * Returns the tag size, including the header and, if present, the footer + * size. + * + * \see tagSize() + */ + uint completeTagSize() const; + + /*! + * Set the tag size to \a s. + * \see tagSize() + */ + void setTagSize(uint s); + + /*! + * Returns the size of the header. Presently this is always 10 bytes. + */ + static uint size(); + + /*! + * Returns the string used to identify and ID3v2 tag inside of a file. + * Presently this is always "ID3". + */ + static ByteVector fileIdentifier(); + + /*! + * Sets the data that will be used as the header. 10 bytes, starting from + * the beginning of \a data are used. + */ + void setData(const ByteVector &data); + + /*! + * Renders the Header back to binary format. + */ + ByteVector render() const; + + protected: + /*! + * Called by setData() to parse the header data. It makes this information + * available through the public API. + */ + void parse(const ByteVector &data); + + private: + Header(const Header &); + Header &operator=(const Header &); + + class HeaderPrivate; + HeaderPrivate *d; + }; + + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2synchdata.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2synchdata.h new file mode 100644 index 0000000..4a1f596 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2synchdata.h @@ -0,0 +1,70 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ID3V2SYNCHDATA_H +#define TAGLIB_ID3V2SYNCHDATA_H + +#include "tbytevector.h" +#include "taglib.h" + +namespace TagLib { + + namespace ID3v2 { + + //! A few functions for ID3v2 synch safe integer conversion + + /*! + * In the ID3v2.4 standard most integer values are encoded as "synch safe" + * integers which are encoded in such a way that they will not give false + * MPEG syncs and confuse MPEG decoders. This namespace provides some + * methods for converting to and from these values to ByteVectors for + * things rendering and parsing ID3v2 data. + */ + + namespace SynchData + { + /*! + * This returns the unsigned integer value of \a data where \a data is a + * ByteVector that contains a \e synchsafe integer (Structure, + * 6.2). The default \a length of + * 4 is used if another value is not specified. + */ + TAGLIB_EXPORT uint toUInt(const ByteVector &data); + + /*! + * Returns a 4 byte (32 bit) synchsafe integer based on \a value. + */ + TAGLIB_EXPORT ByteVector fromUInt(uint value); + + /*! + * Convert the data from unsynchronized data to its original format. + */ + TAGLIB_EXPORT ByteVector decode(const ByteVector &input); + } + + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2tag.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2tag.h new file mode 100644 index 0000000..94784e7 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/id3v2tag.h @@ -0,0 +1,361 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ID3V2TAG_H +#define TAGLIB_ID3V2TAG_H + +#include "tag.h" +#include "tbytevector.h" +#include "tstring.h" +#include "tlist.h" +#include "tmap.h" +#include "taglib_export.h" + +#include "id3v2framefactory.h" + +namespace TagLib { + + class File; + + //! An ID3v2 implementation + + /*! + * This is a relatively complete and flexible framework for working with ID3v2 + * tags. + * + * \see ID3v2::Tag + */ + + namespace ID3v2 { + + class Header; + class ExtendedHeader; + class Footer; + + typedef List FrameList; + typedef Map FrameListMap; + + //! The main class in the ID3v2 implementation + + /*! + * This is the main class in the ID3v2 implementation. It serves two + * functions. This first, as is obvious from the public API, is to provide a + * container for the other ID3v2 related classes. In addition, through the + * read() and parse() protected methods, it provides the most basic level of + * parsing. In these methods the ID3v2 tag is extracted from the file and + * split into data components. + * + * ID3v2 tags have several parts, TagLib attempts to provide an interface + * for them all. header(), footer() and extendedHeader() corespond to those + * data structures in the ID3v2 standard and the APIs for the classes that + * they return attempt to reflect this. + * + * Also ID3v2 tags are built up from a list of frames, which are in turn + * have a header and a list of fields. TagLib provides two ways of accessing + * the list of frames that are in a given ID3v2 tag. The first is simply + * via the frameList() method. This is just a list of pointers to the frames. + * The second is a map from the frame type -- i.e. "COMM" for comments -- and + * a list of frames of that type. (In some cases ID3v2 allows for multiple + * frames of the same type, hence this being a map to a list rather than just + * a map to an individual frame.) + * + * More information on the structure of frames can be found in the ID3v2::Frame + * class. + * + * read() and parse() pass binary data to the other ID3v2 class structures, + * they do not handle parsing of flags or fields, for instace. Those are + * handled by similar functions within those classes. + * + * \note All pointers to data structures within the tag will become invalid + * when the tag is destroyed. + * + * \warning Dealing with the nasty details of ID3v2 is not for the faint of + * heart and should not be done without much meditation on the spec. It's + * rather long, but if you're planning on messing with this class and others + * that deal with the details of ID3v2 (rather than the nice, safe, abstract + * TagLib::Tag and friends), it's worth your time to familiarize yourself + * with said spec (which is distrubuted with the TagLib sources). TagLib + * tries to do most of the work, but with a little luck, you can still + * convince it to generate invalid ID3v2 tags. The APIs for ID3v2 assume a + * working knowledge of ID3v2 structure. You're been warned. + */ + + class TAGLIB_EXPORT Tag : public TagLib::Tag + { + public: + /*! + * Constructs an empty ID3v2 tag. + * + * \note You must create at least one frame for this tag to be valid. + */ + Tag(); + + /*! + * Constructs an ID3v2 tag read from \a file starting at \a tagOffset. + * \a factory specifies which FrameFactory will be used for the + * construction of new frames. + * + * \note You should be able to ignore the \a factory parameter in almost + * all situations. You would want to specify your own FrameFactory + * subclass in the case that you are extending TagLib to support additional + * frame types, which would be incorperated into your factory. + * + * \see FrameFactory + */ + Tag(File *file, long tagOffset, + const FrameFactory *factory = FrameFactory::instance()); + + /*! + * Destroys this Tag instance. + */ + virtual ~Tag(); + + // Reimplementations. + + virtual String title() const; + virtual String artist() const; + virtual String album() const; + virtual String comment() const; + virtual String genre() const; + virtual uint year() const; + virtual uint track() const; + + virtual void setTitle(const String &s); + virtual void setArtist(const String &s); + virtual void setAlbum(const String &s); + virtual void setComment(const String &s); + virtual void setGenre(const String &s); + virtual void setYear(uint i); + virtual void setTrack(uint i); + + virtual bool isEmpty() const; + + /*! + * Returns a pointer to the tag's header. + */ + Header *header() const; + + /*! + * Returns a pointer to the tag's extended header or null if there is no + * extended header. + */ + ExtendedHeader *extendedHeader() const; + + /*! + * Returns a pointer to the tag's footer or null if there is no footer. + * + * \deprecated I don't see any reason to keep this around since there's + * nothing useful to be retrieved from the footer, but well, again, I'm + * prone to change my mind, so this gets to stay around until near a + * release. + */ + Footer *footer() const; + + /*! + * Returns a reference to the frame list map. This is an FrameListMap of + * all of the frames in the tag. + * + * This is the most convenient structure for accessing the tag's frames. + * Many frame types allow multiple instances of the same frame type so this + * is a map of lists. In most cases however there will only be a single + * frame of a certain type. + * + * Let's say for instance that you wanted to access the frame for total + * beats per minute -- the TBPM frame. + * + * \code + * TagLib::MPEG::File f("foo.mp3"); + * + * // Check to make sure that it has an ID3v2 tag + * + * if(f.ID3v2Tag()) { + * + * // Get the list of frames for a specific frame type + * + * TagLib::ID3v2::FrameList l = f.ID3v2Tag()->frameListMap()["TBPM"]; + * + * if(!l.isEmpty()) + * std::cout << l.front()->toString() << std::endl; + * } + * + * \endcode + * + * \warning You should not modify this data structure directly, instead + * use addFrame() and removeFrame(). + * + * \see frameList() + */ + const FrameListMap &frameListMap() const; + + /*! + * Returns a reference to the frame list. This is an FrameList of all of + * the frames in the tag in the order that they were parsed. + * + * This can be useful if for example you want iterate over the tag's frames + * in the order that they occur in the tag. + * + * \warning You should not modify this data structure directly, instead + * use addFrame() and removeFrame(). + */ + const FrameList &frameList() const; + + /*! + * Returns the frame list for frames with the id \a frameID or an empty + * list if there are no frames of that type. This is just a convenience + * and is equivalent to: + * + * \code + * frameListMap()[frameID]; + * \endcode + * + * \see frameListMap() + */ + const FrameList &frameList(const ByteVector &frameID) const; + + /*! + * Add a frame to the tag. At this point the tag takes ownership of + * the frame and will handle freeing its memory. + * + * \note Using this method will invalidate any pointers on the list + * returned by frameList() + */ + void addFrame(Frame *frame); + + /*! + * Remove a frame from the tag. If \a del is true the frame's memory + * will be freed; if it is false, it must be deleted by the user. + * + * \note Using this method will invalidate any pointers on the list + * returned by frameList() + */ + void removeFrame(Frame *frame, bool del = true); + + /*! + * Remove all frames of type \a id from the tag and free their memory. + * + * \note Using this method will invalidate any pointers on the list + * returned by frameList() + */ + void removeFrames(const ByteVector &id); + + /*! + * Implements the unified property interface -- export function. + * This function does some work to translate the hard-specified ID3v2 + * frame types into a free-form string-to-stringlist PropertyMap: + * - if ID3v2 frame ID is known by Frame::frameIDToKey(), the returned + * key is used + * - if the frame ID is "TXXX" (user text frame), the description() is + * used as key + * - if the frame ID is "WXXX" (user url frame), + * - if the description is empty or "URL", the key "URL" is used + * - otherwise, the key "URL:" is used; + * - if the frame ID is "COMM" (comments frame), + * - if the description is empty or "COMMENT", the key "COMMENT" + * is used + * - otherwise, the key "COMMENT:" is used; + * - if the frame ID is "USLT" (unsynchronized lyrics), + * - if the description is empty or "LYRICS", the key "LYRICS" is used + * - otherwise, the key "LYRICS:" is used; + * - if the frame ID is "TIPL" (involved peoples list), and if all the + * roles defined in the frame are known in TextIdentificationFrame::involvedPeopleMap(), + * then "=" will be contained in the returned obejct for each + * - if the frame ID is "TMCL" (musician credit list), then + * "PERFORMER:=" will be contained in the returned + * PropertyMap for each defined musician + * In any other case, the unsupportedData() of the returned object will contain + * the frame's ID and, in case of a frame ID which is allowed to appear more than + * once, the description, separated by a "/". + * + */ + PropertyMap properties() const; + + /*! + * Removes unsupported frames given by \a properties. The elements of + * \a properties must be taken from properties().unsupportedData(); they + * are of one of the following forms: + * - a four-character frame ID, if the ID3 specification allows only one + * frame with that ID (thus, the frame is uniquely determined) + * - frameID + "/" + description(), when the ID is one of "TXXX", "WXXX", + * "COMM", or "USLT", + * - "UNKNOWN/" + frameID, for frames that could not be parsed by TagLib. + * In that case, *all* unknown frames with the given ID will be removed. + */ + void removeUnsupportedProperties(const StringList &properties); + + /*! + * Implements the unified property interface -- import function. + * See the comments in properties(). + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Render the tag back to binary data, suitable to be written to disk. + */ + ByteVector render() const; + + /*! + * Render the tag back to binary data, suitable to be written to disk. + * + * The \a version parameter specifies the version of the rendered + * ID3v2 tag. It can be either 4 or 3. + */ + // BIC: combine with the above method + ByteVector render(int version) const; + + protected: + /*! + * Reads data from the file specified in the constructor. It does basic + * parsing of the data in the largest chunks. It partitions the tag into + * the Header, the body of the tag (which contains the ExtendedHeader and + * frames) and Footer. + */ + void read(); + + /*! + * This is called by read to parse the body of the tag. It determines if an + * extended header exists and adds frames to the FrameListMap. + */ + void parse(const ByteVector &data); + + /*! + * Sets the value of the text frame with the Frame ID \a id to \a value. + * If the frame does not exist, it is created. + */ + void setTextFrame(const ByteVector &id, const String &value); + + void downgradeFrames(FrameList *existingFrames, FrameList *newFrames) const; + + private: + Tag(const Tag &); + Tag &operator=(const Tag &); + + class TagPrivate; + TagPrivate *d; + }; + + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4atom.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4atom.h new file mode 100644 index 0000000..ea5091a --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4atom.h @@ -0,0 +1,111 @@ +/************************************************************************** + copyright : (C) 2007,2011 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +// This file is not part of the public API! + +#ifndef DO_NOT_DOCUMENT + +#ifndef TAGLIB_MP4ATOM_H +#define TAGLIB_MP4ATOM_H + +#include "tfile.h" +#include "tlist.h" + +namespace TagLib { + + namespace MP4 { + + class Atom; + typedef TagLib::List AtomList; + + enum AtomDataType + { + TypeImplicit = 0, // for use with tags for which no type needs to be indicated because only one type is allowed + TypeUTF8 = 1, // without any count or null terminator + TypeUTF16 = 2, // also known as UTF-16BE + TypeSJIS = 3, // deprecated unless it is needed for special Japanese characters + TypeHTML = 6, // the HTML file header specifies which HTML version + TypeXML = 7, // the XML header must identify the DTD or schemas + TypeUUID = 8, // also known as GUID; stored as 16 bytes in binary (valid as an ID) + TypeISRC = 9, // stored as UTF-8 text (valid as an ID) + TypeMI3P = 10, // stored as UTF-8 text (valid as an ID) + TypeGIF = 12, // (deprecated) a GIF image + TypeJPEG = 13, // a JPEG image + TypePNG = 14, // a PNG image + TypeURL = 15, // absolute, in UTF-8 characters + TypeDuration = 16, // in milliseconds, 32-bit integer + TypeDateTime = 17, // in UTC, counting seconds since midnight, January 1, 1904; 32 or 64-bits + TypeGenred = 18, // a list of enumerated values + TypeInteger = 21, // a signed big-endian integer with length one of { 1,2,3,4,8 } bytes + TypeRIAAPA = 24, // RIAA parental advisory; { -1=no, 1=yes, 0=unspecified }, 8-bit ingteger + TypeUPC = 25, // Universal Product Code, in text UTF-8 format (valid as an ID) + TypeBMP = 27, // Windows bitmap image + TypeUndefined = 255 // undefined + }; + + struct AtomData { + AtomData(AtomDataType type, ByteVector data) : type(type), locale(0), data(data) {} + AtomDataType type; + int locale; + ByteVector data; + }; + + typedef TagLib::List AtomDataList; + + class Atom + { + public: + Atom(File *file); + ~Atom(); + Atom *find(const char *name1, const char *name2 = 0, const char *name3 = 0, const char *name4 = 0); + bool path(AtomList &path, const char *name1, const char *name2 = 0, const char *name3 = 0); + AtomList findall(const char *name, bool recursive = false); + long offset; + long length; + TagLib::ByteVector name; + AtomList children; + private: + static const int numContainers = 11; + static const char *containers[11]; + }; + + //! Root-level atoms + class Atoms + { + public: + Atoms(File *file); + ~Atoms(); + Atom *find(const char *name1, const char *name2 = 0, const char *name3 = 0, const char *name4 = 0); + AtomList path(const char *name1, const char *name2 = 0, const char *name3 = 0, const char *name4 = 0); + AtomList atoms; + }; + + } + +} + +#endif + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4coverart.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4coverart.h new file mode 100644 index 0000000..804ab78 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4coverart.h @@ -0,0 +1,74 @@ +/************************************************************************** + copyright : (C) 2009 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MP4COVERART_H +#define TAGLIB_MP4COVERART_H + +#include "tlist.h" +#include "tbytevector.h" +#include "taglib_export.h" +#include "mp4atom.h" + +namespace TagLib { + + namespace MP4 { + + class TAGLIB_EXPORT CoverArt + { + public: + /*! + * This describes the image type. + */ + enum Format { + JPEG = TypeJPEG, + PNG = TypePNG, + BMP = TypeBMP, + GIF = TypeGIF + }; + + CoverArt(Format format, const ByteVector &data); + ~CoverArt(); + + CoverArt(const CoverArt &item); + CoverArt &operator=(const CoverArt &item); + + //! Format of the image + Format format() const; + + //! The image data + ByteVector data() const; + + private: + class CoverArtPrivate; + CoverArtPrivate *d; + }; + + typedef List CoverArtList; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4file.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4file.h new file mode 100644 index 0000000..c3613f7 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4file.h @@ -0,0 +1,113 @@ +/************************************************************************** + copyright : (C) 2007 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MP4FILE_H +#define TAGLIB_MP4FILE_H + +#include "tag.h" +#include "tfile.h" +#include "taglib_export.h" +#include "mp4properties.h" +#include "mp4tag.h" + +namespace TagLib { + + //! An implementation of MP4 (AAC, ALAC, ...) metadata + namespace MP4 { + + class Atoms; + + /*! + * This implements and provides an interface for MP4 files to the + * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing + * the abstract TagLib::File API as well as providing some additional + * information specific to MP4 files. + */ + class TAGLIB_EXPORT File : public TagLib::File + { + public: + /*! + * Contructs a MP4 file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + * + * \note In the current implementation, both \a readProperties and + * \a propertiesStyle are ignored. + */ + File(FileName file, bool readProperties = true, Properties::ReadStyle audioPropertiesStyle = Properties::Average); + + /*! + * Contructs a MP4 file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + * + * \note In the current implementation, both \a readProperties and + * \a propertiesStyle are ignored. + */ + File(IOStream *stream, bool readProperties = true, Properties::ReadStyle audioPropertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns a pointer to the MP4 tag of the file. + * + * MP4::Tag implements the tag interface, so this serves as the + * reimplementation of TagLib::File::tag(). + * + * \note The Tag is still owned by the MP4::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + Tag *tag() const; + + /*! + * Returns the MP4 audio properties for this file. + */ + Properties *audioProperties() const; + + /*! + * Save the file. + * + * This returns true if the save was successful. + */ + bool save(); + + private: + + void read(bool readProperties, Properties::ReadStyle audioPropertiesStyle); + bool checkValid(const MP4::AtomList &list); + + class FilePrivate; + FilePrivate *d; + }; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4item.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4item.h new file mode 100644 index 0000000..be7aa1a --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4item.h @@ -0,0 +1,83 @@ +/************************************************************************** + copyright : (C) 2007 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MP4ITEM_H +#define TAGLIB_MP4ITEM_H + +#include "tstringlist.h" +#include "mp4coverart.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace MP4 { + + class TAGLIB_EXPORT Item + { + public: + struct IntPair { + int first, second; + }; + + Item(); + Item(const Item &item); + Item &operator=(const Item &item); + ~Item(); + + Item(int value); + Item(uchar value); + Item(uint value); + Item(long long value); + Item(bool value); + Item(int first, int second); + Item(const StringList &value); + Item(const ByteVectorList &value); + Item(const CoverArtList &value); + + void setAtomDataType(AtomDataType type); + AtomDataType atomDataType() const; + + int toInt() const; + uchar toByte() const; + uint toUInt() const; + long long toLongLong() const; + bool toBool() const; + IntPair toIntPair() const; + StringList toStringList() const; + ByteVectorList toByteVectorList() const; + CoverArtList toCoverArtList() const; + + bool isValid() const; + + private: + class ItemPrivate; + ItemPrivate *d; + }; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4properties.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4properties.h new file mode 100644 index 0000000..7906824 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4properties.h @@ -0,0 +1,62 @@ +/************************************************************************** + copyright : (C) 2007 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MP4PROPERTIES_H +#define TAGLIB_MP4PROPERTIES_H + +#include "taglib_export.h" +#include "audioproperties.h" + +namespace TagLib { + + namespace MP4 { + + class Atoms; + class File; + + //! An implementation of MP4 audio properties + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + Properties(File *file, Atoms *atoms, ReadStyle style = Average); + virtual ~Properties(); + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + virtual int bitsPerSample() const; + bool isEncrypted() const; + + private: + class PropertiesPrivate; + PropertiesPrivate *d; + }; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4tag.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4tag.h new file mode 100644 index 0000000..b5ea6eb --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mp4tag.h @@ -0,0 +1,112 @@ +/************************************************************************** + copyright : (C) 2007,2011 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MP4TAG_H +#define TAGLIB_MP4TAG_H + +#include "tag.h" +#include "tbytevectorlist.h" +#include "tfile.h" +#include "tmap.h" +#include "tstringlist.h" +#include "taglib_export.h" +#include "mp4atom.h" +#include "mp4item.h" + +namespace TagLib { + + namespace MP4 { + + typedef TagLib::Map ItemListMap; + + class TAGLIB_EXPORT Tag: public TagLib::Tag + { + public: + Tag(); + Tag(TagLib::File *file, Atoms *atoms); + ~Tag(); + bool save(); + + String title() const; + String artist() const; + String album() const; + String comment() const; + String genre() const; + uint year() const; + uint track() const; + + void setTitle(const String &value); + void setArtist(const String &value); + void setAlbum(const String &value); + void setComment(const String &value); + void setGenre(const String &value); + void setYear(uint value); + void setTrack(uint value); + + ItemListMap &itemListMap(); + + private: + AtomDataList parseData2(Atom *atom, TagLib::File *file, int expectedFlags = -1, bool freeForm = false); + TagLib::ByteVectorList parseData(Atom *atom, TagLib::File *file, int expectedFlags = -1, bool freeForm = false); + void parseText(Atom *atom, TagLib::File *file, int expectedFlags = 1); + void parseFreeForm(Atom *atom, TagLib::File *file); + void parseInt(Atom *atom, TagLib::File *file); + void parseByte(Atom *atom, TagLib::File *file); + void parseUInt(Atom *atom, TagLib::File *file); + void parseLongLong(Atom *atom, TagLib::File *file); + void parseGnre(Atom *atom, TagLib::File *file); + void parseIntPair(Atom *atom, TagLib::File *file); + void parseBool(Atom *atom, TagLib::File *file); + void parseCovr(Atom *atom, TagLib::File *file); + + TagLib::ByteVector padIlst(const ByteVector &data, int length = -1); + TagLib::ByteVector renderAtom(const ByteVector &name, const TagLib::ByteVector &data); + TagLib::ByteVector renderData(const ByteVector &name, int flags, const TagLib::ByteVectorList &data); + TagLib::ByteVector renderText(const ByteVector &name, Item &item, int flags = TypeUTF8); + TagLib::ByteVector renderFreeForm(const String &name, Item &item); + TagLib::ByteVector renderBool(const ByteVector &name, Item &item); + TagLib::ByteVector renderInt(const ByteVector &name, Item &item); + TagLib::ByteVector renderByte(const ByteVector &name, Item &item); + TagLib::ByteVector renderUInt(const ByteVector &name, Item &item); + TagLib::ByteVector renderLongLong(const ByteVector &name, Item &item); + TagLib::ByteVector renderIntPair(const ByteVector &name, Item &item); + TagLib::ByteVector renderIntPairNoTrailing(const ByteVector &name, Item &item); + TagLib::ByteVector renderCovr(const ByteVector &name, Item &item); + + void updateParents(AtomList &path, long delta, int ignore = 0); + void updateOffsets(long delta, long offset); + + void saveNew(TagLib::ByteVector &data); + void saveExisting(TagLib::ByteVector &data, AtomList &path); + + class TagPrivate; + TagPrivate *d; + }; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mpcfile.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mpcfile.h new file mode 100644 index 0000000..61ac6d6 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mpcfile.h @@ -0,0 +1,201 @@ +/*************************************************************************** + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MPCFILE_H +#define TAGLIB_MPCFILE_H + +#include "taglib_export.h" +#include "tfile.h" +#include "tag.h" + +#include "mpcproperties.h" + +#include "tlist.h" + +namespace TagLib { + + class Tag; + + namespace ID3v1 { class Tag; } + namespace APE { class Tag; } + + //! An implementation of MPC metadata + + /*! + * This is implementation of MPC metadata. + * + * This supports ID3v1 and APE (v1 and v2) style comments as well as reading stream + * properties from the file. ID3v2 tags are invalid in MPC-files, but will be skipped + * and ignored. + */ + + namespace MPC { + + //! An implementation of TagLib::File with MPC specific methods + + /*! + * This implements and provides an interface for MPC files to the + * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing + * the abstract TagLib::File API as well as providing some additional + * information specific to MPC files. + * The only invalid tag combination supported is an ID3v1 tag after an APE tag. + */ + + class TAGLIB_EXPORT File : public TagLib::File + { + public: + /*! + * This set of flags is used for various operations and is suitable for + * being OR-ed together. + */ + enum TagTypes { + //! Empty set. Matches no tag types. + NoTags = 0x0000, + //! Matches ID3v1 tags. + ID3v1 = 0x0001, + //! Matches ID3v2 tags. + ID3v2 = 0x0002, + //! Matches APE tags. + APE = 0x0004, + //! Matches all tag types. + AllTags = 0xffff + }; + + /*! + * Contructs an MPC file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an MPC file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns the Tag for this file. This will be an APE tag, an ID3v1 tag + * or a combination of the two. + */ + virtual TagLib::Tag *tag() const; + + /*! + * Implements the unified property interface -- export function. + * If the file contains both an APE and an ID3v1 tag, only the APE + * tag will be converted to the PropertyMap. + */ + PropertyMap properties() const; + + void removeUnsupportedProperties(const StringList &properties); + + /*! + * Implements the unified property interface -- import function. + * As with the export, only one tag is taken into account. If the file + * has no tag at all, an APE tag will be created. + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Returns the MPC::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + /*! + * Saves the file. + */ + virtual bool save(); + + /*! + * Returns a pointer to the ID3v1 tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid ID3v1 tag. If \a create is true it will create + * an ID3v1 tag if one does not exist. If there is already an APE tag, the + * new ID3v1 tag will be placed after it. + * + * \note The Tag is still owned by the APE::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + ID3v1::Tag *ID3v1Tag(bool create = false); + + /*! + * Returns a pointer to the APE tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid APE tag. If \a create is true it will create + * a APE tag if one does not exist. If there is already an ID3v1 tag, thes + * new APE tag will be placed before it. + * + * \note The Tag is still owned by the APE::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + APE::Tag *APETag(bool create = false); + + /*! + * This will remove the tags that match the OR-ed together TagTypes from the + * file. By default it removes all tags. + * + * \warning This will also invalidate pointers to the tags + * as their memory will be freed. + * + * \note In order to make the removal permanent save() still needs to be called. + */ + void strip(int tags = AllTags); + + /*! + * \deprecated + * \see strip + */ + void remove(int tags = AllTags); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + void scan(); + long findAPE(); + long findID3v1(); + long findID3v2(); + + class FilePrivate; + FilePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mpcproperties.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mpcproperties.h new file mode 100644 index 0000000..adf40d8 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mpcproperties.h @@ -0,0 +1,122 @@ +/*************************************************************************** + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MPCPROPERTIES_H +#define TAGLIB_MPCPROPERTIES_H + +#include "taglib_export.h" +#include "audioproperties.h" + +namespace TagLib { + + namespace MPC { + + class File; + + static const uint HeaderSize = 8*7; + + //! An implementation of audio property reading for MPC + + /*! + * This reads the data from an MPC stream found in the AudioProperties + * API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of MPC::Properties with the data read from the + * ByteVector \a data. + * + * This constructor is deprecated. It only works for MPC version up to 7. + */ + Properties(const ByteVector &data, long streamLength, ReadStyle style = Average); + + /*! + * Create an instance of MPC::Properties with the data read directly + * from a MPC::File. + */ + Properties(File *file, long streamLength, ReadStyle style = Average); + + /*! + * Destroys this MPC::Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + /*! + * Returns the version of the bitstream (SV4-SV8) + */ + int mpcVersion() const; + uint totalFrames() const; + uint sampleFrames() const; + + /*! + * Returns the track gain as an integer value, + * to convert to dB: trackGain in dB = 64.82 - (trackGain / 256) + */ + int trackGain() const; + + /*! + * Returns the track peak as an integer value, + * to convert to dB: trackPeak in dB = trackPeak / 256 + * to convert to floating [-1..1]: trackPeak = 10^(trackPeak / 256 / 20)/32768 + */ + int trackPeak() const; + + /*! + * Returns the album gain as an integer value, + * to convert to dB: albumGain in dB = 64.82 - (albumGain / 256) + */ + int albumGain() const; + + /*! + * Returns the album peak as an integer value, + * to convert to dB: albumPeak in dB = albumPeak / 256 + * to convert to floating [-1..1]: albumPeak = 10^(albumPeak / 256 / 20)/32768 + */ + int albumPeak() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void readSV7(const ByteVector &data); + void readSV8(File *file); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mpegfile.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mpegfile.h new file mode 100644 index 0000000..185fced --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mpegfile.h @@ -0,0 +1,323 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MPEGFILE_H +#define TAGLIB_MPEGFILE_H + +#include "taglib_export.h" +#include "tfile.h" +#include "tag.h" + +#include "mpegproperties.h" + +namespace TagLib { + + namespace ID3v2 { class Tag; class FrameFactory; } + namespace ID3v1 { class Tag; } + namespace APE { class Tag; } + + //! An implementation of TagLib::File with MPEG (MP3) specific methods + + namespace MPEG { + + //! An MPEG file class with some useful methods specific to MPEG + + /*! + * This implements the generic TagLib::File API and additionally provides + * access to properties that are distinct to MPEG files, notably access + * to the different ID3 tags. + */ + + class TAGLIB_EXPORT File : public TagLib::File + { + public: + /*! + * This set of flags is used for various operations and is suitable for + * being OR-ed together. + */ + enum TagTypes { + //! Empty set. Matches no tag types. + NoTags = 0x0000, + //! Matches ID3v1 tags. + ID3v1 = 0x0001, + //! Matches ID3v2 tags. + ID3v2 = 0x0002, + //! Matches APE tags. + APE = 0x0004, + //! Matches all tag types. + AllTags = 0xffff + }; + + /*! + * Contructs an MPEG file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + * + * \deprecated This constructor will be dropped in favor of the one below + * in a future version. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an MPEG file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. The frames will be created using + * \a frameFactory. + * + * \deprecated This constructor will be dropped in favor of the one below + * in a future version. + */ + File(FileName file, ID3v2::FrameFactory *frameFactory, + bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an MPEG file from \a stream. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. The frames will be created using + * \a frameFactory. + */ + // BIC: merge with the above constructor + File(IOStream *stream, ID3v2::FrameFactory *frameFactory, + bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns a pointer to a tag that is the union of the ID3v2 and ID3v1 + * tags. The ID3v2 tag is given priority in reading the information -- if + * requested information exists in both the ID3v2 tag and the ID3v1 tag, + * the information from the ID3v2 tag will be returned. + * + * If you would like more granular control over the content of the tags, + * with the concession of generality, use the tag-type specific calls. + * + * \note As this tag is not implemented as an ID3v2 tag or an ID3v1 tag, + * but a union of the two this pointer may not be cast to the specific + * tag types. + * + * \see ID3v1Tag() + * \see ID3v2Tag() + * \see APETag() + */ + virtual Tag *tag() const; + + /*! + * Implements the unified property interface -- export function. + * If the file contains more than one tag, only the + * first one (in the order ID3v2, APE, ID3v1) will be converted to the + * PropertyMap. + */ + PropertyMap properties() const; + + void removeUnsupportedProperties(const StringList &properties); + + /*! + * Implements the unified tag dictionary interface -- import function. + * As with the export, only one tag is taken into account. If the file + * has no tag at all, ID3v2 will be created. + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Returns the MPEG::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + /*! + * Save the file. If at least one tag -- ID3v1 or ID3v2 -- exists this + * will duplicate its content into the other tag. This returns true + * if saving was successful. + * + * If neither exists or if both tags are empty, this will strip the tags + * from the file. + * + * This is the same as calling save(AllTags); + * + * If you would like more granular control over the content of the tags, + * with the concession of generality, use paramaterized save call below. + * + * \see save(int tags) + */ + virtual bool save(); + + /*! + * Save the file. This will attempt to save all of the tag types that are + * specified by OR-ing together TagTypes values. The save() method above + * uses AllTags. This returns true if saving was successful. + * + * This strips all tags not included in the mask, but does not modify them + * in memory, so later calls to save() which make use of these tags will + * remain valid. This also strips empty tags. + */ + bool save(int tags); + + /*! + * Save the file. This will attempt to save all of the tag types that are + * specified by OR-ing together TagTypes values. The save() method above + * uses AllTags. This returns true if saving was successful. + * + * If \a stripOthers is true this strips all tags not included in the mask, + * but does not modify them in memory, so later calls to save() which make + * use of these tags will remain valid. This also strips empty tags. + */ + // BIC: combine with the above method + bool save(int tags, bool stripOthers); + + /*! + * Save the file. This will attempt to save all of the tag types that are + * specified by OR-ing together TagTypes values. The save() method above + * uses AllTags. This returns true if saving was successful. + * + * If \a stripOthers is true this strips all tags not included in the mask, + * but does not modify them in memory, so later calls to save() which make + * use of these tags will remain valid. This also strips empty tags. + * + * The \a id3v2Version parameter specifies the version of the saved + * ID3v2 tag. It can be either 4 or 3. + */ + // BIC: combine with the above method + bool save(int tags, bool stripOthers, int id3v2Version); + + /*! + * Returns a pointer to the ID3v2 tag of the file. + * + * A tag will always be returned, regardless of whether there is a + * tag in the file or not. Use ID3v2::Tag::isEmpty() to check if + * the tag contains no data. + * + * \note The Tag is still owned by the MPEG::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + ID3v2::Tag *ID3v2Tag(bool create = false); + + /*! + * Returns a pointer to the ID3v1 tag of the file. + * + * A tag will always be returned, regardless of whether there is a + * tag in the file or not. Use Tag::isEmpty() to check if + * the tag contains no data. + * + * \note The Tag is still owned by the MPEG::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + ID3v1::Tag *ID3v1Tag(bool create = false); + + /*! + * Returns a pointer to the APE tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid APE tag. If \a create is true it will create + * an APE tag if one does not exist. + * + * \note The Tag is still owned by the MPEG::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + APE::Tag *APETag(bool create = false); + + /*! + * This will strip the tags that match the OR-ed together TagTypes from the + * file. By default it strips all tags. It returns true if the tags are + * successfully stripped. + * + * This is equivalent to strip(tags, true) + * + * \note This will also invalidate pointers to the ID3 and APE tags + * as their memory will be freed. + */ + bool strip(int tags = AllTags); + + /*! + * This will strip the tags that match the OR-ed together TagTypes from the + * file. By default it strips all tags. It returns true if the tags are + * successfully stripped. + * + * If \a freeMemory is true the ID3 and APE tags will be deleted and + * pointers to them will be invalidated. + */ + // BIC: merge with the method above + bool strip(int tags, bool freeMemory); + + /*! + * Set the ID3v2::FrameFactory to something other than the default. + * + * \see ID3v2FrameFactory + */ + void setID3v2FrameFactory(const ID3v2::FrameFactory *factory); + + /*! + * Returns the position in the file of the first MPEG frame. + */ + long firstFrameOffset(); + + /*! + * Returns the position in the file of the next MPEG frame, + * using the current position as start + */ + long nextFrameOffset(long position); + + /*! + * Returns the position in the file of the previous MPEG frame, + * using the current position as start + */ + long previousFrameOffset(long position); + + /*! + * Returns the position in the file of the last MPEG frame. + */ + long lastFrameOffset(); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + long findID3v2(); + long findID3v1(); + void findAPE(); + + /*! + * MPEG frames can be recognized by the bit pattern 11111111 111, so the + * first byte is easy to check for, however checking to see if the second byte + * starts with \e 111 is a bit more tricky, hence this member function. + */ + static bool secondSynchByte(char byte); + + class FilePrivate; + FilePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mpegheader.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mpegheader.h new file mode 100644 index 0000000..020ebd0 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mpegheader.h @@ -0,0 +1,166 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MPEGHEADER_H +#define TAGLIB_MPEGHEADER_H + +#include "taglib_export.h" + +namespace TagLib { + + class ByteVector; + + namespace MPEG { + + //! An implementation of MP3 frame headers + + /*! + * This is an implementation of MPEG Layer III headers. The API follows more + * or less the binary format of these headers. I've used + * this + * document as a reference. + */ + + class TAGLIB_EXPORT Header + { + public: + /*! + * Parses an MPEG header based on \a data. + */ + Header(const ByteVector &data); + + /*! + * Does a shallow copy of \a h. + */ + Header(const Header &h); + + /*! + * Destroys this Header instance. + */ + virtual ~Header(); + + /*! + * Returns true if the frame is at least an appropriate size and has + * legal values. + */ + bool isValid() const; + + /*! + * The MPEG Version. + */ + enum Version { + //! MPEG Version 1 + Version1 = 0, + //! MPEG Version 2 + Version2 = 1, + //! MPEG Version 2.5 + Version2_5 = 2 + }; + + /*! + * Returns the MPEG Version of the header. + */ + Version version() const; + + /*! + * Returns the layer version. This will be between the values 1-3. + */ + int layer() const; + + /*! + * Returns true if the MPEG protection bit is enabled. + */ + bool protectionEnabled() const; + + /*! + * Returns the bitrate encoded in the header. + */ + int bitrate() const; + + /*! + * Returns the sample rate in Hz. + */ + int sampleRate() const; + + /*! + * Returns true if the frame is padded. + */ + bool isPadded() const; + + /*! + * There are a few combinations or one or two channel audio that are + * possible: + */ + enum ChannelMode { + //! Stereo + Stereo = 0, + //! Stereo + JointStereo = 1, + //! Dual Mono + DualChannel = 2, + //! Mono + SingleChannel = 3 + }; + + /*! + * Returns the channel mode for this frame. + */ + ChannelMode channelMode() const; + + /*! + * Returns true if the copyrighted bit is set. + */ + bool isCopyrighted() const; + + /*! + * Returns true if the "original" bit is set. + */ + bool isOriginal() const; + + /*! + * Returns the frame length. + */ + int frameLength() const; + + /*! + * Returns the number of frames per sample. + */ + int samplesPerFrame() const; + + /*! + * Makes a shallow copy of the header. + */ + Header &operator=(const Header &h); + + private: + void parse(const ByteVector &data); + + class HeaderPrivate; + HeaderPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mpegproperties.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mpegproperties.h new file mode 100644 index 0000000..72e594f --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/mpegproperties.h @@ -0,0 +1,118 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MPEGPROPERTIES_H +#define TAGLIB_MPEGPROPERTIES_H + +#include "taglib_export.h" +#include "audioproperties.h" + +#include "mpegheader.h" + +namespace TagLib { + + namespace MPEG { + + class File; + class XingHeader; + + //! An implementation of audio property reading for MP3 + + /*! + * This reads the data from an MPEG Layer III stream found in the + * AudioProperties API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of MPEG::Properties with the data read from the + * MPEG::File \a file. + */ + Properties(File *file, ReadStyle style = Average); + + /*! + * Destroys this MPEG Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + /*! + * Returns a pointer to the XingHeader if one exists or null if no + * XingHeader was found. + */ + + const XingHeader *xingHeader() const; + + /*! + * Returns the MPEG Version of the file. + */ + Header::Version version() const; + + /*! + * Returns the layer version. This will be between the values 1-3. + */ + int layer() const; + + /*! + * Returns true if the MPEG protection bit is enabled. + */ + bool protectionEnabled() const; + + /*! + * Returns the channel mode for this frame. + */ + Header::ChannelMode channelMode() const; + + /*! + * Returns true if the copyrighted bit is set. + */ + bool isCopyrighted() const; + + /*! + * Returns true if the "original" bit is set. + */ + bool isOriginal() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void read(); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/oggfile.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/oggfile.h new file mode 100644 index 0000000..1ecf2b9 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/oggfile.h @@ -0,0 +1,123 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#include "taglib_export.h" +#include "tfile.h" +#include "tbytevectorlist.h" + +#ifndef TAGLIB_OGGFILE_H +#define TAGLIB_OGGFILE_H + +namespace TagLib { + + //! A namespace for the classes used by Ogg-based metadata files + + namespace Ogg { + + class PageHeader; + + //! An implementation of TagLib::File with some helpers for Ogg based formats + + /*! + * This is an implementation of Ogg file page and packet rendering and is of + * use to Ogg based formats. While the API is small this handles the + * non-trivial details of breaking up an Ogg stream into packets and makes + * these available (via subclassing) to the codec meta data implementations. + */ + + class TAGLIB_EXPORT File : public TagLib::File + { + public: + virtual ~File(); + + /*! + * Returns the packet contents for the i-th packet (starting from zero) + * in the Ogg bitstream. + * + * \warning The requires reading at least the packet header for every page + * up to the requested page. + */ + ByteVector packet(uint i); + + /*! + * Sets the packet with index \a i to the value \a p. + */ + void setPacket(uint i, const ByteVector &p); + + /*! + * Returns a pointer to the PageHeader for the first page in the stream or + * null if the page could not be found. + */ + const PageHeader *firstPageHeader(); + + /*! + * Returns a pointer to the PageHeader for the last page in the stream or + * null if the page could not be found. + */ + const PageHeader *lastPageHeader(); + + virtual bool save(); + + protected: + /*! + * Contructs an Ogg file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + * + * \note This constructor is protected since Ogg::File shouldn't be + * instantiated directly but rather should be used through the codec + * specific subclasses. + */ + File(FileName file); + + /*! + * Contructs an Ogg file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + * + * \note This constructor is protected since Ogg::File shouldn't be + * instantiated directly but rather should be used through the codec + * specific subclasses. + */ + File(IOStream *stream); + + private: + File(const File &); + File &operator=(const File &); + + /*! + * Reads the next page and updates the internal "current page" pointer. + */ + bool nextPage(); + void writePageGroup(const List &group); + + class FilePrivate; + FilePrivate *d; + }; + + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/oggflacfile.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/oggflacfile.h new file mode 100644 index 0000000..d437379 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/oggflacfile.h @@ -0,0 +1,126 @@ +/*************************************************************************** + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_OGGFLACFILE_H +#define TAGLIB_OGGFLACFILE_H + +#include "taglib_export.h" +#include "oggfile.h" +#include "xiphcomment.h" + +#include "flacproperties.h" + +namespace TagLib { + + class Tag; + + namespace Ogg { + + //! An implementation of Ogg FLAC metadata + + /*! + * This is implementation of FLAC metadata for Ogg FLAC files. For "pure" + * FLAC files look under the FLAC hiearchy. + * + * Unlike "pure" FLAC-files, Ogg FLAC only supports Xiph-comments, + * while the audio-properties are the same. + */ + namespace FLAC { + + using TagLib::FLAC::Properties; + + //! An implementation of TagLib::File with Ogg/FLAC specific methods + + /*! + * This implements and provides an interface for Ogg/FLAC files to the + * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing + * the abstract TagLib::File API as well as providing some additional + * information specific to Ogg FLAC files. + */ + + class TAGLIB_EXPORT File : public Ogg::File + { + public: + /*! + * Contructs an Ogg/FLAC file from \a file. If \a readProperties is true + * the file's audio properties will also be read using \a propertiesStyle. + * If false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an Ogg/FLAC file from \a file. If \a readProperties is true + * the file's audio properties will also be read using \a propertiesStyle. + * If false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns the Tag for this file. This will always be a XiphComment. + */ + virtual XiphComment *tag() const; + + /*! + * Returns the FLAC::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + /*! + * Save the file. This will primarily save and update the XiphComment. + * Returns true if the save is successful. + */ + virtual bool save(); + + /*! + * Returns the length of the audio-stream, used by FLAC::Properties for + * calculating the bitrate. + */ + long streamLength(); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + void scan(); + ByteVector streamInfoData(); + ByteVector xiphCommentData(); + + class FilePrivate; + FilePrivate *d; + }; + } // namespace FLAC + } // namespace Ogg +} // namespace TagLib + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/oggpage.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/oggpage.h new file mode 100644 index 0000000..e9f4840 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/oggpage.h @@ -0,0 +1,211 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_OGGPAGE_H +#define TAGLIB_OGGPAGE_H + +#include "taglib_export.h" +#include "tbytevectorlist.h" + +namespace TagLib { + + namespace Ogg { + + class File; + class PageHeader; + + //! An implementation of Ogg pages + + /*! + * This is an implementation of the pages that make up an Ogg stream. + * This handles parsing pages and breaking them down into packets and handles + * the details of packets spanning multiple pages and pages that contiain + * multiple packets. + * + * In most Xiph.org formats the comments are found in the first few packets, + * this however is a reasonably complete implementation of Ogg pages that + * could potentially be useful for non-meta data purposes. + */ + + class TAGLIB_EXPORT Page + { + public: + /*! + * Read an Ogg page from the \a file at the position \a pageOffset. + */ + Page(File *file, long pageOffset); + + virtual ~Page(); + + /*! + * Returns the page's position within the file (in bytes). + */ + long fileOffset() const; + + /*! + * Returns a pointer to the header for this page. This pointer will become + * invalid when the page is deleted. + */ + const PageHeader *header() const; + + /*! + * Returns a copy of the page with \a sequenceNumber set as sequence number. + * + * \see header() + * \see PageHeader::setPageSequenceNumber() + */ + Page* getCopyWithNewPageSequenceNumber(int sequenceNumber); + + /*! + * Returns the index of the first packet wholly or partially contained in + * this page. + * + * \see setFirstPacketIndex() + */ + int firstPacketIndex() const; + + /*! + * Sets the index of the first packet in the page. + * + * \see firstPacketIndex() + */ + void setFirstPacketIndex(int index); + + /*! + * When checking to see if a page contains a given packet this set of flags + * represents the possible values for that packets status in the page. + * + * \see containsPacket() + */ + enum ContainsPacketFlags { + //! No part of the packet is contained in the page + DoesNotContainPacket = 0x0000, + //! The packet is wholly contained in the page + CompletePacket = 0x0001, + //! The page starts with the given packet + BeginsWithPacket = 0x0002, + //! The page ends with the given packet + EndsWithPacket = 0x0004 + }; + + /*! + * Checks to see if the specified \a packet is contained in the current + * page. + * + * \see ContainsPacketFlags + */ + ContainsPacketFlags containsPacket(int index) const; + + /*! + * Returns the number of packets (whole or partial) in this page. + */ + uint packetCount() const; + + /*! + * Returns a list of the packets in this page. + * + * \note Either or both the first and last packets may be only partial. + * \see PageHeader::firstPacketContinued() + */ + ByteVectorList packets() const; + + /*! + * Returns the size of the page in bytes. + */ + int size() const; + + ByteVector render() const; + + /*! + * Defines a strategy for pagination, or grouping pages into Ogg packets, + * for use with pagination methods. + * + * \note Yes, I'm aware that this is not a canonical "Strategy Pattern", + * the term was simply convenient. + */ + enum PaginationStrategy { + /*! + * Attempt to put the specified set of packets into a single Ogg packet. + * If the sum of the packet data is greater than will fit into a single + * Ogg page -- 65280 bytes -- this will fall back to repagination using + * the recommended page sizes. + */ + SinglePagePerGroup, + /*! + * Split the packet or group of packets into pages that conform to the + * sizes recommended in the Ogg standard. + */ + Repaginate + }; + + /*! + * Pack \a packets into Ogg pages using the \a strategy for pagination. + * The page number indicater inside of the rendered packets will start + * with \a firstPage and be incremented for each page rendered. + * \a containsLastPacket should be set to true if \a packets contains the + * last page in the stream and will set the appropriate flag in the last + * rendered Ogg page's header. \a streamSerialNumber should be set to + * the serial number for this stream. + * + * \note The "absolute granule position" is currently always zeroed using + * this method as this suffices for the comment headers. + * + * \warning The pages returned by this method must be deleted by the user. + * You can use List::setAutoDelete(true) to set these pages to be + * automatically deleted when this list passes out of scope. + * + * \see PaginationStrategy + * \see List::setAutoDelete() + */ + static List paginate(const ByteVectorList &packets, + PaginationStrategy strategy, + uint streamSerialNumber, + int firstPage, + bool firstPacketContinued = false, + bool lastPacketCompleted = true, + bool containsLastPacket = false); + + protected: + /*! + * Creates an Ogg packet based on the data in \a packets. The page number + * for each page will be set to \a pageNumber. + */ + Page(const ByteVectorList &packets, + uint streamSerialNumber, + int pageNumber, + bool firstPacketContinued = false, + bool lastPacketCompleted = true, + bool containsLastPacket = false); + + private: + Page(const Page &); + Page &operator=(const Page &); + + class PagePrivate; + PagePrivate *d; + }; + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/oggpageheader.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/oggpageheader.h new file mode 100644 index 0000000..742710a --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/oggpageheader.h @@ -0,0 +1,232 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_OGGPAGEHEADER_H +#define TAGLIB_OGGPAGEHEADER_H + +#include "tlist.h" +#include "tbytevector.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace Ogg { + + class File; + + //! An implementation of the page headers associated with each Ogg::Page + + /*! + * This class implements Ogg page headers which contain the information + * about Ogg pages needed to break them into packets which can be passed on + * to the codecs. + */ + + class TAGLIB_EXPORT PageHeader + { + public: + /*! + * Reads a PageHeader from \a file starting at \a pageOffset. The defaults + * create a page with no (and as such, invalid) data that must be set + * later. + */ + PageHeader(File *file = 0, long pageOffset = -1); + + /*! + * Deletes this instance of the PageHeader. + */ + virtual ~PageHeader(); + + /*! + * Returns true if the header parsed properly and is valid. + */ + bool isValid() const; + + /*! + * Ogg pages contain a list of packets (which are used by the contained + * codecs). The sizes of these pages is encoded in the page header. This + * returns a list of the packet sizes in bytes. + * + * \see setPacketSizes() + */ + List packetSizes() const; + + /*! + * Sets the sizes of the packets in this page to \a sizes. Internally this + * updates the lacing values in the header. + * + * \see packetSizes() + */ + void setPacketSizes(const List &sizes); + + /*! + * Some packets can be continued across multiple pages. If the + * first packet in the current page is a continuation this will return + * true. If this is page starts with a new packet this will return false. + * + * \see lastPacketCompleted() + * \see setFirstPacketContinued() + */ + bool firstPacketContinued() const; + + /*! + * Sets the internal flag indicating if the first packet in this page is + * continued to \a continued. + * + * \see firstPacketContinued() + */ + void setFirstPacketContinued(bool continued); + + /*! + * Returns true if the last packet of this page is completely contained in + * this page. + * + * \see firstPacketContinued() + * \see setLastPacketCompleted() + */ + bool lastPacketCompleted() const; + + /*! + * Sets the internal flag indicating if the last packet in this page is + * complete to \a completed. + * + * \see lastPacketCompleted() + */ + void setLastPacketCompleted(bool completed); + + /*! + * This returns true if this is the first page of the Ogg (logical) stream. + * + * \see setFirstPageOfStream() + */ + bool firstPageOfStream() const; + + /*! + * Marks this page as the first page of the Ogg stream. + * + * \see firstPageOfStream() + */ + void setFirstPageOfStream(bool first); + + /*! + * This returns true if this is the last page of the Ogg (logical) stream. + * + * \see setLastPageOfStream() + */ + bool lastPageOfStream() const; + + /*! + * Marks this page as the last page of the Ogg stream. + * + * \see lastPageOfStream() + */ + void setLastPageOfStream(bool last); + + /*! + * A special value of containing the position of the packet to be + * interpreted by the codec. In the case of Vorbis this contains the PCM + * value and is used to calculate the length of the stream. + * + * \see setAbsoluteGranularPosition() + */ + long long absoluteGranularPosition() const; + + /*! + * A special value of containing the position of the packet to be + * interpreted by the codec. It is only supported here so that it may be + * coppied from one page to another. + * + * \see absoluteGranularPosition() + */ + void setAbsoluteGranularPosition(long long agp); + + /*! + * Every Ogg logical stream is given a random serial number which is common + * to every page in that logical stream. This returns the serial number of + * the stream associated with this packet. + * + * \see setStreamSerialNumber() + */ + uint streamSerialNumber() const; + + /*! + * Every Ogg logical stream is given a random serial number which is common + * to every page in that logical stream. This sets this pages serial + * number. This method should be used when adding new pages to a logical + * stream. + * + * \see streamSerialNumber() + */ + void setStreamSerialNumber(uint n); + + /*! + * Returns the index of the page within the Ogg stream. This helps make it + * possible to determine if pages have been lost. + * + * \see setPageSequenceNumber() + */ + int pageSequenceNumber() const; + + /*! + * Sets the page's position in the stream to \a sequenceNumber. + * + * \see pageSequenceNumber() + */ + void setPageSequenceNumber(int sequenceNumber); + + /*! + * Returns the complete header size. + */ + int size() const; + + /*! + * Returns the size of the data portion of the page -- i.e. the size of the + * page less the header size. + */ + int dataSize() const; + + /*! + * Render the page header to binary data. + * + * \note The checksum -- bytes 22 - 25 -- will be left empty and must be + * filled in when rendering the entire page. + */ + ByteVector render() const; + + private: + PageHeader(const PageHeader &); + PageHeader &operator=(const PageHeader &); + + void read(); + ByteVector lacingValues() const; + + class PageHeaderPrivate; + PageHeaderPrivate *d; + }; + + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/popularimeterframe.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/popularimeterframe.h new file mode 100644 index 0000000..d39f1aa --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/popularimeterframe.h @@ -0,0 +1,132 @@ +/*************************************************************************** + copyright : (C) 2008 by Lukas Lalinsky + email : lalinsky@gmail.com + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_POPULARIMETERFRAME_H +#define TAGLIB_POPULARIMETERFRAME_H + +#include "id3v2frame.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace ID3v2 { + + //! An implementation of ID3v2 "popularimeter" + + /*! + * This implements the ID3v2 popularimeter (POPM frame). It concists of + * an email, a rating and an optional counter. + */ + + class TAGLIB_EXPORT PopularimeterFrame : public Frame + { + friend class FrameFactory; + + public: + /*! + * Construct an empty popularimeter frame. + */ + explicit PopularimeterFrame(); + + /*! + * Construct a popularimeter based on the data in \a data. + */ + explicit PopularimeterFrame(const ByteVector &data); + + /*! + * Destroys this PopularimeterFrame instance. + */ + virtual ~PopularimeterFrame(); + + /*! + * Returns the text of this popularimeter. + * + * \see text() + */ + virtual String toString() const; + + /*! + * Returns the email. + * + * \see setEmail() + */ + String email() const; + + /*! + * Set the email. + * + * \see email() + */ + void setEmail(const String &email); + + /*! + * Returns the rating. + * + * \see setRating() + */ + int rating() const; + + /*! + * Set the rating. + * + * \see rating() + */ + void setRating(int rating); + + /*! + * Returns the counter. + * + * \see setCounter() + */ + uint counter() const; + + /*! + * Set the counter. + * + * \see counter() + */ + void setCounter(uint counter); + + protected: + // Reimplementations. + + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + private: + /*! + * The constructor used by the FrameFactory. + */ + PopularimeterFrame(const ByteVector &data, Header *h); + PopularimeterFrame(const PopularimeterFrame &); + PopularimeterFrame &operator=(const PopularimeterFrame &); + + class PopularimeterFramePrivate; + PopularimeterFramePrivate *d; + }; + + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/privateframe.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/privateframe.h new file mode 100644 index 0000000..06f82f3 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/privateframe.h @@ -0,0 +1,111 @@ +/*************************************************************************** + copyright : (C) 2008 by Serkan Kalyoncu + copyright : (C) 2008 by Scott Wheeler + email : wheeler@kde.org +***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_PRIVATEFRAME_H +#define TAGLIB_PRIVATEFRAME_H + +#include "id3v2frame.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace ID3v2 { + + //! An implementation of ID3v2 privateframe + + class TAGLIB_EXPORT PrivateFrame : public Frame + { + friend class FrameFactory; + + public: + /*! + * Construct an empty private frame. + */ + PrivateFrame(); + + /*! + * Construct a private frame based on the data in \a data. + * + * \note This is the constructor used when parsing the frame from a file. + */ + explicit PrivateFrame(const ByteVector &data); + + /*! + * Destroys this private frame instance. + */ + virtual ~PrivateFrame(); + + /*! + * Returns the text of this private frame, currently just the owner. + * + * \see text() + */ + virtual String toString() const; + + /*! + * \return The owner of the private frame. + * \note This should contain an email address or link to a website. + */ + String owner() const; + + /*! + * + */ + ByteVector data() const; + + /*! + * Sets the owner of the frame to \a s. + * \note This should contain an email address or link to a website. + */ + void setOwner(const String &s); + + /*! + * + */ + void setData(const ByteVector &v); + + protected: + // Reimplementations. + + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + private: + /*! + * The constructor used by the FrameFactory. + */ + PrivateFrame(const ByteVector &data, Header *h); + + PrivateFrame(const PrivateFrame &); + PrivateFrame &operator=(const PrivateFrame &); + + class PrivateFramePrivate; + PrivateFramePrivate *d; + }; + + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/relativevolumeframe.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/relativevolumeframe.h new file mode 100644 index 0000000..dad4e7d --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/relativevolumeframe.h @@ -0,0 +1,274 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_RELATIVEVOLUMEFRAME_H +#define TAGLIB_RELATIVEVOLUMEFRAME_H + +#include "tlist.h" +#include "id3v2frame.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace ID3v2 { + + //! An ID3v2 relative volume adjustment frame implementation + + /*! + * This is an implementation of ID3v2 relative volume adjustment. The + * presence of this frame makes it possible to specify an increase in volume + * for an audio file or specific audio tracks in that file. + * + * Multiple relative volume adjustment frames may be present in the tag + * each with a unique identification and describing volume adjustment for + * different channel types. + */ + + class TAGLIB_EXPORT RelativeVolumeFrame : public Frame + { + friend class FrameFactory; + + public: + + /*! + * This indicates the type of volume adjustment that should be applied. + */ + enum ChannelType { + //! A type not enumerated below + Other = 0x00, + //! The master volume for the track + MasterVolume = 0x01, + //! The front right audio channel + FrontRight = 0x02, + //! The front left audio channel + FrontLeft = 0x03, + //! The back right audio channel + BackRight = 0x04, + //! The back left audio channel + BackLeft = 0x05, + //! The front center audio channel + FrontCentre = 0x06, + //! The back center audio channel + BackCentre = 0x07, + //! The subwoofer audio channel + Subwoofer = 0x08 + }; + + //! Struct that stores the relevant values for ID3v2 peak volume + + /*! + * The peak volume is described as a series of bits that is padded to fill + * a block of bytes. These two values should always be updated in tandem. + */ + struct PeakVolume + { + /*! + * Constructs an empty peak volume description. + */ + PeakVolume() : bitsRepresentingPeak(0) {} + /*! + * The number of bits (in the range of 0 to 255) used to describe the + * peak volume. + */ + unsigned char bitsRepresentingPeak; + /*! + * The array of bits (represented as a series of bytes) used to describe + * the peak volume. + */ + ByteVector peakVolume; + }; + + /*! + * Constructs a RelativeVolumeFrame. The relevant data should be set + * manually. + */ + RelativeVolumeFrame(); + + /*! + * Constructs a RelativeVolumeFrame based on the contents of \a data. + */ + RelativeVolumeFrame(const ByteVector &data); + + /*! + * Destroys the RelativeVolumeFrame instance. + */ + virtual ~RelativeVolumeFrame(); + + /*! + * Returns the frame's identification. + * + * \see identification() + */ + virtual String toString() const; + + /*! + * Returns a list of channels with information currently in the frame. + */ + List channels() const; + + /*! + * \deprecated Always returns master volume. + */ + ChannelType channelType() const; + + /*! + * \deprecated This method no longer has any effect. + */ + void setChannelType(ChannelType t); + + /* + * There was a terrible API goof here, and while this can't be changed to + * the way it appears below for binary compaibility reasons, let's at + * least pretend that it looks clean. + */ + +#ifdef DOXYGEN + + /*! + * Returns the relative volume adjustment "index". As indicated by the + * ID3v2 standard this is a 16-bit signed integer that reflects the + * decibils of adjustment when divided by 512. + * + * This defaults to returning the value for the master volume channel if + * available and returns 0 if the specified channel does not exist. + * + * \see setVolumeAdjustmentIndex() + * \see volumeAjustment() + */ + short volumeAdjustmentIndex(ChannelType type = MasterVolume) const; + + /*! + * Set the volume adjustment to \a index. As indicated by the ID3v2 + * standard this is a 16-bit signed integer that reflects the decibils of + * adjustment when divided by 512. + * + * By default this sets the value for the master volume. + * + * \see volumeAdjustmentIndex() + * \see setVolumeAjustment() + */ + void setVolumeAdjustmentIndex(short index, ChannelType type = MasterVolume); + + /*! + * Returns the relative volume adjustment in decibels. + * + * \note Because this is actually stored internally as an "index" to this + * value the value returned by this method may not be identical to the + * value set using setVolumeAdjustment(). + * + * This defaults to returning the value for the master volume channel if + * available and returns 0 if the specified channel does not exist. + * + * \see setVolumeAdjustment() + * \see volumeAdjustmentIndex() + */ + float volumeAdjustment(ChannelType type = MasterVolume) const; + + /*! + * Set the relative volume adjustment in decibels to \a adjustment. + * + * By default this sets the value for the master volume. + * + * \note Because this is actually stored internally as an "index" to this + * value the value set by this method may not be identical to the one + * returned by volumeAdjustment(). + * + * \see setVolumeAdjustment() + * \see volumeAdjustmentIndex() + */ + void setVolumeAdjustment(float adjustment, ChannelType type = MasterVolume); + + /*! + * Returns the peak volume (represented as a length and a string of bits). + * + * This defaults to returning the value for the master volume channel if + * available and returns 0 if the specified channel does not exist. + * + * \see setPeakVolume() + */ + PeakVolume peakVolume(ChannelType type = MasterVolume) const; + + /*! + * Sets the peak volume to \a peak. + * + * By default this sets the value for the master volume. + * + * \see peakVolume() + */ + void setPeakVolume(const PeakVolume &peak, ChannelType type = MasterVolume); + +#else + + // BIC: Combine each of the following pairs of functions (or maybe just + // rework this junk altogether). + + short volumeAdjustmentIndex(ChannelType type) const; + short volumeAdjustmentIndex() const; + + void setVolumeAdjustmentIndex(short index, ChannelType type); + void setVolumeAdjustmentIndex(short index); + + float volumeAdjustment(ChannelType type) const; + float volumeAdjustment() const; + + void setVolumeAdjustment(float adjustment, ChannelType type); + void setVolumeAdjustment(float adjustment); + + PeakVolume peakVolume(ChannelType type) const; + PeakVolume peakVolume() const; + + void setPeakVolume(const PeakVolume &peak, ChannelType type); + void setPeakVolume(const PeakVolume &peak); + +#endif + + /*! + * Returns the identification for this frame. + */ + String identification() const; + + /*! + * Sets the identification of the frame to \a s. The string + * is used to identify the situation and/or device where this + * adjustment should apply. + */ + void setIdentification(const String &s); + + protected: + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + private: + RelativeVolumeFrame(const ByteVector &data, Header *h); + RelativeVolumeFrame(const RelativeVolumeFrame &); + RelativeVolumeFrame &operator=(const RelativeVolumeFrame &); + + class RelativeVolumeFramePrivate; + RelativeVolumeFramePrivate *d; + }; + + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/rifffile.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/rifffile.h new file mode 100644 index 0000000..e418dbb --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/rifffile.h @@ -0,0 +1,122 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_RIFFFILE_H +#define TAGLIB_RIFFFILE_H + +#include "taglib_export.h" +#include "tfile.h" + +namespace TagLib { + + //! An implementation of TagLib::File with RIFF specific methods + + namespace RIFF { + + //! An RIFF file class with some useful methods specific to RIFF + + /*! + * This implements the generic TagLib::File API and additionally provides + * access to properties that are distinct to RIFF files, notably access + * to the different ID3 tags. + */ + + class TAGLIB_EXPORT File : public TagLib::File + { + public: + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + protected: + + enum Endianness { BigEndian, LittleEndian }; + + File(FileName file, Endianness endianness); + File(IOStream *stream, Endianness endianness); + + /*! + * \return The size of the main RIFF chunk. + */ + uint riffSize() const; + + /*! + * \return The number of chunks in the file. + */ + uint chunkCount() const; + + /*! + * \return The offset within the file for the selected chunk number. + */ + uint chunkOffset(uint i) const; + + /*! + * \return The size of the chunk data. + */ + uint chunkDataSize(uint i) const; + + /*! + * \return The size of the padding after the chunk (can be either 0 or 1). + */ + uint chunkPadding(uint i) const; + + /*! + * \return The name of the specified chunk, for instance, "COMM" or "ID3 " + */ + ByteVector chunkName(uint i) const; + + /*! + * Reads the chunk data from the file and returns it. + * + * \note This \e will move the read pointer for the file. + */ + ByteVector chunkData(uint i); + + /*! + * Sets the data for the chunk \a name to \a data. If a chunk with the + * given name already exists it will be overwritten, otherwise it will be + * created after the existing chunks. + * + * \warning This will update the file immediately. + */ + void setChunkData(const ByteVector &name, const ByteVector &data); + + private: + File(const File &); + File &operator=(const File &); + + void read(); + void writeChunk(const ByteVector &name, const ByteVector &data, + ulong offset, ulong replace = 0, + uint leadingPadding = 0); + + class FilePrivate; + FilePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/speexfile.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/speexfile.h new file mode 100644 index 0000000..c14cf2a --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/speexfile.h @@ -0,0 +1,107 @@ +/*************************************************************************** + copyright : (C) 2006 by Lukáš Lalinský + email : lalinsky@gmail.com + + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + (original Vorbis implementation) +***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_SPEEXFILE_H +#define TAGLIB_SPEEXFILE_H + +#include "oggfile.h" +#include "xiphcomment.h" + +#include "speexproperties.h" + +namespace TagLib { + + namespace Ogg { + + //! A namespace containing classes for Speex metadata + + namespace Speex { + + //! An implementation of Ogg::File with Speex specific methods + + /*! + * This is the central class in the Ogg Speex metadata processing collection + * of classes. It's built upon Ogg::File which handles processing of the Ogg + * logical bitstream and breaking it down into pages which are handled by + * the codec implementations, in this case Speex specifically. + */ + + class TAGLIB_EXPORT File : public Ogg::File + { + public: + /*! + * Contructs a Speex file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs a Speex file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns the XiphComment for this file. XiphComment implements the tag + * interface, so this serves as the reimplementation of + * TagLib::File::tag(). + */ + virtual Ogg::XiphComment *tag() const; + + /*! + * Returns the Speex::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + virtual bool save(); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + + class FilePrivate; + FilePrivate *d; + }; + } + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/speexproperties.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/speexproperties.h new file mode 100644 index 0000000..4720bd8 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/speexproperties.h @@ -0,0 +1,89 @@ +/*************************************************************************** + copyright : (C) 2006 by Lukáš Lalinský + email : lalinsky@gmail.com + + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + (original Vorbis implementation) +***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_SPEEXPROPERTIES_H +#define TAGLIB_SPEEXPROPERTIES_H + +#include "audioproperties.h" + +namespace TagLib { + + namespace Ogg { + + namespace Speex { + + class File; + + //! An implementation of audio property reading for Ogg Speex + + /*! + * This reads the data from an Ogg Speex stream found in the AudioProperties + * API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of Speex::Properties with the data read from the + * Speex::File \a file. + */ + Properties(File *file, ReadStyle style = Average); + + /*! + * Destroys this Speex::Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + /*! + * Returns the Speex version, currently "0" (as specified by the spec). + */ + int speexVersion() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void read(); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tag.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tag.h new file mode 100644 index 0000000..76c9a82 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tag.h @@ -0,0 +1,201 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_TAG_H +#define TAGLIB_TAG_H + +#include "taglib_export.h" +#include "tstring.h" + +namespace TagLib { + + //! A simple, generic interface to common audio meta data fields + + /*! + * This is an attempt to abstract away the difference in the meta data formats + * of various audio codecs and tagging schemes. As such it is generally a + * subset of what is available in the specific formats but should be suitable + * for most applications. This is meant to compliment the generic APIs found + * in TagLib::AudioProperties, TagLib::File and TagLib::FileRef. + */ + + class PropertyMap; + + class TAGLIB_EXPORT Tag + { + public: + + /*! + * Detroys this Tag instance. + */ + virtual ~Tag(); + + /*! + * Exports the tags of the file as dictionary mapping (human readable) tag + * names (Strings) to StringLists of tag values. + * The default implementation in this class considers only the usual built-in + * tags (artist, album, ...) and only one value per key. + */ + PropertyMap properties() const; + + /*! + * Removes unsupported properties, or a subset of them, from the tag. + * The parameter \a properties must contain only entries from + * properties().unsupportedData(). + * BIC: Will become virtual in future releases. Currently the non-virtual + * standard implementation of TagLib::Tag does nothing, since there are + * no unsupported elements. + */ + void removeUnsupportedProperties(const StringList& properties); + + /*! + * Sets the tags of this File to those specified in \a properties. This default + * implementation sets only the tags for which setter methods exist in this class + * (artist, album, ...), and only one value per key; the rest will be contained + * in the returned PropertyMap. + */ + PropertyMap setProperties(const PropertyMap &properties); + + /*! + * Returns the track name; if no track name is present in the tag + * String::null will be returned. + */ + virtual String title() const = 0; + + /*! + * Returns the artist name; if no artist name is present in the tag + * String::null will be returned. + */ + virtual String artist() const = 0; + + /*! + * Returns the album name; if no album name is present in the tag + * String::null will be returned. + */ + virtual String album() const = 0; + + /*! + * Returns the track comment; if no comment is present in the tag + * String::null will be returned. + */ + virtual String comment() const = 0; + + /*! + * Returns the genre name; if no genre is present in the tag String::null + * will be returned. + */ + virtual String genre() const = 0; + + /*! + * Returns the year; if there is no year set, this will return 0. + */ + virtual uint year() const = 0; + + /*! + * Returns the track number; if there is no track number set, this will + * return 0. + */ + virtual uint track() const = 0; + + /*! + * Sets the title to \a s. If \a s is String::null then this value will be + * cleared. + */ + virtual void setTitle(const String &s) = 0; + + /*! + * Sets the artist to \a s. If \a s is String::null then this value will be + * cleared. + */ + virtual void setArtist(const String &s) = 0; + + /*! + * Sets the album to \a s. If \a s is String::null then this value will be + * cleared. + */ + virtual void setAlbum(const String &s) = 0; + + /*! + * Sets the comment to \a s. If \a s is String::null then this value will be + * cleared. + */ + virtual void setComment(const String &s) = 0; + + /*! + * Sets the genre to \a s. If \a s is String::null then this value will be + * cleared. For tag formats that use a fixed set of genres, the appropriate + * value will be selected based on a string comparison. A list of available + * genres for those formats should be available in that type's + * implementation. + */ + virtual void setGenre(const String &s) = 0; + + /*! + * Sets the year to \a i. If \a s is 0 then this value will be cleared. + */ + virtual void setYear(uint i) = 0; + + /*! + * Sets the track to \a i. If \a s is 0 then this value will be cleared. + */ + virtual void setTrack(uint i) = 0; + + /*! + * Returns true if the tag does not contain any data. This should be + * reimplemented in subclasses that provide more than the basic tagging + * abilities in this class. + */ + virtual bool isEmpty() const; + + /*! + * Copies the generic data from one tag to another. + * + * \note This will no affect any of the lower level details of the tag. For + * instance if any of the tag type specific data (maybe a URL for a band) is + * set, this will not modify or copy that. This just copies using the API + * in this class. + * + * If \a overwrite is true then the values will be unconditionally copied. + * If false only empty values will be overwritten. + */ + static void duplicate(const Tag *source, Tag *target, bool overwrite = true); + + protected: + /*! + * Construct a Tag. This is protected since tags should only be instantiated + * through subclasses. + */ + Tag(); + + private: + Tag(const Tag &); + Tag &operator=(const Tag &); + + class TagPrivate; + TagPrivate *d; + }; +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/taglib.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/taglib.h new file mode 100644 index 0000000..dda9c83 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/taglib.h @@ -0,0 +1,226 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_H +#define TAGLIB_H + +#define TAGLIB_MAJOR_VERSION 1 +#define TAGLIB_MINOR_VERSION 7 +#define TAGLIB_PATCH_VERSION 0 + +#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 1)) +#define TAGLIB_IGNORE_MISSING_DESTRUCTOR _Pragma("GCC diagnostic ignored \"-Wnon-virtual-dtor\"") +#else +#define TAGLIB_IGNORE_MISSING_DESTRUCTOR +#endif + +#if (defined(_MSC_VER) && _MSC_VER >= 1600) +#define TAGLIB_CONSTRUCT_BITSET(x) static_cast(x) +#else +#define TAGLIB_CONSTRUCT_BITSET(x) static_cast(x) +#endif + +#include + +#ifdef __APPLE__ +# include +# define TAGLIB_ATOMIC_MAC +#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define NOMINMAX +# include +# define TAGLIB_ATOMIC_WIN +#elif defined (__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 401) \ + && (defined(__i386__) || defined(__i486__) || defined(__i586__) || \ + defined(__i686__) || defined(__x86_64) || defined(__ia64)) \ + && !defined(__INTEL_COMPILER) +# define TAGLIB_ATOMIC_GCC +#elif defined(__ia64) && defined(__INTEL_COMPILER) +# include +# define TAGLIB_ATOMIC_GCC +#endif + +//! A namespace for all TagLib related classes and functions + +/*! + * This namespace contains everything in TagLib. For projects working with + * TagLib extensively it may be convenient to add a + * \code + * using namespace TagLib; + * \endcode + */ + +namespace TagLib { + + class String; + + typedef wchar_t wchar; + typedef unsigned char uchar; + typedef unsigned short ushort; + typedef unsigned int uint; + typedef unsigned long ulong; + + /*! + * Unfortunately std::wstring isn't defined on some systems, (i.e. GCC < 3) + * so I'm providing something here that should be constant. + */ + typedef std::basic_string wstring; + +#ifndef DO_NOT_DOCUMENT // Tell Doxygen to skip this class. + /*! + * \internal + * This is just used as a base class for shared classes in TagLib. + * + * \warning This is not part of the TagLib public API! + */ + + class RefCounter + { + public: + RefCounter() : refCount(1) {} + +#ifdef TAGLIB_ATOMIC_MAC + void ref() { OSAtomicIncrement32Barrier(const_cast(&refCount)); } + bool deref() { return ! OSAtomicDecrement32Barrier(const_cast(&refCount)); } + int32_t count() { return refCount; } + private: + volatile int32_t refCount; +#elif defined(TAGLIB_ATOMIC_WIN) + void ref() { InterlockedIncrement(&refCount); } + bool deref() { return ! InterlockedDecrement(&refCount); } + long count() { return refCount; } + private: + volatile long refCount; +#elif defined(TAGLIB_ATOMIC_GCC) + void ref() { __sync_add_and_fetch(&refCount, 1); } + bool deref() { return ! __sync_sub_and_fetch(&refCount, 1); } + int count() { return refCount; } + private: + volatile int refCount; +#else + void ref() { refCount++; } + bool deref() { return ! --refCount; } + int count() { return refCount; } + private: + uint refCount; +#endif + + }; + +#endif // DO_NOT_DOCUMENT + +} + +/*! + * \mainpage TagLib + * + * \section intro Introduction + * + * TagLib is a library for reading and editing audio meta data, commonly know as \e tags. + * + * Features: + * - A clean, high level, C++ API to handling audio meta data. + * - Format specific APIs for advanced API users. + * - ID3v1, ID3v2, APE, FLAC, Xiph, iTunes-style MP4 and WMA tag formats. + * - MP3, MPC, FLAC, MP4, ASF, AIFF, WAV, TrueAudio, WavPack, Ogg FLAC, Ogg Vorbis and Speex file formats. + * - Basic audio file properties such as length, sample rate, etc. + * - Long term binary and source compatibility. + * - Extensible design, notably the ability to add other formats or extend current formats as a library user. + * - Full support for unicode and internationalized tags. + * - Dual MPL and + * LGPL licenses. + * - No external toolkit dependancies. + * + * \section why Why TagLib? + * + * TagLib originally was written to provide an updated and improved ID3v2 implementation in C++ for use + * in a variety of Open Source projects. Since development began in 2002 and the 1.0 release in 2004 + * it has expanded to cover a wide variety of tag and file formats and is used in a wide variety of + * Open Source and proprietary applications. It now supports a variety of UNIXes, including Apple's OS + * X, as well as Microsoft Windows. + * + * \section commercial Usage in Commercial Applications + * + * TagLib's licenses \e do allow usage within propriety (\e closed) applications, however TagLib is \e not + * public domain. Please note the requirements of the LGPL or MPL, and adhere to at least one of them. + * In simple terms, you must at a minimum note your usage of TagLib, note the licensing terms of TagLib and + * if you make changes to TagLib publish them. Please review the licenses above before using TagLib in your + * software. Note that you may choose either the MPL or the LGPL, you do not have to fulfill the + * requirements of both. + * + * \section installing Installing TagLib + * + * Please see the TagLib website for the latest + * downloads. + * + * TagLib can be built using the CMake build system. TagLib installs a taglib-config and pkg-config file to + * make it easier to integrate into various build systems. Note that TagLib's include install directory \e must + * be included in the header include path. Simply adding will \e not work. + * + * \section start Getting Started + * + * TagLib provides both simple, abstract APIs which make it possible to ignore the differences between tagging + * formats and format specific APIs which allow programmers to work with the features of specific tagging + * schemes. There is a similar abstraction mechanism for AudioProperties. + * + * The best place to start is with the Class Hierarchy linked at the top of the page. The File and + * AudioProperties classes and their subclasses are the core of TagLib. The FileRef class is also a convenient + * way for using a value-based handle. + * + * \note When working with FileRef please consider that it has only the most basic (extension-based) file + * type resolution. Please see its documentation on how to plug in more advanced file type resolution. (Such + * resolution may be part of later TagLib releases by default.) + * + * Here's a very simple example with TagLib: + * + * \code + * + * TagLib::FileRef f("Latex Solar Beef.mp3"); + * TagLib::String artist = f.tag()->artist(); // artist == "Frank Zappa" + * + * f.tag()->setAlbum("Fillmore East"); + * f.save(); + * + * TagLib::FileRef g("Free City Rhymes.ogg"); + * TagLib::String album = g.tag()->album(); // album == "NYC Ghosts & Flowers" + * + * g.tag()->setTrack(1); + * g.save(); + * + * \endcode + * + * More examples can be found in the \e examples directory of the source distribution. + * + * \section Contact + * + * Questions about TagLib should be directed to the TagLib mailing list, not directly to the author. + * + * - TagLib Homepage + * - TagLib Mailing List (taglib-devel@kde.org) + * + * \author Scott Wheeler et al. + * + */ + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/taglib_export.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/taglib_export.h new file mode 100644 index 0000000..3e86855 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/taglib_export.h @@ -0,0 +1,47 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_EXPORT_H +#define TAGLIB_EXPORT_H + +#if defined(TAGLIB_STATIC) +#define TAGLIB_EXPORT +#elif (defined(_WIN32) || defined(_WIN64)) +#ifdef MAKE_TAGLIB_LIB +#define TAGLIB_EXPORT __declspec(dllexport) +#else +#define TAGLIB_EXPORT __declspec(dllimport) +#endif +#elif defined(__GNUC__) && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 1) +#define TAGLIB_EXPORT __attribute__ ((visibility("default"))) +#else +#define TAGLIB_EXPORT +#endif + +#ifndef TAGLIB_NO_CONFIG +#include "taglib_config.h" +#endif + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tagunion.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tagunion.h new file mode 100644 index 0000000..e94d523 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tagunion.h @@ -0,0 +1,95 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_TAGUNION_H +#define TAGLIB_TAGUNION_H + +#include "tag.h" + +#ifndef DO_NOT_DOCUMENT + +namespace TagLib { + + /*! + * \internal + */ + + class TagUnion : public Tag + { + public: + + enum AccessType { Read, Write }; + + /*! + * Creates a TagLib::Tag that is the union of \a first, \a second, and + * \a third. The TagUnion takes ownership of these tags and will handle + * their deletion. + */ + TagUnion(Tag *first = 0, Tag *second = 0, Tag *third = 0); + + virtual ~TagUnion(); + + Tag *operator[](int index) const; + Tag *tag(int index) const; + + void set(int index, Tag *tag); + + virtual String title() const; + virtual String artist() const; + virtual String album() const; + virtual String comment() const; + virtual String genre() const; + virtual uint year() const; + virtual uint track() const; + + virtual void setTitle(const String &s); + virtual void setArtist(const String &s); + virtual void setAlbum(const String &s); + virtual void setComment(const String &s); + virtual void setGenre(const String &s); + virtual void setYear(uint i); + virtual void setTrack(uint i); + virtual bool isEmpty() const; + + template T *access(int index, bool create) + { + if(!create || tag(index)) + return static_cast(tag(index)); + + set(index, new T); + return static_cast(tag(index)); + } + + private: + TagUnion(const Tag &); + TagUnion &operator=(const Tag &); + + class TagUnionPrivate; + TagUnionPrivate *d; + }; +} + +#endif +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tbytevector.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tbytevector.h new file mode 100644 index 0000000..0c58326 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tbytevector.h @@ -0,0 +1,425 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_BYTEVECTOR_H +#define TAGLIB_BYTEVECTOR_H + +#include "taglib.h" +#include "taglib_export.h" + +#include +#include + +namespace TagLib { + + //! A byte vector + + /*! + * This class provides a byte vector with some methods that are useful for + * tagging purposes. Many of the search functions are tailored to what is + * useful for finding tag related paterns in a data array. + */ + + class TAGLIB_EXPORT ByteVector + { + public: +#ifndef DO_NOT_DOCUMENT + typedef std::vector::iterator Iterator; + typedef std::vector::const_iterator ConstIterator; +#endif + + /*! + * Constructs an empty byte vector. + */ + ByteVector(); + + /*! + * Construct a vector of size \a size with all values set to \a value by + * default. + */ + ByteVector(uint size, char value = 0); + + /*! + * Contructs a byte vector that is a copy of \a v. + */ + ByteVector(const ByteVector &v); + + /*! + * Contructs a byte vector that contains \a c. + */ + ByteVector(char c); + + /*! + * Constructs a byte vector that copies \a data for up to \a length bytes. + */ + ByteVector(const char *data, uint length); + + /*! + * Constructs a byte vector that copies \a data up to the first null + * byte. The behavior is undefined if \a data is not null terminated. + * This is particularly useful for constructing byte arrays from string + * constants. + */ + ByteVector(const char *data); + + /*! + * Destroys this ByteVector instance. + */ + virtual ~ByteVector(); + + /*! + * Sets the data for the byte array using the first \a length bytes of \a data + */ + ByteVector &setData(const char *data, uint length); + + /*! + * Sets the data for the byte array copies \a data up to the first null + * byte. The behavior is undefined if \a data is not null terminated. + */ + ByteVector &setData(const char *data); + + /*! + * Returns a pointer to the internal data structure. + * + * \warning Care should be taken when modifying this data structure as it is + * easy to corrupt the ByteVector when doing so. Specifically, while the + * data may be changed, its length may not be. + */ + char *data(); + + /*! + * Returns a pointer to the internal data structure which may not be modified. + */ + const char *data() const; + + /*! + * Returns a byte vector made up of the bytes starting at \a index and + * for \a length bytes. If \a length is not specified it will return the bytes + * from \a index to the end of the vector. + */ + ByteVector mid(uint index, uint length = 0xffffffff) const; + + /*! + * This essentially performs the same as operator[](), but instead of causing + * a runtime error if the index is out of bounds, it will return a null byte. + */ + char at(uint index) const; + + /*! + * Searches the ByteVector for \a pattern starting at \a offset and returns + * the offset. Returns -1 if the pattern was not found. If \a byteAlign is + * specified the pattern will only be matched if it starts on a byte divisible + * by \a byteAlign (starting from \a offset). + */ + int find(const ByteVector &pattern, uint offset = 0, int byteAlign = 1) const; + + /*! + * Searches the ByteVector for \a pattern starting from either the end of the + * vector or \a offset and returns the offset. Returns -1 if the pattern was + * not found. If \a byteAlign is specified the pattern will only be matched + * if it starts on a byte divisible by \a byteAlign (starting from \a offset). + */ + int rfind(const ByteVector &pattern, uint offset = 0, int byteAlign = 1) const; + + /*! + * Checks to see if the vector contains the \a pattern starting at position + * \a offset. Optionally, if you only want to search for part of the pattern + * you can specify an offset within the pattern to start from. Also, you can + * specify to only check for the first \a patternLength bytes of \a pattern with + * the \a patternLength argument. + */ + bool containsAt(const ByteVector &pattern, uint offset, uint patternOffset = 0, uint patternLength = 0xffffffff) const; + + /*! + * Returns true if the vector starts with \a pattern. + */ + bool startsWith(const ByteVector &pattern) const; + + /*! + * Returns true if the vector ends with \a pattern. + */ + bool endsWith(const ByteVector &pattern) const; + + /*! + * Replaces \a pattern with \a with and returns a reference to the ByteVector + * after the operation. This \e does modify the vector. + */ + ByteVector &replace(const ByteVector &pattern, const ByteVector &with); + + /*! + * Checks for a partial match of \a pattern at the end of the vector. It + * returns the offset of the partial match within the vector, or -1 if the + * pattern is not found. This method is particularly useful when searching for + * patterns that start in one vector and end in another. When combined with + * startsWith() it can be used to find a pattern that overlaps two buffers. + * + * \note This will not match the complete pattern at the end of the string; use + * endsWith() for that. + */ + int endsWithPartialMatch(const ByteVector &pattern) const; + + /*! + * Appends \a v to the end of the ByteVector. + */ + ByteVector &append(const ByteVector &v); + + /*! + * Clears the data. + */ + ByteVector &clear(); + + /*! + * Returns the size of the array. + */ + uint size() const; + + /*! + * Resize the vector to \a size. If the vector is currently less than + * \a size, pad the remaining spaces with \a padding. Returns a reference + * to the resized vector. + */ + ByteVector &resize(uint size, char padding = 0); + + /*! + * Returns an Iterator that points to the front of the vector. + */ + Iterator begin(); + + /*! + * Returns a ConstIterator that points to the front of the vector. + */ + ConstIterator begin() const; + + /*! + * Returns an Iterator that points to the back of the vector. + */ + Iterator end(); + + /*! + * Returns a ConstIterator that points to the back of the vector. + */ + ConstIterator end() const; + + /*! + * Returns true if the vector is null. + * + * \note A vector may be empty without being null. + * \see isEmpty() + */ + bool isNull() const; + + /*! + * Returns true if the ByteVector is empty. + * + * \see size() + * \see isNull() + */ + bool isEmpty() const; + + /*! + * Returns a CRC checksum of the byte vector's data. + */ + uint checksum() const; + + /*! + * Converts the first 4 bytes of the vector to an unsigned integer. + * + * If \a mostSignificantByteFirst is true this will operate left to right + * evaluating the integer. For example if \a mostSignificantByteFirst is + * true then $00 $00 $00 $01 == 0x00000001 == 1, if false, $01 00 00 00 == + * 0x01000000 == 1. + * + * \see fromUInt() + */ + uint toUInt(bool mostSignificantByteFirst = true) const; + + /*! + * Converts the first 2 bytes of the vector to a short. + * + * If \a mostSignificantByteFirst is true this will operate left to right + * evaluating the integer. For example if \a mostSignificantByteFirst is + * true then $00 $01 == 0x0001 == 1, if false, $01 00 == 0x01000000 == 1. + * + * \see fromShort() + */ + short toShort(bool mostSignificantByteFirst = true) const; + + /*! + * Converts the first 2 bytes of the vector to a unsigned short. + * + * If \a mostSignificantByteFirst is true this will operate left to right + * evaluating the integer. For example if \a mostSignificantByteFirst is + * true then $00 $01 == 0x0001 == 1, if false, $01 00 == 0x01000000 == 1. + * + * \see fromShort() + */ + unsigned short toUShort(bool mostSignificantByteFirst = true) const; + + /*! + * Converts the first 8 bytes of the vector to a (signed) long long. + * + * If \a mostSignificantByteFirst is true this will operate left to right + * evaluating the integer. For example if \a mostSignificantByteFirst is + * true then $00 00 00 00 00 00 00 01 == 0x0000000000000001 == 1, + * if false, $01 00 00 00 00 00 00 00 == 0x0100000000000000 == 1. + * + * \see fromUInt() + */ + long long toLongLong(bool mostSignificantByteFirst = true) const; + + /*! + * Creates a 4 byte ByteVector based on \a value. If + * \a mostSignificantByteFirst is true, then this will operate left to right + * in building the ByteVector. For example if \a mostSignificantByteFirst is + * true then $00 00 00 01 == 0x00000001 == 1, if false, $01 00 00 00 == + * 0x01000000 == 1. + * + * \see toUInt() + */ + static ByteVector fromUInt(uint value, bool mostSignificantByteFirst = true); + + /*! + * Creates a 2 byte ByteVector based on \a value. If + * \a mostSignificantByteFirst is true, then this will operate left to right + * in building the ByteVector. For example if \a mostSignificantByteFirst is + * true then $00 01 == 0x0001 == 1, if false, $01 00 == 0x0100 == 1. + * + * \see toShort() + */ + static ByteVector fromShort(short value, bool mostSignificantByteFirst = true); + + /*! + * Creates a 8 byte ByteVector based on \a value. If + * \a mostSignificantByteFirst is true, then this will operate left to right + * in building the ByteVector. For example if \a mostSignificantByteFirst is + * true then $00 00 00 01 == 0x0000000000000001 == 1, if false, + * $01 00 00 00 00 00 00 00 == 0x0100000000000000 == 1. + * + * \see toLongLong() + */ + static ByteVector fromLongLong(long long value, bool mostSignificantByteFirst = true); + + /*! + * Returns a ByteVector based on the CString \a s. + */ + static ByteVector fromCString(const char *s, uint length = 0xffffffff); + + /*! + * Returns a const refernence to the byte at \a index. + */ + const char &operator[](int index) const; + + /*! + * Returns a reference to the byte at \a index. + */ + char &operator[](int index); + + /*! + * Returns true if this ByteVector and \a v are equal. + */ + bool operator==(const ByteVector &v) const; + + /*! + * Returns true if this ByteVector and \a v are not equal. + */ + bool operator!=(const ByteVector &v) const; + + /*! + * Returns true if this ByteVector and the null terminated C string \a s + * contain the same data. + */ + bool operator==(const char *s) const; + + /*! + * Returns true if this ByteVector and the null terminated C string \a s + * do not contain the same data. + */ + bool operator!=(const char *s) const; + + /*! + * Returns true if this ByteVector is less than \a v. The value of the + * vectors is determined by evaluating the character from left to right, and + * in the event one vector is a superset of the other, the size is used. + */ + bool operator<(const ByteVector &v) const; + + /*! + * Returns true if this ByteVector is greater than \a v. + */ + bool operator>(const ByteVector &v) const; + + /*! + * Returns a vector that is \a v appended to this vector. + */ + ByteVector operator+(const ByteVector &v) const; + + /*! + * Copies ByteVector \a v. + */ + ByteVector &operator=(const ByteVector &v); + + /*! + * Copies ByteVector \a v. + */ + ByteVector &operator=(char c); + + /*! + * Copies ByteVector \a v. + */ + ByteVector &operator=(const char *data); + + /*! + * A static, empty ByteVector which is convenient and fast (since returning + * an empty or "null" value does not require instantiating a new ByteVector). + */ + static ByteVector null; + + /*! + * Returns a hex-encoded copy of the byte vector. + */ + ByteVector toHex() const; + + protected: + /* + * If this ByteVector is being shared via implicit sharing, do a deep copy + * of the data and separate from the shared members. This should be called + * by all non-const subclass members. + */ + void detach(); + + private: + class ByteVectorPrivate; + ByteVectorPrivate *d; + }; + +} + +/*! + * \relates TagLib::ByteVector + * Streams the ByteVector \a v to the output stream \a s. + */ +TAGLIB_EXPORT std::ostream &operator<<(std::ostream &s, const TagLib::ByteVector &v); + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tbytevectorlist.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tbytevectorlist.h new file mode 100644 index 0000000..5852583 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tbytevectorlist.h @@ -0,0 +1,91 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_BYTEVECTORLIST_H +#define TAGLIB_BYTEVECTORLIST_H + +#include "taglib_export.h" +#include "tbytevector.h" +#include "tlist.h" + +namespace TagLib { + + //! A list of ByteVectors + + /*! + * A List specialization with some handy features useful for ByteVectors. + */ + + class TAGLIB_EXPORT ByteVectorList : public List + { + public: + + /*! + * Construct an empty ByteVectorList. + */ + ByteVectorList(); + + /*! + * Destroys this ByteVectorList instance. + */ + virtual ~ByteVectorList(); + + /*! + * Make a shallow, implicitly shared, copy of \a l. Because this is + * implicitly shared, this method is lightweight and suitable for + * pass-by-value usage. + */ + ByteVectorList(const ByteVectorList &l); + + /*! + * Convert the ByteVectorList to a ByteVector separated by \a separator. By + * default a space is used. + */ + ByteVector toByteVector(const ByteVector &separator = " ") const; + + /*! + * Splits the ByteVector \a v into several strings at \a pattern. This will + * not include the pattern in the returned ByteVectors. + */ + static ByteVectorList split(const ByteVector &v, const ByteVector &pattern, + int byteAlign = 1); + /*! + * Splits the ByteVector \a v into several strings at \a pattern. This will + * not include the pattern in the returned ByteVectors. \a max is the + * maximum number of entries that will be separated. If \a max for instance + * is 2 then a maximum of 1 match will be found and the vector will be split + * on that match. + */ + // BIC: merge with the function above + static ByteVectorList split(const ByteVector &v, const ByteVector &pattern, + int byteAlign, int max); + private: + class ByteVectorListPrivate; + ByteVectorListPrivate *d; + }; + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tbytevectorstream.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tbytevectorstream.h new file mode 100644 index 0000000..456b854 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tbytevectorstream.h @@ -0,0 +1,145 @@ +/*************************************************************************** + copyright : (C) 2011 by Lukas Lalinsky + email : lalinsky@gmail.com + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_BYTEVECTORSTREAM_H +#define TAGLIB_BYTEVECTORSTREAM_H + +#include "taglib_export.h" +#include "taglib.h" +#include "tbytevector.h" +#include "tiostream.h" + +namespace TagLib { + + class String; + class Tag; + class AudioProperties; + + //! In-memory Stream class using ByteVector for its storage. + + class TAGLIB_EXPORT ByteVectorStream : public IOStream + { + public: + /*! + * Construct a File object and opens the \a file. \a file should be a + * be a C-string in the local file system encoding. + */ + ByteVectorStream(const ByteVector &data); + + /*! + * Destroys this ByteVectorStream instance. + */ + virtual ~ByteVectorStream(); + + /*! + * Returns the file name in the local file system encoding. + */ + FileName name() const; + + /*! + * Reads a block of size \a length at the current get pointer. + */ + ByteVector readBlock(ulong length); + + /*! + * Attempts to write the block \a data at the current get pointer. If the + * file is currently only opened read only -- i.e. readOnly() returns true -- + * this attempts to reopen the file in read/write mode. + * + * \note This should be used instead of using the streaming output operator + * for a ByteVector. And even this function is significantly slower than + * doing output with a char[]. + */ + void writeBlock(const ByteVector &data); + + /*! + * Insert \a data at position \a start in the file overwriting \a replace + * bytes of the original content. + * + * \note This method is slow since it requires rewriting all of the file + * after the insertion point. + */ + void insert(const ByteVector &data, ulong start = 0, ulong replace = 0); + + /*! + * Removes a block of the file starting a \a start and continuing for + * \a length bytes. + * + * \note This method is slow since it involves rewriting all of the file + * after the removed portion. + */ + void removeBlock(ulong start = 0, ulong length = 0); + + /*! + * Returns true if the file is read only (or if the file can not be opened). + */ + bool readOnly() const; + + /*! + * Since the file can currently only be opened as an argument to the + * constructor (sort-of by design), this returns if that open succeeded. + */ + bool isOpen() const; + + /*! + * Move the I/O pointer to \a offset in the file from position \a p. This + * defaults to seeking from the beginning of the file. + * + * \see Position + */ + void seek(long offset, Position p = Beginning); + + /*! + * Reset the end-of-file and error flags on the file. + */ + void clear(); + + /*! + * Returns the current offset within the file. + */ + long tell() const; + + /*! + * Returns the length of the file. + */ + long length(); + + /*! + * Truncates the file to a \a length. + */ + void truncate(long length); + + ByteVector *data(); + + protected: + + private: + class ByteVectorStreamPrivate; + ByteVectorStreamPrivate *d; + }; + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tdebug.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tdebug.h new file mode 100644 index 0000000..5204fe7 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tdebug.h @@ -0,0 +1,71 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_DEBUG_H +#define TAGLIB_DEBUG_H + +namespace TagLib { + + class String; + class ByteVector; + +#ifndef DO_NOT_DOCUMENT +#ifndef NDEBUG + + /*! + * A simple function that prints debugging output to cerr if debugging is + * not disabled. + * + * \warning Do not use this outside of TagLib, it could lead to undefined + * symbols in your build if TagLib is built with NDEBUG defined and your + * application is not. + * + * \internal + */ + void debug(const String &s); + + /*! + * For debugging binary data. + * + * \warning Do not use this outside of TagLib, it could lead to undefined + * symbols in your build if TagLib is built with NDEBUG defined and your + * application is not. + * + * \internal + */ + void debugData(const ByteVector &v); + +#else + + // Define these to an empty statement if debugging is disabled. + +#define debug(x) +#define debugData(x) + +#endif +#endif +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/textidentificationframe.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/textidentificationframe.h new file mode 100644 index 0000000..58ed63e --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/textidentificationframe.h @@ -0,0 +1,313 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_TEXTIDENTIFICATIONFRAME_H +#define TAGLIB_TEXTIDENTIFICATIONFRAME_H + +#include "tstringlist.h" +#include "tmap.h" +#include "taglib_export.h" + +#include "id3v2frame.h" + +namespace TagLib { + + namespace ID3v2 { + + class Tag; + typedef Map KeyConversionMap; + + //! An ID3v2 text identification frame implementation + + /*! + * This is an implementation of the most common type of ID3v2 frame -- text + * identification frames. There are a number of variations on this. Those + * enumerated in the ID3v2.4 standard are: + * + *

        + *
      • TALB Album/Movie/Show title
      • + *
      • TBPM BPM (beats per minute)
      • + *
      • TCOM Composer
      • + *
      • TCON Content type
      • + *
      • TCOP Copyright message
      • + *
      • TDEN Encoding time
      • + *
      • TDLY Playlist delay
      • + *
      • TDOR Original release time
      • + *
      • TDRC Recording time
      • + *
      • TDRL Release time
      • + *
      • TDTG Tagging time
      • + *
      • TENC Encoded by
      • + *
      • TEXT Lyricist/Text writer
      • + *
      • TFLT File type
      • + *
      • TIPL Involved people list
      • + *
      • TIT1 Content group description
      • + *
      • TIT2 Title/songname/content description
      • + *
      • TIT3 Subtitle/Description refinement
      • + *
      • TKEY Initial key
      • + *
      • TLAN Language(s)
      • + *
      • TLEN Length
      • + *
      • TMCL Musician credits list
      • + *
      • TMED Media type
      • + *
      • TMOO Mood
      • + *
      • TOAL Original album/movie/show title
      • + *
      • TOFN Original filename
      • + *
      • TOLY Original lyricist(s)/text writer(s)
      • + *
      • TOPE Original artist(s)/performer(s)
      • + *
      • TOWN File owner/licensee
      • + *
      • TPE1 Lead performer(s)/Soloist(s)
      • + *
      • TPE2 Band/orchestra/accompaniment
      • + *
      • TPE3 Conductor/performer refinement
      • + *
      • TPE4 Interpreted, remixed, or otherwise modified by
      • + *
      • TPOS Part of a set
      • + *
      • TPRO Produced notice
      • + *
      • TPUB Publisher
      • + *
      • TRCK Track number/Position in set
      • + *
      • TRSN Internet radio station name
      • + *
      • TRSO Internet radio station owner
      • + *
      • TSOA Album sort order
      • + *
      • TSOP Performer sort order
      • + *
      • TSOT Title sort order
      • + *
      • TSRC ISRC (international standard recording code)
      • + *
      • TSSE Software/Hardware and settings used for encoding
      • + *
      • TSST Set subtitle
      • + *
      + * + * The ID3v2 Frames document gives a description of each of these formats + * and the expected order of strings in each. ID3v2::Header::frameID() can + * be used to determine the frame type. + * + * \note If non-Latin1 compatible strings are used with this class, even if + * the text encoding is set to Latin1, the frame will be written using UTF8 + * (with the encoding flag appropriately set in the output). + */ + + class TAGLIB_EXPORT TextIdentificationFrame : public Frame + { + friend class FrameFactory; + + public: + /*! + * Construct an empty frame of type \a type. Uses \a encoding as the + * default text encoding. + * + * \note In this case you must specify the text encoding as it + * resolves the ambiguity between constructors. + * + * \note Please see the note in the class description regarding Latin1. + */ + TextIdentificationFrame(const ByteVector &type, String::Type encoding); + + /*! + * This is a dual purpose constructor. \a data can either be binary data + * that should be parsed or (at a minimum) the frame ID. + */ + explicit TextIdentificationFrame(const ByteVector &data); + + /*! + * This is a special factory method to create a TIPL (involved people list) + * frame from the given \a properties. Will parse key=[list of values] data + * into the TIPL format as specified in the ID3 standard. + */ + static TextIdentificationFrame *createTIPLFrame(const PropertyMap &properties); + + /*! + * This is a special factory method to create a TMCL (musician credits list) + * frame from the given \a properties. Will parse key=[list of values] data + * into the TMCL format as specified in the ID3 standard, where key should be + * of the form instrumentPrefix:instrument. + */ + static TextIdentificationFrame *createTMCLFrame(const PropertyMap &properties); + /*! + * Destroys this TextIdentificationFrame instance. + */ + virtual ~TextIdentificationFrame(); + + /*! + * Text identification frames are a list of string fields. + * + * This function will accept either a StringList or a String (using the + * StringList constructor that accepts a single String). + * + * \note This will not change the text encoding of the frame even if the + * strings passed in are not of the same encoding. Please use + * setEncoding(s.type()) if you wish to change the encoding of the frame. + */ + void setText(const StringList &l); + + // Reimplementations. + + virtual void setText(const String &s); + virtual String toString() const; + + /*! + * Returns the text encoding that will be used in rendering this frame. + * This defaults to the type that was either specified in the constructor + * or read from the frame when parsed. + * + * \note Please see the note in the class description regarding Latin1. + * + * \see setTextEncoding() + * \see render() + */ + String::Type textEncoding() const; + + /*! + * Sets the text encoding to be used when rendering this frame to + * \a encoding. + * + * \note Please see the note in the class description regarding Latin1. + * + * \see textEncoding() + * \see render() + */ + void setTextEncoding(String::Type encoding); + + /*! + * Returns a list of the strings in this frame. + */ + StringList fieldList() const; + + /*! + * Returns a KeyConversionMap mapping a role as it would be used in a PropertyMap + * to the corresponding key used in a TIPL ID3 frame to describe that role. + */ + static const KeyConversionMap &involvedPeopleMap(); + + PropertyMap asProperties() const; + + protected: + // Reimplementations. + + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + /*! + * The constructor used by the FrameFactory. + */ + TextIdentificationFrame(const ByteVector &data, Header *h); + + private: + TextIdentificationFrame(const TextIdentificationFrame &); + TextIdentificationFrame &operator=(const TextIdentificationFrame &); + + /*! + * Parses the special structure of a TIPL frame + * Only the whitelisted roles "ARRANGER", "ENGINEER", "PRODUCER", + * "DJMIXER" (ID3: "DJ-MIX") and "MIXER" (ID3: "MIX") are allowed. + */ + PropertyMap makeTIPLProperties() const; + /*! + * Parses the special structure of a TMCL frame. + */ + PropertyMap makeTMCLProperties() const; + class TextIdentificationFramePrivate; + TextIdentificationFramePrivate *d; + }; + + /*! + * This is a specialization of text identification frames that allows for + * user defined entries. Each entry has a description in addition to the + * normal list of fields that a text identification frame has. + * + * This description identifies the frame and must be unique. + */ + + //! An ID3v2 custom text identification frame implementationx + + class TAGLIB_EXPORT UserTextIdentificationFrame : public TextIdentificationFrame + { + friend class FrameFactory; + + public: + /*! + * Constructs an empty user defined text identification frame. For this to be + * a useful frame both a description and text must be set. + */ + explicit UserTextIdentificationFrame(String::Type encoding = String::Latin1); + + /*! + * Creates a frame based on \a data. + */ + explicit UserTextIdentificationFrame(const ByteVector &data); + + /*! + * Creates a user defined text identification frame with the given \a description + * and \a values. + */ + UserTextIdentificationFrame(const String &description, const StringList &values, String::Type encoding = String::UTF8); + + virtual String toString() const; + + /*! + * Returns the description for this frame. + */ + String description() const; + + /*! + * Sets the description of the frame to \a s. \a s must be unique. You can + * check for the presence of another user defined text frame of the same type + * using find() and testing for null. + */ + void setDescription(const String &s); + + StringList fieldList() const; + void setText(const String &text); + void setText(const StringList &fields); + + /*! + * A UserTextIdentificationFrame is parsed into a PropertyMap as follows: + * - the key is the frame's description, uppercased + * - if the description contains '::', only the substring after that + * separator is considered as key (compatibility with exfalso) + * - if the above rules don't yield a valid key (e.g. containing non-ASCII + * characters), the returned map will contain an entry "TXXX/" + * in its unsupportedData() list. + * - The values will be copies of the fieldList(). + * - If the description() appears as value in fieldList(), it will be omitted + * in the value list, in order to be compatible with TagLib which copies + * the description() into the fieldList(). + */ + PropertyMap asProperties() const; + + /*! + * Searches for the user defined text frame with the description \a description + * in \a tag. This returns null if no matching frames were found. + */ + static UserTextIdentificationFrame *find(Tag *tag, const String &description); + + private: + UserTextIdentificationFrame(const ByteVector &data, Header *h); + UserTextIdentificationFrame(const TextIdentificationFrame &); + UserTextIdentificationFrame &operator=(const UserTextIdentificationFrame &); + + void checkFields(); + + class UserTextIdentificationFramePrivate; + UserTextIdentificationFramePrivate *d; + }; + + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tfile.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tfile.h new file mode 100644 index 0000000..7df774a --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tfile.h @@ -0,0 +1,295 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_FILE_H +#define TAGLIB_FILE_H + +#include "taglib_export.h" +#include "taglib.h" +#include "tag.h" +#include "tbytevector.h" +#include "tiostream.h" + +namespace TagLib { + + class String; + class Tag; + class AudioProperties; + class PropertyMap; + + //! A file class with some useful methods for tag manipulation + + /*! + * This class is a basic file class with some methods that are particularly + * useful for tag editors. It has methods to take advantage of + * ByteVector and a binary search method for finding patterns in a file. + */ + + class TAGLIB_EXPORT File + { + public: + /*! + * Position in the file used for seeking. + */ + enum Position { + //! Seek from the beginning of the file. + Beginning, + //! Seek from the current position in the file. + Current, + //! Seek from the end of the file. + End + }; + + /*! + * Destroys this File instance. + */ + virtual ~File(); + + /*! + * Returns the file name in the local file system encoding. + */ + FileName name() const; + + /*! + * Returns a pointer to this file's tag. This should be reimplemented in + * the concrete subclasses. + */ + virtual Tag *tag() const = 0; + + /*! + * Exports the tags of the file as dictionary mapping (human readable) tag + * names (Strings) to StringLists of tag values. Calls the according specialization + * in the File subclasses. + * For each metadata object of the file that could not be parsed into the PropertyMap + * format, the returend map's unsupportedData() list will contain one entry identifying + * that object (e.g. the frame type for ID3v2 tags). Use removeUnsupportedProperties() + * to remove (a subset of) them. + * BIC: Will be made virtual in future releases. + */ + PropertyMap properties() const; + + /*! + * Removes unsupported properties, or a subset of them, from the file's metadata. + * The parameter \a properties must contain only entries from + * properties().unsupportedData(). + * BIC: Will be mad virtual in future releases. + */ + void removeUnsupportedProperties(const StringList& properties); + + /*! + * Sets the tags of this File to those specified in \a properties. Calls the + * according specialization method in the subclasses of File to do the translation + * into the format-specific details. + * If some value(s) could not be written imported to the specific metadata format, + * the returned PropertyMap will contain those value(s). Otherwise it will be empty, + * indicating that no problems occured. + * BIC: will become pure virtual in the future + */ + PropertyMap setProperties(const PropertyMap &properties); + /*! + * Returns a pointer to this file's audio properties. This should be + * reimplemented in the concrete subclasses. If no audio properties were + * read then this will return a null pointer. + */ + virtual AudioProperties *audioProperties() const = 0; + + /*! + * Save the file and its associated tags. This should be reimplemented in + * the concrete subclasses. Returns true if the save succeeds. + * + * \warning On UNIX multiple processes are able to write to the same file at + * the same time. This can result in serious file corruption. If you are + * developing a program that makes use of TagLib from multiple processes you + * must insure that you are only doing writes to a particular file from one + * of them. + */ + virtual bool save() = 0; + + /*! + * Reads a block of size \a length at the current get pointer. + */ + ByteVector readBlock(ulong length); + + /*! + * Attempts to write the block \a data at the current get pointer. If the + * file is currently only opened read only -- i.e. readOnly() returns true -- + * this attempts to reopen the file in read/write mode. + * + * \note This should be used instead of using the streaming output operator + * for a ByteVector. And even this function is significantly slower than + * doing output with a char[]. + */ + void writeBlock(const ByteVector &data); + + /*! + * Returns the offset in the file that \a pattern occurs at or -1 if it can + * not be found. If \a before is set, the search will only continue until the + * pattern \a before is found. This is useful for tagging purposes to search + * for a tag before the synch frame. + * + * Searching starts at \a fromOffset, which defaults to the beginning of the + * file. + * + * \note This has the practial limitation that \a pattern can not be longer + * than the buffer size used by readBlock(). Currently this is 1024 bytes. + */ + long find(const ByteVector &pattern, + long fromOffset = 0, + const ByteVector &before = ByteVector::null); + + /*! + * Returns the offset in the file that \a pattern occurs at or -1 if it can + * not be found. If \a before is set, the search will only continue until the + * pattern \a before is found. This is useful for tagging purposes to search + * for a tag before the synch frame. + * + * Searching starts at \a fromOffset and proceeds from the that point to the + * beginning of the file and defaults to the end of the file. + * + * \note This has the practial limitation that \a pattern can not be longer + * than the buffer size used by readBlock(). Currently this is 1024 bytes. + */ + long rfind(const ByteVector &pattern, + long fromOffset = 0, + const ByteVector &before = ByteVector::null); + + /*! + * Insert \a data at position \a start in the file overwriting \a replace + * bytes of the original content. + * + * \note This method is slow since it requires rewriting all of the file + * after the insertion point. + */ + void insert(const ByteVector &data, ulong start = 0, ulong replace = 0); + + /*! + * Removes a block of the file starting a \a start and continuing for + * \a length bytes. + * + * \note This method is slow since it involves rewriting all of the file + * after the removed portion. + */ + void removeBlock(ulong start = 0, ulong length = 0); + + /*! + * Returns true if the file is read only (or if the file can not be opened). + */ + bool readOnly() const; + + /*! + * Since the file can currently only be opened as an argument to the + * constructor (sort-of by design), this returns if that open succeeded. + */ + bool isOpen() const; + + /*! + * Returns true if the file is open and readble. + */ + bool isValid() const; + + /*! + * Move the I/O pointer to \a offset in the file from position \a p. This + * defaults to seeking from the beginning of the file. + * + * \see Position + */ + void seek(long offset, Position p = Beginning); + + /*! + * Reset the end-of-file and error flags on the file. + */ + void clear(); + + /*! + * Returns the current offset within the file. + */ + long tell() const; + + /*! + * Returns the length of the file. + */ + long length(); + + /*! + * Returns true if \a file can be opened for reading. If the file does not + * exist, this will return false. + * + * \deprecated + */ + static bool isReadable(const char *file); + + /*! + * Returns true if \a file can be opened for writing. + * + * \deprecated + */ + static bool isWritable(const char *name); + + protected: + /*! + * Construct a File object and opens the \a file. \a file should be a + * be a C-string in the local file system encoding. + * + * \note Constructor is protected since this class should only be + * instantiated through subclasses. + */ + File(FileName file); + + /*! + * Construct a File object and use the \a stream instance. + * + * \note Constructor is protected since this class should only be + * instantiated through subclasses. + */ + File(IOStream *stream); + + /*! + * Marks the file as valid or invalid. + * + * \see isValid() + */ + void setValid(bool valid); + + /*! + * Truncates the file to a \a length. + */ + void truncate(long length); + + /*! + * Returns the buffer size that is used for internal buffering. + */ + static uint bufferSize(); + + private: + File(const File &); + File &operator=(const File &); + + class FilePrivate; + FilePrivate *d; + }; + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tfilestream.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tfilestream.h new file mode 100644 index 0000000..fa113b7 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tfilestream.h @@ -0,0 +1,154 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_FILESTREAM_H +#define TAGLIB_FILESTREAM_H + +#include "taglib_export.h" +#include "taglib.h" +#include "tbytevector.h" +#include "tiostream.h" + +namespace TagLib { + + class String; + class Tag; + class AudioProperties; + + //! A file class with some useful methods for tag manipulation + + /*! + * This class is a basic file class with some methods that are particularly + * useful for tag editors. It has methods to take advantage of + * ByteVector and a binary search method for finding patterns in a file. + */ + + class TAGLIB_EXPORT FileStream : public IOStream + { + public: + /*! + * Construct a File object and opens the \a file. \a file should be a + * be a C-string in the local file system encoding. + */ + FileStream(FileName file, bool openReadOnly = false); + + /*! + * Destroys this FileStream instance. + */ + virtual ~FileStream(); + + /*! + * Returns the file name in the local file system encoding. + */ + FileName name() const; + + /*! + * Reads a block of size \a length at the current get pointer. + */ + ByteVector readBlock(ulong length); + + /*! + * Attempts to write the block \a data at the current get pointer. If the + * file is currently only opened read only -- i.e. readOnly() returns true -- + * this attempts to reopen the file in read/write mode. + * + * \note This should be used instead of using the streaming output operator + * for a ByteVector. And even this function is significantly slower than + * doing output with a char[]. + */ + void writeBlock(const ByteVector &data); + + /*! + * Insert \a data at position \a start in the file overwriting \a replace + * bytes of the original content. + * + * \note This method is slow since it requires rewriting all of the file + * after the insertion point. + */ + void insert(const ByteVector &data, ulong start = 0, ulong replace = 0); + + /*! + * Removes a block of the file starting a \a start and continuing for + * \a length bytes. + * + * \note This method is slow since it involves rewriting all of the file + * after the removed portion. + */ + void removeBlock(ulong start = 0, ulong length = 0); + + /*! + * Returns true if the file is read only (or if the file can not be opened). + */ + bool readOnly() const; + + /*! + * Since the file can currently only be opened as an argument to the + * constructor (sort-of by design), this returns if that open succeeded. + */ + bool isOpen() const; + + /*! + * Move the I/O pointer to \a offset in the file from position \a p. This + * defaults to seeking from the beginning of the file. + * + * \see Position + */ + void seek(long offset, Position p = Beginning); + + /*! + * Reset the end-of-file and error flags on the file. + */ + void clear(); + + /*! + * Returns the current offset within the file. + */ + long tell() const; + + /*! + * Returns the length of the file. + */ + long length(); + + /*! + * Truncates the file to a \a length. + */ + void truncate(long length); + + protected: + + /*! + * Returns the buffer size that is used for internal buffering. + */ + static uint bufferSize(); + + private: + class FileStreamPrivate; + FileStreamPrivate *d; + }; + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tiostream.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tiostream.h new file mode 100644 index 0000000..3e7de22 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tiostream.h @@ -0,0 +1,160 @@ +/*************************************************************************** + copyright : (C) 2011 by Lukas Lalinsky + email : lalinsky@gmail.com + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_IOSTREAM_H +#define TAGLIB_IOSTREAM_H + +#include "taglib_export.h" +#include "taglib.h" +#include "tbytevector.h" + +namespace TagLib { + +#ifdef _WIN32 + class TAGLIB_EXPORT FileName + { + public: + FileName(const wchar_t *name) : m_wname(name) {} + FileName(const char *name) : m_name(name) {} + operator const wchar_t *() const { return m_wname.c_str(); } + operator const char *() const { return m_name.c_str(); } + private: + std::string m_name; + std::wstring m_wname; + }; +#else + typedef const char *FileName; +#endif + + //! An abstract class that provides operations on a sequence of bytes + + class TAGLIB_EXPORT IOStream + { + public: + /*! + * Position in the file used for seeking. + */ + enum Position { + //! Seek from the beginning of the file. + Beginning, + //! Seek from the current position in the file. + Current, + //! Seek from the end of the file. + End + }; + + IOStream(); + + /*! + * Destroys this IOStream instance. + */ + virtual ~IOStream(); + + /*! + * Returns the stream name in the local file system encoding. + */ + virtual FileName name() const = 0; + + /*! + * Reads a block of size \a length at the current get pointer. + */ + virtual ByteVector readBlock(ulong length) = 0; + + /*! + * Attempts to write the block \a data at the current get pointer. If the + * file is currently only opened read only -- i.e. readOnly() returns true -- + * this attempts to reopen the file in read/write mode. + * + * \note This should be used instead of using the streaming output operator + * for a ByteVector. And even this function is significantly slower than + * doing output with a char[]. + */ + virtual void writeBlock(const ByteVector &data) = 0; + + /*! + * Insert \a data at position \a start in the file overwriting \a replace + * bytes of the original content. + * + * \note This method is slow since it requires rewriting all of the file + * after the insertion point. + */ + virtual void insert(const ByteVector &data, ulong start = 0, ulong replace = 0) = 0; + + /*! + * Removes a block of the file starting a \a start and continuing for + * \a length bytes. + * + * \note This method is slow since it involves rewriting all of the file + * after the removed portion. + */ + virtual void removeBlock(ulong start = 0, ulong length = 0) = 0; + + /*! + * Returns true if the file is read only (or if the file can not be opened). + */ + virtual bool readOnly() const = 0; + + /*! + * Since the file can currently only be opened as an argument to the + * constructor (sort-of by design), this returns if that open succeeded. + */ + virtual bool isOpen() const = 0; + + /*! + * Move the I/O pointer to \a offset in the stream from position \a p. This + * defaults to seeking from the beginning of the stream. + * + * \see Position + */ + virtual void seek(long offset, Position p = Beginning) = 0; + + /*! + * Reset the end-of-stream and error flags on the stream. + */ + virtual void clear(); + + /*! + * Returns the current offset within the stream. + */ + virtual long tell() const = 0; + + /*! + * Returns the length of the stream. + */ + virtual long length() = 0; + + /*! + * Truncates the stream to a \a length. + */ + virtual void truncate(long length) = 0; + + private: + IOStream(const IOStream &); + IOStream &operator=(const IOStream &); + }; + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tlist.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tlist.h new file mode 100644 index 0000000..0099dad --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tlist.h @@ -0,0 +1,257 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_LIST_H +#define TAGLIB_LIST_H + +#include "taglib.h" + +#include + +namespace TagLib { + + //! A generic, implicitly shared list. + + /*! + * This is basic generic list that's somewhere between a std::list and a + * QValueList. This class is implicitly shared. For example: + * + * \code + * + * TagLib::List l = someOtherIntList; + * + * \endcode + * + * The above example is very cheap. This also makes lists suitable for the + * return types of functions. The above example will just copy a pointer rather + * than copying the data in the list. When your \e shared list's data changes, + * only \e then will the data be copied. + */ + + template class List + { + public: +#ifndef DO_NOT_DOCUMENT + typedef typename std::list::iterator Iterator; + typedef typename std::list::const_iterator ConstIterator; +#endif + + /*! + * Constructs an empty list. + */ + List(); + + /*! + * Make a shallow, implicitly shared, copy of \a l. Because this is + * implicitly shared, this method is lightweight and suitable for + * pass-by-value usage. + */ + List(const List &l); + + /*! + * Destroys this List instance. If auto deletion is enabled and this list + * contains a pointer type all of the memebers are also deleted. + */ + virtual ~List(); + + /*! + * Returns an STL style iterator to the beginning of the list. See + * std::list::const_iterator for the semantics. + */ + Iterator begin(); + + /*! + * Returns an STL style constant iterator to the beginning of the list. See + * std::list::iterator for the semantics. + */ + ConstIterator begin() const; + + /*! + * Returns an STL style iterator to the end of the list. See + * std::list::iterator for the semantics. + */ + Iterator end(); + + /*! + * Returns an STL style constant iterator to the end of the list. See + * std::list::const_iterator for the semantics. + */ + ConstIterator end() const; + + /*! + * Inserts a copy of \a value before \a it. + */ + Iterator insert(Iterator it, const T &value); + + /*! + * Inserts the \a value into the list. This assumes that the list is + * currently sorted. If \a unique is true then the value will not + * be inserted if it is already in the list. + */ + List &sortedInsert(const T &value, bool unique = false); + + /*! + * Appends \a item to the end of the list and returns a reference to the + * list. + */ + List &append(const T &item); + + /*! + * Appends all of the values in \a l to the end of the list and returns a + * reference to the list. + */ + List &append(const List &l); + + /*! + * Prepends \a item to the beginning list and returns a reference to the + * list. + */ + List &prepend(const T &item); + + /*! + * Prepends all of the items in \a l to the beginning list and returns a + * reference to the list. + */ + List &prepend(const List &l); + + /*! + * Clears the list. If auto deletion is enabled and this list contains a + * pointer type the members are also deleted. + * + * \see setAutoDelete() + */ + List &clear(); + + /*! + * Returns the number of elements in the list. + */ + uint size() const; + bool isEmpty() const; + + /*! + * Find the first occurrence of \a value. + */ + Iterator find(const T &value); + + /*! + * Find the first occurrence of \a value. + */ + ConstIterator find(const T &value) const; + + /*! + * Returns true if the list contains \a value. + */ + bool contains(const T &value) const; + + /*! + * Erase the item at \a it from the list. + */ + Iterator erase(Iterator it); + + /*! + * Returns a reference to the first item in the list. + */ + const T &front() const; + + /*! + * Returns a reference to the first item in the list. + */ + T &front(); + + /*! + * Returns a reference to the last item in the list. + */ + const T &back() const; + + /*! + * Returns a reference to the last item in the list. + */ + T &back(); + + /*! + * Auto delete the members of the list when the last reference to the list + * passes out of scope. This will have no effect on lists which do not + * contain a pointer type. + * + * \note This relies on partial template instantiation -- most modern C++ + * compilers should now support this. + */ + void setAutoDelete(bool autoDelete); + + /*! + * Returns a reference to item \a i in the list. + * + * \warning This method is slow. Use iterators to loop through the list. + */ + T &operator[](uint i); + + /*! + * Returns a const reference to item \a i in the list. + * + * \warning This method is slow. Use iterators to loop through the list. + */ + const T &operator[](uint i) const; + + /*! + * Make a shallow, implicitly shared, copy of \a l. Because this is + * implicitly shared, this method is lightweight and suitable for + * pass-by-value usage. + */ + List &operator=(const List &l); + + /*! + * Compares this list with \a l and returns true if all of the elements are + * the same. + */ + bool operator==(const List &l) const; + + /*! + * Compares this list with \a l and returns true if the lists differ. + */ + bool operator!=(const List &l) const; + + protected: + /* + * If this List is being shared via implicit sharing, do a deep copy of the + * data and separate from the shared members. This should be called by all + * non-const subclass members. + */ + void detach(); + + private: +#ifndef DO_NOT_DOCUMENT + template class ListPrivate; + ListPrivate *d; +#endif + }; + +} + +// Since GCC doesn't support the "export" keyword, we have to include the +// implementation. + +#include "tlist.tcc" + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tlist.tcc b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tlist.tcc new file mode 100644 index 0000000..37817f0 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tlist.tcc @@ -0,0 +1,322 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#include + +namespace TagLib { + +//////////////////////////////////////////////////////////////////////////////// +// public members +//////////////////////////////////////////////////////////////////////////////// + +// The functionality of List::setAutoDelete() is implemented here partial +// template specialization. This is implemented in such a way that calling +// setAutoDelete() on non-pointer types will simply have no effect. + +// A base for the generic and specialized private class types. New +// non-templatized members should be added here. + +class ListPrivateBase : public RefCounter +{ +public: + ListPrivateBase() : autoDelete(false) {} + bool autoDelete; +}; + +// A generic implementation + +template +template class List::ListPrivate : public ListPrivateBase +{ +public: + ListPrivate() : ListPrivateBase() {} + ListPrivate(const std::list &l) : ListPrivateBase(), list(l) {} + void clear() { + list.clear(); + } + std::list list; +}; + +// A partial specialization for all pointer types that implements the +// setAutoDelete() functionality. + +template +template class List::ListPrivate : public ListPrivateBase +{ +public: + ListPrivate() : ListPrivateBase() {} + ListPrivate(const std::list &l) : ListPrivateBase(), list(l) {} + ~ListPrivate() { + clear(); + } + void clear() { + if(autoDelete) { + typename std::list::const_iterator it = list.begin(); + for(; it != list.end(); ++it) + delete *it; + } + list.clear(); + } + std::list list; +}; + +//////////////////////////////////////////////////////////////////////////////// +// public members +//////////////////////////////////////////////////////////////////////////////// + +template +List::List() +{ + d = new ListPrivate; +} + +template +List::List(const List &l) : d(l.d) +{ + d->ref(); +} + +template +List::~List() +{ + if(d->deref()) + delete d; +} + +template +typename List::Iterator List::begin() +{ + detach(); + return d->list.begin(); +} + +template +typename List::ConstIterator List::begin() const +{ + return d->list.begin(); +} + +template +typename List::Iterator List::end() +{ + detach(); + return d->list.end(); +} + +template +typename List::ConstIterator List::end() const +{ + return d->list.end(); +} + +template +typename List::Iterator List::insert(Iterator it, const T &item) +{ + detach(); + return d->list.insert(it, item); +} + +template +List &List::sortedInsert(const T &value, bool unique) +{ + detach(); + Iterator it = begin(); + while(it != end() && *it < value) + ++it; + if(unique && it != end() && *it == value) + return *this; + insert(it, value); + return *this; +} + +template +List &List::append(const T &item) +{ + detach(); + d->list.push_back(item); + return *this; +} + +template +List &List::append(const List &l) +{ + detach(); + d->list.insert(d->list.end(), l.begin(), l.end()); + return *this; +} + +template +List &List::prepend(const T &item) +{ + detach(); + d->list.push_front(item); + return *this; +} + +template +List &List::prepend(const List &l) +{ + detach(); + d->list.insert(d->list.begin(), l.begin(), l.end()); + return *this; +} + +template +List &List::clear() +{ + detach(); + d->clear(); + return *this; +} + +template +TagLib::uint List::size() const +{ + return d->list.size(); +} + +template +bool List::isEmpty() const +{ + return d->list.empty(); +} + +template +typename List::Iterator List::find(const T &value) +{ + return std::find(d->list.begin(), d->list.end(), value); +} + +template +typename List::ConstIterator List::find(const T &value) const +{ + return std::find(d->list.begin(), d->list.end(), value); +} + +template +bool List::contains(const T &value) const +{ + return std::find(d->list.begin(), d->list.end(), value) != d->list.end(); +} + +template +typename List::Iterator List::erase(Iterator it) +{ + return d->list.erase(it); +} + +template +const T &List::front() const +{ + return d->list.front(); +} + +template +T &List::front() +{ + detach(); + return d->list.front(); +} + +template +const T &List::back() const +{ + return d->list.back(); +} + +template +void List::setAutoDelete(bool autoDelete) +{ + d->autoDelete = autoDelete; +} + +template +T &List::back() +{ + detach(); + return d->list.back(); +} + +template +T &List::operator[](uint i) +{ + Iterator it = d->list.begin(); + + for(uint j = 0; j < i; j++) + ++it; + + return *it; +} + +template +const T &List::operator[](uint i) const +{ + ConstIterator it = d->list.begin(); + + for(uint j = 0; j < i; j++) + ++it; + + return *it; +} + +template +List &List::operator=(const List &l) +{ + if(&l == this) + return *this; + + if(d->deref()) + delete d; + d = l.d; + d->ref(); + return *this; +} + +template +bool List::operator==(const List &l) const +{ + return d->list == l.d->list; +} + +template +bool List::operator!=(const List &l) const +{ + return d->list != l.d->list; +} + +//////////////////////////////////////////////////////////////////////////////// +// protected members +//////////////////////////////////////////////////////////////////////////////// + +template +void List::detach() +{ + if(d->count() > 1) { + d->deref(); + d = new ListPrivate(d->list); + } +} + +} // namespace TagLib diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tmap.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tmap.h new file mode 100644 index 0000000..a7d9930 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tmap.h @@ -0,0 +1,199 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MAP_H +#define TAGLIB_MAP_H + +#include + +#include "taglib.h" + +namespace TagLib { + + //! A generic, implicitly shared map. + + /*! + * This implements a standard map container that associates a key with a value + * and has fast key-based lookups. This map is also implicitly shared making + * it suitable for pass-by-value usage. + */ + + template class Map + { + public: +#ifndef DO_NOT_DOCUMENT +#ifdef WANT_CLASS_INSTANTIATION_OF_MAP + // Some STL implementations get snippy over the use of the + // class keyword to distinguish different templates; Sun Studio + // in particular finds multiple specializations in certain rare + // cases and complains about that. GCC doesn't seem to mind, + // and uses the typedefs further below without the class keyword. + // Not all the specializations of Map can use the class keyword + // (when T is not actually a class type), so don't apply this + // generally. + typedef typename std::map::iterator Iterator; + typedef typename std::map::const_iterator ConstIterator; +#else + typedef typename std::map::iterator Iterator; + typedef typename std::map::const_iterator ConstIterator; +#endif +#endif + + /*! + * Constructs an empty Map. + */ + Map(); + + /*! + * Make a shallow, implicitly shared, copy of \a m. Because this is + * implicitly shared, this method is lightweight and suitable for + * pass-by-value usage. + */ + Map(const Map &m); + + /*! + * Destroys this instance of the Map. + */ + virtual ~Map(); + + /*! + * Returns an STL style iterator to the beginning of the map. See + * std::map::iterator for the semantics. + */ + Iterator begin(); + + /*! + * Returns an STL style iterator to the beginning of the map. See + * std::map::const_iterator for the semantics. + */ + ConstIterator begin() const; + + /*! + * Returns an STL style iterator to the end of the map. See + * std::map::iterator for the semantics. + */ + Iterator end(); + + /*! + * Returns an STL style iterator to the end of the map. See + * std::map::const_iterator for the semantics. + */ + ConstIterator end() const; + + /*! + * Inserts \a value under \a key in the map. If a value for \a key already + * exists it will be overwritten. + */ + Map &insert(const Key &key, const T &value); + + /*! + * Removes all of the elements from elements from the map. This however + * will not delete pointers if the mapped type is a pointer type. + */ + Map &clear(); + + /*! + * The number of elements in the map. + * + * \see isEmpty() + */ + uint size() const; + + /*! + * Returns true if the map is empty. + * + * \see size() + */ + bool isEmpty() const; + + /*! + * Find the first occurrence of \a key. + */ + Iterator find(const Key &key); + + /*! + * Find the first occurrence of \a key. + */ + ConstIterator find(const Key &key) const; + + /*! + * Returns true if the map contains an instance of \a key. + */ + bool contains(const Key &key) const; + + /*! + * Erase the item at \a it from the list. + */ + Map &erase(Iterator it); + + /*! + * Erase the item with \a key from the list. + */ + Map &erase(const Key &key); + + /*! + * Returns a reference to the value associated with \a key. + * + * \note This has undefined behavior if the key is not present in the map. + */ + const T &operator[](const Key &key) const; + + /*! + * Returns a reference to the value associated with \a key. + * + * \note This has undefined behavior if the key is not present in the map. + */ + T &operator[](const Key &key); + + /*! + * Make a shallow, implicitly shared, copy of \a m. Because this is + * implicitly shared, this method is lightweight and suitable for + * pass-by-value usage. + */ + Map &operator=(const Map &m); + + protected: + /* + * If this List is being shared via implicit sharing, do a deep copy of the + * data and separate from the shared members. This should be called by all + * non-const subclass members. + */ + void detach(); + + private: +#ifndef DO_NOT_DOCUMENT + template class MapPrivate; + MapPrivate *d; +#endif + }; + +} + +// Since GCC doesn't support the "export" keyword, we have to include the +// implementation. + +#include "tmap.tcc" + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tmap.tcc b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tmap.tcc new file mode 100644 index 0000000..0f2b993 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tmap.tcc @@ -0,0 +1,196 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +namespace TagLib { + +//////////////////////////////////////////////////////////////////////////////// +// public members +//////////////////////////////////////////////////////////////////////////////// + +template +template +class Map::MapPrivate : public RefCounter +{ +public: + MapPrivate() : RefCounter() {} +#ifdef WANT_CLASS_INSTANTIATION_OF_MAP + MapPrivate(const std::map& m) : RefCounter(), map(m) {} + std::map map; +#else + MapPrivate(const std::map& m) : RefCounter(), map(m) {} + std::map map; +#endif +}; + +template +Map::Map() +{ + d = new MapPrivate; +} + +template +Map::Map(const Map &m) : d(m.d) +{ + d->ref(); +} + +template +Map::~Map() +{ + if(d->deref()) + delete(d); +} + +template +typename Map::Iterator Map::begin() +{ + detach(); + return d->map.begin(); +} + +template +typename Map::ConstIterator Map::begin() const +{ + return d->map.begin(); +} + +template +typename Map::Iterator Map::end() +{ + detach(); + return d->map.end(); +} + +template +typename Map::ConstIterator Map::end() const +{ + return d->map.end(); +} + +template +Map &Map::insert(const Key &key, const T &value) +{ + detach(); + d->map[key] = value; + return *this; +} + +template +Map &Map::clear() +{ + detach(); + d->map.clear(); + return *this; +} + +template +bool Map::isEmpty() const +{ + return d->map.empty(); +} + +template +typename Map::Iterator Map::find(const Key &key) +{ + detach(); + return d->map.find(key); +} + +template +typename Map::ConstIterator Map::find(const Key &key) const +{ + return d->map.find(key); +} + +template +bool Map::contains(const Key &key) const +{ + return d->map.find(key) != d->map.end(); +} + +template +Map &Map::erase(Iterator it) +{ + detach(); + d->map.erase(it); + return *this; +} + +template +Map &Map::erase(const Key &key) +{ + detach(); + Iterator it = d->map.find(key); + if(it != d->map.end()) + d->map.erase(it); + return *this; +} + +template +TagLib::uint Map::size() const +{ + return d->map.size(); +} + +template +const T &Map::operator[](const Key &key) const +{ + return d->map[key]; +} + +template +T &Map::operator[](const Key &key) +{ + detach(); + return d->map[key]; +} + +template +Map &Map::operator=(const Map &m) +{ + if(&m == this) + return *this; + + if(d->deref()) + delete(d); + d = m.d; + d->ref(); + return *this; +} + +//////////////////////////////////////////////////////////////////////////////// +// protected members +//////////////////////////////////////////////////////////////////////////////// + +template +void Map::detach() +{ + if(d->count() > 1) { + d->deref(); + d = new MapPrivate(d->map); + } +} + +} // namespace TagLib diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tpropertymap.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tpropertymap.h new file mode 100644 index 0000000..b955739 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tpropertymap.h @@ -0,0 +1,184 @@ +/*************************************************************************** + copyright : (C) 2012 by Michael Helmling + email : helmling@mathematik.uni-kl.de + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * + * MA 02110-1301 USA * + ***************************************************************************/ + +#ifndef PROPERTYMAP_H_ +#define PROPERTYMAP_H_ + +#include "tmap.h" +#include "tstringlist.h" + +namespace TagLib { + + typedef Map SimplePropertyMap; + + //! A map for format-independent tag representations. + + /*! + * This map implements a generic representation of textual audio metadata + * ("tags") realized as pairs of a case-insensitive key + * and a nonempty list of corresponding values, each value being an an arbitrary + * unicode String. + * The key has the same restrictions as in the vorbis comment specification, + * i.e. it must contain at least one character; all printable ASCII characters + * except '=' and '~' are allowed. + * + * In order to be safe with other formats, keep these additional restrictions in mind: + * + * - APE only allows keys from 2 to 16 printable ASCII characters (including space), + * with the exception of these strings: ID3, TAG, OggS, MP+ + * + */ + + class TAGLIB_EXPORT PropertyMap: public SimplePropertyMap + { + public: + + typedef SimplePropertyMap::Iterator Iterator; + typedef SimplePropertyMap::ConstIterator ConstIterator; + + PropertyMap(); + + PropertyMap(const PropertyMap &m); + + /*! + * Creates a PropertyMap initialized from a SimplePropertyMap. Copies all + * entries from \a m that have valid keys. + * Invalid keys will be appended to the unsupportedData() list. + */ + PropertyMap(const SimplePropertyMap &m); + + virtual ~PropertyMap(); + + /*! + * Inserts \a values under \a key in the map. If \a key already exists, + * then \values will be appended to the existing StringList. + * The returned value indicates success, i.e. whether \a key is a + * valid key. + */ + bool insert(const String &key, const StringList &values); + + /*! + * Replaces any existing values for \a key with the given \a values, + * and simply insert them if \a key did not exist before. + * The returned value indicates success, i.e. whether \a key is a + * valid key. + */ + bool replace(const String &key, const StringList &values); + + /*! + * Find the first occurrence of \a key. + */ + Iterator find(const String &key); + + /*! + * Find the first occurrence of \a key. + */ + ConstIterator find(const String &key) const; + + /*! + * Returns true if the map contains values for \a key. + */ + bool contains(const String &key) const; + + /*! + * Returns true if this map contains all keys of \a other + * and the values coincide for that keys. Does not take + * the unsupportedData list into account. + */ + bool contains(const PropertyMap &other) const; + + /*! + * Erase the \a key and its values from the map. + */ + PropertyMap &erase(const String &key); + + /*! + * Erases from this map all keys that appear in \a other. + */ + PropertyMap &erase(const PropertyMap &other); + + /*! + * Merge the contents of \a other into this PropertyMap. + * If a key is contained in both maps, the values of the second + * are appended to that of the first. + * The unsupportedData() lists are concatenated as well. + */ + PropertyMap &merge(const PropertyMap &other); + + /*! + * Returns a reference to the value associated with \a key. + * + * \note: This has undefined behavior if the key is not valid or not + * present in the map. + */ + const StringList &operator[](const String &key) const; + + /*! + * Returns a reference to the value associated with \a key. + * + * \note: This has undefined behavior if the key is not valid or not + * present in the map. + */ + StringList &operator[](const String &key); + + /*! + * Returns true if and only if \other has the same contents as this map. + */ + bool operator==(const PropertyMap &other) const; + + /*! + * Returns false if and only \other has the same contents as this map. + */ + bool operator!=(const PropertyMap &other) const; + + /*! + * If a PropertyMap is read from a File object using File::properties(), + * the StringList returned from this function will represent metadata + * that could not be parsed into the PropertyMap representation. This could + * be e.g. binary data, unknown ID3 frames, etc. + * You can remove items from the returned list, which tells TagLib to remove + * those unsupported elements if you call File::setProperties() with the + * same PropertyMap as argument. + */ + StringList &unsupportedData(); + const StringList &unsupportedData() const; + + /*! + * Removes all entries which have an empty value list. + */ + void removeEmpty(); + + String toString() const; + + /*! + * Converts \a proposed into another String suitable to be used as + * a key, or returns String::null if this is not possible. + */ + static String prepareKey(const String &proposed); + + private: + + + StringList unsupported; + }; + +} +#endif /* PROPERTYMAP_H_ */ diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/trueaudiofile.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/trueaudiofile.h new file mode 100644 index 0000000..9b0378f --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/trueaudiofile.h @@ -0,0 +1,212 @@ +/*************************************************************************** + copyright : (C) 2006 by Lukáš Lalinský + email : lalinsky@gmail.com + + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + (original MPC implementation) + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_TRUEAUDIOFILE_H +#define TAGLIB_TRUEAUDIOFILE_H + +#include "tfile.h" +#include "trueaudioproperties.h" + +namespace TagLib { + + class Tag; + + namespace ID3v2 { class Tag; class FrameFactory; } + namespace ID3v1 { class Tag; } + + //! An implementation of TrueAudio metadata + + /*! + * This is implementation of TrueAudio metadata. + * + * This supports ID3v1 and ID3v2 tags as well as reading stream + * properties from the file. + */ + + namespace TrueAudio { + + //! An implementation of TagLib::File with TrueAudio specific methods + + /*! + * This implements and provides an interface for TrueAudio files to the + * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing + * the abstract TagLib::File API as well as providing some additional + * information specific to TrueAudio files. + */ + + class TAGLIB_EXPORT File : public TagLib::File + { + public: + /*! + * This set of flags is used for various operations and is suitable for + * being OR-ed together. + */ + enum TagTypes { + //! Empty set. Matches no tag types. + NoTags = 0x0000, + //! Matches ID3v1 tags. + ID3v1 = 0x0001, + //! Matches ID3v2 tags. + ID3v2 = 0x0002, + //! Matches all tag types. + AllTags = 0xffff + }; + + /*! + * Contructs an TrueAudio file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an TrueAudio file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. The frames will be created using + * \a frameFactory. + */ + File(FileName file, ID3v2::FrameFactory *frameFactory, + bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an TrueAudio file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an TrueAudio file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. The frames will be created using + * \a frameFactory. + */ + File(IOStream *stream, ID3v2::FrameFactory *frameFactory, + bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns the Tag for this file. + */ + virtual TagLib::Tag *tag() const; + + /*! + * Implements the unified property interface -- export function. + * If the file contains both ID3v1 and v2 tags, only ID3v2 will be + * converted to the PropertyMap. + */ + PropertyMap properties() const; + + /*! + * Implements the unified property interface -- import function. + * As with the export, only one tag is taken into account. If the file + * has no tag at all, ID3v2 will be created. + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Returns the TrueAudio::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + /*! + * Set the ID3v2::FrameFactory to something other than the default. + * + * \see ID3v2FrameFactory + */ + void setID3v2FrameFactory(const ID3v2::FrameFactory *factory); + + /*! + * Saves the file. + */ + virtual bool save(); + + /*! + * Returns a pointer to the ID3v2 tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid ID3v2 tag. If \a create is true it will create + * an ID3v1 tag if one does not exist. If there is already an APE tag, the + * new ID3v1 tag will be placed after it. + * + * \note The Tag is still owned by the TrueAudio::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + ID3v1::Tag *ID3v1Tag(bool create = false); + + /*! + * Returns a pointer to the ID3v1 tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid ID3v1 tag. If \a create is true it will create + * an ID3v1 tag if one does not exist. If there is already an APE tag, the + * new ID3v1 tag will be placed after it. + * + * \note The Tag is still owned by the TrueAudio::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + ID3v2::Tag *ID3v2Tag(bool create = false); + + /*! + * This will remove the tags that match the OR-ed together TagTypes from the + * file. By default it removes all tags. + * + * \note This will also invalidate pointers to the tags + * as their memory will be freed. + * \note In order to make the removal permanent save() still needs to be called + */ + void strip(int tags = AllTags); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + void scan(); + long findID3v1(); + long findID3v2(); + + class FilePrivate; + FilePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/trueaudioproperties.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/trueaudioproperties.h new file mode 100644 index 0000000..126b678 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/trueaudioproperties.h @@ -0,0 +1,98 @@ +/*************************************************************************** + copyright : (C) 2006 by Lukáš Lalinský + email : lalinsky@gmail.com + + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + (original MPC implementation) + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_TRUEAUDIOPROPERTIES_H +#define TAGLIB_TRUEAUDIOPROPERTIES_H + +#include "audioproperties.h" + +namespace TagLib { + + namespace TrueAudio { + + class File; + + static const uint HeaderSize = 18; + + //! An implementation of audio property reading for TrueAudio + + /*! + * This reads the data from an TrueAudio stream found in the AudioProperties + * API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of TrueAudio::Properties with the data read from the + * ByteVector \a data. + */ + Properties(const ByteVector &data, long streamLength, ReadStyle style = Average); + + /*! + * Destroys this TrueAudio::Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + /*! + * Returns number of bits per sample. + */ + int bitsPerSample() const; + + /*! + * Returns the total number of sample frames + */ + uint sampleFrames() const; + + /*! + * Returns the major version number. + */ + int ttaVersion() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void read(); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tstring.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tstring.h new file mode 100644 index 0000000..759a175 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tstring.h @@ -0,0 +1,496 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_STRING_H +#define TAGLIB_STRING_H + +#include "taglib_export.h" +#include "taglib.h" +#include "tbytevector.h" + +#include +#include + +/*! + * \relates TagLib::String + * + * Converts a QString to a TagLib::String without a requirement to link to Qt. + * + * \note consider conversion via usual char-by-char for loop to avoid UTF16->UTF8->UTF16 + * conversion happening in the background + */ +#define QStringToTString(s) TagLib::String(s.utf8().data(), TagLib::String::UTF8) + +/*! + * \relates TagLib::String + * + * Converts a TagLib::String to a QString without a requirement to link to Qt. + * + * \note consider conversion via usual char-by-char for loop to avoid UTF16->UTF8->UTF16 + * conversion happening in the background + * + */ +#define TStringToQString(s) QString::fromUtf8(s.toCString(true)) + +namespace TagLib { + + class StringList; + + //! A \e wide string class suitable for unicode. + + /*! + * This is an implicitly shared \e wide string. For storage it uses + * TagLib::wstring, but as this is an implementation detail this of + * course could change. Strings are stored internally as UTF-16BE. (Without + * the BOM (Byte Order Mark) + * + * The use of implicit sharing means that copying a string is cheap, the only + * \e cost comes into play when the copy is modified. Prior to that the string + * just has a pointer to the data of the \e parent String. This also makes + * this class suitable as a function return type. + * + * In addition to adding implicit sharing, this class keeps track of four + * possible encodings, which are the four supported by the ID3v2 standard. + */ + + class TAGLIB_EXPORT String + { + public: + +#ifndef DO_NOT_DOCUMENT + typedef std::basic_string::iterator Iterator; + typedef std::basic_string::const_iterator ConstIterator; +#endif + + /** + * The four types of string encodings supported by the ID3v2 specification. + * ID3v1 is assumed to be Latin1 and Ogg Vorbis comments use UTF8. + */ + enum Type { + /*! + * IS08859-1, or Latin1 encoding. 8 bit characters. + */ + Latin1 = 0, + /*! + * UTF16 with a byte order mark. 16 bit characters. + */ + UTF16 = 1, + /*! + * UTF16 big endian. 16 bit characters. This is the encoding used + * internally by TagLib. + */ + UTF16BE = 2, + /*! + * UTF8 encoding. Characters are usually 8 bits but can be up to 32. + */ + UTF8 = 3, + /*! + * UTF16 little endian. 16 bit characters. + */ + UTF16LE = 4 + }; + + /*! + * Constructs an empty String. + */ + String(); + + /*! + * Make a shallow, implicitly shared, copy of \a s. Because this is + * implicitly shared, this method is lightweight and suitable for + * pass-by-value usage. + */ + String(const String &s); + + /*! + * Makes a deep copy of the data in \a s. + * + * \note This should only be used with the 8-bit codecs Latin1 and UTF8, when + * used with other codecs it will simply print a warning and exit. + */ + String(const std::string &s, Type t = Latin1); + + /*! + * Makes a deep copy of the data in \a s. + */ + String(const wstring &s, Type t = UTF16BE); + + /*! + * Makes a deep copy of the data in \a s. + */ + String(const wchar_t *s, Type t = UTF16BE); + + /*! + * Makes a deep copy of the data in \a c. + * + * \note This should only be used with the 8-bit codecs Latin1 and UTF8, when + * used with other codecs it will simply print a warning and exit. + */ + String(char c, Type t = Latin1); + + /*! + * Makes a deep copy of the data in \a c. + */ + String(wchar_t c, Type t = Latin1); + + + /*! + * Makes a deep copy of the data in \a s. + * + * \note This should only be used with the 8-bit codecs Latin1 and UTF8, when + * used with other codecs it will simply print a warning and exit. + */ + String(const char *s, Type t = Latin1); + + /*! + * Makes a deep copy of the data in \a s. + * + * \note This should only be used with the 8-bit codecs Latin1 and UTF8, when + * used with other codecs it will simply print a warning and exit. + */ + String(const ByteVector &v, Type t = Latin1); + + /*! + * Destroys this String instance. + */ + virtual ~String(); + + /*! + * If \a unicode if false (the default) this will return a \e Latin1 encoded + * std::string. If it is true the returned std::wstring will be UTF-8 + * encoded. + */ + std::string to8Bit(bool unicode = false) const; + + /*! + * Returns a wstring version of the TagLib string as a wide string. + */ + wstring toWString() const; + + /*! + * Creates and returns a C-String based on the data. This string is still + * owned by the String (class) and as such should not be deleted by the user. + * + * If \a unicode if false (the default) this string will be encoded in + * \e Latin1. If it is true the returned C-String will be UTF-8 encoded. + * + * This string remains valid until the String instance is destroyed or + * another export method is called. + * + * \warning This however has the side effect that this C-String will remain + * in memory in addition to other memory that is consumed by the + * String instance. So, this method should not be used on large strings or + * where memory is critical. + */ + const char *toCString(bool unicode = false) const; + + /*! + * Returns an iterator pointing to the beginning of the string. + */ + Iterator begin(); + + /*! + * Returns a const iterator pointing to the beginning of the string. + */ + ConstIterator begin() const; + + /*! + * Returns an iterator pointing to the end of the string (the position + * after the last character). + */ + Iterator end(); + + /*! + * Returns a const iterator pointing to the end of the string (the position + * after the last character). + */ + ConstIterator end() const; + + /*! + * Finds the first occurrence of pattern \a s in this string starting from + * \a offset. If the pattern is not found, -1 is returned. + */ + int find(const String &s, int offset = 0) const; + + /*! + * Finds the last occurrence of pattern \a s in this string, searched backwards, + * either from the end of the string or starting from \a offset. If the pattern + * is not found, -1 is returned. + */ + int rfind(const String &s, int offset = -1) const; + + /*! + * Splits the string on each occurrence of \a separator. + */ + StringList split(const String &separator = " ") const; + + /*! + * Returns true if the strings starts with the substring \a s. + */ + bool startsWith(const String &s) const; + + /*! + * Extract a substring from this string starting at \a position and + * continuing for \a n characters. + */ + String substr(uint position, uint n = 0xffffffff) const; + + /*! + * Append \a s to the current string and return a reference to the current + * string. + */ + String &append(const String &s); + + /*! + * Returns an upper case version of the string. + * + * \warning This only works for the characters in US-ASCII, i.e. A-Z. + */ + String upper() const; + + /*! + * Returns the size of the string. + */ + uint size() const; + + /*! + * Returns the length of the string. Equivalent to size(). + */ + uint length() const; + + /*! + * Returns true if the string is empty. + * + * \see isNull() + */ + bool isEmpty() const; + + /*! + * Returns true if this string is null -- i.e. it is a copy of the + * String::null string. + * + * \note A string can be empty and not null. + * \see isEmpty() + */ + bool isNull() const; + + /*! + * Returns a ByteVector containing the string's data. If \a t is Latin1 or + * UTF8, this will return a vector of 8 bit characters, otherwise it will use + * 16 bit characters. + */ + ByteVector data(Type t) const; + + /*! + * Convert the string to an integer. + * + * Returns the integer if the conversion was successfull or 0 if the + * string does not represent a number. + */ + // BIC: merge with the method below + int toInt() const; + + /*! + * Convert the string to an integer. + * + * If the conversion was successfull, it sets the value of \a *ok to + * true and returns the integer. Otherwise it sets \a *ok to false + * and the result is undefined. + */ + int toInt(bool *ok) const; + + /*! + * Returns a string with the leading and trailing whitespace stripped. + */ + String stripWhiteSpace() const; + + /*! + * Returns true if the file only uses characters required by Latin1. + */ + bool isLatin1() const; + + /*! + * Returns true if the file only uses characters required by (7-bit) ASCII. + */ + bool isAscii() const; + + /*! + * Converts the base-10 integer \a n to a string. + */ + static String number(int n); + + /*! + * Returns a reference to the character at position \a i. + */ + wchar &operator[](int i); + + /*! + * Returns a const reference to the character at position \a i. + */ + const wchar &operator[](int i) const; + + /*! + * Compares each character of the String with each character of \a s and + * returns true if the strings match. + */ + bool operator==(const String &s) const; + + /*! + * Compares each character of the String with each character of \a s and + * returns false if the strings match. + */ + bool operator!=(const String &s) const; + + /*! + * Appends \a s to the end of the String. + */ + String &operator+=(const String &s); + + /*! + * Appends \a s to the end of the String. + */ + String &operator+=(const wchar_t* s); + + /*! + * Appends \a s to the end of the String. + */ + String &operator+=(const char* s); + + /*! + * Appends \a s to the end of the String. + */ + String &operator+=(wchar_t c); + + /*! + * Appends \a c to the end of the String. + */ + String &operator+=(char c); + + /*! + * Performs a shallow, implicitly shared, copy of \a s, overwriting the + * String's current data. + */ + String &operator=(const String &s); + + /*! + * Performs a deep copy of the data in \a s. + */ + String &operator=(const std::string &s); + + /*! + * Performs a deep copy of the data in \a s. + */ + String &operator=(const wstring &s); + + /*! + * Performs a deep copy of the data in \a s. + */ + String &operator=(const wchar_t *s); + + /*! + * Performs a deep copy of the data in \a s. + */ + String &operator=(char c); + + /*! + * Performs a deep copy of the data in \a s. + */ + String &operator=(wchar_t c); + + /*! + * Performs a deep copy of the data in \a s. + */ + String &operator=(const char *s); + + /*! + * Performs a deep copy of the data in \a v. + */ + String &operator=(const ByteVector &v); + + /*! + * To be able to use this class in a Map, this operator needed to be + * implemented. Returns true if \a s is less than this string in a bytewise + * comparison. + */ + bool operator<(const String &s) const; + + /*! + * A null string provided for convenience. + */ + static String null; + + protected: + /*! + * If this String is being shared via implicit sharing, do a deep copy of the + * data and separate from the shared members. This should be called by all + * non-const subclass members. + */ + void detach(); + + private: + /*! + * This checks to see if the string is in \e UTF-16 (with BOM) or \e UTF-8 + * format and if so converts it to \e UTF-16BE for internal use. \e Latin1 + * does not require conversion since it is a subset of \e UTF-16BE and + * \e UTF16-BE requires no conversion since it is used internally. + */ + void prepare(Type t); + + class StringPrivate; + StringPrivate *d; + }; + +} + +/*! + * \relates TagLib::String + * + * Concatenates \a s1 and \a s2 and returns the result as a string. + */ +TAGLIB_EXPORT const TagLib::String operator+(const TagLib::String &s1, const TagLib::String &s2); + +/*! + * \relates TagLib::String + * + * Concatenates \a s1 and \a s2 and returns the result as a string. + */ +TAGLIB_EXPORT const TagLib::String operator+(const char *s1, const TagLib::String &s2); + +/*! + * \relates TagLib::String + * + * Concatenates \a s1 and \a s2 and returns the result as a string. + */ +TAGLIB_EXPORT const TagLib::String operator+(const TagLib::String &s1, const char *s2); + + +/*! + * \relates TagLib::String + * + * Send the string to an output stream. + */ +TAGLIB_EXPORT std::ostream &operator<<(std::ostream &s, const TagLib::String &str); + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tstringlist.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tstringlist.h new file mode 100644 index 0000000..f94b50f --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/tstringlist.h @@ -0,0 +1,115 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_STRINGLIST_H +#define TAGLIB_STRINGLIST_H + +#include "tstring.h" +#include "tlist.h" +#include "tbytevectorlist.h" +#include "taglib_export.h" + +#include + +namespace TagLib { + + //! A list of strings + + /*! + * This is a spcialization of the List class with some members convention for + * string operations. + */ + + class TAGLIB_EXPORT StringList : public List + { + public: + + /*! + * Constructs an empty StringList. + */ + StringList(); + + /*! + * Make a shallow, implicitly shared, copy of \a l. Because this is + * implicitly shared, this method is lightweight and suitable for + * pass-by-value usage. + */ + StringList(const StringList &l); + + /*! + * Constructs a StringList with \a s as a member. + */ + StringList(const String &s); + + /*! + * Makes a deep copy of the data in \a vl. + * + * \note This should only be used with the 8-bit codecs Latin1 and UTF8, when + * used with other codecs it will simply print a warning and exit. + */ + StringList(const ByteVectorList &vl, String::Type t = String::Latin1); + + /*! + * Destroys this StringList instance. + */ + virtual ~StringList(); + + /*! + * Concatenate the list of strings into one string separated by \a separator. + */ + String toString(const String &separator = " ") const; + + /*! + * Appends \a s to the end of the list and returns a reference to the + * list. + */ + StringList &append(const String &s); + + /*! + * Appends all of the values in \a l to the end of the list and returns a + * reference to the list. + */ + StringList &append(const StringList &l); + + /*! + * Splits the String \a s into several strings at \a pattern. This will not include + * the pattern in the returned strings. + */ + static StringList split(const String &s, const String &pattern); + + private: + class StringListPrivate; + StringListPrivate *d; + }; + +} + +/*! + * \related TagLib::StringList + * Send the StringList to an output stream. + */ +std::ostream &operator<<(std::ostream &s, const TagLib::StringList &l); + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/unicode.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/unicode.h new file mode 100644 index 0000000..cf7eb3c --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/unicode.h @@ -0,0 +1,149 @@ +#ifndef TAGLIB_UNICODE_H +#define TAGLIB_UNICODE_H + +/******************************************************************************* + * * + * THIS FILE IS INCLUDED IN TAGLIB, BUT IS NOT COPYRIGHTED BY THE TAGLIB * + * AUTHORS, NOT PART OF THE TAGLIB API AND COULD GO AWAY AT ANY POINT IN TIME. * + * AS SUCH IT SHOULD BE CONSIERED FOR INTERNAL USE ONLY. * + * * + *******************************************************************************/ + +#ifndef DO_NOT_DOCUMENT // tell Doxygen not to document this header + +/* + * Copyright 2001 Unicode, Inc. + * + * Disclaimer + * + * This source code is provided as is by Unicode, Inc. No claims are + * made as to fitness for any particular purpose. No warranties of any + * kind are expressed or implied. The recipient agrees to determine + * applicability of information provided. If this file has been + * purchased on magnetic or optical media from Unicode, Inc., the + * sole remedy for any claim will be exchange of defective media + * within 90 days of receipt. + * + * Limitations on Rights to Redistribute This Code + * + * Unicode, Inc. hereby grants the right to freely use the information + * supplied in this file in the creation of products supporting the + * Unicode Standard, and to make copies of this file in any form + * for internal or external distribution as long as this notice + * remains attached. + */ + +/* + * This file has been modified by Scott Wheeler to remove + * the UTF32 conversion functions and to place the appropriate functions + * in their own C++ namespace. + */ + +/* --------------------------------------------------------------------- + + Conversions between UTF32, UTF-16, and UTF-8. Header file. + + Several functions are included here, forming a complete set of + conversions between the three formats. UTF-7 is not included + here, but is handled in a separate source file. + + Each of these routines takes pointers to input buffers and output + buffers. The input buffers are const. + + Each routine converts the text between *sourceStart and sourceEnd, + putting the result into the buffer between *targetStart and + targetEnd. Note: the end pointers are *after* the last item: e.g. + *(sourceEnd - 1) is the last item. + + The return result indicates whether the conversion was successful, + and if not, whether the problem was in the source or target buffers. + (Only the first encountered problem is indicated.) + + After the conversion, *sourceStart and *targetStart are both + updated to point to the end of last text successfully converted in + the respective buffers. + + Input parameters: + sourceStart - pointer to a pointer to the source buffer. + The contents of this are modified on return so that + it points at the next thing to be converted. + targetStart - similarly, pointer to pointer to the target buffer. + sourceEnd, targetEnd - respectively pointers to the ends of the + two buffers, for overflow checking only. + + These conversion functions take a ConversionFlags argument. When this + flag is set to strict, both irregular sequences and isolated surrogates + will cause an error. When the flag is set to lenient, both irregular + sequences and isolated surrogates are converted. + + Whether the flag is strict or lenient, all illegal sequences will cause + an error return. This includes sequences such as: , , + or in UTF-8, and values above 0x10FFFF in UTF-32. Conformant code + must check for illegal sequences. + + When the flag is set to lenient, characters over 0x10FFFF are converted + to the replacement character; otherwise (when the flag is set to strict) + they constitute an error. + + Output parameters: + The value "sourceIllegal" is returned from some routines if the input + sequence is malformed. When "sourceIllegal" is returned, the source + value will point to the illegal value that caused the problem. E.g., + in UTF-8 when a sequence is malformed, it points to the start of the + malformed sequence. + + Author: Mark E. Davis, 1994. + Rev History: Rick McGowan, fixes & updates May 2001. + Fixes & updates, Sept 2001. + +------------------------------------------------------------------------ */ + +/* --------------------------------------------------------------------- + The following 4 definitions are compiler-specific. + The C standard does not guarantee that wchar_t has at least + 16 bits, so wchar_t is no less portable than unsigned short! + All should be unsigned values to avoid sign extension during + bit mask & shift operations. +------------------------------------------------------------------------ */ + +/* Some fundamental constants */ +#define UNI_REPLACEMENT_CHAR (UTF32)0x0000FFFD +#define UNI_MAX_BMP (UTF32)0x0000FFFF +#define UNI_MAX_UTF16 (UTF32)0x0010FFFF +#define UNI_MAX_UTF32 (UTF32)0x7FFFFFFF + +namespace Unicode { + +typedef unsigned long UTF32; /* at least 32 bits */ +typedef unsigned short UTF16; /* at least 16 bits */ +typedef unsigned char UTF8; /* typically 8 bits */ +typedef unsigned char Boolean; /* 0 or 1 */ + +typedef enum { + conversionOK = 0, /* conversion successful */ + sourceExhausted = 1, /* partial character in source, but hit end */ + targetExhausted = 2, /* insuff. room in target for conversion */ + sourceIllegal = 3 /* source sequence is illegal/malformed */ +} ConversionResult; + +typedef enum { + strictConversion = 0, + lenientConversion +} ConversionFlags; + +ConversionResult ConvertUTF8toUTF16 ( + const UTF8** sourceStart, const UTF8* sourceEnd, + UTF16** targetStart, UTF16* targetEnd, ConversionFlags flags); + +ConversionResult ConvertUTF16toUTF8 ( + const UTF16** sourceStart, const UTF16* sourceEnd, + UTF8** targetStart, UTF8* targetEnd, ConversionFlags flags); + +Boolean isLegalUTF8Sequence(const UTF8 *source, const UTF8 *sourceEnd); + +} // namespace Unicode + +/* --------------------------------------------------------------------- */ + +#endif +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/uniquefileidentifierframe.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/uniquefileidentifierframe.h new file mode 100644 index 0000000..0cf4b8f --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/uniquefileidentifierframe.h @@ -0,0 +1,113 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_UNIQUEFILEIDENTIFIERFRAME +#define TAGLIB_UNIQUEFILEIDENTIFIERFRAME + +#include "id3v2frame.h" + +namespace TagLib { + + namespace ID3v2 { + + /*! + * This is an implementation of ID3v2 unique file identifier frames. This + * frame is used to identify the file in an arbitrary database identified + * by the owner field. + */ + + //! An implementation of ID3v2 unique identifier frames + + class TAGLIB_EXPORT UniqueFileIdentifierFrame : public ID3v2::Frame + { + friend class FrameFactory; + + public: + /*! + * Creates a uniqe file identifier frame based on \a data. + */ + UniqueFileIdentifierFrame(const ByteVector &data); + + /*! + * Creates a unique file identifier frame with the owner \a owner and + * the identification \a id. + */ + UniqueFileIdentifierFrame(const String &owner, const ByteVector &id); + + /*! + * Destroys the frame. + */ + ~UniqueFileIdentifierFrame(); + + /*! + * Returns the owner for the frame; essentially this is the key for + * determining which identification scheme this key belongs to. This + * will usually either be an email address or URL for the person or tool + * used to create the unique identifier. + * + * \see setOwner() + */ + String owner() const; + + /*! + * Returns the unique identifier. Though sometimes this is a text string + * it also may be binary data and as much should be assumed when handling + * it. + */ + ByteVector identifier() const; + + /*! + * Sets the owner of the identification scheme to \a s. + * + * \see owner() + */ + void setOwner(const String &s); + + /*! + * Sets the unique file identifier to \a v. + * + * \see identifier() + */ + void setIdentifier(const ByteVector &v); + + virtual String toString() const; + + protected: + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + private: + UniqueFileIdentifierFrame(const UniqueFileIdentifierFrame &); + UniqueFileIdentifierFrame &operator=(const UniqueFileIdentifierFrame &); + + UniqueFileIdentifierFrame(const ByteVector &data, Header *h); + + class UniqueFileIdentifierFramePrivate; + UniqueFileIdentifierFramePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/unknownframe.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/unknownframe.h new file mode 100644 index 0000000..6559f4e --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/unknownframe.h @@ -0,0 +1,79 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_UNKNOWNFRAME_H +#define TAGLIB_UNKNOWNFRAME_H + +#include "id3v2frame.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace ID3v2 { + + //! A frame type \e unknown to TagLib. + + /*! + * This class represents a frame type not known (or more often simply + * unimplemented) in TagLib. This is here provide a basic API for + * manipulating the binary data of unknown frames and to provide a means + * of rendering such \e unknown frames. + * + * Please note that a cleaner way of handling frame types that TagLib + * does not understand is to subclass ID3v2::Frame and ID3v2::FrameFactory + * to have your frame type supported through the standard ID3v2 mechanism. + */ + + class TAGLIB_EXPORT UnknownFrame : public Frame + { + friend class FrameFactory; + + public: + UnknownFrame(const ByteVector &data); + virtual ~UnknownFrame(); + + virtual String toString() const; + + /*! + * Returns the field data (everything but the header) for this frame. + */ + ByteVector data() const; + + protected: + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + private: + UnknownFrame(const ByteVector &data, Header *h); + UnknownFrame(const UnknownFrame &); + UnknownFrame &operator=(const UnknownFrame &); + + class UnknownFramePrivate; + UnknownFramePrivate *d; + }; + + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/unsynchronizedlyricsframe.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/unsynchronizedlyricsframe.h new file mode 100644 index 0000000..3af354f --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/unsynchronizedlyricsframe.h @@ -0,0 +1,179 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + copyright : (C) 2006 by Urs Fleisch + email : ufleisch@users.sourceforge.net + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_UNSYNCHRONIZEDLYRICSFRAME_H +#define TAGLIB_UNSYNCHRONIZEDLYRICSFRAME_H + +#include "id3v2frame.h" + +namespace TagLib { + + namespace ID3v2 { + + //! ID3v2 unsynchronized lyrics frame + /*! + * An implementation of ID3v2 unsynchronized lyrics. + */ + class TAGLIB_EXPORT UnsynchronizedLyricsFrame : public Frame + { + friend class FrameFactory; + + public: + /*! + * Construct an empty unsynchronized lyrics frame that will use the text encoding + * \a encoding. + */ + explicit UnsynchronizedLyricsFrame(String::Type encoding = String::Latin1); + + /*! + * Construct a unsynchronized lyrics frame based on the data in \a data. + */ + explicit UnsynchronizedLyricsFrame(const ByteVector &data); + + /*! + * Destroys this UnsynchronizedLyricsFrame instance. + */ + virtual ~UnsynchronizedLyricsFrame(); + + /*! + * Returns the text of this unsynchronized lyrics frame. + * + * \see text() + */ + virtual String toString() const; + + /*! + * Returns the language encoding as a 3 byte encoding as specified by + * ISO-639-2. + * + * \note Most taggers simply ignore this value. + * + * \see setLanguage() + */ + ByteVector language() const; + + /*! + * Returns the description of this unsynchronized lyrics frame. + * + * \note Most taggers simply ignore this value. + * + * \see setDescription() + */ + String description() const; + + /*! + * Returns the text of this unsynchronized lyrics frame. + * + * \see setText() + */ + String text() const; + + /*! + * Set the language using the 3 byte language code from + * ISO-639-2 to + * \a languageCode. + * + * \see language() + */ + void setLanguage(const ByteVector &languageCode); + + /*! + * Sets the description of the unsynchronized lyrics frame to \a s. + * + * \see decription() + */ + void setDescription(const String &s); + + /*! + * Sets the text portion of the unsynchronized lyrics frame to \a s. + * + * \see text() + */ + virtual void setText(const String &s); + + /*! + * Returns the text encoding that will be used in rendering this frame. + * This defaults to the type that was either specified in the constructor + * or read from the frame when parsed. + * + * \see setTextEncoding() + * \see render() + */ + String::Type textEncoding() const; + + /*! + * Sets the text encoding to be used when rendering this frame to + * \a encoding. + * + * \see textEncoding() + * \see render() + */ + void setTextEncoding(String::Type encoding); + + + /*! Parses this frame as PropertyMap with a single key. + * - if description() is empty or "LYRICS", the key will be "LYRICS" + * - if description() is not a valid PropertyMap key, the frame will be + * marked unsupported by an entry "USLT/" in the unsupportedData() + * attribute of the returned map. + * - otherwise, the key will be "LYRICS:" + * - The single value will be the frame's text(). + * Note that currently the language() field is not supported by the PropertyMap + * interface. + */ + PropertyMap asProperties() const; + + /*! + * LyricsFrames each have a unique description. This searches for a lyrics + * frame with the decription \a d and returns a pointer to it. If no + * frame is found that matches the given description null is returned. + * + * \see description() + */ + static UnsynchronizedLyricsFrame *findByDescription(const Tag *tag, const String &d); + + protected: + // Reimplementations. + + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + private: + /*! + * The constructor used by the FrameFactory. + */ + UnsynchronizedLyricsFrame(const ByteVector &data, Header *h); + UnsynchronizedLyricsFrame(const UnsynchronizedLyricsFrame &); + UnsynchronizedLyricsFrame &operator=(const UnsynchronizedLyricsFrame &); + + class UnsynchronizedLyricsFramePrivate; + UnsynchronizedLyricsFramePrivate *d; + }; + + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/urllinkframe.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/urllinkframe.h new file mode 100644 index 0000000..7ac966b --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/urllinkframe.h @@ -0,0 +1,189 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + copyright : (C) 2006 by Urs Fleisch + email : ufleisch@users.sourceforge.net + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_URLLINKFRAME_H +#define TAGLIB_URLLINKFRAME_H + +#include "id3v2frame.h" + +namespace TagLib { + + namespace ID3v2 { + + //! ID3v2 URL frame + /*! + * An implementation of ID3v2 URL link frames. + */ + class TAGLIB_EXPORT UrlLinkFrame : public Frame + { + friend class FrameFactory; + + public: + /*! + * This is a dual purpose constructor. \a data can either be binary data + * that should be parsed or (at a minimum) the frame ID. + */ + explicit UrlLinkFrame(const ByteVector &data); + + /*! + * Destroys this UrlLinkFrame instance. + */ + virtual ~UrlLinkFrame(); + + /*! + * Returns the URL. + */ + virtual String url() const; + + /*! + * Sets the URL to \a s. + */ + virtual void setUrl(const String &s); + + // Reimplementations. + + virtual void setText(const String &s); + virtual String toString() const; + PropertyMap asProperties() const; + + protected: + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + /*! + * The constructor used by the FrameFactory. + */ + UrlLinkFrame(const ByteVector &data, Header *h); + + private: + UrlLinkFrame(const UrlLinkFrame &); + UrlLinkFrame &operator=(const UrlLinkFrame &); + + class UrlLinkFramePrivate; + UrlLinkFramePrivate *d; + }; + + //! ID3v2 User defined URL frame + + /*! + * This is a specialization of URL link frames that allows for + * user defined entries. Each entry has a description in addition to the + * normal list of fields that a URL link frame has. + * + * This description identifies the frame and must be unique. + */ + class TAGLIB_EXPORT UserUrlLinkFrame : public UrlLinkFrame + { + friend class FrameFactory; + + public: + /*! + * Constructs an empty user defined URL link frame. For this to be + * a useful frame both a description and text must be set. + */ + explicit UserUrlLinkFrame(String::Type encoding = String::Latin1); + + /*! + * This is a dual purpose constructor. \a data can either be binary data + * that should be parsed or (at a minimum) the frame ID. + */ + explicit UserUrlLinkFrame(const ByteVector &data); + + /*! + * Destroys this UserUrlLinkFrame instance. + */ + virtual ~UserUrlLinkFrame(); + + // Reimplementations. + + virtual String toString() const; + + /*! + * Returns the text encoding that will be used in rendering this frame. + * This defaults to the type that was either specified in the constructor + * or read from the frame when parsed. + * + * \see setTextEncoding() + * \see render() + */ + String::Type textEncoding() const; + + /*! + * Sets the text encoding to be used when rendering this frame to + * \a encoding. + * + * \see textEncoding() + * \see render() + */ + void setTextEncoding(String::Type encoding); + + /*! + * Returns the description for this frame. + */ + String description() const; + + /*! + * Sets the description of the frame to \a s. \a s must be unique. + */ + void setDescription(const String &s); + + /*! + * Parses the UserUrlLinkFrame as PropertyMap. The description() is taken as key, + * and the URL as single value. + * - if description() is empty, the key will be "URL". + * - otherwise, if description() is not a valid key (e.g. containing non-ASCII + * characters), the returned map will contain an entry "WXXX/" + * in its unsupportedData() list. + */ + PropertyMap asProperties() const; + + /*! + * Searches for the user defined url frame with the description \a description + * in \a tag. This returns null if no matching frames were found. + */ + static UserUrlLinkFrame *find(Tag *tag, const String &description); + + protected: + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + /*! + * The constructor used by the FrameFactory. + */ + UserUrlLinkFrame(const ByteVector &data, Header *h); + + private: + UserUrlLinkFrame(const UserUrlLinkFrame &); + UserUrlLinkFrame &operator=(const UserUrlLinkFrame &); + + class UserUrlLinkFramePrivate; + UserUrlLinkFramePrivate *d; + }; + + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/vorbisfile.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/vorbisfile.h new file mode 100644 index 0000000..15c29d9 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/vorbisfile.h @@ -0,0 +1,139 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_VORBISFILE_H +#define TAGLIB_VORBISFILE_H + +#include "taglib_export.h" +#include "oggfile.h" +#include "xiphcomment.h" + +#include "vorbisproperties.h" + +namespace TagLib { + +/* + * This is just to make this appear to be in the Ogg namespace in the + * documentation. The typedef below will make this work with the current code. + * In the next BIC version of TagLib this will be really moved into the Ogg + * namespace. + */ + +#ifdef DOXYGEN + namespace Ogg { +#endif + + //! A namespace containing classes for Vorbis metadata + + namespace Vorbis { + + + //! An implementation of Ogg::File with Vorbis specific methods + + /*! + * This is the central class in the Ogg Vorbis metadata processing collection + * of classes. It's built upon Ogg::File which handles processing of the Ogg + * logical bitstream and breaking it down into pages which are handled by + * the codec implementations, in this case Vorbis specifically. + */ + + class TAGLIB_EXPORT File : public Ogg::File + { + public: + /*! + * Contructs a Vorbis file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs a Vorbis file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns the XiphComment for this file. XiphComment implements the tag + * interface, so this serves as the reimplementation of + * TagLib::File::tag(). + */ + virtual Ogg::XiphComment *tag() const; + + + /*! + * Implements the unified property interface -- export function. + * This forwards directly to XiphComment::properties(). + */ + PropertyMap properties() const; + + /*! + * Implements the unified tag dictionary interface -- import function. + * Like properties(), this is a forwarder to the file's XiphComment. + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Returns the Vorbis::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + virtual bool save(); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + + class FilePrivate; + FilePrivate *d; + }; + } + +/* + * To keep compatibility with the current version put Vorbis in the Ogg namespace + * only in the docs and provide a typedef to make it work. In the next BIC + * version this will be removed and it will only exist in the Ogg namespace. + */ + +#ifdef DOXYGEN + } +#else + namespace Ogg { namespace Vorbis { typedef TagLib::Vorbis::File File; } } +#endif + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/vorbisproperties.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/vorbisproperties.h new file mode 100644 index 0000000..de46985 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/vorbisproperties.h @@ -0,0 +1,125 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_VORBISPROPERTIES_H +#define TAGLIB_VORBISPROPERTIES_H + +#include "taglib_export.h" +#include "audioproperties.h" + +namespace TagLib { + +/* + * This is just to make this appear to be in the Ogg namespace in the + * documentation. The typedef below will make this work with the current code. + * In the next BIC version of TagLib this will be really moved into the Ogg + * namespace. + */ + +#ifdef DOXYGEN + namespace Ogg { +#endif + + namespace Vorbis { + + class File; + + //! An implementation of audio property reading for Ogg Vorbis + + /*! + * This reads the data from an Ogg Vorbis stream found in the AudioProperties + * API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of Vorbis::Properties with the data read from the + * Vorbis::File \a file. + */ + Properties(File *file, ReadStyle style = Average); + + /*! + * Destroys this VorbisProperties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + /*! + * Returns the Vorbis version, currently "0" (as specified by the spec). + */ + int vorbisVersion() const; + + /*! + * Returns the maximum bitrate as read from the Vorbis identification + * header. + */ + int bitrateMaximum() const; + + /*! + * Returns the nominal bitrate as read from the Vorbis identification + * header. + */ + int bitrateNominal() const; + + /*! + * Returns the minimum bitrate as read from the Vorbis identification + * header. + */ + int bitrateMinimum() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void read(); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } + +/* + * To keep compatibility with the current version put Vorbis in the Ogg namespace + * only in the docs and provide a typedef to make it work. In the next BIC + * version this will be removed and it will only exist in the Ogg namespace. + */ + +#ifdef DOXYGEN + } +#else + namespace Ogg { namespace Vorbis { typedef TagLib::AudioProperties AudioProperties; } } +#endif + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/wavfile.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/wavfile.h new file mode 100644 index 0000000..861f3f7 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/wavfile.h @@ -0,0 +1,122 @@ +/*************************************************************************** + copyright : (C) 2008 by Scott Wheeler + email : wheeler@kde.org +***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_WAVFILE_H +#define TAGLIB_WAVFILE_H + +#include "rifffile.h" +#include "id3v2tag.h" +#include "wavproperties.h" + +namespace TagLib { + + namespace RIFF { + + //! An implementation of WAV metadata + + /*! + * This is implementation of WAV metadata. + * + * This supports an ID3v2 tag as well as reading stream from the ID3 RIFF + * chunk as well as properties from the file. + */ + + namespace WAV { + + //! An implementation of TagLib::File with WAV specific methods + + /*! + * This implements and provides an interface for WAV files to the + * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing + * the abstract TagLib::File API as well as providing some additional + * information specific to WAV files. + */ + + class TAGLIB_EXPORT File : public TagLib::RIFF::File + { + public: + /*! + * Contructs an WAV file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an WAV file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns the Tag for this file. + */ + virtual ID3v2::Tag *tag() const; + + /*! + * Implements the unified property interface -- export function. + * This method forwards to ID3v2::Tag::properties(). + */ + PropertyMap properties() const; + + /*! + * Implements the unified property interface -- import function. + * This method forwards to ID3v2::Tag::setProperties(). + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Returns the WAV::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + /*! + * Saves the file. + */ + virtual bool save(); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + + class FilePrivate; + FilePrivate *d; + }; + } + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/wavpackfile.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/wavpackfile.h new file mode 100644 index 0000000..02bac02 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/wavpackfile.h @@ -0,0 +1,186 @@ +/*************************************************************************** + copyright : (C) 2006 by Lukáš Lalinský + email : lalinsky@gmail.com + + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + (original MPC implementation) + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_WVFILE_H +#define TAGLIB_WVFILE_H + +#include "tfile.h" +#include "taglib_export.h" +#include "wavpackproperties.h" + +namespace TagLib { + + class Tag; + + namespace ID3v1 { class Tag; } + namespace APE { class Tag; } + + //! An implementation of WavPack metadata + + /*! + * This is implementation of WavPack metadata. + * + * This supports ID3v1 and APE (v1 and v2) style comments as well as reading stream + * properties from the file. + */ + + namespace WavPack { + + //! An implementation of TagLib::File with WavPack specific methods + + /*! + * This implements and provides an interface for WavPack files to the + * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing + * the abstract TagLib::File API as well as providing some additional + * information specific to WavPack files. + */ + + class TAGLIB_EXPORT File : public TagLib::File + { + public: + /*! + * This set of flags is used for various operations and is suitable for + * being OR-ed together. + */ + enum TagTypes { + //! Empty set. Matches no tag types. + NoTags = 0x0000, + //! Matches ID3v1 tags. + ID3v1 = 0x0001, + //! Matches APE tags. + APE = 0x0002, + //! Matches all tag types. + AllTags = 0xffff + }; + + /*! + * Contructs an WavPack file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an WavPack file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns the Tag for this file. This will be an APE tag, an ID3v1 tag + * or a combination of the two. + */ + virtual TagLib::Tag *tag() const; + + /*! + * Implements the unified property interface -- export function. + * If the file contains both an APE and an ID3v1 tag, only APE + * will be converted to the PropertyMap. + */ + PropertyMap properties() const; + + /*! + * Implements the unified property interface -- import function. + * As for the export, only one tag is taken into account. If the file + * has no tag at all, APE will be created. + */ + PropertyMap setProperties(const PropertyMap&); + + /*! + * Returns the MPC::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + /*! + * Saves the file. + */ + virtual bool save(); + + /*! + * Returns a pointer to the ID3v1 tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid ID3v1 tag. If \a create is true it will create + * an ID3v1 tag if one does not exist. If there is already an APE tag, the + * new ID3v1 tag will be placed after it. + * + * \note The Tag is still owned by the APE::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + ID3v1::Tag *ID3v1Tag(bool create = false); + + /*! + * Returns a pointer to the APE tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid APE tag. If \a create is true it will create + * a APE tag if one does not exist. + * + * \note The Tag is still owned by the APE::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + APE::Tag *APETag(bool create = false); + + /*! + * This will remove the tags that match the OR-ed together TagTypes from the + * file. By default it removes all tags. + * + * \note This will also invalidate pointers to the tags + * as their memory will be freed. + * \note In order to make the removal permanent save() still needs to be called + */ + void strip(int tags = AllTags); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + void scan(); + long findID3v1(); + long findAPE(); + + class FilePrivate; + FilePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/wavpackproperties.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/wavpackproperties.h new file mode 100644 index 0000000..bd2209d --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/wavpackproperties.h @@ -0,0 +1,105 @@ +/*************************************************************************** + copyright : (C) 2006 by Lukáš Lalinský + email : lalinsky@gmail.com + + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + (original MPC implementation) + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_WVPROPERTIES_H +#define TAGLIB_WVPROPERTIES_H + +#include "taglib_export.h" +#include "audioproperties.h" + +namespace TagLib { + + namespace WavPack { + + class File; + + static const uint HeaderSize = 32; + + //! An implementation of audio property reading for WavPack + + /*! + * This reads the data from an WavPack stream found in the AudioProperties + * API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of WavPack::Properties with the data read from the + * ByteVector \a data. + * + * \deprecated This constructor will be dropped in favor of the one below + * in a future version. + */ + Properties(const ByteVector &data, long streamLength, ReadStyle style = Average); + + /*! + * Create an instance of WavPack::Properties. + */ + // BIC: merge with the above constructor + Properties(File *file, long streamLength, ReadStyle style = Average); + + /*! + * Destroys this WavPack::Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + /*! + * Returns number of bits per sample. + */ + int bitsPerSample() const; + uint sampleFrames() const; + + /*! + * Returns WavPack version. + */ + int version() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void read(); + unsigned int seekFinalIndex(); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/wavproperties.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/wavproperties.h new file mode 100644 index 0000000..2023f53 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/wavproperties.h @@ -0,0 +1,92 @@ +/*************************************************************************** + copyright : (C) 2008 by Scott Wheeler + email : wheeler@kde.org +***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_WAVPROPERTIES_H +#define TAGLIB_WAVPROPERTIES_H + +#include "taglib.h" +#include "audioproperties.h" + +namespace TagLib { + + class ByteVector; + + namespace RIFF { + + namespace WAV { + + class File; + + //! An implementation of audio property reading for WAV + + /*! + * This reads the data from an WAV stream found in the AudioProperties + * API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of WAV::Properties with the data read from the + * ByteVector \a data. + */ + Properties(const ByteVector &data, ReadStyle style); + + /*! + * Create an instance of WAV::Properties with the data read from the + * ByteVector \a data and the length calculated using \a streamLength. + */ + Properties(const ByteVector &data, uint streamLength, ReadStyle style); + + /*! + * Destroys this WAV::Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + int sampleWidth() const; + uint sampleFrames() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void read(const ByteVector &data); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/xingheader.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/xingheader.h new file mode 100644 index 0000000..ffe7494 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/xingheader.h @@ -0,0 +1,100 @@ +/*************************************************************************** + copyright : (C) 2003 by Ismael Orenstein + email : orenstein@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_XINGHEADER_H +#define TAGLIB_XINGHEADER_H + +#include "mpegheader.h" +#include "taglib_export.h" + +namespace TagLib { + + class ByteVector; + + namespace MPEG { + + //! An implementation of the Xing VBR headers + + /*! + * This is a minimalistic implementation of the Xing VBR headers. Xing + * headers are often added to VBR (variable bit rate) MP3 streams to make it + * easy to compute the length and quality of a VBR stream. Our implementation + * is only concerned with the total size of the stream (so that we can + * calculate the total playing time and the average bitrate). It uses + * this text + * and the XMMS sources as references. + */ + + class TAGLIB_EXPORT XingHeader + { + public: + /*! + * Parses a Xing header based on \a data. The data must be at least 16 + * bytes long (anything longer than this is discarded). + */ + XingHeader(const ByteVector &data); + + /*! + * Destroy this XingHeader instance. + */ + virtual ~XingHeader(); + + /*! + * Returns true if the data was parsed properly and if there is a valid + * Xing header present. + */ + bool isValid() const; + + /*! + * Returns the total number of frames. + */ + uint totalFrames() const; + + /*! + * Returns the total size of stream in bytes. + */ + uint totalSize() const; + + /*! + * Returns the offset for the start of this Xing header, given the + * version and channels of the frame + */ + // BIC: rename to offset() + static int xingHeaderOffset(TagLib::MPEG::Header::Version v, + TagLib::MPEG::Header::ChannelMode c); + + private: + XingHeader(const XingHeader &); + XingHeader &operator=(const XingHeader &); + + void parse(const ByteVector &data); + + class XingHeaderPrivate; + XingHeaderPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/xiphcomment.h b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/xiphcomment.h new file mode 100644 index 0000000..3b44086 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Headers/xiphcomment.h @@ -0,0 +1,217 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_VORBISCOMMENT_H +#define TAGLIB_VORBISCOMMENT_H + +#include "tag.h" +#include "tlist.h" +#include "tmap.h" +#include "tstring.h" +#include "tstringlist.h" +#include "tbytevector.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace Ogg { + + /*! + * A mapping between a list of field names, or keys, and a list of values + * associated with that field. + * + * \see XiphComment::fieldListMap() + */ + typedef Map FieldListMap; + + //! Ogg Vorbis comment implementation + + /*! + * This class is an implementation of the Ogg Vorbis comment specification, + * to be found in section 5 of the Ogg Vorbis specification. Because this + * format is also used in other (currently unsupported) Xiph.org formats, it + * has been made part of a generic implementation rather than being limited + * to strictly Vorbis. + * + * Vorbis comments are a simple vector of keys and values, called fields. + * Multiple values for a given key are supported. + * + * \see fieldListMap() + */ + + class TAGLIB_EXPORT XiphComment : public TagLib::Tag + { + public: + /*! + * Constructs an empty Vorbis comment. + */ + XiphComment(); + + /*! + * Constructs a Vorbis comment from \a data. + */ + XiphComment(const ByteVector &data); + + /*! + * Destroys this instance of the XiphComment. + */ + virtual ~XiphComment(); + + virtual String title() const; + virtual String artist() const; + virtual String album() const; + virtual String comment() const; + virtual String genre() const; + virtual uint year() const; + virtual uint track() const; + + virtual void setTitle(const String &s); + virtual void setArtist(const String &s); + virtual void setAlbum(const String &s); + virtual void setComment(const String &s); + virtual void setGenre(const String &s); + virtual void setYear(uint i); + virtual void setTrack(uint i); + + virtual bool isEmpty() const; + + /*! + * Returns the number of fields present in the comment. + */ + uint fieldCount() const; + + /*! + * Returns a reference to the map of field lists. Because Xiph comments + * support multiple fields with the same key, a pure Map would not work. + * As such this is a Map of string lists, keyed on the comment field name. + * + * The standard set of Xiph/Vorbis fields (which may or may not be + * contained in any specific comment) is: + * + *
        + *
      • TITLE
      • + *
      • VERSION
      • + *
      • ALBUM
      • + *
      • ARTIST
      • + *
      • PERFORMER
      • + *
      • COPYRIGHT
      • + *
      • ORGANIZATION
      • + *
      • DESCRIPTION
      • + *
      • GENRE
      • + *
      • DATE
      • + *
      • LOCATION
      • + *
      • CONTACT
      • + *
      • ISRC
      • + *
      + * + * For a more detailed description of these fields, please see the Ogg + * Vorbis specification, section 5.2.2.1. + * + * \note The Ogg Vorbis comment specification does allow these key values + * to be either upper or lower case. However, it is conventional for them + * to be upper case. As such, TagLib, when parsing a Xiph/Vorbis comment, + * converts all fields to uppercase. When you are using this data + * structure, you will need to specify the field name in upper case. + * + * \warning You should not modify this data structure directly, instead + * use addField() and removeField(). + */ + const FieldListMap &fieldListMap() const; + + /*! + * Implements the unified property interface -- export function. + * The result is a one-to-one match of the Xiph comment, since it is + * completely compatible with the property interface (in fact, a Xiph + * comment is nothing more than a map from tag names to list of values, + * as is the dict interface). + */ + PropertyMap properties() const; + + /*! + * Implements the unified property interface -- import function. + * The tags from the given map will be stored one-to-one in the file. + */ + PropertyMap setProperties(const PropertyMap&); + + /*! + * Returns the vendor ID of the Ogg Vorbis encoder. libvorbis 1.0 as the + * most common case always returns "Xiph.Org libVorbis I 20020717". + */ + String vendorID() const; + + /*! + * Add the field specified by \a key with the data \a value. If \a replace + * is true, then all of the other fields with the same key will be removed + * first. + * + * If the field value is empty, the field will be removed. + */ + void addField(const String &key, const String &value, bool replace = true); + + /*! + * Remove the field specified by \a key with the data \a value. If + * \a value is null, all of the fields with the given key will be removed. + */ + void removeField(const String &key, const String &value = String::null); + + /*! + * Returns true if the field is contained within the comment. + * + * \note This is safer than checking for membership in the FieldListMap. + */ + bool contains(const String &key) const; + + /*! + * Renders the comment to a ByteVector suitable for inserting into a file. + */ + ByteVector render() const; // BIC: remove and merge with below + + /*! + * Renders the comment to a ByteVector suitable for inserting into a file. + * + * If \a addFramingBit is true the standard Vorbis comment framing bit will + * be appended. However some formats (notably FLAC) do not work with this + * in place. + */ + ByteVector render(bool addFramingBit) const; + + protected: + /*! + * Reads the tag from the file specified in the constructor and fills the + * FieldListMap. + */ + void parse(const ByteVector &data); + + private: + XiphComment(const XiphComment &); + XiphComment &operator=(const XiphComment &); + + class XiphCommentPrivate; + XiphCommentPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Resources/Info.plist b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Resources/Info.plist new file mode 100644 index 0000000000000000000000000000000000000000..33e4024ba28b77e114114048d6ad7575fd529f03 GIT binary patch literal 735 zcmZWnOK;Oa5Z+l{1q#_Tl+r?Zg!jv`qa;-&Bp`Jog+3Cn^PsJ2ZJdp>uztvKDk6SE z{{Xj&I|qINH#qPEIKc_TjVqT*IF3z`*vrg*GvCa7v)lFr?+3E{jZ6bRboj{8V-v?u zoSZy$Iz`e`nKRR8XU@&eoxd=D@zUk&)oa&p+`N6~?!B$0a%tdn1Y4&zYpQz7bUW<1 zs%z@X2-%3d(twMOL1vR&mF+O$dNy-{XUyWRV~|u5YcRhbA(@D^M$H~~SXGN|+p1m@ zH0Zj%J*sYyOhT(s^Ch*IKJ-F#Ej!Z~E%3Qx{Tm#3UKnPbq-5V9^9i%!bX}F3 zK{yKahku8fO5)3}m^lb&TZ|+wxwgjz^9@4QxWny%UDf`lR63zv-sQ~Su2;epaFdm( z&Bf3l=>uIcZ!2D9yt;JKSL2pLgMlBaOdXJ-tcFglRo>R+d|uw8;eX*o0 z6r0PA6~1rpsnSq#k8{PvR+6HZ*P1JuBFTGKTD&%*RW+?B$#Fe{WKGwWsOJeLgDp;`{0xS literal 0 HcmV?d00001 diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Resources/id3v2.2.0.txt b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Resources/id3v2.2.0.txt new file mode 100644 index 0000000..a69bddd --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Resources/id3v2.2.0.txt @@ -0,0 +1,1660 @@ + +Informal standard M. Nilsson +Document: id3v2-00.txt 26th March 1998 + + + ID3 tag version 2 + +Status of this document + + This document is an Informal standard and is released so that + implementors could have a set standard before the formal standard is + set. The formal standard will use another version number if not + identical to what is described in this document. The contents in this + document may change for clarifications but never for added or altered + functionallity. + + Distribution of this document is unlimited. + + +Abstract + + The recent gain of popularity for MPEG layer III audio files on the + internet forced a standardised way of storing information about an + audio file within itself to determinate its origin and contents. + + Today the most accepted way to do this is with the so called ID3 tag, + which is simple but very limited and in some cases very unsuitable. + The ID3 tag has very limited space in every field, very limited + numbers of fields, not expandable or upgradeable and is placed at the + end of a the file, which is unsuitable for streaming audio. This draft + is an attempt to answer these issues with a new version of the ID3 + tag. + + +1. Table of contents + + 2. Conventions in this document + 3. ID3v2 overview + 3.1. ID3v2 header + 3.2. ID3v2 frames overview + 4. Declared ID3v2 frames + 4.1. Unique file identifier + 4.2. Text information frames + 4.2.1. Text information frames - details + 4.2.2. User defined text information frame + 4.3. URL link frames + 4.3.1. URL link frames - details + 4.3.2. User defined URL link frame + 4.4. Involved people list + 4.5. Music CD Identifier + 4.6. Event timing codes + 4.7. MPEG location lookup table + 4.8. Synced tempo codes + 4.9. Unsychronised lyrics/text transcription + 4.10. Synchronised lyrics/text + 4.11. Comments + 4.12. Relative volume adjustment + 4.13. Equalisation + 4.14. Reverb + 4.15. Attached picture + 4.16. General encapsulated object + 4.17. Play counter + 4.18. Popularimeter + 4.19. Recommended buffer size + 4.20. Encrypted meta frame + 4.21. Audio encryption + 4.22. Linked information + 5. The 'unsynchronisation scheme' + 6. Copyright + 7. References + 8. Appendix + A. Appendix A - ID3-Tag Specification V1.1 + A.1. Overview + A.2. ID3v1 Implementation + A.3. Genre List + A.4. Track addition - ID3v1.1 + 9. Author's Address + + +2. Conventions in this document + + In the examples, text within "" is a text string exactly as it appears + in a file. Numbers preceded with $ are hexadecimal and numbers + preceded with % are binary. $xx is used to indicate a byte with + unknown content. %x is used to indicate a bit with unknown content. + The most significant bit (MSB) of a byte is called 'bit 7' and the + least significant bit (LSB) is called 'bit 0'. + + A tag is the whole tag described in this document. A frame is a block + of information in the tag. The tag consists of a header, frames and + optional padding. A field is a piece of information; one value, a + string etc. A numeric string is a string that consists of the + characters 0-9 only. + + +3. ID3v2 overview + + The two biggest design goals were to be able to implement ID3v2 + without disturbing old software too much and that ID3v2 should be + expandable. + + The first criterion is met by the simple fact that the MPEG [MPEG] + decoding software uses a syncsignal, embedded in the audiostream, to + 'lock on to' the audio. Since the ID3v2 tag doesn't contain a valid + syncsignal, no software will attempt to play the tag. If, for any + reason, coincidence make a syncsignal appear within the tag it will be + taken care of by the 'unsynchronisation scheme' described in section + 5. + + The second criterion has made a more noticeable impact on the design + of the ID3v2 tag. It is constructed as a container for several + information blocks, called frames, whose format need not be known to + the software that encounters them. At the start of every frame there + is an identifier that explains the frames's format and content, and a + size descriptor that allows software to skip unknown frames. + + If a total revision of the ID3v2 tag should be needed, there is a + version number and a size descriptor in the ID3v2 header. + + The ID3 tag described in this document is mainly targeted to files + encoded with MPEG-2 layer I, MPEG-2 layer II, MPEG-2 layer III and + MPEG-2.5, but may work with other types of encoded audio. + + The bitorder in ID3v2 is most significant bit first (MSB). The + byteorder in multibyte numbers is most significant byte first (e.g. + $12345678 would be encoded $12 34 56 78). + + It is permitted to include padding after all the final frame (at the + end of the ID3 tag), making the size of all the frames together + smaller than the size given in the head of the tag. A possible purpose + of this padding is to allow for adding a few additional frames or + enlarge existing frames within the tag without having to rewrite the + entire file. The value of the padding bytes must be $00. + + +3.1. ID3v2 header + + The ID3v2 tag header, which should be the first information in the + file, is 10 bytes as follows: + + ID3/file identifier "ID3" + ID3 version $02 00 + ID3 flags %xx000000 + ID3 size 4 * %0xxxxxxx + + The first three bytes of the tag are always "ID3" to indicate that + this is an ID3 tag, directly followed by the two version bytes. The + first byte of ID3 version is it's major version, while the second byte + is its revision number. All revisions are backwards compatible while + major versions are not. If software with ID3v2 and below support + should encounter version three or higher it should simply ignore the + whole tag. Version and revision will never be $FF. + + The first bit (bit 7) in the 'ID3 flags' is indicating whether or not + unsynchronisation is used (see section 5 for details); a set bit + indicates usage. + + The second bit (bit 6) is indicating whether or not compression is + used; a set bit indicates usage. Since no compression scheme has been + decided yet, the ID3 decoder (for now) should just ignore the entire + tag if the compression bit is set. + + The ID3 tag size is encoded with four bytes where the first bit (bit + 7) is set to zero in every byte, making a total of 28 bits. The zeroed + bits are ignored, so a 257 bytes long tag is represented as $00 00 02 + 01. + + The ID3 tag size is the size of the complete tag after + unsychronisation, including padding, excluding the header (total tag + size - 10). The reason to use 28 bits (representing up to 256MB) for + size description is that we don't want to run out of space here. + + A ID3v2 tag can be detected with the following pattern: + $49 44 33 yy yy xx zz zz zz zz + Where yy is less than $FF, xx is the 'flags' byte and zz is less than + $80. + + +3.2. ID3v2 frames overview + + The headers of the frames are similar in their construction. They + consist of one three character identifier (capital A-Z and 0-9) and + one three byte size field, making a total of six bytes. The header is + excluded from the size. Identifiers beginning with "X", "Y" and "Z" + are for experimental use and free for everyone to use. Have in mind + that someone else might have used the same identifier as you. All + other identifiers are either used or reserved for future use. + + The three character frame identifier is followed by a three byte size + descriptor, making a total header size of six bytes in every frame. + The size is calculated as framesize excluding frame identifier and + size descriptor (frame size - 6). + + There is no fixed order of the frames' appearance in the tag, although + it is desired that the frames are arranged in order of significance + concerning the recognition of the file. An example of such order: + UFI, MCI, TT2 ... + + A tag must contain at least one frame. A frame must be at least 1 byte + big, excluding the 6-byte header. + + If nothing else is said a string is represented as ISO-8859-1 + [ISO-8859-1] characters in the range $20 - $FF. All unicode strings + [UNICODE] use 16-bit unicode 2.0 (ISO/IEC 10646-1:1993, UCS-2). All + numeric strings are always encoded as ISO-8859-1. Terminated strings + are terminated with $00 if encoded with ISO-8859-1 and $00 00 if + encoded as unicode. If nothing else is said newline character is + forbidden. In ISO-8859-1 a new line is represented, when allowed, with + $0A only. Frames that allow different types of text encoding have a + text encoding description byte directly after the frame size. If + ISO-8859-1 is used this byte should be $00, if unicode is used it + should be $01. + + The three byte language field is used to describe the language of the + frame's content, according to ISO-639-2 [ISO-639-2]. + + All URLs [URL] may be relative, e.g. "picture.png", "../doc.txt". + + If a frame is longer than it should be, e.g. having more fields than + specified in this document, that indicates that additions to the + frame have been made in a later version of the ID3 standard. This + is reflected by the revision number in the header of the tag. + + +4. Declared ID3v2 frames + + The following frames are declared in this draft. + + 4.19 BUF Recommended buffer size + + 4.17 CNT Play counter + 4.11 COM Comments + 4.21 CRA Audio encryption + 4.20 CRM Encrypted meta frame + + 4.6 ETC Event timing codes + 4.13 EQU Equalization + + 4.16 GEO General encapsulated object + + 4.4 IPL Involved people list + + 4.22 LNK Linked information + + 4.5 MCI Music CD Identifier + 4.7 MLL MPEG location lookup table + + 4.15 PIC Attached picture + 4.18 POP Popularimeter + + 4.14 REV Reverb + 4.12 RVA Relative volume adjustment + + 4.10 SLT Synchronized lyric/text + 4.8 STC Synced tempo codes + + 4.2.1 TAL Album/Movie/Show title + 4.2.1 TBP BPM (Beats Per Minute) + 4.2.1 TCM Composer + 4.2.1 TCO Content type + 4.2.1 TCR Copyright message + 4.2.1 TDA Date + 4.2.1 TDY Playlist delay + 4.2.1 TEN Encoded by + 4.2.1 TFT File type + 4.2.1 TIM Time + 4.2.1 TKE Initial key + 4.2.1 TLA Language(s) + 4.2.1 TLE Length + 4.2.1 TMT Media type + 4.2.1 TOA Original artist(s)/performer(s) + 4.2.1 TOF Original filename + 4.2.1 TOL Original Lyricist(s)/text writer(s) + 4.2.1 TOR Original release year + 4.2.1 TOT Original album/Movie/Show title + 4.2.1 TP1 Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group + 4.2.1 TP2 Band/Orchestra/Accompaniment + 4.2.1 TP3 Conductor/Performer refinement + 4.2.1 TP4 Interpreted, remixed, or otherwise modified by + 4.2.1 TPA Part of a set + 4.2.1 TPB Publisher + 4.2.1 TRC ISRC (International Standard Recording Code) + 4.2.1 TRD Recording dates + 4.2.1 TRK Track number/Position in set + 4.2.1 TSI Size + 4.2.1 TSS Software/hardware and settings used for encoding + 4.2.1 TT1 Content group description + 4.2.1 TT2 Title/Songname/Content description + 4.2.1 TT3 Subtitle/Description refinement + 4.2.1 TXT Lyricist/text writer + 4.2.2 TXX User defined text information frame + 4.2.1 TYE Year + + 4.1 UFI Unique file identifier + 4.9 ULT Unsychronized lyric/text transcription + + 4.3.1 WAF Official audio file webpage + 4.3.1 WAR Official artist/performer webpage + 4.3.1 WAS Official audio source webpage + 4.3.1 WCM Commercial information + 4.3.1 WCP Copyright/Legal information + 4.3.1 WPB Publishers official webpage + 4.3.2 WXX User defined URL link frame + + +4.1. Unique file identifier + + This frame's purpose is to be able to identify the audio file in a + database that may contain more information relevant to the content. + Since standardisation of such a database is beyond this document, all + frames begin with a null-terminated string with a URL [URL] containing + an email address, or a link to a location where an email address can + be found, that belongs to the organisation responsible for this + specific database implementation. Questions regarding the database + should be sent to the indicated email address. The URL should not be + used for the actual database queries. If a $00 is found directly after + the 'Frame size' the whole frame should be ignored, and preferably be + removed. The 'Owner identifier' is then followed by the actual + identifier, which may be up to 64 bytes. There may be more than one + "UFI" frame in a tag, but only one with the same 'Owner identifier'. + + Unique file identifier "UFI" + Frame size $xx xx xx + Owner identifier $00 + Identifier + + +4.2. Text information frames + + The text information frames are the most important frames, containing + information like artist, album and more. There may only be one text + information frame of its kind in an tag. If the textstring is followed + by a termination ($00 (00)) all the following information should be + ignored and not be displayed. All the text information frames have the + following format: + + Text information identifier "T00" - "TZZ" , excluding "TXX", + described in 4.2.2. + Frame size $xx xx xx + Text encoding $xx + Information + + +4.2.1. Text information frames - details + + TT1 + The 'Content group description' frame is used if the sound belongs to + a larger category of sounds/music. For example, classical music is + often sorted in different musical sections (e.g. "Piano Concerto", + "Weather - Hurricane"). + + TT2 + The 'Title/Songname/Content description' frame is the actual name of + the piece (e.g. "Adagio", "Hurricane Donna"). + + TT3 + The 'Subtitle/Description refinement' frame is used for information + directly related to the contents title (e.g. "Op. 16" or "Performed + live at wembley"). + + TP1 + The 'Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group' is + used for the main artist(s). They are seperated with the "/" + character. + + TP2 + The 'Band/Orchestra/Accompaniment' frame is used for additional + information about the performers in the recording. + + TP3 + The 'Conductor' frame is used for the name of the conductor. + + TP4 + The 'Interpreted, remixed, or otherwise modified by' frame contains + more information about the people behind a remix and similar + interpretations of another existing piece. + + TCM + The 'Composer(s)' frame is intended for the name of the composer(s). + They are seperated with the "/" character. + + TXT + The 'Lyricist(s)/text writer(s)' frame is intended for the writer(s) + of the text or lyrics in the recording. They are seperated with the + "/" character. + + TLA + The 'Language(s)' frame should contain the languages of the text or + lyrics in the audio file. The language is represented with three + characters according to ISO-639-2. If more than one language is used + in the text their language codes should follow according to their + usage. + + TCO + The content type, which previously (in ID3v1.1, see appendix A) was + stored as a one byte numeric value only, is now a numeric string. You + may use one or several of the types as ID3v1.1 did or, since the + category list would be impossible to maintain with accurate and up to + date categories, define your own. + References to the ID3v1 genres can be made by, as first byte, enter + "(" followed by a number from the genres list (section A.3.) and + ended with a ")" character. This is optionally followed by a + refinement, e.g. "(21)" or "(4)Eurodisco". Several references can be + made in the same frame, e.g. "(51)(39)". If the refinement should + begin with a "(" character it should be replaced with "((", e.g. "((I + can figure out any genre)" or "(55)((I think...)". The following new + content types is defined in ID3v2 and is implemented in the same way + as the numerig content types, e.g. "(RX)". + + RX Remix + CR Cover + + TAL + The 'Album/Movie/Show title' frame is intended for the title of the + recording(/source of sound) which the audio in the file is taken from. + + TPA + The 'Part of a set' frame is a numeric string that describes which + part of a set the audio came from. This frame is used if the source + described in the "TAL" frame is divided into several mediums, e.g. a + double CD. The value may be extended with a "/" character and a + numeric string containing the total number of parts in the set. E.g. + "1/2". + + TRK + The 'Track number/Position in set' frame is a numeric string + containing the order number of the audio-file on its original + recording. This may be extended with a "/" character and a numeric + string containing the total numer of tracks/elements on the original + recording. E.g. "4/9". + + TRC + The 'ISRC' frame should contian the International Standard Recording + Code [ISRC]. + + TYE + The 'Year' frame is a numeric string with a year of the recording. + This frames is always four characters long (until the year 10000). + + TDA + The 'Date' frame is a numeric string in the DDMM format containing + the date for the recording. This field is always four characters + long. + + TIM + The 'Time' frame is a numeric string in the HHMM format containing + the time for the recording. This field is always four characters + long. + + TRD + The 'Recording dates' frame is a intended to be used as complement to + the "TYE", "TDA" and "TIM" frames. E.g. "4th-7th June, 12th June" in + combination with the "TYE" frame. + + TMT + The 'Media type' frame describes from which media the sound + originated. This may be a textstring or a reference to the predefined + media types found in the list below. References are made within "(" + and ")" and are optionally followed by a text refinement, e.g. "(MC) + with four channels". If a text refinement should begin with a "(" + character it should be replaced with "((" in the same way as in the + "TCO" frame. Predefined refinements is appended after the media type, + e.g. "(CD/S)" or "(VID/PAL/VHS)". + + DIG Other digital media + /A Analog transfer from media + + ANA Other analog media + /WAC Wax cylinder + /8CA 8-track tape cassette + + CD CD + /A Analog transfer from media + /DD DDD + /AD ADD + /AA AAD + + LD Laserdisc + /A Analog transfer from media + + TT Turntable records + /33 33.33 rpm + /45 45 rpm + /71 71.29 rpm + /76 76.59 rpm + /78 78.26 rpm + /80 80 rpm + + MD MiniDisc + /A Analog transfer from media + + DAT DAT + /A Analog transfer from media + /1 standard, 48 kHz/16 bits, linear + /2 mode 2, 32 kHz/16 bits, linear + /3 mode 3, 32 kHz/12 bits, nonlinear, low speed + /4 mode 4, 32 kHz/12 bits, 4 channels + /5 mode 5, 44.1 kHz/16 bits, linear + /6 mode 6, 44.1 kHz/16 bits, 'wide track' play + + DCC DCC + /A Analog transfer from media + + DVD DVD + /A Analog transfer from media + + TV Television + /PAL PAL + /NTSC NTSC + /SECAM SECAM + + VID Video + /PAL PAL + /NTSC NTSC + /SECAM SECAM + /VHS VHS + /SVHS S-VHS + /BETA BETAMAX + + RAD Radio + /FM FM + /AM AM + /LW LW + /MW MW + + TEL Telephone + /I ISDN + + MC MC (normal cassette) + /4 4.75 cm/s (normal speed for a two sided cassette) + /9 9.5 cm/s + /I Type I cassette (ferric/normal) + /II Type II cassette (chrome) + /III Type III cassette (ferric chrome) + /IV Type IV cassette (metal) + + REE Reel + /9 9.5 cm/s + /19 19 cm/s + /38 38 cm/s + /76 76 cm/s + /I Type I cassette (ferric/normal) + /II Type II cassette (chrome) + /III Type III cassette (ferric chrome) + /IV Type IV cassette (metal) + + TFT + The 'File type' frame indicates which type of audio this tag defines. + The following type and refinements are defined: + + MPG MPEG Audio + /1 MPEG 2 layer I + /2 MPEG 2 layer II + /3 MPEG 2 layer III + /2.5 MPEG 2.5 + /AAC Advanced audio compression + + but other types may be used, not for these types though. This is used + in a similar way to the predefined types in the "TMT" frame, but + without parenthesis. If this frame is not present audio type is + assumed to be "MPG". + + TBP + BPM is short for beats per minute, and is easily computed by + dividing the number of beats in a musical piece with its length. To + get a more accurate result, do the BPM calculation on the main-part + only. To acquire best result measure the time between each beat and + calculate individual BPM for each beat and use the median value as + result. BPM is an integer and represented as a numerical string. + + TCR + The 'Copyright message' frame, which must begin with a year and a + space character (making five characters), is intended for the + copyright holder of the original sound, not the audio file itself. The + absence of this frame means only that the copyright information is + unavailable or has been removed, and must not be interpreted to mean + that the sound is public domain. Every time this field is displayed + the field must be preceded with "Copyright " (C) " ", where (C) is one + character showing a C in a circle. + + TPB + The 'Publisher' frame simply contains the name of the label or + publisher. + + TEN + The 'Encoded by' frame contains the name of the person or + organisation that encoded the audio file. This field may contain a + copyright message, if the audio file also is copyrighted by the + encoder. + + TSS + The 'Software/hardware and settings used for encoding' frame + includes the used audio encoder and its settings when the file was + encoded. Hardware refers to hardware encoders, not the computer on + which a program was run. + + TOF + The 'Original filename' frame contains the preferred filename for the + file, since some media doesn't allow the desired length of the + filename. The filename is case sensitive and includes its suffix. + + TLE + The 'Length' frame contains the length of the audiofile in + milliseconds, represented as a numeric string. + + TSI + The 'Size' frame contains the size of the audiofile in bytes + excluding the tag, represented as a numeric string. + + TDY + The 'Playlist delay' defines the numbers of milliseconds of silence + between every song in a playlist. The player should use the "ETC" + frame, if present, to skip initial silence and silence at the end of + the audio to match the 'Playlist delay' time. The time is represented + as a numeric string. + + TKE + The 'Initial key' frame contains the musical key in which the sound + starts. It is represented as a string with a maximum length of three + characters. The ground keys are represented with "A","B","C","D","E", + "F" and "G" and halfkeys represented with "b" and "#". Minor is + represented as "m". Example "Cbm". Off key is represented with an "o" + only. + + TOT + The 'Original album/Movie/Show title' frame is intended for the title + of the original recording(/source of sound), if for example the music + in the file should be a cover of a previously released song. + + TOA + The 'Original artist(s)/performer(s)' frame is intended for the + performer(s) of the original recording, if for example the music in + the file should be a cover of a previously released song. The + performers are seperated with the "/" character. + + TOL + The 'Original Lyricist(s)/text writer(s)' frame is intended for the + text writer(s) of the original recording, if for example the music in + the file should be a cover of a previously released song. The text + writers are seperated with the "/" character. + + TOR + The 'Original release year' frame is intended for the year when the + original recording, if for example the music in the file should be a + cover of a previously released song, was released. The field is + formatted as in the "TDY" frame. + + +4.2.2. User defined text information frame + + This frame is intended for one-string text information concerning the + audiofile in a similar way to the other "T"xx frames. The frame body + consists of a description of the string, represented as a terminated + string, followed by the actual string. There may be more than one + "TXX" frame in each tag, but only one with the same description. + + User defined... "TXX" + Frame size $xx xx xx + Text encoding $xx + Description $00 (00) + Value + + +4.3. URL link frames + + With these frames dynamic data such as webpages with touring + information, price information or plain ordinary news can be added to + the tag. There may only be one URL [URL] link frame of its kind in an + tag, except when stated otherwise in the frame description. If the + textstring is followed by a termination ($00 (00)) all the following + information should be ignored and not be displayed. All URL link + frames have the following format: + + URL link frame "W00" - "WZZ" , excluding "WXX" + (described in 4.3.2.) + Frame size $xx xx xx + URL + + +4.3.1. URL link frames - details + + WAF + The 'Official audio file webpage' frame is a URL pointing at a file + specific webpage. + + WAR + The 'Official artist/performer webpage' frame is a URL pointing at + the artists official webpage. There may be more than one "WAR" frame + in a tag if the audio contains more than one performer. + + WAS + The 'Official audio source webpage' frame is a URL pointing at the + official webpage for the source of the audio file, e.g. a movie. + + WCM + The 'Commercial information' frame is a URL pointing at a webpage + with information such as where the album can be bought. There may be + more than one "WCM" frame in a tag. + + WCP + The 'Copyright/Legal information' frame is a URL pointing at a + webpage where the terms of use and ownership of the file is described. + + WPB + The 'Publishers official webpage' frame is a URL pointing at the + official wepage for the publisher. + + +4.3.2. User defined URL link frame + + This frame is intended for URL [URL] links concerning the audiofile in + a similar way to the other "W"xx frames. The frame body consists of a + description of the string, represented as a terminated string, + followed by the actual URL. The URL is always encoded with ISO-8859-1 + [ISO-8859-1]. There may be more than one "WXX" frame in each tag, but + only one with the same description. + + User defined... "WXX" + Frame size $xx xx xx + Text encoding $xx + Description $00 (00) + URL + + +4.4. Involved people list + + Since there might be a lot of people contributing to an audio file in + various ways, such as musicians and technicians, the 'Text + information frames' are often insufficient to list everyone involved + in a project. The 'Involved people list' is a frame containing the + names of those involved, and how they were involved. The body simply + contains a terminated string with the involvement directly followed by + a terminated string with the involvee followed by a new involvement + and so on. There may only be one "IPL" frame in each tag. + + Involved people list "IPL" + Frame size $xx xx xx + Text encoding $xx + People list strings + + +4.5. Music CD Identifier + + This frame is intended for music that comes from a CD, so that the CD + can be identified in databases such as the CDDB [CDDB]. The frame + consists of a binary dump of the Table Of Contents, TOC, from the CD, + which is a header of 4 bytes and then 8 bytes/track on the CD making a + maximum of 804 bytes. This frame requires a present and valid "TRK" + frame. There may only be one "MCI" frame in each tag. + + Music CD identifier "MCI" + Frame size $xx xx xx + CD TOC + + +4.6. Event timing codes + + This frame allows synchronisation with key events in a song or sound. + The head is: + + Event timing codes "ETC" + Frame size $xx xx xx + Time stamp format $xx + + Where time stamp format is: + + $01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit + $02 Absolute time, 32 bit sized, using milliseconds as unit + + Abolute time means that every stamp contains the time from the + beginning of the file. + + Followed by a list of key events in the following format: + + Type of event $xx + Time stamp $xx (xx ...) + + The 'Time stamp' is set to zero if directly at the beginning of the + sound or after the previous event. All events should be sorted in + chronological order. The type of event is as follows: + + $00 padding (has no meaning) + $01 end of initial silence + $02 intro start + $03 mainpart start + $04 outro start + $05 outro end + $06 verse begins + $07 refrain begins + $08 interlude + $09 theme start + $0A variation + $0B key change + $0C time change + $0D unwanted noise (Snap, Crackle & Pop) + + $0E-$DF reserved for future use + + $E0-$EF not predefined sync 0-F + + $F0-$FC reserved for future use + + $FD audio end (start of silence) + $FE audio file ends + $FF one more byte of events follows (all the following bytes with + the value $FF have the same function) + + The 'Not predefined sync's ($E0-EF) are for user events. You might + want to synchronise your music to something, like setting of an + explosion on-stage, turning on your screensaver etc. + + There may only be one "ETC" frame in each tag. + + +4.7. MPEG location lookup table + + To increase performance and accuracy of jumps within a MPEG [MPEG] + audio file, frames with timecodes in different locations in the file + might be useful. The ID3 frame includes references that the software + can use to calculate positions in the file. After the frame header is + a descriptor of how much the 'frame counter' should increase for every + reference. If this value is two then the first reference points out + the second frame, the 2nd reference the 4th frame, the 3rd reference + the 6th frame etc. In a similar way the 'bytes between reference' and + 'milliseconds between reference' points out bytes and milliseconds + respectively. + + Each reference consists of two parts; a certain number of bits, as + defined in 'bits for bytes deviation', that describes the difference + between what is said in 'bytes between reference' and the reality and + a certain number of bits, as defined in 'bits for milliseconds + deviation', that describes the difference between what is said in + 'milliseconds between reference' and the reality. The number of bits + in every reference, i.e. 'bits for bytes deviation'+'bits for + milliseconds deviation', must be a multiple of four. There may only be + one "MLL" frame in each tag. + + Location lookup table "MLL" + ID3 frame size $xx xx xx + MPEG frames between reference $xx xx + Bytes between reference $xx xx xx + Milliseconds between reference $xx xx xx + Bits for bytes deviation $xx + Bits for milliseconds dev. $xx + + Then for every reference the following data is included; + + Deviation in bytes %xxx.... + Deviation in milliseconds %xxx.... + + +4.8. Synced tempo codes + + For a more accurate description of the tempo of a musical piece this + frame might be used. After the header follows one byte describing + which time stamp format should be used. Then follows one or more tempo + codes. Each tempo code consists of one tempo part and one time part. + The tempo is in BPM described with one or two bytes. If the first byte + has the value $FF, one more byte follows, which is added to the first + giving a range from 2 - 510 BPM, since $00 and $01 is reserved. $00 is + used to describe a beat-free time period, which is not the same as a + music-free time period. $01 is used to indicate one single beat-stroke + followed by a beat-free period. + + The tempo descriptor is followed by a time stamp. Every time the tempo + in the music changes, a tempo descriptor may indicate this for the + player. All tempo descriptors should be sorted in chronological order. + The first beat-stroke in a time-period is at the same time as the beat + description occurs. There may only be one "STC" frame in each tag. + + Synced tempo codes "STC" + Frame size $xx xx xx + Time stamp format $xx + Tempo data + + Where time stamp format is: + + $01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit + $02 Absolute time, 32 bit sized, using milliseconds as unit + + Abolute time means that every stamp contains the time from the + beginning of the file. + + +4.9. Unsychronised lyrics/text transcription + + This frame contains the lyrics of the song or a text transcription of + other vocal activities. The head includes an encoding descriptor and + a content descriptor. The body consists of the actual text. The + 'Content descriptor' is a terminated string. If no descriptor is + entered, 'Content descriptor' is $00 (00) only. Newline characters + are allowed in the text. Maximum length for the descriptor is 64 + bytes. There may be more than one lyrics/text frame in each tag, but + only one with the same language and content descriptor. + + Unsynced lyrics/text "ULT" + Frame size $xx xx xx + Text encoding $xx + Language $xx xx xx + Content descriptor $00 (00) + Lyrics/text + + +4.10. Synchronised lyrics/text + + This is another way of incorporating the words, said or sung lyrics, + in the audio file as text, this time, however, in sync with the audio. + It might also be used to describing events e.g. occurring on a stage + or on the screen in sync with the audio. The header includes a content + descriptor, represented with as terminated textstring. If no + descriptor is entered, 'Content descriptor' is $00 (00) only. + + Synced lyrics/text "SLT" + Frame size $xx xx xx + Text encoding $xx + Language $xx xx xx + Time stamp format $xx + Content type $xx + Content descriptor $00 (00) + + + Encoding: $00 ISO-8859-1 [ISO-8859-1] character set is used => $00 + is sync identifier. + $01 Unicode [UNICODE] character set is used => $00 00 is + sync identifier. + + Content type: $00 is other + $01 is lyrics + $02 is text transcription + $03 is movement/part name (e.g. "Adagio") + $04 is events (e.g. "Don Quijote enters the stage") + $05 is chord (e.g. "Bb F Fsus") + + Time stamp format is: + + $01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit + $02 Absolute time, 32 bit sized, using milliseconds as unit + + Abolute time means that every stamp contains the time from the + beginning of the file. + + The text that follows the frame header differs from that of the + unsynchronised lyrics/text transcription in one major way. Each + syllable (or whatever size of text is considered to be convenient by + the encoder) is a null terminated string followed by a time stamp + denoting where in the sound file it belongs. Each sync thus has the + following structure: + + Terminated text to be synced (typically a syllable) + Sync identifier (terminator to above string) $00 (00) + Time stamp $xx (xx ...) + + The 'time stamp' is set to zero or the whole sync is omitted if + located directly at the beginning of the sound. All time stamps should + be sorted in chronological order. The sync can be considered as a + validator of the subsequent string. + + Newline characters are allowed in all "SLT" frames and should be used + after every entry (name, event etc.) in a frame with the content type + $03 - $04. + + A few considerations regarding whitespace characters: Whitespace + separating words should mark the beginning of a new word, thus + occurring in front of the first syllable of a new word. This is also + valid for new line characters. A syllable followed by a comma should + not be broken apart with a sync (both the syllable and the comma + should be before the sync). + + An example: The "ULT" passage + + "Strangers in the night" $0A "Exchanging glances" + + would be "SLT" encoded as: + + "Strang" $00 xx xx "ers" $00 xx xx " in" $00 xx xx " the" $00 xx xx + " night" $00 xx xx 0A "Ex" $00 xx xx "chang" $00 xx xx "ing" $00 xx + xx "glan" $00 xx xx "ces" $00 xx xx + + There may be more than one "SLT" frame in each tag, but only one with + the same language and content descriptor. + + +4.11. Comments + + This frame replaces the old 30-character comment field in ID3v1. It + consists of a frame head followed by encoding, language and content + descriptors and is ended with the actual comment as a text string. + Newline characters are allowed in the comment text string. There may + be more than one comment frame in each tag, but only one with the same + language and content descriptor. + + Comment "COM" + Frame size $xx xx xx + Text encoding $xx + Language $xx xx xx + Short content description $00 (00) + The actual text + + +4.12. Relative volume adjustment + + This is a more subjective function than the previous ones. It allows + the user to say how much he wants to increase/decrease the volume on + each channel while the file is played. The purpose is to be able to + align all files to a reference volume, so that you don't have to + change the volume constantly. This frame may also be used to balance + adjust the audio. If the volume peak levels are known then this could + be described with the 'Peak volume right' and 'Peak volume left' + field. If Peakvolume is not known these fields could be left zeroed + or completely omitted. There may only be one "RVA" frame in each + tag. + + Relative volume adjustment "RVA" + Frame size $xx xx xx + Increment/decrement %000000xx + Bits used for volume descr. $xx + Relative volume change, right $xx xx (xx ...) + Relative volume change, left $xx xx (xx ...) + Peak volume right $xx xx (xx ...) + Peak volume left $xx xx (xx ...) + + In the increment/decrement field bit 0 is used to indicate the right + channel and bit 1 is used to indicate the left channel. 1 is + increment and 0 is decrement. + + The 'bits used for volume description' field is normally $10 (16 bits) + for MPEG 2 layer I, II and III [MPEG] and MPEG 2.5. This value may not + be $00. The volume is always represented with whole bytes, padded in + the beginning (highest bits) when 'bits used for volume description' + is not a multiple of eight. + + +4.13. Equalisation + + This is another subjective, alignment frame. It allows the user to + predefine an equalisation curve within the audio file. There may only + be one "EQU" frame in each tag. + + Equalisation "EQU" + Frame size $xx xx xx + Adjustment bits $xx + + The 'adjustment bits' field defines the number of bits used for + representation of the adjustment. This is normally $10 (16 bits) for + MPEG 2 layer I, II and III [MPEG] and MPEG 2.5. This value may not be + $00. + + This is followed by 2 bytes + ('adjustment bits' rounded up to the + nearest byte) for every equalisation band in the following format, + giving a frequency range of 0 - 32767Hz: + + Increment/decrement %x (MSB of the Frequency) + Frequency (lower 15 bits) + Adjustment $xx (xx ...) + + The increment/decrement bit is 1 for increment and 0 for decrement. + The equalisation bands should be ordered increasingly with reference + to frequency. All frequencies don't have to be declared. Adjustments + with the value $00 should be omitted. A frequency should only be + described once in the frame. + + +4.14. Reverb + + Yet another subjective one. You may here adjust echoes of different + kinds. Reverb left/right is the delay between every bounce in ms. + Reverb bounces left/right is the number of bounces that should be + made. $FF equals an infinite number of bounces. Feedback is the amount + of volume that should be returned to the next echo bounce. $00 is 0%, + $FF is 100%. If this value were $7F, there would be 50% volume + reduction on the first bounce, yet 50% on the second and so on. Left + to left means the sound from the left bounce to be played in the left + speaker, while left to right means sound from the left bounce to be + played in the right speaker. + + 'Premix left to right' is the amount of left sound to be mixed in the + right before any reverb is applied, where $00 id 0% and $FF is 100%. + 'Premix right to left' does the same thing, but right to left. Setting + both premix to $FF would result in a mono output (if the reverb is + applied symmetric). There may only be one "REV" frame in each tag. + + Reverb settings "REV" + Frame size $00 00 0C + Reverb left (ms) $xx xx + Reverb right (ms) $xx xx + Reverb bounces, left $xx + Reverb bounces, right $xx + Reverb feedback, left to left $xx + Reverb feedback, left to right $xx + Reverb feedback, right to right $xx + Reverb feedback, right to left $xx + Premix left to right $xx + Premix right to left $xx + + +4.15. Attached picture + + This frame contains a picture directly related to the audio file. + Image format is preferably "PNG" [PNG] or "JPG" [JFIF]. Description + is a short description of the picture, represented as a terminated + textstring. The description has a maximum length of 64 characters, + but may be empty. There may be several pictures attached to one file, + each in their individual "PIC" frame, but only one with the same + content descriptor. There may only be one picture with the picture + type declared as picture type $01 and $02 respectively. There is a + possibility to put only a link to the image file by using the 'image + format' "-->" and having a complete URL [URL] instead of picture data. + The use of linked files should however be used restrictively since + there is the risk of separation of files. + + Attached picture "PIC" + Frame size $xx xx xx + Text encoding $xx + Image format $xx xx xx + Picture type $xx + Description $00 (00) + Picture data + + + Picture type: $00 Other + $01 32x32 pixels 'file icon' (PNG only) + $02 Other file icon + $03 Cover (front) + $04 Cover (back) + $05 Leaflet page + $06 Media (e.g. lable side of CD) + $07 Lead artist/lead performer/soloist + $08 Artist/performer + $09 Conductor + $0A Band/Orchestra + $0B Composer + $0C Lyricist/text writer + $0D Recording Location + $0E During recording + $0F During performance + $10 Movie/video screen capture + $11 A bright coloured fish + $12 Illustration + $13 Band/artist logotype + $14 Publisher/Studio logotype + + +4.16. General encapsulated object + + In this frame any type of file can be encapsulated. After the header, + 'Frame size' and 'Encoding' follows 'MIME type' [MIME] and 'Filename' + for the encapsulated object, both represented as terminated strings + encoded with ISO 8859-1 [ISO-8859-1]. The filename is case sensitive. + Then follows a content description as terminated string, encoded as + 'Encoding'. The last thing in the frame is the actual object. The + first two strings may be omitted, leaving only their terminations. + MIME type is always an ISO-8859-1 text string. There may be more than + one "GEO" frame in each tag, but only one with the same content + descriptor. + + General encapsulated object "GEO" + Frame size $xx xx xx + Text encoding $xx + MIME type $00 + Filename $00 (00) + Content description $00 (00) + Encapsulated object + + +4.17. Play counter + + This is simply a counter of the number of times a file has been + played. The value is increased by one every time the file begins to + play. There may only be one "CNT" frame in each tag. When the counter + reaches all one's, one byte is inserted in front of the counter thus + making the counter eight bits bigger. The counter must be at least + 32-bits long to begin with. + + Play counter "CNT" + Frame size $xx xx xx + Counter $xx xx xx xx (xx ...) + + +4.18. Popularimeter + + The purpose of this frame is to specify how good an audio file is. + Many interesting applications could be found to this frame such as a + playlist that features better audiofiles more often than others or it + could be used to profile a persons taste and find other 'good' files + by comparing people's profiles. The frame is very simple. It contains + the email address to the user, one rating byte and a four byte play + counter, intended to be increased with one for every time the file is + played. The email is a terminated string. The rating is 1-255 where + 1 is worst and 255 is best. 0 is unknown. If no personal counter is + wanted it may be omitted. When the counter reaches all one's, one + byte is inserted in front of the counter thus making the counter + eight bits bigger in the same away as the play counter ("CNT"). + There may be more than one "POP" frame in each tag, but only one with + the same email address. + + Popularimeter "POP" + Frame size $xx xx xx + Email to user $00 + Rating $xx + Counter $xx xx xx xx (xx ...) + + +4.19. Recommended buffer size + + Sometimes the server from which a audio file is streamed is aware of + transmission or coding problems resulting in interruptions in the + audio stream. In these cases, the size of the buffer can be + recommended by the server using this frame. If the 'embedded info + flag' is true (1) then this indicates that an ID3 tag with the + maximum size described in 'Buffer size' may occur in the audiostream. + In such case the tag should reside between two MPEG [MPEG] frames, if + the audio is MPEG encoded. If the position of the next tag is known, + 'offset to next tag' may be used. The offset is calculated from the + end of tag in which this frame resides to the first byte of the header + in the next. This field may be omitted. Embedded tags is currently not + recommended since this could render unpredictable behaviour from + present software/hardware. The 'Buffer size' should be kept to a + minimum. There may only be one "BUF" frame in each tag. + + Recommended buffer size "BUF" + Frame size $xx xx xx + Buffer size $xx xx xx + Embedded info flag %0000000x + Offset to next tag $xx xx xx xx + + +4.20. Encrypted meta frame + + This frame contains one or more encrypted frames. This enables + protection of copyrighted information such as pictures and text, that + people might want to pay extra for. Since standardisation of such an + encryption scheme is beyond this document, all "CRM" frames begin with + a terminated string with a URL [URL] containing an email address, or a + link to a location where an email adress can be found, that belongs to + the organisation responsible for this specific encrypted meta frame. + + Questions regarding the encrypted frame should be sent to the + indicated email address. If a $00 is found directly after the 'Frame + size', the whole frame should be ignored, and preferably be removed. + The 'Owner identifier' is then followed by a short content description + and explanation as to why it's encrypted. After the + 'content/explanation' description, the actual encrypted block follows. + + When an ID3v2 decoder encounters a "CRM" frame, it should send the + datablock to the 'plugin' with the corresponding 'owner identifier' + and expect to receive either a datablock with one or several ID3v2 + frames after each other or an error. There may be more than one "CRM" + frames in a tag, but only one with the same 'owner identifier'. + + Encrypted meta frame "CRM" + Frame size $xx xx xx + Owner identifier $00 (00) + Content/explanation $00 (00) + Encrypted datablock + + +4.21. Audio encryption + + This frame indicates if the actual audio stream is encrypted, and by + whom. Since standardisation of such encrypion scheme is beyond this + document, all "CRA" frames begin with a terminated string with a + URL containing an email address, or a link to a location where an + email address can be found, that belongs to the organisation + responsible for this specific encrypted audio file. Questions + regarding the encrypted audio should be sent to the email address + specified. If a $00 is found directly after the 'Frame size' and the + audiofile indeed is encrypted, the whole file may be considered + useless. + + After the 'Owner identifier', a pointer to an unencrypted part of the + audio can be specified. The 'Preview start' and 'Preview length' is + described in frames. If no part is unencrypted, these fields should be + left zeroed. After the 'preview length' field follows optionally a + datablock required for decryption of the audio. There may be more than + one "CRA" frames in a tag, but only one with the same 'Owner + identifier'. + + Audio encryption "CRA" + Frame size $xx xx xx + Owner identifier $00 (00) + Preview start $xx xx + Preview length $xx xx + Encryption info + + +4.22. Linked information + + To keep space waste as low as possible this frame may be used to link + information from another ID3v2 tag that might reside in another audio + file or alone in a binary file. It is recommended that this method is + only used when the files are stored on a CD-ROM or other circumstances + when the risk of file seperation is low. The frame contains a frame + identifier, which is the frame that should be linked into this tag, a + URL [URL] field, where a reference to the file where the frame is + given, and additional ID data, if needed. Data should be retrieved + from the first tag found in the file to which this link points. There + may be more than one "LNK" frame in a tag, but only one with the same + contents. A linked frame is to be considered as part of the tag and + has the same restrictions as if it was a physical part of the tag + (i.e. only one "REV" frame allowed, whether it's linked or not). + + Linked information "LNK" + Frame size $xx xx xx + Frame identifier $xx xx xx + URL $00 (00) + Additional ID data + + Frames that may be linked and need no additional data are "IPL", + "MCI", "ETC", "LLT", "STC", "RVA", "EQU", "REV", "BUF", the text + information frames and the URL link frames. + + The "TXX", "PIC", "GEO", "CRM" and "CRA" frames may be linked with the + content descriptor as additional ID data. + + The "COM", "SLT" and "ULT" frames may be linked with three bytes of + language descriptor directly followed by a content descriptor as + additional ID data. + + +5. The 'unsynchronisation scheme' + + The only purpose of the 'unsychronisation scheme' is to make the ID3v2 + tag as compatible as possible with existing software. There is no use + in 'unsynchronising' tags if the file is only to be processed by new + software. Unsynchronisation may only be made with MPEG 2 layer I, II + and III and MPEG 2.5 files. + + Whenever a false synchronisation is found within the tag, one zeroed + byte is inserted after the first false synchronisation byte. The + format of a correct sync that should be altered by ID3 encoders is as + follows: + + %11111111 111xxxxx + + And should be replaced with: + + %11111111 00000000 111xxxxx + + This has the side effect that all $FF 00 combinations have to be + altered, so they won't be affected by the decoding process. Therefore + all the $FF 00 combinations have to be replaced with the $FF 00 00 + combination during the unsynchonisation. + + To indicate usage of the unsynchronisation, the first bit in 'ID3 + flags' should be set. This bit should only be set if the tag + contained a, now corrected, false synchronisation. The bit should + only be clear if the tag does not contain any false synchronisations. + + Do bear in mind, that if a compression scheme is used by the encoder, + the unsyncronisation scheme should be applied *afterwards*. When + decoding a compressed, 'unsyncronised' file, the 'unsyncronisation + scheme' should be parsed first, compression afterwards. + + +6. Copyright + + Copyright (C) Martin Nilsson 1998. All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that a reference to this document is included on all + such copies and derivative works. However, this document itself may + not be modified in any way and reissued as the original document. + + The limited permissions granted above are perpetual and will not be + revoked. + + This document and the information contained herein is provided on an + "AS IS" basis and THE AUTHORS DISCLAIMS ALL WARRANTIES, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE + INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED + WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + + +7. References + + [CDDB] Compact Disc Data Base + + + + [ISO-639-2] ISO/FDIS 639-2. + Codes for the representation of names of languages, Part 2: Alpha-3 + code. Technical committee / subcommittee: TC 37 / SC 2 + + [ISO-8859-1] ISO/IEC DIS 8859-1. + 8-bit single-byte coded graphic character sets, Part 1: Latin + alphabet No. 1. Technical committee / subcommittee: JTC 1 / SC 2 + + [ISRC] ISO 3901:1986 + International Standard Recording Code (ISRC). + Technical committee / subcommittee: TC 46 / SC 9 + + [JFIF] JPEG File Interchange Format, version 1.02 + + + + [MIME] Freed, N. and N. Borenstein, "Multipurpose Internet Mail + Extensions (MIME) Part One: Format of Internet Message Bodies", + RFC 2045, November 1996. + + + + [MPEG] ISO/IEC 11172-3:1993. + Coding of moving pictures and associated audio for digital storage + media at up to about 1,5 Mbit/s, Part 3: Audio. + Technical committee / subcommittee: JTC 1 / SC 29 + and + ISO/IEC 13818-3:1995 + Generic coding of moving pictures and associated audio information, + Part 3: Audio. + Technical committee / subcommittee: JTC 1 / SC 29 + and + ISO/IEC DIS 13818-3 + Generic coding of moving pictures and associated audio information, + Part 3: Audio (Revision of ISO/IEC 13818-3:1995) + + + [PNG] Portable Network Graphics, version 1.0 + + + + [UNICODE] ISO/IEC 10646-1:1993. + Universal Multiple-Octet Coded Character Set (UCS), Part 1: + Architecture and Basic Multilingual Plane. Technical committee + / subcommittee: JTC 1 / SC 2 + + + + [URL] T. Berners-Lee, L. Masinter & M. McCahill, "Uniform Resource + Locators (URL).", RFC 1738, December 1994. + + + + +8. Appendix + + +A. Appendix A - ID3-Tag Specification V1.1 + + ID3-Tag Specification V1.1 (12 dec 1997) by Michael Mutschler + , edited for space and clarity + reasons. + + +A.1. Overview + + The ID3-Tag is an information field for MPEG Layer 3 audio files. + Since a standalone MP3 doesn't provide a method of storing other + information than those directly needed for replay reasons, the + ID3-tag was invented by Eric Kemp in 1996. + + A revision from ID3v1 to ID3v1.1 was made by Michael Mutschler to + support track number information is described in A.4. + + +A.2. ID3v1 Implementation + + The Information is stored in the last 128 bytes of an MP3. The Tag + has got the following fields, and the offsets given here, are from + 0-127. + + Field Length Offsets + Tag 3 0-2 + Songname 30 3-32 + Artist 30 33-62 + Album 30 63-92 + Year 4 93-96 + Comment 30 97-126 + Genre 1 127 + + + The string-fields contain ASCII-data, coded in ISO-Latin 1 codepage. + Strings which are smaller than the field length are padded with zero- + bytes. + + Tag: The tag is valid if this field contains the string "TAG". This + has to be uppercase! + + Songname: This field contains the title of the MP3 (string as + above). + + Artist: This field contains the artist of the MP3 (string as above). + + Album: this field contains the album where the MP3 comes from + (string as above). + + Year: this field contains the year when this song has originally + been released (string as above). + + Comment: this field contains a comment for the MP3 (string as + above). Revision to this field has been made in ID3v1.1. See + A.4. + + Genre: this byte contains the offset of a genre in a predefined + list the byte is treated as an unsigned byte. The offset is + starting from 0. See A.3. + + +A.3. Genre List + + The following genres is defined in ID3v1 + + 0.Blues + 1.Classic Rock + 2.Country + 3.Dance + 4.Disco + 5.Funk + 6.Grunge + 7.Hip-Hop + 8.Jazz + 9.Metal + 10.New Age + 11.Oldies + 12.Other + 13.Pop + 14.R&B + 15.Rap + 16.Reggae + 17.Rock + 18.Techno + 19.Industrial + 20.Alternative + 21.Ska + 22.Death Metal + 23.Pranks + 24.Soundtrack + 25.Euro-Techno + 26.Ambient + 27.Trip-Hop + 28.Vocal + 29.Jazz+Funk + 30.Fusion + 31.Trance + 32.Classical + 33.Instrumental + 34.Acid + 35.House + 36.Game + 37.Sound Clip + 38.Gospel + 39.Noise + 40.AlternRock + 41.Bass + 42.Soul + 43.Punk + 44.Space + 45.Meditative + 46.Instrumental Pop + 47.Instrumental Rock + 48.Ethnic + 49.Gothic + 50.Darkwave + 51.Techno-Industrial + 52.Electronic + 53.Pop-Folk + 54.Eurodance + 55.Dream + 56.Southern Rock + 57.Comedy + 58.Cult + 59.Gangsta + 60.Top 40 + 61.Christian Rap + 62.Pop/Funk + 63.Jungle + 64.Native American + 65.Cabaret + 66.New Wave + 67.Psychadelic + 68.Rave + 69.Showtunes + 70.Trailer + 71.Lo-Fi + 72.Tribal + 73.Acid Punk + 74.Acid Jazz + 75.Polka + 76.Retro + 77.Musical + 78.Rock & Roll + 79.Hard Rock + + The following genres are Winamp extensions + + 80.Folk + 81.Folk-Rock + 82.National Folk + 83.Swing + 84.Fast Fusion + 85.Bebob + 86.Latin + 87.Revival + 88.Celtic + 89.Bluegrass + 90.Avantgarde + 91.Gothic Rock + 92.Progressive Rock + 93.Psychedelic Rock + 94.Symphonic Rock + 95.Slow Rock + 96.Big Band + 97.Chorus + 98.Easy Listening + 99.Acoustic + 100.Humour + 101.Speech + 102.Chanson + 103.Opera + 104.Chamber Music + 105.Sonata + 106.Symphony + 107.Booty Bass + 108.Primus + 109.Porn Groove + 110.Satire + 111.Slow Jam + 112.Club + 113.Tango + 114.Samba + 115.Folklore + 116.Ballad + 117.Power Ballad + 118.Rhythmic Soul + 119.Freestyle + 120.Duet + 121.Punk Rock + 122.Drum Solo + 123.A capella + 124.Euro-House + 125.Dance Hall + + +A.4. Track addition - ID3v1.1 + + In ID3v1.1, Michael Mutschler revised the specification of the + comment field in order to implement the track number. The new format + of the comment field is a 28 character string followed by a mandatory + null ($00) character and the original album tracknumber stored as an + unsigned byte-size integer. In such cases where the 29th byte is not + the null character or when the 30th is a null character, the + tracknumber is to be considered undefined. + + +9. Author's Address + + Martin Nilsson + Rydsvägen 246 C. 30 + S-584 34 Linköping + Sweden + + Email: nilsson@id3.org + + Co-authors: + + Johan Sundström Email: johan@id3.org + + diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Resources/id3v2.3.0.txt b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Resources/id3v2.3.0.txt new file mode 100644 index 0000000..b4ed763 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Resources/id3v2.3.0.txt @@ -0,0 +1,2022 @@ +Informal standard M. Nilsson +Document: id3v2.3.0.txt 3rd February 1999 + + + ID3 tag version 2.3.0 + +Status of this document + + This document is an informal standard and replaces the ID3v2.2.0 + standard [ID3v2]. The informal standard is released so that + implementors could have a set standard before a formal standard is + set. The formal standard will use another version or revision number + if not identical to what is described in this document. The contents + in this document may change for clarifications but never for added or + altered functionallity. + + Distribution of this document is unlimited. + + +Abstract + + This document describes the ID3v2.3.0, which is a more developed + version of the ID3v2 informal standard [ID3v2] (version 2.2.0), + evolved from the ID3 tagging system. The ID3v2 offers a flexible way + of storing information about an audio file within itself to determine + its origin and contents. The information may be technical + information, such as equalisation curves, as well as related meta + information, such as title, performer, copyright etc. + + +1. Table of contents + + 2. Conventions in this document + 3. ID3v2 overview + 3.1. ID3v2 header + 3.2. ID3v2 extended header + 3.3. ID3v2 frames overview + 3.3.1. Frame header flags + 3.3.2. Default flags + 4. Declared ID3v2 frames + 4.1. Unique file identifier + 4.2. Text information frames + 4.2.1. Text information frames - details + 4.2.2. User defined text information frame + 4.3. URL link frames + 4.3.1. URL link frames - details + 4.3.2. User defined URL link frame + 4.4. Involved people list + 4.5. Music CD Identifier + 4.6. Event timing codes + 4.7. MPEG location lookup table + 4.8. Synced tempo codes + 4.9. Unsychronised lyrics/text transcription + 4.10. Synchronised lyrics/text + 4.11. Comments + 4.12. Relative volume adjustment + 4.13. Equalisation + 4.14. Reverb + 4.15. Attached picture + 4.16. General encapsulated object + 4.17. Play counter + 4.18. Popularimeter + 4.19. Recommended buffer size + 4.20. Audio encryption + 4.21. Linked information + 4.22. Position synchronisation frame + 4.23. Terms of use + 4.24. Ownership frame + 4.25. Commercial frame + 4.26. Encryption method registration + 4.27. Group identification registration + 4.28. Private frame + 5. The 'unsynchronisation scheme' + 6. Copyright + 7. References + 8. Appendix + A. Appendix A - Genre List from ID3v1 + 9. Author's Address + + +2. Conventions in this document + + In the examples, text within "" is a text string exactly as it + appears in a file. Numbers preceded with $ are hexadecimal and + numbers preceded with % are binary. $xx is used to indicate a byte + with unknown content. %x is used to indicate a bit with unknown + content. The most significant bit (MSB) of a byte is called 'bit 7' + and the least significant bit (LSB) is called 'bit 0'. + + A tag is the whole tag described in this document. A frame is a block + of information in the tag. The tag consists of a header, frames and + optional padding. A field is a piece of information; one value, a + string etc. A numeric string is a string that consists of the + characters 0-9 only. + + +3. ID3v2 overview + + The two biggest design goals were to be able to implement ID3v2 + without disturbing old software too much and that ID3v2 should be + as flexible and expandable as possible. + + The first criterion is met by the simple fact that the MPEG [MPEG] + decoding software uses a syncsignal, embedded in the audiostream, to + 'lock on to' the audio. Since the ID3v2 tag doesn't contain a valid + syncsignal, no software will attempt to play the tag. If, for any + reason, coincidence make a syncsignal appear within the tag it will + be taken care of by the 'unsynchronisation scheme' described in + section 5. + + The second criterion has made a more noticeable impact on the design + of the ID3v2 tag. It is constructed as a container for several + information blocks, called frames, whose format need not be known to + the software that encounters them. At the start of every frame there + is an identifier that explains the frames' format and content, and a + size descriptor that allows software to skip unknown frames. + + If a total revision of the ID3v2 tag should be needed, there is a + version number and a size descriptor in the ID3v2 header. + + The ID3 tag described in this document is mainly targeted at files + encoded with MPEG-1/2 layer I, MPEG-1/2 layer II, MPEG-1/2 layer III + and MPEG-2.5, but may work with other types of encoded audio. + + The bitorder in ID3v2 is most significant bit first (MSB). The + byteorder in multibyte numbers is most significant byte first (e.g. + $12345678 would be encoded $12 34 56 78). + + It is permitted to include padding after all the final frame (at the + end of the ID3 tag), making the size of all the frames together + smaller than the size given in the head of the tag. A possible + purpose of this padding is to allow for adding a few additional + frames or enlarge existing frames within the tag without having to + rewrite the entire file. The value of the padding bytes must be $00. + + +3.1. ID3v2 header + + The ID3v2 tag header, which should be the first information in the + file, is 10 bytes as follows: + + ID3v2/file identifier "ID3" + ID3v2 version $03 00 + ID3v2 flags %abc00000 + ID3v2 size 4 * %0xxxxxxx + + The first three bytes of the tag are always "ID3" to indicate that + this is an ID3v2 tag, directly followed by the two version bytes. The + first byte of ID3v2 version is it's major version, while the second + byte is its revision number. In this case this is ID3v2.3.0. All + revisions are backwards compatible while major versions are not. If + software with ID3v2.2.0 and below support should encounter version + three or higher it should simply ignore the whole tag. Version and + revision will never be $FF. + + The version is followed by one the ID3v2 flags field, of which + currently only three flags are used. + + + a - Unsynchronisation + + Bit 7 in the 'ID3v2 flags' indicates whether or not + unsynchronisation is used (see section 5 for details); a set bit + indicates usage. + + + b - Extended header + + The second bit (bit 6) indicates whether or not the header is + followed by an extended header. The extended header is described in + section 3.2. + + + c - Experimental indicator + + The third bit (bit 5) should be used as an 'experimental + indicator'. This flag should always be set when the tag is in an + experimental stage. + + All the other flags should be cleared. If one of these undefined + flags are set that might mean that the tag is not readable for a + parser that does not know the flags function. + + The ID3v2 tag size is encoded with four bytes where the most + significant bit (bit 7) is set to zero in every byte, making a total + of 28 bits. The zeroed bits are ignored, so a 257 bytes long tag is + represented as $00 00 02 01. + + The ID3v2 tag size is the size of the complete tag after + unsychronisation, including padding, excluding the header but not + excluding the extended header (total tag size - 10). Only 28 bits + (representing up to 256MB) are used in the size description to avoid + the introducuction of 'false syncsignals'. + + An ID3v2 tag can be detected with the following pattern: + $49 44 33 yy yy xx zz zz zz zz + Where yy is less than $FF, xx is the 'flags' byte and zz is less than + $80. + + +3.2. ID3v2 extended header + + The extended header contains information that is not vital to the + correct parsing of the tag information, hence the extended header is + optional. + + Extended header size $xx xx xx xx + Extended Flags $xx xx + Size of padding $xx xx xx xx + + Where the 'Extended header size', currently 6 or 10 bytes, excludes + itself. The 'Size of padding' is simply the total tag size excluding + the frames and the headers, in other words the padding. The extended + header is considered separate from the header proper, and as such is + subject to unsynchronisation. + + The extended flags are a secondary flag set which describes further + attributes of the tag. These attributes are currently defined as + follows + + %x0000000 00000000 + + + x - CRC data present + + If this flag is set four bytes of CRC-32 data is appended to the + extended header. The CRC should be calculated before + unsynchronisation on the data between the extended header and the + padding, i.e. the frames and only the frames. + + Total frame CRC $xx xx xx xx + + +3.3. ID3v2 frame overview + + As the tag consists of a tag header and a tag body with one or more + frames, all the frames consists of a frame header followed by one or + more fields containing the actual information. The layout of the + frame header: + + Frame ID $xx xx xx xx (four characters) + Size $xx xx xx xx + Flags $xx xx + + The frame ID made out of the characters capital A-Z and 0-9. + Identifiers beginning with "X", "Y" and "Z" are for experimental use + and free for everyone to use, without the need to set the + experimental bit in the tag header. Have in mind that someone else + might have used the same identifier as you. All other identifiers are + either used or reserved for future use. + + The frame ID is followed by a size descriptor, making a total header + size of ten bytes in every frame. The size is calculated as frame + size excluding frame header (frame size - 10). + + In the frame header the size descriptor is followed by two flags + bytes. These flags are described in section 3.3.1. + + There is no fixed order of the frames' appearance in the tag, + although it is desired that the frames are arranged in order of + significance concerning the recognition of the file. An example of + such order: UFID, TIT2, MCDI, TRCK ... + + A tag must contain at least one frame. A frame must be at least 1 + byte big, excluding the header. + + If nothing else is said a string is represented as ISO-8859-1 + [ISO-8859-1] characters in the range $20 - $FF. Such strings are + represented as , or if newlines are + allowed, in the frame descriptions. All Unicode strings [UNICODE] use + 16-bit unicode 2.0 (ISO/IEC 10646-1:1993, UCS-2). Unicode strings + must begin with the Unicode BOM ($FF FE or $FE FF) to identify the + byte order. + + All numeric strings and URLs [URL] are always encoded as ISO-8859-1. + Terminated strings are terminated with $00 if encoded with ISO-8859-1 + and $00 00 if encoded as unicode. If nothing else is said newline + character is forbidden. In ISO-8859-1 a new line is represented, when + allowed, with $0A only. Frames that allow different types of text + encoding have a text encoding description byte directly after the + frame size. If ISO-8859-1 is used this byte should be $00, if Unicode + is used it should be $01. Strings dependent on encoding is + represented as , or if newlines are allowed. Any empty + Unicode strings which are NULL-terminated may have the Unicode BOM + followed by a Unicode NULL ($FF FE 00 00 or $FE FF 00 00). + + The three byte language field is used to describe the language of the + frame's content, according to ISO-639-2 [ISO-639-2]. + + All URLs [URL] may be relative, e.g. "picture.png", "../doc.txt". + + If a frame is longer than it should be, e.g. having more fields than + specified in this document, that indicates that additions to the + frame have been made in a later version of the ID3v2 standard. This + is reflected by the revision number in the header of the tag. + + +3.3.1. Frame header flags + + In the frame header the size descriptor is followed by two flags + bytes. All unused flags must be cleared. The first byte is for + 'status messages' and the second byte is for encoding purposes. If an + unknown flag is set in the first byte the frame may not be changed + without the bit cleared. If an unknown flag is set in the second byte + it is likely to not be readable. The flags field is defined as + follows. + + %abc00000 %ijk00000 + + + a - Tag alter preservation + + This flag tells the software what to do with this frame if it is + unknown and the tag is altered in any way. This applies to all + kinds of alterations, including adding more padding and reordering + the frames. + + 0 Frame should be preserved. + 1 Frame should be discarded. + + + b - File alter preservation + + This flag tells the software what to do with this frame if it is + unknown and the file, excluding the tag, is altered. This does not + apply when the audio is completely replaced with other audio data. + + 0 Frame should be preserved. + 1 Frame should be discarded. + + + c - Read only + + This flag, if set, tells the software that the contents of this + frame is intended to be read only. Changing the contents might + break something, e.g. a signature. If the contents are changed, + without knowledge in why the frame was flagged read only and + without taking the proper means to compensate, e.g. recalculating + the signature, the bit should be cleared. + + + i - Compression + + This flag indicates whether or not the frame is compressed. + + 0 Frame is not compressed. + 1 Frame is compressed using zlib [zlib] with 4 bytes for + 'decompressed size' appended to the frame header. + + + j - Encryption + + This flag indicates wether or not the frame is enrypted. If set + one byte indicating with which method it was encrypted will be + appended to the frame header. See section 4.26. for more + information about encryption method registration. + + 0 Frame is not encrypted. + 1 Frame is encrypted. + + + k - Grouping identity + + This flag indicates whether or not this frame belongs in a group + with other frames. If set a group identifier byte is added to the + frame header. Every frame with the same group identifier belongs + to the same group. + + 0 Frame does not contain group information + 1 Frame contains group information + + + Some flags indicates that the frame header is extended with + additional information. This information will be added to the frame + header in the same order as the flags indicating the additions. I.e. + the four bytes of decompressed size will preceed the encryption + method byte. These additions to the frame header, while not included + in the frame header size but are included in the 'frame size' field, + are not subject to encryption or compression. + + +3.3.2. Default flags + + The default settings for the frames described in this document can be + divided into the following classes. The flags may be set differently + if found more suitable by the software. + + 1. Discarded if tag is altered, discarded if file is altered. + + None. + + 2. Discarded if tag is altered, preserved if file is altered. + + None. + + 3. Preserved if tag is altered, discarded if file is altered. + + AENC, ETCO, EQUA, MLLT, POSS, SYLT, SYTC, RVAD, TENC, TLEN, TSIZ + + 4. Preserved if tag is altered, preserved if file is altered. + + The rest of the frames. + + +4. Declared ID3v2 frames + + The following frames are declared in this draft. + + 4.21 AENC Audio encryption + 4.15 APIC Attached picture + + 4.11 COMM Comments + 4.25 COMR Commercial frame + + 4.26 ENCR Encryption method registration + 4.13 EQUA Equalization + 4.6 ETCO Event timing codes + + 4.16 GEOB General encapsulated object + 4.27 GRID Group identification registration + + 4.4 IPLS Involved people list + + 4.21 LINK Linked information + + 4.5 MCDI Music CD identifier + 4.7 MLLT MPEG location lookup table + + 4.24 OWNE Ownership frame + + 4.28. PRIV Private frame + 4.17 PCNT Play counter + 4.18 POPM Popularimeter + 4.22 POSS Position synchronisation frame + + 4.19 RBUF Recommended buffer size + 4.12 RVAD Relative volume adjustment + 4.14 RVRB Reverb + + 4.10 SYLT Synchronized lyric/text + 4.8 SYTC Synchronized tempo codes + + 4.2.1 TALB Album/Movie/Show title + 4.2.1 TBPM BPM (beats per minute) + 4.2.1 TCOM Composer + 4.2.1 TCON Content type + 4.2.1 TCOP Copyright message + 4.2.1 TDAT Date + 4.2.1 TDLY Playlist delay + 4.2.1 TENC Encoded by + 4.2.1 TEXT Lyricist/Text writer + 4.2.1 TFLT File type + 4.2.1 TIME Time + 4.2.1 TIT1 Content group description + 4.2.1 TIT2 Title/songname/content description + 4.2.1 TIT3 Subtitle/Description refinement + 4.2.1 TKEY Initial key + 4.2.1 TLAN Language(s) + 4.2.1 TLEN Length + 4.2.1 TMED Media type + 4.2.1 TOAL Original album/movie/show title + 4.2.1 TOFN Original filename + 4.2.1 TOLY Original lyricist(s)/text writer(s) + 4.2.1 TOPE Original artist(s)/performer(s) + 4.2.1 TORY Original release year + 4.2.1 TOWN File owner/licensee + 4.2.1 TPE1 Lead performer(s)/Soloist(s) + 4.2.1 TPE2 Band/orchestra/accompaniment + 4.2.1 TPE3 Conductor/performer refinement + 4.2.1 TPE4 Interpreted, remixed, or otherwise modified by + 4.2.1 TPOS Part of a set + 4.2.1 TPUB Publisher + 4.2.1 TRCK Track number/Position in set + 4.2.1 TRDA Recording dates + 4.2.1 TRSN Internet radio station name + 4.2.1 TRSO Internet radio station owner + 4.2.1 TSIZ Size + 4.2.1 TSRC ISRC (international standard recording code) + 4.2.1 TSSE Software/Hardware and settings used for encoding + 4.2.1 TYER Year + 4.2.2 TXXX User defined text information frame + + 4.1 UFID Unique file identifier + 4.23 USER Terms of use + 4.9 USLT Unsychronized lyric/text transcription + + 4.3.1 WCOM Commercial information + 4.3.1 WCOP Copyright/Legal information + 4.3.1 WOAF Official audio file webpage + 4.3.1 WOAR Official artist/performer webpage + 4.3.1 WOAS Official audio source webpage + 4.3.1 WORS Official internet radio station homepage + 4.3.1 WPAY Payment + 4.3.1 WPUB Publishers official webpage + 4.3.2 WXXX User defined URL link frame + + +4.1. Unique file identifier + + This frame's purpose is to be able to identify the audio file in a + database that may contain more information relevant to the content. + Since standardisation of such a database is beyond this document, all + frames begin with a null-terminated string with a URL [URL] + containing an email address, or a link to a location where an email + address can be found, that belongs to the organisation responsible + for this specific database implementation. Questions regarding the + database should be sent to the indicated email address. The URL + should not be used for the actual database queries. The string + "http://www.id3.org/dummy/ufid.html" should be used for tests. + Software that isn't told otherwise may safely remove such frames. The + 'Owner identifier' must be non-empty (more than just a termination). + The 'Owner identifier' is then followed by the actual identifier, + which may be up to 64 bytes. There may be more than one "UFID" frame + in a tag, but only one with the same 'Owner identifier'. + +
      + Owner identifier $00 + Identifier + + +4.2. Text information frames + + The text information frames are the most important frames, containing + information like artist, album and more. There may only be one text + information frame of its kind in an tag. If the textstring is + followed by a termination ($00 (00)) all the following information + should be ignored and not be displayed. All text frame identifiers + begin with "T". Only text frame identifiers begin with "T", with the + exception of the "TXXX" frame. All the text information frames have + the following format: + +
      + Text encoding $xx + Information + + +4.2.1. Text information frames - details + + TALB + The 'Album/Movie/Show title' frame is intended for the title of the + recording(/source of sound) which the audio in the file is taken + from. + + TBPM + The 'BPM' frame contains the number of beats per minute in the + mainpart of the audio. The BPM is an integer and represented as a + numerical string. + + TCOM + The 'Composer(s)' frame is intended for the name of the composer(s). + They are seperated with the "/" character. + + TCON + The 'Content type', which previously was stored as a one byte numeric + value only, is now a numeric string. You may use one or several of + the types as ID3v1.1 did or, since the category list would be + impossible to maintain with accurate and up to date categories, + define your own. + + References to the ID3v1 genres can be made by, as first byte, enter + "(" followed by a number from the genres list (appendix A.) and + ended with a ")" character. This is optionally followed by a + refinement, e.g. "(21)" or "(4)Eurodisco". Several references can be + made in the same frame, e.g. "(51)(39)". If the refinement should + begin with a "(" character it should be replaced with "((", e.g. "((I + can figure out any genre)" or "(55)((I think...)". The following new + content types is defined in ID3v2 and is implemented in the same way + as the numerig content types, e.g. "(RX)". + + RX Remix + CR Cover + + TCOP + The 'Copyright message' frame, which must begin with a year and a + space character (making five characters), is intended for the + copyright holder of the original sound, not the audio file itself. + The absence of this frame means only that the copyright information + is unavailable or has been removed, and must not be interpreted to + mean that the sound is public domain. Every time this field is + displayed the field must be preceded with "Copyright " (C) " ", where + (C) is one character showing a C in a circle. + + TDAT + The 'Date' frame is a numeric string in the DDMM format containing + the date for the recording. This field is always four characters + long. + + TDLY + The 'Playlist delay' defines the numbers of milliseconds of silence + between every song in a playlist. The player should use the "ETC" + frame, if present, to skip initial silence and silence at the end of + the audio to match the 'Playlist delay' time. The time is represented + as a numeric string. + + TENC + The 'Encoded by' frame contains the name of the person or + organisation that encoded the audio file. This field may contain a + copyright message, if the audio file also is copyrighted by the + encoder. + + TEXT + The 'Lyricist(s)/Text writer(s)' frame is intended for the writer(s) + of the text or lyrics in the recording. They are seperated with the + "/" character. + + TFLT + The 'File type' frame indicates which type of audio this tag defines. + The following type and refinements are defined: + + MPG MPEG Audio + /1 MPEG 1/2 layer I + /2 MPEG 1/2 layer II + /3 MPEG 1/2 layer III + /2.5 MPEG 2.5 + /AAC Advanced audio compression + VQF Transform-domain Weighted Interleave Vector Quantization + PCM Pulse Code Modulated audio + + but other types may be used, not for these types though. This is used + in a similar way to the predefined types in the "TMED" frame, but + without parentheses. If this frame is not present audio type is + assumed to be "MPG". + + TIME + The 'Time' frame is a numeric string in the HHMM format containing + the time for the recording. This field is always four characters + long. + + TIT1 + The 'Content group description' frame is used if the sound belongs to + a larger category of sounds/music. For example, classical music is + often sorted in different musical sections (e.g. "Piano Concerto", + "Weather - Hurricane"). + + TIT2 + The 'Title/Songname/Content description' frame is the actual name of + the piece (e.g. "Adagio", "Hurricane Donna"). + + TIT3 + The 'Subtitle/Description refinement' frame is used for information + directly related to the contents title (e.g. "Op. 16" or "Performed + live at Wembley"). + + TKEY + The 'Initial key' frame contains the musical key in which the sound + starts. It is represented as a string with a maximum length of three + characters. The ground keys are represented with "A","B","C","D","E", + "F" and "G" and halfkeys represented with "b" and "#". Minor is + represented as "m". Example "Cbm". Off key is represented with an "o" + only. + + TLAN + The 'Language(s)' frame should contain the languages of the text or + lyrics spoken or sung in the audio. The language is represented with + three characters according to ISO-639-2. If more than one language is + used in the text their language codes should follow according to + their usage. + + TLEN + The 'Length' frame contains the length of the audiofile in + milliseconds, represented as a numeric string. + + TMED + The 'Media type' frame describes from which media the sound + originated. This may be a text string or a reference to the + predefined media types found in the list below. References are made + within "(" and ")" and are optionally followed by a text refinement, + e.g. "(MC) with four channels". If a text refinement should begin + with a "(" character it should be replaced with "((" in the same way + as in the "TCO" frame. Predefined refinements is appended after the + media type, e.g. "(CD/A)" or "(VID/PAL/VHS)". + + DIG Other digital media + /A Analog transfer from media + + ANA Other analog media + /WAC Wax cylinder + /8CA 8-track tape cassette + + CD CD + /A Analog transfer from media + /DD DDD + /AD ADD + /AA AAD + + LD Laserdisc + /A Analog transfer from media + + TT Turntable records + /33 33.33 rpm + /45 45 rpm + /71 71.29 rpm + /76 76.59 rpm + /78 78.26 rpm + /80 80 rpm + + MD MiniDisc + /A Analog transfer from media + + DAT DAT + /A Analog transfer from media + /1 standard, 48 kHz/16 bits, linear + /2 mode 2, 32 kHz/16 bits, linear + /3 mode 3, 32 kHz/12 bits, nonlinear, low speed + /4 mode 4, 32 kHz/12 bits, 4 channels + /5 mode 5, 44.1 kHz/16 bits, linear + /6 mode 6, 44.1 kHz/16 bits, 'wide track' play + + DCC DCC + /A Analog transfer from media + + DVD DVD + /A Analog transfer from media + + TV Television + /PAL PAL + /NTSC NTSC + /SECAM SECAM + + VID Video + /PAL PAL + /NTSC NTSC + /SECAM SECAM + /VHS VHS + /SVHS S-VHS + /BETA BETAMAX + + RAD Radio + /FM FM + /AM AM + /LW LW + /MW MW + + TEL Telephone + /I ISDN + + MC MC (normal cassette) + /4 4.75 cm/s (normal speed for a two sided cassette) + /9 9.5 cm/s + /I Type I cassette (ferric/normal) + /II Type II cassette (chrome) + /III Type III cassette (ferric chrome) + /IV Type IV cassette (metal) + + REE Reel + /9 9.5 cm/s + /19 19 cm/s + /38 38 cm/s + /76 76 cm/s + /I Type I cassette (ferric/normal) + /II Type II cassette (chrome) + /III Type III cassette (ferric chrome) + /IV Type IV cassette (metal) + + TOAL + The 'Original album/movie/show title' frame is intended for the title + of the original recording (or source of sound), if for example the + music in the file should be a cover of a previously released song. + + TOFN + The 'Original filename' frame contains the preferred filename for the + file, since some media doesn't allow the desired length of the + filename. The filename is case sensitive and includes its suffix. + + TOLY + The 'Original lyricist(s)/text writer(s)' frame is intended for the + text writer(s) of the original recording, if for example the music in + the file should be a cover of a previously released song. The text + writers are seperated with the "/" character. + + TOPE + The 'Original artist(s)/performer(s)' frame is intended for the + performer(s) of the original recording, if for example the music in + the file should be a cover of a previously released song. The + performers are seperated with the "/" character. + + TORY + The 'Original release year' frame is intended for the year when the + original recording, if for example the music in the file should be a + cover of a previously released song, was released. The field is + formatted as in the "TYER" frame. + + TOWN + The 'File owner/licensee' frame contains the name of the owner or + licensee of the file and it's contents. + + TPE1 + The 'Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group' is + used for the main artist(s). They are seperated with the "/" + character. + + TPE2 + The 'Band/Orchestra/Accompaniment' frame is used for additional + information about the performers in the recording. + + TPE3 + The 'Conductor' frame is used for the name of the conductor. + + TPE4 + The 'Interpreted, remixed, or otherwise modified by' frame contains + more information about the people behind a remix and similar + interpretations of another existing piece. + + TPOS + The 'Part of a set' frame is a numeric string that describes which + part of a set the audio came from. This frame is used if the source + described in the "TALB" frame is divided into several mediums, e.g. a + double CD. The value may be extended with a "/" character and a + numeric string containing the total number of parts in the set. E.g. + "1/2". + + TPUB + The 'Publisher' frame simply contains the name of the label or + publisher. + + TRCK + The 'Track number/Position in set' frame is a numeric string + containing the order number of the audio-file on its original + recording. This may be extended with a "/" character and a numeric + string containing the total numer of tracks/elements on the original + recording. E.g. "4/9". + + TRDA + The 'Recording dates' frame is a intended to be used as complement to + the "TYER", "TDAT" and "TIME" frames. E.g. "4th-7th June, 12th June" + in combination with the "TYER" frame. + + TRSN + The 'Internet radio station name' frame contains the name of the + internet radio station from which the audio is streamed. + + TRSO + The 'Internet radio station owner' frame contains the name of the + owner of the internet radio station from which the audio is + streamed. + + TSIZ + The 'Size' frame contains the size of the audiofile in bytes, + excluding the ID3v2 tag, represented as a numeric string. + + TSRC + The 'ISRC' frame should contain the International Standard Recording + Code [ISRC] (12 characters). + + TSSE + The 'Software/Hardware and settings used for encoding' frame + includes the used audio encoder and its settings when the file was + encoded. Hardware refers to hardware encoders, not the computer on + which a program was run. + + TYER + The 'Year' frame is a numeric string with a year of the recording. + This frames is always four characters long (until the year 10000). + + +4.2.2. User defined text information frame + + This frame is intended for one-string text information concerning the + audiofile in a similar way to the other "T"-frames. The frame body + consists of a description of the string, represented as a terminated + string, followed by the actual string. There may be more than one + "TXXX" frame in each tag, but only one with the same description. + +
      + Text encoding $xx + Description $00 (00) + Value + + +4.3. URL link frames + + With these frames dynamic data such as webpages with touring + information, price information or plain ordinary news can be added to + the tag. There may only be one URL [URL] link frame of its kind in an + tag, except when stated otherwise in the frame description. If the + textstring is followed by a termination ($00 (00)) all the following + information should be ignored and not be displayed. All URL link + frame identifiers begins with "W". Only URL link frame identifiers + begins with "W". All URL link frames have the following format: + +
      + URL + + +4.3.1. URL link frames - details + + WCOM + The 'Commercial information' frame is a URL pointing at a webpage + with information such as where the album can be bought. There may be + more than one "WCOM" frame in a tag, but not with the same content. + + WCOP + The 'Copyright/Legal information' frame is a URL pointing at a + webpage where the terms of use and ownership of the file is + described. + + WOAF + The 'Official audio file webpage' frame is a URL pointing at a file + specific webpage. + + WOAR + The 'Official artist/performer webpage' frame is a URL pointing at + the artists official webpage. There may be more than one "WOAR" frame + in a tag if the audio contains more than one performer, but not with + the same content. + + WOAS + The 'Official audio source webpage' frame is a URL pointing at the + official webpage for the source of the audio file, e.g. a movie. + + WORS + The 'Official internet radio station homepage' contains a URL + pointing at the homepage of the internet radio station. + + WPAY + The 'Payment' frame is a URL pointing at a webpage that will handle + the process of paying for this file. + + WPUB + The 'Publishers official webpage' frame is a URL pointing at the + official wepage for the publisher. + + +4.3.2. User defined URL link frame + + This frame is intended for URL [URL] links concerning the audiofile + in a similar way to the other "W"-frames. The frame body consists + of a description of the string, represented as a terminated string, + followed by the actual URL. The URL is always encoded with ISO-8859-1 + [ISO-8859-1]. There may be more than one "WXXX" frame in each tag, + but only one with the same description. + +
      + Text encoding $xx + Description $00 (00) + URL + + +4.4. Involved people list + + Since there might be a lot of people contributing to an audio file in + various ways, such as musicians and technicians, the 'Text + information frames' are often insufficient to list everyone involved + in a project. The 'Involved people list' is a frame containing the + names of those involved, and how they were involved. The body simply + contains a terminated string with the involvement directly followed + by a terminated string with the involvee followed by a new + involvement and so on. There may only be one "IPLS" frame in each + tag. + +
      + Text encoding $xx + People list strings + + +4.5. Music CD identifier + + This frame is intended for music that comes from a CD, so that the CD + can be identified in databases such as the CDDB [CDDB]. The frame + consists of a binary dump of the Table Of Contents, TOC, from the CD, + which is a header of 4 bytes and then 8 bytes/track on the CD plus 8 + bytes for the 'lead out' making a maximum of 804 bytes. The offset to + the beginning of every track on the CD should be described with a + four bytes absolute CD-frame address per track, and not with absolute + time. This frame requires a present and valid "TRCK" frame, even if + the CD's only got one track. There may only be one "MCDI" frame in + each tag. + +
      + CD TOC + + +4.6. Event timing codes + + This frame allows synchronisation with key events in a song or sound. + The header is: + +
      + Time stamp format $xx + + Where time stamp format is: + + $01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit + $02 Absolute time, 32 bit sized, using milliseconds as unit + + Abolute time means that every stamp contains the time from the + beginning of the file. + + Followed by a list of key events in the following format: + + Type of event $xx + Time stamp $xx (xx ...) + + The 'Time stamp' is set to zero if directly at the beginning of the + sound or after the previous event. All events should be sorted in + chronological order. The type of event is as follows: + + $00 padding (has no meaning) + $01 end of initial silence + $02 intro start + $03 mainpart start + $04 outro start + $05 outro end + $06 verse start + $07 refrain start + $08 interlude start + $09 theme start + $0A variation start + $0B key change + $0C time change + $0D momentary unwanted noise (Snap, Crackle & Pop) + $0E sustained noise + $0F sustained noise end + $10 intro end + $11 mainpart end + $12 verse end + $13 refrain end + $14 theme end + + $15-$DF reserved for future use + + $E0-$EF not predefined sync 0-F + + $F0-$FC reserved for future use + + $FD audio end (start of silence) + $FE audio file ends + $FF one more byte of events follows (all the following bytes with + the value $FF have the same function) + + Terminating the start events such as "intro start" is not required. + The 'Not predefined sync's ($E0-EF) are for user events. You might + want to synchronise your music to something, like setting of an + explosion on-stage, turning on your screensaver etc. + + There may only be one "ETCO" frame in each tag. + + +4.7. MPEG location lookup table + + To increase performance and accuracy of jumps within a MPEG [MPEG] + audio file, frames with timecodes in different locations in the file + might be useful. The ID3v2 frame includes references that the + software can use to calculate positions in the file. After the frame + header is a descriptor of how much the 'frame counter' should + increase for every reference. If this value is two then the first + reference points out the second frame, the 2nd reference the 4th + frame, the 3rd reference the 6th frame etc. In a similar way the + 'bytes between reference' and 'milliseconds between reference' points + out bytes and milliseconds respectively. + + Each reference consists of two parts; a certain number of bits, as + defined in 'bits for bytes deviation', that describes the difference + between what is said in 'bytes between reference' and the reality and + a certain number of bits, as defined in 'bits for milliseconds + deviation', that describes the difference between what is said in + 'milliseconds between reference' and the reality. The number of bits + in every reference, i.e. 'bits for bytes deviation'+'bits for + milliseconds deviation', must be a multiple of four. There may only + be one "MLLT" frame in each tag. + +
      + MPEG frames between reference $xx xx + Bytes between reference $xx xx xx + Milliseconds between reference $xx xx xx + Bits for bytes deviation $xx + Bits for milliseconds dev. $xx + + Then for every reference the following data is included; + + Deviation in bytes %xxx.... + Deviation in milliseconds %xxx.... + + +4.8. Synchronised tempo codes + + For a more accurate description of the tempo of a musical piece this + frame might be used. After the header follows one byte describing + which time stamp format should be used. Then follows one or more + tempo codes. Each tempo code consists of one tempo part and one time + part. The tempo is in BPM described with one or two bytes. If the + first byte has the value $FF, one more byte follows, which is added + to the first giving a range from 2 - 510 BPM, since $00 and $01 is + reserved. $00 is used to describe a beat-free time period, which is + not the same as a music-free time period. $01 is used to indicate one + single beat-stroke followed by a beat-free period. + + The tempo descriptor is followed by a time stamp. Every time the + tempo in the music changes, a tempo descriptor may indicate this for + the player. All tempo descriptors should be sorted in chronological + order. The first beat-stroke in a time-period is at the same time as + the beat description occurs. There may only be one "SYTC" frame in + each tag. + +
      + Time stamp format $xx + Tempo data + + Where time stamp format is: + + $01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit + $02 Absolute time, 32 bit sized, using milliseconds as unit + + Abolute time means that every stamp contains the time from the + beginning of the file. + + +4.9. Unsychronised lyrics/text transcription + + This frame contains the lyrics of the song or a text transcription of + other vocal activities. The head includes an encoding descriptor and + a content descriptor. The body consists of the actual text. The + 'Content descriptor' is a terminated string. If no descriptor is + entered, 'Content descriptor' is $00 (00) only. Newline characters + are allowed in the text. There may be more than one 'Unsynchronised + lyrics/text transcription' frame in each tag, but only one with the + same language and content descriptor. + +
      + Text encoding $xx + Language $xx xx xx + Content descriptor $00 (00) + Lyrics/text + + +4.10. Synchronised lyrics/text + + This is another way of incorporating the words, said or sung lyrics, + in the audio file as text, this time, however, in sync with the + audio. It might also be used to describing events e.g. occurring on a + stage or on the screen in sync with the audio. The header includes a + content descriptor, represented with as terminated textstring. If no + descriptor is entered, 'Content descriptor' is $00 (00) only. + +
      + Text encoding $xx + Language $xx xx xx + Time stamp format $xx + Content type $xx + Content descriptor $00 (00) + + + Encoding: $00 ISO-8859-1 [ISO-8859-1] character set is used => $00 + is sync identifier. + $01 Unicode [UNICODE] character set is used => $00 00 is + sync identifier. + + Content type: $00 is other + $01 is lyrics + $02 is text transcription + $03 is movement/part name (e.g. "Adagio") + $04 is events (e.g. "Don Quijote enters the stage") + $05 is chord (e.g. "Bb F Fsus") + $06 is trivia/'pop up' information + + Time stamp format is: + + $01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit + $02 Absolute time, 32 bit sized, using milliseconds as unit + + Abolute time means that every stamp contains the time from the + beginning of the file. + + The text that follows the frame header differs from that of the + unsynchronised lyrics/text transcription in one major way. Each + syllable (or whatever size of text is considered to be convenient by + the encoder) is a null terminated string followed by a time stamp + denoting where in the sound file it belongs. Each sync thus has the + following structure: + + Terminated text to be synced (typically a syllable) + Sync identifier (terminator to above string) $00 (00) + Time stamp $xx (xx ...) + + The 'time stamp' is set to zero or the whole sync is omitted if + located directly at the beginning of the sound. All time stamps + should be sorted in chronological order. The sync can be considered + as a validator of the subsequent string. + + Newline ($0A) characters are allowed in all "SYLT" frames and should + be used after every entry (name, event etc.) in a frame with the + content type $03 - $04. + + A few considerations regarding whitespace characters: Whitespace + separating words should mark the beginning of a new word, thus + occurring in front of the first syllable of a new word. This is also + valid for new line characters. A syllable followed by a comma should + not be broken apart with a sync (both the syllable and the comma + should be before the sync). + + An example: The "USLT" passage + + "Strangers in the night" $0A "Exchanging glances" + + would be "SYLT" encoded as: + + "Strang" $00 xx xx "ers" $00 xx xx " in" $00 xx xx " the" $00 xx xx + " night" $00 xx xx 0A "Ex" $00 xx xx "chang" $00 xx xx "ing" $00 xx + xx "glan" $00 xx xx "ces" $00 xx xx + + There may be more than one "SYLT" frame in each tag, but only one + with the same language and content descriptor. + + +4.11. Comments + + This frame is indended for any kind of full text information that + does not fit in any other frame. It consists of a frame header + followed by encoding, language and content descriptors and is ended + with the actual comment as a text string. Newline characters are + allowed in the comment text string. There may be more than one + comment frame in each tag, but only one with the same language and + content descriptor. + +
      + Text encoding $xx + Language $xx xx xx + Short content descrip. $00 (00) + The actual text + + +4.12. Relative volume adjustment + + This is a more subjective function than the previous ones. It allows + the user to say how much he wants to increase/decrease the volume on + each channel while the file is played. The purpose is to be able to + align all files to a reference volume, so that you don't have to + change the volume constantly. This frame may also be used to balance + adjust the audio. If the volume peak levels are known then this could + be described with the 'Peak volume right' and 'Peak volume left' + field. If Peakvolume is not known these fields could be left zeroed + or, if no other data follows, be completely omitted. There may only + be one "RVAD" frame in each tag. + +
      + Increment/decrement %00xxxxxx + Bits used for volume descr. $xx + Relative volume change, right $xx xx (xx ...) + Relative volume change, left $xx xx (xx ...) + Peak volume right $xx xx (xx ...) + Peak volume left $xx xx (xx ...) + + In the increment/decrement field bit 0 is used to indicate the right + channel and bit 1 is used to indicate the left channel. 1 is + increment and 0 is decrement. + + The 'bits used for volume description' field is normally $10 (16 + bits) for MPEG 2 layer I, II and III [MPEG] and MPEG 2.5. This value + may not be $00. The volume is always represented with whole bytes, + padded in the beginning (highest bits) when 'bits used for volume + description' is not a multiple of eight. + + This datablock is then optionally followed by a volume definition for + the left and right back channels. If this information is appended to + the frame the first two channels will be treated as front channels. + In the increment/decrement field bit 2 is used to indicate the right + back channel and bit 3 for the left back channel. + + Relative volume change, right back $xx xx (xx ...) + Relative volume change, left back $xx xx (xx ...) + Peak volume right back $xx xx (xx ...) + Peak volume left back $xx xx (xx ...) + + If the center channel adjustment is present the following is appended + to the existing frame, after the left and right back channels. The + center channel is represented by bit 4 in the increase/decrease + field. + + Relative volume change, center $xx xx (xx ...) + Peak volume center $xx xx (xx ...) + + If the bass channel adjustment is present the following is appended + to the existing frame, after the center channel. The bass channel is + represented by bit 5 in the increase/decrease field. + + Relative volume change, bass $xx xx (xx ...) + Peak volume bass $xx xx (xx ...) + + +4.13. Equalisation + + This is another subjective, alignment frame. It allows the user to + predefine an equalisation curve within the audio file. There may only + be one "EQUA" frame in each tag. + +
      + Adjustment bits $xx + + The 'adjustment bits' field defines the number of bits used for + representation of the adjustment. This is normally $10 (16 bits) for + MPEG 2 layer I, II and III [MPEG] and MPEG 2.5. This value may not be + $00. + + This is followed by 2 bytes + ('adjustment bits' rounded up to the + nearest byte) for every equalisation band in the following format, + giving a frequency range of 0 - 32767Hz: + + Increment/decrement %x (MSB of the Frequency) + Frequency (lower 15 bits) + Adjustment $xx (xx ...) + + The increment/decrement bit is 1 for increment and 0 for decrement. + The equalisation bands should be ordered increasingly with reference + to frequency. All frequencies don't have to be declared. The + equalisation curve in the reading software should be interpolated + between the values in this frame. Three equal adjustments for three + subsequent frequencies. A frequency should only be described once in + the frame. + + +4.14. Reverb + + Yet another subjective one. You may here adjust echoes of different + kinds. Reverb left/right is the delay between every bounce in ms. + Reverb bounces left/right is the number of bounces that should be + made. $FF equals an infinite number of bounces. Feedback is the + amount of volume that should be returned to the next echo bounce. $00 + is 0%, $FF is 100%. If this value were $7F, there would be 50% volume + reduction on the first bounce, 50% of that on the second and so on. + Left to left means the sound from the left bounce to be played in the + left speaker, while left to right means sound from the left bounce to + be played in the right speaker. + + 'Premix left to right' is the amount of left sound to be mixed in the + right before any reverb is applied, where $00 id 0% and $FF is 100%. + 'Premix right to left' does the same thing, but right to left. + Setting both premix to $FF would result in a mono output (if the + reverb is applied symmetric). There may only be one "RVRB" frame in + each tag. + +
      + Reverb left (ms) $xx xx + Reverb right (ms) $xx xx + Reverb bounces, left $xx + Reverb bounces, right $xx + Reverb feedback, left to left $xx + Reverb feedback, left to right $xx + Reverb feedback, right to right $xx + Reverb feedback, right to left $xx + Premix left to right $xx + Premix right to left $xx + + +4.15. Attached picture + + This frame contains a picture directly related to the audio file. + Image format is the MIME type and subtype [MIME] for the image. In + the event that the MIME media type name is omitted, "image/" will be + implied. The "image/png" [PNG] or "image/jpeg" [JFIF] picture format + should be used when interoperability is wanted. Description is a + short description of the picture, represented as a terminated + textstring. The description has a maximum length of 64 characters, + but may be empty. There may be several pictures attached to one file, + each in their individual "APIC" frame, but only one with the same + content descriptor. There may only be one picture with the picture + type declared as picture type $01 and $02 respectively. There is the + possibility to put only a link to the image file by using the 'MIME + type' "-->" and having a complete URL [URL] instead of picture data. + The use of linked files should however be used sparingly since there + is the risk of separation of files. + +
      + Text encoding $xx + MIME type $00 + Picture type $xx + Description $00 (00) + Picture data + + + Picture type: $00 Other + $01 32x32 pixels 'file icon' (PNG only) + $02 Other file icon + $03 Cover (front) + $04 Cover (back) + $05 Leaflet page + $06 Media (e.g. lable side of CD) + $07 Lead artist/lead performer/soloist + $08 Artist/performer + $09 Conductor + $0A Band/Orchestra + $0B Composer + $0C Lyricist/text writer + $0D Recording Location + $0E During recording + $0F During performance + $10 Movie/video screen capture + $11 A bright coloured fish + $12 Illustration + $13 Band/artist logotype + $14 Publisher/Studio logotype + + +4.16. General encapsulated object + + In this frame any type of file can be encapsulated. After the header, + 'Frame size' and 'Encoding' follows 'MIME type' [MIME] represented as + as a terminated string encoded with ISO 8859-1 [ISO-8859-1]. The + filename is case sensitive and is encoded as 'Encoding'. Then follows + a content description as terminated string, encoded as 'Encoding'. + The last thing in the frame is the actual object. The first two + strings may be omitted, leaving only their terminations. MIME type is + always an ISO-8859-1 text string. There may be more than one "GEOB" + frame in each tag, but only one with the same content descriptor. + +
      + Text encoding $xx + MIME type $00 + Filename $00 (00) + Content description $00 (00) + Encapsulated object + + +4.17. Play counter + + This is simply a counter of the number of times a file has been + played. The value is increased by one every time the file begins to + play. There may only be one "PCNT" frame in each tag. When the + counter reaches all one's, one byte is inserted in front of the + counter thus making the counter eight bits bigger. The counter must + be at least 32-bits long to begin with. + +
      + Counter $xx xx xx xx (xx ...) + + +4.18. Popularimeter + + The purpose of this frame is to specify how good an audio file is. + Many interesting applications could be found to this frame such as a + playlist that features better audiofiles more often than others or it + could be used to profile a person's taste and find other 'good' files + by comparing people's profiles. The frame is very simple. It contains + the email address to the user, one rating byte and a four byte play + counter, intended to be increased with one for every time the file is + played. The email is a terminated string. The rating is 1-255 where + 1 is worst and 255 is best. 0 is unknown. If no personal counter is + wanted it may be omitted. When the counter reaches all one's, one + byte is inserted in front of the counter thus making the counter + eight bits bigger in the same away as the play counter ("PCNT"). + There may be more than one "POPM" frame in each tag, but only one + with the same email address. + +
      + Email to user $00 + Rating $xx + Counter $xx xx xx xx (xx ...) + + +4.19. Recommended buffer size + + Sometimes the server from which a audio file is streamed is aware of + transmission or coding problems resulting in interruptions in the + audio stream. In these cases, the size of the buffer can be + recommended by the server using this frame. If the 'embedded info + flag' is true (1) then this indicates that an ID3 tag with the + maximum size described in 'Buffer size' may occur in the audiostream. + In such case the tag should reside between two MPEG [MPEG] frames, if + the audio is MPEG encoded. If the position of the next tag is known, + 'offset to next tag' may be used. The offset is calculated from the + end of tag in which this frame resides to the first byte of the + header in the next. This field may be omitted. Embedded tags are + generally not recommended since this could render unpredictable + behaviour from present software/hardware. + + For applications like streaming audio it might be an idea to embed + tags into the audio stream though. If the clients connects to + individual connections like HTTP and there is a possibility to begin + every transmission with a tag, then this tag should include a + 'recommended buffer size' frame. If the client is connected to a + arbitrary point in the stream, such as radio or multicast, then the + 'recommended buffer size' frame should be included in every tag. + Every tag that is picked up after the initial/first tag is to be + considered as an update of the previous one. E.g. if there is a + "TIT2" frame in the first received tag and one in the second tag, + then the first should be 'replaced' with the second. + + The 'Buffer size' should be kept to a minimum. There may only be one + "RBUF" frame in each tag. + +
      + Buffer size $xx xx xx + Embedded info flag %0000000x + Offset to next tag $xx xx xx xx + + +4.20. Audio encryption + + This frame indicates if the actual audio stream is encrypted, and by + whom. Since standardisation of such encrypion scheme is beyond this + document, all "AENC" frames begin with a terminated string with a + URL containing an email address, or a link to a location where an + email address can be found, that belongs to the organisation + responsible for this specific encrypted audio file. Questions + regarding the encrypted audio should be sent to the email address + specified. If a $00 is found directly after the 'Frame size' and the + audiofile indeed is encrypted, the whole file may be considered + useless. + + After the 'Owner identifier', a pointer to an unencrypted part of the + audio can be specified. The 'Preview start' and 'Preview length' is + described in frames. If no part is unencrypted, these fields should + be left zeroed. After the 'preview length' field follows optionally a + datablock required for decryption of the audio. There may be more + than one "AENC" frames in a tag, but only one with the same 'Owner + identifier'. + +
      + Owner identifier $00 + Preview start $xx xx + Preview length $xx xx + Encryption info + + +4.21. Linked information + + To keep space waste as low as possible this frame may be used to link + information from another ID3v2 tag that might reside in another audio + file or alone in a binary file. It is recommended that this method is + only used when the files are stored on a CD-ROM or other + circumstances when the risk of file seperation is low. The frame + contains a frame identifier, which is the frame that should be linked + into this tag, a URL [URL] field, where a reference to the file where + the frame is given, and additional ID data, if needed. Data should be + retrieved from the first tag found in the file to which this link + points. There may be more than one "LINK" frame in a tag, but only + one with the same contents. A linked frame is to be considered as + part of the tag and has the same restrictions as if it was a physical + part of the tag (i.e. only one "RVRB" frame allowed, whether it's + linked or not). + +
      + Frame identifier $xx xx xx + URL $00 + ID and additional data + + Frames that may be linked and need no additional data are "IPLS", + "MCID", "ETCO", "MLLT", "SYTC", "RVAD", "EQUA", "RVRB", "RBUF", the + text information frames and the URL link frames. + + The "TXXX", "APIC", "GEOB" and "AENC" frames may be linked with + the content descriptor as additional ID data. + + The "COMM", "SYLT" and "USLT" frames may be linked with three bytes + of language descriptor directly followed by a content descriptor as + additional ID data. + + +4.22. Position synchronisation frame + + This frame delivers information to the listener of how far into the + audio stream he picked up; in effect, it states the time offset of + the first frame in the stream. The frame layout is: + + + Time stamp format $xx + Position $xx (xx ...) + + Where time stamp format is: + + $01 Absolute time, 32 bit sized, using MPEG frames as unit + $02 Absolute time, 32 bit sized, using milliseconds as unit + + and position is where in the audio the listener starts to receive, + i.e. the beginning of the next frame. If this frame is used in the + beginning of a file the value is always 0. There may only be one + "POSS" frame in each tag. + + +4.23. Terms of use frame + + This frame contains a brief description of the terms of use and + ownership of the file. More detailed information concerning the legal + terms might be available through the "WCOP" frame. Newlines are + allowed in the text. There may only be one "USER" frame in a tag. + +
      + Text encoding $xx + Language $xx xx xx + The actual text + + +4.24. Ownership frame + + The ownership frame might be used as a reminder of a made transaction + or, if signed, as proof. Note that the "USER" and "TOWN" frames are + good to use in conjunction with this one. The frame begins, after the + frame ID, size and encoding fields, with a 'price payed' field. The + first three characters of this field contains the currency used for + the transaction, encoded according to ISO 4217 [ISO-4217] alphabetic + currency code. Concatenated to this is the actual price payed, as a + numerical string using "." as the decimal separator. Next is an 8 + character date string (YYYYMMDD) followed by a string with the name + of the seller as the last field in the frame. There may only be one + "OWNE" frame in a tag. + +
      + Text encoding $xx + Price payed $00 + Date of purch. + Seller + + +4.25. Commercial frame + + This frame enables several competing offers in the same tag by + bundling all needed information. That makes this frame rather complex + but it's an easier solution than if one tries to achieve the same + result with several frames. The frame begins, after the frame ID, + size and encoding fields, with a price string field. A price is + constructed by one three character currency code, encoded according + to ISO 4217 [ISO-4217] alphabetic currency code, followed by a + numerical value where "." is used as decimal seperator. In the price + string several prices may be concatenated, seperated by a "/" + character, but there may only be one currency of each type. + + The price string is followed by an 8 character date string in the + format YYYYMMDD, describing for how long the price is valid. After + that is a contact URL, with which the user can contact the seller, + followed by a one byte 'received as' field. It describes how the + audio is delivered when bought according to the following list: + + $00 Other + $01 Standard CD album with other songs + $02 Compressed audio on CD + $03 File over the Internet + $04 Stream over the Internet + $05 As note sheets + $06 As note sheets in a book with other sheets + $07 Music on other media + $08 Non-musical merchandise + + Next follows a terminated string with the name of the seller followed + by a terminated string with a short description of the product. The + last thing is the ability to include a company logotype. The first of + them is the 'Picture MIME type' field containing information about + which picture format is used. In the event that the MIME media type + name is omitted, "image/" will be implied. Currently only "image/png" + and "image/jpeg" are allowed. This format string is followed by the + binary picture data. This two last fields may be omitted if no + picture is to attach. + +
      + Text encoding $xx + Price string $00 + Valid until + Contact URL $00 + Received as $xx + Name of seller $00 (00) + Description $00 (00) + Picture MIME type $00 + Seller logo + + +4.26. Encryption method registration + + To identify with which method a frame has been encrypted the + encryption method must be registered in the tag with this frame. The + 'Owner identifier' is a null-terminated string with a URL [URL] + containing an email address, or a link to a location where an email + address can be found, that belongs to the organisation responsible + for this specific encryption method. Questions regarding the + encryption method should be sent to the indicated email address. The + 'Method symbol' contains a value that is associated with this method + throughout the whole tag. Values below $80 are reserved. The 'Method + symbol' may optionally be followed by encryption specific data. There + may be several "ENCR" frames in a tag but only one containing the + same symbol and only one containing the same owner identifier. The + method must be used somewhere in the tag. See section 3.3.1, flag j + for more information. + +
      + Owner identifier $00 + Method symbol $xx + Encryption data + + +4.27. Group identification registration + + This frame enables grouping of otherwise unrelated frames. This can + be used when some frames are to be signed. To identify which frames + belongs to a set of frames a group identifier must be registered in + the tag with this frame. The 'Owner identifier' is a null-terminated + string with a URL [URL] containing an email address, or a link to a + location where an email address can be found, that belongs to the + organisation responsible for this grouping. Questions regarding the + grouping should be sent to the indicated email address. The 'Group + symbol' contains a value that associates the frame with this group + throughout the whole tag. Values below $80 are reserved. The 'Group + symbol' may optionally be followed by some group specific data, e.g. + a digital signature. There may be several "GRID" frames in a tag but + only one containing the same symbol and only one containing the same + owner identifier. The group symbol must be used somewhere in the tag. + See section 3.3.1, flag j for more information. + +
      + Owner identifier $00 + Group symbol $xx + Group dependent data + + +4.28. Private frame + + This frame is used to contain information from a software producer + that its program uses and does not fit into the other frames. The + frame consists of an 'Owner identifier' string and the binary data. + The 'Owner identifier' is a null-terminated string with a URL [URL] + containing an email address, or a link to a location where an email + address can be found, that belongs to the organisation responsible + for the frame. Questions regarding the frame should be sent to the + indicated email address. The tag may contain more than one "PRIV" + frame but only with different contents. It is recommended to keep the + number of "PRIV" frames as low as possible. + +
      + Owner identifier $00 + The private data + + +5. The 'unsynchronisation scheme' + + The only purpose of the 'unsynchronisation scheme' is to make the + ID3v2 tag as compatible as possible with existing software. There is + no use in 'unsynchronising' tags if the file is only to be processed + by new software. Unsynchronisation may only be made with MPEG 2 layer + I, II and III and MPEG 2.5 files. + + Whenever a false synchronisation is found within the tag, one zeroed + byte is inserted after the first false synchronisation byte. The + format of a correct sync that should be altered by ID3 encoders is as + follows: + + %11111111 111xxxxx + + And should be replaced with: + + %11111111 00000000 111xxxxx + + This has the side effect that all $FF 00 combinations have to be + altered, so they won't be affected by the decoding process. Therefore + all the $FF 00 combinations have to be replaced with the $FF 00 00 + combination during the unsynchronisation. + + To indicate usage of the unsynchronisation, the first bit in 'ID3 + flags' should be set. This bit should only be set if the tag + contains a, now corrected, false synchronisation. The bit should + only be clear if the tag does not contain any false synchronisations. + + Do bear in mind, that if a compression scheme is used by the encoder, + the unsynchronisation scheme should be applied *afterwards*. When + decoding a compressed, 'unsynchronised' file, the 'unsynchronisation + scheme' should be parsed first, decompression afterwards. + + If the last byte in the tag is $FF, and there is a need to eliminate + false synchronisations in the tag, at least one byte of padding + should be added. + + +6. Copyright + + Copyright (C) Martin Nilsson 1998. All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that a reference to this document is included on all + such copies and derivative works. However, this document itself may + not be modified in any way and reissued as the original document. + + The limited permissions granted above are perpetual and will not be + revoked. + + This document and the information contained herein is provided on an + "AS IS" basis and THE AUTHORS DISCLAIMS ALL WARRANTIES, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF + THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED + WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + + +7. References + + [CDDB] Compact Disc Data Base + + http://www.cddb.com + + [ID3v2] Martin Nilsson, "ID3v2 informal standard". + + http://www.id3lib.org/id3/id3v2-00.txt + + [ISO-639-2] ISO/FDIS 639-2. + Codes for the representation of names of languages, Part 2: Alpha-3 + code. Technical committee / subcommittee: TC 37 / SC 2 + + [ISO-4217] ISO 4217:1995. + Codes for the representation of currencies and funds. + Technical committee / subcommittee: TC 68 + + [ISO-8859-1] ISO/IEC DIS 8859-1. + 8-bit single-byte coded graphic character sets, Part 1: Latin + alphabet No. 1. Technical committee / subcommittee: JTC 1 / SC 2 + + [ISRC] ISO 3901:1986 + International Standard Recording Code (ISRC). + Technical committee / subcommittee: TC 46 / SC 9 + + [JFIF] JPEG File Interchange Format, version 1.02 + + http://www.w3.org/Graphics/JPEG/jfif.txt">http://www.w3.org/Graphics/JPEG/jfif.txt + + [MIME] Freed, N. and N. Borenstein, "Multipurpose Internet Mail + Extensions (MIME) Part One: Format of Internet Message Bodies", + RFC 2045, November 1996. + + ftp://ftp.isi.edu/in-notes/rfc2045.txt">ftp://ftp.isi.edu/in-notes/rfc2045.txt + + [MPEG] ISO/IEC 11172-3:1993. + Coding of moving pictures and associated audio for digital storage + media at up to about 1,5 Mbit/s, Part 3: Audio. + Technical committee / subcommittee: JTC 1 / SC 29 + and + ISO/IEC 13818-3:1995 + Generic coding of moving pictures and associated audio information, + Part 3: Audio. + Technical committee / subcommittee: JTC 1 / SC 29 + and + ISO/IEC DIS 13818-3 + Generic coding of moving pictures and associated audio information, + Part 3: Audio (Revision of ISO/IEC 13818-3:1995) + + + [PNG] Portable Network Graphics, version 1.0 + + http://www.w3.org/TR/REC-png-multi.html + + [UNICODE] ISO/IEC 10646-1:1993. + Universal Multiple-Octet Coded Character Set (UCS), Part 1: + Architecture and Basic Multilingual Plane. + Technical committee / subcommittee: JTC 1 / SC 2 + + http://www.unicode.org/ + + [URL] T. Berners-Lee, L. Masinter & M. McCahill, "Uniform Resource + Locators (URL).", RFC 1738, December 1994. + + ftp://ftp.isi.edu/in-notes/rfc1738.txt + + [ZLIB] P. Deutsch, Aladdin Enterprises & J-L. Gailly, "ZLIB + Compressed + Data Format Specification version 3.3", RFC 1950, May 1996. + + ftp://ftp.isi.edu/in-notes/rfc1950.txt + + +8. Appendix + + +A. Appendix A - Genre List from ID3v1 + + The following genres is defined in ID3v1 + + 0.Blues + 1.Classic Rock + 2.Country + 3.Dance + 4.Disco + 5.Funk + 6.Grunge + 7.Hip-Hop + 8.Jazz + 9.Metal + 10.New Age + 11.Oldies + 12.Other + 13.Pop + 14.R&B + 15.Rap + 16.Reggae + 17.Rock + 18.Techno + 19.Industrial + 20.Alternative + 21.Ska + 22.Death Metal + 23.Pranks + 24.Soundtrack + 25.Euro-Techno + 26.Ambient + 27.Trip-Hop + 28.Vocal + 29.Jazz+Funk + 30.Fusion + 31.Trance + 32.Classical + 33.Instrumental + 34.Acid + 35.House + 36.Game + 37.Sound Clip + 38.Gospel + 39.Noise + 40.AlternRock + 41.Bass + 42.Soul + 43.Punk + 44.Space + 45.Meditative + 46.Instrumental Pop + 47.Instrumental Rock + 48.Ethnic + 49.Gothic + 50.Darkwave + 51.Techno-Industrial + 52.Electronic + 53.Pop-Folk + 54.Eurodance + 55.Dream + 56.Southern Rock + 57.Comedy + 58.Cult + 59.Gangsta + 60.Top 40 + 61.Christian Rap + 62.Pop/Funk + 63.Jungle + 64.Native American + 65.Cabaret + 66.New Wave + 67.Psychadelic + 68.Rave + 69.Showtunes + 70.Trailer + 71.Lo-Fi + 72.Tribal + 73.Acid Punk + 74.Acid Jazz + 75.Polka + 76.Retro + 77.Musical + 78.Rock & Roll + 79.Hard Rock + + The following genres are Winamp extensions + + 80.Folk + 81.Folk-Rock + 82.National Folk + 83.Swing + 84.Fast Fusion + 85.Bebob + 86.Latin + 87.Revival + 88.Celtic + 89.Bluegrass + 90.Avantgarde + 91.Gothic Rock + 92.Progressive Rock + 93.Psychedelic Rock + 94.Symphonic Rock + 95.Slow Rock + 96.Big Band + 97.Chorus + 98.Easy Listening + 99.Acoustic + 100.Humour + 101.Speech + 102.Chanson + 103.Opera + 104.Chamber Music + 105.Sonata + 106.Symphony + 107.Booty Bass + 108.Primus + 109.Porn Groove + 110.Satire + 111.Slow Jam + 112.Club + 113.Tango + 114.Samba + 115.Folklore + 116.Ballad + 117.Power Ballad + 118.Rhythmic Soul + 119.Freestyle + 120.Duet + 121.Punk Rock + 122.Drum Solo + 123.Acapella + 124.Euro-House + 125.Dance Hall + + +9. Author's Address + + Written by + + Martin Nilsson + Rydsvägen 246 C. 30 + S-584 34 Linköping + Sweden + + Email: nilsson@id3.org + + + Edited by + + Dirk Mahoney + 57 Pechey Street + Chermside Q + Australia 4032 + + Email: dirk@id3.org + + + Johan Sundström + Alsättersgatan 5 A. 34 + S-584 35 Linköping + Sweden + + Email: johan@id3.org diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Resources/id3v2.4.0-frames.txt b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Resources/id3v2.4.0-frames.txt new file mode 100644 index 0000000..74a21be --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Resources/id3v2.4.0-frames.txt @@ -0,0 +1,1734 @@ +$Id$ + +Informal standard M. Nilsson +Document: id3v2.4.0-frames.txt 1st November 2000 + + + ID3 tag version 2.4.0 - Native Frames + +Status of this document + + This document is an informal standard and replaces the ID3v2.3.0 + standard [ID3v2]. A formal standard will use another revision number + even if the content is identical to document. The contents in this + document may change for clarifications but never for added or altered + functionallity. + + Distribution of this document is unlimited. + + +Abstract + + This document describes the frames natively supported by ID3v2.4.0, + which is a revised version of the ID3v2 informal standard [ID3v2.3.0] + version 2.3.0. The ID3v2 offers a flexible way of storing audio meta + information within audio file itself. The information may be + technical information, such as equalisation curves, as well as title, + performer, copyright etc. + + ID3v2.4.0 is meant to be as close as possible to ID3v2.3.0 in order + to allow for implementations to be revised as easily as possible. + + +1. Table of contents + + 2. Conventions in this document + 3. Default flags + 4. Declared ID3v2 frames + 4.1. Unique file identifier + 4.2. Text information frames + 4.2.1. Identification frames + 4.2.2. Involved persons frames + 4.2.3. Derived and subjective properties frames + 4.2.4. Rights and license frames + 4.2.5. Other text frames + 4.2.6. User defined text information frame + 4.3. URL link frames + 4.3.1. URL link frames - details + 4.3.2. User defined URL link frame + 4.4. Music CD Identifier + 4.5. Event timing codes + 4.6. MPEG location lookup table + 4.7. Synced tempo codes + 4.8. Unsynchronised lyrics/text transcription + 4.9. Synchronised lyrics/text + 4.10. Comments + 4.11. Relative volume adjustment (2) + 4.12. Equalisation (2) + 4.13. Reverb + 4.14. Attached picture + 4.15. General encapsulated object + 4.16. Play counter + 4.17. Popularimeter + 4.18. Recommended buffer size + 4.19. Audio encryption + 4.20. Linked information + 4.21. Position synchronisation frame + 4.22. Terms of use + 4.23. Ownership frame + 4.24. Commercial frame + 4.25. Encryption method registration + 4.26. Group identification registration + 4.27. Private frame + 4.28. Signature frame + 4.29. Seek frame + 4.30. Audio seek point index + 5. Copyright + 6. References + 7. Appendix + A. Appendix A - Genre List from ID3v1 + 8. Author's Address + + +2. Conventions in this document + + Text within "" is a text string exactly as it appears in a tag. + Numbers preceded with $ are hexadecimal and numbers preceded with % + are binary. $xx is used to indicate a byte with unknown content. %x + is used to indicate a bit with unknown content. The most significant + bit (MSB) of a byte is called 'bit 7' and the least significant bit + (LSB) is called 'bit 0'. + + A tag is the whole tag described the ID3v2 main structure document + [ID3v2-strct]. A frame is a block of information in the tag. The tag + consists of a header, frames and optional padding. A field is a piece + of information; one value, a string etc. A numeric string is a string + that consists of the characters "0123456789" only. + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in RFC 2119 [KEYWORDS]. + + +3. Default flags + + The default settings for the frames described in this document can be + divided into the following classes. The flags may be set differently + if found more suitable by the software. + + 1. Discarded if tag is altered, discarded if file is altered. + + None. + + 2. Discarded if tag is altered, preserved if file is altered. + + None. + + 3. Preserved if tag is altered, discarded if file is altered. + + ASPI, AENC, ETCO, EQU2, MLLT, POSS, SEEK, SYLT, SYTC, RVA2, TENC, + TLEN + + 4. Preserved if tag is altered, preserved if file is altered. + + The rest of the frames. + + +4. Declared ID3v2 frames + + The following frames are declared in this draft. + + 4.19 AENC Audio encryption + 4.14 APIC Attached picture + 4.30 ASPI Audio seek point index + + 4.10 COMM Comments + 4.24 COMR Commercial frame + + 4.25 ENCR Encryption method registration + 4.12 EQU2 Equalisation (2) + 4.5 ETCO Event timing codes + + 4.15 GEOB General encapsulated object + 4.26 GRID Group identification registration + + 4.20 LINK Linked information + + 4.4 MCDI Music CD identifier + 4.6 MLLT MPEG location lookup table + + 4.23 OWNE Ownership frame + + 4.27 PRIV Private frame + 4.16 PCNT Play counter + 4.17 POPM Popularimeter + 4.21 POSS Position synchronisation frame + + 4.18 RBUF Recommended buffer size + 4.11 RVA2 Relative volume adjustment (2) + 4.13 RVRB Reverb + + 4.29 SEEK Seek frame + 4.28 SIGN Signature frame + 4.9 SYLT Synchronised lyric/text + 4.7 SYTC Synchronised tempo codes + + 4.2.1 TALB Album/Movie/Show title + 4.2.3 TBPM BPM (beats per minute) + 4.2.2 TCOM Composer + 4.2.3 TCON Content type + 4.2.4 TCOP Copyright message + 4.2.5 TDEN Encoding time + 4.2.5 TDLY Playlist delay + 4.2.5 TDOR Original release time + 4.2.5 TDRC Recording time + 4.2.5 TDRL Release time + 4.2.5 TDTG Tagging time + 4.2.2 TENC Encoded by + 4.2.2 TEXT Lyricist/Text writer + 4.2.3 TFLT File type + 4.2.2 TIPL Involved people list + 4.2.1 TIT1 Content group description + 4.2.1 TIT2 Title/songname/content description + 4.2.1 TIT3 Subtitle/Description refinement + 4.2.3 TKEY Initial key + 4.2.3 TLAN Language(s) + 4.2.3 TLEN Length + 4.2.2 TMCL Musician credits list + 4.2.3 TMED Media type + 4.2.3 TMOO Mood + 4.2.1 TOAL Original album/movie/show title + 4.2.5 TOFN Original filename + 4.2.2 TOLY Original lyricist(s)/text writer(s) + 4.2.2 TOPE Original artist(s)/performer(s) + 4.2.4 TOWN File owner/licensee + 4.2.2 TPE1 Lead performer(s)/Soloist(s) + 4.2.2 TPE2 Band/orchestra/accompaniment + 4.2.2 TPE3 Conductor/performer refinement + 4.2.2 TPE4 Interpreted, remixed, or otherwise modified by + 4.2.1 TPOS Part of a set + 4.2.4 TPRO Produced notice + 4.2.4 TPUB Publisher + 4.2.1 TRCK Track number/Position in set + 4.2.4 TRSN Internet radio station name + 4.2.4 TRSO Internet radio station owner + 4.2.5 TSOA Album sort order + 4.2.5 TSOP Performer sort order + 4.2.5 TSOT Title sort order + 4.2.1 TSRC ISRC (international standard recording code) + 4.2.5 TSSE Software/Hardware and settings used for encoding + 4.2.1 TSST Set subtitle + 4.2.2 TXXX User defined text information frame + + 4.1 UFID Unique file identifier + 4.22 USER Terms of use + 4.8 USLT Unsynchronised lyric/text transcription + + 4.3.1 WCOM Commercial information + 4.3.1 WCOP Copyright/Legal information + 4.3.1 WOAF Official audio file webpage + 4.3.1 WOAR Official artist/performer webpage + 4.3.1 WOAS Official audio source webpage + 4.3.1 WORS Official Internet radio station homepage + 4.3.1 WPAY Payment + 4.3.1 WPUB Publishers official webpage + 4.3.2 WXXX User defined URL link frame + + +4.1. Unique file identifier + + This frame's purpose is to be able to identify the audio file in a + database, that may provide more information relevant to the content. + Since standardisation of such a database is beyond this document, all + UFID frames begin with an 'owner identifier' field. It is a null- + terminated string with a URL [URL] containing an email address, or a + link to a location where an email address can be found, that belongs + to the organisation responsible for this specific database + implementation. Questions regarding the database should be sent to + the indicated email address. The URL should not be used for the + actual database queries. The string + "http://www.id3.org/dummy/ufid.html" should be used for tests. The + 'Owner identifier' must be non-empty (more than just a termination). + The 'Owner identifier' is then followed by the actual identifier, + which may be up to 64 bytes. There may be more than one "UFID" frame + in a tag, but only one with the same 'Owner identifier'. + +
      + Owner identifier $00 + Identifier + + +4.2. Text information frames + + The text information frames are often the most important frames, + containing information like artist, album and more. There may only be + one text information frame of its kind in an tag. All text + information frames supports multiple strings, stored as a null + separated list, where null is reperesented by the termination code + for the charater encoding. All text frame identifiers begin with "T". + Only text frame identifiers begin with "T", with the exception of the + "TXXX" frame. All the text information frames have the following + format: + +
      + Text encoding $xx + Information + + +4.2.1. Identification frames + + TIT1 + The 'Content group description' frame is used if the sound belongs to + a larger category of sounds/music. For example, classical music is + often sorted in different musical sections (e.g. "Piano Concerto", + "Weather - Hurricane"). + + TIT2 + The 'Title/Songname/Content description' frame is the actual name of + the piece (e.g. "Adagio", "Hurricane Donna"). + + TIT3 + The 'Subtitle/Description refinement' frame is used for information + directly related to the contents title (e.g. "Op. 16" or "Performed + live at Wembley"). + + TALB + The 'Album/Movie/Show title' frame is intended for the title of the + recording (or source of sound) from which the audio in the file is + taken. + + TOAL + The 'Original album/movie/show title' frame is intended for the title + of the original recording (or source of sound), if for example the + music in the file should be a cover of a previously released song. + + TRCK + The 'Track number/Position in set' frame is a numeric string + containing the order number of the audio-file on its original + recording. This MAY be extended with a "/" character and a numeric + string containing the total number of tracks/elements on the original + recording. E.g. "4/9". + + TPOS + The 'Part of a set' frame is a numeric string that describes which + part of a set the audio came from. This frame is used if the source + described in the "TALB" frame is divided into several mediums, e.g. a + double CD. The value MAY be extended with a "/" character and a + numeric string containing the total number of parts in the set. E.g. + "1/2". + + TSST + The 'Set subtitle' frame is intended for the subtitle of the part of + a set this track belongs to. + + TSRC + The 'ISRC' frame should contain the International Standard Recording + Code [ISRC] (12 characters). + + +4.2.2. Involved persons frames + + TPE1 + The 'Lead artist/Lead performer/Soloist/Performing group' is + used for the main artist. + + TPE2 + The 'Band/Orchestra/Accompaniment' frame is used for additional + information about the performers in the recording. + + TPE3 + The 'Conductor' frame is used for the name of the conductor. + + TPE4 + The 'Interpreted, remixed, or otherwise modified by' frame contains + more information about the people behind a remix and similar + interpretations of another existing piece. + + TOPE + The 'Original artist/performer' frame is intended for the performer + of the original recording, if for example the music in the file + should be a cover of a previously released song. + + TEXT + The 'Lyricist/Text writer' frame is intended for the writer of the + text or lyrics in the recording. + + TOLY + The 'Original lyricist/text writer' frame is intended for the + text writer of the original recording, if for example the music in + the file should be a cover of a previously released song. + + TCOM + The 'Composer' frame is intended for the name of the composer. + + TMCL + The 'Musician credits list' is intended as a mapping between + instruments and the musician that played it. Every odd field is an + instrument and every even is an artist or a comma delimited list of + artists. + + TIPL + The 'Involved people list' is very similar to the musician credits + list, but maps between functions, like producer, and names. + + TENC + The 'Encoded by' frame contains the name of the person or + organisation that encoded the audio file. This field may contain a + copyright message, if the audio file also is copyrighted by the + encoder. + + +4.2.3. Derived and subjective properties frames + + TBPM + The 'BPM' frame contains the number of beats per minute in the + main part of the audio. The BPM is an integer and represented as a + numerical string. + + TLEN + The 'Length' frame contains the length of the audio file in + milliseconds, represented as a numeric string. + + TKEY + The 'Initial key' frame contains the musical key in which the sound + starts. It is represented as a string with a maximum length of three + characters. The ground keys are represented with "A","B","C","D","E", + "F" and "G" and halfkeys represented with "b" and "#". Minor is + represented as "m", e.g. "Dbm" $00. Off key is represented with an + "o" only. + + TLAN + The 'Language' frame should contain the languages of the text or + lyrics spoken or sung in the audio. The language is represented with + three characters according to ISO-639-2 [ISO-639-2]. If more than one + language is used in the text their language codes should follow + according to the amount of their usage, e.g. "eng" $00 "sve" $00. + + TCON + The 'Content type', which ID3v1 was stored as a one byte numeric + value only, is now a string. You may use one or several of the ID3v1 + types as numerical strings, or, since the category list would be + impossible to maintain with accurate and up to date categories, + define your own. Example: "21" $00 "Eurodisco" $00 + + You may also use any of the following keywords: + + RX Remix + CR Cover + + TFLT + The 'File type' frame indicates which type of audio this tag defines. + The following types and refinements are defined: + + MIME MIME type follows + MPG MPEG Audio + /1 MPEG 1/2 layer I + /2 MPEG 1/2 layer II + /3 MPEG 1/2 layer III + /2.5 MPEG 2.5 + /AAC Advanced audio compression + VQF Transform-domain Weighted Interleave Vector Quantisation + PCM Pulse Code Modulated audio + + but other types may be used, but not for these types though. This is + used in a similar way to the predefined types in the "TMED" frame, + but without parentheses. If this frame is not present audio type is + assumed to be "MPG". + + TMED + The 'Media type' frame describes from which media the sound + originated. This may be a text string or a reference to the + predefined media types found in the list below. Example: + "VID/PAL/VHS" $00. + + DIG Other digital media + /A Analogue transfer from media + + ANA Other analogue media + /WAC Wax cylinder + /8CA 8-track tape cassette + + CD CD + /A Analogue transfer from media + /DD DDD + /AD ADD + /AA AAD + + LD Laserdisc + + TT Turntable records + /33 33.33 rpm + /45 45 rpm + /71 71.29 rpm + /76 76.59 rpm + /78 78.26 rpm + /80 80 rpm + + MD MiniDisc + /A Analogue transfer from media + + DAT DAT + /A Analogue transfer from media + /1 standard, 48 kHz/16 bits, linear + /2 mode 2, 32 kHz/16 bits, linear + /3 mode 3, 32 kHz/12 bits, non-linear, low speed + /4 mode 4, 32 kHz/12 bits, 4 channels + /5 mode 5, 44.1 kHz/16 bits, linear + /6 mode 6, 44.1 kHz/16 bits, 'wide track' play + + DCC DCC + /A Analogue transfer from media + + DVD DVD + /A Analogue transfer from media + + TV Television + /PAL PAL + /NTSC NTSC + /SECAM SECAM + + VID Video + /PAL PAL + /NTSC NTSC + /SECAM SECAM + /VHS VHS + /SVHS S-VHS + /BETA BETAMAX + + RAD Radio + /FM FM + /AM AM + /LW LW + /MW MW + + TEL Telephone + /I ISDN + + MC MC (normal cassette) + /4 4.75 cm/s (normal speed for a two sided cassette) + /9 9.5 cm/s + /I Type I cassette (ferric/normal) + /II Type II cassette (chrome) + /III Type III cassette (ferric chrome) + /IV Type IV cassette (metal) + + REE Reel + /9 9.5 cm/s + /19 19 cm/s + /38 38 cm/s + /76 76 cm/s + /I Type I cassette (ferric/normal) + /II Type II cassette (chrome) + /III Type III cassette (ferric chrome) + /IV Type IV cassette (metal) + + TMOO + The 'Mood' frame is intended to reflect the mood of the audio with a + few keywords, e.g. "Romantic" or "Sad". + + +4.2.4. Rights and license frames + + TCOP + The 'Copyright message' frame, in which the string must begin with a + year and a space character (making five characters), is intended for + the copyright holder of the original sound, not the audio file + itself. The absence of this frame means only that the copyright + information is unavailable or has been removed, and must not be + interpreted to mean that the audio is public domain. Every time this + field is displayed the field must be preceded with "Copyright " (C) " + ", where (C) is one character showing a C in a circle. + + TPRO + The 'Produced notice' frame, in which the string must begin with a + year and a space character (making five characters), is intended for + the production copyright holder of the original sound, not the audio + file itself. The absence of this frame means only that the production + copyright information is unavailable or has been removed, and must + not be interpreted to mean that the audio is public domain. Every + time this field is displayed the field must be preceded with + "Produced " (P) " ", where (P) is one character showing a P in a + circle. + + TPUB + The 'Publisher' frame simply contains the name of the label or + publisher. + + TOWN + The 'File owner/licensee' frame contains the name of the owner or + licensee of the file and it's contents. + + TRSN + The 'Internet radio station name' frame contains the name of the + internet radio station from which the audio is streamed. + + TRSO + The 'Internet radio station owner' frame contains the name of the + owner of the internet radio station from which the audio is + streamed. + +4.2.5. Other text frames + + TOFN + The 'Original filename' frame contains the preferred filename for the + file, since some media doesn't allow the desired length of the + filename. The filename is case sensitive and includes its suffix. + + TDLY + The 'Playlist delay' defines the numbers of milliseconds of silence + that should be inserted before this audio. The value zero indicates + that this is a part of a multifile audio track that should be played + continuously. + + TDEN + The 'Encoding time' frame contains a timestamp describing when the + audio was encoded. Timestamp format is described in the ID3v2 + structure document [ID3v2-strct]. + + TDOR + The 'Original release time' frame contains a timestamp describing + when the original recording of the audio was released. Timestamp + format is described in the ID3v2 structure document [ID3v2-strct]. + + TDRC + The 'Recording time' frame contains a timestamp describing when the + audio was recorded. Timestamp format is described in the ID3v2 + structure document [ID3v2-strct]. + + TDRL + The 'Release time' frame contains a timestamp describing when the + audio was first released. Timestamp format is described in the ID3v2 + structure document [ID3v2-strct]. + + TDTG + The 'Tagging time' frame contains a timestamp describing then the + audio was tagged. Timestamp format is described in the ID3v2 + structure document [ID3v2-strct]. + + TSSE + The 'Software/Hardware and settings used for encoding' frame + includes the used audio encoder and its settings when the file was + encoded. Hardware refers to hardware encoders, not the computer on + which a program was run. + + TSOA + The 'Album sort order' frame defines a string which should be used + instead of the album name (TALB) for sorting purposes. E.g. an album + named "A Soundtrack" might preferably be sorted as "Soundtrack". + + TSOP + The 'Performer sort order' frame defines a string which should be + used instead of the performer (TPE2) for sorting purposes. + + TSOT + The 'Title sort order' frame defines a string which should be used + instead of the title (TIT2) for sorting purposes. + + +4.2.6. User defined text information frame + + This frame is intended for one-string text information concerning the + audio file in a similar way to the other "T"-frames. The frame body + consists of a description of the string, represented as a terminated + string, followed by the actual string. There may be more than one + "TXXX" frame in each tag, but only one with the same description. + +
      + Text encoding $xx + Description $00 (00) + Value + + +4.3. URL link frames + + With these frames dynamic data such as webpages with touring + information, price information or plain ordinary news can be added to + the tag. There may only be one URL [URL] link frame of its kind in an + tag, except when stated otherwise in the frame description. If the + text string is followed by a string termination, all the following + information should be ignored and not be displayed. All URL link + frame identifiers begins with "W". Only URL link frame identifiers + begins with "W", except for "WXXX". All URL link frames have the + following format: + +
      + URL + + +4.3.1. URL link frames - details + + WCOM + The 'Commercial information' frame is a URL pointing at a webpage + with information such as where the album can be bought. There may be + more than one "WCOM" frame in a tag, but not with the same content. + + WCOP + The 'Copyright/Legal information' frame is a URL pointing at a + webpage where the terms of use and ownership of the file is + described. + + WOAF + The 'Official audio file webpage' frame is a URL pointing at a file + specific webpage. + + WOAR + The 'Official artist/performer webpage' frame is a URL pointing at + the artists official webpage. There may be more than one "WOAR" frame + in a tag if the audio contains more than one performer, but not with + the same content. + + WOAS + The 'Official audio source webpage' frame is a URL pointing at the + official webpage for the source of the audio file, e.g. a movie. + + WORS + The 'Official Internet radio station homepage' contains a URL + pointing at the homepage of the internet radio station. + + WPAY + The 'Payment' frame is a URL pointing at a webpage that will handle + the process of paying for this file. + + WPUB + The 'Publishers official webpage' frame is a URL pointing at the + official webpage for the publisher. + + +4.3.2. User defined URL link frame + + This frame is intended for URL [URL] links concerning the audio file + in a similar way to the other "W"-frames. The frame body consists + of a description of the string, represented as a terminated string, + followed by the actual URL. The URL is always encoded with ISO-8859-1 + [ISO-8859-1]. There may be more than one "WXXX" frame in each tag, + but only one with the same description. + +
      + Text encoding $xx + Description $00 (00) + URL + + +4.4. Music CD identifier + + This frame is intended for music that comes from a CD, so that the CD + can be identified in databases such as the CDDB [CDDB]. The frame + consists of a binary dump of the Table Of Contents, TOC, from the CD, + which is a header of 4 bytes and then 8 bytes/track on the CD plus 8 + bytes for the 'lead out', making a maximum of 804 bytes. The offset + to the beginning of every track on the CD should be described with a + four bytes absolute CD-frame address per track, and not with absolute + time. When this frame is used the presence of a valid "TRCK" frame is + REQUIRED, even if the CD's only got one track. It is recommended that + this frame is always added to tags originating from CDs. There may + only be one "MCDI" frame in each tag. + +
      + CD TOC + + +4.5. Event timing codes + + This frame allows synchronisation with key events in the audio. The + header is: + +
      + Time stamp format $xx + + Where time stamp format is: + + $01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit + $02 Absolute time, 32 bit sized, using milliseconds as unit + + Absolute time means that every stamp contains the time from the + beginning of the file. + + Followed by a list of key events in the following format: + + Type of event $xx + Time stamp $xx (xx ...) + + The 'Time stamp' is set to zero if directly at the beginning of the + sound or after the previous event. All events MUST be sorted in + chronological order. The type of event is as follows: + + $00 padding (has no meaning) + $01 end of initial silence + $02 intro start + $03 main part start + $04 outro start + $05 outro end + $06 verse start + $07 refrain start + $08 interlude start + $09 theme start + $0A variation start + $0B key change + $0C time change + $0D momentary unwanted noise (Snap, Crackle & Pop) + $0E sustained noise + $0F sustained noise end + $10 intro end + $11 main part end + $12 verse end + $13 refrain end + $14 theme end + $15 profanity + $16 profanity end + + $17-$DF reserved for future use + + $E0-$EF not predefined synch 0-F + + $F0-$FC reserved for future use + + $FD audio end (start of silence) + $FE audio file ends + $FF one more byte of events follows (all the following bytes with + the value $FF have the same function) + + Terminating the start events such as "intro start" is OPTIONAL. The + 'Not predefined synch's ($E0-EF) are for user events. You might want + to synchronise your music to something, like setting off an explosion + on-stage, activating a screensaver etc. + + There may only be one "ETCO" frame in each tag. + + +4.6. MPEG location lookup table + + To increase performance and accuracy of jumps within a MPEG [MPEG] + audio file, frames with time codes in different locations in the file + might be useful. This ID3v2 frame includes references that the + software can use to calculate positions in the file. After the frame + header follows a descriptor of how much the 'frame counter' should be + increased for every reference. If this value is two then the first + reference points out the second frame, the 2nd reference the 4th + frame, the 3rd reference the 6th frame etc. In a similar way the + 'bytes between reference' and 'milliseconds between reference' points + out bytes and milliseconds respectively. + + Each reference consists of two parts; a certain number of bits, as + defined in 'bits for bytes deviation', that describes the difference + between what is said in 'bytes between reference' and the reality and + a certain number of bits, as defined in 'bits for milliseconds + deviation', that describes the difference between what is said in + 'milliseconds between reference' and the reality. The number of bits + in every reference, i.e. 'bits for bytes deviation'+'bits for + milliseconds deviation', must be a multiple of four. There may only + be one "MLLT" frame in each tag. + +
      + MPEG frames between reference $xx xx + Bytes between reference $xx xx xx + Milliseconds between reference $xx xx xx + Bits for bytes deviation $xx + Bits for milliseconds dev. $xx + + Then for every reference the following data is included; + + Deviation in bytes %xxx.... + Deviation in milliseconds %xxx.... + + +4.7. Synchronised tempo codes + + For a more accurate description of the tempo of a musical piece, this + frame might be used. After the header follows one byte describing + which time stamp format should be used. Then follows one or more + tempo codes. Each tempo code consists of one tempo part and one time + part. The tempo is in BPM described with one or two bytes. If the + first byte has the value $FF, one more byte follows, which is added + to the first giving a range from 2 - 510 BPM, since $00 and $01 is + reserved. $00 is used to describe a beat-free time period, which is + not the same as a music-free time period. $01 is used to indicate one + single beat-stroke followed by a beat-free period. + + The tempo descriptor is followed by a time stamp. Every time the + tempo in the music changes, a tempo descriptor may indicate this for + the player. All tempo descriptors MUST be sorted in chronological + order. The first beat-stroke in a time-period is at the same time as + the beat description occurs. There may only be one "SYTC" frame in + each tag. + +
      + Time stamp format $xx + Tempo data + + Where time stamp format is: + + $01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit + $02 Absolute time, 32 bit sized, using milliseconds as unit + + Absolute time means that every stamp contains the time from the + beginning of the file. + + +4.8. Unsynchronised lyrics/text transcription + + This frame contains the lyrics of the song or a text transcription of + other vocal activities. The head includes an encoding descriptor and + a content descriptor. The body consists of the actual text. The + 'Content descriptor' is a terminated string. If no descriptor is + entered, 'Content descriptor' is $00 (00) only. Newline characters + are allowed in the text. There may be more than one 'Unsynchronised + lyrics/text transcription' frame in each tag, but only one with the + same language and content descriptor. + +
      + Text encoding $xx + Language $xx xx xx + Content descriptor $00 (00) + Lyrics/text + + +4.9. Synchronised lyrics/text + + This is another way of incorporating the words, said or sung lyrics, + in the audio file as text, this time, however, in sync with the + audio. It might also be used to describing events e.g. occurring on a + stage or on the screen in sync with the audio. The header includes a + content descriptor, represented with as terminated text string. If no + descriptor is entered, 'Content descriptor' is $00 (00) only. + +
      + Text encoding $xx + Language $xx xx xx + Time stamp format $xx + Content type $xx + Content descriptor $00 (00) + + Content type: $00 is other + $01 is lyrics + $02 is text transcription + $03 is movement/part name (e.g. "Adagio") + $04 is events (e.g. "Don Quijote enters the stage") + $05 is chord (e.g. "Bb F Fsus") + $06 is trivia/'pop up' information + $07 is URLs to webpages + $08 is URLs to images + + Time stamp format: + + $01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit + $02 Absolute time, 32 bit sized, using milliseconds as unit + + Absolute time means that every stamp contains the time from the + beginning of the file. + + The text that follows the frame header differs from that of the + unsynchronised lyrics/text transcription in one major way. Each + syllable (or whatever size of text is considered to be convenient by + the encoder) is a null terminated string followed by a time stamp + denoting where in the sound file it belongs. Each sync thus has the + following structure: + + Terminated text to be synced (typically a syllable) + Sync identifier (terminator to above string) $00 (00) + Time stamp $xx (xx ...) + + The 'time stamp' is set to zero or the whole sync is omitted if + located directly at the beginning of the sound. All time stamps + should be sorted in chronological order. The sync can be considered + as a validator of the subsequent string. + + Newline characters are allowed in all "SYLT" frames and MUST be used + after every entry (name, event etc.) in a frame with the content type + $03 - $04. + + A few considerations regarding whitespace characters: Whitespace + separating words should mark the beginning of a new word, thus + occurring in front of the first syllable of a new word. This is also + valid for new line characters. A syllable followed by a comma should + not be broken apart with a sync (both the syllable and the comma + should be before the sync). + + An example: The "USLT" passage + + "Strangers in the night" $0A "Exchanging glances" + + would be "SYLT" encoded as: + + "Strang" $00 xx xx "ers" $00 xx xx " in" $00 xx xx " the" $00 xx xx + " night" $00 xx xx 0A "Ex" $00 xx xx "chang" $00 xx xx "ing" $00 xx + xx "glan" $00 xx xx "ces" $00 xx xx + + There may be more than one "SYLT" frame in each tag, but only one + with the same language and content descriptor. + + +4.10. Comments + + This frame is intended for any kind of full text information that + does not fit in any other frame. It consists of a frame header + followed by encoding, language and content descriptors and is ended + with the actual comment as a text string. Newline characters are + allowed in the comment text string. There may be more than one + comment frame in each tag, but only one with the same language and + content descriptor. + +
      + Text encoding $xx + Language $xx xx xx + Short content descrip. $00 (00) + The actual text + + +4.11. Relative volume adjustment (2) + + This is a more subjective frame than the previous ones. It allows the + user to say how much he wants to increase/decrease the volume on each + channel when the file is played. The purpose is to be able to align + all files to a reference volume, so that you don't have to change the + volume constantly. This frame may also be used to balance adjust the + audio. The volume adjustment is encoded as a fixed point decibel + value, 16 bit signed integer representing (adjustment*512), giving + +/- 64 dB with a precision of 0.001953125 dB. E.g. +2 dB is stored as + $04 00 and -2 dB is $FC 00. There may be more than one "RVA2" frame + in each tag, but only one with the same identification string. + +
      + Identification $00 + + The 'identification' string is used to identify the situation and/or + device where this adjustment should apply. The following is then + repeated for every channel + + Type of channel $xx + Volume adjustment $xx xx + Bits representing peak $xx + Peak volume $xx (xx ...) + + + Type of channel: $00 Other + $01 Master volume + $02 Front right + $03 Front left + $04 Back right + $05 Back left + $06 Front centre + $07 Back centre + $08 Subwoofer + + Bits representing peak can be any number between 0 and 255. 0 means + that there is no peak volume field. The peak volume field is always + padded to whole bytes, setting the most significant bits to zero. + + +4.12. Equalisation (2) + + This is another subjective, alignment frame. It allows the user to + predefine an equalisation curve within the audio file. There may be + more than one "EQU2" frame in each tag, but only one with the same + identification string. + +
      + Interpolation method $xx + Identification $00 + + The 'interpolation method' describes which method is preferred when + an interpolation between the adjustment point that follows. The + following methods are currently defined: + + $00 Band + No interpolation is made. A jump from one adjustment level to + another occurs in the middle between two adjustment points. + $01 Linear + Interpolation between adjustment points is linear. + + The 'identification' string is used to identify the situation and/or + device where this adjustment should apply. The following is then + repeated for every adjustment point + + Frequency $xx xx + Volume adjustment $xx xx + + The frequency is stored in units of 1/2 Hz, giving it a range from 0 + to 32767 Hz. + + The volume adjustment is encoded as a fixed point decibel value, 16 + bit signed integer representing (adjustment*512), giving +/- 64 dB + with a precision of 0.001953125 dB. E.g. +2 dB is stored as $04 00 + and -2 dB is $FC 00. + + Adjustment points should be ordered by frequency and one frequency + should only be described once in the frame. + + +4.13. Reverb + + Yet another subjective frame, with which you can adjust echoes of + different kinds. Reverb left/right is the delay between every bounce + in ms. Reverb bounces left/right is the number of bounces that should + be made. $FF equals an infinite number of bounces. Feedback is the + amount of volume that should be returned to the next echo bounce. $00 + is 0%, $FF is 100%. If this value were $7F, there would be 50% volume + reduction on the first bounce, 50% of that on the second and so on. + Left to left means the sound from the left bounce to be played in the + left speaker, while left to right means sound from the left bounce to + be played in the right speaker. + + 'Premix left to right' is the amount of left sound to be mixed in the + right before any reverb is applied, where $00 id 0% and $FF is 100%. + 'Premix right to left' does the same thing, but right to left. + Setting both premix to $FF would result in a mono output (if the + reverb is applied symmetric). There may only be one "RVRB" frame in + each tag. + +
      + Reverb left (ms) $xx xx + Reverb right (ms) $xx xx + Reverb bounces, left $xx + Reverb bounces, right $xx + Reverb feedback, left to left $xx + Reverb feedback, left to right $xx + Reverb feedback, right to right $xx + Reverb feedback, right to left $xx + Premix left to right $xx + Premix right to left $xx + + +4.14. Attached picture + + This frame contains a picture directly related to the audio file. + Image format is the MIME type and subtype [MIME] for the image. In + the event that the MIME media type name is omitted, "image/" will be + implied. The "image/png" [PNG] or "image/jpeg" [JFIF] picture format + should be used when interoperability is wanted. Description is a + short description of the picture, represented as a terminated + text string. There may be several pictures attached to one file, each + in their individual "APIC" frame, but only one with the same content + descriptor. There may only be one picture with the picture type + declared as picture type $01 and $02 respectively. There is the + possibility to put only a link to the image file by using the 'MIME + type' "-->" and having a complete URL [URL] instead of picture data. + The use of linked files should however be used sparingly since there + is the risk of separation of files. + +
      + Text encoding $xx + MIME type $00 + Picture type $xx + Description $00 (00) + Picture data + + + Picture type: $00 Other + $01 32x32 pixels 'file icon' (PNG only) + $02 Other file icon + $03 Cover (front) + $04 Cover (back) + $05 Leaflet page + $06 Media (e.g. label side of CD) + $07 Lead artist/lead performer/soloist + $08 Artist/performer + $09 Conductor + $0A Band/Orchestra + $0B Composer + $0C Lyricist/text writer + $0D Recording Location + $0E During recording + $0F During performance + $10 Movie/video screen capture + $11 A bright coloured fish + $12 Illustration + $13 Band/artist logotype + $14 Publisher/Studio logotype + + +4.15. General encapsulated object + + In this frame any type of file can be encapsulated. After the header, + 'Frame size' and 'Encoding' follows 'MIME type' [MIME] represented as + as a terminated string encoded with ISO 8859-1 [ISO-8859-1]. The + filename is case sensitive and is encoded as 'Encoding'. Then follows + a content description as terminated string, encoded as 'Encoding'. + The last thing in the frame is the actual object. The first two + strings may be omitted, leaving only their terminations. MIME type is + always an ISO-8859-1 text string. There may be more than one "GEOB" + frame in each tag, but only one with the same content descriptor. + +
      + Text encoding $xx + MIME type $00 + Filename $00 (00) + Content description $00 (00) + Encapsulated object + + +4.16. Play counter + + This is simply a counter of the number of times a file has been + played. The value is increased by one every time the file begins to + play. There may only be one "PCNT" frame in each tag. When the + counter reaches all one's, one byte is inserted in front of the + counter thus making the counter eight bits bigger. The counter must + be at least 32-bits long to begin with. + +
      + Counter $xx xx xx xx (xx ...) + + +4.17. Popularimeter + + The purpose of this frame is to specify how good an audio file is. + Many interesting applications could be found to this frame such as a + playlist that features better audio files more often than others or + it could be used to profile a person's taste and find other 'good' + files by comparing people's profiles. The frame contains the email + address to the user, one rating byte and a four byte play counter, + intended to be increased with one for every time the file is played. + The email is a terminated string. The rating is 1-255 where 1 is + worst and 255 is best. 0 is unknown. If no personal counter is wanted + it may be omitted. When the counter reaches all one's, one byte is + inserted in front of the counter thus making the counter eight bits + bigger in the same away as the play counter ("PCNT"). There may be + more than one "POPM" frame in each tag, but only one with the same + email address. + +
      + Email to user $00 + Rating $xx + Counter $xx xx xx xx (xx ...) + + +4.18. Recommended buffer size + + Sometimes the server from which an audio file is streamed is aware of + transmission or coding problems resulting in interruptions in the + audio stream. In these cases, the size of the buffer can be + recommended by the server using this frame. If the 'embedded info + flag' is true (1) then this indicates that an ID3 tag with the + maximum size described in 'Buffer size' may occur in the audio + stream. In such case the tag should reside between two MPEG [MPEG] + frames, if the audio is MPEG encoded. If the position of the next tag + is known, 'offset to next tag' may be used. The offset is calculated + from the end of tag in which this frame resides to the first byte of + the header in the next. This field may be omitted. Embedded tags are + generally not recommended since this could render unpredictable + behaviour from present software/hardware. + + For applications like streaming audio it might be an idea to embed + tags into the audio stream though. If the clients connects to + individual connections like HTTP and there is a possibility to begin + every transmission with a tag, then this tag should include a + 'recommended buffer size' frame. If the client is connected to a + arbitrary point in the stream, such as radio or multicast, then the + 'recommended buffer size' frame SHOULD be included in every tag. + + The 'Buffer size' should be kept to a minimum. There may only be one + "RBUF" frame in each tag. + +
      + Buffer size $xx xx xx + Embedded info flag %0000000x + Offset to next tag $xx xx xx xx + + +4.19. Audio encryption + + This frame indicates if the actual audio stream is encrypted, and by + whom. Since standardisation of such encryption scheme is beyond this + document, all "AENC" frames begin with a terminated string with a + URL containing an email address, or a link to a location where an + email address can be found, that belongs to the organisation + responsible for this specific encrypted audio file. Questions + regarding the encrypted audio should be sent to the email address + specified. If a $00 is found directly after the 'Frame size' and the + audio file indeed is encrypted, the whole file may be considered + useless. + + After the 'Owner identifier', a pointer to an unencrypted part of the + audio can be specified. The 'Preview start' and 'Preview length' is + described in frames. If no part is unencrypted, these fields should + be left zeroed. After the 'preview length' field follows optionally a + data block required for decryption of the audio. There may be more + than one "AENC" frames in a tag, but only one with the same 'Owner + identifier'. + +
      + Owner identifier $00 + Preview start $xx xx + Preview length $xx xx + Encryption info + + +4.20. Linked information + + To keep information duplication as low as possible this frame may be + used to link information from another ID3v2 tag that might reside in + another audio file or alone in a binary file. It is RECOMMENDED that + this method is only used when the files are stored on a CD-ROM or + other circumstances when the risk of file separation is low. The + frame contains a frame identifier, which is the frame that should be + linked into this tag, a URL [URL] field, where a reference to the + file where the frame is given, and additional ID data, if needed. + Data should be retrieved from the first tag found in the file to + which this link points. There may be more than one "LINK" frame in a + tag, but only one with the same contents. A linked frame is to be + considered as part of the tag and has the same restrictions as if it + was a physical part of the tag (i.e. only one "RVRB" frame allowed, + whether it's linked or not). + +
      + Frame identifier $xx xx xx xx + URL $00 + ID and additional data + + Frames that may be linked and need no additional data are "ASPI", + "ETCO", "EQU2", "MCID", "MLLT", "OWNE", "RVA2", "RVRB", "SYTC", the + text information frames and the URL link frames. + + The "AENC", "APIC", "GEOB" and "TXXX" frames may be linked with + the content descriptor as additional ID data. + + The "USER" frame may be linked with the language field as additional + ID data. + + The "PRIV" frame may be linked with the owner identifier as + additional ID data. + + The "COMM", "SYLT" and "USLT" frames may be linked with three bytes + of language descriptor directly followed by a content descriptor as + additional ID data. + + +4.21. Position synchronisation frame + + This frame delivers information to the listener of how far into the + audio stream he picked up; in effect, it states the time offset from + the first frame in the stream. The frame layout is: + + + Time stamp format $xx + Position $xx (xx ...) + + Where time stamp format is: + + $01 Absolute time, 32 bit sized, using MPEG frames as unit + $02 Absolute time, 32 bit sized, using milliseconds as unit + + and position is where in the audio the listener starts to receive, + i.e. the beginning of the next frame. If this frame is used in the + beginning of a file the value is always 0. There may only be one + "POSS" frame in each tag. + + +4.22. Terms of use frame + + This frame contains a brief description of the terms of use and + ownership of the file. More detailed information concerning the legal + terms might be available through the "WCOP" frame. Newlines are + allowed in the text. There may be more than one 'Terms of use' frame + in a tag, but only one with the same 'Language'. + +
      + Text encoding $xx + Language $xx xx xx + The actual text + + +4.23. Ownership frame + + The ownership frame might be used as a reminder of a made transaction + or, if signed, as proof. Note that the "USER" and "TOWN" frames are + good to use in conjunction with this one. The frame begins, after the + frame ID, size and encoding fields, with a 'price paid' field. The + first three characters of this field contains the currency used for + the transaction, encoded according to ISO 4217 [ISO-4217] alphabetic + currency code. Concatenated to this is the actual price paid, as a + numerical string using "." as the decimal separator. Next is an 8 + character date string (YYYYMMDD) followed by a string with the name + of the seller as the last field in the frame. There may only be one + "OWNE" frame in a tag. + +
      + Text encoding $xx + Price paid $00 + Date of purch. + Seller + + +4.24. Commercial frame + + This frame enables several competing offers in the same tag by + bundling all needed information. That makes this frame rather complex + but it's an easier solution than if one tries to achieve the same + result with several frames. The frame begins, after the frame ID, + size and encoding fields, with a price string field. A price is + constructed by one three character currency code, encoded according + to ISO 4217 [ISO-4217] alphabetic currency code, followed by a + numerical value where "." is used as decimal separator. In the price + string several prices may be concatenated, separated by a "/" + character, but there may only be one currency of each type. + + The price string is followed by an 8 character date string in the + format YYYYMMDD, describing for how long the price is valid. After + that is a contact URL, with which the user can contact the seller, + followed by a one byte 'received as' field. It describes how the + audio is delivered when bought according to the following list: + + $00 Other + $01 Standard CD album with other songs + $02 Compressed audio on CD + $03 File over the Internet + $04 Stream over the Internet + $05 As note sheets + $06 As note sheets in a book with other sheets + $07 Music on other media + $08 Non-musical merchandise + + Next follows a terminated string with the name of the seller followed + by a terminated string with a short description of the product. The + last thing is the ability to include a company logotype. The first of + them is the 'Picture MIME type' field containing information about + which picture format is used. In the event that the MIME media type + name is omitted, "image/" will be implied. Currently only "image/png" + and "image/jpeg" are allowed. This format string is followed by the + binary picture data. This two last fields may be omitted if no + picture is attached. There may be more than one 'commercial frame' in + a tag, but no two may be identical. + +
      + Text encoding $xx + Price string $00 + Valid until + Contact URL $00 + Received as $xx + Name of seller $00 (00) + Description $00 (00) + Picture MIME type $00 + Seller logo + + +4.25. Encryption method registration + + To identify with which method a frame has been encrypted the + encryption method must be registered in the tag with this frame. The + 'Owner identifier' is a null-terminated string with a URL [URL] + containing an email address, or a link to a location where an email + address can be found, that belongs to the organisation responsible + for this specific encryption method. Questions regarding the + encryption method should be sent to the indicated email address. The + 'Method symbol' contains a value that is associated with this method + throughout the whole tag, in the range $80-F0. All other values are + reserved. The 'Method symbol' may optionally be followed by + encryption specific data. There may be several "ENCR" frames in a tag + but only one containing the same symbol and only one containing the + same owner identifier. The method must be used somewhere in the tag. + See the description of the frame encryption flag in the ID3v2 + structure document [ID3v2-strct] for more information. + +
      + Owner identifier $00 + Method symbol $xx + Encryption data + + +4.26. Group identification registration + + This frame enables grouping of otherwise unrelated frames. This can + be used when some frames are to be signed. To identify which frames + belongs to a set of frames a group identifier must be registered in + the tag with this frame. The 'Owner identifier' is a null-terminated + string with a URL [URL] containing an email address, or a link to a + location where an email address can be found, that belongs to the + organisation responsible for this grouping. Questions regarding the + grouping should be sent to the indicated email address. The 'Group + symbol' contains a value that associates the frame with this group + throughout the whole tag, in the range $80-F0. All other values are + reserved. The 'Group symbol' may optionally be followed by some group + specific data, e.g. a digital signature. There may be several "GRID" + frames in a tag but only one containing the same symbol and only one + containing the same owner identifier. The group symbol must be used + somewhere in the tag. See the description of the frame grouping flag + in the ID3v2 structure document [ID3v2-strct] for more information. + +
      + Owner identifier $00 + Group symbol $xx + Group dependent data + + +4.27. Private frame + + This frame is used to contain information from a software producer + that its program uses and does not fit into the other frames. The + frame consists of an 'Owner identifier' string and the binary data. + The 'Owner identifier' is a null-terminated string with a URL [URL] + containing an email address, or a link to a location where an email + address can be found, that belongs to the organisation responsible + for the frame. Questions regarding the frame should be sent to the + indicated email address. The tag may contain more than one "PRIV" + frame but only with different contents. + +
      + Owner identifier $00 + The private data + + +4.28. Signature frame + + This frame enables a group of frames, grouped with the 'Group + identification registration', to be signed. Although signatures can + reside inside the registration frame, it might be desired to store + the signature elsewhere, e.g. in watermarks. There may be more than + one 'signature frame' in a tag, but no two may be identical. + +
      + Group symbol $xx + Signature + + +4.29. Seek frame + + This frame indicates where other tags in a file/stream can be found. + The 'minimum offset to next tag' is calculated from the end of this + tag to the beginning of the next. There may only be one 'seek frame' + in a tag. + +
      + Minimum offset to next tag $xx xx xx xx + + +4.30. Audio seek point index + + Audio files with variable bit rates are intrinsically difficult to + deal with in the case of seeking within the file. The ASPI frame + makes seeking easier by providing a list a seek points within the + audio file. The seek points are a fractional offset within the audio + data, providing a starting point from which to find an appropriate + point to start decoding. The presence of an ASPI frame requires the + existence of a TLEN frame, indicating the duration of the file in + milliseconds. There may only be one 'audio seek point index' frame in + a tag. + +
      + Indexed data start (S) $xx xx xx xx + Indexed data length (L) $xx xx xx xx + Number of index points (N) $xx xx + Bits per index point (b) $xx + + Then for every index point the following data is included; + + Fraction at index (Fi) $xx (xx) + + 'Indexed data start' is a byte offset from the beginning of the file. + 'Indexed data length' is the byte length of the audio data being + indexed. 'Number of index points' is the number of index points, as + the name implies. The recommended number is 100. 'Bits per index + point' is 8 or 16, depending on the chosen precision. 8 bits works + well for short files (less than 5 minutes of audio), while 16 bits is + advantageous for long files. 'Fraction at index' is the numerator of + the fraction representing a relative position in the data. The + denominator is 2 to the power of b. + + Here are the algorithms to be used in the calculation. The known data + must be the offset of the start of the indexed data (S), the offset + of the end of the indexed data (E), the number of index points (N), + the offset at index i (Oi). We calculate the fraction at index i + (Fi). + + Oi is the offset of the frame whose start is soonest after the point + for which the time offset is (i/N * duration). + + The frame data should be calculated as follows: + + Fi = Oi/L * 2^b (rounded down to the nearest integer) + + Offset calculation should be calculated as follows from data in the + frame: + + Oi = (Fi/2^b)*L (rounded up to the nearest integer) + + +5. Copyright + + Copyright (C) Martin Nilsson 2000. All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that a reference to this document is included on all + such copies and derivative works. However, this document itself may + not be modified in any way and reissued as the original document. + + The limited permissions granted above are perpetual and will not be + revoked. + + This document and the information contained herein is provided on an + "AS IS" basis and THE AUTHORS DISCLAIMS ALL WARRANTIES, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF + THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED + WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + + +6. References + + [CDDB] Compact Disc Data Base + + + + [ID3v2.3.0] Martin Nilsson, "ID3v2 informal standard". + + + + [ID3v2-strct] Martin Nilsson, + "ID3 tag version 2.4.0 - Main Structure" + + + + [ISO-639-2] ISO/FDIS 639-2. + Codes for the representation of names of languages, Part 2: Alpha-3 + code. Technical committee / subcommittee: TC 37 / SC 2 + + [ISO-4217] ISO 4217:1995. + Codes for the representation of currencies and funds. + Technical committee / subcommittee: TC 68 + + [ISO-8859-1] ISO/IEC DIS 8859-1. + 8-bit single-byte coded graphic character sets, Part 1: Latin + alphabet No. 1. Technical committee / subcommittee: JTC 1 / SC 2 + + [ISRC] ISO 3901:1986 + International Standard Recording Code (ISRC). + Technical committee / subcommittee: TC 46 / SC 9 + + [JFIF] JPEG File Interchange Format, version 1.02 + + + + [KEYWORDS] S. Bradner, 'Key words for use in RFCs to Indicate + Requirement Levels', RFC 2119, March 1997. + + + + [MIME] Freed, N. and N. Borenstein, "Multipurpose Internet Mail + Extensions (MIME) Part One: Format of Internet Message Bodies", + RFC 2045, November 1996. + + + + [MPEG] ISO/IEC 11172-3:1993. + Coding of moving pictures and associated audio for digital storage + media at up to about 1,5 Mbit/s, Part 3: Audio. + Technical committee / subcommittee: JTC 1 / SC 29 + and + ISO/IEC 13818-3:1995 + Generic coding of moving pictures and associated audio information, + Part 3: Audio. + Technical committee / subcommittee: JTC 1 / SC 29 + and + ISO/IEC DIS 13818-3 + Generic coding of moving pictures and associated audio information, + Part 3: Audio (Revision of ISO/IEC 13818-3:1995) + + + [PNG] Portable Network Graphics, version 1.0 + + + + [URL] T. Berners-Lee, L. Masinter & M. McCahill, "Uniform Resource + Locators (URL).", RFC 1738, December 1994. + + + + [ZLIB] P. Deutsch, Aladdin Enterprises & J-L. Gailly, "ZLIB + Compressed + Data Format Specification version 3.3", RFC 1950, May 1996. + + + + +7. Appendix + + +A. Appendix A - Genre List from ID3v1 + + The following genres is defined in ID3v1 + + 0.Blues + 1.Classic Rock + 2.Country + 3.Dance + 4.Disco + 5.Funk + 6.Grunge + 7.Hip-Hop + 8.Jazz + 9.Metal + 10.New Age + 11.Oldies + 12.Other + 13.Pop + 14.R&B + 15.Rap + 16.Reggae + 17.Rock + 18.Techno + 19.Industrial + 20.Alternative + 21.Ska + 22.Death Metal + 23.Pranks + 24.Soundtrack + 25.Euro-Techno + 26.Ambient + 27.Trip-Hop + 28.Vocal + 29.Jazz+Funk + 30.Fusion + 31.Trance + 32.Classical + 33.Instrumental + 34.Acid + 35.House + 36.Game + 37.Sound Clip + 38.Gospel + 39.Noise + 40.AlternRock + 41.Bass + 42.Soul + 43.Punk + 44.Space + 45.Meditative + 46.Instrumental Pop + 47.Instrumental Rock + 48.Ethnic + 49.Gothic + 50.Darkwave + 51.Techno-Industrial + 52.Electronic + 53.Pop-Folk + 54.Eurodance + 55.Dream + 56.Southern Rock + 57.Comedy + 58.Cult + 59.Gangsta + 60.Top 40 + 61.Christian Rap + 62.Pop/Funk + 63.Jungle + 64.Native American + 65.Cabaret + 66.New Wave + 67.Psychadelic + 68.Rave + 69.Showtunes + 70.Trailer + 71.Lo-Fi + 72.Tribal + 73.Acid Punk + 74.Acid Jazz + 75.Polka + 76.Retro + 77.Musical + 78.Rock & Roll + 79.Hard Rock + + +8. Author's Address + + Written by + + Martin Nilsson + Rydsvägen 246 C. 30 + SE-584 34 Linköping + Sweden + + Email: nilsson@id3.org diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Resources/id3v2.4.0-structure.txt b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Resources/id3v2.4.0-structure.txt new file mode 100644 index 0000000..5fa156a --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/Resources/id3v2.4.0-structure.txt @@ -0,0 +1,733 @@ + +Informal standard M. Nilsson +Document: id3v2.4.0-structure.txt 16 September 2001 + + + ID3 tag version 2.4.0 - Main Structure + +Status of this document + + This document is an informal standard and replaces the ID3v2.3.0 + standard [ID3v2]. A formal standard will use another revision number + even if the content is identical to document. The contents in this + document may change for clarifications but never for added or altered + functionallity. + + Distribution of this document is unlimited. + + +Abstract + + This document describes the main structure of ID3v2.4.0, which is a + revised version of the ID3v2 informal standard [ID3v2] version + 2.3.0. The ID3v2 offers a flexible way of storing audio meta + information within the audio file itself. The information may be + technical information, such as equalisation curves, as well as + title, performer, copyright etc. + + ID3v2.4.0 is meant to be as close as possible to ID3v2.3.0 in order + to allow for implementations to be revised as easily as possible. + + +1. Table of contents + + Status of this document + Abstract + 1. Table of contents + 2. Conventions in this document + 2. Standard overview + 3. ID3v2 overview + 3.1. ID3v2 header + 3.2. ID3v2 extended header + 3.3. Padding + 3.4. ID3v2 footer + 4. ID3v2 frames overview + 4.1. Frame header flags + 4.1.1. Frame status flags + 4.1.2. Frame format flags + 5. Tag location + 6. Unsynchronisation + 6.1. The unsynchronisation scheme + 6.2. Synchsafe integers + 7. Copyright + 8. References + 9. Author's Address + + +2. Conventions in this document + + Text within "" is a text string exactly as it appears in a tag. + Numbers preceded with $ are hexadecimal and numbers preceded with % + are binary. $xx is used to indicate a byte with unknown content. %x + is used to indicate a bit with unknown content. The most significant + bit (MSB) of a byte is called 'bit 7' and the least significant bit + (LSB) is called 'bit 0'. + + A tag is the whole tag described in this document. A frame is a block + of information in the tag. The tag consists of a header, frames and + optional padding. A field is a piece of information; one value, a + string etc. A numeric string is a string that consists of the + characters "0123456789" only. + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in RFC 2119 [KEYWORDS]. + + +3. ID3v2 overview + + ID3v2 is a general tagging format for audio, which makes it possible + to store meta data about the audio inside the audio file itself. The + ID3 tag described in this document is mainly targeted at files + encoded with MPEG-1/2 layer I, MPEG-1/2 layer II, MPEG-1/2 layer III + and MPEG-2.5, but may work with other types of encoded audio or as a + stand alone format for audio meta data. + + ID3v2 is designed to be as flexible and expandable as possible to + meet new meta information needs that might arise. To achieve that + ID3v2 is constructed as a container for several information blocks, + called frames, whose format need not be known to the software that + encounters them. At the start of every frame is an unique and + predefined identifier, a size descriptor that allows software to skip + unknown frames and a flags field. The flags describes encoding + details and if the frame should remain in the tag, should it be + unknown to the software, if the file is altered. + + The bitorder in ID3v2 is most significant bit first (MSB). The + byteorder in multibyte numbers is most significant byte first (e.g. + $12345678 would be encoded $12 34 56 78), also known as big endian + and network byte order. + + Overall tag structure: + + +-----------------------------+ + | Header (10 bytes) | + +-----------------------------+ + | Extended Header | + | (variable length, OPTIONAL) | + +-----------------------------+ + | Frames (variable length) | + +-----------------------------+ + | Padding | + | (variable length, OPTIONAL) | + +-----------------------------+ + | Footer (10 bytes, OPTIONAL) | + +-----------------------------+ + + In general, padding and footer are mutually exclusive. See details in + sections 3.3, 3.4 and 5. + + +3.1. ID3v2 header + + The first part of the ID3v2 tag is the 10 byte tag header, laid out + as follows: + + ID3v2/file identifier "ID3" + ID3v2 version $04 00 + ID3v2 flags %abcd0000 + ID3v2 size 4 * %0xxxxxxx + + The first three bytes of the tag are always "ID3", to indicate that + this is an ID3v2 tag, directly followed by the two version bytes. The + first byte of ID3v2 version is its major version, while the second + byte is its revision number. In this case this is ID3v2.4.0. All + revisions are backwards compatible while major versions are not. If + software with ID3v2.4.0 and below support should encounter version + five or higher it should simply ignore the whole tag. Version or + revision will never be $FF. + + The version is followed by the ID3v2 flags field, of which currently + four flags are used. + + + a - Unsynchronisation + + Bit 7 in the 'ID3v2 flags' indicates whether or not + unsynchronisation is applied on all frames (see section 6.1 for + details); a set bit indicates usage. + + + b - Extended header + + The second bit (bit 6) indicates whether or not the header is + followed by an extended header. The extended header is described in + section 3.2. A set bit indicates the presence of an extended + header. + + + c - Experimental indicator + + The third bit (bit 5) is used as an 'experimental indicator'. This + flag SHALL always be set when the tag is in an experimental stage. + + + d - Footer present + + Bit 4 indicates that a footer (section 3.4) is present at the very + end of the tag. A set bit indicates the presence of a footer. + + + All the other flags MUST be cleared. If one of these undefined flags + are set, the tag might not be readable for a parser that does not + know the flags function. + + The ID3v2 tag size is stored as a 32 bit synchsafe integer (section + 6.2), making a total of 28 effective bits (representing up to 256MB). + + The ID3v2 tag size is the sum of the byte length of the extended + header, the padding and the frames after unsynchronisation. If a + footer is present this equals to ('total size' - 20) bytes, otherwise + ('total size' - 10) bytes. + + An ID3v2 tag can be detected with the following pattern: + $49 44 33 yy yy xx zz zz zz zz + Where yy is less than $FF, xx is the 'flags' byte and zz is less than + $80. + + +3.2. Extended header + + The extended header contains information that can provide further + insight in the structure of the tag, but is not vital to the correct + parsing of the tag information; hence the extended header is + optional. + + Extended header size 4 * %0xxxxxxx + Number of flag bytes $01 + Extended Flags $xx + + Where the 'Extended header size' is the size of the whole extended + header, stored as a 32 bit synchsafe integer. An extended header can + thus never have a size of fewer than six bytes. + + The extended flags field, with its size described by 'number of flag + bytes', is defined as: + + %0bcd0000 + + Each flag that is set in the extended header has data attached, which + comes in the order in which the flags are encountered (i.e. the data + for flag 'b' comes before the data for flag 'c'). Unset flags cannot + have any attached data. All unknown flags MUST be unset and their + corresponding data removed when a tag is modified. + + Every set flag's data starts with a length byte, which contains a + value between 0 and 127 ($00 - $7f), followed by data that has the + field length indicated by the length byte. If a flag has no attached + data, the value $00 is used as length byte. + + + b - Tag is an update + + If this flag is set, the present tag is an update of a tag found + earlier in the present file or stream. If frames defined as unique + are found in the present tag, they are to override any + corresponding ones found in the earlier tag. This flag has no + corresponding data. + + Flag data length $00 + + c - CRC data present + + If this flag is set, a CRC-32 [ISO-3309] data is included in the + extended header. The CRC is calculated on all the data between the + header and footer as indicated by the header's tag length field, + minus the extended header. Note that this includes the padding (if + there is any), but excludes the footer. The CRC-32 is stored as an + 35 bit synchsafe integer, leaving the upper four bits always + zeroed. + + Flag data length $05 + Total frame CRC 5 * %0xxxxxxx + + d - Tag restrictions + + For some applications it might be desired to restrict a tag in more + ways than imposed by the ID3v2 specification. Note that the + presence of these restrictions does not affect how the tag is + decoded, merely how it was restricted before encoding. If this flag + is set the tag is restricted as follows: + + Flag data length $01 + Restrictions %ppqrrstt + + p - Tag size restrictions + + 00 No more than 128 frames and 1 MB total tag size. + 01 No more than 64 frames and 128 KB total tag size. + 10 No more than 32 frames and 40 KB total tag size. + 11 No more than 32 frames and 4 KB total tag size. + + q - Text encoding restrictions + + 0 No restrictions + 1 Strings are only encoded with ISO-8859-1 [ISO-8859-1] or + UTF-8 [UTF-8]. + + r - Text fields size restrictions + + 00 No restrictions + 01 No string is longer than 1024 characters. + 10 No string is longer than 128 characters. + 11 No string is longer than 30 characters. + + Note that nothing is said about how many bytes is used to + represent those characters, since it is encoding dependent. If a + text frame consists of more than one string, the sum of the + strungs is restricted as stated. + + s - Image encoding restrictions + + 0 No restrictions + 1 Images are encoded only with PNG [PNG] or JPEG [JFIF]. + + t - Image size restrictions + + 00 No restrictions + 01 All images are 256x256 pixels or smaller. + 10 All images are 64x64 pixels or smaller. + 11 All images are exactly 64x64 pixels, unless required + otherwise. + + +3.3. Padding + + It is OPTIONAL to include padding after the final frame (at the end + of the ID3 tag), making the size of all the frames together smaller + than the size given in the tag header. A possible purpose of this + padding is to allow for adding a few additional frames or enlarge + existing frames within the tag without having to rewrite the entire + file. The value of the padding bytes must be $00. A tag MUST NOT have + any padding between the frames or between the tag header and the + frames. Furthermore it MUST NOT have any padding when a tag footer is + added to the tag. + + +3.4. ID3v2 footer + + To speed up the process of locating an ID3v2 tag when searching from + the end of a file, a footer can be added to the tag. It is REQUIRED + to add a footer to an appended tag, i.e. a tag located after all + audio data. The footer is a copy of the header, but with a different + identifier. + + ID3v2 identifier "3DI" + ID3v2 version $04 00 + ID3v2 flags %abcd0000 + ID3v2 size 4 * %0xxxxxxx + + +4. ID3v2 frame overview + + All ID3v2 frames consists of one frame header followed by one or more + fields containing the actual information. The header is always 10 + bytes and laid out as follows: + + Frame ID $xx xx xx xx (four characters) + Size 4 * %0xxxxxxx + Flags $xx xx + + The frame ID is made out of the characters capital A-Z and 0-9. + Identifiers beginning with "X", "Y" and "Z" are for experimental + frames and free for everyone to use, without the need to set the + experimental bit in the tag header. Bear in mind that someone else + might have used the same identifier as you. All other identifiers are + either used or reserved for future use. + + The frame ID is followed by a size descriptor containing the size of + the data in the final frame, after encryption, compression and + unsynchronisation. The size is excluding the frame header ('total + frame size' - 10 bytes) and stored as a 32 bit synchsafe integer. + + In the frame header the size descriptor is followed by two flag + bytes. These flags are described in section 4.1. + + There is no fixed order of the frames' appearance in the tag, + although it is desired that the frames are arranged in order of + significance concerning the recognition of the file. An example of + such order: UFID, TIT2, MCDI, TRCK ... + + A tag MUST contain at least one frame. A frame must be at least 1 + byte big, excluding the header. + + If nothing else is said, strings, including numeric strings and URLs + [URL], are represented as ISO-8859-1 [ISO-8859-1] characters in the + range $20 - $FF. Such strings are represented in frame descriptions + as , or if newlines are allowed. If + nothing else is said newline character is forbidden. In ISO-8859-1 a + newline is represented, when allowed, with $0A only. + + Frames that allow different types of text encoding contains a text + encoding description byte. Possible encodings: + + $00 ISO-8859-1 [ISO-8859-1]. Terminated with $00. + $01 UTF-16 [UTF-16] encoded Unicode [UNICODE] with BOM. All + strings in the same frame SHALL have the same byteorder. + Terminated with $00 00. + $02 UTF-16BE [UTF-16] encoded Unicode [UNICODE] without BOM. + Terminated with $00 00. + $03 UTF-8 [UTF-8] encoded Unicode [UNICODE]. Terminated with $00. + + Strings dependent on encoding are represented in frame descriptions + as , or if newlines are allowed. Any empty strings of + type $01 which are NULL-terminated may have the Unicode BOM followed + by a Unicode NULL ($FF FE 00 00 or $FE FF 00 00). + + The timestamp fields are based on a subset of ISO 8601. When being as + precise as possible the format of a time string is + yyyy-MM-ddTHH:mm:ss (year, "-", month, "-", day, "T", hour (out of + 24), ":", minutes, ":", seconds), but the precision may be reduced by + removing as many time indicators as wanted. Hence valid timestamps + are + yyyy, yyyy-MM, yyyy-MM-dd, yyyy-MM-ddTHH, yyyy-MM-ddTHH:mm and + yyyy-MM-ddTHH:mm:ss. All time stamps are UTC. For durations, use + the slash character as described in 8601, and for multiple non- + contiguous dates, use multiple strings, if allowed by the frame + definition. + + The three byte language field, present in several frames, is used to + describe the language of the frame's content, according to ISO-639-2 + [ISO-639-2]. The language should be represented in lower case. If the + language is not known the string "XXX" should be used. + + All URLs [URL] MAY be relative, e.g. "picture.png", "../doc.txt". + + If a frame is longer than it should be, e.g. having more fields than + specified in this document, that indicates that additions to the + frame have been made in a later version of the ID3v2 standard. This + is reflected by the revision number in the header of the tag. + + +4.1. Frame header flags + + In the frame header the size descriptor is followed by two flag + bytes. All unused flags MUST be cleared. The first byte is for + 'status messages' and the second byte is a format description. If an + unknown flag is set in the first byte the frame MUST NOT be changed + without that bit cleared. If an unknown flag is set in the second + byte the frame is likely to not be readable. Some flags in the second + byte indicates that extra information is added to the header. These + fields of extra information is ordered as the flags that indicates + them. The flags field is defined as follows (l and o left out because + ther resemblence to one and zero): + + %0abc0000 %0h00kmnp + + Some frame format flags indicate that additional information fields + are added to the frame. This information is added after the frame + header and before the frame data in the same order as the flags that + indicates them. I.e. the four bytes of decompressed size will precede + the encryption method byte. These additions affects the 'frame size' + field, but are not subject to encryption or compression. + + The default status flags setting for a frame is, unless stated + otherwise, 'preserved if tag is altered' and 'preserved if file is + altered', i.e. %00000000. + + +4.1.1. Frame status flags + + a - Tag alter preservation + + This flag tells the tag parser what to do with this frame if it is + unknown and the tag is altered in any way. This applies to all + kinds of alterations, including adding more padding and reordering + the frames. + + 0 Frame should be preserved. + 1 Frame should be discarded. + + + b - File alter preservation + + This flag tells the tag parser what to do with this frame if it is + unknown and the file, excluding the tag, is altered. This does not + apply when the audio is completely replaced with other audio data. + + 0 Frame should be preserved. + 1 Frame should be discarded. + + + c - Read only + + This flag, if set, tells the software that the contents of this + frame are intended to be read only. Changing the contents might + break something, e.g. a signature. If the contents are changed, + without knowledge of why the frame was flagged read only and + without taking the proper means to compensate, e.g. recalculating + the signature, the bit MUST be cleared. + + +4.1.2. Frame format flags + + h - Grouping identity + + This flag indicates whether or not this frame belongs in a group + with other frames. If set, a group identifier byte is added to the + frame. Every frame with the same group identifier belongs to the + same group. + + 0 Frame does not contain group information + 1 Frame contains group information + + + k - Compression + + This flag indicates whether or not the frame is compressed. + A 'Data Length Indicator' byte MUST be included in the frame. + + 0 Frame is not compressed. + 1 Frame is compressed using zlib [zlib] deflate method. + If set, this requires the 'Data Length Indicator' bit + to be set as well. + + + m - Encryption + + This flag indicates whether or not the frame is encrypted. If set, + one byte indicating with which method it was encrypted will be + added to the frame. See description of the ENCR frame for more + information about encryption method registration. Encryption + should be done after compression. Whether or not setting this flag + requires the presence of a 'Data Length Indicator' depends on the + specific algorithm used. + + 0 Frame is not encrypted. + 1 Frame is encrypted. + + n - Unsynchronisation + + This flag indicates whether or not unsynchronisation was applied + to this frame. See section 6 for details on unsynchronisation. + If this flag is set all data from the end of this header to the + end of this frame has been unsynchronised. Although desirable, the + presence of a 'Data Length Indicator' is not made mandatory by + unsynchronisation. + + 0 Frame has not been unsynchronised. + 1 Frame has been unsyrchronised. + + p - Data length indicator + + This flag indicates that a data length indicator has been added to + the frame. The data length indicator is the value one would write + as the 'Frame length' if all of the frame format flags were + zeroed, represented as a 32 bit synchsafe integer. + + 0 There is no Data Length Indicator. + 1 A data length Indicator has been added to the frame. + + +5. Tag location + + The default location of an ID3v2 tag is prepended to the audio so + that players can benefit from the information when the data is + streamed. It is however possible to append the tag, or make a + prepend/append combination. When deciding upon where an unembedded + tag should be located, the following order of preference SHOULD be + considered. + + 1. Prepend the tag. + + 2. Prepend a tag with all vital information and add a second tag at + the end of the file, before tags from other tagging systems. The + first tag is required to have a SEEK frame. + + 3. Add a tag at the end of the file, before tags from other tagging + systems. + + In case 2 and 3 the tag can simply be appended if no other known tags + are present. The suggested method to find ID3v2 tags are: + + 1. Look for a prepended tag using the pattern found in section 3.1. + + 2. If a SEEK frame was found, use its values to guide further + searching. + + 3. Look for a tag footer, scanning from the back of the file. + + For every new tag that is found, the old tag should be discarded + unless the update flag in the extended header (section 3.2) is set. + + +6. Unsynchronisation + + The only purpose of unsynchronisation is to make the ID3v2 tag as + compatible as possible with existing software and hardware. There is + no use in 'unsynchronising' tags if the file is only to be processed + only by ID3v2 aware software and hardware. Unsynchronisation is only + useful with tags in MPEG 1/2 layer I, II and III, MPEG 2.5 and AAC + files. + + +6.1. The unsynchronisation scheme + + Whenever a false synchronisation is found within the tag, one zeroed + byte is inserted after the first false synchronisation byte. The + format of synchronisations that should be altered by ID3 encoders is + as follows: + + %11111111 111xxxxx + + and should be replaced with: + + %11111111 00000000 111xxxxx + + This has the side effect that all $FF 00 combinations have to be + altered, so they will not be affected by the decoding process. + Therefore all the $FF 00 combinations have to be replaced with the + $FF 00 00 combination during the unsynchronisation. + + To indicate usage of the unsynchronisation, the unsynchronisation + flag in the frame header should be set. This bit MUST be set if the + frame was altered by the unsynchronisation and SHOULD NOT be set if + unaltered. If all frames in the tag are unsynchronised the + unsynchronisation flag in the tag header SHOULD be set. It MUST NOT + be set if the tag has a frame which is not unsynchronised. + + Assume the first byte of the audio to be $FF. The special case when + the last byte of the last frame is $FF and no padding nor footer is + used will then introduce a false synchronisation. This can be solved + by adding a footer, adding padding or unsynchronising the frame and + add $00 to the end of the frame data, thus adding more byte to the + frame size than a normal unsynchronisation would. Although not + preferred, it is allowed to apply the last method on all frames + ending with $FF. + + It is preferred that the tag is either completely unsynchronised or + not unsynchronised at all. A completely unsynchronised tag has no + false synchonisations in it, as defined above, and does not end with + $FF. A completely non-unsynchronised tag contains no unsynchronised + frames, and thus the unsynchronisation flag in the header is cleared. + + Do bear in mind, that if compression or encryption is used, the + unsynchronisation scheme MUST be applied afterwards. When decoding an + unsynchronised frame, the unsynchronisation scheme MUST be reversed + first, encryption and decompression afterwards. + + +6.2. Synchsafe integers + + In some parts of the tag it is inconvenient to use the + unsychronisation scheme because the size of unsynchronised data is + not known in advance, which is particularly problematic with size + descriptors. The solution in ID3v2 is to use synchsafe integers, in + which there can never be any false synchs. Synchsafe integers are + integers that keep its highest bit (bit 7) zeroed, making seven bits + out of eight available. Thus a 32 bit synchsafe integer can store 28 + bits of information. + + Example: + + 255 (%11111111) encoded as a 16 bit synchsafe integer is 383 + (%00000001 01111111). + + +7. Copyright + + Copyright (C) Martin Nilsson 2000. All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that a reference to this document is included on all + such copies and derivative works. However, this document itself may + not be modified in any way and reissued as the original document. + + The limited permissions granted above are perpetual and will not be + revoked. + + This document and the information contained herein is provided on an + 'AS IS' basis and THE AUTHORS DISCLAIMS ALL WARRANTIES, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF + THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED + WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + + +8. References + + [ID3v2] Martin Nilsson, 'ID3v2 informal standard'. + + + + [ISO-639-2] ISO/FDIS 639-2. + 'Codes for the representation of names of languages, Part 2: Alpha-3 + code.' Technical committee / subcommittee: TC 37 / SC 2 + + [ISO-3309] ISO 3309 + 'Information Processing Systems--Data Communication High-Level Data + Link Control Procedure--Frame Structure', IS 3309, October 1984, 3rd + Edition. + + [ISO-8859-1] ISO/IEC DIS 8859-1. + '8-bit single-byte coded graphic character sets, Part 1: Latin + alphabet No. 1.' Technical committee / subcommittee: JTC 1 / SC 2 + + [JFIF] 'JPEG File Interchange Format, version 1.02' + + + + [KEYWORDS] S. Bradner, 'Key words for use in RFCs to Indicate + Requirement Levels', RFC 2119, March 1997. + + + + [MPEG] ISO/IEC 11172-3:1993. + 'Coding of moving pictures and associated audio for digital storage + media at up to about 1,5 Mbit/s, Part 3: Audio.' + Technical committee / subcommittee: JTC 1 / SC 29 + and + ISO/IEC 13818-3:1995 + 'Generic coding of moving pictures and associated audio information, + Part 3: Audio.' + Technical committee / subcommittee: JTC 1 / SC 29 + and + ISO/IEC DIS 13818-3 + 'Generic coding of moving pictures and associated audio information, + Part 3: Audio (Revision of ISO/IEC 13818-3:1995)' + + [PNG] 'Portable Network Graphics, version 1.0' + + + + [UNICODE] The Unicode Consortium, + 'The Unicode Standard Version 3.0', ISBN 0-201-61633-5. + + + + [URL] T. Berners-Lee, L. Masinter & M. McCahill, 'Uniform Resource + Locators (URL)', RFC 1738, December 1994. + + + + [UTF-8] F. Yergeau, 'UTF-8, a transformation format of ISO 10646', + RFC 2279, January 1998. + + + + [UTF-16] F. Yergeau, 'UTF-16, an encoding of ISO 10646', RFC 2781, + February 2000. + + + + [ZLIB] P. Deutsch, Aladdin Enterprises & J-L. Gailly, 'ZLIB + Compressed Data Format Specification version 3.3', RFC 1950, + May 1996. + + + + +9. Author's Address + + Written by + + Martin Nilsson + Rydsvägen 246 C. 30 + SE-584 34 Linköping + Sweden + + Email: nilsson@id3.org + diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/TagLib b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/A/TagLib new file mode 100644 index 0000000000000000000000000000000000000000..ac0701365f82fd877ea6a6b268ddb13d25af993f GIT binary patch literal 2822384 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

      ZfAsE1hiL8uPj9o`K8t?sL8LA15}nZ$-W6LHozu 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 h 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

        MRMSaAk+>_{oq1;9ruP!S|7O{3}+x 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
          INbUmu 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⪼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%0D_;vKpR@74qO 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

            + *
          • TALB Album/Movie/Show title
          • + *
          • TBPM BPM (beats per minute)
          • + *
          • TCOM Composer
          • + *
          • TCON Content type
          • + *
          • TCOP Copyright message
          • + *
          • TDEN Encoding time
          • + *
          • TDLY Playlist delay
          • + *
          • TDOR Original release time
          • + *
          • TDRC Recording time
          • + *
          • TDRL Release time
          • + *
          • TDTG Tagging time
          • + *
          • TENC Encoded by
          • + *
          • TEXT Lyricist/Text writer
          • + *
          • TFLT File type
          • + *
          • TIPL Involved people list
          • + *
          • TIT1 Content group description
          • + *
          • TIT2 Title/songname/content description
          • + *
          • TIT3 Subtitle/Description refinement
          • + *
          • TKEY Initial key
          • + *
          • TLAN Language(s)
          • + *
          • TLEN Length
          • + *
          • TMCL Musician credits list
          • + *
          • TMED Media type
          • + *
          • TMOO Mood
          • + *
          • TOAL Original album/movie/show title
          • + *
          • TOFN Original filename
          • + *
          • TOLY Original lyricist(s)/text writer(s)
          • + *
          • TOPE Original artist(s)/performer(s)
          • + *
          • TOWN File owner/licensee
          • + *
          • TPE1 Lead performer(s)/Soloist(s)
          • + *
          • TPE2 Band/orchestra/accompaniment
          • + *
          • TPE3 Conductor/performer refinement
          • + *
          • TPE4 Interpreted, remixed, or otherwise modified by
          • + *
          • TPOS Part of a set
          • + *
          • TPRO Produced notice
          • + *
          • TPUB Publisher
          • + *
          • TRCK Track number/Position in set
          • + *
          • TRSN Internet radio station name
          • + *
          • TRSO Internet radio station owner
          • + *
          • TSOA Album sort order
          • + *
          • TSOP Performer sort order
          • + *
          • TSOT Title sort order
          • + *
          • TSRC ISRC (international standard recording code)
          • + *
          • TSSE Software/Hardware and settings used for encoding
          • + *
          • TSST Set subtitle
          • + *
          + * + * The ID3v2 Frames document gives a description of each of these formats + * and the expected order of strings in each. ID3v2::Header::frameID() can + * be used to determine the frame type. + * + * \note If non-Latin1 compatible strings are used with this class, even if + * the text encoding is set to Latin1, the frame will be written using UTF8 + * (with the encoding flag appropriately set in the output). + */ + + class TAGLIB_EXPORT TextIdentificationFrame : public Frame + { + friend class FrameFactory; + + public: + /*! + * Construct an empty frame of type \a type. Uses \a encoding as the + * default text encoding. + * + * \note In this case you must specify the text encoding as it + * resolves the ambiguity between constructors. + * + * \note Please see the note in the class description regarding Latin1. + */ + TextIdentificationFrame(const ByteVector &type, String::Type encoding); + + /*! + * This is a dual purpose constructor. \a data can either be binary data + * that should be parsed or (at a minimum) the frame ID. + */ + explicit TextIdentificationFrame(const ByteVector &data); + + /*! + * This is a special factory method to create a TIPL (involved people list) + * frame from the given \a properties. Will parse key=[list of values] data + * into the TIPL format as specified in the ID3 standard. + */ + static TextIdentificationFrame *createTIPLFrame(const PropertyMap &properties); + + /*! + * This is a special factory method to create a TMCL (musician credits list) + * frame from the given \a properties. Will parse key=[list of values] data + * into the TMCL format as specified in the ID3 standard, where key should be + * of the form instrumentPrefix:instrument. + */ + static TextIdentificationFrame *createTMCLFrame(const PropertyMap &properties); + /*! + * Destroys this TextIdentificationFrame instance. + */ + virtual ~TextIdentificationFrame(); + + /*! + * Text identification frames are a list of string fields. + * + * This function will accept either a StringList or a String (using the + * StringList constructor that accepts a single String). + * + * \note This will not change the text encoding of the frame even if the + * strings passed in are not of the same encoding. Please use + * setEncoding(s.type()) if you wish to change the encoding of the frame. + */ + void setText(const StringList &l); + + // Reimplementations. + + virtual void setText(const String &s); + virtual String toString() const; + + /*! + * Returns the text encoding that will be used in rendering this frame. + * This defaults to the type that was either specified in the constructor + * or read from the frame when parsed. + * + * \note Please see the note in the class description regarding Latin1. + * + * \see setTextEncoding() + * \see render() + */ + String::Type textEncoding() const; + + /*! + * Sets the text encoding to be used when rendering this frame to + * \a encoding. + * + * \note Please see the note in the class description regarding Latin1. + * + * \see textEncoding() + * \see render() + */ + void setTextEncoding(String::Type encoding); + + /*! + * Returns a list of the strings in this frame. + */ + StringList fieldList() const; + + /*! + * Returns a KeyConversionMap mapping a role as it would be used in a PropertyMap + * to the corresponding key used in a TIPL ID3 frame to describe that role. + */ + static const KeyConversionMap &involvedPeopleMap(); + + PropertyMap asProperties() const; + + protected: + // Reimplementations. + + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + /*! + * The constructor used by the FrameFactory. + */ + TextIdentificationFrame(const ByteVector &data, Header *h); + + private: + TextIdentificationFrame(const TextIdentificationFrame &); + TextIdentificationFrame &operator=(const TextIdentificationFrame &); + + /*! + * Parses the special structure of a TIPL frame + * Only the whitelisted roles "ARRANGER", "ENGINEER", "PRODUCER", + * "DJMIXER" (ID3: "DJ-MIX") and "MIXER" (ID3: "MIX") are allowed. + */ + PropertyMap makeTIPLProperties() const; + /*! + * Parses the special structure of a TMCL frame. + */ + PropertyMap makeTMCLProperties() const; + class TextIdentificationFramePrivate; + TextIdentificationFramePrivate *d; + }; + + /*! + * This is a specialization of text identification frames that allows for + * user defined entries. Each entry has a description in addition to the + * normal list of fields that a text identification frame has. + * + * This description identifies the frame and must be unique. + */ + + //! An ID3v2 custom text identification frame implementationx + + class TAGLIB_EXPORT UserTextIdentificationFrame : public TextIdentificationFrame + { + friend class FrameFactory; + + public: + /*! + * Constructs an empty user defined text identification frame. For this to be + * a useful frame both a description and text must be set. + */ + explicit UserTextIdentificationFrame(String::Type encoding = String::Latin1); + + /*! + * Creates a frame based on \a data. + */ + explicit UserTextIdentificationFrame(const ByteVector &data); + + /*! + * Creates a user defined text identification frame with the given \a description + * and \a values. + */ + UserTextIdentificationFrame(const String &description, const StringList &values, String::Type encoding = String::UTF8); + + virtual String toString() const; + + /*! + * Returns the description for this frame. + */ + String description() const; + + /*! + * Sets the description of the frame to \a s. \a s must be unique. You can + * check for the presence of another user defined text frame of the same type + * using find() and testing for null. + */ + void setDescription(const String &s); + + StringList fieldList() const; + void setText(const String &text); + void setText(const StringList &fields); + + /*! + * A UserTextIdentificationFrame is parsed into a PropertyMap as follows: + * - the key is the frame's description, uppercased + * - if the description contains '::', only the substring after that + * separator is considered as key (compatibility with exfalso) + * - if the above rules don't yield a valid key (e.g. containing non-ASCII + * characters), the returned map will contain an entry "TXXX/" + * in its unsupportedData() list. + * - The values will be copies of the fieldList(). + * - If the description() appears as value in fieldList(), it will be omitted + * in the value list, in order to be compatible with TagLib which copies + * the description() into the fieldList(). + */ + PropertyMap asProperties() const; + + /*! + * Searches for the user defined text frame with the description \a description + * in \a tag. This returns null if no matching frames were found. + */ + static UserTextIdentificationFrame *find(Tag *tag, const String &description); + + private: + UserTextIdentificationFrame(const ByteVector &data, Header *h); + UserTextIdentificationFrame(const TextIdentificationFrame &); + UserTextIdentificationFrame &operator=(const UserTextIdentificationFrame &); + + void checkFields(); + + class UserTextIdentificationFramePrivate; + UserTextIdentificationFramePrivate *d; + }; + + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/uniquefileidentifierframe.h b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/uniquefileidentifierframe.h new file mode 100644 index 0000000..0cf4b8f --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/uniquefileidentifierframe.h @@ -0,0 +1,113 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_UNIQUEFILEIDENTIFIERFRAME +#define TAGLIB_UNIQUEFILEIDENTIFIERFRAME + +#include "id3v2frame.h" + +namespace TagLib { + + namespace ID3v2 { + + /*! + * This is an implementation of ID3v2 unique file identifier frames. This + * frame is used to identify the file in an arbitrary database identified + * by the owner field. + */ + + //! An implementation of ID3v2 unique identifier frames + + class TAGLIB_EXPORT UniqueFileIdentifierFrame : public ID3v2::Frame + { + friend class FrameFactory; + + public: + /*! + * Creates a uniqe file identifier frame based on \a data. + */ + UniqueFileIdentifierFrame(const ByteVector &data); + + /*! + * Creates a unique file identifier frame with the owner \a owner and + * the identification \a id. + */ + UniqueFileIdentifierFrame(const String &owner, const ByteVector &id); + + /*! + * Destroys the frame. + */ + ~UniqueFileIdentifierFrame(); + + /*! + * Returns the owner for the frame; essentially this is the key for + * determining which identification scheme this key belongs to. This + * will usually either be an email address or URL for the person or tool + * used to create the unique identifier. + * + * \see setOwner() + */ + String owner() const; + + /*! + * Returns the unique identifier. Though sometimes this is a text string + * it also may be binary data and as much should be assumed when handling + * it. + */ + ByteVector identifier() const; + + /*! + * Sets the owner of the identification scheme to \a s. + * + * \see owner() + */ + void setOwner(const String &s); + + /*! + * Sets the unique file identifier to \a v. + * + * \see identifier() + */ + void setIdentifier(const ByteVector &v); + + virtual String toString() const; + + protected: + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + private: + UniqueFileIdentifierFrame(const UniqueFileIdentifierFrame &); + UniqueFileIdentifierFrame &operator=(const UniqueFileIdentifierFrame &); + + UniqueFileIdentifierFrame(const ByteVector &data, Header *h); + + class UniqueFileIdentifierFramePrivate; + UniqueFileIdentifierFramePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/unknownframe.h b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/unknownframe.h new file mode 100644 index 0000000..6559f4e --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/unknownframe.h @@ -0,0 +1,79 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_UNKNOWNFRAME_H +#define TAGLIB_UNKNOWNFRAME_H + +#include "id3v2frame.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace ID3v2 { + + //! A frame type \e unknown to TagLib. + + /*! + * This class represents a frame type not known (or more often simply + * unimplemented) in TagLib. This is here provide a basic API for + * manipulating the binary data of unknown frames and to provide a means + * of rendering such \e unknown frames. + * + * Please note that a cleaner way of handling frame types that TagLib + * does not understand is to subclass ID3v2::Frame and ID3v2::FrameFactory + * to have your frame type supported through the standard ID3v2 mechanism. + */ + + class TAGLIB_EXPORT UnknownFrame : public Frame + { + friend class FrameFactory; + + public: + UnknownFrame(const ByteVector &data); + virtual ~UnknownFrame(); + + virtual String toString() const; + + /*! + * Returns the field data (everything but the header) for this frame. + */ + ByteVector data() const; + + protected: + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + private: + UnknownFrame(const ByteVector &data, Header *h); + UnknownFrame(const UnknownFrame &); + UnknownFrame &operator=(const UnknownFrame &); + + class UnknownFramePrivate; + UnknownFramePrivate *d; + }; + + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/unsynchronizedlyricsframe.h b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/unsynchronizedlyricsframe.h new file mode 100644 index 0000000..3af354f --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/unsynchronizedlyricsframe.h @@ -0,0 +1,179 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + copyright : (C) 2006 by Urs Fleisch + email : ufleisch@users.sourceforge.net + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_UNSYNCHRONIZEDLYRICSFRAME_H +#define TAGLIB_UNSYNCHRONIZEDLYRICSFRAME_H + +#include "id3v2frame.h" + +namespace TagLib { + + namespace ID3v2 { + + //! ID3v2 unsynchronized lyrics frame + /*! + * An implementation of ID3v2 unsynchronized lyrics. + */ + class TAGLIB_EXPORT UnsynchronizedLyricsFrame : public Frame + { + friend class FrameFactory; + + public: + /*! + * Construct an empty unsynchronized lyrics frame that will use the text encoding + * \a encoding. + */ + explicit UnsynchronizedLyricsFrame(String::Type encoding = String::Latin1); + + /*! + * Construct a unsynchronized lyrics frame based on the data in \a data. + */ + explicit UnsynchronizedLyricsFrame(const ByteVector &data); + + /*! + * Destroys this UnsynchronizedLyricsFrame instance. + */ + virtual ~UnsynchronizedLyricsFrame(); + + /*! + * Returns the text of this unsynchronized lyrics frame. + * + * \see text() + */ + virtual String toString() const; + + /*! + * Returns the language encoding as a 3 byte encoding as specified by + * ISO-639-2. + * + * \note Most taggers simply ignore this value. + * + * \see setLanguage() + */ + ByteVector language() const; + + /*! + * Returns the description of this unsynchronized lyrics frame. + * + * \note Most taggers simply ignore this value. + * + * \see setDescription() + */ + String description() const; + + /*! + * Returns the text of this unsynchronized lyrics frame. + * + * \see setText() + */ + String text() const; + + /*! + * Set the language using the 3 byte language code from + * ISO-639-2 to + * \a languageCode. + * + * \see language() + */ + void setLanguage(const ByteVector &languageCode); + + /*! + * Sets the description of the unsynchronized lyrics frame to \a s. + * + * \see decription() + */ + void setDescription(const String &s); + + /*! + * Sets the text portion of the unsynchronized lyrics frame to \a s. + * + * \see text() + */ + virtual void setText(const String &s); + + /*! + * Returns the text encoding that will be used in rendering this frame. + * This defaults to the type that was either specified in the constructor + * or read from the frame when parsed. + * + * \see setTextEncoding() + * \see render() + */ + String::Type textEncoding() const; + + /*! + * Sets the text encoding to be used when rendering this frame to + * \a encoding. + * + * \see textEncoding() + * \see render() + */ + void setTextEncoding(String::Type encoding); + + + /*! Parses this frame as PropertyMap with a single key. + * - if description() is empty or "LYRICS", the key will be "LYRICS" + * - if description() is not a valid PropertyMap key, the frame will be + * marked unsupported by an entry "USLT/" in the unsupportedData() + * attribute of the returned map. + * - otherwise, the key will be "LYRICS:" + * - The single value will be the frame's text(). + * Note that currently the language() field is not supported by the PropertyMap + * interface. + */ + PropertyMap asProperties() const; + + /*! + * LyricsFrames each have a unique description. This searches for a lyrics + * frame with the decription \a d and returns a pointer to it. If no + * frame is found that matches the given description null is returned. + * + * \see description() + */ + static UnsynchronizedLyricsFrame *findByDescription(const Tag *tag, const String &d); + + protected: + // Reimplementations. + + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + private: + /*! + * The constructor used by the FrameFactory. + */ + UnsynchronizedLyricsFrame(const ByteVector &data, Header *h); + UnsynchronizedLyricsFrame(const UnsynchronizedLyricsFrame &); + UnsynchronizedLyricsFrame &operator=(const UnsynchronizedLyricsFrame &); + + class UnsynchronizedLyricsFramePrivate; + UnsynchronizedLyricsFramePrivate *d; + }; + + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/urllinkframe.h b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/urllinkframe.h new file mode 100644 index 0000000..7ac966b --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/urllinkframe.h @@ -0,0 +1,189 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + copyright : (C) 2006 by Urs Fleisch + email : ufleisch@users.sourceforge.net + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_URLLINKFRAME_H +#define TAGLIB_URLLINKFRAME_H + +#include "id3v2frame.h" + +namespace TagLib { + + namespace ID3v2 { + + //! ID3v2 URL frame + /*! + * An implementation of ID3v2 URL link frames. + */ + class TAGLIB_EXPORT UrlLinkFrame : public Frame + { + friend class FrameFactory; + + public: + /*! + * This is a dual purpose constructor. \a data can either be binary data + * that should be parsed or (at a minimum) the frame ID. + */ + explicit UrlLinkFrame(const ByteVector &data); + + /*! + * Destroys this UrlLinkFrame instance. + */ + virtual ~UrlLinkFrame(); + + /*! + * Returns the URL. + */ + virtual String url() const; + + /*! + * Sets the URL to \a s. + */ + virtual void setUrl(const String &s); + + // Reimplementations. + + virtual void setText(const String &s); + virtual String toString() const; + PropertyMap asProperties() const; + + protected: + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + /*! + * The constructor used by the FrameFactory. + */ + UrlLinkFrame(const ByteVector &data, Header *h); + + private: + UrlLinkFrame(const UrlLinkFrame &); + UrlLinkFrame &operator=(const UrlLinkFrame &); + + class UrlLinkFramePrivate; + UrlLinkFramePrivate *d; + }; + + //! ID3v2 User defined URL frame + + /*! + * This is a specialization of URL link frames that allows for + * user defined entries. Each entry has a description in addition to the + * normal list of fields that a URL link frame has. + * + * This description identifies the frame and must be unique. + */ + class TAGLIB_EXPORT UserUrlLinkFrame : public UrlLinkFrame + { + friend class FrameFactory; + + public: + /*! + * Constructs an empty user defined URL link frame. For this to be + * a useful frame both a description and text must be set. + */ + explicit UserUrlLinkFrame(String::Type encoding = String::Latin1); + + /*! + * This is a dual purpose constructor. \a data can either be binary data + * that should be parsed or (at a minimum) the frame ID. + */ + explicit UserUrlLinkFrame(const ByteVector &data); + + /*! + * Destroys this UserUrlLinkFrame instance. + */ + virtual ~UserUrlLinkFrame(); + + // Reimplementations. + + virtual String toString() const; + + /*! + * Returns the text encoding that will be used in rendering this frame. + * This defaults to the type that was either specified in the constructor + * or read from the frame when parsed. + * + * \see setTextEncoding() + * \see render() + */ + String::Type textEncoding() const; + + /*! + * Sets the text encoding to be used when rendering this frame to + * \a encoding. + * + * \see textEncoding() + * \see render() + */ + void setTextEncoding(String::Type encoding); + + /*! + * Returns the description for this frame. + */ + String description() const; + + /*! + * Sets the description of the frame to \a s. \a s must be unique. + */ + void setDescription(const String &s); + + /*! + * Parses the UserUrlLinkFrame as PropertyMap. The description() is taken as key, + * and the URL as single value. + * - if description() is empty, the key will be "URL". + * - otherwise, if description() is not a valid key (e.g. containing non-ASCII + * characters), the returned map will contain an entry "WXXX/" + * in its unsupportedData() list. + */ + PropertyMap asProperties() const; + + /*! + * Searches for the user defined url frame with the description \a description + * in \a tag. This returns null if no matching frames were found. + */ + static UserUrlLinkFrame *find(Tag *tag, const String &description); + + protected: + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + /*! + * The constructor used by the FrameFactory. + */ + UserUrlLinkFrame(const ByteVector &data, Header *h); + + private: + UserUrlLinkFrame(const UserUrlLinkFrame &); + UserUrlLinkFrame &operator=(const UserUrlLinkFrame &); + + class UserUrlLinkFramePrivate; + UserUrlLinkFramePrivate *d; + }; + + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2extendedheader.h b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2extendedheader.h new file mode 100644 index 0000000..d7227e9 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2extendedheader.h @@ -0,0 +1,93 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ID3V2EXTENDEDHEADER_H +#define TAGLIB_ID3V2EXTENDEDHEADER_H + +#include "taglib_export.h" +#include "tbytevector.h" +#include "taglib.h" + +namespace TagLib { + + namespace ID3v2 { + + //! ID3v2 extended header implementation + + /*! + * This class implements ID3v2 extended headers. It attempts to follow, + * both semantically and programatically, the structure specified in + * the ID3v2 standard. The API is based on the properties of ID3v2 extended + * headers specified there. If any of the terms used in this documentation + * are unclear please check the specification in the linked section. + * (Structure, 3.2) + */ + + class TAGLIB_EXPORT ExtendedHeader + { + public: + /*! + * Constructs an empty ID3v2 extended header. + */ + ExtendedHeader(); + + /*! + * Destroys the extended header. + */ + virtual ~ExtendedHeader(); + + /*! + * Returns the size of the extended header. This is variable for the + * extended header. + */ + uint size() const; + + /*! + * Sets the data that will be used as the extended header. Since the + * length is not known before the extended header has been parsed, this + * should just be a pointer to the first byte of the extended header. It + * will determine the length internally and make that available through + * size(). + */ + void setData(const ByteVector &data); + + protected: + /*! + * Called by setData() to parse the extended header data. It makes this + * information available through the public API. + */ + void parse(const ByteVector &data); + + private: + ExtendedHeader(const ExtendedHeader &); + ExtendedHeader &operator=(const ExtendedHeader &); + + class ExtendedHeaderPrivate; + ExtendedHeaderPrivate *d; + }; + + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2footer.h b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2footer.h new file mode 100644 index 0000000..1374a14 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2footer.h @@ -0,0 +1,82 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ID3V2FOOTER_H +#define TAGLIB_ID3V2FOOTER_H + +#include "taglib_export.h" +#include "tbytevector.h" + +namespace TagLib { + + namespace ID3v2 { + + class Header; + + //! ID3v2 footer implementation + + /*! + * Per the ID3v2 specification, the tag's footer is just a copy of the + * information in the header. As such there is no API for reading the + * data from the header, it can just as easily be done from the header. + * + * In fact, at this point, TagLib does not even parse the footer since + * it is not useful internally. However, if the flag to include a footer + * has been set in the ID3v2::Tag, TagLib will render a footer. + */ + + class TAGLIB_EXPORT Footer + { + public: + /*! + * Constructs an empty ID3v2 footer. + */ + Footer(); + /*! + * Destroys the footer. + */ + virtual ~Footer(); + + /*! + * Returns the size of the footer. Presently this is always 10 bytes. + */ + static uint size(); + + /*! + * Renders the footer based on the data in \a header. + */ + ByteVector render(const Header *header) const; + + private: + Footer(const Footer &); + Footer &operator=(const Footer &); + + class FooterPrivate; + FooterPrivate *d; + }; + + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2frame.h b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2frame.h new file mode 100644 index 0000000..95c4070 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2frame.h @@ -0,0 +1,509 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ID3V2FRAME_H +#define TAGLIB_ID3V2FRAME_H + +#include "tstring.h" +#include "tbytevector.h" +#include "taglib_export.h" + +namespace TagLib { + + class StringList; + class PropertyMap; + + namespace ID3v2 { + + class Tag; + class FrameFactory; + + //! ID3v2 frame implementation + + /*! + * This class is the main ID3v2 frame implementation. In ID3v2, a tag is + * split between a collection of frames (which are in turn split into fields + * (Structure, 4) + * (Frames). This class provides an API for + * gathering information about and modifying ID3v2 frames. Funtionallity + * specific to a given frame type is handed in one of the many subclasses. + */ + + class TAGLIB_EXPORT Frame + { + friend class Tag; + friend class FrameFactory; + + public: + + /*! + * Creates a textual frame which corresponds to a single key in the PropertyMap + * interface. These are all (User)TextIdentificationFrames except TIPL and TMCL, + * all (User)URLLinkFrames, CommentsFrames, and UnsynchronizedLyricsFrame. + */ + static Frame *createTextualFrame(const String &key, const StringList &values); + + /*! + * Destroys this Frame instance. + */ + virtual ~Frame(); + + /*! + * Returns the Frame ID (Structure, 4) + * (Frames, 4) + */ + ByteVector frameID() const; + + /*! + * Returns the size of the frame. + */ + uint size() const; + + /*! + * Returns the size of the frame header + * + * \deprecated This is only accurate for ID3v2.3 or ID3v2.4. Please use + * the call below which accepts an ID3v2 version number. In the next + * non-binary compatible release this will be made into a non-static + * member that checks the internal ID3v2 version. + */ + static uint headerSize(); // BIC: remove and make non-static + + /*! + * Returns the size of the frame header for the given ID3v2 version. + * + * \deprecated Please see the explanation above. + */ + static uint headerSize(uint version); // BIC: remove and make non-static + + /*! + * Sets the data that will be used as the frame. Since the length is not + * known before the frame has been parsed, this should just be a pointer to + * the first byte of the frame. It will determine the length internally + * and make that available through size(). + */ + void setData(const ByteVector &data); + + /*! + * Set the text of frame in the sanest way possible. This should only be + * reimplemented in frames where there is some logical mapping to text. + * + * \note If the frame type supports multiple text encodings, this will not + * change the text encoding of the frame; the string will be converted to + * that frame's encoding. Please use the specific APIs of the frame types + * to set the encoding if that is desired. + */ + virtual void setText(const String &text); + + /*! + * This returns the textual representation of the data in the frame. + * Subclasses must reimplement this method to provide a string + * representation of the frame's data. + */ + virtual String toString() const = 0; + + /*! + * Render the frame back to its binary format in a ByteVector. + */ + ByteVector render() const; + + /*! + * Returns the text delimiter that is used between fields for the string + * type \a t. + */ + static ByteVector textDelimiter(String::Type t); + + /*! + * The string with which an instrument name is prefixed to build a key in a PropertyMap; + * used to translate PropertyMaps to TMCL frames. In the current implementation, this + * is "PERFORMER:". + */ + static const String instrumentPrefix; + /*! + * The PropertyMap key prefix which triggers the use of a COMM frame instead of a TXXX + * frame for a non-standard key. In the current implementation, this is "COMMENT:". + */ + static const String commentPrefix; + /*! + * The PropertyMap key prefix which triggers the use of a USLT frame instead of a TXXX + * frame for a non-standard key. In the current implementation, this is "LYRICS:". + */ + static const String lyricsPrefix; + /*! + * The PropertyMap key prefix which triggers the use of a WXXX frame instead of a TXX + * frame for a non-standard key. In the current implementation, this is "URL:". + */ + static const String urlPrefix; + + protected: + class Header; + + /*! + * Constructs an ID3v2 frame using \a data to read the header information. + * All other processing of \a data should be handled in a subclass. + * + * \note This need not contain anything more than a frame ID, but + * \e must constain at least that. + */ + explicit Frame(const ByteVector &data); + + /*! + * This creates an Frame using the header \a h. + * + * The ownership of this header will be assigned to the frame and the + * header will be deleted when the frame is destroyed. + */ + Frame(Header *h); + + /*! + * Returns a pointer to the frame header. + */ + Header *header() const; + + /*! + * Sets the header to \a h. If \a deleteCurrent is true, this will free + * the memory of the current header. + * + * The ownership of this header will be assigned to the frame and the + * header will be deleted when the frame is destroyed. + */ + void setHeader(Header *h, bool deleteCurrent = true); + + /*! + * Called by setData() to parse the frame data. It makes this information + * available through the public API. + */ + void parse(const ByteVector &data); + + /*! + * Called by parse() to parse the field data. It makes this information + * available through the public API. This must be overridden by the + * subclasses. + */ + virtual void parseFields(const ByteVector &data) = 0; + + /*! + * Render the field data back to a binary format in a ByteVector. This + * must be overridden by subclasses. + */ + virtual ByteVector renderFields() const = 0; + + /*! + * Returns a ByteVector containing the field data given the frame data. + * This correctly adjusts for the header size plus any additional frame + * data that's specified in the frame header flags. + */ + ByteVector fieldData(const ByteVector &frameData) const; + + /*! + * Reads a String of type \a encodiong from the ByteVector \a data. If \a + * position is passed in it is used both as the starting point and is + * updated to replect the position just after the string that has been read. + * This is useful for reading strings sequentially. + */ + String readStringField(const ByteVector &data, String::Type encoding, + int *positon = 0); + + /*! + * Checks a the list of string values to see if they can be used with the + * specified encoding and returns the recommended encoding. + */ + // BIC: remove and make non-static + static String::Type checkEncoding(const StringList &fields, + String::Type encoding); + + /*! + * Checks a the list of string values to see if they can be used with the + * specified encoding and returns the recommended encoding. This method + * also checks the ID3v2 version and makes sure the encoding can be used + * in the specified version. + */ + // BIC: remove and make non-static + static String::Type checkEncoding(const StringList &fields, + String::Type encoding, uint version); + + /*! + * Checks a the list of string values to see if they can be used with the + * specified encoding and returns the recommended encoding. This method + * also checks the ID3v2 version and makes sure the encoding can be used + * in the version specified by the frame's header. + */ + String::Type checkTextEncoding(const StringList &fields, + String::Type encoding) const; + + + /*! + * Parses the contents of this frame as PropertyMap. If that fails, the returend + * PropertyMap will be empty, and its unsupportedData() will contain this frame's + * ID. + * BIC: Will be a virtual function in future releases. + */ + PropertyMap asProperties() const; + + /*! + * Returns an appropriate ID3 frame ID for the given free-form tag key. This method + * will return ByteVector::null if no specialized translation is found. + */ + static ByteVector keyToFrameID(const String &); + + /*! + * Returns a free-form tag name for the given ID3 frame ID. Note that this does not work + * for general frame IDs such as TXXX or WXXX; in such a case String::null is returned. + */ + static String frameIDToKey(const ByteVector &); + + + /*! + * This helper function splits the PropertyMap \a original into three ProperytMaps + * \a singleFrameProperties, \a tiplProperties, and \a tmclProperties, such that: + * - \a singleFrameProperties contains only of keys which can be represented with + * exactly one ID3 frame per key. In the current implementation + * this is everything except for the fixed "involved people" keys and keys of the + * form "TextIdentificationFrame::instrumentPrefix" + "instrument", which are + * mapped to a TMCL frame. + * - \a tiplProperties will consist of those keys that are present in + * TextIdentificationFrame::involvedPeopleMap() + * - \a tmclProperties contains the "musician credits" keys which should be mapped + * to a TMCL frame + */ + static void splitProperties(const PropertyMap &original, PropertyMap &singleFrameProperties, + PropertyMap &tiplProperties, PropertyMap &tmclProperties); + + private: + Frame(const Frame &); + Frame &operator=(const Frame &); + + class FramePrivate; + friend class FramePrivate; + FramePrivate *d; + }; + + //! ID3v2 frame header implementation + + /*! + * The ID3v2 Frame Header (Structure, 4) + * + * Every ID3v2::Frame has an associated header that gives some general + * properties of the frame and also makes it possible to identify the frame + * type. + * + * As such when reading an ID3v2 tag ID3v2::FrameFactory first creates the + * frame headers and then creates the appropriate Frame subclass based on + * the type and attaches the header. + */ + + class TAGLIB_EXPORT Frame::Header + { + public: + /*! + * Construct a Frame Header based on \a data. \a data must at least + * contain a 4 byte frame ID, and optionally can contain flag data and the + * frame size. i.e. Just the frame id -- "TALB" -- is a valid value. + * + * \deprecated Please use the constructor below that accepts a version + * number. + */ + Header(const ByteVector &data, bool synchSafeInts); + + /*! + * Construct a Frame Header based on \a data. \a data must at least + * contain a 4 byte frame ID, and optionally can contain flag data and the + * frame size. i.e. Just the frame id -- "TALB" -- is a valid value. + * + * \a version should be the ID3v2 version of the tag. + */ + explicit Header(const ByteVector &data, uint version = 4); + + /*! + * Destroys this Header instance. + */ + virtual ~Header(); + + /*! + * Sets the data for the Header. + * + * \deprecated Please use the version below that accepts an ID3v2 version + * number. + */ + void setData(const ByteVector &data, bool synchSafeInts); + + /*! + * Sets the data for the Header. \a version should indicate the ID3v2 + * version number of the tag that this frame is contained in. + */ + void setData(const ByteVector &data, uint version = 4); + + /*! + * Returns the Frame ID (Structure, 4) + * (Frames, 4) + */ + ByteVector frameID() const; + + /*! + * Sets the frame's ID to \a id. Only the first four bytes of \a id will + * be used. + * + * \warning This method should in general be avoided. It exists simply to + * provide a mechanism for transforming frames from a deprecated frame type + * to a newer one -- i.e. TYER to TDRC from ID3v2.3 to ID3v2.4. + */ + void setFrameID(const ByteVector &id); + + /*! + * Returns the size of the frame data portion, as set when setData() was + * called or set explicitly via setFrameSize(). + */ + uint frameSize() const; + + /*! + * Sets the size of the frame data portion. + */ + void setFrameSize(uint size); + + /*! + * Returns the ID3v2 version of the header, as passed in from the + * construction of the header or set via setVersion(). + */ + uint version() const; + + /*! + * Sets the ID3v2 version of the header, changing has impact on the + * correct parsing/rendering of frame data. + */ + void setVersion(uint version); + + /*! + * Returns the size of the frame header in bytes. + * + * \deprecated Please use the version of this method that accepts a + * version. This is only accurate for ID3v2.3 and ID3v2.4. This will be + * removed in the next binary incompatible release (2.0) and will be + * replaced with a non-static method that checks the frame version. + */ + static uint size(); + + /*! + * Returns the size of the frame header in bytes for the ID3v2 version + * that's given. + * + * \deprecated Please see the explanation in the version above. + */ + static uint size(uint version); + + /*! + * Returns true if the flag for tag alter preservation is set. + * + * The semantics are a little backwards from what would seem natural + * (setting the preservation flag to throw away the frame), but this + * follows the ID3v2 standard. + * + * \see setTagAlterPreservation() + */ + bool tagAlterPreservation() const; + + /*! + * Sets the flag for preservation of this frame if the tag is set. If + * this is set to true the frame will not be written when the tag is + * saved. + * + * The semantics are a little backwards from what would seem natural + * (setting the preservation flag to throw away the frame), but this + * follows the ID3v2 standard. + * + * \see tagAlterPreservation() + */ + void setTagAlterPreservation(bool discard); + + /*! + * Returns true if the flag for file alter preservation is set. + * + * \note This flag is currently ignored internally in TagLib. + */ + bool fileAlterPreservation() const; + + /*! + * Returns true if the frame is meant to be read only. + * + * \note This flag is currently ignored internally in TagLib. + */ + bool readOnly() const; + + /*! + * Returns true if the flag for the grouping identifity is set. + * + * \note This flag is currently ignored internally in TagLib. + */ + bool groupingIdentity() const; + + /*! + * Returns true if compression is enabled for this frame. + * + * \note This flag is currently ignored internally in TagLib. + */ + bool compression() const; + + /*! + * Returns true if encryption is enabled for this frame. + * + * \note This flag is currently ignored internally in TagLib. + */ + bool encryption() const; + +#ifndef DO_NOT_DOCUMENT + bool unsycronisation() const; +#endif + + /*! + * Returns true if unsynchronisation is enabled for this frame. + */ + bool unsynchronisation() const; + + /*! + * Returns true if the flag for a data length indicator is set. + */ + bool dataLengthIndicator() const; + + /*! + * Render the Header back to binary format in a ByteVector. + */ + ByteVector render() const; + + /*! + * \deprecated + */ + bool frameAlterPreservation() const; + + private: + Header(const Header &); + Header &operator=(const Header &); + + class HeaderPrivate; + HeaderPrivate *d; + }; + + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2framefactory.h b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2framefactory.h new file mode 100644 index 0000000..16419c7 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2framefactory.h @@ -0,0 +1,167 @@ + /*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ID3V2FRAMEFACTORY_H +#define TAGLIB_ID3V2FRAMEFACTORY_H + +#include "taglib_export.h" +#include "tbytevector.h" +#include "id3v2frame.h" +#include "id3v2header.h" + +namespace TagLib { + + namespace ID3v2 { + + class TextIdentificationFrame; + + //! A factory for creating ID3v2 frames during parsing + + /*! + * This factory abstracts away the frame creation process and instantiates + * the appropriate ID3v2::Frame subclasses based on the contents of the + * data. + * + * Reimplementing this factory is the key to adding support for frame types + * not directly supported by TagLib to your application. To do so you would + * subclass this factory reimplement createFrame(). Then by setting your + * factory to be the default factory in ID3v2::Tag constructor or with + * MPEG::File::setID3v2FrameFactory() you can implement behavior that will + * allow for new ID3v2::Frame subclasses (also provided by you) to be used. + * + * This implements both abstract factory and singleton patterns + * of which more information is available on the web and in software design + * textbooks (Notably Design Patters). + * + * \note You do not need to use this factory to create new frames to add to + * an ID3v2::Tag. You can instantiate frame subclasses directly (with new) + * and add them to a tag using ID3v2::Tag::addFrame() + * + * \see ID3v2::Tag::addFrame() + */ + + class TAGLIB_EXPORT FrameFactory + { + public: + static FrameFactory *instance(); + /*! + * Create a frame based on \a data. \a synchSafeInts should only be set + * false if we are parsing an old tag (v2.3 or older) that does not support + * synchsafe ints. + * + * \deprecated Please use the method below that accepts a ID3v2::Header + * instance in new code. + */ + Frame *createFrame(const ByteVector &data, bool synchSafeInts) const; + + /*! + * Create a frame based on \a data. \a version should indicate the ID3v2 + * version of the tag. As ID3v2.4 is the most current version of the + * standard 4 is the default. + * + * \deprecated Please use the method below that accepts a ID3v2::Header + * instance in new code. + */ + Frame *createFrame(const ByteVector &data, uint version = 4) const; + + /*! + * Create a frame based on \a data. \a tagHeader should be a valid + * ID3v2::Header instance. + */ + // BIC: make virtual + Frame *createFrame(const ByteVector &data, Header *tagHeader) const; + + /*! + * Returns the default text encoding for text frames. If setTextEncoding() + * has not been explicitly called this will only be used for new text + * frames. However, if this value has been set explicitly all frames will be + * converted to this type (unless it's explitly set differently for the + * individual frame) when being rendered. + * + * \see setDefaultTextEncoding() + */ + String::Type defaultTextEncoding() const; + + /*! + * Set the default text encoding for all text frames that are created to + * \a encoding. If no value is set the frames with either default to the + * encoding type that was parsed and new frames default to Latin1. + * + * Valid string types for ID3v2 tags are Latin1, UTF8, UTF16 and UTF16BE. + * + * \see defaultTextEncoding() + */ + void setDefaultTextEncoding(String::Type encoding); + + protected: + /*! + * Constructs a frame factory. Because this is a singleton this method is + * protected, but may be used for subclasses. + */ + FrameFactory(); + + /*! + * Destroys the frame factory. In most cases this will never be called (as + * is typical of singletons). + */ + virtual ~FrameFactory(); + + /*! + * This method checks for compliance to the current ID3v2 standard (2.4) + * and does nothing in the common case. However if a frame is found that + * is not compatible with the current standard, this method either updates + * the frame or indicates that it should be discarded. + * + * This method with return true (with or without changes to the frame) if + * this frame should be kept or false if it should be discarded. + * + * See the id3v2.4.0-changes.txt document for further information. + */ + virtual bool updateFrame(Frame::Header *header) const; + + private: + FrameFactory(const FrameFactory &); + FrameFactory &operator=(const FrameFactory &); + + /*! + * This method is used internally to convert a frame from ID \a from to ID + * \a to. If the frame matches the \a from pattern and converts the frame + * ID in the \a header or simply does nothing if the frame ID does not match. + */ + void convertFrame(const char *from, const char *to, + Frame::Header *header) const; + + void updateGenre(TextIdentificationFrame *frame) const; + + static FrameFactory factory; + + class FrameFactoryPrivate; + FrameFactoryPrivate *d; + }; + + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2header.h b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2header.h new file mode 100644 index 0000000..307ba96 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2header.h @@ -0,0 +1,175 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ID3V2HEADER_H +#define TAGLIB_ID3V2HEADER_H + +#include "tbytevector.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace ID3v2 { + + //! An implementation of ID3v2 headers + + /*! + * This class implements ID3v2 headers. It attempts to follow, both + * semantically and programatically, the structure specified in + * the ID3v2 standard. The API is based on the properties of ID3v2 headers + * specified there. If any of the terms used in this documentation are + * unclear please check the specification in the linked section. + * (Structure, 3.1) + */ + + class TAGLIB_EXPORT Header + { + public: + /*! + * Constructs an empty ID3v2 header. + */ + Header(); + + /*! + * Constructs an ID3v2 header based on \a data. parse() is called + * immediately. + */ + Header(const ByteVector &data); + + /*! + * Destroys the header. + */ + virtual ~Header(); + + /*! + * Returns the major version number. (Note: This is the 4, not the 2 in + * ID3v2.4.0. The 2 is implied.) + */ + uint majorVersion() const; + + /*! + * Set the the major version number to \a version. (Note: This is + * the 4, not the 2 in ID3v2.4.0. The 2 is implied.) + * \see majorVersion() + * + * \note This is used by the internal parser; this will not change the + * version which is written and in general should not be called by API + * users. + */ + void setMajorVersion(uint version); + + /*! + * Returns the revision number. (Note: This is the 0, not the 4 in + * ID3v2.4.0. The 2 is implied.) + */ + uint revisionNumber() const; + + /*! + * Returns true if unsynchronisation has been applied to all frames. + */ + bool unsynchronisation() const; + + /*! + * Returns true if an extended header is present in the tag. + */ + bool extendedHeader() const; + + /*! + * Returns true if the experimental indicator flag is set. + */ + bool experimentalIndicator() const; + + /*! + * Returns true if a footer is present in the tag. + */ + bool footerPresent() const; + /*! + * Returns the tag size in bytes. This is the size of the frame content. + * The size of the \e entire tag will be this plus the header size (10 + * bytes) and, if present, the footer size (potentially another 10 bytes). + * + * \note This is the value as read from the header to which TagLib attempts + * to provide an API to; it was not a design decision on the part of TagLib + * to not include the mentioned portions of the tag in the \e size. + * + * \see completeTagSize() + */ + uint tagSize() const; + + /*! + * Returns the tag size, including the header and, if present, the footer + * size. + * + * \see tagSize() + */ + uint completeTagSize() const; + + /*! + * Set the tag size to \a s. + * \see tagSize() + */ + void setTagSize(uint s); + + /*! + * Returns the size of the header. Presently this is always 10 bytes. + */ + static uint size(); + + /*! + * Returns the string used to identify and ID3v2 tag inside of a file. + * Presently this is always "ID3". + */ + static ByteVector fileIdentifier(); + + /*! + * Sets the data that will be used as the header. 10 bytes, starting from + * the beginning of \a data are used. + */ + void setData(const ByteVector &data); + + /*! + * Renders the Header back to binary format. + */ + ByteVector render() const; + + protected: + /*! + * Called by setData() to parse the header data. It makes this information + * available through the public API. + */ + void parse(const ByteVector &data); + + private: + Header(const Header &); + Header &operator=(const Header &); + + class HeaderPrivate; + HeaderPrivate *d; + }; + + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2synchdata.h b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2synchdata.h new file mode 100644 index 0000000..4a1f596 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2synchdata.h @@ -0,0 +1,70 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ID3V2SYNCHDATA_H +#define TAGLIB_ID3V2SYNCHDATA_H + +#include "tbytevector.h" +#include "taglib.h" + +namespace TagLib { + + namespace ID3v2 { + + //! A few functions for ID3v2 synch safe integer conversion + + /*! + * In the ID3v2.4 standard most integer values are encoded as "synch safe" + * integers which are encoded in such a way that they will not give false + * MPEG syncs and confuse MPEG decoders. This namespace provides some + * methods for converting to and from these values to ByteVectors for + * things rendering and parsing ID3v2 data. + */ + + namespace SynchData + { + /*! + * This returns the unsigned integer value of \a data where \a data is a + * ByteVector that contains a \e synchsafe integer (Structure, + * 6.2). The default \a length of + * 4 is used if another value is not specified. + */ + TAGLIB_EXPORT uint toUInt(const ByteVector &data); + + /*! + * Returns a 4 byte (32 bit) synchsafe integer based on \a value. + */ + TAGLIB_EXPORT ByteVector fromUInt(uint value); + + /*! + * Convert the data from unsynchronized data to its original format. + */ + TAGLIB_EXPORT ByteVector decode(const ByteVector &input); + } + + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2tag.h b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2tag.h new file mode 100644 index 0000000..94784e7 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/id3v2tag.h @@ -0,0 +1,361 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ID3V2TAG_H +#define TAGLIB_ID3V2TAG_H + +#include "tag.h" +#include "tbytevector.h" +#include "tstring.h" +#include "tlist.h" +#include "tmap.h" +#include "taglib_export.h" + +#include "id3v2framefactory.h" + +namespace TagLib { + + class File; + + //! An ID3v2 implementation + + /*! + * This is a relatively complete and flexible framework for working with ID3v2 + * tags. + * + * \see ID3v2::Tag + */ + + namespace ID3v2 { + + class Header; + class ExtendedHeader; + class Footer; + + typedef List FrameList; + typedef Map FrameListMap; + + //! The main class in the ID3v2 implementation + + /*! + * This is the main class in the ID3v2 implementation. It serves two + * functions. This first, as is obvious from the public API, is to provide a + * container for the other ID3v2 related classes. In addition, through the + * read() and parse() protected methods, it provides the most basic level of + * parsing. In these methods the ID3v2 tag is extracted from the file and + * split into data components. + * + * ID3v2 tags have several parts, TagLib attempts to provide an interface + * for them all. header(), footer() and extendedHeader() corespond to those + * data structures in the ID3v2 standard and the APIs for the classes that + * they return attempt to reflect this. + * + * Also ID3v2 tags are built up from a list of frames, which are in turn + * have a header and a list of fields. TagLib provides two ways of accessing + * the list of frames that are in a given ID3v2 tag. The first is simply + * via the frameList() method. This is just a list of pointers to the frames. + * The second is a map from the frame type -- i.e. "COMM" for comments -- and + * a list of frames of that type. (In some cases ID3v2 allows for multiple + * frames of the same type, hence this being a map to a list rather than just + * a map to an individual frame.) + * + * More information on the structure of frames can be found in the ID3v2::Frame + * class. + * + * read() and parse() pass binary data to the other ID3v2 class structures, + * they do not handle parsing of flags or fields, for instace. Those are + * handled by similar functions within those classes. + * + * \note All pointers to data structures within the tag will become invalid + * when the tag is destroyed. + * + * \warning Dealing with the nasty details of ID3v2 is not for the faint of + * heart and should not be done without much meditation on the spec. It's + * rather long, but if you're planning on messing with this class and others + * that deal with the details of ID3v2 (rather than the nice, safe, abstract + * TagLib::Tag and friends), it's worth your time to familiarize yourself + * with said spec (which is distrubuted with the TagLib sources). TagLib + * tries to do most of the work, but with a little luck, you can still + * convince it to generate invalid ID3v2 tags. The APIs for ID3v2 assume a + * working knowledge of ID3v2 structure. You're been warned. + */ + + class TAGLIB_EXPORT Tag : public TagLib::Tag + { + public: + /*! + * Constructs an empty ID3v2 tag. + * + * \note You must create at least one frame for this tag to be valid. + */ + Tag(); + + /*! + * Constructs an ID3v2 tag read from \a file starting at \a tagOffset. + * \a factory specifies which FrameFactory will be used for the + * construction of new frames. + * + * \note You should be able to ignore the \a factory parameter in almost + * all situations. You would want to specify your own FrameFactory + * subclass in the case that you are extending TagLib to support additional + * frame types, which would be incorperated into your factory. + * + * \see FrameFactory + */ + Tag(File *file, long tagOffset, + const FrameFactory *factory = FrameFactory::instance()); + + /*! + * Destroys this Tag instance. + */ + virtual ~Tag(); + + // Reimplementations. + + virtual String title() const; + virtual String artist() const; + virtual String album() const; + virtual String comment() const; + virtual String genre() const; + virtual uint year() const; + virtual uint track() const; + + virtual void setTitle(const String &s); + virtual void setArtist(const String &s); + virtual void setAlbum(const String &s); + virtual void setComment(const String &s); + virtual void setGenre(const String &s); + virtual void setYear(uint i); + virtual void setTrack(uint i); + + virtual bool isEmpty() const; + + /*! + * Returns a pointer to the tag's header. + */ + Header *header() const; + + /*! + * Returns a pointer to the tag's extended header or null if there is no + * extended header. + */ + ExtendedHeader *extendedHeader() const; + + /*! + * Returns a pointer to the tag's footer or null if there is no footer. + * + * \deprecated I don't see any reason to keep this around since there's + * nothing useful to be retrieved from the footer, but well, again, I'm + * prone to change my mind, so this gets to stay around until near a + * release. + */ + Footer *footer() const; + + /*! + * Returns a reference to the frame list map. This is an FrameListMap of + * all of the frames in the tag. + * + * This is the most convenient structure for accessing the tag's frames. + * Many frame types allow multiple instances of the same frame type so this + * is a map of lists. In most cases however there will only be a single + * frame of a certain type. + * + * Let's say for instance that you wanted to access the frame for total + * beats per minute -- the TBPM frame. + * + * \code + * TagLib::MPEG::File f("foo.mp3"); + * + * // Check to make sure that it has an ID3v2 tag + * + * if(f.ID3v2Tag()) { + * + * // Get the list of frames for a specific frame type + * + * TagLib::ID3v2::FrameList l = f.ID3v2Tag()->frameListMap()["TBPM"]; + * + * if(!l.isEmpty()) + * std::cout << l.front()->toString() << std::endl; + * } + * + * \endcode + * + * \warning You should not modify this data structure directly, instead + * use addFrame() and removeFrame(). + * + * \see frameList() + */ + const FrameListMap &frameListMap() const; + + /*! + * Returns a reference to the frame list. This is an FrameList of all of + * the frames in the tag in the order that they were parsed. + * + * This can be useful if for example you want iterate over the tag's frames + * in the order that they occur in the tag. + * + * \warning You should not modify this data structure directly, instead + * use addFrame() and removeFrame(). + */ + const FrameList &frameList() const; + + /*! + * Returns the frame list for frames with the id \a frameID or an empty + * list if there are no frames of that type. This is just a convenience + * and is equivalent to: + * + * \code + * frameListMap()[frameID]; + * \endcode + * + * \see frameListMap() + */ + const FrameList &frameList(const ByteVector &frameID) const; + + /*! + * Add a frame to the tag. At this point the tag takes ownership of + * the frame and will handle freeing its memory. + * + * \note Using this method will invalidate any pointers on the list + * returned by frameList() + */ + void addFrame(Frame *frame); + + /*! + * Remove a frame from the tag. If \a del is true the frame's memory + * will be freed; if it is false, it must be deleted by the user. + * + * \note Using this method will invalidate any pointers on the list + * returned by frameList() + */ + void removeFrame(Frame *frame, bool del = true); + + /*! + * Remove all frames of type \a id from the tag and free their memory. + * + * \note Using this method will invalidate any pointers on the list + * returned by frameList() + */ + void removeFrames(const ByteVector &id); + + /*! + * Implements the unified property interface -- export function. + * This function does some work to translate the hard-specified ID3v2 + * frame types into a free-form string-to-stringlist PropertyMap: + * - if ID3v2 frame ID is known by Frame::frameIDToKey(), the returned + * key is used + * - if the frame ID is "TXXX" (user text frame), the description() is + * used as key + * - if the frame ID is "WXXX" (user url frame), + * - if the description is empty or "URL", the key "URL" is used + * - otherwise, the key "URL:" is used; + * - if the frame ID is "COMM" (comments frame), + * - if the description is empty or "COMMENT", the key "COMMENT" + * is used + * - otherwise, the key "COMMENT:" is used; + * - if the frame ID is "USLT" (unsynchronized lyrics), + * - if the description is empty or "LYRICS", the key "LYRICS" is used + * - otherwise, the key "LYRICS:" is used; + * - if the frame ID is "TIPL" (involved peoples list), and if all the + * roles defined in the frame are known in TextIdentificationFrame::involvedPeopleMap(), + * then "=" will be contained in the returned obejct for each + * - if the frame ID is "TMCL" (musician credit list), then + * "PERFORMER:=" will be contained in the returned + * PropertyMap for each defined musician + * In any other case, the unsupportedData() of the returned object will contain + * the frame's ID and, in case of a frame ID which is allowed to appear more than + * once, the description, separated by a "/". + * + */ + PropertyMap properties() const; + + /*! + * Removes unsupported frames given by \a properties. The elements of + * \a properties must be taken from properties().unsupportedData(); they + * are of one of the following forms: + * - a four-character frame ID, if the ID3 specification allows only one + * frame with that ID (thus, the frame is uniquely determined) + * - frameID + "/" + description(), when the ID is one of "TXXX", "WXXX", + * "COMM", or "USLT", + * - "UNKNOWN/" + frameID, for frames that could not be parsed by TagLib. + * In that case, *all* unknown frames with the given ID will be removed. + */ + void removeUnsupportedProperties(const StringList &properties); + + /*! + * Implements the unified property interface -- import function. + * See the comments in properties(). + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Render the tag back to binary data, suitable to be written to disk. + */ + ByteVector render() const; + + /*! + * Render the tag back to binary data, suitable to be written to disk. + * + * The \a version parameter specifies the version of the rendered + * ID3v2 tag. It can be either 4 or 3. + */ + // BIC: combine with the above method + ByteVector render(int version) const; + + protected: + /*! + * Reads data from the file specified in the constructor. It does basic + * parsing of the data in the largest chunks. It partitions the tag into + * the Header, the body of the tag (which contains the ExtendedHeader and + * frames) and Footer. + */ + void read(); + + /*! + * This is called by read to parse the body of the tag. It determines if an + * extended header exists and adds frames to the FrameListMap. + */ + void parse(const ByteVector &data); + + /*! + * Sets the value of the text frame with the Frame ID \a id to \a value. + * If the frame does not exist, it is created. + */ + void setTextFrame(const ByteVector &id, const String &value); + + void downgradeFrames(FrameList *existingFrames, FrameList *newFrames) const; + + private: + Tag(const Tag &); + Tag &operator=(const Tag &); + + class TagPrivate; + TagPrivate *d; + }; + + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/mpegfile.h b/Audio-Frameworks/bin/taglib/headers/mpeg/mpegfile.h new file mode 100644 index 0000000..185fced --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/mpegfile.h @@ -0,0 +1,323 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MPEGFILE_H +#define TAGLIB_MPEGFILE_H + +#include "taglib_export.h" +#include "tfile.h" +#include "tag.h" + +#include "mpegproperties.h" + +namespace TagLib { + + namespace ID3v2 { class Tag; class FrameFactory; } + namespace ID3v1 { class Tag; } + namespace APE { class Tag; } + + //! An implementation of TagLib::File with MPEG (MP3) specific methods + + namespace MPEG { + + //! An MPEG file class with some useful methods specific to MPEG + + /*! + * This implements the generic TagLib::File API and additionally provides + * access to properties that are distinct to MPEG files, notably access + * to the different ID3 tags. + */ + + class TAGLIB_EXPORT File : public TagLib::File + { + public: + /*! + * This set of flags is used for various operations and is suitable for + * being OR-ed together. + */ + enum TagTypes { + //! Empty set. Matches no tag types. + NoTags = 0x0000, + //! Matches ID3v1 tags. + ID3v1 = 0x0001, + //! Matches ID3v2 tags. + ID3v2 = 0x0002, + //! Matches APE tags. + APE = 0x0004, + //! Matches all tag types. + AllTags = 0xffff + }; + + /*! + * Contructs an MPEG file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + * + * \deprecated This constructor will be dropped in favor of the one below + * in a future version. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an MPEG file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. The frames will be created using + * \a frameFactory. + * + * \deprecated This constructor will be dropped in favor of the one below + * in a future version. + */ + File(FileName file, ID3v2::FrameFactory *frameFactory, + bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an MPEG file from \a stream. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. The frames will be created using + * \a frameFactory. + */ + // BIC: merge with the above constructor + File(IOStream *stream, ID3v2::FrameFactory *frameFactory, + bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns a pointer to a tag that is the union of the ID3v2 and ID3v1 + * tags. The ID3v2 tag is given priority in reading the information -- if + * requested information exists in both the ID3v2 tag and the ID3v1 tag, + * the information from the ID3v2 tag will be returned. + * + * If you would like more granular control over the content of the tags, + * with the concession of generality, use the tag-type specific calls. + * + * \note As this tag is not implemented as an ID3v2 tag or an ID3v1 tag, + * but a union of the two this pointer may not be cast to the specific + * tag types. + * + * \see ID3v1Tag() + * \see ID3v2Tag() + * \see APETag() + */ + virtual Tag *tag() const; + + /*! + * Implements the unified property interface -- export function. + * If the file contains more than one tag, only the + * first one (in the order ID3v2, APE, ID3v1) will be converted to the + * PropertyMap. + */ + PropertyMap properties() const; + + void removeUnsupportedProperties(const StringList &properties); + + /*! + * Implements the unified tag dictionary interface -- import function. + * As with the export, only one tag is taken into account. If the file + * has no tag at all, ID3v2 will be created. + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Returns the MPEG::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + /*! + * Save the file. If at least one tag -- ID3v1 or ID3v2 -- exists this + * will duplicate its content into the other tag. This returns true + * if saving was successful. + * + * If neither exists or if both tags are empty, this will strip the tags + * from the file. + * + * This is the same as calling save(AllTags); + * + * If you would like more granular control over the content of the tags, + * with the concession of generality, use paramaterized save call below. + * + * \see save(int tags) + */ + virtual bool save(); + + /*! + * Save the file. This will attempt to save all of the tag types that are + * specified by OR-ing together TagTypes values. The save() method above + * uses AllTags. This returns true if saving was successful. + * + * This strips all tags not included in the mask, but does not modify them + * in memory, so later calls to save() which make use of these tags will + * remain valid. This also strips empty tags. + */ + bool save(int tags); + + /*! + * Save the file. This will attempt to save all of the tag types that are + * specified by OR-ing together TagTypes values. The save() method above + * uses AllTags. This returns true if saving was successful. + * + * If \a stripOthers is true this strips all tags not included in the mask, + * but does not modify them in memory, so later calls to save() which make + * use of these tags will remain valid. This also strips empty tags. + */ + // BIC: combine with the above method + bool save(int tags, bool stripOthers); + + /*! + * Save the file. This will attempt to save all of the tag types that are + * specified by OR-ing together TagTypes values. The save() method above + * uses AllTags. This returns true if saving was successful. + * + * If \a stripOthers is true this strips all tags not included in the mask, + * but does not modify them in memory, so later calls to save() which make + * use of these tags will remain valid. This also strips empty tags. + * + * The \a id3v2Version parameter specifies the version of the saved + * ID3v2 tag. It can be either 4 or 3. + */ + // BIC: combine with the above method + bool save(int tags, bool stripOthers, int id3v2Version); + + /*! + * Returns a pointer to the ID3v2 tag of the file. + * + * A tag will always be returned, regardless of whether there is a + * tag in the file or not. Use ID3v2::Tag::isEmpty() to check if + * the tag contains no data. + * + * \note The Tag is still owned by the MPEG::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + ID3v2::Tag *ID3v2Tag(bool create = false); + + /*! + * Returns a pointer to the ID3v1 tag of the file. + * + * A tag will always be returned, regardless of whether there is a + * tag in the file or not. Use Tag::isEmpty() to check if + * the tag contains no data. + * + * \note The Tag is still owned by the MPEG::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + ID3v1::Tag *ID3v1Tag(bool create = false); + + /*! + * Returns a pointer to the APE tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid APE tag. If \a create is true it will create + * an APE tag if one does not exist. + * + * \note The Tag is still owned by the MPEG::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + APE::Tag *APETag(bool create = false); + + /*! + * This will strip the tags that match the OR-ed together TagTypes from the + * file. By default it strips all tags. It returns true if the tags are + * successfully stripped. + * + * This is equivalent to strip(tags, true) + * + * \note This will also invalidate pointers to the ID3 and APE tags + * as their memory will be freed. + */ + bool strip(int tags = AllTags); + + /*! + * This will strip the tags that match the OR-ed together TagTypes from the + * file. By default it strips all tags. It returns true if the tags are + * successfully stripped. + * + * If \a freeMemory is true the ID3 and APE tags will be deleted and + * pointers to them will be invalidated. + */ + // BIC: merge with the method above + bool strip(int tags, bool freeMemory); + + /*! + * Set the ID3v2::FrameFactory to something other than the default. + * + * \see ID3v2FrameFactory + */ + void setID3v2FrameFactory(const ID3v2::FrameFactory *factory); + + /*! + * Returns the position in the file of the first MPEG frame. + */ + long firstFrameOffset(); + + /*! + * Returns the position in the file of the next MPEG frame, + * using the current position as start + */ + long nextFrameOffset(long position); + + /*! + * Returns the position in the file of the previous MPEG frame, + * using the current position as start + */ + long previousFrameOffset(long position); + + /*! + * Returns the position in the file of the last MPEG frame. + */ + long lastFrameOffset(); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + long findID3v2(); + long findID3v1(); + void findAPE(); + + /*! + * MPEG frames can be recognized by the bit pattern 11111111 111, so the + * first byte is easy to check for, however checking to see if the second byte + * starts with \e 111 is a bit more tricky, hence this member function. + */ + static bool secondSynchByte(char byte); + + class FilePrivate; + FilePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/mpegheader.h b/Audio-Frameworks/bin/taglib/headers/mpeg/mpegheader.h new file mode 100644 index 0000000..020ebd0 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/mpegheader.h @@ -0,0 +1,166 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MPEGHEADER_H +#define TAGLIB_MPEGHEADER_H + +#include "taglib_export.h" + +namespace TagLib { + + class ByteVector; + + namespace MPEG { + + //! An implementation of MP3 frame headers + + /*! + * This is an implementation of MPEG Layer III headers. The API follows more + * or less the binary format of these headers. I've used + * this + * document as a reference. + */ + + class TAGLIB_EXPORT Header + { + public: + /*! + * Parses an MPEG header based on \a data. + */ + Header(const ByteVector &data); + + /*! + * Does a shallow copy of \a h. + */ + Header(const Header &h); + + /*! + * Destroys this Header instance. + */ + virtual ~Header(); + + /*! + * Returns true if the frame is at least an appropriate size and has + * legal values. + */ + bool isValid() const; + + /*! + * The MPEG Version. + */ + enum Version { + //! MPEG Version 1 + Version1 = 0, + //! MPEG Version 2 + Version2 = 1, + //! MPEG Version 2.5 + Version2_5 = 2 + }; + + /*! + * Returns the MPEG Version of the header. + */ + Version version() const; + + /*! + * Returns the layer version. This will be between the values 1-3. + */ + int layer() const; + + /*! + * Returns true if the MPEG protection bit is enabled. + */ + bool protectionEnabled() const; + + /*! + * Returns the bitrate encoded in the header. + */ + int bitrate() const; + + /*! + * Returns the sample rate in Hz. + */ + int sampleRate() const; + + /*! + * Returns true if the frame is padded. + */ + bool isPadded() const; + + /*! + * There are a few combinations or one or two channel audio that are + * possible: + */ + enum ChannelMode { + //! Stereo + Stereo = 0, + //! Stereo + JointStereo = 1, + //! Dual Mono + DualChannel = 2, + //! Mono + SingleChannel = 3 + }; + + /*! + * Returns the channel mode for this frame. + */ + ChannelMode channelMode() const; + + /*! + * Returns true if the copyrighted bit is set. + */ + bool isCopyrighted() const; + + /*! + * Returns true if the "original" bit is set. + */ + bool isOriginal() const; + + /*! + * Returns the frame length. + */ + int frameLength() const; + + /*! + * Returns the number of frames per sample. + */ + int samplesPerFrame() const; + + /*! + * Makes a shallow copy of the header. + */ + Header &operator=(const Header &h); + + private: + void parse(const ByteVector &data); + + class HeaderPrivate; + HeaderPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/mpegproperties.h b/Audio-Frameworks/bin/taglib/headers/mpeg/mpegproperties.h new file mode 100644 index 0000000..72e594f --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/mpegproperties.h @@ -0,0 +1,118 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MPEGPROPERTIES_H +#define TAGLIB_MPEGPROPERTIES_H + +#include "taglib_export.h" +#include "audioproperties.h" + +#include "mpegheader.h" + +namespace TagLib { + + namespace MPEG { + + class File; + class XingHeader; + + //! An implementation of audio property reading for MP3 + + /*! + * This reads the data from an MPEG Layer III stream found in the + * AudioProperties API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of MPEG::Properties with the data read from the + * MPEG::File \a file. + */ + Properties(File *file, ReadStyle style = Average); + + /*! + * Destroys this MPEG Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + /*! + * Returns a pointer to the XingHeader if one exists or null if no + * XingHeader was found. + */ + + const XingHeader *xingHeader() const; + + /*! + * Returns the MPEG Version of the file. + */ + Header::Version version() const; + + /*! + * Returns the layer version. This will be between the values 1-3. + */ + int layer() const; + + /*! + * Returns true if the MPEG protection bit is enabled. + */ + bool protectionEnabled() const; + + /*! + * Returns the channel mode for this frame. + */ + Header::ChannelMode channelMode() const; + + /*! + * Returns true if the copyrighted bit is set. + */ + bool isCopyrighted() const; + + /*! + * Returns true if the "original" bit is set. + */ + bool isOriginal() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void read(); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/xingheader.h b/Audio-Frameworks/bin/taglib/headers/mpeg/xingheader.h new file mode 100644 index 0000000..ffe7494 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/xingheader.h @@ -0,0 +1,100 @@ +/*************************************************************************** + copyright : (C) 2003 by Ismael Orenstein + email : orenstein@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_XINGHEADER_H +#define TAGLIB_XINGHEADER_H + +#include "mpegheader.h" +#include "taglib_export.h" + +namespace TagLib { + + class ByteVector; + + namespace MPEG { + + //! An implementation of the Xing VBR headers + + /*! + * This is a minimalistic implementation of the Xing VBR headers. Xing + * headers are often added to VBR (variable bit rate) MP3 streams to make it + * easy to compute the length and quality of a VBR stream. Our implementation + * is only concerned with the total size of the stream (so that we can + * calculate the total playing time and the average bitrate). It uses + * this text + * and the XMMS sources as references. + */ + + class TAGLIB_EXPORT XingHeader + { + public: + /*! + * Parses a Xing header based on \a data. The data must be at least 16 + * bytes long (anything longer than this is discarded). + */ + XingHeader(const ByteVector &data); + + /*! + * Destroy this XingHeader instance. + */ + virtual ~XingHeader(); + + /*! + * Returns true if the data was parsed properly and if there is a valid + * Xing header present. + */ + bool isValid() const; + + /*! + * Returns the total number of frames. + */ + uint totalFrames() const; + + /*! + * Returns the total size of stream in bytes. + */ + uint totalSize() const; + + /*! + * Returns the offset for the start of this Xing header, given the + * version and channels of the frame + */ + // BIC: rename to offset() + static int xingHeaderOffset(TagLib::MPEG::Header::Version v, + TagLib::MPEG::Header::ChannelMode c); + + private: + XingHeader(const XingHeader &); + XingHeader &operator=(const XingHeader &); + + void parse(const ByteVector &data); + + class XingHeaderPrivate; + XingHeaderPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/ogg/flac/oggflacfile.h b/Audio-Frameworks/bin/taglib/headers/ogg/flac/oggflacfile.h new file mode 100644 index 0000000..d437379 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/ogg/flac/oggflacfile.h @@ -0,0 +1,126 @@ +/*************************************************************************** + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_OGGFLACFILE_H +#define TAGLIB_OGGFLACFILE_H + +#include "taglib_export.h" +#include "oggfile.h" +#include "xiphcomment.h" + +#include "flacproperties.h" + +namespace TagLib { + + class Tag; + + namespace Ogg { + + //! An implementation of Ogg FLAC metadata + + /*! + * This is implementation of FLAC metadata for Ogg FLAC files. For "pure" + * FLAC files look under the FLAC hiearchy. + * + * Unlike "pure" FLAC-files, Ogg FLAC only supports Xiph-comments, + * while the audio-properties are the same. + */ + namespace FLAC { + + using TagLib::FLAC::Properties; + + //! An implementation of TagLib::File with Ogg/FLAC specific methods + + /*! + * This implements and provides an interface for Ogg/FLAC files to the + * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing + * the abstract TagLib::File API as well as providing some additional + * information specific to Ogg FLAC files. + */ + + class TAGLIB_EXPORT File : public Ogg::File + { + public: + /*! + * Contructs an Ogg/FLAC file from \a file. If \a readProperties is true + * the file's audio properties will also be read using \a propertiesStyle. + * If false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an Ogg/FLAC file from \a file. If \a readProperties is true + * the file's audio properties will also be read using \a propertiesStyle. + * If false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns the Tag for this file. This will always be a XiphComment. + */ + virtual XiphComment *tag() const; + + /*! + * Returns the FLAC::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + /*! + * Save the file. This will primarily save and update the XiphComment. + * Returns true if the save is successful. + */ + virtual bool save(); + + /*! + * Returns the length of the audio-stream, used by FLAC::Properties for + * calculating the bitrate. + */ + long streamLength(); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + void scan(); + ByteVector streamInfoData(); + ByteVector xiphCommentData(); + + class FilePrivate; + FilePrivate *d; + }; + } // namespace FLAC + } // namespace Ogg +} // namespace TagLib + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/ogg/oggfile.h b/Audio-Frameworks/bin/taglib/headers/ogg/oggfile.h new file mode 100644 index 0000000..1ecf2b9 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/ogg/oggfile.h @@ -0,0 +1,123 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#include "taglib_export.h" +#include "tfile.h" +#include "tbytevectorlist.h" + +#ifndef TAGLIB_OGGFILE_H +#define TAGLIB_OGGFILE_H + +namespace TagLib { + + //! A namespace for the classes used by Ogg-based metadata files + + namespace Ogg { + + class PageHeader; + + //! An implementation of TagLib::File with some helpers for Ogg based formats + + /*! + * This is an implementation of Ogg file page and packet rendering and is of + * use to Ogg based formats. While the API is small this handles the + * non-trivial details of breaking up an Ogg stream into packets and makes + * these available (via subclassing) to the codec meta data implementations. + */ + + class TAGLIB_EXPORT File : public TagLib::File + { + public: + virtual ~File(); + + /*! + * Returns the packet contents for the i-th packet (starting from zero) + * in the Ogg bitstream. + * + * \warning The requires reading at least the packet header for every page + * up to the requested page. + */ + ByteVector packet(uint i); + + /*! + * Sets the packet with index \a i to the value \a p. + */ + void setPacket(uint i, const ByteVector &p); + + /*! + * Returns a pointer to the PageHeader for the first page in the stream or + * null if the page could not be found. + */ + const PageHeader *firstPageHeader(); + + /*! + * Returns a pointer to the PageHeader for the last page in the stream or + * null if the page could not be found. + */ + const PageHeader *lastPageHeader(); + + virtual bool save(); + + protected: + /*! + * Contructs an Ogg file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + * + * \note This constructor is protected since Ogg::File shouldn't be + * instantiated directly but rather should be used through the codec + * specific subclasses. + */ + File(FileName file); + + /*! + * Contructs an Ogg file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + * + * \note This constructor is protected since Ogg::File shouldn't be + * instantiated directly but rather should be used through the codec + * specific subclasses. + */ + File(IOStream *stream); + + private: + File(const File &); + File &operator=(const File &); + + /*! + * Reads the next page and updates the internal "current page" pointer. + */ + bool nextPage(); + void writePageGroup(const List &group); + + class FilePrivate; + FilePrivate *d; + }; + + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/ogg/oggpage.h b/Audio-Frameworks/bin/taglib/headers/ogg/oggpage.h new file mode 100644 index 0000000..e9f4840 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/ogg/oggpage.h @@ -0,0 +1,211 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_OGGPAGE_H +#define TAGLIB_OGGPAGE_H + +#include "taglib_export.h" +#include "tbytevectorlist.h" + +namespace TagLib { + + namespace Ogg { + + class File; + class PageHeader; + + //! An implementation of Ogg pages + + /*! + * This is an implementation of the pages that make up an Ogg stream. + * This handles parsing pages and breaking them down into packets and handles + * the details of packets spanning multiple pages and pages that contiain + * multiple packets. + * + * In most Xiph.org formats the comments are found in the first few packets, + * this however is a reasonably complete implementation of Ogg pages that + * could potentially be useful for non-meta data purposes. + */ + + class TAGLIB_EXPORT Page + { + public: + /*! + * Read an Ogg page from the \a file at the position \a pageOffset. + */ + Page(File *file, long pageOffset); + + virtual ~Page(); + + /*! + * Returns the page's position within the file (in bytes). + */ + long fileOffset() const; + + /*! + * Returns a pointer to the header for this page. This pointer will become + * invalid when the page is deleted. + */ + const PageHeader *header() const; + + /*! + * Returns a copy of the page with \a sequenceNumber set as sequence number. + * + * \see header() + * \see PageHeader::setPageSequenceNumber() + */ + Page* getCopyWithNewPageSequenceNumber(int sequenceNumber); + + /*! + * Returns the index of the first packet wholly or partially contained in + * this page. + * + * \see setFirstPacketIndex() + */ + int firstPacketIndex() const; + + /*! + * Sets the index of the first packet in the page. + * + * \see firstPacketIndex() + */ + void setFirstPacketIndex(int index); + + /*! + * When checking to see if a page contains a given packet this set of flags + * represents the possible values for that packets status in the page. + * + * \see containsPacket() + */ + enum ContainsPacketFlags { + //! No part of the packet is contained in the page + DoesNotContainPacket = 0x0000, + //! The packet is wholly contained in the page + CompletePacket = 0x0001, + //! The page starts with the given packet + BeginsWithPacket = 0x0002, + //! The page ends with the given packet + EndsWithPacket = 0x0004 + }; + + /*! + * Checks to see if the specified \a packet is contained in the current + * page. + * + * \see ContainsPacketFlags + */ + ContainsPacketFlags containsPacket(int index) const; + + /*! + * Returns the number of packets (whole or partial) in this page. + */ + uint packetCount() const; + + /*! + * Returns a list of the packets in this page. + * + * \note Either or both the first and last packets may be only partial. + * \see PageHeader::firstPacketContinued() + */ + ByteVectorList packets() const; + + /*! + * Returns the size of the page in bytes. + */ + int size() const; + + ByteVector render() const; + + /*! + * Defines a strategy for pagination, or grouping pages into Ogg packets, + * for use with pagination methods. + * + * \note Yes, I'm aware that this is not a canonical "Strategy Pattern", + * the term was simply convenient. + */ + enum PaginationStrategy { + /*! + * Attempt to put the specified set of packets into a single Ogg packet. + * If the sum of the packet data is greater than will fit into a single + * Ogg page -- 65280 bytes -- this will fall back to repagination using + * the recommended page sizes. + */ + SinglePagePerGroup, + /*! + * Split the packet or group of packets into pages that conform to the + * sizes recommended in the Ogg standard. + */ + Repaginate + }; + + /*! + * Pack \a packets into Ogg pages using the \a strategy for pagination. + * The page number indicater inside of the rendered packets will start + * with \a firstPage and be incremented for each page rendered. + * \a containsLastPacket should be set to true if \a packets contains the + * last page in the stream and will set the appropriate flag in the last + * rendered Ogg page's header. \a streamSerialNumber should be set to + * the serial number for this stream. + * + * \note The "absolute granule position" is currently always zeroed using + * this method as this suffices for the comment headers. + * + * \warning The pages returned by this method must be deleted by the user. + * You can use List::setAutoDelete(true) to set these pages to be + * automatically deleted when this list passes out of scope. + * + * \see PaginationStrategy + * \see List::setAutoDelete() + */ + static List paginate(const ByteVectorList &packets, + PaginationStrategy strategy, + uint streamSerialNumber, + int firstPage, + bool firstPacketContinued = false, + bool lastPacketCompleted = true, + bool containsLastPacket = false); + + protected: + /*! + * Creates an Ogg packet based on the data in \a packets. The page number + * for each page will be set to \a pageNumber. + */ + Page(const ByteVectorList &packets, + uint streamSerialNumber, + int pageNumber, + bool firstPacketContinued = false, + bool lastPacketCompleted = true, + bool containsLastPacket = false); + + private: + Page(const Page &); + Page &operator=(const Page &); + + class PagePrivate; + PagePrivate *d; + }; + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/ogg/oggpageheader.h b/Audio-Frameworks/bin/taglib/headers/ogg/oggpageheader.h new file mode 100644 index 0000000..742710a --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/ogg/oggpageheader.h @@ -0,0 +1,232 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_OGGPAGEHEADER_H +#define TAGLIB_OGGPAGEHEADER_H + +#include "tlist.h" +#include "tbytevector.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace Ogg { + + class File; + + //! An implementation of the page headers associated with each Ogg::Page + + /*! + * This class implements Ogg page headers which contain the information + * about Ogg pages needed to break them into packets which can be passed on + * to the codecs. + */ + + class TAGLIB_EXPORT PageHeader + { + public: + /*! + * Reads a PageHeader from \a file starting at \a pageOffset. The defaults + * create a page with no (and as such, invalid) data that must be set + * later. + */ + PageHeader(File *file = 0, long pageOffset = -1); + + /*! + * Deletes this instance of the PageHeader. + */ + virtual ~PageHeader(); + + /*! + * Returns true if the header parsed properly and is valid. + */ + bool isValid() const; + + /*! + * Ogg pages contain a list of packets (which are used by the contained + * codecs). The sizes of these pages is encoded in the page header. This + * returns a list of the packet sizes in bytes. + * + * \see setPacketSizes() + */ + List packetSizes() const; + + /*! + * Sets the sizes of the packets in this page to \a sizes. Internally this + * updates the lacing values in the header. + * + * \see packetSizes() + */ + void setPacketSizes(const List &sizes); + + /*! + * Some packets can be continued across multiple pages. If the + * first packet in the current page is a continuation this will return + * true. If this is page starts with a new packet this will return false. + * + * \see lastPacketCompleted() + * \see setFirstPacketContinued() + */ + bool firstPacketContinued() const; + + /*! + * Sets the internal flag indicating if the first packet in this page is + * continued to \a continued. + * + * \see firstPacketContinued() + */ + void setFirstPacketContinued(bool continued); + + /*! + * Returns true if the last packet of this page is completely contained in + * this page. + * + * \see firstPacketContinued() + * \see setLastPacketCompleted() + */ + bool lastPacketCompleted() const; + + /*! + * Sets the internal flag indicating if the last packet in this page is + * complete to \a completed. + * + * \see lastPacketCompleted() + */ + void setLastPacketCompleted(bool completed); + + /*! + * This returns true if this is the first page of the Ogg (logical) stream. + * + * \see setFirstPageOfStream() + */ + bool firstPageOfStream() const; + + /*! + * Marks this page as the first page of the Ogg stream. + * + * \see firstPageOfStream() + */ + void setFirstPageOfStream(bool first); + + /*! + * This returns true if this is the last page of the Ogg (logical) stream. + * + * \see setLastPageOfStream() + */ + bool lastPageOfStream() const; + + /*! + * Marks this page as the last page of the Ogg stream. + * + * \see lastPageOfStream() + */ + void setLastPageOfStream(bool last); + + /*! + * A special value of containing the position of the packet to be + * interpreted by the codec. In the case of Vorbis this contains the PCM + * value and is used to calculate the length of the stream. + * + * \see setAbsoluteGranularPosition() + */ + long long absoluteGranularPosition() const; + + /*! + * A special value of containing the position of the packet to be + * interpreted by the codec. It is only supported here so that it may be + * coppied from one page to another. + * + * \see absoluteGranularPosition() + */ + void setAbsoluteGranularPosition(long long agp); + + /*! + * Every Ogg logical stream is given a random serial number which is common + * to every page in that logical stream. This returns the serial number of + * the stream associated with this packet. + * + * \see setStreamSerialNumber() + */ + uint streamSerialNumber() const; + + /*! + * Every Ogg logical stream is given a random serial number which is common + * to every page in that logical stream. This sets this pages serial + * number. This method should be used when adding new pages to a logical + * stream. + * + * \see streamSerialNumber() + */ + void setStreamSerialNumber(uint n); + + /*! + * Returns the index of the page within the Ogg stream. This helps make it + * possible to determine if pages have been lost. + * + * \see setPageSequenceNumber() + */ + int pageSequenceNumber() const; + + /*! + * Sets the page's position in the stream to \a sequenceNumber. + * + * \see pageSequenceNumber() + */ + void setPageSequenceNumber(int sequenceNumber); + + /*! + * Returns the complete header size. + */ + int size() const; + + /*! + * Returns the size of the data portion of the page -- i.e. the size of the + * page less the header size. + */ + int dataSize() const; + + /*! + * Render the page header to binary data. + * + * \note The checksum -- bytes 22 - 25 -- will be left empty and must be + * filled in when rendering the entire page. + */ + ByteVector render() const; + + private: + PageHeader(const PageHeader &); + PageHeader &operator=(const PageHeader &); + + void read(); + ByteVector lacingValues() const; + + class PageHeaderPrivate; + PageHeaderPrivate *d; + }; + + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/ogg/speex/speexfile.h b/Audio-Frameworks/bin/taglib/headers/ogg/speex/speexfile.h new file mode 100644 index 0000000..c14cf2a --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/ogg/speex/speexfile.h @@ -0,0 +1,107 @@ +/*************************************************************************** + copyright : (C) 2006 by Lukáš Lalinský + email : lalinsky@gmail.com + + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + (original Vorbis implementation) +***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_SPEEXFILE_H +#define TAGLIB_SPEEXFILE_H + +#include "oggfile.h" +#include "xiphcomment.h" + +#include "speexproperties.h" + +namespace TagLib { + + namespace Ogg { + + //! A namespace containing classes for Speex metadata + + namespace Speex { + + //! An implementation of Ogg::File with Speex specific methods + + /*! + * This is the central class in the Ogg Speex metadata processing collection + * of classes. It's built upon Ogg::File which handles processing of the Ogg + * logical bitstream and breaking it down into pages which are handled by + * the codec implementations, in this case Speex specifically. + */ + + class TAGLIB_EXPORT File : public Ogg::File + { + public: + /*! + * Contructs a Speex file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs a Speex file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns the XiphComment for this file. XiphComment implements the tag + * interface, so this serves as the reimplementation of + * TagLib::File::tag(). + */ + virtual Ogg::XiphComment *tag() const; + + /*! + * Returns the Speex::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + virtual bool save(); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + + class FilePrivate; + FilePrivate *d; + }; + } + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/ogg/speex/speexproperties.h b/Audio-Frameworks/bin/taglib/headers/ogg/speex/speexproperties.h new file mode 100644 index 0000000..4720bd8 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/ogg/speex/speexproperties.h @@ -0,0 +1,89 @@ +/*************************************************************************** + copyright : (C) 2006 by Lukáš Lalinský + email : lalinsky@gmail.com + + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + (original Vorbis implementation) +***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_SPEEXPROPERTIES_H +#define TAGLIB_SPEEXPROPERTIES_H + +#include "audioproperties.h" + +namespace TagLib { + + namespace Ogg { + + namespace Speex { + + class File; + + //! An implementation of audio property reading for Ogg Speex + + /*! + * This reads the data from an Ogg Speex stream found in the AudioProperties + * API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of Speex::Properties with the data read from the + * Speex::File \a file. + */ + Properties(File *file, ReadStyle style = Average); + + /*! + * Destroys this Speex::Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + /*! + * Returns the Speex version, currently "0" (as specified by the spec). + */ + int speexVersion() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void read(); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/ogg/vorbis/vorbisfile.h b/Audio-Frameworks/bin/taglib/headers/ogg/vorbis/vorbisfile.h new file mode 100644 index 0000000..15c29d9 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/ogg/vorbis/vorbisfile.h @@ -0,0 +1,139 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_VORBISFILE_H +#define TAGLIB_VORBISFILE_H + +#include "taglib_export.h" +#include "oggfile.h" +#include "xiphcomment.h" + +#include "vorbisproperties.h" + +namespace TagLib { + +/* + * This is just to make this appear to be in the Ogg namespace in the + * documentation. The typedef below will make this work with the current code. + * In the next BIC version of TagLib this will be really moved into the Ogg + * namespace. + */ + +#ifdef DOXYGEN + namespace Ogg { +#endif + + //! A namespace containing classes for Vorbis metadata + + namespace Vorbis { + + + //! An implementation of Ogg::File with Vorbis specific methods + + /*! + * This is the central class in the Ogg Vorbis metadata processing collection + * of classes. It's built upon Ogg::File which handles processing of the Ogg + * logical bitstream and breaking it down into pages which are handled by + * the codec implementations, in this case Vorbis specifically. + */ + + class TAGLIB_EXPORT File : public Ogg::File + { + public: + /*! + * Contructs a Vorbis file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs a Vorbis file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns the XiphComment for this file. XiphComment implements the tag + * interface, so this serves as the reimplementation of + * TagLib::File::tag(). + */ + virtual Ogg::XiphComment *tag() const; + + + /*! + * Implements the unified property interface -- export function. + * This forwards directly to XiphComment::properties(). + */ + PropertyMap properties() const; + + /*! + * Implements the unified tag dictionary interface -- import function. + * Like properties(), this is a forwarder to the file's XiphComment. + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Returns the Vorbis::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + virtual bool save(); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + + class FilePrivate; + FilePrivate *d; + }; + } + +/* + * To keep compatibility with the current version put Vorbis in the Ogg namespace + * only in the docs and provide a typedef to make it work. In the next BIC + * version this will be removed and it will only exist in the Ogg namespace. + */ + +#ifdef DOXYGEN + } +#else + namespace Ogg { namespace Vorbis { typedef TagLib::Vorbis::File File; } } +#endif + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/ogg/vorbis/vorbisproperties.h b/Audio-Frameworks/bin/taglib/headers/ogg/vorbis/vorbisproperties.h new file mode 100644 index 0000000..de46985 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/ogg/vorbis/vorbisproperties.h @@ -0,0 +1,125 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_VORBISPROPERTIES_H +#define TAGLIB_VORBISPROPERTIES_H + +#include "taglib_export.h" +#include "audioproperties.h" + +namespace TagLib { + +/* + * This is just to make this appear to be in the Ogg namespace in the + * documentation. The typedef below will make this work with the current code. + * In the next BIC version of TagLib this will be really moved into the Ogg + * namespace. + */ + +#ifdef DOXYGEN + namespace Ogg { +#endif + + namespace Vorbis { + + class File; + + //! An implementation of audio property reading for Ogg Vorbis + + /*! + * This reads the data from an Ogg Vorbis stream found in the AudioProperties + * API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of Vorbis::Properties with the data read from the + * Vorbis::File \a file. + */ + Properties(File *file, ReadStyle style = Average); + + /*! + * Destroys this VorbisProperties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + /*! + * Returns the Vorbis version, currently "0" (as specified by the spec). + */ + int vorbisVersion() const; + + /*! + * Returns the maximum bitrate as read from the Vorbis identification + * header. + */ + int bitrateMaximum() const; + + /*! + * Returns the nominal bitrate as read from the Vorbis identification + * header. + */ + int bitrateNominal() const; + + /*! + * Returns the minimum bitrate as read from the Vorbis identification + * header. + */ + int bitrateMinimum() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void read(); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } + +/* + * To keep compatibility with the current version put Vorbis in the Ogg namespace + * only in the docs and provide a typedef to make it work. In the next BIC + * version this will be removed and it will only exist in the Ogg namespace. + */ + +#ifdef DOXYGEN + } +#else + namespace Ogg { namespace Vorbis { typedef TagLib::AudioProperties AudioProperties; } } +#endif + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/ogg/xiphcomment.h b/Audio-Frameworks/bin/taglib/headers/ogg/xiphcomment.h new file mode 100644 index 0000000..3b44086 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/ogg/xiphcomment.h @@ -0,0 +1,217 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_VORBISCOMMENT_H +#define TAGLIB_VORBISCOMMENT_H + +#include "tag.h" +#include "tlist.h" +#include "tmap.h" +#include "tstring.h" +#include "tstringlist.h" +#include "tbytevector.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace Ogg { + + /*! + * A mapping between a list of field names, or keys, and a list of values + * associated with that field. + * + * \see XiphComment::fieldListMap() + */ + typedef Map FieldListMap; + + //! Ogg Vorbis comment implementation + + /*! + * This class is an implementation of the Ogg Vorbis comment specification, + * to be found in section 5 of the Ogg Vorbis specification. Because this + * format is also used in other (currently unsupported) Xiph.org formats, it + * has been made part of a generic implementation rather than being limited + * to strictly Vorbis. + * + * Vorbis comments are a simple vector of keys and values, called fields. + * Multiple values for a given key are supported. + * + * \see fieldListMap() + */ + + class TAGLIB_EXPORT XiphComment : public TagLib::Tag + { + public: + /*! + * Constructs an empty Vorbis comment. + */ + XiphComment(); + + /*! + * Constructs a Vorbis comment from \a data. + */ + XiphComment(const ByteVector &data); + + /*! + * Destroys this instance of the XiphComment. + */ + virtual ~XiphComment(); + + virtual String title() const; + virtual String artist() const; + virtual String album() const; + virtual String comment() const; + virtual String genre() const; + virtual uint year() const; + virtual uint track() const; + + virtual void setTitle(const String &s); + virtual void setArtist(const String &s); + virtual void setAlbum(const String &s); + virtual void setComment(const String &s); + virtual void setGenre(const String &s); + virtual void setYear(uint i); + virtual void setTrack(uint i); + + virtual bool isEmpty() const; + + /*! + * Returns the number of fields present in the comment. + */ + uint fieldCount() const; + + /*! + * Returns a reference to the map of field lists. Because Xiph comments + * support multiple fields with the same key, a pure Map would not work. + * As such this is a Map of string lists, keyed on the comment field name. + * + * The standard set of Xiph/Vorbis fields (which may or may not be + * contained in any specific comment) is: + * + *
            + *
          • TITLE
          • + *
          • VERSION
          • + *
          • ALBUM
          • + *
          • ARTIST
          • + *
          • PERFORMER
          • + *
          • COPYRIGHT
          • + *
          • ORGANIZATION
          • + *
          • DESCRIPTION
          • + *
          • GENRE
          • + *
          • DATE
          • + *
          • LOCATION
          • + *
          • CONTACT
          • + *
          • ISRC
          • + *
          + * + * For a more detailed description of these fields, please see the Ogg + * Vorbis specification, section 5.2.2.1. + * + * \note The Ogg Vorbis comment specification does allow these key values + * to be either upper or lower case. However, it is conventional for them + * to be upper case. As such, TagLib, when parsing a Xiph/Vorbis comment, + * converts all fields to uppercase. When you are using this data + * structure, you will need to specify the field name in upper case. + * + * \warning You should not modify this data structure directly, instead + * use addField() and removeField(). + */ + const FieldListMap &fieldListMap() const; + + /*! + * Implements the unified property interface -- export function. + * The result is a one-to-one match of the Xiph comment, since it is + * completely compatible with the property interface (in fact, a Xiph + * comment is nothing more than a map from tag names to list of values, + * as is the dict interface). + */ + PropertyMap properties() const; + + /*! + * Implements the unified property interface -- import function. + * The tags from the given map will be stored one-to-one in the file. + */ + PropertyMap setProperties(const PropertyMap&); + + /*! + * Returns the vendor ID of the Ogg Vorbis encoder. libvorbis 1.0 as the + * most common case always returns "Xiph.Org libVorbis I 20020717". + */ + String vendorID() const; + + /*! + * Add the field specified by \a key with the data \a value. If \a replace + * is true, then all of the other fields with the same key will be removed + * first. + * + * If the field value is empty, the field will be removed. + */ + void addField(const String &key, const String &value, bool replace = true); + + /*! + * Remove the field specified by \a key with the data \a value. If + * \a value is null, all of the fields with the given key will be removed. + */ + void removeField(const String &key, const String &value = String::null); + + /*! + * Returns true if the field is contained within the comment. + * + * \note This is safer than checking for membership in the FieldListMap. + */ + bool contains(const String &key) const; + + /*! + * Renders the comment to a ByteVector suitable for inserting into a file. + */ + ByteVector render() const; // BIC: remove and merge with below + + /*! + * Renders the comment to a ByteVector suitable for inserting into a file. + * + * If \a addFramingBit is true the standard Vorbis comment framing bit will + * be appended. However some formats (notably FLAC) do not work with this + * in place. + */ + ByteVector render(bool addFramingBit) const; + + protected: + /*! + * Reads the tag from the file specified in the constructor and fills the + * FieldListMap. + */ + void parse(const ByteVector &data); + + private: + XiphComment(const XiphComment &); + XiphComment &operator=(const XiphComment &); + + class XiphCommentPrivate; + XiphCommentPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/riff/aiff/aifffile.h b/Audio-Frameworks/bin/taglib/headers/riff/aiff/aifffile.h new file mode 100644 index 0000000..a50c8ec --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/riff/aiff/aifffile.h @@ -0,0 +1,122 @@ +/*************************************************************************** + copyright : (C) 2008 by Scott Wheeler + email : wheeler@kde.org +***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_AIFFFILE_H +#define TAGLIB_AIFFFILE_H + +#include "rifffile.h" +#include "id3v2tag.h" +#include "aiffproperties.h" + +namespace TagLib { + + namespace RIFF { + + //! An implementation of AIFF metadata + + /*! + * This is implementation of AIFF metadata. + * + * This supports an ID3v2 tag as well as reading stream from the ID3 RIFF + * chunk as well as properties from the file. + */ + + namespace AIFF { + + //! An implementation of TagLib::File with AIFF specific methods + + /*! + * This implements and provides an interface for AIFF files to the + * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing + * the abstract TagLib::File API as well as providing some additional + * information specific to AIFF files. + */ + + class TAGLIB_EXPORT File : public TagLib::RIFF::File + { + public: + /*! + * Contructs an AIFF file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an AIFF file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns the Tag for this file. + */ + virtual ID3v2::Tag *tag() const; + + /*! + * Implements the unified property interface -- export function. + * This method forwards to ID3v2::Tag::properties(). + */ + PropertyMap properties() const; + + /*! + * Implements the unified property interface -- import function. + * This method forwards to ID3v2::Tag::setProperties(). + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Returns the AIFF::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + /*! + * Saves the file. + */ + virtual bool save(); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + + class FilePrivate; + FilePrivate *d; + }; + } + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/riff/aiff/aiffproperties.h b/Audio-Frameworks/bin/taglib/headers/riff/aiff/aiffproperties.h new file mode 100644 index 0000000..68e90b7 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/riff/aiff/aiffproperties.h @@ -0,0 +1,83 @@ +/*************************************************************************** + copyright : (C) 2008 by Scott Wheeler + email : wheeler@kde.org +***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_AIFFPROPERTIES_H +#define TAGLIB_AIFFPROPERTIES_H + +#include "audioproperties.h" + +namespace TagLib { + + namespace RIFF { + + namespace AIFF { + + class File; + + //! An implementation of audio property reading for AIFF + + /*! + * This reads the data from an AIFF stream found in the AudioProperties + * API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of AIFF::Properties with the data read from the + * ByteVector \a data. + */ + Properties(const ByteVector &data, ReadStyle style); + + /*! + * Destroys this AIFF::Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + int sampleWidth() const; + uint sampleFrames() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void read(const ByteVector &data); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/riff/rifffile.h b/Audio-Frameworks/bin/taglib/headers/riff/rifffile.h new file mode 100644 index 0000000..e418dbb --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/riff/rifffile.h @@ -0,0 +1,122 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_RIFFFILE_H +#define TAGLIB_RIFFFILE_H + +#include "taglib_export.h" +#include "tfile.h" + +namespace TagLib { + + //! An implementation of TagLib::File with RIFF specific methods + + namespace RIFF { + + //! An RIFF file class with some useful methods specific to RIFF + + /*! + * This implements the generic TagLib::File API and additionally provides + * access to properties that are distinct to RIFF files, notably access + * to the different ID3 tags. + */ + + class TAGLIB_EXPORT File : public TagLib::File + { + public: + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + protected: + + enum Endianness { BigEndian, LittleEndian }; + + File(FileName file, Endianness endianness); + File(IOStream *stream, Endianness endianness); + + /*! + * \return The size of the main RIFF chunk. + */ + uint riffSize() const; + + /*! + * \return The number of chunks in the file. + */ + uint chunkCount() const; + + /*! + * \return The offset within the file for the selected chunk number. + */ + uint chunkOffset(uint i) const; + + /*! + * \return The size of the chunk data. + */ + uint chunkDataSize(uint i) const; + + /*! + * \return The size of the padding after the chunk (can be either 0 or 1). + */ + uint chunkPadding(uint i) const; + + /*! + * \return The name of the specified chunk, for instance, "COMM" or "ID3 " + */ + ByteVector chunkName(uint i) const; + + /*! + * Reads the chunk data from the file and returns it. + * + * \note This \e will move the read pointer for the file. + */ + ByteVector chunkData(uint i); + + /*! + * Sets the data for the chunk \a name to \a data. If a chunk with the + * given name already exists it will be overwritten, otherwise it will be + * created after the existing chunks. + * + * \warning This will update the file immediately. + */ + void setChunkData(const ByteVector &name, const ByteVector &data); + + private: + File(const File &); + File &operator=(const File &); + + void read(); + void writeChunk(const ByteVector &name, const ByteVector &data, + ulong offset, ulong replace = 0, + uint leadingPadding = 0); + + class FilePrivate; + FilePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/riff/wav/wavfile.h b/Audio-Frameworks/bin/taglib/headers/riff/wav/wavfile.h new file mode 100644 index 0000000..861f3f7 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/riff/wav/wavfile.h @@ -0,0 +1,122 @@ +/*************************************************************************** + copyright : (C) 2008 by Scott Wheeler + email : wheeler@kde.org +***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_WAVFILE_H +#define TAGLIB_WAVFILE_H + +#include "rifffile.h" +#include "id3v2tag.h" +#include "wavproperties.h" + +namespace TagLib { + + namespace RIFF { + + //! An implementation of WAV metadata + + /*! + * This is implementation of WAV metadata. + * + * This supports an ID3v2 tag as well as reading stream from the ID3 RIFF + * chunk as well as properties from the file. + */ + + namespace WAV { + + //! An implementation of TagLib::File with WAV specific methods + + /*! + * This implements and provides an interface for WAV files to the + * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing + * the abstract TagLib::File API as well as providing some additional + * information specific to WAV files. + */ + + class TAGLIB_EXPORT File : public TagLib::RIFF::File + { + public: + /*! + * Contructs an WAV file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an WAV file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns the Tag for this file. + */ + virtual ID3v2::Tag *tag() const; + + /*! + * Implements the unified property interface -- export function. + * This method forwards to ID3v2::Tag::properties(). + */ + PropertyMap properties() const; + + /*! + * Implements the unified property interface -- import function. + * This method forwards to ID3v2::Tag::setProperties(). + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Returns the WAV::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + /*! + * Saves the file. + */ + virtual bool save(); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + + class FilePrivate; + FilePrivate *d; + }; + } + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/riff/wav/wavproperties.h b/Audio-Frameworks/bin/taglib/headers/riff/wav/wavproperties.h new file mode 100644 index 0000000..2023f53 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/riff/wav/wavproperties.h @@ -0,0 +1,92 @@ +/*************************************************************************** + copyright : (C) 2008 by Scott Wheeler + email : wheeler@kde.org +***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_WAVPROPERTIES_H +#define TAGLIB_WAVPROPERTIES_H + +#include "taglib.h" +#include "audioproperties.h" + +namespace TagLib { + + class ByteVector; + + namespace RIFF { + + namespace WAV { + + class File; + + //! An implementation of audio property reading for WAV + + /*! + * This reads the data from an WAV stream found in the AudioProperties + * API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of WAV::Properties with the data read from the + * ByteVector \a data. + */ + Properties(const ByteVector &data, ReadStyle style); + + /*! + * Create an instance of WAV::Properties with the data read from the + * ByteVector \a data and the length calculated using \a streamLength. + */ + Properties(const ByteVector &data, uint streamLength, ReadStyle style); + + /*! + * Destroys this WAV::Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + int sampleWidth() const; + uint sampleFrames() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void read(const ByteVector &data); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/s3m/s3mfile.h b/Audio-Frameworks/bin/taglib/headers/s3m/s3mfile.h new file mode 100644 index 0000000..0605b2b --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/s3m/s3mfile.h @@ -0,0 +1,101 @@ +/*************************************************************************** + copyright : (C) 2011 by Mathias Panzenböck + email : grosser.meister.morti@gmx.net + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * + * MA 02110-1301 USA * + ***************************************************************************/ + +#ifndef TAGLIB_S3MFILE_H +#define TAGLIB_S3MFILE_H + +#include "tfile.h" +#include "audioproperties.h" +#include "taglib_export.h" +#include "modfilebase.h" +#include "modtag.h" +#include "s3mproperties.h" + +namespace TagLib { + + namespace S3M { + + class TAGLIB_EXPORT File : public Mod::FileBase { + public: + /*! + * Contructs a ScreamTracker III file from \a file. If \a readProperties + * is true the file's audio properties will also be read using + * \a propertiesStyle. If false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + AudioProperties::ReadStyle propertiesStyle = + AudioProperties::Average); + + /*! + * Contructs a ScreamTracker III file from \a stream. If \a readProperties + * is true the file's audio properties will also be read using + * \a propertiesStyle. If false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + AudioProperties::ReadStyle propertiesStyle = + AudioProperties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + Mod::Tag *tag() const; + + /*! + * Implements the unified property interface -- export function. + * Forwards to Mod::Tag::properties(). + */ + PropertyMap properties() const; + + /*! + * Implements the unified property interface -- import function. + * Forwards to Mod::Tag::setProperties(). + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Returns the S3M::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + S3M::Properties *audioProperties() const; + + /*! + * Save the file. + * This is the same as calling save(AllTags); + * + * \note Saving ScreamTracker III tags is not supported. + */ + bool save(); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties); + + class FilePrivate; + FilePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/s3m/s3mproperties.h b/Audio-Frameworks/bin/taglib/headers/s3m/s3mproperties.h new file mode 100644 index 0000000..6e9f1d2 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/s3m/s3mproperties.h @@ -0,0 +1,88 @@ +/*************************************************************************** + copyright : (C) 2011 by Mathias Panzenböck + email : grosser.meister.morti@gmx.net + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * + * MA 02110-1301 USA * + ***************************************************************************/ + +#ifndef TAGLIB_S3MPROPERTIES_H +#define TAGLIB_S3MPROPERTIES_H + +#include "taglib.h" +#include "audioproperties.h" + +namespace TagLib { + namespace S3M { + class TAGLIB_EXPORT Properties : public AudioProperties { + friend class File; + public: + /*! Flag bits. */ + enum { + ST2Vibrato = 1, + ST2Tempo = 2, + AmigaSlides = 4, + Vol0MixOptimizations = 8, + AmigaLimits = 16, + EnableFilter = 32, + CustomData = 128 + }; + + Properties(AudioProperties::ReadStyle propertiesStyle); + virtual ~Properties(); + + int length() const; + int bitrate() const; + int sampleRate() const; + int channels() const; + + ushort lengthInPatterns() const; + bool stereo() const; + ushort sampleCount() const; + ushort patternCount() const; + ushort flags() const; + ushort trackerVersion() const; + ushort fileFormatVersion() const; + uchar globalVolume() const; + uchar masterVolume() const; + uchar tempo() const; + uchar bpmSpeed() const; + + void setChannels(int channels); + + void setLengthInPatterns (ushort lengthInPatterns); + void setStereo (bool stereo); + void setSampleCount (ushort sampleCount); + void setPatternCount (ushort patternCount); + void setFlags (ushort flags); + void setTrackerVersion (ushort trackerVersion); + void setFileFormatVersion(ushort fileFormatVersion); + void setGlobalVolume (uchar globalVolume); + void setMasterVolume (uchar masterVolume); + void setTempo (uchar tempo); + void setBpmSpeed (uchar bpmSpeed); + + private: + Properties(const Properties&); + Properties &operator=(const Properties&); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/tag.h b/Audio-Frameworks/bin/taglib/headers/tag.h new file mode 100644 index 0000000..76c9a82 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/tag.h @@ -0,0 +1,201 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_TAG_H +#define TAGLIB_TAG_H + +#include "taglib_export.h" +#include "tstring.h" + +namespace TagLib { + + //! A simple, generic interface to common audio meta data fields + + /*! + * This is an attempt to abstract away the difference in the meta data formats + * of various audio codecs and tagging schemes. As such it is generally a + * subset of what is available in the specific formats but should be suitable + * for most applications. This is meant to compliment the generic APIs found + * in TagLib::AudioProperties, TagLib::File and TagLib::FileRef. + */ + + class PropertyMap; + + class TAGLIB_EXPORT Tag + { + public: + + /*! + * Detroys this Tag instance. + */ + virtual ~Tag(); + + /*! + * Exports the tags of the file as dictionary mapping (human readable) tag + * names (Strings) to StringLists of tag values. + * The default implementation in this class considers only the usual built-in + * tags (artist, album, ...) and only one value per key. + */ + PropertyMap properties() const; + + /*! + * Removes unsupported properties, or a subset of them, from the tag. + * The parameter \a properties must contain only entries from + * properties().unsupportedData(). + * BIC: Will become virtual in future releases. Currently the non-virtual + * standard implementation of TagLib::Tag does nothing, since there are + * no unsupported elements. + */ + void removeUnsupportedProperties(const StringList& properties); + + /*! + * Sets the tags of this File to those specified in \a properties. This default + * implementation sets only the tags for which setter methods exist in this class + * (artist, album, ...), and only one value per key; the rest will be contained + * in the returned PropertyMap. + */ + PropertyMap setProperties(const PropertyMap &properties); + + /*! + * Returns the track name; if no track name is present in the tag + * String::null will be returned. + */ + virtual String title() const = 0; + + /*! + * Returns the artist name; if no artist name is present in the tag + * String::null will be returned. + */ + virtual String artist() const = 0; + + /*! + * Returns the album name; if no album name is present in the tag + * String::null will be returned. + */ + virtual String album() const = 0; + + /*! + * Returns the track comment; if no comment is present in the tag + * String::null will be returned. + */ + virtual String comment() const = 0; + + /*! + * Returns the genre name; if no genre is present in the tag String::null + * will be returned. + */ + virtual String genre() const = 0; + + /*! + * Returns the year; if there is no year set, this will return 0. + */ + virtual uint year() const = 0; + + /*! + * Returns the track number; if there is no track number set, this will + * return 0. + */ + virtual uint track() const = 0; + + /*! + * Sets the title to \a s. If \a s is String::null then this value will be + * cleared. + */ + virtual void setTitle(const String &s) = 0; + + /*! + * Sets the artist to \a s. If \a s is String::null then this value will be + * cleared. + */ + virtual void setArtist(const String &s) = 0; + + /*! + * Sets the album to \a s. If \a s is String::null then this value will be + * cleared. + */ + virtual void setAlbum(const String &s) = 0; + + /*! + * Sets the comment to \a s. If \a s is String::null then this value will be + * cleared. + */ + virtual void setComment(const String &s) = 0; + + /*! + * Sets the genre to \a s. If \a s is String::null then this value will be + * cleared. For tag formats that use a fixed set of genres, the appropriate + * value will be selected based on a string comparison. A list of available + * genres for those formats should be available in that type's + * implementation. + */ + virtual void setGenre(const String &s) = 0; + + /*! + * Sets the year to \a i. If \a s is 0 then this value will be cleared. + */ + virtual void setYear(uint i) = 0; + + /*! + * Sets the track to \a i. If \a s is 0 then this value will be cleared. + */ + virtual void setTrack(uint i) = 0; + + /*! + * Returns true if the tag does not contain any data. This should be + * reimplemented in subclasses that provide more than the basic tagging + * abilities in this class. + */ + virtual bool isEmpty() const; + + /*! + * Copies the generic data from one tag to another. + * + * \note This will no affect any of the lower level details of the tag. For + * instance if any of the tag type specific data (maybe a URL for a band) is + * set, this will not modify or copy that. This just copies using the API + * in this class. + * + * If \a overwrite is true then the values will be unconditionally copied. + * If false only empty values will be overwritten. + */ + static void duplicate(const Tag *source, Tag *target, bool overwrite = true); + + protected: + /*! + * Construct a Tag. This is protected since tags should only be instantiated + * through subclasses. + */ + Tag(); + + private: + Tag(const Tag &); + Tag &operator=(const Tag &); + + class TagPrivate; + TagPrivate *d; + }; +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/taglib_export.h b/Audio-Frameworks/bin/taglib/headers/taglib_export.h new file mode 100644 index 0000000..3e86855 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/taglib_export.h @@ -0,0 +1,47 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_EXPORT_H +#define TAGLIB_EXPORT_H + +#if defined(TAGLIB_STATIC) +#define TAGLIB_EXPORT +#elif (defined(_WIN32) || defined(_WIN64)) +#ifdef MAKE_TAGLIB_LIB +#define TAGLIB_EXPORT __declspec(dllexport) +#else +#define TAGLIB_EXPORT __declspec(dllimport) +#endif +#elif defined(__GNUC__) && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 1) +#define TAGLIB_EXPORT __attribute__ ((visibility("default"))) +#else +#define TAGLIB_EXPORT +#endif + +#ifndef TAGLIB_NO_CONFIG +#include "taglib_config.h" +#endif + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/tagunion.h b/Audio-Frameworks/bin/taglib/headers/tagunion.h new file mode 100644 index 0000000..e94d523 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/tagunion.h @@ -0,0 +1,95 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_TAGUNION_H +#define TAGLIB_TAGUNION_H + +#include "tag.h" + +#ifndef DO_NOT_DOCUMENT + +namespace TagLib { + + /*! + * \internal + */ + + class TagUnion : public Tag + { + public: + + enum AccessType { Read, Write }; + + /*! + * Creates a TagLib::Tag that is the union of \a first, \a second, and + * \a third. The TagUnion takes ownership of these tags and will handle + * their deletion. + */ + TagUnion(Tag *first = 0, Tag *second = 0, Tag *third = 0); + + virtual ~TagUnion(); + + Tag *operator[](int index) const; + Tag *tag(int index) const; + + void set(int index, Tag *tag); + + virtual String title() const; + virtual String artist() const; + virtual String album() const; + virtual String comment() const; + virtual String genre() const; + virtual uint year() const; + virtual uint track() const; + + virtual void setTitle(const String &s); + virtual void setArtist(const String &s); + virtual void setAlbum(const String &s); + virtual void setComment(const String &s); + virtual void setGenre(const String &s); + virtual void setYear(uint i); + virtual void setTrack(uint i); + virtual bool isEmpty() const; + + template T *access(int index, bool create) + { + if(!create || tag(index)) + return static_cast(tag(index)); + + set(index, new T); + return static_cast(tag(index)); + } + + private: + TagUnion(const Tag &); + TagUnion &operator=(const Tag &); + + class TagUnionPrivate; + TagUnionPrivate *d; + }; +} + +#endif +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/toolkit/taglib.h b/Audio-Frameworks/bin/taglib/headers/toolkit/taglib.h new file mode 100644 index 0000000..dda9c83 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/toolkit/taglib.h @@ -0,0 +1,226 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_H +#define TAGLIB_H + +#define TAGLIB_MAJOR_VERSION 1 +#define TAGLIB_MINOR_VERSION 7 +#define TAGLIB_PATCH_VERSION 0 + +#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 1)) +#define TAGLIB_IGNORE_MISSING_DESTRUCTOR _Pragma("GCC diagnostic ignored \"-Wnon-virtual-dtor\"") +#else +#define TAGLIB_IGNORE_MISSING_DESTRUCTOR +#endif + +#if (defined(_MSC_VER) && _MSC_VER >= 1600) +#define TAGLIB_CONSTRUCT_BITSET(x) static_cast(x) +#else +#define TAGLIB_CONSTRUCT_BITSET(x) static_cast(x) +#endif + +#include + +#ifdef __APPLE__ +# include +# define TAGLIB_ATOMIC_MAC +#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# define NOMINMAX +# include +# define TAGLIB_ATOMIC_WIN +#elif defined (__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 401) \ + && (defined(__i386__) || defined(__i486__) || defined(__i586__) || \ + defined(__i686__) || defined(__x86_64) || defined(__ia64)) \ + && !defined(__INTEL_COMPILER) +# define TAGLIB_ATOMIC_GCC +#elif defined(__ia64) && defined(__INTEL_COMPILER) +# include +# define TAGLIB_ATOMIC_GCC +#endif + +//! A namespace for all TagLib related classes and functions + +/*! + * This namespace contains everything in TagLib. For projects working with + * TagLib extensively it may be convenient to add a + * \code + * using namespace TagLib; + * \endcode + */ + +namespace TagLib { + + class String; + + typedef wchar_t wchar; + typedef unsigned char uchar; + typedef unsigned short ushort; + typedef unsigned int uint; + typedef unsigned long ulong; + + /*! + * Unfortunately std::wstring isn't defined on some systems, (i.e. GCC < 3) + * so I'm providing something here that should be constant. + */ + typedef std::basic_string wstring; + +#ifndef DO_NOT_DOCUMENT // Tell Doxygen to skip this class. + /*! + * \internal + * This is just used as a base class for shared classes in TagLib. + * + * \warning This is not part of the TagLib public API! + */ + + class RefCounter + { + public: + RefCounter() : refCount(1) {} + +#ifdef TAGLIB_ATOMIC_MAC + void ref() { OSAtomicIncrement32Barrier(const_cast(&refCount)); } + bool deref() { return ! OSAtomicDecrement32Barrier(const_cast(&refCount)); } + int32_t count() { return refCount; } + private: + volatile int32_t refCount; +#elif defined(TAGLIB_ATOMIC_WIN) + void ref() { InterlockedIncrement(&refCount); } + bool deref() { return ! InterlockedDecrement(&refCount); } + long count() { return refCount; } + private: + volatile long refCount; +#elif defined(TAGLIB_ATOMIC_GCC) + void ref() { __sync_add_and_fetch(&refCount, 1); } + bool deref() { return ! __sync_sub_and_fetch(&refCount, 1); } + int count() { return refCount; } + private: + volatile int refCount; +#else + void ref() { refCount++; } + bool deref() { return ! --refCount; } + int count() { return refCount; } + private: + uint refCount; +#endif + + }; + +#endif // DO_NOT_DOCUMENT + +} + +/*! + * \mainpage TagLib + * + * \section intro Introduction + * + * TagLib is a library for reading and editing audio meta data, commonly know as \e tags. + * + * Features: + * - A clean, high level, C++ API to handling audio meta data. + * - Format specific APIs for advanced API users. + * - ID3v1, ID3v2, APE, FLAC, Xiph, iTunes-style MP4 and WMA tag formats. + * - MP3, MPC, FLAC, MP4, ASF, AIFF, WAV, TrueAudio, WavPack, Ogg FLAC, Ogg Vorbis and Speex file formats. + * - Basic audio file properties such as length, sample rate, etc. + * - Long term binary and source compatibility. + * - Extensible design, notably the ability to add other formats or extend current formats as a library user. + * - Full support for unicode and internationalized tags. + * - Dual MPL and + * LGPL licenses. + * - No external toolkit dependancies. + * + * \section why Why TagLib? + * + * TagLib originally was written to provide an updated and improved ID3v2 implementation in C++ for use + * in a variety of Open Source projects. Since development began in 2002 and the 1.0 release in 2004 + * it has expanded to cover a wide variety of tag and file formats and is used in a wide variety of + * Open Source and proprietary applications. It now supports a variety of UNIXes, including Apple's OS + * X, as well as Microsoft Windows. + * + * \section commercial Usage in Commercial Applications + * + * TagLib's licenses \e do allow usage within propriety (\e closed) applications, however TagLib is \e not + * public domain. Please note the requirements of the LGPL or MPL, and adhere to at least one of them. + * In simple terms, you must at a minimum note your usage of TagLib, note the licensing terms of TagLib and + * if you make changes to TagLib publish them. Please review the licenses above before using TagLib in your + * software. Note that you may choose either the MPL or the LGPL, you do not have to fulfill the + * requirements of both. + * + * \section installing Installing TagLib + * + * Please see the TagLib website for the latest + * downloads. + * + * TagLib can be built using the CMake build system. TagLib installs a taglib-config and pkg-config file to + * make it easier to integrate into various build systems. Note that TagLib's include install directory \e must + * be included in the header include path. Simply adding will \e not work. + * + * \section start Getting Started + * + * TagLib provides both simple, abstract APIs which make it possible to ignore the differences between tagging + * formats and format specific APIs which allow programmers to work with the features of specific tagging + * schemes. There is a similar abstraction mechanism for AudioProperties. + * + * The best place to start is with the Class Hierarchy linked at the top of the page. The File and + * AudioProperties classes and their subclasses are the core of TagLib. The FileRef class is also a convenient + * way for using a value-based handle. + * + * \note When working with FileRef please consider that it has only the most basic (extension-based) file + * type resolution. Please see its documentation on how to plug in more advanced file type resolution. (Such + * resolution may be part of later TagLib releases by default.) + * + * Here's a very simple example with TagLib: + * + * \code + * + * TagLib::FileRef f("Latex Solar Beef.mp3"); + * TagLib::String artist = f.tag()->artist(); // artist == "Frank Zappa" + * + * f.tag()->setAlbum("Fillmore East"); + * f.save(); + * + * TagLib::FileRef g("Free City Rhymes.ogg"); + * TagLib::String album = g.tag()->album(); // album == "NYC Ghosts & Flowers" + * + * g.tag()->setTrack(1); + * g.save(); + * + * \endcode + * + * More examples can be found in the \e examples directory of the source distribution. + * + * \section Contact + * + * Questions about TagLib should be directed to the TagLib mailing list, not directly to the author. + * + * - TagLib Homepage + * - TagLib Mailing List (taglib-devel@kde.org) + * + * \author Scott Wheeler et al. + * + */ + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/toolkit/tbytevector.h b/Audio-Frameworks/bin/taglib/headers/toolkit/tbytevector.h new file mode 100644 index 0000000..0c58326 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/toolkit/tbytevector.h @@ -0,0 +1,425 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_BYTEVECTOR_H +#define TAGLIB_BYTEVECTOR_H + +#include "taglib.h" +#include "taglib_export.h" + +#include +#include + +namespace TagLib { + + //! A byte vector + + /*! + * This class provides a byte vector with some methods that are useful for + * tagging purposes. Many of the search functions are tailored to what is + * useful for finding tag related paterns in a data array. + */ + + class TAGLIB_EXPORT ByteVector + { + public: +#ifndef DO_NOT_DOCUMENT + typedef std::vector::iterator Iterator; + typedef std::vector::const_iterator ConstIterator; +#endif + + /*! + * Constructs an empty byte vector. + */ + ByteVector(); + + /*! + * Construct a vector of size \a size with all values set to \a value by + * default. + */ + ByteVector(uint size, char value = 0); + + /*! + * Contructs a byte vector that is a copy of \a v. + */ + ByteVector(const ByteVector &v); + + /*! + * Contructs a byte vector that contains \a c. + */ + ByteVector(char c); + + /*! + * Constructs a byte vector that copies \a data for up to \a length bytes. + */ + ByteVector(const char *data, uint length); + + /*! + * Constructs a byte vector that copies \a data up to the first null + * byte. The behavior is undefined if \a data is not null terminated. + * This is particularly useful for constructing byte arrays from string + * constants. + */ + ByteVector(const char *data); + + /*! + * Destroys this ByteVector instance. + */ + virtual ~ByteVector(); + + /*! + * Sets the data for the byte array using the first \a length bytes of \a data + */ + ByteVector &setData(const char *data, uint length); + + /*! + * Sets the data for the byte array copies \a data up to the first null + * byte. The behavior is undefined if \a data is not null terminated. + */ + ByteVector &setData(const char *data); + + /*! + * Returns a pointer to the internal data structure. + * + * \warning Care should be taken when modifying this data structure as it is + * easy to corrupt the ByteVector when doing so. Specifically, while the + * data may be changed, its length may not be. + */ + char *data(); + + /*! + * Returns a pointer to the internal data structure which may not be modified. + */ + const char *data() const; + + /*! + * Returns a byte vector made up of the bytes starting at \a index and + * for \a length bytes. If \a length is not specified it will return the bytes + * from \a index to the end of the vector. + */ + ByteVector mid(uint index, uint length = 0xffffffff) const; + + /*! + * This essentially performs the same as operator[](), but instead of causing + * a runtime error if the index is out of bounds, it will return a null byte. + */ + char at(uint index) const; + + /*! + * Searches the ByteVector for \a pattern starting at \a offset and returns + * the offset. Returns -1 if the pattern was not found. If \a byteAlign is + * specified the pattern will only be matched if it starts on a byte divisible + * by \a byteAlign (starting from \a offset). + */ + int find(const ByteVector &pattern, uint offset = 0, int byteAlign = 1) const; + + /*! + * Searches the ByteVector for \a pattern starting from either the end of the + * vector or \a offset and returns the offset. Returns -1 if the pattern was + * not found. If \a byteAlign is specified the pattern will only be matched + * if it starts on a byte divisible by \a byteAlign (starting from \a offset). + */ + int rfind(const ByteVector &pattern, uint offset = 0, int byteAlign = 1) const; + + /*! + * Checks to see if the vector contains the \a pattern starting at position + * \a offset. Optionally, if you only want to search for part of the pattern + * you can specify an offset within the pattern to start from. Also, you can + * specify to only check for the first \a patternLength bytes of \a pattern with + * the \a patternLength argument. + */ + bool containsAt(const ByteVector &pattern, uint offset, uint patternOffset = 0, uint patternLength = 0xffffffff) const; + + /*! + * Returns true if the vector starts with \a pattern. + */ + bool startsWith(const ByteVector &pattern) const; + + /*! + * Returns true if the vector ends with \a pattern. + */ + bool endsWith(const ByteVector &pattern) const; + + /*! + * Replaces \a pattern with \a with and returns a reference to the ByteVector + * after the operation. This \e does modify the vector. + */ + ByteVector &replace(const ByteVector &pattern, const ByteVector &with); + + /*! + * Checks for a partial match of \a pattern at the end of the vector. It + * returns the offset of the partial match within the vector, or -1 if the + * pattern is not found. This method is particularly useful when searching for + * patterns that start in one vector and end in another. When combined with + * startsWith() it can be used to find a pattern that overlaps two buffers. + * + * \note This will not match the complete pattern at the end of the string; use + * endsWith() for that. + */ + int endsWithPartialMatch(const ByteVector &pattern) const; + + /*! + * Appends \a v to the end of the ByteVector. + */ + ByteVector &append(const ByteVector &v); + + /*! + * Clears the data. + */ + ByteVector &clear(); + + /*! + * Returns the size of the array. + */ + uint size() const; + + /*! + * Resize the vector to \a size. If the vector is currently less than + * \a size, pad the remaining spaces with \a padding. Returns a reference + * to the resized vector. + */ + ByteVector &resize(uint size, char padding = 0); + + /*! + * Returns an Iterator that points to the front of the vector. + */ + Iterator begin(); + + /*! + * Returns a ConstIterator that points to the front of the vector. + */ + ConstIterator begin() const; + + /*! + * Returns an Iterator that points to the back of the vector. + */ + Iterator end(); + + /*! + * Returns a ConstIterator that points to the back of the vector. + */ + ConstIterator end() const; + + /*! + * Returns true if the vector is null. + * + * \note A vector may be empty without being null. + * \see isEmpty() + */ + bool isNull() const; + + /*! + * Returns true if the ByteVector is empty. + * + * \see size() + * \see isNull() + */ + bool isEmpty() const; + + /*! + * Returns a CRC checksum of the byte vector's data. + */ + uint checksum() const; + + /*! + * Converts the first 4 bytes of the vector to an unsigned integer. + * + * If \a mostSignificantByteFirst is true this will operate left to right + * evaluating the integer. For example if \a mostSignificantByteFirst is + * true then $00 $00 $00 $01 == 0x00000001 == 1, if false, $01 00 00 00 == + * 0x01000000 == 1. + * + * \see fromUInt() + */ + uint toUInt(bool mostSignificantByteFirst = true) const; + + /*! + * Converts the first 2 bytes of the vector to a short. + * + * If \a mostSignificantByteFirst is true this will operate left to right + * evaluating the integer. For example if \a mostSignificantByteFirst is + * true then $00 $01 == 0x0001 == 1, if false, $01 00 == 0x01000000 == 1. + * + * \see fromShort() + */ + short toShort(bool mostSignificantByteFirst = true) const; + + /*! + * Converts the first 2 bytes of the vector to a unsigned short. + * + * If \a mostSignificantByteFirst is true this will operate left to right + * evaluating the integer. For example if \a mostSignificantByteFirst is + * true then $00 $01 == 0x0001 == 1, if false, $01 00 == 0x01000000 == 1. + * + * \see fromShort() + */ + unsigned short toUShort(bool mostSignificantByteFirst = true) const; + + /*! + * Converts the first 8 bytes of the vector to a (signed) long long. + * + * If \a mostSignificantByteFirst is true this will operate left to right + * evaluating the integer. For example if \a mostSignificantByteFirst is + * true then $00 00 00 00 00 00 00 01 == 0x0000000000000001 == 1, + * if false, $01 00 00 00 00 00 00 00 == 0x0100000000000000 == 1. + * + * \see fromUInt() + */ + long long toLongLong(bool mostSignificantByteFirst = true) const; + + /*! + * Creates a 4 byte ByteVector based on \a value. If + * \a mostSignificantByteFirst is true, then this will operate left to right + * in building the ByteVector. For example if \a mostSignificantByteFirst is + * true then $00 00 00 01 == 0x00000001 == 1, if false, $01 00 00 00 == + * 0x01000000 == 1. + * + * \see toUInt() + */ + static ByteVector fromUInt(uint value, bool mostSignificantByteFirst = true); + + /*! + * Creates a 2 byte ByteVector based on \a value. If + * \a mostSignificantByteFirst is true, then this will operate left to right + * in building the ByteVector. For example if \a mostSignificantByteFirst is + * true then $00 01 == 0x0001 == 1, if false, $01 00 == 0x0100 == 1. + * + * \see toShort() + */ + static ByteVector fromShort(short value, bool mostSignificantByteFirst = true); + + /*! + * Creates a 8 byte ByteVector based on \a value. If + * \a mostSignificantByteFirst is true, then this will operate left to right + * in building the ByteVector. For example if \a mostSignificantByteFirst is + * true then $00 00 00 01 == 0x0000000000000001 == 1, if false, + * $01 00 00 00 00 00 00 00 == 0x0100000000000000 == 1. + * + * \see toLongLong() + */ + static ByteVector fromLongLong(long long value, bool mostSignificantByteFirst = true); + + /*! + * Returns a ByteVector based on the CString \a s. + */ + static ByteVector fromCString(const char *s, uint length = 0xffffffff); + + /*! + * Returns a const refernence to the byte at \a index. + */ + const char &operator[](int index) const; + + /*! + * Returns a reference to the byte at \a index. + */ + char &operator[](int index); + + /*! + * Returns true if this ByteVector and \a v are equal. + */ + bool operator==(const ByteVector &v) const; + + /*! + * Returns true if this ByteVector and \a v are not equal. + */ + bool operator!=(const ByteVector &v) const; + + /*! + * Returns true if this ByteVector and the null terminated C string \a s + * contain the same data. + */ + bool operator==(const char *s) const; + + /*! + * Returns true if this ByteVector and the null terminated C string \a s + * do not contain the same data. + */ + bool operator!=(const char *s) const; + + /*! + * Returns true if this ByteVector is less than \a v. The value of the + * vectors is determined by evaluating the character from left to right, and + * in the event one vector is a superset of the other, the size is used. + */ + bool operator<(const ByteVector &v) const; + + /*! + * Returns true if this ByteVector is greater than \a v. + */ + bool operator>(const ByteVector &v) const; + + /*! + * Returns a vector that is \a v appended to this vector. + */ + ByteVector operator+(const ByteVector &v) const; + + /*! + * Copies ByteVector \a v. + */ + ByteVector &operator=(const ByteVector &v); + + /*! + * Copies ByteVector \a v. + */ + ByteVector &operator=(char c); + + /*! + * Copies ByteVector \a v. + */ + ByteVector &operator=(const char *data); + + /*! + * A static, empty ByteVector which is convenient and fast (since returning + * an empty or "null" value does not require instantiating a new ByteVector). + */ + static ByteVector null; + + /*! + * Returns a hex-encoded copy of the byte vector. + */ + ByteVector toHex() const; + + protected: + /* + * If this ByteVector is being shared via implicit sharing, do a deep copy + * of the data and separate from the shared members. This should be called + * by all non-const subclass members. + */ + void detach(); + + private: + class ByteVectorPrivate; + ByteVectorPrivate *d; + }; + +} + +/*! + * \relates TagLib::ByteVector + * Streams the ByteVector \a v to the output stream \a s. + */ +TAGLIB_EXPORT std::ostream &operator<<(std::ostream &s, const TagLib::ByteVector &v); + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/toolkit/tbytevectorlist.h b/Audio-Frameworks/bin/taglib/headers/toolkit/tbytevectorlist.h new file mode 100644 index 0000000..5852583 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/toolkit/tbytevectorlist.h @@ -0,0 +1,91 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_BYTEVECTORLIST_H +#define TAGLIB_BYTEVECTORLIST_H + +#include "taglib_export.h" +#include "tbytevector.h" +#include "tlist.h" + +namespace TagLib { + + //! A list of ByteVectors + + /*! + * A List specialization with some handy features useful for ByteVectors. + */ + + class TAGLIB_EXPORT ByteVectorList : public List + { + public: + + /*! + * Construct an empty ByteVectorList. + */ + ByteVectorList(); + + /*! + * Destroys this ByteVectorList instance. + */ + virtual ~ByteVectorList(); + + /*! + * Make a shallow, implicitly shared, copy of \a l. Because this is + * implicitly shared, this method is lightweight and suitable for + * pass-by-value usage. + */ + ByteVectorList(const ByteVectorList &l); + + /*! + * Convert the ByteVectorList to a ByteVector separated by \a separator. By + * default a space is used. + */ + ByteVector toByteVector(const ByteVector &separator = " ") const; + + /*! + * Splits the ByteVector \a v into several strings at \a pattern. This will + * not include the pattern in the returned ByteVectors. + */ + static ByteVectorList split(const ByteVector &v, const ByteVector &pattern, + int byteAlign = 1); + /*! + * Splits the ByteVector \a v into several strings at \a pattern. This will + * not include the pattern in the returned ByteVectors. \a max is the + * maximum number of entries that will be separated. If \a max for instance + * is 2 then a maximum of 1 match will be found and the vector will be split + * on that match. + */ + // BIC: merge with the function above + static ByteVectorList split(const ByteVector &v, const ByteVector &pattern, + int byteAlign, int max); + private: + class ByteVectorListPrivate; + ByteVectorListPrivate *d; + }; + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/toolkit/tbytevectorstream.h b/Audio-Frameworks/bin/taglib/headers/toolkit/tbytevectorstream.h new file mode 100644 index 0000000..456b854 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/toolkit/tbytevectorstream.h @@ -0,0 +1,145 @@ +/*************************************************************************** + copyright : (C) 2011 by Lukas Lalinsky + email : lalinsky@gmail.com + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_BYTEVECTORSTREAM_H +#define TAGLIB_BYTEVECTORSTREAM_H + +#include "taglib_export.h" +#include "taglib.h" +#include "tbytevector.h" +#include "tiostream.h" + +namespace TagLib { + + class String; + class Tag; + class AudioProperties; + + //! In-memory Stream class using ByteVector for its storage. + + class TAGLIB_EXPORT ByteVectorStream : public IOStream + { + public: + /*! + * Construct a File object and opens the \a file. \a file should be a + * be a C-string in the local file system encoding. + */ + ByteVectorStream(const ByteVector &data); + + /*! + * Destroys this ByteVectorStream instance. + */ + virtual ~ByteVectorStream(); + + /*! + * Returns the file name in the local file system encoding. + */ + FileName name() const; + + /*! + * Reads a block of size \a length at the current get pointer. + */ + ByteVector readBlock(ulong length); + + /*! + * Attempts to write the block \a data at the current get pointer. If the + * file is currently only opened read only -- i.e. readOnly() returns true -- + * this attempts to reopen the file in read/write mode. + * + * \note This should be used instead of using the streaming output operator + * for a ByteVector. And even this function is significantly slower than + * doing output with a char[]. + */ + void writeBlock(const ByteVector &data); + + /*! + * Insert \a data at position \a start in the file overwriting \a replace + * bytes of the original content. + * + * \note This method is slow since it requires rewriting all of the file + * after the insertion point. + */ + void insert(const ByteVector &data, ulong start = 0, ulong replace = 0); + + /*! + * Removes a block of the file starting a \a start and continuing for + * \a length bytes. + * + * \note This method is slow since it involves rewriting all of the file + * after the removed portion. + */ + void removeBlock(ulong start = 0, ulong length = 0); + + /*! + * Returns true if the file is read only (or if the file can not be opened). + */ + bool readOnly() const; + + /*! + * Since the file can currently only be opened as an argument to the + * constructor (sort-of by design), this returns if that open succeeded. + */ + bool isOpen() const; + + /*! + * Move the I/O pointer to \a offset in the file from position \a p. This + * defaults to seeking from the beginning of the file. + * + * \see Position + */ + void seek(long offset, Position p = Beginning); + + /*! + * Reset the end-of-file and error flags on the file. + */ + void clear(); + + /*! + * Returns the current offset within the file. + */ + long tell() const; + + /*! + * Returns the length of the file. + */ + long length(); + + /*! + * Truncates the file to a \a length. + */ + void truncate(long length); + + ByteVector *data(); + + protected: + + private: + class ByteVectorStreamPrivate; + ByteVectorStreamPrivate *d; + }; + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/toolkit/tdebug.h b/Audio-Frameworks/bin/taglib/headers/toolkit/tdebug.h new file mode 100644 index 0000000..5204fe7 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/toolkit/tdebug.h @@ -0,0 +1,71 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_DEBUG_H +#define TAGLIB_DEBUG_H + +namespace TagLib { + + class String; + class ByteVector; + +#ifndef DO_NOT_DOCUMENT +#ifndef NDEBUG + + /*! + * A simple function that prints debugging output to cerr if debugging is + * not disabled. + * + * \warning Do not use this outside of TagLib, it could lead to undefined + * symbols in your build if TagLib is built with NDEBUG defined and your + * application is not. + * + * \internal + */ + void debug(const String &s); + + /*! + * For debugging binary data. + * + * \warning Do not use this outside of TagLib, it could lead to undefined + * symbols in your build if TagLib is built with NDEBUG defined and your + * application is not. + * + * \internal + */ + void debugData(const ByteVector &v); + +#else + + // Define these to an empty statement if debugging is disabled. + +#define debug(x) +#define debugData(x) + +#endif +#endif +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/toolkit/tfile.h b/Audio-Frameworks/bin/taglib/headers/toolkit/tfile.h new file mode 100644 index 0000000..7df774a --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/toolkit/tfile.h @@ -0,0 +1,295 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_FILE_H +#define TAGLIB_FILE_H + +#include "taglib_export.h" +#include "taglib.h" +#include "tag.h" +#include "tbytevector.h" +#include "tiostream.h" + +namespace TagLib { + + class String; + class Tag; + class AudioProperties; + class PropertyMap; + + //! A file class with some useful methods for tag manipulation + + /*! + * This class is a basic file class with some methods that are particularly + * useful for tag editors. It has methods to take advantage of + * ByteVector and a binary search method for finding patterns in a file. + */ + + class TAGLIB_EXPORT File + { + public: + /*! + * Position in the file used for seeking. + */ + enum Position { + //! Seek from the beginning of the file. + Beginning, + //! Seek from the current position in the file. + Current, + //! Seek from the end of the file. + End + }; + + /*! + * Destroys this File instance. + */ + virtual ~File(); + + /*! + * Returns the file name in the local file system encoding. + */ + FileName name() const; + + /*! + * Returns a pointer to this file's tag. This should be reimplemented in + * the concrete subclasses. + */ + virtual Tag *tag() const = 0; + + /*! + * Exports the tags of the file as dictionary mapping (human readable) tag + * names (Strings) to StringLists of tag values. Calls the according specialization + * in the File subclasses. + * For each metadata object of the file that could not be parsed into the PropertyMap + * format, the returend map's unsupportedData() list will contain one entry identifying + * that object (e.g. the frame type for ID3v2 tags). Use removeUnsupportedProperties() + * to remove (a subset of) them. + * BIC: Will be made virtual in future releases. + */ + PropertyMap properties() const; + + /*! + * Removes unsupported properties, or a subset of them, from the file's metadata. + * The parameter \a properties must contain only entries from + * properties().unsupportedData(). + * BIC: Will be mad virtual in future releases. + */ + void removeUnsupportedProperties(const StringList& properties); + + /*! + * Sets the tags of this File to those specified in \a properties. Calls the + * according specialization method in the subclasses of File to do the translation + * into the format-specific details. + * If some value(s) could not be written imported to the specific metadata format, + * the returned PropertyMap will contain those value(s). Otherwise it will be empty, + * indicating that no problems occured. + * BIC: will become pure virtual in the future + */ + PropertyMap setProperties(const PropertyMap &properties); + /*! + * Returns a pointer to this file's audio properties. This should be + * reimplemented in the concrete subclasses. If no audio properties were + * read then this will return a null pointer. + */ + virtual AudioProperties *audioProperties() const = 0; + + /*! + * Save the file and its associated tags. This should be reimplemented in + * the concrete subclasses. Returns true if the save succeeds. + * + * \warning On UNIX multiple processes are able to write to the same file at + * the same time. This can result in serious file corruption. If you are + * developing a program that makes use of TagLib from multiple processes you + * must insure that you are only doing writes to a particular file from one + * of them. + */ + virtual bool save() = 0; + + /*! + * Reads a block of size \a length at the current get pointer. + */ + ByteVector readBlock(ulong length); + + /*! + * Attempts to write the block \a data at the current get pointer. If the + * file is currently only opened read only -- i.e. readOnly() returns true -- + * this attempts to reopen the file in read/write mode. + * + * \note This should be used instead of using the streaming output operator + * for a ByteVector. And even this function is significantly slower than + * doing output with a char[]. + */ + void writeBlock(const ByteVector &data); + + /*! + * Returns the offset in the file that \a pattern occurs at or -1 if it can + * not be found. If \a before is set, the search will only continue until the + * pattern \a before is found. This is useful for tagging purposes to search + * for a tag before the synch frame. + * + * Searching starts at \a fromOffset, which defaults to the beginning of the + * file. + * + * \note This has the practial limitation that \a pattern can not be longer + * than the buffer size used by readBlock(). Currently this is 1024 bytes. + */ + long find(const ByteVector &pattern, + long fromOffset = 0, + const ByteVector &before = ByteVector::null); + + /*! + * Returns the offset in the file that \a pattern occurs at or -1 if it can + * not be found. If \a before is set, the search will only continue until the + * pattern \a before is found. This is useful for tagging purposes to search + * for a tag before the synch frame. + * + * Searching starts at \a fromOffset and proceeds from the that point to the + * beginning of the file and defaults to the end of the file. + * + * \note This has the practial limitation that \a pattern can not be longer + * than the buffer size used by readBlock(). Currently this is 1024 bytes. + */ + long rfind(const ByteVector &pattern, + long fromOffset = 0, + const ByteVector &before = ByteVector::null); + + /*! + * Insert \a data at position \a start in the file overwriting \a replace + * bytes of the original content. + * + * \note This method is slow since it requires rewriting all of the file + * after the insertion point. + */ + void insert(const ByteVector &data, ulong start = 0, ulong replace = 0); + + /*! + * Removes a block of the file starting a \a start and continuing for + * \a length bytes. + * + * \note This method is slow since it involves rewriting all of the file + * after the removed portion. + */ + void removeBlock(ulong start = 0, ulong length = 0); + + /*! + * Returns true if the file is read only (or if the file can not be opened). + */ + bool readOnly() const; + + /*! + * Since the file can currently only be opened as an argument to the + * constructor (sort-of by design), this returns if that open succeeded. + */ + bool isOpen() const; + + /*! + * Returns true if the file is open and readble. + */ + bool isValid() const; + + /*! + * Move the I/O pointer to \a offset in the file from position \a p. This + * defaults to seeking from the beginning of the file. + * + * \see Position + */ + void seek(long offset, Position p = Beginning); + + /*! + * Reset the end-of-file and error flags on the file. + */ + void clear(); + + /*! + * Returns the current offset within the file. + */ + long tell() const; + + /*! + * Returns the length of the file. + */ + long length(); + + /*! + * Returns true if \a file can be opened for reading. If the file does not + * exist, this will return false. + * + * \deprecated + */ + static bool isReadable(const char *file); + + /*! + * Returns true if \a file can be opened for writing. + * + * \deprecated + */ + static bool isWritable(const char *name); + + protected: + /*! + * Construct a File object and opens the \a file. \a file should be a + * be a C-string in the local file system encoding. + * + * \note Constructor is protected since this class should only be + * instantiated through subclasses. + */ + File(FileName file); + + /*! + * Construct a File object and use the \a stream instance. + * + * \note Constructor is protected since this class should only be + * instantiated through subclasses. + */ + File(IOStream *stream); + + /*! + * Marks the file as valid or invalid. + * + * \see isValid() + */ + void setValid(bool valid); + + /*! + * Truncates the file to a \a length. + */ + void truncate(long length); + + /*! + * Returns the buffer size that is used for internal buffering. + */ + static uint bufferSize(); + + private: + File(const File &); + File &operator=(const File &); + + class FilePrivate; + FilePrivate *d; + }; + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/toolkit/tfilestream.h b/Audio-Frameworks/bin/taglib/headers/toolkit/tfilestream.h new file mode 100644 index 0000000..fa113b7 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/toolkit/tfilestream.h @@ -0,0 +1,154 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_FILESTREAM_H +#define TAGLIB_FILESTREAM_H + +#include "taglib_export.h" +#include "taglib.h" +#include "tbytevector.h" +#include "tiostream.h" + +namespace TagLib { + + class String; + class Tag; + class AudioProperties; + + //! A file class with some useful methods for tag manipulation + + /*! + * This class is a basic file class with some methods that are particularly + * useful for tag editors. It has methods to take advantage of + * ByteVector and a binary search method for finding patterns in a file. + */ + + class TAGLIB_EXPORT FileStream : public IOStream + { + public: + /*! + * Construct a File object and opens the \a file. \a file should be a + * be a C-string in the local file system encoding. + */ + FileStream(FileName file, bool openReadOnly = false); + + /*! + * Destroys this FileStream instance. + */ + virtual ~FileStream(); + + /*! + * Returns the file name in the local file system encoding. + */ + FileName name() const; + + /*! + * Reads a block of size \a length at the current get pointer. + */ + ByteVector readBlock(ulong length); + + /*! + * Attempts to write the block \a data at the current get pointer. If the + * file is currently only opened read only -- i.e. readOnly() returns true -- + * this attempts to reopen the file in read/write mode. + * + * \note This should be used instead of using the streaming output operator + * for a ByteVector. And even this function is significantly slower than + * doing output with a char[]. + */ + void writeBlock(const ByteVector &data); + + /*! + * Insert \a data at position \a start in the file overwriting \a replace + * bytes of the original content. + * + * \note This method is slow since it requires rewriting all of the file + * after the insertion point. + */ + void insert(const ByteVector &data, ulong start = 0, ulong replace = 0); + + /*! + * Removes a block of the file starting a \a start and continuing for + * \a length bytes. + * + * \note This method is slow since it involves rewriting all of the file + * after the removed portion. + */ + void removeBlock(ulong start = 0, ulong length = 0); + + /*! + * Returns true if the file is read only (or if the file can not be opened). + */ + bool readOnly() const; + + /*! + * Since the file can currently only be opened as an argument to the + * constructor (sort-of by design), this returns if that open succeeded. + */ + bool isOpen() const; + + /*! + * Move the I/O pointer to \a offset in the file from position \a p. This + * defaults to seeking from the beginning of the file. + * + * \see Position + */ + void seek(long offset, Position p = Beginning); + + /*! + * Reset the end-of-file and error flags on the file. + */ + void clear(); + + /*! + * Returns the current offset within the file. + */ + long tell() const; + + /*! + * Returns the length of the file. + */ + long length(); + + /*! + * Truncates the file to a \a length. + */ + void truncate(long length); + + protected: + + /*! + * Returns the buffer size that is used for internal buffering. + */ + static uint bufferSize(); + + private: + class FileStreamPrivate; + FileStreamPrivate *d; + }; + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/toolkit/tiostream.h b/Audio-Frameworks/bin/taglib/headers/toolkit/tiostream.h new file mode 100644 index 0000000..3e7de22 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/toolkit/tiostream.h @@ -0,0 +1,160 @@ +/*************************************************************************** + copyright : (C) 2011 by Lukas Lalinsky + email : lalinsky@gmail.com + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_IOSTREAM_H +#define TAGLIB_IOSTREAM_H + +#include "taglib_export.h" +#include "taglib.h" +#include "tbytevector.h" + +namespace TagLib { + +#ifdef _WIN32 + class TAGLIB_EXPORT FileName + { + public: + FileName(const wchar_t *name) : m_wname(name) {} + FileName(const char *name) : m_name(name) {} + operator const wchar_t *() const { return m_wname.c_str(); } + operator const char *() const { return m_name.c_str(); } + private: + std::string m_name; + std::wstring m_wname; + }; +#else + typedef const char *FileName; +#endif + + //! An abstract class that provides operations on a sequence of bytes + + class TAGLIB_EXPORT IOStream + { + public: + /*! + * Position in the file used for seeking. + */ + enum Position { + //! Seek from the beginning of the file. + Beginning, + //! Seek from the current position in the file. + Current, + //! Seek from the end of the file. + End + }; + + IOStream(); + + /*! + * Destroys this IOStream instance. + */ + virtual ~IOStream(); + + /*! + * Returns the stream name in the local file system encoding. + */ + virtual FileName name() const = 0; + + /*! + * Reads a block of size \a length at the current get pointer. + */ + virtual ByteVector readBlock(ulong length) = 0; + + /*! + * Attempts to write the block \a data at the current get pointer. If the + * file is currently only opened read only -- i.e. readOnly() returns true -- + * this attempts to reopen the file in read/write mode. + * + * \note This should be used instead of using the streaming output operator + * for a ByteVector. And even this function is significantly slower than + * doing output with a char[]. + */ + virtual void writeBlock(const ByteVector &data) = 0; + + /*! + * Insert \a data at position \a start in the file overwriting \a replace + * bytes of the original content. + * + * \note This method is slow since it requires rewriting all of the file + * after the insertion point. + */ + virtual void insert(const ByteVector &data, ulong start = 0, ulong replace = 0) = 0; + + /*! + * Removes a block of the file starting a \a start and continuing for + * \a length bytes. + * + * \note This method is slow since it involves rewriting all of the file + * after the removed portion. + */ + virtual void removeBlock(ulong start = 0, ulong length = 0) = 0; + + /*! + * Returns true if the file is read only (or if the file can not be opened). + */ + virtual bool readOnly() const = 0; + + /*! + * Since the file can currently only be opened as an argument to the + * constructor (sort-of by design), this returns if that open succeeded. + */ + virtual bool isOpen() const = 0; + + /*! + * Move the I/O pointer to \a offset in the stream from position \a p. This + * defaults to seeking from the beginning of the stream. + * + * \see Position + */ + virtual void seek(long offset, Position p = Beginning) = 0; + + /*! + * Reset the end-of-stream and error flags on the stream. + */ + virtual void clear(); + + /*! + * Returns the current offset within the stream. + */ + virtual long tell() const = 0; + + /*! + * Returns the length of the stream. + */ + virtual long length() = 0; + + /*! + * Truncates the stream to a \a length. + */ + virtual void truncate(long length) = 0; + + private: + IOStream(const IOStream &); + IOStream &operator=(const IOStream &); + }; + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/toolkit/tlist.h b/Audio-Frameworks/bin/taglib/headers/toolkit/tlist.h new file mode 100644 index 0000000..0099dad --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/toolkit/tlist.h @@ -0,0 +1,257 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_LIST_H +#define TAGLIB_LIST_H + +#include "taglib.h" + +#include + +namespace TagLib { + + //! A generic, implicitly shared list. + + /*! + * This is basic generic list that's somewhere between a std::list and a + * QValueList. This class is implicitly shared. For example: + * + * \code + * + * TagLib::List l = someOtherIntList; + * + * \endcode + * + * The above example is very cheap. This also makes lists suitable for the + * return types of functions. The above example will just copy a pointer rather + * than copying the data in the list. When your \e shared list's data changes, + * only \e then will the data be copied. + */ + + template class List + { + public: +#ifndef DO_NOT_DOCUMENT + typedef typename std::list::iterator Iterator; + typedef typename std::list::const_iterator ConstIterator; +#endif + + /*! + * Constructs an empty list. + */ + List(); + + /*! + * Make a shallow, implicitly shared, copy of \a l. Because this is + * implicitly shared, this method is lightweight and suitable for + * pass-by-value usage. + */ + List(const List &l); + + /*! + * Destroys this List instance. If auto deletion is enabled and this list + * contains a pointer type all of the memebers are also deleted. + */ + virtual ~List(); + + /*! + * Returns an STL style iterator to the beginning of the list. See + * std::list::const_iterator for the semantics. + */ + Iterator begin(); + + /*! + * Returns an STL style constant iterator to the beginning of the list. See + * std::list::iterator for the semantics. + */ + ConstIterator begin() const; + + /*! + * Returns an STL style iterator to the end of the list. See + * std::list::iterator for the semantics. + */ + Iterator end(); + + /*! + * Returns an STL style constant iterator to the end of the list. See + * std::list::const_iterator for the semantics. + */ + ConstIterator end() const; + + /*! + * Inserts a copy of \a value before \a it. + */ + Iterator insert(Iterator it, const T &value); + + /*! + * Inserts the \a value into the list. This assumes that the list is + * currently sorted. If \a unique is true then the value will not + * be inserted if it is already in the list. + */ + List &sortedInsert(const T &value, bool unique = false); + + /*! + * Appends \a item to the end of the list and returns a reference to the + * list. + */ + List &append(const T &item); + + /*! + * Appends all of the values in \a l to the end of the list and returns a + * reference to the list. + */ + List &append(const List &l); + + /*! + * Prepends \a item to the beginning list and returns a reference to the + * list. + */ + List &prepend(const T &item); + + /*! + * Prepends all of the items in \a l to the beginning list and returns a + * reference to the list. + */ + List &prepend(const List &l); + + /*! + * Clears the list. If auto deletion is enabled and this list contains a + * pointer type the members are also deleted. + * + * \see setAutoDelete() + */ + List &clear(); + + /*! + * Returns the number of elements in the list. + */ + uint size() const; + bool isEmpty() const; + + /*! + * Find the first occurrence of \a value. + */ + Iterator find(const T &value); + + /*! + * Find the first occurrence of \a value. + */ + ConstIterator find(const T &value) const; + + /*! + * Returns true if the list contains \a value. + */ + bool contains(const T &value) const; + + /*! + * Erase the item at \a it from the list. + */ + Iterator erase(Iterator it); + + /*! + * Returns a reference to the first item in the list. + */ + const T &front() const; + + /*! + * Returns a reference to the first item in the list. + */ + T &front(); + + /*! + * Returns a reference to the last item in the list. + */ + const T &back() const; + + /*! + * Returns a reference to the last item in the list. + */ + T &back(); + + /*! + * Auto delete the members of the list when the last reference to the list + * passes out of scope. This will have no effect on lists which do not + * contain a pointer type. + * + * \note This relies on partial template instantiation -- most modern C++ + * compilers should now support this. + */ + void setAutoDelete(bool autoDelete); + + /*! + * Returns a reference to item \a i in the list. + * + * \warning This method is slow. Use iterators to loop through the list. + */ + T &operator[](uint i); + + /*! + * Returns a const reference to item \a i in the list. + * + * \warning This method is slow. Use iterators to loop through the list. + */ + const T &operator[](uint i) const; + + /*! + * Make a shallow, implicitly shared, copy of \a l. Because this is + * implicitly shared, this method is lightweight and suitable for + * pass-by-value usage. + */ + List &operator=(const List &l); + + /*! + * Compares this list with \a l and returns true if all of the elements are + * the same. + */ + bool operator==(const List &l) const; + + /*! + * Compares this list with \a l and returns true if the lists differ. + */ + bool operator!=(const List &l) const; + + protected: + /* + * If this List is being shared via implicit sharing, do a deep copy of the + * data and separate from the shared members. This should be called by all + * non-const subclass members. + */ + void detach(); + + private: +#ifndef DO_NOT_DOCUMENT + template class ListPrivate; + ListPrivate *d; +#endif + }; + +} + +// Since GCC doesn't support the "export" keyword, we have to include the +// implementation. + +#include "tlist.tcc" + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/toolkit/tlist.tcc b/Audio-Frameworks/bin/taglib/headers/toolkit/tlist.tcc new file mode 100644 index 0000000..37817f0 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/toolkit/tlist.tcc @@ -0,0 +1,322 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#include + +namespace TagLib { + +//////////////////////////////////////////////////////////////////////////////// +// public members +//////////////////////////////////////////////////////////////////////////////// + +// The functionality of List::setAutoDelete() is implemented here partial +// template specialization. This is implemented in such a way that calling +// setAutoDelete() on non-pointer types will simply have no effect. + +// A base for the generic and specialized private class types. New +// non-templatized members should be added here. + +class ListPrivateBase : public RefCounter +{ +public: + ListPrivateBase() : autoDelete(false) {} + bool autoDelete; +}; + +// A generic implementation + +template +template class List::ListPrivate : public ListPrivateBase +{ +public: + ListPrivate() : ListPrivateBase() {} + ListPrivate(const std::list &l) : ListPrivateBase(), list(l) {} + void clear() { + list.clear(); + } + std::list list; +}; + +// A partial specialization for all pointer types that implements the +// setAutoDelete() functionality. + +template +template class List::ListPrivate : public ListPrivateBase +{ +public: + ListPrivate() : ListPrivateBase() {} + ListPrivate(const std::list &l) : ListPrivateBase(), list(l) {} + ~ListPrivate() { + clear(); + } + void clear() { + if(autoDelete) { + typename std::list::const_iterator it = list.begin(); + for(; it != list.end(); ++it) + delete *it; + } + list.clear(); + } + std::list list; +}; + +//////////////////////////////////////////////////////////////////////////////// +// public members +//////////////////////////////////////////////////////////////////////////////// + +template +List::List() +{ + d = new ListPrivate; +} + +template +List::List(const List &l) : d(l.d) +{ + d->ref(); +} + +template +List::~List() +{ + if(d->deref()) + delete d; +} + +template +typename List::Iterator List::begin() +{ + detach(); + return d->list.begin(); +} + +template +typename List::ConstIterator List::begin() const +{ + return d->list.begin(); +} + +template +typename List::Iterator List::end() +{ + detach(); + return d->list.end(); +} + +template +typename List::ConstIterator List::end() const +{ + return d->list.end(); +} + +template +typename List::Iterator List::insert(Iterator it, const T &item) +{ + detach(); + return d->list.insert(it, item); +} + +template +List &List::sortedInsert(const T &value, bool unique) +{ + detach(); + Iterator it = begin(); + while(it != end() && *it < value) + ++it; + if(unique && it != end() && *it == value) + return *this; + insert(it, value); + return *this; +} + +template +List &List::append(const T &item) +{ + detach(); + d->list.push_back(item); + return *this; +} + +template +List &List::append(const List &l) +{ + detach(); + d->list.insert(d->list.end(), l.begin(), l.end()); + return *this; +} + +template +List &List::prepend(const T &item) +{ + detach(); + d->list.push_front(item); + return *this; +} + +template +List &List::prepend(const List &l) +{ + detach(); + d->list.insert(d->list.begin(), l.begin(), l.end()); + return *this; +} + +template +List &List::clear() +{ + detach(); + d->clear(); + return *this; +} + +template +TagLib::uint List::size() const +{ + return d->list.size(); +} + +template +bool List::isEmpty() const +{ + return d->list.empty(); +} + +template +typename List::Iterator List::find(const T &value) +{ + return std::find(d->list.begin(), d->list.end(), value); +} + +template +typename List::ConstIterator List::find(const T &value) const +{ + return std::find(d->list.begin(), d->list.end(), value); +} + +template +bool List::contains(const T &value) const +{ + return std::find(d->list.begin(), d->list.end(), value) != d->list.end(); +} + +template +typename List::Iterator List::erase(Iterator it) +{ + return d->list.erase(it); +} + +template +const T &List::front() const +{ + return d->list.front(); +} + +template +T &List::front() +{ + detach(); + return d->list.front(); +} + +template +const T &List::back() const +{ + return d->list.back(); +} + +template +void List::setAutoDelete(bool autoDelete) +{ + d->autoDelete = autoDelete; +} + +template +T &List::back() +{ + detach(); + return d->list.back(); +} + +template +T &List::operator[](uint i) +{ + Iterator it = d->list.begin(); + + for(uint j = 0; j < i; j++) + ++it; + + return *it; +} + +template +const T &List::operator[](uint i) const +{ + ConstIterator it = d->list.begin(); + + for(uint j = 0; j < i; j++) + ++it; + + return *it; +} + +template +List &List::operator=(const List &l) +{ + if(&l == this) + return *this; + + if(d->deref()) + delete d; + d = l.d; + d->ref(); + return *this; +} + +template +bool List::operator==(const List &l) const +{ + return d->list == l.d->list; +} + +template +bool List::operator!=(const List &l) const +{ + return d->list != l.d->list; +} + +//////////////////////////////////////////////////////////////////////////////// +// protected members +//////////////////////////////////////////////////////////////////////////////// + +template +void List::detach() +{ + if(d->count() > 1) { + d->deref(); + d = new ListPrivate(d->list); + } +} + +} // namespace TagLib diff --git a/Audio-Frameworks/bin/taglib/headers/toolkit/tmap.h b/Audio-Frameworks/bin/taglib/headers/toolkit/tmap.h new file mode 100644 index 0000000..a7d9930 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/toolkit/tmap.h @@ -0,0 +1,199 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MAP_H +#define TAGLIB_MAP_H + +#include + +#include "taglib.h" + +namespace TagLib { + + //! A generic, implicitly shared map. + + /*! + * This implements a standard map container that associates a key with a value + * and has fast key-based lookups. This map is also implicitly shared making + * it suitable for pass-by-value usage. + */ + + template class Map + { + public: +#ifndef DO_NOT_DOCUMENT +#ifdef WANT_CLASS_INSTANTIATION_OF_MAP + // Some STL implementations get snippy over the use of the + // class keyword to distinguish different templates; Sun Studio + // in particular finds multiple specializations in certain rare + // cases and complains about that. GCC doesn't seem to mind, + // and uses the typedefs further below without the class keyword. + // Not all the specializations of Map can use the class keyword + // (when T is not actually a class type), so don't apply this + // generally. + typedef typename std::map::iterator Iterator; + typedef typename std::map::const_iterator ConstIterator; +#else + typedef typename std::map::iterator Iterator; + typedef typename std::map::const_iterator ConstIterator; +#endif +#endif + + /*! + * Constructs an empty Map. + */ + Map(); + + /*! + * Make a shallow, implicitly shared, copy of \a m. Because this is + * implicitly shared, this method is lightweight and suitable for + * pass-by-value usage. + */ + Map(const Map &m); + + /*! + * Destroys this instance of the Map. + */ + virtual ~Map(); + + /*! + * Returns an STL style iterator to the beginning of the map. See + * std::map::iterator for the semantics. + */ + Iterator begin(); + + /*! + * Returns an STL style iterator to the beginning of the map. See + * std::map::const_iterator for the semantics. + */ + ConstIterator begin() const; + + /*! + * Returns an STL style iterator to the end of the map. See + * std::map::iterator for the semantics. + */ + Iterator end(); + + /*! + * Returns an STL style iterator to the end of the map. See + * std::map::const_iterator for the semantics. + */ + ConstIterator end() const; + + /*! + * Inserts \a value under \a key in the map. If a value for \a key already + * exists it will be overwritten. + */ + Map &insert(const Key &key, const T &value); + + /*! + * Removes all of the elements from elements from the map. This however + * will not delete pointers if the mapped type is a pointer type. + */ + Map &clear(); + + /*! + * The number of elements in the map. + * + * \see isEmpty() + */ + uint size() const; + + /*! + * Returns true if the map is empty. + * + * \see size() + */ + bool isEmpty() const; + + /*! + * Find the first occurrence of \a key. + */ + Iterator find(const Key &key); + + /*! + * Find the first occurrence of \a key. + */ + ConstIterator find(const Key &key) const; + + /*! + * Returns true if the map contains an instance of \a key. + */ + bool contains(const Key &key) const; + + /*! + * Erase the item at \a it from the list. + */ + Map &erase(Iterator it); + + /*! + * Erase the item with \a key from the list. + */ + Map &erase(const Key &key); + + /*! + * Returns a reference to the value associated with \a key. + * + * \note This has undefined behavior if the key is not present in the map. + */ + const T &operator[](const Key &key) const; + + /*! + * Returns a reference to the value associated with \a key. + * + * \note This has undefined behavior if the key is not present in the map. + */ + T &operator[](const Key &key); + + /*! + * Make a shallow, implicitly shared, copy of \a m. Because this is + * implicitly shared, this method is lightweight and suitable for + * pass-by-value usage. + */ + Map &operator=(const Map &m); + + protected: + /* + * If this List is being shared via implicit sharing, do a deep copy of the + * data and separate from the shared members. This should be called by all + * non-const subclass members. + */ + void detach(); + + private: +#ifndef DO_NOT_DOCUMENT + template class MapPrivate; + MapPrivate *d; +#endif + }; + +} + +// Since GCC doesn't support the "export" keyword, we have to include the +// implementation. + +#include "tmap.tcc" + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/toolkit/tmap.tcc b/Audio-Frameworks/bin/taglib/headers/toolkit/tmap.tcc new file mode 100644 index 0000000..0f2b993 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/toolkit/tmap.tcc @@ -0,0 +1,196 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +namespace TagLib { + +//////////////////////////////////////////////////////////////////////////////// +// public members +//////////////////////////////////////////////////////////////////////////////// + +template +template +class Map::MapPrivate : public RefCounter +{ +public: + MapPrivate() : RefCounter() {} +#ifdef WANT_CLASS_INSTANTIATION_OF_MAP + MapPrivate(const std::map& m) : RefCounter(), map(m) {} + std::map map; +#else + MapPrivate(const std::map& m) : RefCounter(), map(m) {} + std::map map; +#endif +}; + +template +Map::Map() +{ + d = new MapPrivate; +} + +template +Map::Map(const Map &m) : d(m.d) +{ + d->ref(); +} + +template +Map::~Map() +{ + if(d->deref()) + delete(d); +} + +template +typename Map::Iterator Map::begin() +{ + detach(); + return d->map.begin(); +} + +template +typename Map::ConstIterator Map::begin() const +{ + return d->map.begin(); +} + +template +typename Map::Iterator Map::end() +{ + detach(); + return d->map.end(); +} + +template +typename Map::ConstIterator Map::end() const +{ + return d->map.end(); +} + +template +Map &Map::insert(const Key &key, const T &value) +{ + detach(); + d->map[key] = value; + return *this; +} + +template +Map &Map::clear() +{ + detach(); + d->map.clear(); + return *this; +} + +template +bool Map::isEmpty() const +{ + return d->map.empty(); +} + +template +typename Map::Iterator Map::find(const Key &key) +{ + detach(); + return d->map.find(key); +} + +template +typename Map::ConstIterator Map::find(const Key &key) const +{ + return d->map.find(key); +} + +template +bool Map::contains(const Key &key) const +{ + return d->map.find(key) != d->map.end(); +} + +template +Map &Map::erase(Iterator it) +{ + detach(); + d->map.erase(it); + return *this; +} + +template +Map &Map::erase(const Key &key) +{ + detach(); + Iterator it = d->map.find(key); + if(it != d->map.end()) + d->map.erase(it); + return *this; +} + +template +TagLib::uint Map::size() const +{ + return d->map.size(); +} + +template +const T &Map::operator[](const Key &key) const +{ + return d->map[key]; +} + +template +T &Map::operator[](const Key &key) +{ + detach(); + return d->map[key]; +} + +template +Map &Map::operator=(const Map &m) +{ + if(&m == this) + return *this; + + if(d->deref()) + delete(d); + d = m.d; + d->ref(); + return *this; +} + +//////////////////////////////////////////////////////////////////////////////// +// protected members +//////////////////////////////////////////////////////////////////////////////// + +template +void Map::detach() +{ + if(d->count() > 1) { + d->deref(); + d = new MapPrivate(d->map); + } +} + +} // namespace TagLib diff --git a/Audio-Frameworks/bin/taglib/headers/toolkit/tpropertymap.h b/Audio-Frameworks/bin/taglib/headers/toolkit/tpropertymap.h new file mode 100644 index 0000000..b955739 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/toolkit/tpropertymap.h @@ -0,0 +1,184 @@ +/*************************************************************************** + copyright : (C) 2012 by Michael Helmling + email : helmling@mathematik.uni-kl.de + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * + * MA 02110-1301 USA * + ***************************************************************************/ + +#ifndef PROPERTYMAP_H_ +#define PROPERTYMAP_H_ + +#include "tmap.h" +#include "tstringlist.h" + +namespace TagLib { + + typedef Map SimplePropertyMap; + + //! A map for format-independent tag representations. + + /*! + * This map implements a generic representation of textual audio metadata + * ("tags") realized as pairs of a case-insensitive key + * and a nonempty list of corresponding values, each value being an an arbitrary + * unicode String. + * The key has the same restrictions as in the vorbis comment specification, + * i.e. it must contain at least one character; all printable ASCII characters + * except '=' and '~' are allowed. + * + * In order to be safe with other formats, keep these additional restrictions in mind: + * + * - APE only allows keys from 2 to 16 printable ASCII characters (including space), + * with the exception of these strings: ID3, TAG, OggS, MP+ + * + */ + + class TAGLIB_EXPORT PropertyMap: public SimplePropertyMap + { + public: + + typedef SimplePropertyMap::Iterator Iterator; + typedef SimplePropertyMap::ConstIterator ConstIterator; + + PropertyMap(); + + PropertyMap(const PropertyMap &m); + + /*! + * Creates a PropertyMap initialized from a SimplePropertyMap. Copies all + * entries from \a m that have valid keys. + * Invalid keys will be appended to the unsupportedData() list. + */ + PropertyMap(const SimplePropertyMap &m); + + virtual ~PropertyMap(); + + /*! + * Inserts \a values under \a key in the map. If \a key already exists, + * then \values will be appended to the existing StringList. + * The returned value indicates success, i.e. whether \a key is a + * valid key. + */ + bool insert(const String &key, const StringList &values); + + /*! + * Replaces any existing values for \a key with the given \a values, + * and simply insert them if \a key did not exist before. + * The returned value indicates success, i.e. whether \a key is a + * valid key. + */ + bool replace(const String &key, const StringList &values); + + /*! + * Find the first occurrence of \a key. + */ + Iterator find(const String &key); + + /*! + * Find the first occurrence of \a key. + */ + ConstIterator find(const String &key) const; + + /*! + * Returns true if the map contains values for \a key. + */ + bool contains(const String &key) const; + + /*! + * Returns true if this map contains all keys of \a other + * and the values coincide for that keys. Does not take + * the unsupportedData list into account. + */ + bool contains(const PropertyMap &other) const; + + /*! + * Erase the \a key and its values from the map. + */ + PropertyMap &erase(const String &key); + + /*! + * Erases from this map all keys that appear in \a other. + */ + PropertyMap &erase(const PropertyMap &other); + + /*! + * Merge the contents of \a other into this PropertyMap. + * If a key is contained in both maps, the values of the second + * are appended to that of the first. + * The unsupportedData() lists are concatenated as well. + */ + PropertyMap &merge(const PropertyMap &other); + + /*! + * Returns a reference to the value associated with \a key. + * + * \note: This has undefined behavior if the key is not valid or not + * present in the map. + */ + const StringList &operator[](const String &key) const; + + /*! + * Returns a reference to the value associated with \a key. + * + * \note: This has undefined behavior if the key is not valid or not + * present in the map. + */ + StringList &operator[](const String &key); + + /*! + * Returns true if and only if \other has the same contents as this map. + */ + bool operator==(const PropertyMap &other) const; + + /*! + * Returns false if and only \other has the same contents as this map. + */ + bool operator!=(const PropertyMap &other) const; + + /*! + * If a PropertyMap is read from a File object using File::properties(), + * the StringList returned from this function will represent metadata + * that could not be parsed into the PropertyMap representation. This could + * be e.g. binary data, unknown ID3 frames, etc. + * You can remove items from the returned list, which tells TagLib to remove + * those unsupported elements if you call File::setProperties() with the + * same PropertyMap as argument. + */ + StringList &unsupportedData(); + const StringList &unsupportedData() const; + + /*! + * Removes all entries which have an empty value list. + */ + void removeEmpty(); + + String toString() const; + + /*! + * Converts \a proposed into another String suitable to be used as + * a key, or returns String::null if this is not possible. + */ + static String prepareKey(const String &proposed); + + private: + + + StringList unsupported; + }; + +} +#endif /* PROPERTYMAP_H_ */ diff --git a/Audio-Frameworks/bin/taglib/headers/toolkit/tstring.h b/Audio-Frameworks/bin/taglib/headers/toolkit/tstring.h new file mode 100644 index 0000000..759a175 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/toolkit/tstring.h @@ -0,0 +1,496 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_STRING_H +#define TAGLIB_STRING_H + +#include "taglib_export.h" +#include "taglib.h" +#include "tbytevector.h" + +#include +#include + +/*! + * \relates TagLib::String + * + * Converts a QString to a TagLib::String without a requirement to link to Qt. + * + * \note consider conversion via usual char-by-char for loop to avoid UTF16->UTF8->UTF16 + * conversion happening in the background + */ +#define QStringToTString(s) TagLib::String(s.utf8().data(), TagLib::String::UTF8) + +/*! + * \relates TagLib::String + * + * Converts a TagLib::String to a QString without a requirement to link to Qt. + * + * \note consider conversion via usual char-by-char for loop to avoid UTF16->UTF8->UTF16 + * conversion happening in the background + * + */ +#define TStringToQString(s) QString::fromUtf8(s.toCString(true)) + +namespace TagLib { + + class StringList; + + //! A \e wide string class suitable for unicode. + + /*! + * This is an implicitly shared \e wide string. For storage it uses + * TagLib::wstring, but as this is an implementation detail this of + * course could change. Strings are stored internally as UTF-16BE. (Without + * the BOM (Byte Order Mark) + * + * The use of implicit sharing means that copying a string is cheap, the only + * \e cost comes into play when the copy is modified. Prior to that the string + * just has a pointer to the data of the \e parent String. This also makes + * this class suitable as a function return type. + * + * In addition to adding implicit sharing, this class keeps track of four + * possible encodings, which are the four supported by the ID3v2 standard. + */ + + class TAGLIB_EXPORT String + { + public: + +#ifndef DO_NOT_DOCUMENT + typedef std::basic_string::iterator Iterator; + typedef std::basic_string::const_iterator ConstIterator; +#endif + + /** + * The four types of string encodings supported by the ID3v2 specification. + * ID3v1 is assumed to be Latin1 and Ogg Vorbis comments use UTF8. + */ + enum Type { + /*! + * IS08859-1, or Latin1 encoding. 8 bit characters. + */ + Latin1 = 0, + /*! + * UTF16 with a byte order mark. 16 bit characters. + */ + UTF16 = 1, + /*! + * UTF16 big endian. 16 bit characters. This is the encoding used + * internally by TagLib. + */ + UTF16BE = 2, + /*! + * UTF8 encoding. Characters are usually 8 bits but can be up to 32. + */ + UTF8 = 3, + /*! + * UTF16 little endian. 16 bit characters. + */ + UTF16LE = 4 + }; + + /*! + * Constructs an empty String. + */ + String(); + + /*! + * Make a shallow, implicitly shared, copy of \a s. Because this is + * implicitly shared, this method is lightweight and suitable for + * pass-by-value usage. + */ + String(const String &s); + + /*! + * Makes a deep copy of the data in \a s. + * + * \note This should only be used with the 8-bit codecs Latin1 and UTF8, when + * used with other codecs it will simply print a warning and exit. + */ + String(const std::string &s, Type t = Latin1); + + /*! + * Makes a deep copy of the data in \a s. + */ + String(const wstring &s, Type t = UTF16BE); + + /*! + * Makes a deep copy of the data in \a s. + */ + String(const wchar_t *s, Type t = UTF16BE); + + /*! + * Makes a deep copy of the data in \a c. + * + * \note This should only be used with the 8-bit codecs Latin1 and UTF8, when + * used with other codecs it will simply print a warning and exit. + */ + String(char c, Type t = Latin1); + + /*! + * Makes a deep copy of the data in \a c. + */ + String(wchar_t c, Type t = Latin1); + + + /*! + * Makes a deep copy of the data in \a s. + * + * \note This should only be used with the 8-bit codecs Latin1 and UTF8, when + * used with other codecs it will simply print a warning and exit. + */ + String(const char *s, Type t = Latin1); + + /*! + * Makes a deep copy of the data in \a s. + * + * \note This should only be used with the 8-bit codecs Latin1 and UTF8, when + * used with other codecs it will simply print a warning and exit. + */ + String(const ByteVector &v, Type t = Latin1); + + /*! + * Destroys this String instance. + */ + virtual ~String(); + + /*! + * If \a unicode if false (the default) this will return a \e Latin1 encoded + * std::string. If it is true the returned std::wstring will be UTF-8 + * encoded. + */ + std::string to8Bit(bool unicode = false) const; + + /*! + * Returns a wstring version of the TagLib string as a wide string. + */ + wstring toWString() const; + + /*! + * Creates and returns a C-String based on the data. This string is still + * owned by the String (class) and as such should not be deleted by the user. + * + * If \a unicode if false (the default) this string will be encoded in + * \e Latin1. If it is true the returned C-String will be UTF-8 encoded. + * + * This string remains valid until the String instance is destroyed or + * another export method is called. + * + * \warning This however has the side effect that this C-String will remain + * in memory in addition to other memory that is consumed by the + * String instance. So, this method should not be used on large strings or + * where memory is critical. + */ + const char *toCString(bool unicode = false) const; + + /*! + * Returns an iterator pointing to the beginning of the string. + */ + Iterator begin(); + + /*! + * Returns a const iterator pointing to the beginning of the string. + */ + ConstIterator begin() const; + + /*! + * Returns an iterator pointing to the end of the string (the position + * after the last character). + */ + Iterator end(); + + /*! + * Returns a const iterator pointing to the end of the string (the position + * after the last character). + */ + ConstIterator end() const; + + /*! + * Finds the first occurrence of pattern \a s in this string starting from + * \a offset. If the pattern is not found, -1 is returned. + */ + int find(const String &s, int offset = 0) const; + + /*! + * Finds the last occurrence of pattern \a s in this string, searched backwards, + * either from the end of the string or starting from \a offset. If the pattern + * is not found, -1 is returned. + */ + int rfind(const String &s, int offset = -1) const; + + /*! + * Splits the string on each occurrence of \a separator. + */ + StringList split(const String &separator = " ") const; + + /*! + * Returns true if the strings starts with the substring \a s. + */ + bool startsWith(const String &s) const; + + /*! + * Extract a substring from this string starting at \a position and + * continuing for \a n characters. + */ + String substr(uint position, uint n = 0xffffffff) const; + + /*! + * Append \a s to the current string and return a reference to the current + * string. + */ + String &append(const String &s); + + /*! + * Returns an upper case version of the string. + * + * \warning This only works for the characters in US-ASCII, i.e. A-Z. + */ + String upper() const; + + /*! + * Returns the size of the string. + */ + uint size() const; + + /*! + * Returns the length of the string. Equivalent to size(). + */ + uint length() const; + + /*! + * Returns true if the string is empty. + * + * \see isNull() + */ + bool isEmpty() const; + + /*! + * Returns true if this string is null -- i.e. it is a copy of the + * String::null string. + * + * \note A string can be empty and not null. + * \see isEmpty() + */ + bool isNull() const; + + /*! + * Returns a ByteVector containing the string's data. If \a t is Latin1 or + * UTF8, this will return a vector of 8 bit characters, otherwise it will use + * 16 bit characters. + */ + ByteVector data(Type t) const; + + /*! + * Convert the string to an integer. + * + * Returns the integer if the conversion was successfull or 0 if the + * string does not represent a number. + */ + // BIC: merge with the method below + int toInt() const; + + /*! + * Convert the string to an integer. + * + * If the conversion was successfull, it sets the value of \a *ok to + * true and returns the integer. Otherwise it sets \a *ok to false + * and the result is undefined. + */ + int toInt(bool *ok) const; + + /*! + * Returns a string with the leading and trailing whitespace stripped. + */ + String stripWhiteSpace() const; + + /*! + * Returns true if the file only uses characters required by Latin1. + */ + bool isLatin1() const; + + /*! + * Returns true if the file only uses characters required by (7-bit) ASCII. + */ + bool isAscii() const; + + /*! + * Converts the base-10 integer \a n to a string. + */ + static String number(int n); + + /*! + * Returns a reference to the character at position \a i. + */ + wchar &operator[](int i); + + /*! + * Returns a const reference to the character at position \a i. + */ + const wchar &operator[](int i) const; + + /*! + * Compares each character of the String with each character of \a s and + * returns true if the strings match. + */ + bool operator==(const String &s) const; + + /*! + * Compares each character of the String with each character of \a s and + * returns false if the strings match. + */ + bool operator!=(const String &s) const; + + /*! + * Appends \a s to the end of the String. + */ + String &operator+=(const String &s); + + /*! + * Appends \a s to the end of the String. + */ + String &operator+=(const wchar_t* s); + + /*! + * Appends \a s to the end of the String. + */ + String &operator+=(const char* s); + + /*! + * Appends \a s to the end of the String. + */ + String &operator+=(wchar_t c); + + /*! + * Appends \a c to the end of the String. + */ + String &operator+=(char c); + + /*! + * Performs a shallow, implicitly shared, copy of \a s, overwriting the + * String's current data. + */ + String &operator=(const String &s); + + /*! + * Performs a deep copy of the data in \a s. + */ + String &operator=(const std::string &s); + + /*! + * Performs a deep copy of the data in \a s. + */ + String &operator=(const wstring &s); + + /*! + * Performs a deep copy of the data in \a s. + */ + String &operator=(const wchar_t *s); + + /*! + * Performs a deep copy of the data in \a s. + */ + String &operator=(char c); + + /*! + * Performs a deep copy of the data in \a s. + */ + String &operator=(wchar_t c); + + /*! + * Performs a deep copy of the data in \a s. + */ + String &operator=(const char *s); + + /*! + * Performs a deep copy of the data in \a v. + */ + String &operator=(const ByteVector &v); + + /*! + * To be able to use this class in a Map, this operator needed to be + * implemented. Returns true if \a s is less than this string in a bytewise + * comparison. + */ + bool operator<(const String &s) const; + + /*! + * A null string provided for convenience. + */ + static String null; + + protected: + /*! + * If this String is being shared via implicit sharing, do a deep copy of the + * data and separate from the shared members. This should be called by all + * non-const subclass members. + */ + void detach(); + + private: + /*! + * This checks to see if the string is in \e UTF-16 (with BOM) or \e UTF-8 + * format and if so converts it to \e UTF-16BE for internal use. \e Latin1 + * does not require conversion since it is a subset of \e UTF-16BE and + * \e UTF16-BE requires no conversion since it is used internally. + */ + void prepare(Type t); + + class StringPrivate; + StringPrivate *d; + }; + +} + +/*! + * \relates TagLib::String + * + * Concatenates \a s1 and \a s2 and returns the result as a string. + */ +TAGLIB_EXPORT const TagLib::String operator+(const TagLib::String &s1, const TagLib::String &s2); + +/*! + * \relates TagLib::String + * + * Concatenates \a s1 and \a s2 and returns the result as a string. + */ +TAGLIB_EXPORT const TagLib::String operator+(const char *s1, const TagLib::String &s2); + +/*! + * \relates TagLib::String + * + * Concatenates \a s1 and \a s2 and returns the result as a string. + */ +TAGLIB_EXPORT const TagLib::String operator+(const TagLib::String &s1, const char *s2); + + +/*! + * \relates TagLib::String + * + * Send the string to an output stream. + */ +TAGLIB_EXPORT std::ostream &operator<<(std::ostream &s, const TagLib::String &str); + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/toolkit/tstringlist.h b/Audio-Frameworks/bin/taglib/headers/toolkit/tstringlist.h new file mode 100644 index 0000000..f94b50f --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/toolkit/tstringlist.h @@ -0,0 +1,115 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_STRINGLIST_H +#define TAGLIB_STRINGLIST_H + +#include "tstring.h" +#include "tlist.h" +#include "tbytevectorlist.h" +#include "taglib_export.h" + +#include + +namespace TagLib { + + //! A list of strings + + /*! + * This is a spcialization of the List class with some members convention for + * string operations. + */ + + class TAGLIB_EXPORT StringList : public List + { + public: + + /*! + * Constructs an empty StringList. + */ + StringList(); + + /*! + * Make a shallow, implicitly shared, copy of \a l. Because this is + * implicitly shared, this method is lightweight and suitable for + * pass-by-value usage. + */ + StringList(const StringList &l); + + /*! + * Constructs a StringList with \a s as a member. + */ + StringList(const String &s); + + /*! + * Makes a deep copy of the data in \a vl. + * + * \note This should only be used with the 8-bit codecs Latin1 and UTF8, when + * used with other codecs it will simply print a warning and exit. + */ + StringList(const ByteVectorList &vl, String::Type t = String::Latin1); + + /*! + * Destroys this StringList instance. + */ + virtual ~StringList(); + + /*! + * Concatenate the list of strings into one string separated by \a separator. + */ + String toString(const String &separator = " ") const; + + /*! + * Appends \a s to the end of the list and returns a reference to the + * list. + */ + StringList &append(const String &s); + + /*! + * Appends all of the values in \a l to the end of the list and returns a + * reference to the list. + */ + StringList &append(const StringList &l); + + /*! + * Splits the String \a s into several strings at \a pattern. This will not include + * the pattern in the returned strings. + */ + static StringList split(const String &s, const String &pattern); + + private: + class StringListPrivate; + StringListPrivate *d; + }; + +} + +/*! + * \related TagLib::StringList + * Send the StringList to an output stream. + */ +std::ostream &operator<<(std::ostream &s, const TagLib::StringList &l); + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/toolkit/unicode.h b/Audio-Frameworks/bin/taglib/headers/toolkit/unicode.h new file mode 100644 index 0000000..cf7eb3c --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/toolkit/unicode.h @@ -0,0 +1,149 @@ +#ifndef TAGLIB_UNICODE_H +#define TAGLIB_UNICODE_H + +/******************************************************************************* + * * + * THIS FILE IS INCLUDED IN TAGLIB, BUT IS NOT COPYRIGHTED BY THE TAGLIB * + * AUTHORS, NOT PART OF THE TAGLIB API AND COULD GO AWAY AT ANY POINT IN TIME. * + * AS SUCH IT SHOULD BE CONSIERED FOR INTERNAL USE ONLY. * + * * + *******************************************************************************/ + +#ifndef DO_NOT_DOCUMENT // tell Doxygen not to document this header + +/* + * Copyright 2001 Unicode, Inc. + * + * Disclaimer + * + * This source code is provided as is by Unicode, Inc. No claims are + * made as to fitness for any particular purpose. No warranties of any + * kind are expressed or implied. The recipient agrees to determine + * applicability of information provided. If this file has been + * purchased on magnetic or optical media from Unicode, Inc., the + * sole remedy for any claim will be exchange of defective media + * within 90 days of receipt. + * + * Limitations on Rights to Redistribute This Code + * + * Unicode, Inc. hereby grants the right to freely use the information + * supplied in this file in the creation of products supporting the + * Unicode Standard, and to make copies of this file in any form + * for internal or external distribution as long as this notice + * remains attached. + */ + +/* + * This file has been modified by Scott Wheeler to remove + * the UTF32 conversion functions and to place the appropriate functions + * in their own C++ namespace. + */ + +/* --------------------------------------------------------------------- + + Conversions between UTF32, UTF-16, and UTF-8. Header file. + + Several functions are included here, forming a complete set of + conversions between the three formats. UTF-7 is not included + here, but is handled in a separate source file. + + Each of these routines takes pointers to input buffers and output + buffers. The input buffers are const. + + Each routine converts the text between *sourceStart and sourceEnd, + putting the result into the buffer between *targetStart and + targetEnd. Note: the end pointers are *after* the last item: e.g. + *(sourceEnd - 1) is the last item. + + The return result indicates whether the conversion was successful, + and if not, whether the problem was in the source or target buffers. + (Only the first encountered problem is indicated.) + + After the conversion, *sourceStart and *targetStart are both + updated to point to the end of last text successfully converted in + the respective buffers. + + Input parameters: + sourceStart - pointer to a pointer to the source buffer. + The contents of this are modified on return so that + it points at the next thing to be converted. + targetStart - similarly, pointer to pointer to the target buffer. + sourceEnd, targetEnd - respectively pointers to the ends of the + two buffers, for overflow checking only. + + These conversion functions take a ConversionFlags argument. When this + flag is set to strict, both irregular sequences and isolated surrogates + will cause an error. When the flag is set to lenient, both irregular + sequences and isolated surrogates are converted. + + Whether the flag is strict or lenient, all illegal sequences will cause + an error return. This includes sequences such as: , , + or in UTF-8, and values above 0x10FFFF in UTF-32. Conformant code + must check for illegal sequences. + + When the flag is set to lenient, characters over 0x10FFFF are converted + to the replacement character; otherwise (when the flag is set to strict) + they constitute an error. + + Output parameters: + The value "sourceIllegal" is returned from some routines if the input + sequence is malformed. When "sourceIllegal" is returned, the source + value will point to the illegal value that caused the problem. E.g., + in UTF-8 when a sequence is malformed, it points to the start of the + malformed sequence. + + Author: Mark E. Davis, 1994. + Rev History: Rick McGowan, fixes & updates May 2001. + Fixes & updates, Sept 2001. + +------------------------------------------------------------------------ */ + +/* --------------------------------------------------------------------- + The following 4 definitions are compiler-specific. + The C standard does not guarantee that wchar_t has at least + 16 bits, so wchar_t is no less portable than unsigned short! + All should be unsigned values to avoid sign extension during + bit mask & shift operations. +------------------------------------------------------------------------ */ + +/* Some fundamental constants */ +#define UNI_REPLACEMENT_CHAR (UTF32)0x0000FFFD +#define UNI_MAX_BMP (UTF32)0x0000FFFF +#define UNI_MAX_UTF16 (UTF32)0x0010FFFF +#define UNI_MAX_UTF32 (UTF32)0x7FFFFFFF + +namespace Unicode { + +typedef unsigned long UTF32; /* at least 32 bits */ +typedef unsigned short UTF16; /* at least 16 bits */ +typedef unsigned char UTF8; /* typically 8 bits */ +typedef unsigned char Boolean; /* 0 or 1 */ + +typedef enum { + conversionOK = 0, /* conversion successful */ + sourceExhausted = 1, /* partial character in source, but hit end */ + targetExhausted = 2, /* insuff. room in target for conversion */ + sourceIllegal = 3 /* source sequence is illegal/malformed */ +} ConversionResult; + +typedef enum { + strictConversion = 0, + lenientConversion +} ConversionFlags; + +ConversionResult ConvertUTF8toUTF16 ( + const UTF8** sourceStart, const UTF8* sourceEnd, + UTF16** targetStart, UTF16* targetEnd, ConversionFlags flags); + +ConversionResult ConvertUTF16toUTF8 ( + const UTF16** sourceStart, const UTF16* sourceEnd, + UTF8** targetStart, UTF8* targetEnd, ConversionFlags flags); + +Boolean isLegalUTF8Sequence(const UTF8 *source, const UTF8 *sourceEnd); + +} // namespace Unicode + +/* --------------------------------------------------------------------- */ + +#endif +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/trueaudio/trueaudiofile.h b/Audio-Frameworks/bin/taglib/headers/trueaudio/trueaudiofile.h new file mode 100644 index 0000000..9b0378f --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/trueaudio/trueaudiofile.h @@ -0,0 +1,212 @@ +/*************************************************************************** + copyright : (C) 2006 by Lukáš Lalinský + email : lalinsky@gmail.com + + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + (original MPC implementation) + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_TRUEAUDIOFILE_H +#define TAGLIB_TRUEAUDIOFILE_H + +#include "tfile.h" +#include "trueaudioproperties.h" + +namespace TagLib { + + class Tag; + + namespace ID3v2 { class Tag; class FrameFactory; } + namespace ID3v1 { class Tag; } + + //! An implementation of TrueAudio metadata + + /*! + * This is implementation of TrueAudio metadata. + * + * This supports ID3v1 and ID3v2 tags as well as reading stream + * properties from the file. + */ + + namespace TrueAudio { + + //! An implementation of TagLib::File with TrueAudio specific methods + + /*! + * This implements and provides an interface for TrueAudio files to the + * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing + * the abstract TagLib::File API as well as providing some additional + * information specific to TrueAudio files. + */ + + class TAGLIB_EXPORT File : public TagLib::File + { + public: + /*! + * This set of flags is used for various operations and is suitable for + * being OR-ed together. + */ + enum TagTypes { + //! Empty set. Matches no tag types. + NoTags = 0x0000, + //! Matches ID3v1 tags. + ID3v1 = 0x0001, + //! Matches ID3v2 tags. + ID3v2 = 0x0002, + //! Matches all tag types. + AllTags = 0xffff + }; + + /*! + * Contructs an TrueAudio file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an TrueAudio file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. The frames will be created using + * \a frameFactory. + */ + File(FileName file, ID3v2::FrameFactory *frameFactory, + bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an TrueAudio file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an TrueAudio file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. The frames will be created using + * \a frameFactory. + */ + File(IOStream *stream, ID3v2::FrameFactory *frameFactory, + bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns the Tag for this file. + */ + virtual TagLib::Tag *tag() const; + + /*! + * Implements the unified property interface -- export function. + * If the file contains both ID3v1 and v2 tags, only ID3v2 will be + * converted to the PropertyMap. + */ + PropertyMap properties() const; + + /*! + * Implements the unified property interface -- import function. + * As with the export, only one tag is taken into account. If the file + * has no tag at all, ID3v2 will be created. + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Returns the TrueAudio::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + /*! + * Set the ID3v2::FrameFactory to something other than the default. + * + * \see ID3v2FrameFactory + */ + void setID3v2FrameFactory(const ID3v2::FrameFactory *factory); + + /*! + * Saves the file. + */ + virtual bool save(); + + /*! + * Returns a pointer to the ID3v2 tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid ID3v2 tag. If \a create is true it will create + * an ID3v1 tag if one does not exist. If there is already an APE tag, the + * new ID3v1 tag will be placed after it. + * + * \note The Tag is still owned by the TrueAudio::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + ID3v1::Tag *ID3v1Tag(bool create = false); + + /*! + * Returns a pointer to the ID3v1 tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid ID3v1 tag. If \a create is true it will create + * an ID3v1 tag if one does not exist. If there is already an APE tag, the + * new ID3v1 tag will be placed after it. + * + * \note The Tag is still owned by the TrueAudio::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + ID3v2::Tag *ID3v2Tag(bool create = false); + + /*! + * This will remove the tags that match the OR-ed together TagTypes from the + * file. By default it removes all tags. + * + * \note This will also invalidate pointers to the tags + * as their memory will be freed. + * \note In order to make the removal permanent save() still needs to be called + */ + void strip(int tags = AllTags); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + void scan(); + long findID3v1(); + long findID3v2(); + + class FilePrivate; + FilePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/trueaudio/trueaudioproperties.h b/Audio-Frameworks/bin/taglib/headers/trueaudio/trueaudioproperties.h new file mode 100644 index 0000000..126b678 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/trueaudio/trueaudioproperties.h @@ -0,0 +1,98 @@ +/*************************************************************************** + copyright : (C) 2006 by Lukáš Lalinský + email : lalinsky@gmail.com + + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + (original MPC implementation) + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_TRUEAUDIOPROPERTIES_H +#define TAGLIB_TRUEAUDIOPROPERTIES_H + +#include "audioproperties.h" + +namespace TagLib { + + namespace TrueAudio { + + class File; + + static const uint HeaderSize = 18; + + //! An implementation of audio property reading for TrueAudio + + /*! + * This reads the data from an TrueAudio stream found in the AudioProperties + * API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of TrueAudio::Properties with the data read from the + * ByteVector \a data. + */ + Properties(const ByteVector &data, long streamLength, ReadStyle style = Average); + + /*! + * Destroys this TrueAudio::Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + /*! + * Returns number of bits per sample. + */ + int bitsPerSample() const; + + /*! + * Returns the total number of sample frames + */ + uint sampleFrames() const; + + /*! + * Returns the major version number. + */ + int ttaVersion() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void read(); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/wavpack/wavpackfile.h b/Audio-Frameworks/bin/taglib/headers/wavpack/wavpackfile.h new file mode 100644 index 0000000..02bac02 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/wavpack/wavpackfile.h @@ -0,0 +1,186 @@ +/*************************************************************************** + copyright : (C) 2006 by Lukáš Lalinský + email : lalinsky@gmail.com + + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + (original MPC implementation) + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_WVFILE_H +#define TAGLIB_WVFILE_H + +#include "tfile.h" +#include "taglib_export.h" +#include "wavpackproperties.h" + +namespace TagLib { + + class Tag; + + namespace ID3v1 { class Tag; } + namespace APE { class Tag; } + + //! An implementation of WavPack metadata + + /*! + * This is implementation of WavPack metadata. + * + * This supports ID3v1 and APE (v1 and v2) style comments as well as reading stream + * properties from the file. + */ + + namespace WavPack { + + //! An implementation of TagLib::File with WavPack specific methods + + /*! + * This implements and provides an interface for WavPack files to the + * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing + * the abstract TagLib::File API as well as providing some additional + * information specific to WavPack files. + */ + + class TAGLIB_EXPORT File : public TagLib::File + { + public: + /*! + * This set of flags is used for various operations and is suitable for + * being OR-ed together. + */ + enum TagTypes { + //! Empty set. Matches no tag types. + NoTags = 0x0000, + //! Matches ID3v1 tags. + ID3v1 = 0x0001, + //! Matches APE tags. + APE = 0x0002, + //! Matches all tag types. + AllTags = 0xffff + }; + + /*! + * Contructs an WavPack file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an WavPack file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns the Tag for this file. This will be an APE tag, an ID3v1 tag + * or a combination of the two. + */ + virtual TagLib::Tag *tag() const; + + /*! + * Implements the unified property interface -- export function. + * If the file contains both an APE and an ID3v1 tag, only APE + * will be converted to the PropertyMap. + */ + PropertyMap properties() const; + + /*! + * Implements the unified property interface -- import function. + * As for the export, only one tag is taken into account. If the file + * has no tag at all, APE will be created. + */ + PropertyMap setProperties(const PropertyMap&); + + /*! + * Returns the MPC::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + /*! + * Saves the file. + */ + virtual bool save(); + + /*! + * Returns a pointer to the ID3v1 tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid ID3v1 tag. If \a create is true it will create + * an ID3v1 tag if one does not exist. If there is already an APE tag, the + * new ID3v1 tag will be placed after it. + * + * \note The Tag is still owned by the APE::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + ID3v1::Tag *ID3v1Tag(bool create = false); + + /*! + * Returns a pointer to the APE tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid APE tag. If \a create is true it will create + * a APE tag if one does not exist. + * + * \note The Tag is still owned by the APE::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + APE::Tag *APETag(bool create = false); + + /*! + * This will remove the tags that match the OR-ed together TagTypes from the + * file. By default it removes all tags. + * + * \note This will also invalidate pointers to the tags + * as their memory will be freed. + * \note In order to make the removal permanent save() still needs to be called + */ + void strip(int tags = AllTags); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + void scan(); + long findID3v1(); + long findAPE(); + + class FilePrivate; + FilePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/wavpack/wavpackproperties.h b/Audio-Frameworks/bin/taglib/headers/wavpack/wavpackproperties.h new file mode 100644 index 0000000..bd2209d --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/wavpack/wavpackproperties.h @@ -0,0 +1,105 @@ +/*************************************************************************** + copyright : (C) 2006 by Lukáš Lalinský + email : lalinsky@gmail.com + + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + (original MPC implementation) + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_WVPROPERTIES_H +#define TAGLIB_WVPROPERTIES_H + +#include "taglib_export.h" +#include "audioproperties.h" + +namespace TagLib { + + namespace WavPack { + + class File; + + static const uint HeaderSize = 32; + + //! An implementation of audio property reading for WavPack + + /*! + * This reads the data from an WavPack stream found in the AudioProperties + * API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of WavPack::Properties with the data read from the + * ByteVector \a data. + * + * \deprecated This constructor will be dropped in favor of the one below + * in a future version. + */ + Properties(const ByteVector &data, long streamLength, ReadStyle style = Average); + + /*! + * Create an instance of WavPack::Properties. + */ + // BIC: merge with the above constructor + Properties(File *file, long streamLength, ReadStyle style = Average); + + /*! + * Destroys this WavPack::Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + /*! + * Returns number of bits per sample. + */ + int bitsPerSample() const; + uint sampleFrames() const; + + /*! + * Returns WavPack version. + */ + int version() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void read(); + unsigned int seekFinalIndex(); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/xm/xmfile.h b/Audio-Frameworks/bin/taglib/headers/xm/xmfile.h new file mode 100644 index 0000000..1b07010 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/xm/xmfile.h @@ -0,0 +1,101 @@ +/*************************************************************************** + copyright : (C) 2011 by Mathias Panzenböck + email : grosser.meister.morti@gmx.net + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * + * MA 02110-1301 USA * + ***************************************************************************/ + +#ifndef TAGLIB_XMFILE_H +#define TAGLIB_XMFILE_H + +#include "tfile.h" +#include "audioproperties.h" +#include "taglib_export.h" +#include "modfilebase.h" +#include "modtag.h" +#include "xmproperties.h" + +namespace TagLib { + + namespace XM { + + class TAGLIB_EXPORT File : public Mod::FileBase { + public: + /*! + * Contructs a Extended Module file from \a file. If \a readProperties + * is true the file's audio properties will also be read using + * \a propertiesStyle. If false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + AudioProperties::ReadStyle propertiesStyle = + AudioProperties::Average); + + /*! + * Contructs a Extended Module file from \a stream. If \a readProperties + * is true the file's audio properties will also be read using + * \a propertiesStyle. If false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + AudioProperties::ReadStyle propertiesStyle = + AudioProperties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + Mod::Tag *tag() const; + + /*! + * Implements the unified property interface -- export function. + * Forwards to Mod::Tag::properties(). + */ + PropertyMap properties() const; + + /*! + * Implements the unified property interface -- import function. + * Forwards to Mod::Tag::setProperties(). + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Returns the XM::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + XM::Properties *audioProperties() const; + + /*! + * Save the file. + * This is the same as calling save(AllTags); + * + * \note Saving Extended Module tags is not supported. + */ + bool save(); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties); + + class FilePrivate; + FilePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/xm/xmproperties.h b/Audio-Frameworks/bin/taglib/headers/xm/xmproperties.h new file mode 100644 index 0000000..9b6624a --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/xm/xmproperties.h @@ -0,0 +1,79 @@ +/*************************************************************************** + copyright : (C) 2011 by Mathias Panzenböck + email : grosser.meister.morti@gmx.net + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * + * MA 02110-1301 USA * + ***************************************************************************/ + +#ifndef TAGLIB_XMPROPERTIES_H +#define TAGLIB_XMPROPERTIES_H + +#include "taglib.h" +#include "tstring.h" +#include "audioproperties.h" + +namespace TagLib { + namespace XM { + class Properties : public AudioProperties { + friend class File; + public: + /*! Flag bits. */ + enum { + LinearFreqTable = 1 // otherwise its the amiga freq. table + }; + + Properties(AudioProperties::ReadStyle propertiesStyle); + virtual ~Properties(); + + int length() const; + int bitrate() const; + int sampleRate() const; + int channels() const; + + ushort lengthInPatterns() const; + ushort version() const; + ushort restartPosition() const; + ushort patternCount() const; + ushort instrumentCount() const; + uint sampleCount() const; + ushort flags() const; + ushort tempo() const; + ushort bpmSpeed() const; + + void setChannels(int channels); + + void setLengthInPatterns(ushort lengthInPatterns); + void setVersion(ushort version); + void setRestartPosition(ushort restartPosition); + void setPatternCount(ushort patternCount); + void setInstrumentCount(ushort instrumentCount); + void setSampleCount(uint sampleCount); + void setFlags(ushort flags); + void setTempo(ushort tempo); + void setBpmSpeed(ushort bpmSpeed); + + private: + Properties(const Properties&); + Properties &operator=(const Properties&); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/libTagLib.a b/Audio-Frameworks/bin/taglib/libTagLib.a new file mode 100644 index 0000000000000000000000000000000000000000..2789869f525e87e266b073eeba389004fbeebbc9 GIT binary patch literal 11161112 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 z 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

          vv_~1#b?$i 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

          #8id75!9WZaFtfG*y5oB+t?6pqhezX~^PC0?W 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

          A` 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%0ANI)Dd+gdnJgwU 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

          bLKI>b)urW$CUPf3s-FC6`VgbLrNN14q{X&(-%n zwxQ(vthLt_yu7aCt-{|dnYHbv4Z}Yyyl}%^$9*$p!lOeL*Zl11cb6P-+Ju)UOt?PBp z`ZvEGK4(zl)eWz#+J5b8vkw2qg8Q$C^~{a*f8c^Zubb~bW@cg6<~~QQ9DCb{{WT{a z_4YNV{pH8MUU$iTmv5Nyi<&R@Ts!FElFJ(>zi`>~djr4g<9*`aGk<@{d(Zsht!qAe z`Q%x7qyP82>E90>cJlaRhg>sd!^F;SPhS1`(jV@+EO-8E*R36J+#`oQxWDfFMT7c3 zdF2P6zgF;Z^Kl<$95JBpLy!OBviHB;xogFhZ=OHm#5+EJ^~}HR85!I#@YnCpyf;{1 z%%<ZD>&%ff7k9$>qPw(~o(VP2JkNU~KFTU}SyXsFmd3+$xH}AFmCl5I0wo4vv zUH;GPA#;b`x^MN=ypL{K)&GPcf1Ez%SC{?zt%qKG@xDi+$CmcHrQ+w0ywUfFfBkI3 zGbaUST=2*%Eth@q(vjt8Xq(`6!aV@@4BX$~K7;f0Kzo2Y3T_(QVz^GY&2ZPi{RZxL zaIeCB2=^V_5VZND;HJTCfx8~=UbsKNy#edYr(RK^qrodIf-3a#}+_P|R!TEYI zb~xNPxEXNOaACOBa6gCJ4tE#alW;ZY4;tat!EJ%N9`0VaKfp~!BcBJi0q$bBop2Ap zJp=bQxX<7`=mdtq9R)WHZZTXP+`VvrfO`Y(6SyDY2BNblfSUqW1$P=;JKP0u*TUTm z_j|ba;SRv{M#oYBHwCT=t_$uixM$(sg4+i-0Rze7;8wt`hr1B&H*oL69f0dSfU)6l zQ{bxLPJ?TQy8!N5xaZ;Cf%^h3b0EePa7A$Mza;+<3T|a3{buz^#G10Pb42 zyWw(SOB4!`{vKpqs4x_ijb2fTIWaDRhDQymQ_=4dRV}DhVsfPOHQp*x)=KpB zMCB98!^isKB}YLooMuoB`MC(X>O3Q8<0T?!)el`pns-)+pg%SlK{wwmf_`idez_V=}P$Flp7D{@$487yhQuo8y(#S2+ zETbSsmSM-8g0U8*B!f8!wNcRjpfIHs9+WL?cMn6>f>DC%ZBR<81BfNYBjy@G zFVR~9LARPgx5+H|%r>zRMkA{GU<+C4Zk1Itif}3ZHPl1&IP3~h5C19ZVTq`R=ZSjw zny81PMLp~s$kqLWsE2z*cXe$J51e)s2X`IA!I>v;FbE?k81TI?2M@Gz@HI?>z-ziV zn7xSu=)sPENT~hwb%u^DCySu|X6BAZUqPAsIf7(Po&!!nx0?k$@(B_2OO&0YqJEI5 zPJpH|XfsTJ9I_LI32qi9_!_kl3RVacTp>*G&;C5HM3~?_VS?eJDb5fTTH3!>7rN|9a_qik9K4052i?vMad15Pa9}y6)n=n~DGwK*-bz)z#fyr9-b1CA zL8q)1LFb@kWKgkehi4)4QoA3|5mePkT2lS~auKu$#V>O9XvrN?r!Ll4dhR5ua=}uk|u# ze;#9qoQk$ZBJ<65=|x+Dg;~WBoND<54$c>CAonDWeOk{!R|^LqW?wE9->m&Rc~IMW z4lX*IgUX+A;JbhWBH#3cP_kV#)uACHrpG#=(eIIcnaL#=i=Y>_8bN=>00O1R1|pNN z&hO6R;B5g`baCul0s3v?*f;^e!?wy2dK&$)Oyc!Q@rpT2ROnxen*0Dt1kx`-<&Z@% z94ut7w;@fk4uria=u1>b8FX?`l;m8LB!b=$S@{P_QW9K%Zi{T3Cu|%LHm(yk{#x`i zPYWBLY})u)C`l>NN4gX=6QU{T4(KK8@0oIJbs36QQqcq*Rf&-tdYA7oVzyo-_;2kp zg0deMLA7R;pvfyrrP*YRT_{9WLnov%WShai@_NY+Bgpihla*snoEx%ARF0^q90j6s zyz_Iz$Y&ufN^TsS?2$gG6G1Pagr(5FGV3>+Szk0-P;EeKkk)wUGGbutbMY3)g&bLw zTTxzzBc`qw54s!0NHKjmsP4zXj%*J0qw_)BER-6+)YPA zsMaruH_);Zc;F|Z?c6Ffc?ISH!=qsiE@!tSnQ3^6e5SV``20mZoVV(^r z1Y?emD0F-P@K?3?_u-EtE#jxYlaM2wz6rQaKOK4u0iB|+2CmcB0iUSFZv{>*SJBfP zzK-tz-mJybJpK?(AAcskv9jxxnBOvj|0Sf>d z!2cNN7lXeUVW)$iaN;L?863)~r5JQCUF%_&Ud8U2hOmjCBb?|69|wn~(DEJZfUwBV z07nAv0-OLy<&JvS(v-n=ZH4?1o7g?A2y4h-w-Zis2ww(A{EGmIZ;r%^GuY0xpd&l| z3S~J0;bf;lfRxS`2qQb~1tk7g0MRB}o(ClTZ}N(C-$%N)Aq?M$M!JMwjd;q>xNF!w zJAq%0c$GiGx5DK^&gp<8zuL=oHcNemAz&=RNuOLm()$O5kv^XRqO)(IbtTg0QNSYs zZAiN0<|B+feFcfK-14wd<04bjX zz)yNVxSic|7{YpkU*&`F9&l72-olhngVZ0rG4;Z)5MBo7hnyaOBp-b%w_9I8 z3|Cr;0MY(h{E+iJ3f`p4DTp(e&gd-%(k?^~l zgnr*h__~CzNcf)Ur%EX2 zi+uDRBYD(+5~O_y1gAd_lrz zC45rC$0fW=!e2|cUBYb={#?TIBwQ_FhlHynTp?kdgr`clSi(vP=SVnH!buX2myr5v z${(%s6C5aEKM8+CAccP?;U^M)C?WOh`1i?4F5goU-!0)T2_KM94%K|}Q`@&whSPfh z|GtYQ{Dp)YB*c4w$J4|S{(TV%mr1x(!i5sfm#|F2VhIZ*^hpLLfmlE!k@FNNTF5&-5_?m<-OZc3GPfPe)3Gb5--2qQ$hlH0%c%g)6N{FvT zPS+t}tAvdb)=PMbgv%vFGv<8d5|&69kZ`1gcn5Jh8ctKb@lnO0PeK5W7f9%r5bq}* zj`tFW^gbhgyni@!;va`$r62Klcln5aJaEO2FwRHsF_PmX5ARMAOI?!heh=IE=+8lk z_gdL`9(FhI+cf+R;FoJS#vwbqH2fyu4H~`!c&&zS2VSn>+kh8q_~pP0G<+-YAsW5~ zxKG131OEySr7wmQJKxvvF5oX|INHO`-5QQ|vGXPkj|0D4!`p$MtKrSS;~L%syiUU# zfG^VUI^fea{8Zo*H2fss!!*1Wc$S7&1ON7XGk=SKf283HfWM*P<-niP@L9m`(D3QN zw`(}s_s%X2F9zPO;f28KG<*W^Y7HL?e3ph6058;VKXAW>=K>#~;lqG44Icu0KMho6 z{ab`_=Kc!=z8~d|_P6sT4KD}2MZ;$SpQYpYKDr;{Ig;l?r#Kz>4H{ks{2~o62L4kG zF9hDC;S+$LsNrLQ&(ZJ#;FC1m4?I`HbAk8LaQc4xX1l515a91=_yFLg8r~Opu7+m; z@1@~B;NM(h%0r{x`JRUV;Dh}%{9E8RX!uvaFVgV+z~dUe7kEg+KLWl)!`}yftcJe} zJYU1#0-mkmZvg-PYE$1=fq$goF9E+-!=DF!iH1J|e4~crJ9p11D;LmD!E$|05yc&3ehA#qsf`%^uK2yWXfsfblS-^*B z_;lcz8eRtciz`k2ih;kQ;f27T*YF9zcWL-o;J0Xa0r1N-+z-47uYen0TB8h$tMp&EV%aIc2n27Dh)zR33rzRz~PrQ!Ha z+xe`9ZwLOMhHnFYqlRA&e5;0U1wK>5w*Vin;hTXE)9`bF|42)QQlBp1pJ@07;BRR7 zTHt@s@Hp^$HM|}8^%~v`e2a!R0bi%#4Zu&(@H*f#HT+cI<2C#w;KMY$7I>zHR|Ee7 zgFuy^MZn+D@CCr1*YI-SyEJ?j@LM!|I`H!}ybSmP4X5uA8VA1th)+1*Gk{3l_mG6Q zNw`hI%@VGaut~y`BwQe2nS^5{946t>fRo?~;Wi`TYz)+CUhQh>r#Zqqq@U(5AD4cb z^L?58nOThHg5M!OCKzZ=Y7-Rh@5y4Qd+cnu{@%?D;}G@~(xCA70Y9a1_|czG{E8Th~Ne8-g_}7p)8~#qVas zaQ2PJTi4*O08^N8oD_%H-JEE(3O*4RN|>UR9$dk4e)7nsMy#_17f>K|b>f$kYQG6$ z(@b2{L)OKCQBI39j}FSaJ5OulOnwWHnF3FfE`bq8b#Ygi8KXlSm+fi0^hT#!_yJLhwqq@YT6^MI}?Md)Fd;Ha%Q!)vk{ zby3!x#C9gmyg6`K&a)Zps+Jjo)tPWeNQiSh6z-6eaVlIBBB}|sAo&A1TH(kGH>hY9 zhWQO1wd>j=mda7m5UKB!7c!{(IdqH3FsIyG?wzt~E9#TMgtN2JwpftvKrgOrjmDu6 zRia>cZ77KIrE75*4_en&s#a_mjjLK)lO%lE5;|rXUb{9_A6*^5S>#|W8Vuu*UyL88 z4MtlV+k^x|vZ(VsgLb8)w!wy2TM)ko)qsMt0q ztvIPxVFJF`i*bIu{@A;ZdDx8<>|dB14>#CMk$Yl!1(oM0nv4O4|IRd0h1u47NwZv2`u=ZMfH`v%c7_#}{Ng{4IqH z{Vz)*G_DE;YvQ4JG)z^Ug6%TCf{apx*Fpy6Wyezh0bPQO_Rjh^`qG$PM(vAOH%A+~pB6c+e+e>hKABV4W#oYO zWGuR`f6FQWSb_{$ED83AW6`J%y1y#sAz0RHm?stDbQyFRl<@~WX4lR(Q1+_$hGNBH z?#GPKeCQ#=VXZf`*L9LX-%%vPNLb@1Z!lONi)mqYJ*dwS#h?+vtB0YkBQJXYVa>}T ze1FpS*&R}kk6!oCH=#TQC*%f$Ep50I0IfFIh#xv5n_BGA02$P8JSAle_>0gB)z0_} z261I;b0pXrYC&sBtfx(oaYr`J+(?@agA7_n!=GUuC8Mo=C9kOV`Y~jOhi_?%->O@{ zSq9gmJruUfD1(gsVA&>RWWD3z=h2AUQ z{xsN*`fj&r-F+UuA7l5!*7~8phEzY+*a4$D=+RCxGH~8n%2@EBhktwPc_D?U{NMP< z!_N}Fy4S<@qTs0SuZE*PTGu021UDPb*2N>l{Cfs+^mmAg+4_LzF5f)1KjT~fyseM1 zC-y&(an~^)vwnAeKFe3IzrXM1dA@&rdbaOh`<~o-w`Xgy|KNcS_AUHkY>~fm_ZJ?o zckB9c@Ah@&?D9cP8MpPiwD%=PR`&Vj?EN0k3*Q#Mw647GC7yiWB?k{Yzt2DK;DP7% zUHcJUhxz_G%+8*XaofQIyAeL%jsm1mfD~^1d>GPu>?781|6`fkz1t2RxO?C6`wtfS zwi5TR_W8DX#%8?n&PQy&hkf?pk8f{5TU~^VY<-|t6Xn9=&#yap;7Z8c`j|Cr3lH1> zfNx&EdHGElcahYC2hQHtwQEe%>U(;8K7k!Puzp{U&;5X_0fzu~>?=g7?fZ^y5^`5U z#(v0kZ!hoGgGweC_dw}qp!9p**6-5nOL8mw%hE4L=?_5ZXMyL% z&v@y7mbpD+o4>BdHs4jASWjsFB*KR{mVU48r1`y{Q8{Jt(!b-gEL-WbCvLe&m4Em1 zaW3*v@9kbbR`Pr_YWetG9p&TnH2GMfPqJGz&T9y}jjEgzyh zzWX$FdF=VrERXj;O)QTw|3N+;{j};DPHtHS3iqk1NyU<7Zkvx*YP+ zxaAPbOc|ugXCZ@^F2rW0m5^{4B)|=^l z;lAIJZJp<3|K6%^rY{|7Y3*iShC8QWG+B%TIYR!HlJYOs!Uqg7lzWRjn^$ahu&pt_A zVsC$9me?Dg*h{Pm`y~!FU-y1e_08iWM;^15mQ-uD-LLgnS_{@{glQf!oS-Hv*Is(oZ)Go->d1lre0BR z-E2tc!q}y4-jKk-1Jgd~!uU(ze&9tCulnZRL2dJBv_+$bK}}gj-nw3^X4iTA2M_o; z4QpcSWZG>11O4Xt=4IS<^PIsig_@{jFar2w)~?2;QjBx5Fm~wi35{!fpF}aP3Dq4u z@Z%nHTyyZix4>u|DEf0C}DM2rx6U*lWnk9|DUU(nbuV*g`f=T(23wd&x3u03NRd*hyxdAH2@ z>gD}>{F`XM);+rY8uyU>8ulprozCs&AU|&+^1gXKrLc&n@Fh}kDxaAa`K4Tbu_1q= z3;DU4{N&?zjF3kk^s~!H*Nr}7M;(nMJzG5(XZ`qb)fcsAOkBW6s-OG4>&m^CuEn^% zS5vP`j;`#zHRCo>Vroq9yW-%1_dljmc^90AwSy0rgsm-SO<9G{)O-EDtpofA54`fR zC*M2IQ^)ezcF!5VtDEy}R^FhxC+qxSD#@q7pKRpcV;gC8@5fXl#Mu9ikA2&`V|($j ze@{;)Mu+ruu=C?RAAX239*ea*K5>O|R#UIyl2A;|)7)$suF;Kj%8 zK#vy#Am%O1phI9jZ>jHQ3iREJr`NX&PoM8eJhOby;yJ)aGcJA~Z8F`>eD4Evd3>J| z@cL+Gtjp)?2{~O^z99q#`0@z&eMb`jM=?RL%m%#MalIM?f2#Up(zgUAiW0`Lwo(_(;d!Ok+dy{U$jH!1N^Yp~zCqMS? zea7P*<@5HWk7has?|l|{mbWK9EE$~(_C5!^uQ%%f5=1G?_w@W6aYw;<|Ae>!-kvyd zBJk&d5ApVD2kz+^#`BLP@dJbo^Y*3#=2_l-o}OFad7dIZM+6A308SSoc+t&_@_G6Y zq4!G<{q=nn;Yg|HSqO_#k_SMO>+Sg);BOJn55Nn&Js$;5XM?>5fj4-2J`4OK!kO1Q zs>$2)W#H$}0p0_6v$x;FIN7ov&ijN&=h+2FCz}qNWs?}zf2^M@e1pg5g@^gF@$~p| z@bt2*_dz_7y!U$g%>Z0U{*OtJx33UH=bKr-4G6!H;`VBBY`{YZ`YQ!zct56OO*Tq8 zn+_4PejkDWZH#$)c})T~APYf$3LfR9(jmEhza$}Sz!(*Ej2R`gAxbu2G2&yyI>R}B zt%_gb6rat7^t%B>&ytYSNG*@du1Me|gzu%esF!MzuG=>%>I^eV=th)mz`&81|Aq6O zWyZ^FO;S(ySe9HlBuIAAS8ucDY+yj1jDAHn$;nRvkUh2muR)D4E!g8|4mUZc&WH3YJd+d>_|B8|9Zcr!oZ)j46jTB@)1`?@n3lV z?GQg`CdGL(Jl+AEmm00$XML#gdNVU1QPwRP)SH4bWGdcD%FhWPt-)-fw_nDKA{9&g zU~J}QnD;}Q8FCH0J;8+L0^iUT;N+;+<0X8R!ZSTob%vgy@GR`X0N$zaex3n@Z&dg| zkDu^!6h6c=i}3RmKFrfa_=O5Tl22U@-KKDKhEQPW4GJH{r?-awTH#~(^x)9@6pmgK z3JiT%;S)T}5By1m7kbz%;Lj_3vgd9}{|$wgda4Njhr*|N=q)hxQ{a8cJPSSCK3^$( ziLlT23a=6N$taNY%ZQw1(ZvOHM~=7AGqexjK#~;|vLXs^7P6uW?+~)u72YXq9aH#P zVe2&t|Eb4MY0=dIbX$n`e9zD`0qM#(uh^zM^l^n>DAFE;c{(1ym8adCpOy6v^!6c- zcc^I6qanb<`s7g1VS3PER4=K=#(EuH(cts0^z{ey_zuGpuO15X72uiW8;9orUjR?P zZyKKTGRn9e9-sHOzDc z0rTeZ7jnkr!E~F)s}!=B<gn2tlxiO|e&4kgHw>QOQ{2f@!H*f)jc(G?em)3rT4Jbt>h zCub%-mgAAfA0*jN4<43tD#dcTM)I9sj#zr+bpkz{u8#0}a>$?auek`lntb%|6DoYy zQ`k-PAjTZ(&HVJpdx*m5n7^MMd31454n6WHy}@*nncpB)mY?$h{9d}Iujkm2{CQ=Uvr!d9h_--kO%N8;BBYB#m(a~9JmzJfo@_e1&IVIX z>FSi8(+0l|KnL4E|?Kaq7{o6lnmSX*Y$E4GtRMvMg%saFOlHDt^pyyGnqpSkIZ1CenihP&r}$P| zJR3vS>j#6fk^HVBt34N2A{~o8c}Vthgj?(>2n+mZZNi>(#SBlYi9}@6B>-%27=CHb z7I>vSYZcQ8bVZcLL^t&aCTUM%lJ?vLCSgw_C83&T&$~dQ*;B+5xwPjyh_~63Ys*IW z8Dp`h#z`u$(Z?cQv!@x)#+(WQVb6xskQ=K#zrd*6YEK@L{R55G_4+9Y3%)?x5%#3J zdbnx2Ho}w5kI4`IDg4r&=fNxOdC@7Ve$riA8WUZ4#5j|*CoxHTz6B;>Pa`Fvnr6?V zPqo-n#Q#6y-UGgl;%Xb8y^?I%(!DH}WMLVQu&+BVvMm?I7#sIqWE%)YmQ`#SH6*za zFouL0dJ<}=p_3RA0-*#*2&sgY0(p}_LLi|effQaKfxP*i=giFR?B1*5y#Me2Nx!>y z=A7r8Idi7&%7P*P~ zbIU%EBK1=!sTR;9{?x$qw~&tZCtrFbuGvWyDZZ9M6`hK(@#l3o>uCJ>FDtZ;FD-L~ z`0gkzWc*1XX#eri79#-9&^AM>YJt46&Cj^j^9k|wB8cm=%c z&ycT1KMH{MCtu+i^XK2L1S#TAp`<pLdOkdY&{mHjSiE9R2g+S^iL{*W8u<>UB zg2tbP*vi%YC*S_&2=OIcTFCg5LdKu95YqKCNJ*RK`17m4IR4ap!i_%%;yyg)Pq9{w zIu;zqpN=F=P^0bz->si?Q;M3^=x=PW{;b{wYP5cqLpthDp`^x9tJ~f+Fx`M6(e;zB z;S$$Oqly$?l%k3zA#D74MRVZK+pW+#zDCax;@ix$kntylj6dIkkoISgk~Yop=L8&c zar~+Igd2aJ3VzI=VyznWRd5`CI+8R&jrs@pjz2@b8a?1t>(6U1MQ)=0oPf6`MExn0 zR2AQ*;QCVo)8}1e{mJ*4iEGy2rol_`jWeofIl{)D8xS=0^QMb!{p9-y9U;CJP74`- zQpou8JqT%k1}SON9DgpkB;rqFI+PlJ-T;2gpJJ^V^)5J$KOIS$phhi)s~mrZd^P%R zbiKO0zj`@x6ZPjdNJsrClvF3Ry8hI_bna!=pL{W#xaM@KNb%J@s%RI&#-FQEBF3Lf ztk62X*wGQ<`}MSt@h63hKR*j0?av@3ZJOiHXMu6*r{)uG{8@qw$NVYQs!^N3as25> z(gZc?M(`bfhI}=;2>|ium@~hEiS)sE`^C^lFtb`wdN+MJj)ii7i zXSCI5ZS0V9(O+0Aglw#k-gC^Vuj6zV5JqmbmSgv@-w)*4glw!}|D(qI8*-lw5)_^k+)@;tIN}FOp*g=! zCga~hxQKQ=hCu0-@GhkElX64Cwo-b68q7Bi<`(`WXE5JOmz$UHCQwM0BG-Y!dzZX{ zSVmM{0TFq*G|el#=MzXOMQ-Xo1W_#~Ap8+T^NNVh@#}%^ro>Q>FbL%oK0+zwpKe)Y zA?t}iq4F;V|9XlZ?mb0vC_3m?kUjq{T)#;`+Iw1wXAUvsdjW1&WA`onR0Xq7=c z*)zgT;8_c?Lq7p|<1KE;A@&BmOn!_Kyxi`QHMGYo&RA_fFJKv6+_4`OjGX zM{&LssQ+J6Sj6&VIi?$(ee6wTWS^jkvbxa~>cqG}PHlX;9&BA^DFno>1CvQbu zm(LMYSR3LB{MlgfCqnX0OwjjkmR5p%B3WB9SoI)tmXWtL&Pwh8i(_}*4!r=WyUL(k zRq`SWI6Dqd{&nDeg~AtR=zS36?~!$5hFJ1h(0@(dZ4OWQzXR#7B!4;BU$DjX0m%HN zk-SF}CmiZ#TQ|s}JJD@&R#teLpTGn~pg&HWYoTGLRMGu_a@JS4$1eo*5Pb4p&8pQO zZu#$JRppNc|68;wCnr`lb=96``Gs-5uG&Xieo36KtM)SRPrxVdh&W&C-(vYwvhkh% z!QW|-v*XC115p0?7BoK_Ncq=T{@OU-sV;W`^e8@g4cs=dO*cGDuI*WQct16wn zZVOVmvFak42y*jyfrXc5g*zGjqD7AD5vlzB7Bnv_$jQtT7P&4r+M~*7ozi9bcYqR{ zku~?I4tuBo2xw0>P0Fvf{EM^k_2j^B2k0|Q>CPTg(&MCmkwreK(59A6q2)>gc#9t`0BSpTDv2A#u3WHM!_&RE8;&_#@pj(y@4>h0pFCuKY_a za&^y0r<(l0!aIA0iygcuKM%u|n0 z!p$^2tQtC`3+G)xlbAu|eYt12ti@?@Y|iTrDx)1$IZDZdl+v&j3%rWDL@&I9=iWaSMoMg**DLH-(9g#&IK>87o3 z>b?b5;ZFZKe7#E4@BzJB=>NeY$HtLCpQii|Eoep@I-&|`6sW7uy2`Us!Ar{f^UuzbvD1@y}}C~nwDi+rO;r1Folpnt|ej$s=C z+JR4A{=irra|}Drf=c6{xM6o#!(Ia@fysN`f;h-AtOx)B)x<$@ z!=_r~<{pvCUu!|9#zBr@EdZT?Pu{+Pf5VXB^c!@bsnVYT;A(=d7-(*CP1`pET9w9)A-d_Y))JH+Ay&O^_eZiLIw~LdJ`% zrwJu>I_Q!0G!2xk)%bcE_haSeuo=HTaJCTpWAVSsc51Eb0>s7|6vjZbWBW z96JkiFGX(ZTwKiJ*dgP9Hj87IjSd#a2;=Zmco_rAf7G(dynyuuvP7Zs{{X&O9J@9u zY8J=*F~Q>4Z^lJ*7tMy#&EnWDpv>Y}43)eEEO&8CQpaowWV1MS$tPUBDMt0;Sn?x) z+!Zm&lm>(-e;T}KR>ZQYB2D?50gA7PX?66AN?rlJyCNq3mW#+IzYV^-A{OWW1$=i! zED%j`^Iav&;XHRmO!)LwiWimql;xWhG2ySA06s6O=x8|GtcaD4H>%EJXON?-MqrOh zuCaWxA{MYrnV$!Kd__#$sdM@u*zSs$t}X#U+^>?a1LdxW>0&*&7{;0vu^X4^VvVeb zX;^ecOeY|9JF+6C>9;~nbVV$rhgBiEB9;xI8;?%FtcYotxJR<*m|#}K9E8I(D`J`{ zk}PABfV(0l2uwKO6tg0Bmv)L*sD&kSev9RQDD(XfRH7jC2v#4VdC6gk_ z7M%u^SrIz{3e1XFOqYMQWo?Kn@b3o8tccO~ZkB!mmRS*tvpxpPtcb-}$+57|T@j0w zt4gl70J9<%0+jzL@XU%>T<;xVxhrChSn>t%+!Zn5DgPfJ$5+HmagCT9tcbND7-m~H z$f6I?0htxCB^LVQ#MKt+Bwmz*N@7;TP66Mnh-K62UvByDWmV-r2)M!qD@*HwEg_+~{cCa?8xwEQV?dGek9!T*d!&WjX zALl#yNllHei0S;W&(QwWIXl^+-p;B@7uQ7=q;g}~m-OO!{HBGMW`#Q$eaj-p^@zm! z-!zkvd09bWmi>7axh|Lal*Z;{Tj%&vfXs?mw#-l+o=C8uJ=rv2m1Me6a&b1ko*eia z0WvFMJ*AY=4nD^sAMZJfaW8+v%DmXKjN|G*SomAL!%y~V- z1JB@@3k$!zXLvZF^u1ZZikK;!95X4A42Bn7*=GQ5R>XRQJ1%bn+^mR^iUyPub{2Z3 zu^r>->W7uMV%!=4S_{IHt;Y)~cL~XBAv0D|-MwD3j35LlNRJsB*5*l`|yA(h3%ike?GRI6rt= zBRD)Z_>$l$mBAOwqeP!B#QM-h&`$ZXB3vr=pgxozhR{SlIy1N+aQ#K7-? zz|;nxi6=@`qTmGrF4RW{ehAAvb)=9k780HZBrWwUuBzZIVlNlQXzF+kaRc}%0e(&a z-rbDP;A;~1A$95b4`D#%{{;Zv7Y#ly;jaVa48pEYycC0d1Q<`04n9BOpAX3Wgx#E= zdeNp$^dGmZI}^-x$kLC&`fq_>Ouu|3L$n-ZVSPQj=yLFRpGW?laVqR7GztGexcqxAnmom8s zZNfazegv8%nS5b{{BCgajZsC1>ifAQ-cE(5W4{VW>QP)&5ts1!YxT*u((~}OnZftW zVLVST8knvJ=hNhVn2pOLE$qjVAKL}-)VG+3T=*24^1loSS3Q!-BS8!yTlvp`!}&`x z*CQd|q=?hW`+o(d=rCaNz3*BK18xe3fX|s)van}NH84Euk@RC2NsC@o{)xbRhG`Xh zB#1rFkt0tJ@>iCVZ~NEc>)Q;Ld33vg#HIc-pngEk;r3Lcm!h~_)WJE2qmb}PjtB(( zk%%uMZB#(h=wRBB2y3HqVhTXNNG;?{QCiu;;atM zAWB31pMovrIX5f&@1{df9%IiVda1`KEf-y)!;o(&(Zykjl8plt;7Exs_ec;k13_cJ z$-qd7uJ)d^7zW%F_5mX$y1r-3Ex?F7HpMVfqECaX{HJi068)q{g4pvrq^0tIf~%D1 z6wl9rhowkQ^8Q6<)4AeTe>|d6q?rK#VK7^C$7SQT~o@e(pwZ0Dtl>cw@sG3H<}PxhLSXac<7!pEa)dvQ`zKr<~KDO7v=vN zyaBo3pXHH2-Gaeg7N`r!`HZBfsRthi3V+8HzoTXG2Va8t*GRj_qh{(zehcw8NxO{F zIfYBfP|1IQgr7N5xu18*1(LHHHA!b|l~{*gSdt}c{8Zg~tvSbJT=+xzuq=13hVofi z26PkNHvlOt9{d5na_{p7zK8&8OYXPj7>B;HOdt`mv+Ci0EL#k0L&)|7@GmO3n-NwhGJU9qMDEaxKRKngLw@BlUx9KDL&q< zl6QmoG66GO0D0PXL)q%0b#dTt(4hANk$WggO681{E&%NmRp@?@J*6q14k;;lam5q? zUP7`#>YYdp|Dr=CTsLQNga+Id2M9_7{+n5lGu_67G#`zZGI=U^5r!D2O-Ub&6xh;p ze|_;-m`sa4g`DEeuxDXFyAq$=KiCJn*pO}U7C)KBdk8Q#KLo`DO1g z$~W$m^EEu>j8^a!E){&KPsIkbl!|Zh!aP>+OhcLcm^xpBl$t#CUr2bsD7*(9kkm>~ zO{+w9^K$rlz9p0u!Bv39i-YA!SmNW@H zPKI1aD<`e|>3NXlrTl)-%H+bR%+3CUKyp*j_rdv?!NnCE$je_wyn;8(0{Q_+2OU2B zPZZBzjz+l{_4T0TBc2C6_n<9RPvH9lFb`^xMoIEPjjRKOAA{Kl>22|2j@P3YhmtVxF&PIhifYL zSzHgweGykb_cdG(&ixCnLvlaDwIp{SQadDf2(H6&%Wxf@I|5gE15If+Lit|lrT7|{ zTl!^u<>i;%0iQ_m6dgL^Wde%EO^_nPP+s*D5a{ZniF|3)Nb-y1(Wb)dct@q+8u;M* z49in(MMrMATj*tdCRy>tMlUG1Q@pPu?6%P1}h5fB@|G}xgdX*ta(&p$SILwiQa@+RzOQGd8uX=lWOUHGybdmDWw~ADO?XF_Tf+Z5EO?fNJ?Tx; z&Po){Vjy)4^ODbZLcC1=*Svhzk29Aee2aJFpV4}Xe<4hX<=&;Icp;t@*e<<$Cirk^!(xmec+_{ zxVScdu4UE5HTcb7@xV#(_QYnZ+}Lo@Tz%lA_-@aC#=^Q1=UJG}MgA3l@x)2-U7kOy zQ6D)eK0U6@ueYpo;u`!*!Q!!u;!Erd*()?I`X*RBjZ*x%1br$lHmoy*PwfoiQ6%G!Ke5&7b@>rNj8Fh1$qB=cq(}fNIxKXxIA=i`Uq{`v!KghInCi= z$r0o+r$FSW2>D2mP9b><$+i~^%OSZJ%v;b1i_ho*@Gt=REdZSD0;D*D3l<51s3q#W z43w^f&0y{);Lt4E8e7JY|MmtwW$1OtU&58=)H+Cn{}J{jOOY6c z{7J~O8S?)UgUtktJLmBsU)$DB+ag20$w~(_xGHo5CT#*22~#-nTHVA^%Rm?2!KmV0`KtLw-z~ z|CVLd#WncDP7j9sn&aI3sr;**A^%(p>q?wvVaA3VoFV_8fboX*@VzA;vzF|EMR(#0UtmNOp;we)*<;-_Q&(IJW*Wzl1{I?)whx}u&2!?#V z2~5WJ8yQf^tH5%Hd?BZZQvTcE{c1DREb(sDVqT#Z^QV8#uvU0XQ$~yZqR~GSEHmVP z^P~tXe>1XYhx|VPW`_LNVz8G{fwK+y+O~&iTV%*LSs4c}xc zlOg|!F9Vn{)?Of$V!3Lf}iQ~Pxx;mCuX(aG41q3;gbxceoUX_^9^Wr>cGmCb?Tr6UKD}A(ebH+ z21!$->Xg7EQwNRsE!FtrzYt6veh-3F28W+K5qx**5Yw*w&jVnl4l8Sog14y&vkI`x z)M4;uSGUT4`Q&iwFcvNo*qTJ8g=r1>uK{MK4(9=8rVcS}{x>YEF0R3U6D+e@aEVne zc~JSc&J9-!jz`}vu&%@d7G`X?8!)?C@B(0F>JZcBC$0{r4lxb>bg<%62jilxV8y2n zhII{C@u`DmC7%P!ojN#$G6rRUL*&;4Q-{ygMLpkwc5J5(GcD}F#61>fa=nYq-Ao;} z17@ZUF>U^Jmi42!hU7C~xl;#iq}2B0Ak=VowLq6h@@SCVse>!B2RwJ`phf)sAe*T} zv{s}T)r~9pu?3mc0Yz1+<&ZoB0C(z;0eBn$cj}-4Qk=m>C5zAp zyHf`Tr7K|r0PfTw1gPY_;JH%=&6DhAjy^$e#;L>Xu^5Ur;e+mG_)p>fV8(6-}aTuRz8ON#NU7sxK$ITov$TMPv5oQkN&Q!Dci0>(0|JLhgj z_qZxBbDrneY$Dd3vZphKyEBhMz`FAs@ywXNLeEVBd4;FRvp@5-tnNHogl2!WH}1Gs zz%AYsn0A7eG$z!?M3oyhR>_`scZX(V)~VDA|S*X=hjPQ6XMFSgV>@mm^=S$7cP(DQo&1kV>2#1CQ@<5a)i1Ot&jr&dl4!t$J$gG z7pTg4DZ7ZWuMzSKirvf$LuJpC#!J})3|+Y$j3*G1J=@YnBUVFqVd<)(=SuXwLFt+i zgO-uBZUW_Hd-V0C`s{Y;28sUJMmKUlx9S5M-Nen)k(4eyRwkiegaR*hJFZGqaqE)? zmYzu^Y5uMTZ&OM)-vgq+?_)rvPqLf_N($!@&AA*L&QnXbF&hp?USrBzmeP|(J^@ha zDWSsDQxH~~-0qNh+{*BNOc8yO$k^~pQ1alJ(zBZYi%F?b2ZJ?_>~kF!k^1yfaC$y? zb%h#n+d4Y+mI*8hZv9T#O?f#Q=M{dv1Bs*_$2EL;Pw68XVxC&pknaGJ`YA6O%mc~1 z%_!YJQuMtc_Gs+OR9A2zxhaxOGI;bHBrY|U4)=ZsOvp-!Nb+9rdB0FP))7kuN#mvf z0M7PHmwV+ct^!rGXs*5~D81kRvqjZ-i!AC5rl*Ql0L6QP(g*yFEA%Zv>4|Y&eurf> z#ufM%fyKFgX`6Sm)h)SJMf;$ePpp@I!{-43LGALsZ&AjAbAjR=LFt43n{b1w;-ht2ghm)b&AO*u=rGZsd))PSXq>R4tRX7p!8+$g;uw)q(sA4DVBcK zzrjNPAIYXl`5##RbJ_T!P9^88)we#SzjBjeFQJkr zfX7wS(sv!6O6~^v7JN#ZxHXwDeOYK&@~dEa=>1ABbpet;2jv5CGEtw)Kxq%QfcXUi zu5|${wD7lOg8nw>hlbvdk#827Rz)2y%A?sbbWvmQEez;1loQ|E&&Km@-QI3HC99sST7 zaLgw+XC$FRXR)OeUJNphstQF;S!zn^JoJ|Ot&EztAVjAw$KY;6mO5m1{)W8DA0p_lam{2_qv<1_S{;E19&ip3FHX1wApfm(cq-jD^Y(lfw1iR>?B zWjBGvmjMjDE9O&4OUgfe2{2Dm#RFLkSLv6)I)VOqB#R1_{s?Tg-l0!K*(zPORF7ms zpQ58f$Ex&fa5!2GeL5X2gnozyJG3(W6MPBi=W8rT zmwXXt27e=HYFe$=Gl8MMjA=?AW;wr!iKjmS&WZR8eIx2tm97W%9CE?~)26ar4C;O4 zycf%_|1hY(Bu9BsmidLmSHa6cXE3zD`x7!3y2|hm25&m~L%qLeGi1{alln_w{hRD#LN=2z?7|J0gyS=GNyrYn3V%LW zoF)ui>HRZmyEGgBB+Fmt@u$8d@6xW#laIT>=lS)ao5I;i*j$u|x<@{d91onNwgz!-c7gVuCJ^q_SD`s0#k^`J#) z$xbQg&3e!hiah#MD3sK8(A7vG%X`TTxgF%x1>^}meY@SXlr@%?DB4NbV^GQleOGe z9G>*S!dp;?Vkr5V9XaVxovuoAL1hZL5A&8?q^|_q{J3g*CRm%uew=q-AzP(4gL)=8 z&(VgEqnmB|0X{B-JAJ)oBSt!K<6U{>K%^1(Y-M=~ij zC|yGp7@$f%4!ZF$8RhQ=n=c2zFK*K1j*r+)>jBvR0ze%9O7gwyEXb*){@20hu5`&k zF(r712gtmaD=7~9eeFO0U9kAnX34M&R>5(4gej>AdlVxz7Ay`+CF3$!3&G+IN6D11 zo$I_x4fD5xe>OfPvx7%T3ys$EEh~J=RI^ey?P3>sEBHU6=#q>a{u1O5$y%9Vkas*5 zH}NT1m%$nh@_e#31qw}XzZ6uC79}Tmw;}DYS{ismcKvF*Q23-f*y@a9>`jL$qC?dNGo}gRVQIO(d1%~Pr;|; zX_9kHpDqmpLmQX#%lHgRxrA=oi$RW;@=I}%_00U)BR%YfT&qx0WuQm2YM}E&elJ|Awf+?S zd)(IJuZwFHN~#|8h*k{@e|~Mus;^)J=1lYBRQWAi@1~+L-S=T`i+sw%J^3x4($p*N z$EX!zFV)n0zmY}5!dF2Za0Oh4-+q-1H2#2;R<~UzvatN2z93_cdswOVAjKvT9M6*) z`Aw2FtYV{GSMXB4bsq|xJ${*lE=RP2m-2nMNP!=+V8rEIwnu?eBJRXb0T(TBp`^|M zJ>oGxJQ)MNey5&i&)PdL!fwz8nFjEHT)4RS|&`|WSB)9dt`6^LG140+$NvS^RCl9NPX@}R1RUn#mYoXrPYE9Kiwx}%xh>o zPot1ciu-hm|IS8TxcaL~u@jOM*-<$uYQcr)_6ZqN@O7n5g)2;opVuiKnT@*e98lRo zNs8R0b5hiT3!m&0GUnL_m3k*gvB7xtFWIQ7jL)!D@bS0u0vymQ;{#RYj8-sIRt{PP zpB*b7NA90j zvU6~eTbp4=y3b+$WhrKV0fRBJU zY@R?rrIQkhJTP4-l+-@Z)q*DoTxD-Em^IB->FT)Jc_QFwnNjP&ITN2@vR7#;Dh*cYi$UgHz_90|LS{*Hzh%D^uq8Faeje-OlY8<)ht>P*Pt6U5%Ox zMNYS)!I5r9lVnm5c02b#IJ4WiPbcMcJ3>i4z@%c`4zpIM1=82T2;J?ZkXfl}np1Q= zMpV=7JY_-0PqUyWB)y{dj}5w=cLCxW#IV|!rgZ7KhSL}mPtOBKcRNv;6r(9lUsU>B zV05>`yo44C+jKjR0i(N}EEtvklVzU~V~cmv!_TwbPK>P$SYg>0#MoN;Q()_EC(2go z+rWu+JKAmO=fH_|JBITyIJ(=3c|_YX?tI(rL|tiobu8GiZb$SQ_61<;ZYQRkQI-B7 z*t*+cV&Z9I)q9rnK)^Be=Wx^|Zp{u0wjx`N&a6 zL6Ot#XmF(4(IlDWhuzM5P@388{6i<@bUQ*x{SWUPV%-k2R;UHi*TV?i?VNLoscM>2 z^oxd|+xdY79e=k4<>M4B4w+PL4!WK90Mgw~OjG)>n{Brf6HhMzM|V3>nG~ZbIcS@{ z1Q^}zFfY;=bk@i=we@?z=x!$qMy21k>@#9)@lJa5Ew!O`7Lz%eqlmh(iw(K4eh0LSTebZP3@&SPNdZYL^a zx}Dc8`=x-b^QXI=LbO-i?L>=0w}SLcuw&hhmevJX4|c5EaoD3S1>5O%bY7%wO1Jai zJvbJOhGn}NHq%I0jeECm$ceZWd@R&5!_lI{YTOt4gs5?Uyc^H^u&K(_YuJ+K?uv!S zAN>e=ktLGxaYJEOztPq6fnEpQhYVKgNPN6w7xOIjuvL;seIDLs_39N^?gncFKEt-U z?6bhe)Nq^8VeHeQ+EyJ_)t4Fwli&&NXfmINo;lk=ejcBrzkWHUhzRg!$%~pLy`pL2 zy2okGOD=nw%YK3E-#0kY)0X5khEbeNUvdQEHyP!K>x1Lw#QE!xH-FWve6x_!^Mf#G z0B;R`Mf`Gq4o*#r(_f*}FGO_CFAQ?Yoy(Q_9U^byQ#8Umdcs{{{GjHg6>#ri=e2^! zcORlpVSfJv?0dwI^yWQ|xc4r2lGT7SZQiS7ByvqALxyD1Mr|hlVl*N?Zvryyl|WGb zmOKFi74npePthoE?i$!);|Fa+xSBT_%P~3e3-symAommQhNcq-1i9y(#WY0c9Ac1? z`w@tY#mDB}#v{2u2V%(m_mIqyz)mL~xqlvU?`rUle#_-doA-Az?jd7VlOr;1$tEYt z-1BW9Q;bIDelOzQ;{%u){v`MFz+T7%P3~=6=brPOZ(pR(#PcwBko#rK{fvP@?m59p zB06U`P((`Z&qm;Ud~EJ*Jd*obhyi~TdWVaE{XFr={Sx*To!}k4+2u@|x1Ef0$T)AS zBQkBtZBCTA{|@4p8I8>SGl+Xv4`gcilic3~_N`3N)sJXy(l3i#nX;+->+sNqv&5dI;ko?7rrQmX8d6;&5%j>h6u7g(wiO6nI# zQl;O9z?jcM=oq?4*w0dxKI@jA4i@)|hcBfrvh_JG*@~Af#B_^=tnUG$w<6WDzkXGZ zyu-(hzDw(p-hBADpD_x@P`;d=C}Vk-v*g7mWocPgysQ(sDVsQf3vuF;y&!0xyaIgL zHt`8jW%A0e!q-5>9lcQGEsL6x`ZMT;JWp~gKy!#f(E4VrhCd*eryy z1|~^qQLA;UW&hl-{aQBBN{e61CjOW9YZ!l=vv694ZYNjxax|NlZ&1u_s}DA z{|-zt_d{G$xgX;?JXe8Js74mx>rh=zBCNDJy#%b)ErU8Z2S85P4xJgy=UjFb*vC>= zHB%SY)-a&bCxglz{zH!ns`3nq@QT{80${8wSsO)-JtS_{^oR>=aW#;Q(sqPdrAk-%z1*TO7+l0;h( zJ)QECC3-%hoVWW^BziNVJWA(RGOAYGPQeLyf3R2e2v}?${KgkKe|lnM zg;%v3QM$peN{l?x8_8VwW2CYqp#q(cbgg`-bjV7m&ROZvFGKiZ#==rTj1EM(dWP(M(cz%bKURSu{`gj*?rw#iGeFTxj%cCxIz+!l+W@axHVJyIC#4 zYJg)^AhS{onZvk9R*6H?=YYc#Hbdsp9G7zoINzeWqv-^f^LF9r6jt2q|?8K+& z#Cf?_Kz<|~dGuij1&kTi z5PlQU;u)Tre+)ovCPgrDUX<2t2BnEM90?r%s*ku6PbDL>{KK>`$kwcFdf)@8dbYt} z^ixj>MmyPHs@H*kDs+(d3*pPXpFdZ091hCT;g7&AbJ^PGAiDaYn{maTKY!hm2(CeJ z-ZKbzTM#;$cR|l1@G~Oj$xV=r>WOfxNzfY~>eVLcB;BwBQPu2d&WELcf@ZqY7UDv& z6t&-2x{#JWhv<5Yed=i5H~td=dfHzsw~aP>Q1iN3@YILoB5weUz~|`i-G~tZfkP>= zWZusa^$N&%$7Q7F{fmsl$>6?e-)6GVFg6s`RPcAyoAs%j4fN|B!-c2N!u(%Q9% z)-G^WJq*z20VV8OfodPriS}uM_BwXL>qL8{5&0tE8*)SKT10CXxT;Z*cO3m z?OR2AL!f;tJMyzddz}$!0Q^u4sn&KaqO}WLRqp}xf1sVP@dDM_TSfa9piaYEWn8Sj z+`x|n^i4;zhDV@x0eU1#l(6?5&0V7Te%f8h678bTUtn}r5Pe;;@ubnfSN}gWAk2o= zFg}zXA4;m~UqPxC=~Ci*BBgV5nxy*y6OyWN8VBMM_+M4$->pS{0QhCF#`;T(=v)bW z&f7rj2I82nL3j#e{WBn61^J~&lCn35yiRhTBsmso=p^@XO0ZaxJlTlc1o$>oX`7@L z(Mbw?&XYi_1>%^&*Fq1I{4|n05Ar*aBxQGsyiW35N%Ht0$#Y+UJ9bHu4;zu)fX^Bf zCaFbqk^)!NoQ7Ns?S#!0sMdaw&Je2A()lc`i#Qee1fr^%(~~@j>zSIz6(jM z77Qm4X$D3FbV(aDwwb zFb&{ucQAJe=32pUs^i0+7Vx_r%)Ns7ieNakSqKdI`y9*zg87zUILSE~81gT1Fpmo6 zr-I>hXE!jHfq#R8`LwQ8~FK$H2H?BBwd!74l_YZbDR+sAP>xmZP{*CJSt3A8kd5 zH?#5@`!e1Lm+>xFZeiuTSsBk@mR-INmvU<65?UEo-paVFCTnKOJJ=hQD$2`At@r!^ z!&9%GiHTccHh!g|y5JL-gy!TTSWuuNxnosM>d+*1P7>Z>MIn7a67*$7vj$Iv#6TT^ zM4l$(4^_(mCIPSZPXIaxX$($S#h?~U(h26xDLlIHwKEH;2X$^)(R3h_lf3ihrL+Qv zpCX^X2H@!N9q6(m2Ym1(73hdChS-!>7OWZ^2pk5*MSMguz{@D%tXjlBhdt+;awb6pV0+$e|P;73n}a#}P-_)C!f*gTlc+-aAOGmHwP zh(X)3@W{!b5Y;(7(t0k?T#v$qY&tWJ#OjQ<7lbb3o1OOW2ukk8C4bM!KUqML45 zUh3Jlzaj~bGoRYgD<^qV3v|X!VPfUeQR66C&9rUi)&volu{OvyBJ1cKTC={u+la3k zo3mv_=n-hmhDpYqED?1zhLVJOJeOm|M=AX3AO1kb$D1^1a(CUbjfS zJ6pRZH?Q5+-qyILW>SYCIjEY2D?&ikq{>NM4W~@r(bYM*xvjosM?>S}`Uw*zPoFe( zQsv|=&D~x9PYr0?-TnVEeU-ITy4%}ZPHBc=8@n1iyC&ClOy4tkYjgLu9a|>P-_g+A zUa`2duC;Mjd*>-#lQ-0DUD>?FenDMUjZ)74pJ@y1`~SV>p!%ND*x81+OLRLEo7 zB`!Yd4l)l`_m(}~Xyo-euLc{$Od?*od5g8(xN=?(|I}h zcLS3cJ2cOmoL4w8&)b@NSl-Z_>Pe9Ga+WR!b4kyvRe1xp{99hmHUUo|HYaC2^{+yrt6|udya59SCq@_L|9Gf zCxp9In{^jGJ-#$*R_^e;(wwiHnON?LM}7u}k@Dp;bqV}jZa4Z<_ek;Il3r@}lJId9{4-T1>D!59k!DB@e*lyo@;R5puq*&dwXKN(BC} zw+W=Yoa?-%+~T}~ocGl7yg@mOmJ4yo^1K{fM}ICbFK55U^pk^gZr{5cW|TFpVx+!F z!pjHW0I>myxvW-`ibUW3gro0b3O$M%)d}9f!8spz`LE|5p0_mT?K7J422Re)tIEq= zoI5b@@SG!>U`5w*FbC!|pPiStPV$j+F_Qn^XF$@PMdeP)lI&q5=H}EkX(J}}V8o>V zr$+dw@Hv|%)4J~Sx= zZX}QhPpu1q8%gBfd%PGfgZN7z%Efw5ZPJ9SB)cXL+bxQV?AT+0;97pkdV6TnJdir^ zNvJdO`F#aGKytbKT0`dduZ0}gcLSna6L;L5g=E*#9b>qX&sA)Y_$3SIp)urYQs7%I zg#Snj@JrUjLxEtK99}ekT-&|^AEdx9S>_G}f|c)3fXmgNunymBFuwkNP%CnI2`H-){8?OT+h7{ z9|-VEmUcsdV6`_C;A(6eJ`muSEX;-i!CGx7!0wwT6Fs$&U%!^%I)3r=AE?&$5V#=( zt|d^8KZc3C0@9mWjg@^H(SHglsN-2ke*xlsK?QYu7NXUeBv}y-^DqyHW1^^~h%S$k zxSqQyN;(nIlcOZA);2{+T%2u-lDHPTQ%FJm+=uA-QPO3IUL7Ufgy{Y#>FbEfT5H&} zN&2Rs0#9&p^m|bf{f;4+Wz8>HObm;G2X+tFTz<*f-H=PtSm6d0oQM`7t>xF1_^|Wf z_YZ^|RE291y<13ua2C={K-?~Ul*ZZ2wuR`3uJDrX~G)D44;vrI0Nq!wF z!FBxNK~1NkhQJLWa4msL1sK?TIHF^P6cplkM5~1qRMae_DL~8+RFE^O=KGJ42YzkR zTz<7_s%;8eGD#gE@qj4uz^~IKxQ<^ugz4lg1a1g{YYDtlfI-goB6_}%f}CB5=(R!$ za+Za384ytEpC&hYzk0 zQjji5JENp0(Pv_;z~7B`qXf_))-J=%?wXFqwpOgvs0Y9i3aH(6-Hmc==osA2ZIau$ zmAC;^e5XO=hIWo#HK?wxkvrhIis!->@aAlOXSd?JWoxy#+_%o*jp>mUUEK}U)xk}$ z5a(9RRa`X>saA1l!CdvLxsiKYEvXiu1w@V7rEh@eDjxQWvLx+VW~R0cxen}KwRU=S zwKbg9aKB?276ud#!}Tekc-&F@Kygcf_n?99Fbf%Z&yq`|eb6|JxX!}DoFGGdi%9=6 zWC{e@cz7;iPb9BBniN6NBY)@U=&oiM|G$EYW0y@7&md>J(e`Y8o3)X~0wR z+Z$ZYXK{~+Isz+f#pcdXH1}D`PTest zT0?_^<1SRB5VYPNy&qb%w8YH;YxZ0<-nP}nt=&y6bz8d>e}Fs8XOJwntwM57+0Q6y z9uy6WOmR~#;*_X>;$iftZ+c28RLUB~{j|_J>(7{SzW!9NAobpT@OS3*!kgl5UzQ5h zZe8j)$Z)*?o0;*ff!c1vwKTRE$Fgh zt!h`*c62t@H?!0fs140cO|{)z0LR*NSMzDe*Q(lG%?;h#7|U{HKLu`F zV1lyZE%vo{Hq@Th*xAlV2lh_jl~uLP5@=~hwUnG63p%7%)k>FCYhnDZ4RUH_VW{c3 zsHwFBHDXn5XJb=6E554Li`#*Yrn>q@Y<6jXOGMRva&=Aj46UO|NR_kTpk`En=DHR* zwzj>kzH!k`dM!p&T7y`=qphoXYa5!1F1&`i&RxxIVlGRGYP!|lUQ?_`Ny6RrCO?bT zuWeqtqQ0iGmMO=W=%*}Bb}X{xVkX64TU4bei%_%4&W3D5BTBb@PmmA|qI8^|O}+}a zt&QEGthmpmWRsc}NVQ>WO}kvnFiwdT@uHf6(ynW0V2L+&HkyKpk+KTTmTJ<9>2_SU zvoT7|VrgB?qV+3krqn8K$YR^4^C;FjDc!E1iq_ZFZ)=o#OzRPFD_ZR`RMpC?)@Qrq z*0vqB^}BahPK$7t)i0Wf#@X4})wO7Sy)r@U45N?4oFr(o2cTs|y^<}^TB}6IBC2|` zXO@{UHZE#iyJDxEKQ@{knv*v;r8fnYQyLlr9c$}bRT%9v8?##Lc1!nwnrDN3r8hg+ z@m;jGe!a~;cYynnoM}30$iYbI%Q0-2l2WxBI-(_O?nq7E+B?{#4U8c&YC<|J(nxlIXl5FSfT~^33+rVUyM*Q~ja!@B zOhc70D|-EoPW1I~Kzy=}ITkBc2Hi~J=Za>hbZ2HDm#wX@=~~pl!N>OP;}vGK(#xB3 z0SBtBqubFoQHEbJCCM;sHE}Z0(A>3sM_YY2hBZmb#);9k z*SB|IN>C5JXkavCa?0i~8P!boA~G>;YSMTc&dI)q&yQV8MUoc!o{A@g$!TSulx^jwm zq_v~26N4mNP5($NbZF}i-tB=aC81+RdMfq3v9+UnkL~)MXk^_) z?L~tKj)-Y#J$KQw=`KX1y3lTfWmKu@s~?a)E`?qy6bnjBL`IRbSUpSKr*d2XZ#3 zkuxFI*oh|IN(BsQdR09tS0~~8HfpM*a)Bt{hKR8Um6gWW5F9?W4*ij;la9#71S2C( zjj3gb1houdQ_E)HcrHDL8^JE6!&<+~U;_~c7%=o?Qlb#{Q52cov7>7n)@kZbL5e}x zVs($E)0S{1BTUbY z98yf#e`J~M4=|i!ctyez(3-0>v0phna0wY7Sc<5)a#M@c#UCcBHO83MGY&cQO_Z1+ zZ~YU%`js)58J5xki)Jydzo|krmWBRG{>K@`02hpL|4CM5jE)p(e@%v$GwVZtg;!%i zWf|Nh(}XHJMo-5mYpPOh-41kZt@KNTru{3kG>h!2Yhp9d&q3H9boB0@OZ8#O1-nFZ)W6^r_hzuBHl^pVBC(ZR@D{gKO?cE_XR!-w$ zUvSq6fk-^O{S59MXhsuOf7n064hF4yA+vHze;WZtAi6&WzpB#_k+3yiGjtL zcA+rQnND`w+T$r}H)y)mltm(9Ll693#6xRlgf7T5M%)m!B@-VpB|F<%lF1DWnbEal z3#vSa9vw0=GtG=zPad40${;*`=mo3y`zrc5HWM%f?JL7GjtI z6Lz1Iv8#a_6sJ z`s_}}BH1w0CkkA8R6UnJ>f7;nR2TLcnIF_$*+a2J4WGqLS*{ROV*0WbhbtO8gU!}O zYZvdt&O#M#8{5#>kQF4IfztEeS^=r%)-5}*xk~{Vz_A%^Vwxt`Ab|`MXfuZD0MNB4 zOkb9YBFvch)F}|h3J;zUqqEG0F$*CJIVOveTUEQYvwfFr>UJ$^-a@I65QB3qn&qmM zGeiKYVc^ax*(?X&Y?`xJ<4m;9Y0>?AsZ0TEdRJq2)1pii$uWa^fO0o6s&fXml(TEq zjCej~2j>HjmmnNd>VWhzuA5gmJ^*2Jj3DX=%@iR=rn0JQPg^|>9&~TRNZClh;F`k_nnEYX50p{pHoX>^501|{_iOtw8(@7}Nff&0=jvkbca3KVNZZyIf5OY{o=_DoC#@`QzH7> zz5@-V29p9T%1Yme&Iet!oOcb6gsibAU@Z%aDUAw>>N@uz>xx>m3M{Ef8u|-6IE=|s z6FMvC?$QSuL)G?#qhTnDwBa;^s^=4&s%=MWV<$TG`t}w){M@Lzn{h&*75r`{js5nn zx~*7t3BxYf8Twy7ALrj&NbU5)TSF8y7z zW!bLy)MwWs+;r|*w8-5?L|@b&&}EI(>jEWBWW(R(%z#o`&yQyF%CSzTkRt-!Hhk zGqkI<_4j~v!yQ`pEa=XtnR?^s0P1IN zUd^;W5^-*_&&AdMAW`OLonB1MeK9a}HuiXml0~u@%_Lccy!>})) z-8$^8tSzS3)}uEb`>?-XAiY!BcaI~Rn0=NQP<>*Y{ms6Ujezy4WpB>2@cs<<4z{n3 z)I$3n<(*yEemFvJqvBS!KaOy~{c(idqV0R$W7li@F``&#-;U_-7OviH}P95y(yI-(J5pGo86Un?CMCmH(G%pGgq6Y7lh zYOdbp)FUHnV?V%D+)rpffZjk} zXI|n${mE4HltzE^6qV{{mNJF<&QVmRKN-q$n_9v5>$3^;^ z$4tq7W-+^9-#N^b>qiEiGcSGhO~I)T@j##U1aN0A*=x@e7wAXd8i>HP2V&5H!?T`o z*%cnXvHLEWyCeF@4Tp7Fn1wIrZF=Urd4!Ul3<(a~=s7^_gv_o*_OQ*a)}9XA025!2 z&(soM;LkwVd)Bpfkv;>F<(y3|9zc^Pu<;Z&4%uK!TfVaTD}Kwuzk_AwO zXZ8dl-#vlkQF`dnkJRgA)J{Ab-+9AnPP~|ghfcTRQ7VSlFPlGq?R*JtT&q(%W|dBCBOWHkWDG*{ z-OS+y8>&@aO@S|zfWEG+!#jB7bffBO#F}w~TGrMrL}2m$Cl$OFfJLo#$hEb02NeV? ziD;F4l>k3@dKYg)kc(#M6IAj_75(x83D)iCZeQ5g(ujl@cVFJq!nd!W)O*>{M$a)N ze5uMZTR~>j$Z4%b*nkZl-j&18t7_Z$rfzJw;B<+8vZEW*f2NErsD?&4oMflnwZVaw z49G0JUb(Fc&jBu4i?dER_hRFwJBzEt9hE$PBUM>KJpiX~Yi~b=N)-b=fN-ovU^`I& z8Wzofc{zl3f_asVajc1{m8fiOl?v4xwOX#nEaLYp9a*_ZDwf)1kG;v;J;FE5IIjn? ziXG-&C+xP`kUSH|f>6opcYYTG+n|MK$MyhmZ)&n==z~426%W#H->&dQ{VTF) z;5zp9o|wVS%#>REkZBJZ!W)j>P?b~A0{OgT*L)s0Ma|j{!$Mk5+AF8vx%tlSu48eC zNz382Dwfcb&@7x?aV2b&_$)pMRt3Z^GjwNl))cF0Elj{0NLJN#*ITo)v3f|*E_q9O zJzydmBw38MPkd$1lHJ|eE+;Fqh=)6lnLE_z4TFOdeZHZJJ8bRU+xQslhK@>%XEXAC%S+Ktgy?KLDZV1|xZr(pP|&6d&!&K`Hfo{?v3-1W7NQqm%;jv z_o@%9F&V2fP5Y12|4&@klkXy1;Bn{m&U81$ zqW5?AtmBD?TgLt8=*3#RtPKaK`63_Pv@x-=1l_u0wJ+FG&dfl-%CNqwsT1QW`aStJ zJzY$3fXUXR@p=Oo$k!Xxn|BMu^Jx)Tr5ntvM6$JLXLgcdx3ibqQ+F||qrF2vV~Zox zCYaT6{oM}bbM%YQfo1QV4opkWom_vPU8OBqv(wLQKAju8nUYax=3&1c`f7J}kx@2M zeVdx`0D*bfNN1LVc0kK&c_?UhX8YO>(Rqld*OJ-QbKKK>d9bp7+NHc*x$L_6#tbRC z+B!UI!S#MrlPIZQuj>q75R!eu9Sm~|*fYE6EVHz5K*}~9?VUTLxoh=~mKHQ^9bmSz zX_?vFwTLf#5TJy5Le7%TtZN6~O=E*SVP|x=Z(N3sX$u~VVxTA7%&}lPXCq82i}PopOKp`*Y~RA}Rl+@BXOpk( z>e66|^nk9MO1Mpa(QYka<2?ygQfPr$0Fc{Dhd`lhrHkQ9?%cBE&$6`H(jc0`?%?3s+W1x%6P4KAY21=C+z!$pER(9A?R@yllvl;pynspzvs#(Y2c_}s)23*G& z$n5U+V@(}lvL>7zXe$%dnXqG{Q5bYsndZ1G<2ECd*){dWaMl_kOAXeFPT7Q&JLatX zF05_Z>LB4PS^o}Pj6H3ieTvMTe9Sh}d9?59~*V%@aOlLoBCqkLf(V|aMN4C|2{$8N(5 zj%x6F7lZWfe;2#R`U1|Buqg2hTa`znDD`HANrxjPxN!COqDmAz}KC47zM{WKi8s$mq_}b457vnw+R2 zEz-+L=S(L`FPFt8(6if=9h)_`Vh)~9t(+3BjApB-!LX2734#tZgEbSY;qtO9rwtfV zw%7UVj#G~!JwJnmb(#LI&95+TCi!0|JCG;O`m`+iU>b~*4aWb?K1A&1{eO{B_rW$; zhOVA(UhD0#ygsuVKKn*pk@ug@>FK5PrVe0jEPO1kZ!GNW#f!0CE3$iI&Or6-xL$N>QsMM8y_x0E*?U(=;f|baX{NN~dP5bJ>oxSDSlL-G3!L?H8ERj2H3&n3wr# zr0|y_uooaZn9Se*VeMJ~swleu+{;A}0k7f%A1Nv*8X6#)nGaM%H1nOAS%6AH`5;A8 zvqH0c8=4mRipUhre59F{nVFT9m6nxXS^1TvDc~bhE6e}y%$(gjcexiXegD;Se|zSf zIdkUB?CkE$vRjE@%D)ihx96cb%ophS7%=_43TE+^FTa#o5wJu+{r%S9oP@DhLiXM% z>9JIP|Gn&&ygcBRC}f{d)i2+ix-{XxU#y^LZMngGIJJT-9$JbHobr8g-Q>tn8n5!S zgp>c;t#Y=o{E6lH@+?;5oOYk(yJ|(6<*YSmgPu3HRmZ`xU4B@7E2R7g`PN6>7beR0 zsxrFzszQa;)o=VN3XSEGsv>oBdBj|pE5DBVazKTC>&g{5qAe6uXjjv%$ZTA!e8VOt zyXf^fa{1Af;LE6T3#}fg>}n-J?)#S0e9tEjY!#0e`m%*QFPGmM#J9{|3?D z&np#QD(izaA8YKJC0~uHFQxGDq8Oj5gV)(SIGL_5)s8QD+Tm?4WAJt?3Y^^aC6o5x zm=8xu!X#QF!26APX`sR}gRY?DauvN-Mtv)&r*RCFk@(`TYi-N5DCXl4C9m9#=jgn3 zJG858+S}<}fAR@DU%Zm9K~e7m_ST)%ac?Yu`C^n}SHU2_3cgs2cfE@~poHyG6O}!YiX{_NY^ZCS)X(*ucow%J|A?vs#I{sFi#j>4aCLM;g~VHx9Wg0 z1Ku#ErIi~IZ8BZ0QhO~((^U8TUNz->AFbXh?`f(JT)A%OSt_t@_760)F^yif4fRVs z?~b}wUCZk==BkK_P&tJf%Oe#jb}*i~ZGS_E zI*u{NsY@%E&ev3p=_X^qbDOkwbJ6RZz1Mkq@7ayHc>L{*`%sI!54le2O0L+Ue>Iiv z(YOCUOFqubYYib!NtLO#mx*8B8`5n;zH*IN{$#wXR$eFMT`J~t+3ph@9@|IWuX>o7 zFFS$dF?)G4@g6hyFdgqPpO>cbp@yz|C3!hvOq+SVq_EBzcyz~N)XV&{)+E#yeX^|G zwN+BzCw1TE)5{Bzmx+6iVe+lCilb)?sXjD!c~kQqeXMkbawqgX7vc724L($&f~kFv zg;X@Z?=h3x4V6zFNYCL@2JKF(%yhp;pR^1<72sjw-`9i9ZOY&GOcl@ed#qRmQ~n|W=wqgI8s%7x9^iv<(u&`kL@v5<*x;J%%V@#_~fk*v+q6+^*-3DO!a*; zS1F5bs{_6sANcERUK{W=hrTl4Yo78K20S*lu{z*u5pm_M4)}PGRAN2AqtBIE6!6g} zpH~BXwCBS@fRC0cTm%@486gi>ZoXd>TW8zcf?nQSzc%aT!2vlNRlaT4C8LLFPR5;)7?vy@*?|CJ`yT0d{Q+Iv+ zTvBGf)?Kx{xqo*}_hUugQSSyABm&sZyT zU%Ln`zwok)1QpsgX8tSi)le(H{BlAaG(vhD8eO-++90aE zL4{I<_RbW^BZ@|R;u72~(7U2sDOjK?^Jf9NoVpr^&}yii{0krt2C&}j_UCXG2g=Qt zW&B}QnQFwkR!i{riHcE$8;i~O>l&4;JFR7NjdRd%8``F>B?0g4;FaCZ85IqTd$pU+U0<&A7js2%nTN1jdrQ!3+7u zD0*8Iz1@jkBb7X1;y8To`B78D)xd5=s3XIDq0>#F{e99Bo)=L&`k>^dX#RydRo;C; z3U%t((eUJ7u1UF-3Kc9?xoaDfs~(p*+>cILu%hoFmH8tRy1%Pze(x(*D1ye~N}2pu3r(JD_y1_h z$3-jm29f8XN>$#=>PRJ8#J80z&+#gM>B_BcUT@Uhw7e`}c`n`43YNNEvrg!F&aW;L z)ZY;LmP22|;?;iNGJ0ty_XPpZUb?0PWh&2(Rz63$D_dR)DQ9WRa}LXi*VkswkOht7 z*Dm^&OP@k0v-afKJ3WhUg=jMcK9-^7@T~~z3Rh)@w~CgyJcq&Uy<3%vc?FAHo{KAQ z))5y2xVWlJl`F7D%UqQ)SI$h9d7{?{r{V>N`=4&=d_Qq_!L#Fpv!liSF(SUyWZuw{mccg$~0j4D_))pDrd>da|W+# zUX?jwJT7`w$^gCb)c6AzkADh-{#V)Ntzg-!^5abT>t2-_8_Hk!LN6JsPp-OMjaBNB z+B%o)-U+PhU#NmPYS3jT&&_$6&7h0U3hcYCVqLSl=9BRjUv%9H%xYJeK5JH>Siw2O z93m<(Q+6RNK2^RUse*j2iC#Wc`L3^~Au7<<*TU3+S&0ljm0)%pny#wAczMfVmR?c* zdYDDoT;ftytk4bPk7ImOcUuzkDTw7?0mz%S3L>Rno>oG&!kT+u7PE%bXHB0L#w^y2 zC9jJ7HS{V7f&O%AMJCnanCjXU>8jN+pAG{r%VTaMco%c=g9cgAJ11kDu?j-_+PF&L zN}x1zZR1gI8hGa#{&-3I{6$ZCw^dxcTax^PCQV20f@WE9c&)JO6Cw0U8P^eQDw*$x z^CZOk2x+|zS=Ek53&yKJJ==GCE2n1_DrLe1dXuTz@mLDpdx-bf(dRv+9`AcprDaCf zQkhhDv7U2qMO_PLW|dt@o^vMP)r#5*o6M&tc+7>ta43Dl1=_qvYJ5}hRf{<374&S@3JH>!UZ;t}s9Jx=|} zUYYpCdr6P$In|4O&*|{rv!n6e1k@6=xNTW~mb2p?+^mGMVOd*TF5hZ}ifqxioQqA> z*LuCgNjh9%4nrZ8npU%lj*X7$(=gma_FJD+lVaTt3vY#6db?LO_s;K4&GJX)xbXJT zzK4ulqHnk5vY1Ed?t+@g$2?{Ul~`afMuEz$Yw+KU(mT+Ur~K{{@XFsxcwneXV@4IQ zpk*#xmHV`U;lKCwy-FIwTADsoYyH}2`f@bbeeceAGwrIk7mXfq)`-v_kkR|_;m#0V znDgp-kNApnSK4VDy!r_&P8*8Ub&%WJRLw)oc%a34SBvTx5w>1GmY2ndoMkG>$U;k_ z6ez>A^-wCKXWBFRrQ4t7{g3K~P4mE!2e*-0Zb^ocZ-ptP_man2C!Lzby+30_6o%H`Lk73=11H)sPZut$Ly`DteO#Barh!;Cr=XKZc zaIjbud_H14=kr=}C666<>;FFokkzK!$-}%mh>O$ivt_*Gt+a9D?cu(`JqHD_|6sbC z&Ki}Jfxn;~mqFk3?4CYxVivw~W{7%^FC(hRw72^;xAHB6gL%>`dx@-{I=!lKcd(uh zE!Hdp39eEtzIwCoA*1WqF$O+MVTNg~t64P+8Oln+Dgp z%WYipA*0v9!9A~b<=}G;I@qXcmTNPYujO9R($Qwk?fvxRvr%=pxzv4#mp-VfW-1c` z>FNJ;$**n!%Q0L=4z-Tz0x(0uLXE6n-ui)*JXwscRQlwmp8_3r~qQBG#o zB#|Yj3RCfoMa&6J&QRa#Q@?Qv;>B1YzulLbnk`aOM@`1Z7*lh`(SEvkUkGs!^eN~l z$k;Ao=Mv~oP^`^J6(S)(hz_8RpuQku3l0>*391Q-1Q}alRUy`aia?t{n?d_P##R~m zel6e7YC?%5VTAW#U%2?_%lvRc@$3kv772Eaz3#-JvkNKh20CFn*_45&3I78DO^ z3nE(yzz(2}pl+ZfP%lsls1K+ws6S{B=nl|O5aqiIcrPdwG!irlMCqBp2S8&%<3STZ z4}vCvazN8S(?K&pkASA!8S~tp0XdCcYZTQkz0Qgm8U0>-{Fcn$ww+o1+Oq{|uiVqW zWZ6fxx4beob$-nnz3cpEMc1kKwz%)K6Jz5)w{nmw_2B4>32lDJiq;+kmLrfH$Psz#zVEA zT)ArdJ>BNdow07vi;p)t7%=p+W!GPO1p1GH#?*Xf)xkaYFRg9s)Vj3mPtzYmTE~N7 zyX$}aY24E-GvC?&{=g3%=Wgu((W5VKeXV|c-%ZW>-G4c2XRBHd7j5h*{NLMi?2}FX zlOE~QyXeWx3r8RMw#BgTK8&wfqsERqrxpdCd!*5>CXZKN+3&I6Zmm7-`xPHg`*zK9 zn*#@io+}C*e(L%Hl=WBknQm40-8rZ4yf3OO0)On=i`%}r_s6)U4F|>SMc(TJ{&VNs zz~A4R_s6oRoJI>XqmJzZeDFcN)Ta~LH~;7Gx!mFnk5_-)*(srx zKl&*s0h9z91{w>>1?7PXKwCk_K-WOwI5?s~NuVL1(V!gAY|t{$TF?&ALC|r~C6EJS zW(=qkh{n$mps}DCpoO5dpk1I7pz|O)aA{nP0d)fP1&s#ffM$cXf)0X?gNi}dK*1O% z8-ij$oj`p-X`pOSE@&BOEoc|$Am|wAH0UZQ5C?cTC>qoOlmZ$C$^=aX%?0Iyia@(S z2SLX`r$JXiffxhBK{23CpuQj)r>BDEg7QH{pk1JYpjZq(G-eI}(fFJVnhjb8S_|3% zIsiHfx(W)!;1dpt1`Pp?2IYYAKn0+!pnagjpcA0;px{s;B0#aAB+wAhXiyGlHfR~B z&dX|?JXnO7W81e*@!QucKKLcYzxK4^OM0j=a%F)K8$q;1Z&GRFp)+`yO3QjprA;an zqWg;~?JR84Si6AB>bphp9hNJ3p{48%ut8nn1=xHZI;)?-IrRm^5H^cp<@Vf>zsoPJJkEb zMn{hKUsZ+hL)z*L)bT!?<1)cu+YP_SzbCm3t|ATr;FloZQ;5ML#Pr!0gxG*sdwpUwQ;}8_9M1)<>WJ#>tj^?A{wc*y?dCyRTLJuk7PVj>Tg1FX|Hl<@^J>hIrh} z{?FN{Z0$t*(Ke9t_Cl;^Tac#w--LKjjQV8CWYL?;EZ{OP%u{x@!8UD+QSU%tEb2$? z7lCrA4I4pD$3a81M|%)$L#wJX-a{F+#^Bt}WgJF4WcwGm`UG8UP~DC8nEk5a`?IaH zTpx-xZTB)ih3oejAB)-S=ZKvue^!B17f(Qs>_5f*_%_sod?5KO5N(gKje%@qH<$4% zmr;U?6w0%|0N33h+5%yZ>^{JDYe1KDJ}Sg<3Zm`#B}#|-Hf`VFB8c*Q&3TTXPQ>r# zcKv{THRQv%j2>L~PtukC&H`k@b~F5<{B+#VR*&rov?Xo(xlLERr1&N*_j^I{k67$? z<71r0Bigo2QudAZo5uG3G5Y0eN*+@n)kQ6CJL(IxrEz_Faed=B|76a87#DWr|912v z+H5SZYxKcwO5PrJXlu^?8Zn>G$J`?H$BAqsoo#%A>0&CnLcxc@!ZXFS)Zpmc%n$Zg=RP_=Q~T36a{;lSw%!1u?T;zSrg2UCu@eaq+*zr$B5gJMkEpPLnL#JWn9;*E3A0Qg4wMtjcVc+vPq zTm6x0jHmM|wTICL#=R=#r7c*2v}F@jQENC7o~F>OR~KBrf^uQERc|3`_Z8y9EY$N+A?D{I1GdgRlyASI zyj0lj#&-RJRP5>6zC|acYt%OpY%Zu4h&HMl#l%ne<6kwIMscHhQ~hZp9YP0?G-$s% zum&g$1eZk}P+d?ss6HqH)D(m!715y9pf;d5P&}wDs2!+1r~~L05ZNVnQEfTTkO)K- zMNd!)2w@PngZhIg{-i$$I0S_5C+-5>4Y~)E4jK)j!!#500EqO*11Eqm?8|%k$v_;! z@?IXH#SKXDnr^9IeMOU=YyCR3j)I5Z1X{b_O%15T<$%m(H)z5eYs|8K*Nmc z2ZyD0PD#7>=fJ6JB2#uOpEUo?&&LJ5`(x;Whcb397+v$w!a=)V4BoYO!6#35dUbI` zx9v~8_~sU8*Ej1pgQx6RvVGZ%Bhw}xKXOyY`w`{%e*gIV=MSt} z{q)7d4W2%EwQ%s0@1LmEqxSkC_q;!y?t8yn{!_!+;lppN{nqhnUnbW5@yqkWozMJo z;mc>YXRWR~W!-|W|M}0F{IxS~sQ1T{GlnNNjv7AY!k}+|Y?^$0W$BUQyFUH&yFWYq zwdO6yXN^);{@&>P;NcMsik~W2|M4IH-EmW`k;8`HI4Zof-cP@0+DAn!pRso3)`Zb7 zKRe>39j&{(G^EwaDF5eYG;ew2%@*IUyr;$e(M6|X7tJ{3SI>F+eDCK^uX~_+maWJB zR@+B?b*5?RjIsYTSrD_Q*6ptxiHj(CZcXSr=9e7}zC88X ziRR~Cn;%!T-Lm`Iw*Tjc(DotgdhR@*Hs@-O8P45fp7~~4)yJp5@#773{=DavmVf3H zIB%`B^5z+BCSSd_<>`jk0>i|fjG>F(n$hmB&I<A_{^?zxk9hX& zzq`B}?JvZwpsAn*pf#XvpaY<oexP(v4rmT&1?Uyfm!Q)iI|jzuplHyo zpnjmupm#uF7`&Q;MuDb)=7Cm$wt#*HT?JJO#q~KT4n+6ScY^K*Jp%d+^dsnZP#^}B z2B0>e{-BYd$)LHQm7vX_cR)u$r$B##LYx?9Ky5)IL6bpqK`TLlEz%aKO!yOz7ng=apv0kC2NpZa~p&D*=NQC0)iq z#lGE&ahj4|138qtHPFhG^c&n|ty@qTO8Nm_a#D1JN~#M3obluND(M@Xs#t4!fl6Av z$V_^qxk}1M#aXLrZ~H|Xgz#%1lWMn-FlT^-={T!F{k1d+AB>eixi+yY z%UrG`zzVtY7(x+AIym=nQ}sYNI8cuxBxrF_1?O2BBoD?7?veg=6Sate4F#vb2wxlm{ztN={TlYpZH@x|RbsKs9@TYWDMR6N!nc+4EGh zZ&%I!WJ4+QYbhcBCJE=&5xrFfYA9M2*?Z#>128*X!jW+jB2Z%_zOP{HEXh&LRy?ID z`vtlj*Pm{`sQxLd%%o%RjCw#vTspx_-y0?PsUC3oPRYfkN$Bb70Y`D%AeQ1vUnx0* zYanF)ZiED+i&8WVl{BZjS<)d6esfpwtMM&IakklOenyX_jQ@p6_WC>SZtKzAIB6M= zlLfA^sN+K_}bPaW8t!s%Y>GR&E_d{iu#q^NsbKz(jR{rl2 zrA&i0Cw1qZ@g^MLq~FlVsS+iw(X%#Mi;~{#XKJ-rs*>W-W}LBLnMyi}NODp)_(B;| zlrPv5YuNlJFwX~D4#((8*C83kk=!uTwDlMak*!uB9x!tGz%7LVG$Cz|^-+h!A8-{( z#X}{uP($V72TZ-Mxj}D6gR&d#8&X*~r*)B9A19j1)1Od9H=k#E(+`=*oA#&%dvg%? zbd=QJ6_Qn4vpMjJ9h{2-ag>QWs>-C75Fto@uO^|VI`EdO1Mg?_2FTi}1Mdm68n|!O zf%lg>#=h<(6VHs70JCBes!Cq`ghIF#_TlhAF=A~qskO7cguic>(5SzJ^LI$7p$?j# z)DY5Fh3%R9r7YbQy$874+%(m!{aYz&hW9h&-<4dMr`Ajfs};PVpa%kknxrX!W8z>p z<#cgxDWRl6+(1utH|w!#zS0VDHA4!jWP|qiAg=9vgo_4+?{F`LQqHwjg{eVd@G!|O zPLuG0Yf#w9?YR$Gk&CvYFif`JbR7u&`lzJCS!Qu1e4M`SI_BSeNombqWNP(|Qb{9F zLGErN_?W+Wrm1DjNIkU5Orix9YPN zs*39|NO83`aJ8Ot9e`r8@~$oV9Y=9mx=QkMd3SpwmGmu+57v4VHH0~_5k+$n&99PvTuP%koJZ}Ex8aJ=-ar{RQ(@ZRO$?`QsoR6>dc9oQcbS|t-gi2})5m#@` zIF+5m<#fqiL%@-EBU}I+QSi_#$-xhCFSKpI)vn4d?WU5}Cz@^-W0$l( zzySg?v`yy*S)_cRqzn$!fK_J35!^;YTnFwjZrs1M9*)qH`OQPkjFawGNe5ibmcl)( z1ytFIB|Mxi$u%>sXYZ@ySmcgUx2Lkz&}ECGkgavsGdY%|aR=DZnc={#CR?9k)~ zuwP5#k6HL)@JX7So*&ZfC4%3h$*)=D!Kn2vO@08pp8u#tz7XNn<*UH!`G=r?>hjUx zb$LU7cXl=P&(J>rUiT*u zjGjLnyxyN;z`MmCd~?m76W1nsJW{|%Yw~Q1yvQOy4E~y?e+iDZ2fqh?;!qk_R8{OA zz1=2W-5|En^J;}v#RlThOsKlphM+d22y#40#td=yezhTjeF?8;Hue2&8g82POgc0jZoffK*PNLzVM6%6SH9^Bt~oh<_49 zIei_X@LC@B&~HBXL!U-EmD37H<;Y2?KTAZ zwP;M%+KqU$qezAx+Dq2&Fp%Q%KJ(OGxCJg9zO0m<%RU?<={U^n1SAk||o$2S<~j}gc}ON%e@k3vpy z2!fm@N2Wt=#D(}_utWAyrfh%Q-bjoEQaR089s#8Cah)vFE0^=`?KQiVsE@RAL%w`;5w9cO%n zaRcKl#zz_ZGv3A+$r!`G4^7NVT@*M%-Ddj4r5Km zzY10PR~Wx${DScv#W!%iToN)=`492O9qZm^ehcXUgOl0iD7{}O}@t+rze}6J= zVSJgffN>S$5XJ$F35>CfPR3xy%LVHAy~ucy@dV>q#sbC#jB^+#GLB~)#hA)?3u8OR zb~g^Y_C=QB=c zoWeMmu|H$)-tsvh$Cv&{ zGQP+74&xh)I~lhyzRb9ak)FSxa^^8U!8nC+BI78=RK@{}^!FE(zb9iiM*7<}N^j5D zg0UH6L&k8%8jK-~bdOB=>E4#`EaNH06O6|hzhpeZxSx^khbjLS#+MmaG3GPQV|;>f z3gbk^2N=gNrZJ9Syq%GreWCKYGj?ITnXxTnBqQ#xrG5>@5XLHucE-Q_mEILbnopy0 zPBMPUc!Y63<6g!sj4w03$oM>CKI1aRCm3fkPGlU>#xEIYjB$M`HGE?cBOvl(+4v3MubCo|s1IFfNNV}Hg(#!if_8Cx^E7S8B z7c$Oew6<3cr)M*cWz1w8&6vhGgmD04U&a(hqa8aipTHQ)7|9sH*pM-tF_`fYf6@0$NUjjc@_HAFJ^x;3G6X3A|I|6Tu6O?*#t*N>_b5fIp$} z3E&TFd@T5V8Xp6GtHwuzFVOf%@Oc^^0X|pb8-mZ)_;B!P8ea?i0F8HoPt^Ee@Ua>n z2tGpN9pHmCUVy*0!d2gESYJA=@mQ}aJf`uNz#r83^Wb-Ad@=a78h;x6GL1h8ezwNr z`n51e<8d8ZI9lV6fghsrN5Lm){9*918h;3UxW*p@U;Lb_eh0uG*Z6(l4{7`!@H;eq z7x=XrzXSX-jo%7>s>W{upQ-Uh;D>2EuD1(QG#=O8g%KLR3Vg7}=YzjQ7iWC@Edzg2 zc@H;eqHu$v~p9_AO#?JshR^z9FAEEI%;FB~y8+@$Bj|JaQ<1@hr zYy4>N*PeCNCk=eD#*YAhT;qp0QG{3?xa2!5f)hl8J?@qMxG zSnCB_mX?pz(Mfr!Y$6!@<|o zcv?@tPK$h;pRPZOHJ+|N{-g19{qerW)Ah%8ji>960*$|h@o168Uj;v1<1c|9qw(j# zf3?l!Pcis+HU2dCtr~w4{A!Iq0e-&59|wQ8#vcQpqVY$;x6}B;;G1gvA@J2T{vh~k zTV4Jg0ROAT?*spp#_s|DuEy^Izg6RRfM2cgTfxuQ_)Xv+()c3qLp6Ra_#PTx06tdZ zSAoAlY5X$qSLh~^+dmKdOB%lr{8Ejd3;r>UpACMj#^-{+OXFvNPuBRU;M;0^ z4)_R-&juf&@ngY%z1ihoCinvyKN|ctjZXu=M&n0-U!d{B!1vSmA>eP-_yOR5r9b1~ zc=QGTmBy!lpQ7fp9DWu<4=Ik(D>uv2Wk8<@Le_jDEJtS zKMcN}#vcNIb)(DwgW&gT`~mP=G=3lWRT{qs{NMCcHrIa__%j;61N?rC-wJ+<#%}_@ zO5=;b&(rv|;HPMO0r*iGzY2VBjn4;vlg2Lt-%#W8z*p7yh2Sq2x%{6CexJtA2ERn( zbHP8V@iV|bpz%||57YP@@KrQE8~ktUUFD4he?sFk!Ee;~(cque_%!gdHGTy62Q_{e z_e2>9DHegOCm8s8Uul*Xrkuc`4#;IFT9`I`v7SmQf^|BuFZ0RO(mCxG9s@v-0w zG(HCWD2KS1LHF^@{~23IlZLh~*(e@b|a@gUImzEMm-OoXa?sF_Uo^V+vyj#%RWH#@m63Aetwnxu*XF;(1(5_RzCrXL+BV zhx?oN=^4E0Rh14s_t%v7uVKF(@6+>*^xQGop=T=Z=6!mOb3E_UGo&+lpPpY`#{2Z_ z?0Vj(=dRx1eR}5X6WaF=6!eVlx3phF2zmwy&zFhn_PK(d<$W6yQq{2tNzX-3LEoZ% zdgl5Z8jbep`RwzYPS0AuLV1yX0Qe3XfcCEeqgWr~hxm=t4DhBUM<@4j9UcJvUBkUa~CgpWt+QUOb0vLWiCW$8)-J zpPn1H^jr?pN) zpVp;~eO`-@cIf$JBYl^q(;bOMda#yG>*GfHO89B)Z`Jg3wDdg9pSIfm1)M}E@BlR&hwyo-)H}vMlr?^I>frnP-k&-sV+=kff;V7$vghFy z)^3^a7(Y?VK6>l`yu8{?VNk}T$>TCS+Ey+@9RQ%X9JWUCQF2 zismP_G@-ZmTdQv$xQtjo*rVRZuF17eSXgEBT4?!=FYf{l{@|Qj5a@APv)yG!Cc|1MslWwq znr89lH!6H8*~n)7hLa~}ISLhLF*K}SaZ(=9r&lT{+VqMSLT~{p0r$FobzbJ^-Vl)nbk+}JZ9EDhvzA`^?P`pblkpm=dqA7pSU9} z<1OS`r&41peP+i~IdPsod#78n98VQkEBh%tkELoKzthU{*2}DesaHMu^)FWx++Nae z8u8LijiZb{IY8e6vUX4}+1$nkZ+Shpid)CGo^=psB_EvAA#1{ja`1n`q@F7EuruP;cISLIiKU-D4+F;+T4ef`w|HG51=_9kI#Kql={juqj zCZ*Dg>Ql4E-#0-Geby>)Q>2cbG$A!Jef;RL8K^?)n5k1!voj`6nlK)pMa-F&I_dsc z(W^&~)QqX4GO}}0bJ9nS&4??L(!NYehcYQ~9t_2o)k-LvRMvW2S@ZE_&BvEDA79pd zLfMQ7?GcJzefxLs);Be^cWOGd?ckig9a2-XCS;-YasLr_Q+#ZMYl~}}&@MLN=GcVz zh=_Kv_=!;BxY*eC2?-GqadEfY91o0$NDCU5osd0o0)m{Al`*N!1bJQi>7OP4;PP4E z@>^a{;+8jGB->Hg!Civf4O={B*B=759>4;}R~c>E5`Sn~hNu z#!t#gB`Xk>u@Q^=iN;7D5k^J3HYA%HzPFGyYSOfEBPWcVlrwo`g4K`yto$%+=o_jg zH@c@wO&y$*o|83-j$cZ&+86*E?U6nMHmEK;w%O$0*1E@IbjHZZW8`6_Y$V;;ZBR1p z%I!(mcx9~+ud*MJSlhtg$kRq9<(8VNY^0AIIT2T#@Wb6k+pTyH7Xp#G%gAA3SsN46 z$B)UFRK~`Y9V$<=x6Hi8P8l2H(nrxK@juxZn>9Xz3b59N{8)}gF#IUqVKV|z#*eWR zMoAy7HWs1|eGrdb@2M(WgN?;%w~USK$s=jln`E`|)jRmRFB}|px+!(v%Gj8cGf`?- zZTNkN_r;-2ZaU&_09+Xx+$?3{@xx3UEcjn-K7O!`-Hqc{?z!1W&q-H_^b0?_4e93M zf0(86R$HLZC2{RxARjeK8?>!`{RC{Fn~GrAFr9a0mwTzHBPUJL(yV^anB&O>D0nYO(I8x)5Kw$T?hD4uj)FgAQ^COdmgTMu*vtlLe-2Z?NIxVIA{~yfSDhwb2FWq27qXzwk4_qst;-b z^0xJb9n!UKd9T^FIFd09do?0C?=A86`PclmwEk6uymBGY5qZA4x!#vweej2?qUyejHe1TY4)N2HuxFp1G&QMeW?+2N zw4O_TxOy@?Ij?I`xAQhzuV<$veR4JONXimhlf)(0uk1e;9&!E3-g7AzTg8c{WW&DF zK6zS_J*|7%thD`U_VoNTdqiTMBOkBtT`HPhzfyG0mMmI^9Z9)(y@_80Hxa?jy0 zhh*Cc$7)-h52VM=VKDWDHvftqbnYQ=^-TykWynDvyqR9>0Y;huU5%}E9fF_RR zw!Fk8q6z$3l5+8>Cge%V#idjS`?RF#N!PCoIVYm)z|WaY0!=^LOFxs(RfSjW;bHf4 z^xNg!yFYeY)jj{4A8na_c|nl*=Tm*+&-vwd&#XrLa|zIEbuL)eCSk+%E0O0YrRlj4 zq{J6>+~92LKwave3k9EYF`-F(5qUHXemKuLlH;Kpd``qHJZ#I)-<@)?ZjAhdp|h^ChKsYXrHS{rHYtI{x7 zYXdunOX>I1(m|-3Bd-=xRoxDhI#9RT#6K4UjXkAxu-~yL26fw6N+~-^>&leCCfBcQ zE)`R4(TV5pnHetAu3uSOdSi6hv6PDoYt%E#ZY9gkFRc%qR&Dba{h z!={1o`^nOVlDENfZmD0MV@WjhW|ZE5)aKBNlv+8ZjU-Q6<4gUMgOi&>E3?$G(r?9} zGk&7~dAzymaCCB$Nj4R+Ix=D@7wd(A_e;6h)Cm;RaAZtR zdN?U@xyZBO2udvVUm>E!`FCeJ@@$zcP@*%L+CD+XCmOu}bB$1LOleE(cPwgz_%tu2 zl*rOnNNEUvYst26SekP29ovm&G#WyuW~n2YFtpSblX$+$%oyaTj~vlW?TCZDw6)}^ zhSy5$&&|s`m{uR!mrL3pJsf(iq+V&sO_C?Q(^4-mJsf&Jmc$~x4)oec556ghlRW7i zm3nj2>Ok+)l6a)of?fxy_kKyr#fG-Frl+-_v!{gGx8=+PXm%`0goPa?j;SQsTH*)a z8_#S9Nln=3*3=KauPy0y`MU?(n>K1fb47_GnedsCn$D*jn=7Ev79e^mAZ~FuSB3frnf=bik+y=rFq-A(X3neHEiJTY&xyveX4kKz zlr%uk?REL{^a!)WNZE5cmNbD*BuZ^xLcj4Pub*g&l%^<4wQ;MGW|F7UB1;^QT)z@g z5{a}3=!DDYhL=Q1o^)!W77@@1Epa?2B1FrsmtNi+f&N;hWZf^FpcQOdzE+GFq<1zw z3P!Gr#g1gc(qdc8y+<7RiJ8Nqhac&Jd_l;k+VTYQ-IdyDH_*c>2hu(P;_R*lT9xXi>4wE%YHZlbBjfEo0`keE8OB5pw=58nJ2gPAjH7BV?Z8#dKC2THOEq z^;onCB0ZouF+Vw4TrA1`;k5JoX+i&f1pOes6v=oO;g|UL73ec?AA^#`d-8X${7uH& zu#)kzl4P+-^6T;Y0%)b=k}(V?i$$P0pqZeDK{@!Bj4!H@tudf<(A}UrK=ki+P%lum z6I6pL@co~&t54BBMfK|0XHQ)}RaeTW4bPu_O3J7ooH;vB?uTOk(u zv(#tW<2UcE+{}HM*}cTuxtY0)f-%wHvy>d4$2)Hm*yr-EU#TN4ly@zcx7D84`{Knx z@WS5v;-!Jp>ADTq3lX=~%&eOEa8h8rJuNBIuc+#hhP{KHrfauq^4cxoFrFc3Lf2C# z&rmO?v)}h;?5jKM9-A4njl4g0hJKHp@k5M0KjYjKo$Tr8@z1Y?Jh~C>ckGAL zRD(;1qRdK@z0DCHy8{eR7QwOZCI}??B2d>kKy89oll6n2gnlrJbWwzcHjr>oZq2F0&A~Sb%zjP!v zS!8a7B?l}`MQJ-=>EPACw1ZcJ)9$(ISa9BL*28@kbpY0d0F*lLgyZ6N>yHT8{CQVDihubonaLqcuv0<%o>F==76}p4ocVljt z))6*4-T2sJ{hk0g?Cl*dQ=H_$8BjFeYm~D4FD1{E;*9|u* z4*ODvgKkzF)$wa{)Wfgc(TpSxdY@Bnu0#0KAL8|EMh{3Ftb%(V`7u3vGhqvO7Yw~M z)qc=sZ|1NE{A};Qk9@>~NSX%E;Bp5B&fzYc!1J>WC&r->JKd$UY? zz}Mhox`VF*eylxYA7&~qgY0jsa>l2ioKX7n&rmWWs<(-t2)|%+1Y$=xYT?)Bh`_I1 z1kQtU0`0zP3+VyOru|>ZkUdx#stZFRWERplkgQmf3FlrU{Xofn_Qh1JD;pIZO0PH< zAtg|#(gaFX?Jfo33`J6NN^WMCe?tvfa6TCk&KN_~+9gunkfv}BhI|@j?d)0ps3Gs? zNggVVgsg|sXJq6aa?8fmRRw&7^ou0RvQy8Ja`x?-A$rgyQofO#`8bgMF_)aP zwlhR?Tp~SdU&zN())jV&9F?j<=zJ8Z&y!@Gotj?yqjJ7QA$Gn5*Rp(rvWNIhQl+@b!&*U!9(=N2 ztMvkQH$ex73-)S{Lr%%sZFb@xG`gRfzWAby^~ z*RmxNzsTUjZMnohZSW1`v{>ym2H#jt?bKdx@Xh4ZN$qV0-&{^T)!uFJE#;I@?R^Fx zgXtaEKWOl=HjxPabAxYd+e+nsZ}9DHeTYA8@VD6LEKvJ5@Y^Unx6zO-YX52Q{ZxEx zkt`pq;#1Y&X}HEHN3Y2ki8T9tw%Rp-JIPj-vh{$$k5#rN82m(KYl^{7RN>DmVjevv9WyavnjWZ6LtqR?6GHSE=B$6i|< z(jUP9W^W@Xsg9mhhx#Rr*f;=&z_P=BzoRzL=4gmtoO&qD(F(tTj#&IU9XI1Q!jXty zIvM$G!H&cJx?>JdI2PmA=2(tjyJHo8Nk!D9KN|3Ngwt_T?-~4T2VZ|BcETv>FgSZ- zc|!JU8%7@w`G!(%7xf1N8`NEk?(6TUPiKmT4*wen8~q1b0Yaup8-GB@5mi5-J4(CP z4>Cs>y{07_yZ+t7=xx)vv^%Ok6)20U(k`q%l0QeX<7UyA9-6EB9hfS%2zobt{Vw!# zCw>~sAF>=lKQgWU2$D*@`)DsF2~zrLJQ-}=j<|ZY+v?MP{WU$1x`OuTCxTeD_dKQH zov12zeHzUo=%?{6N~2GqM9@#;4~V6o##CNdb^OqisR13D)c*zh_NqZ(qMOoJb!-9c znsr86K$0A-)B|uTCE1k{dI&0_*=?kVV*$gOQj8pqlqV^*AH5`BN{)cFg{ILIcNo=l zF^M~deFb=ib~{BD0A!|t^d%E56TJvqW%`6PZFx&4(dL=<$>(p|MDJi>FeI+>RAX6;JxwfGn#8E2Jn6FyGBi14B2@m3e%J);b3CVEm*e@Ik!c`(TSv=8uVxoA6UUP>aXi04CKXS! zB;}eG&-!==rxs5oCv}eJy^vetDZNGighY#{mXll%Q9nYi#nUAh&2K=!RXi8o2_^Ub z*=7Nf-1?_X3GIM%w|FYW$bNSi@ucrx$k22r6QT4S8WGkR`y9_+*yVWcG%^jOj}&Q{ z=pFYe6UUP>aXcMEjd+?RDc7`k4up;tPbDXHj%Oj{mUv2UMN|nST0FI!(9zf(A;wilq zQFlS2#Z${kE{Ldk6e?FdU2@TUDHK%yJpVA1+~avSgzoW_DWMr;Rgb4qj698YQ}LuP zvdGXhcp5vQ^kpOwRtNhW&-M$=cut?rnFi8lv$Ra~)diJ_<4Kt~p1Y7q#nUWFxu(VQ zcj##GRB}@1c(zA{E%B7zil_%6(c-D)Bo{=~4hoeko-Vm)J`@Tno|m73l6yS2Q83(& zcbO9UCeq#FsT3oZEHdIrpSF>qc~8cZJ~1W2_POHu5q7zM+7}z~r05_})w+-ZYwmAM8{`v($kG^{st^{tIycT&xOSm|>!LQ>}Zf3S5l}*&IUQ37w`f2=6 z7+>gDZQZmNO0oq$b|YO+)4fi!8<7w=S_c0Q=%LYN%6+bsP(K(E&DxRTSXZ*TLQF)e zc_HpU%)GJW4j$2TT{M-NF0UzHzE(u0aU+_%IC7iPiQGJ)_NzeNlPHF2;}NmDrUp|F*dZnNrK|KKLaO4tD2sZ+qukj7 z@=hTCc{aLvhLWEvrXr*lM0b<;X_;NMol8OPiI5CvJWN{8Xj-BMefo3_B|m4o0*}dd zwU>#1iPUV|5n^Q0%QA`6R5w?;uWGuX*I-7d^xf8UmshN@-@Arhz^A&J*~q%amt{2M zVW|8#t_#gJ=Ipzuwr4dB;d~!SH09@y>GCczC`P4a<(%|wMk&XdxVv07sPhLyUd3*a z%f99O74j<}|C)9_T#Z0G|29N7*r^|pTgE66Tmw%~f&8P&LL5>hN`PlB5XQT>0&T=nzJTU8-e`)>(Q#Si6Ot_(Uda=^7qLr zKR-*?R9*WPLmq6EtFGPCkk_`#RoCthc{<3yiB+!bXBzTYPjYR1aMFY3($XzfO>+Pc z&c%jOH&05!`MeEDrTlGT8!&q+f*%adHM&s9Tn zsZ~>}PY_yK7PrQel5jRKtv)wGDGlWRv0fi}?s924#~4~?JepF~qn;;C35TV- zNK2%o*YPPsy{<=ft)hj7W=pS{!nwmxO7y6tRpvcIbD+b0M3rajP}P=yKq(L-kbjm} zbGSZ&f>fI3$&zp;8uCS+qae0Aac+|U&Mo?2VRTMPQnhI&n_y6kK6M|Go!I_yHEcTLUXyAAbQ%2yZ8<%VWI z@0yy&pBm~Dy{k(<=tnrK;S4MzH^V3O6hnQEcXcx|!uf=uzQnt_>w?nxG1Pwn`4<`L ze3|a*8fs5<_TQlz77q1I-qp2`H-l<7QvceYQZWqjH6~e8S4z%)kf)N)DSwKo>qM?y zJd;3#jE2@E(!AiWji}V8gmWs==aB3#qa^bRXAzQDlE}XbJ7J0nki3gT!Brk;s+X;9 z>fVPac#88&z$wydP^EkioyCS`v{lm_(}eRML#e%0NsC-{TrbHods&ra=wv{gji3|< z@*iSV(u%v;P#R@bGK-TfES!A|&1|ol!a2fFnrT(i92*Ozxgh_=Rwd1`XAGs)Rwb)r zuNs;gy=n^QCx+5nRwd1`U!Y{G563>XDrt^|LP08hV^y*`*3!^CwRtWE$BahUq3I@?-m3jiq!90=AR^Um*RhE(3SKT$9Je<8_%6gTF!x6J-D=Bx zTG0Z?+~(6{O6aRdcbiXBigLxkI-f?%4D#mWo-o>#HyOO}O z%ada}P)VK~>kWNAEsFXF`i7$2?i3G~wI~CF|svGDjg2AtxZ$C&y&y<&VrC zQhkK`MZOxYvDhO!XX7L55$1#6wG;98)b^ zVS-?UFv( zGc2x)IXTuejkUVlPZ?Tja00+f4LGkt#FJwbd%a2#>E`5^ zRn!L}o*c7?LZ(2ZPmWpIRfH563OqUHQV`A$A>+w0tKHur(kI8XY$1(Dx=)U&5ITDy z**ZDKgL*bZJUQ02jb3eaK!&}IVUs7vmK&;v?Dre0TH#?IL6s-Rc0-jX$2?he{$R*2 zc{Js8j4~(3EL~G|?HEHI>}Qdyu06<**S5-4*Pa47PmWpgEBh}R@>pwrl569G^K(P< z7OSQ?0O0n;Q0nGMNjO{L(F^I$0IQrDpNIOvP|_#IROnTG9)pZ0$2`_&lOdmFEx=lz zZw<|*R!yxw0U74xn58%s{&+*a*=j_q&j={#lVhqr^4#Upa&9uT&UiGXn(G@wNjNP2 zNK4i_2HnRc*Y&8bRrF>Yw}0c@)tuh(z~YSai=V<;4S5=3+EC;v!8cO&Eua9 z^@-lqr62SooSpACC&w)Da8*!KUv8++@owGBD4ZpR`V#Nzt_wyaBAy(Z+fFZAgwg#OPmX;AEuI`J-$UnRLo>RHMbkXm zgtOT=HrL*&q(!cuq14N&L=B-%_D;Ox)0iCdUffHD(kQDXvp6>QxuKcuRTJk%LusZ} zNpmcEyg51M-LX_dX|>go)v@J<=0>lY!ugS*^p;ggbL?*@@#L6y$J$O{rEjd3td3j`Zj#bTOrMdwYC97jS49zI7n!-85P-<^g(j40kC7v9! zl&N*;5<_XQ)soe*<`1&DG_RV%d9R`LpjAn8Y#Eeza_lP{tJ=6hesY(78%oy6F?GMM zP9dd+T$>zIa?=Q(QX5ZXOWNd^Cr$lgbC8ion;cVlC@jMHm?76D$E-G$=4L}vn;i3` zsj4k!rsU*U-$b4qqv6b)9P9U@YjRA~r)RAi)8ttM&6Cxi(Gfp#FB6lD_31IF#xz6M znD*q~pHxd~+O--YUTv=VM+fG^V?m3}Keh;3B>y62Ua$~B3q{kZ+bGMU&F{q&$15Q? zjnu;ZED4*=3Tuqrv#;U?KUcKg4ZXIs|KjiP#AcHjehosrnl41Lty=#!Q%T&PTHF@= zHR@s$ZAj#n6nY#2HIxPW@f@iD-m5n#TLFcN6`6OHj5wXg{j!2%2FJID`a>Wzb{zvrl2K z_BAQYR}V(yQEf$xOj;z9Y{4=ubU7rV+Bwo)A_dLK28DzbR*-_TD%zwSDCjx+9i3o{ zqVpEqz~8974h6c^3z}nh-U*e*No}=#hDB{Z)abF#pt*MEVyNsUwHNGUURqNwI_a55 zDJrs4tz9DZx2n!_kk_YHf2B;;C?reK4$oN!Ku))}LAxz=2>k#hiNH_bitJEN+MUlq zkDkZ~ddpIb(sdqz>^jNcag`Z_dMtC2H6CXf9N^?G{}lb{)wGhNQ<{@ zAL`@H={R~FJEH2^>QJeAXEgo(+KPS`45!~HOvBkkV>;Fv)1lXxvdF_MD5YxG8la9hXbLpUdAy&(i)v`W1}}G2IeDKaKCkPks3# z(++n<+61J@B14We9oz^RLQX~1YpCuSL+~g6_!HKlPzg=Lj|ig$icXM*{2G}IxQ})( znSbj_I!ZAz3zB&xz3NH25E2@iL#`Rq{h=9@SN_nSiV5edP@$)sLWGSHq$4C2&MzRL zOR^A$jS@^rDCw!jmKRG0kf8zHnNzOP603Xn9eH(>cD#?&Kzd-8WBxz(kvuO*Z?D9v{sM-jR zGJ`^zni-uf!QVz{QD&ObHdjVO(1{$B64Kfh^8G}vLVGII7J704Y?tCk1kxE*w&qPX zr)?59XGfPCq@`4yO(2%-*~O!{8^p3fyBkki+CqP$-10}Y=osk87EN}wD2au0E+n!= z``9Q!x@l%)2R1=RwrD@wRYQk%^b$UWj%?9E-gVAHN4Drti;is3>_qaXCSoUBbhwQY zq(9*cAqfn`uWZp+n{yzvWRu=wE9}NvGOkW~MXGGlG*_@Ff2cH4qYz@*q@&G@&b>&J zO*+O*Q`+YFoK7+5;PO~?#5KJXfb)u@TP*!?Cq6-gzjM9AR>g^(wGhzBE}+CNLO51w#xn4` zC~cvQER&6p_raG^S{~*03r-<{2)T}=R{ls{rYBdEHG5tqsfyh$y`#@r&@8;8&^Aa} z_T!36c^&#wSPESo`h!;5QHSu8Rgfh)=x+kYR$IVv>`-rUydxh{5BV9qH2Z-nask;6 z&7&f#$xI)5N&k$}ZNX9>?-N85)T8$L+&n&l=|!hD;lZ(>uTYO#j<2<5J}bQmpzool zlXu0k*#kyFQF>bfKF}{)(=X%+@G{hYD6g}n3n813EJH2m zGQ=-fC08Ri9M!a>(CN@u9Z3m;b)oDkayU@J5M8L!kCVmfTDnlGHMAsIhzR)!sxt7k z%E+AmK-PjDYx4>VfHQxMW8VI0wA6gEIhgfvDo4W_2L zv5W%!eKelsf$(`!Xrn8TER_BRTZC+d@F!AeuPcyD#jXw=b?$vJ;Ab4ro1x)oh?c^O zALI~#;}l(JJCbcer9AFR36*b`h?k0sDVa6ZI;&D&r6rTPI-F%7l)?t9g49w9e^C|W z6YK0kq#sPkHaS3QmaHPOE)ruvj^jgG{2y^|0vJ_w{g2;C7zmJrF&TpnONKCjfCK_b zSOjDX64ppStxMyOOkg0JnF)(k#I5ct?)z5t>t01GuKn6Y+q!?%w$^G}+q%@MwTphM z)&J+5d+&Sqy?Hb9V*CC70{6Xl&pG$pbI;w+T}Gj!NGYxcJp&!uHE;v|s7DONjFD-G z-3HWSg#O429eNt5-w?VC_l-%$GT=V%0Qx0i_6ul<4rGPM;}%*Yq*zfiuu_N^+<^Hc zd11|Td~=(*ko}?c@PCW&O9G?-qETh$B0%>L<`AZo>R=J%gY{)sWSza?XJWXWXBon6 zMEoNBoc3-CkoSMImu|2T;a_R*<^kk=TYIVgitxMI+Yut~U$nO~O5T5JZ`Z-_qBnUH zk4k#XD5X1MO6j5wIf{>L$7dzoSP&(AWH))~TAWI{E2omY(f0@7K{xG0*P*6FzfTWJ zW0ZDmM81HRd#ci@wT0u*C%_S`bR~Y2>NSK97V>Y4((o_Rb|@ZnBy0EU@V0$ zJDk(_I^w}l5Kqj5s9hle%T6LDvA=ApaCcA;*~BRs9tPxXf}TR@c7?*B zKcL9OUG{AQMU=8xwTu?ljv-NXY7Hs%rpc5QP(Z=-!zeuW*@5Cunh;6p7kJuxCd(d? zBx;9%Bncp|OZTCNB&M0tF~sPevCQusmPgW#0GSxNiLj*vR?&!14?xs-mW>ERL1Uvz zIY`NQz|-Kh>;NNJsTDQ$xPX8T$&@V*9JA77Aj;pIC%5gCJrMetrfLqHs;S0Ne4_mK zprTDCWe)P@tg zuwXF~I5K#Y{W>sgwV7F*qxK1wvhRjY(4-#(=4eumL6PcnF=h9cTn5r7;L32v9EQ$P z5J?t#4scrQFAElU#Ta@=VyTRh8Wvx>i#)7Od7(svzABDn6ikU&$k&qV@Q)BWSdx zYc@1%H5!%RpPQoyjY3Q zs~Z1;7oOR{ZZJ(QfR+8qjEY(bQ8F7iI%ie(k%1E>hXK3`uB@Gov=pee%oeQV0wCWa zf(uLnPM<;bAt>h7fNFOJmDJ#JAX7wel}SLEX5UO>wYOF~6nX$X-&Rzu==FG1e%eGW zEHafg{*^r(rAk*>jO0a$rm_NGmGl*%ui@`a#}J}m_=p)8FBA+v3a?;MCEb0*V~5b# zAa%XRV(d^9nlkVpy!EVj@M?GhgI41C=`z&n>oAlaP&k%IL$kPSd;u_q(hT8IU@=2V zhczPGsa03F#Wr>6&wx|lWd_)wUS)vgB*+f3-h~r0Pa|=T)OWB^TBHynb|El(2-`x3 z++6`#MiF~V(h~sbYn?tR7URIrcA&Ns)-m{8frY#72%6;vl%t@g$6mky;_u zh}glvQ{xiaMd^0Yh}h9UlaVKMrndPNGjmp+Uu|_zGO;N^4Z- z=E#{Q#d`~sgE6EFUFSh9Vqu^TBJ|Ck=p{hW{)^CmxpYcdFY`av0h$|##e*J#i`aue z(axdJBOWY7?3X}OB@R95M2pyGz)*)4`XQynRxD;y2gpt<^fPA|qp-$ifrf?zp%=T? zsn9aJ%m08XcUuiGHL?5fVxm_s(L^%m%V~h{A`wlGy@?lX7Yx1b;uQN_W8QKFkL{0& zItMQFj#I57wh+)(!q^i!RoJ!wdOl(P=1OnqazGy@42;4KRj6wgp9Jo=gdZB1bf~E+ zh5rb+GBg&Uia?DQeiCp^gs%$B^1>&9JD2cN0=gbZRa4?{unMTXgq~@mNe&hJ4}kg; zp%>X`ibkP718Phy(1+M)yQv6G0g6Top_PGyow9MY2{mf`p@G+Q{gW-1#J2%Y^Xt%I z_8`TsE+TXq@HD{=9p#O`MTd{O@g$@OJ*C5M^v3@Ncu@z!E;pWA&(ILyCJ{d6jjsjn zD@y-%OFc#dB0}qcr?GSB#DJ?ZNd75}KgEsbW;%4f#-HKF%kmrH|1}0Ftgz)qbQ+9>q+e*&mD+&Y<3!4lG`2D&pWoS=!TeSO%F>9AcCg(HEY ze{K`vqPd`$92jy3-bLZ5fyt9`AcDdVx(N_s7M@O)vcOQH2-i}af#Uz&L8&M_9tjX^ zQk#iT;n_r35PA@VpAhlf0Nry3`hwyjkiypdCBUmOI|?r#HVRxyROqS!zmaf<1WJe+ ze=1n$dm6POKyfl^ICBhr1r$xE!)pRVj&z`khHsa1{_vDQD2@pc&8@@Dff^UtCC~y* zuER?LLvI9GSglyI$faWtjTm|t!8t3mOeGHk^cMoRkT@3jp8(N4zu^rg*wX%ZijDRW z%pUh3nr=Ag9Dj4@>KuHY#rBWc-8qn=>fl8%QBra73HryMVqltE(sX4KL(ohyl0!?e$;j3LdVpnL)O`ZXt2AW#q z@Euma$jK-@5weKb=Ri|q9KOd3T|E_A4EK=8T3^+yFB4RH3URV>PgM0TA=N+5mE&CC z!UMQ+jNMJl*xXTk5x@a4ogvRj_6#Z|dLb!a7nb@t8KrwD!J#T>l5G>TfTF z^MF6W@T0*mY|`7=W^JRX`a${e2dSMhKNLguUrlY^<$=jnvdt?9ZAa7iAYAyVz<8;# zg5t^aQCdfl6w#fQKP3G9fg);K$v73hDRAID^?3h+g$<|x2Xg?cak*O&z3m`c0wQKz z%H%_t&qp%RGT!yXCiGLpN&RxTqTomXh(JZd_>%txo@`p-v2yY%!&=-$sCt2F|K=5( z|4qf9g*b`OMxbce8eUqkvc=>ril`2Ap}Z{+YDIx#vNZ)MO(r=MQDGu`SNQfo=o(}L zjc>z8xVeRXqET@-htQ`$k-;mxx!^_3oYNqR#-Tx_yJEt3K!yfImMZvElPMV{gN!U* z;r|MRUIQ5&hzXzI<`%*abV=0dZVsUtK#>6|e7;`n3KT09wE{(xhw$zK(kZK7p)LlB ztYP6R+^CWt0Y%oZ@U0n{l0+Ve&}SeZOHlZpf*&92)cn}(svZ7LAT;3+MfOm^pEa3E zbv4N7v`YBaKQBnsG z8G^!}8(>*MN;-feLr|FSGgpNa(?x*k>_d3}LT4E(C9ewmo+dhgOdz^|Gl5Z(>oCeA zLr{2~7b{GzH9qNu=lDd)Qy}8u+VN&oRJBA2EhNw!GJKAK!`6}II7A5-#sw)Z>14Q+ zCb-{|K*juhP4#ScDn%NCrDh3S_-&Jv?};s00rsHXthmsVKWEcydn1$fGAShe~f>TTa&Q9wg zN``^r7@|5OgGv^{jX>T@1Q)moM9IT|e?_<}O&llJ>a(p8m(`k8+!hdnr>;kZ8+~-F zG6%#AE+r}v`UP-mK)jf!snp3}p^+yl)QSMb$*5J#F%$<%4Twi19H^qlkvv)iqXF@w zAX5Y4MJ}>AAoCg!OW6)bG|mCBO3G*8Xby-KxEjhe2gDL=-EKObVxs}E82satAnuSY zXHsUMQ=TF9UJ$w-98{-#v`lP4ahyI%w~#DFbdj&_l;%M{P25RTTXMMU^K<=#*DzvWE&z(PS#suYgQ<%G*Jv zI%OBP(9Ih4Q#Xf_7l1N5Who?=_LAVK&Q4k8NJ$;QW~XchNdjkf$}&jk3V>Co>?{?f zbL7vI0L3u-Pd~PIf+&l$_!0lrspHfxzsPB>`ur^$;bOgUalb z4Jug(e+L4yQ??02$pkduW~VH1oZQS--)hacQ|>ws6>jj`^c?c5OQ;_}r@R!lri@Pc zr7b=><$+)kC=KDMI^|y@lGo^1-UY?`QUFo%22f_F%-~X@!bA#B)hS1a z8hjD<@-7usG?RRPj|{htvcnOyU2c%rBjx&RU@FYQ&vf7 z2g2->75GMg%}!Z@tt*|!Q*5$RZo3TP4*8$!DKpS1KO^;C5URY?>Xc`I8LMv=eUvW3 zQxwr{+qzRGGrwo2ECa0M09FFsow6k2LQbqpncUGSONzsYP3W7DOLfXe0l=AH;7cw5 z-t3fJ+;Igf2vn#1aHnE$EO8Q{0Cb@`<*i*NZ&5@CHFc*vU6ZXTxK@)%4n=FgQFqGc zflPJEE^eX6G%D`q5c&Wp)hYi|Gv_pjqDG@r{>J6jOnFSVBNat!j86GEkg1uni(BYl z8g+Vsi$kdTip)+~spwds+?}#QT?CZ7Qtba}cPR^2a(kD%IVn zKe|&s@Jef@JiN!5>f=GCJLPYJOm)gGZlUuv>Zb)R4kb?lWp>I^NG|Oq{{+sQDNET( zre5Xjl+7TUfHON~86M9DKCGCO4%6;&-!@;Pv3r!13Da^N-2PT7!7hTEvr|^!{jPI%%94|v4<$!~ zz?>;(5L^QSvs0D?oSoJKzmy9qvr{&xWFcIDM%wI@Z30npHgIOAEODIN%vRrO&8SnJ z@SO#)r5~ksXogQa{uXKrCj=MbXZkGYxhFAn;zrQcw17aaXDlrkBdPDY7mHIC^+`-U z>A8o|8=u505)(emLoks{aO;k>IPWeflbp$@cokxl5ymxm+I=`ceY6((x#2`CBYcj{ z@Dq0AA(%+^&LixktWlgNl1;t%7_j3VtKm19wU|KW?ArmBa)`ib6yrghL=j+%_uR|( z;5slk^rQ4ADK8I570rDn7k1)bfn9&3mHeXuTZq4yNUKnr2wtvD)3Ifeaf>9GH~(>{ zIo8+%`g!wzK;J9r8-EjNHSXGPSWFkl5C_puG+=>_SLG(q`r1dJkxbVFuH|?q(2CqE z7I=jMPbAyf!VMP3a|&hRCeo_dNw)YKl=u^9spBatn_gq3i3wywKFP|{BXl8J^gV11 zv4~$Z^7KVsLz!?v9s&`0^(-uAkftKE>|4oShinxhN{`BVJb2l+Xm-^BbC8On^^<9h zm{-?~-;JmN9d~P8T?cz+XE6;IrWk~5^fIGNKLgV*~ zCS54G((UkWSzo}&(LDSX zhsssq*)3a*gS<&&o|1aI*|}@Jo3~@RN*aj-s@Cq4LWeD3i3NS4rL| zeMQQS#}_UASB}J2bF&U32EyYw$BP=b9RnEazk={ZXzB3RdqRJ*fE9omjUlCdt zi_#;KBm^x^N9j?y9o_|u<;^5#z#E~}vFP{ksJsl`D0w3{P%v6Gjnbp?Uh)!b0b>K- z0tr9fB?LX9^oaZ%58m}sF(ycW|7nJ>6?Fpx_4ek>s(V*sz+Ap)GH;Q=zJPjKR3zEU z*YXL5ZvbE3z!Re%fCuUxL*%bSGNhC(=wlN^$R}}%CE>VUKxn{MzT5~to*LD=fD!ey zBlH>YtoR3S2z?R2iUmyioQ#Pfk|je*Uj|&ve3b}S>8+ZSvSJw^_A6j$%2m<)E|g-h zDvz|ujdvBZV})xJ(Kkw{w&Ab%4UVszRw`-ZUB#T(fgqykRz-`8Q*5oqBwWE`JAk3V zc*SOCm{RhV@=8qXanO7MS8*Jr#g>rKa#vdHE8uC@V#PKO8WB6NNuf`4p;H?sjgsZsK$ycGD0g9}M6?eLrlUKwBu0>_22KqjV%*f{0 zRE>Gi!l?3dI50HTt9Zo1sFa+fF;7|;8D`wA!2BGpLhk2~1(gJb$^fSQgB3421Mvn% z5gUy9$mpM2XpT*xtAQrlM8%uVtdO-Jb{Nptj0XDmF73#SJPGK>2>qTHdfe?m)Bd@N zzd$nus{U~Q_YyD@Cu0D)oT?BvtmTJLHFbQ8g>gl47lu49!UYarM7xp{ZQ%eR7T>Q> zORh@eSCHX(7OuRp;bFsz;cdffF8_z7|LDMy$$j!>+-DFxwr1&B<+eAxFaS-{-$H6` zj)u%6ObkN@EzoinehdjjKa@(S#qZ*y03Y*rk;p5l;#;sojz#qEf@AqA%o9&U+(bDV zuDq#%L?dqnT=={~7OfcHWpGL~?PbxHUW)KUOyR?HmK*!#`*xubKqu{Pj0b1r;7BsjnNKE;?Tda2RMp$CG@%+X( zO|*MA#aB*?MXFtV8bq>Pba9HkuQ3T%@K`BYeAzBK!<3S@l#SuBHK390BBjNakkP7L zJQ*~yUG$(4u{$;TL>HR16Qh1dwu>&b6hNG<&}X^OGW2AiWxMD^i&zsdu69wXE!GE& zt6fx>Yk`sNqDv!EmLF;KjZRf6U400&t6gNi3Oxb}lY{c{T~(?=Z- zj0-@^cF~y?vKGX40qtrRWoVg^w*u{I7Y+2dXMr}_MVS^JpHsUig40gJRY13RRNdHl zP$pO1n^0*otL|-FmCUNkkkY#VcUN7Cq*w-sEdgISq@Mv)KQDMpj))i!C9eRgMq2 zQCD3L8WEeV(I>jltew~u{p``#FO4sT~(L)D)ehW%c|>QPF@kKxLH?Sii|a_q*|yk4_X*i zezpK3tFDDnVJ_7e`}B(pGwumsjH=5}m63k|N>*KqokYvJNmdp)q_NO4eG)w%Xjyfg zSs`mdY!lF~sw+dwjHKC}tLhr)aZdnkR9%@Co`!POok*jxV|GGsJf^95aU|#ilXhYN zQ1K#(mjyg;8IKVL2WVJ1Z`r9dU>M40Va#u2&qNv_Pog=xyrG*%&L;&6iw`BN9LafBcTDbCL;~01YbXN@i z77p4Yqaq$OMsxCc8B|NU(Pdu;)J<>|8+rJqqWM@d;o0M`SiwJadpjVR%nD3!rwkE)aOw1}>RHuR)xpjW1w7FGX*jQb5+RbPt+mcUrzF|3KBdgW|8C6)I8%%?Vr87yMs0O6FZwNfGjI1|Ci5wR7Z z=9DyB!*WSogsN{RSyAr<_4O3vIxF1*>c_$umHsH;5^)K zOgV{Di}B^~X@i4zB0(Zb*vJ=19Fy!H9ef1Pfx+LVr-+oG|Bjr$3lADeR?;IvhR7&A zDrXRuwo*mttCGLSRu!d3<)MTn!&sCamB*5|`&>K@!y`(M$}|O|3rQmM+aOVTRGtag z@T-nMH#;D5F@+&OC4bR{icxx0-c5+N=!;==Wklq^3C3Ti9{>bD2v$k3%AN%XOOML; zh>joR<;%k6q_OIASoyzzSx%ozqc<%CWjP6YK3av!QS`+!Ou$!!<)#!wNd1*pf+R|h z$_Bt#k&)R!!Y@ENiXy8Aj>FqJ3OgMhc@%atiSoQW3QMGstz6c+0mcZQA$;LeF+)ms z0ItCN0}~3o6X4RHA~sQ&1d{=gqXry;w-~URA{wv`&w>F*<5@T$j^_Zy;%qyv(kg_O zEM%-W!VimxjP*blj+Y`7j*f7d;pC+@G90PP#C^x$$<=~Imhs(f;ON+x3^%hJ^QOrC z+Q>r+mGO$$2w-LscCU4xO%2ci)kDn(>KH;lLD|R587*QP0sS^%ULYB4j0$)mP&Cqt zyfW^5g_gNdPWL_2sm(}p><&%z%jKF#axbSVFldq#Sr_{eh-jo0dCSEq_G^v#gDZIK zAHYyE68X~wgB-$9&a0y@`=V~qG2O@~*=g!Pvkoru>5fY?_=wn%K+%!hh<(gLDvt|T z=p>-&me)u@fK+bih^zkYEwI6Zn@X=ph*?{4Ky=5o%?IKtpBvP3V__zT^5YCA5OmWLC^dvnGQUSiX%@^WiC*SXvr#od*LEKBXFT=)45^* zNOeELy*4c|Md?vFZZ}}GPdz#pkIGu|(x&T5@HcjSLA#&UJ+`+B8{ivK{Mh?dPHc|GD?rihlq|A zAS3iu$zQY(6{SbzD}<$0uP8k#-zG1O_9Fa6Yf@2qRDMAS+UXaiO@fs}FM;{>Sw^8Lh!qVQa%0uXj5S54GtCGGV^c7{n6Znc;MUT_z zK|9ZQxG-`I8x{8Z4tlte6DJcbjaCO203Zzt-Jl;y_em9wC909rD9eh|fCj|O2?VLr z{Uotg7)d+VrY&tnlp;100n!v`5vhaGJBXFKQQ>5usQ(zbjCc`R-WI`KGdC%*y_#fg z782QXA>o9tq?AT3y9{5HpPc3qF}8v3e;%YAF=aAkJEwUN05Z*2AX`Rk;xrT02tG+% zd@Z0D9WjLOl9Q0qtHE7?7jTN0Pz{=xTHX;N!K4Q@%J>9H8DT9Yk$ftS*q6XexfR&8 zR!6uA=zwGzs|Skuz!67u5)^+*6mE558#MZxE;LIT`!>*|W+0 z{2YAUfUn5A^mu__^oZ=iqmm!wWvz~?4AS@5+cEGQHEH0)+l+zd!SG1U-T{(PNm_B6 zc^H7B7V5G?VT>XiolxrV=>xxN zHk3MK9a!f0ke+6 zt%(4j_03@=MeJx`zeN;BQIRmhj=LDpmkA>$*c_Lv5wSfeXYarb@3I0(^mj-p%l{74 z{>X#j>A{c^v2q?7u`b^RwVe+)d>74jK*4!vrfD~@_Y%eFR&yewxP`i>aZdvEA)zm1 zktK?IuGs$qOe5am*U=o^g)SwSYLdqNmmKyEzb7~0xV0c8YvpixJ*FL5DG9?5F>WV_ zu7exS9iq${10TBsxE~Y#X-cx8=-3N@zDJnn+?bC69eM{aFS{_~$^o54nAeR2a@uxX z1^pB@124i10I4k}`4K+lC6{(DOqs)SqwDAn2F z?^zhufQa1z%ugxIU$l72zVIr5e`kHl?dPLc~FJR1P zOqBVIsp8gkz+I@%V-A>1?HKi0Ri8kt{i5U9x3qfiaGhI;(q~sVBvE`uXgBvr0 zbi;|25>EW|duWtNShl1>Rqk&wapJ@INW{Y1?m^8*Q2K*8N?S~$GYU~;pmmrFj|H3P z3^HnB$|P2h^)oty^jt&U1Y@a-T0+zdKUWMfS`{k?yBQwt46+s8NjCpUHt)sTfm(#{ zD``3#J(wEW!V}*OtUR6KTQ~*fw(!K?1Xi6--dSXYycYph?I!Ph@-Bn$tF9pLdh%XF z-fPKw9C=?N?@i>rl)T3mU|IY&@*YET{?$La7UdiKqV(=Pans-7Wigrq5U2vcLu>Fc5g$uWgkT5aqZ+P!Fdkw}4<7UP5XV;9(=wlGOtg(Y z#hM%Ffv{rLULrV=TDFfVlvo45SjE9QNFVc{+EpC1le`<@6|2bz{~|u3S2pdyCkthN z0kLomvhy9Nor=)0aLSS&y_(DAo#3+McQ-&2Kph4by{7R4cmqEn_F`g}3au)K3?wUx z{1yw(QzShIeFdB|f`1a9g;aw#BC831ok4SB`z;7CwvcG39cTc}4Zz=O(A>r}^-M$U zO#n2v1AmV}b2rm8G7YsjV?lEt@DCX@4=~NqOhfI(S)h3s_$LgSy-d^1G}L0;37YQ% z|5JnJNv1i4Xi#>jjj5zc#I614vE15^9&Zi%ibqeI9J@lc_JeuI$IHCWp(!4{nVVng zu|~`J$jj6~mr`fRRz=zTj%9)dZn7i+^_m6&j~PcV*X=WPQN>IsmR}CuG%_50*q@2D zYM+_nQ|=6w-wz5J#f?6S%Yz!lnG`2O4>XD!y@6X!HHtH08FvjRUV|Im4j~I=+=hIy zUjY|JYc_hLYI`*eEnBb_iCeU2BGj}SWxs0ax|i-lJ^3y^d*7b}!LeDBb}K#w=%g*E z7gfFFos_aZ#kzmp598wlKrQzUvD^;9pY!G)PobNL+W4eArJo;KK#vIhywC!AMCdM; z1@u_|2KtM!XYlRQlU@Rgv1i(J*6J!mNUfC2a%I#hZF93ToyN0wkIr64e> z+=dS<0lcw%){yB4F-Uq4A}9ex6`~Qu1b~^i0Hkvf$B+We7|@~BGQ!~8;)9FdKB<`a z6bBKk7L+B`fio7AN(KhLl<-)gvIGR5kU`p5ZV>NNEi4`mM466x<#qsIU@75>T)6Gg}KYs`4iR#}{#l@j=b@I^&vv&1%}HxT%|6u&fu zKWf_Wzq)#AI=-120TYU&ZK-EE2Lcu&vN#ob-$ zL{~aBbxC4tqNBSf(L1%NBc5*W?(IxXO*U=n?naa#J297~-0P9{>-tvx+dTaw+WmJRV#qIwgmlj!MArFZlI%f628)_6yvrL`lT zN@*BqldUbObZ@e2qohI^mxR*WmDtu2?;uFJyB8n~j!iEjk%8N{waEafbVo}vo#<8c zOkhJ;xE4bwhXCo;Rua2)Q@pn&-5W<8lRS~CbZ;WwiH!=BY_RSG0?AEp*pWshZ}S;wX)9WhbZ=j4TE;1@D~(b5NL;gK;hqZRtHNbLxO1Gamx`RQuvd= zDIDUlf@=8pDg5Dy)j$^)KD={zaQMbxu%N0uIA{gl)%ymEi^c?t2oNlozF%3x)8Lr<=+kt`FU_)L99Gj zUNF5JB!s0$5k1BgOezDniwmkNCT&KvRl&hig2gL>!wU|q2o9YbES?e^IyG3_7#zGR zID7@tdu%~%fa2Sq;u}G1gA{3T;pk6D^zvZkb-_r%G{gZB!*Ih3>M6oWNI}uv!Qj*Z z708FCM+QU-r?&?O72bVPK~;cZV-#$7;r4?20)b$7Z?N*CVDaAI@P~rM4?*R}zZNWd zCAjb2;C_39<$Hqz_XdaT4UQ<>`blvAy}?1>3+{Jiu!28^JQNJRRCxR&!J@+BPYD*k z8XQ@;ttc7{7Vc;d7CwYBQTPY(NieW+IX>jOAM5#l!*lYp>9CKDXFfLISA{v)f`Xt)Ag?oMyAv;~Bf zBJz^8%m^_aUb2i)2zpDj6-O;V>);?Oy;OqHmdn4R0sE#zpNrRp@{?ZI!9ng~dfz0$ zI?#NyR14t1a}!=2@{?XAF%Wyqk~aY33Rj*L=^1|YN8igC~S6Q@!QGRb@bZBpG{}t z#dbiOki1t(tWM4i@ZRJEkx}msCx~o#_d7vkvU|h{`aZl*IYG4lc_ii`NGZLR!a=V^ z^xn!~s~j(f_Xq}Adc6W(+S!c2^y2-`c47#0J7cW?L_x>Z5I~<=GxYi*Ft1B2y}snn zBj_Ah6;A5d5NNkzq@Zise!Mh5hJxVJ&CSPOj`t9A<(iC!;_XSc<0Ko@tirU znri3Fp)NZ*X})+6p*a*nrsL^^AcK%K7V{267A40BZf+{wHfK(rsG{=)oj#USdMxK1 z0h#xfVss=*mm|PoJQCw!$6Ol39T?^4Y#|9aAM9z1jSbbwU4+4$WHFzQ8q)y9E7}aU znt`b=#IkF?V=T!c&Bt%-xplHl4mjrv+Li27m*(8eBjovlcCOfBQjQ7Q2O`mew)QxL zwn?+fY?F{;Xk)TDB%W)@_BQ6sPT8_$rIHog{)$e;8HO`JQ1^g=EN7G;o2JZa9syf} zcQ4J)7h81MZB8V%v?Y55ZH1D-A-7$0?PU2(IUO`7eKz$bx1w|}0yA+f?4EWp$)Dc7 zU6O|-y3RJ*>*Z90&RAQ{`C{b)XL+%7Pdm{Z`6~HlO_`ko!@_0?r1r^vOewXbG>fg6 zq^tST&UAZ6d}B(`k}^-9o2==cAba(OB=nCO2lGeVm|>;k8wG8Fw-sllgH{Ob1Pi)I z!&@s3iD*}ylPp_K*u1GM(*lYiGW}$foQ~yg8|X(vb#y?jfBcsMxRubAfXov8Ze!4NjLuf;{SqqRsLz<+`e~uDkC|c0| z1X5B;yn;f}f*z!|(D`}BN3|tcJi@W<^wChFLM`B>sOGII&=-L?F3Of?YceJ*8TJ!+Ko?@F9 zEOCULQain-dRlee%!$zhsPSowf^y}`!&XISRM(`oc1`rQQeoCi_Cwcn+P}?8Y=D_7 z-qEuuE?Syf9G{gUP($DDk*(;B-+#T?r!B*Z*t=%{z$bZVYE!P zCz(TPQ};GX5>e83Pd9kjo)mv>N%m~xufDEidP8430sDGj5o%Q-<87P!Qm|emI#?QF zXnEQ@x?vO5DC!N`RfE%#=mI&7Ppl>g1zu>hXxZA6?u}Xf2MgA+HNByu1#q_Qh?Z3? zJ!qPely?Hqwq$#IOPWkYu;QeW$0J>XSr)qd}1^JLKn4l0r~CGI}TqUo?OMs1*fvL%ekh)VNrEwopsY z@^zzxAD`&$CQlEnme9(omLz|4bfa)`$`1z|p;xtVo7JMp=-pzaRELG2s%axmojoWK zt6F*!?X6V&MT@k~SUlR}tqGW!rM}rCT8>=ZoUWHV>KIfr3kpi203_obP;5(gS8JkS zD{0LI6p{l=-q)2%ZtOyZk(t*P@7a?iIccbQ=?CJ1ncu zgm{ITVTI~~QCq59h9N(NSmDm9dgOMzt&MU#(VI{iNs~(RuOHDw{A*sIVS1xVHUKOMikW=Pw6wsvdKz3#7<`A z!QB$lBjQ;Q7t*zEX-Pr07On0KAUDh&yrBpMmBbSRc%#ETRa`_>F7&22dZMHW8BItX1BC#?CNW2-M+nM zh6CH!+AtH9vp11SHLPtF>Jw`yXd^K)vFdC;xU6Uua!#e0NS}jME_r6D;Z&lbvuVXv zJ-AA!78)x%Bug#^HPhM>7LTUZPGNiVCSz7-d^o2#Sw83o(3*keC z9@2`IVe(`W-Crm)zrIL2JBnB;bJlSwNPM;#+*)GGUFHLCR`Y0pXr zpULQLQ9^tO(9_`z=r@gxj$l)K$Jd#32J|auEzKj48*+X^WtavP7(ip+MLgM+qe$nP zgz93;Qpnne36bvhcuJycWk({u1@WV9(U%Hf4HBrWM2%IW1BI=jPE?K|IuczQ)0-MP z9c17{P=i-TvNM?m6-PtgniCBs+LEcwSXND=TjQv-pJ=4)t=&Bs60`!(9LQ@UX~&-10|BuH423*#(-p-JHry7X;@X-wQ`#&^&`wT{Dd}(%BR5MJEYWlYZD|E3~tZ zW_!SLPDq~$JstX{GSmXGRZ+9N7D;nUqO&KxLpS|~*I_jgJ5eF5%@i`U9J|QTbP66W zE+jX;xmRgU)#*+{br{^6SU^tX3|S9U9YANJ0F12f)ePhZ1}bDUNm#a-xmGs{!+&PB z<<2m&KDilE(jbHpasOhZeHQr&3dJi+idXE-sakZYlwtHz@@SBhu9jx8AdpjVDX^;f zTZOZ->%k2*DU>($7y?pY)Ia&<0;~9DwZ?nmt;zHbgwvmrawdW$dQrtYi2;2{cwH+B zS1*y%Td}F*!UZ6|6%c(93M&btzo78xakNJw&JB_FF%9=P&8n2aW0f*|t5Q~vjd7$g zOaxOxeoOu)f+`3rKoNsaCd5fXZ4?EW-P4!a1UpUZ7Q|?MYg*Z&$+-DD6Jf`#nm;3M z3*ro>$LFN`l{zUpt}b;H*CG>m-%?Xh)X%6&YI2EDwGIuZBUT5$fV$LY?lTYthT9qSO-a zL(|qtdU3#{etDFpDO2%wss=LOY+?c{YDjAD+C$Ao>4;+%F9!i?Gar$n&8t=8F_c<+ zC{~-=7Vl|Tix!bS6lEQ6honZD?8Q2`njq@gAvo5|AY-33>qG#D-=2P2a|aTm9o8Re zpCJc*YW57K!p-figU~@D+hgGCdW|6bt;LrJ8HG%{qLqr2!wX4dajTg@+^}rXiya8v z?c7U90WFwf@1`{4@xo;ZX2(38W5$+Lcf<;$893=2(PpB&1KE+zG?LrZ?T%ThLBcgB zj}Q(Svfy(Bx237KRgftRtHCKtCcQ%xZ?u*q6Ke@lpX%FyB2Qh9{8C|Nsu8suJQ%}k zltT-rdJI|OTu|9nnA8y1&0NjLxO^JnDQTEmVwAd$LNupqYG{t3j2o!!^=iJfR@$2w zrz~Tc#M2YUAr-CEz$K3J<~O|~tw}oMP%9%!OFRe%R&tD#K~=AYn<}lD!q|<$THV%X zFsU`Ciq%i8ZCEYxzj5dGpVu=4JAN*n>)(2HEw-h{y&j$brv5H5&If;ujERL*r>lts~gs3j^K;V2 zc~Q6pYb~u9iPClz+N;7#U9?e!cd5`86}dmf*qmbROtH76$S;hd<%Sf!8^zv=V(vqs zHbHJXF?OJ+4IXNDhu+$ucYwegK@FaM(asI*2}$xU5&7)yLq%!Epa4c$ZX40~psD7~ zwf2^fHF~?PM!}epz&5(Bc<&A*T@V+^0wy(%L%y(rLq0Y&p|Jw*l-&Giv(~#I6+%#u zF6?Fyt#sB&boF&6deNx2c6Z>|VFJg9utT5|_%ub0_4ZVJBNp9}{h|xa49u%ZEIV@T zZ%(hAWqBJ3wv(S=X&Ky8qPx8v)lY2|v3G}wHe|;+2EOoZwW1%Va%~vC=Zp`JhWLzYSj!23|4q>$b+8Ii3Re_n+0CP--`oT&o*a6 z%Apu)`LveJvZe8m!Jc#FqNJVY`$D zWD7J4Wzr0xy+rSk0?U%Xa;a&)r?RGLPE8O2JBwDu)2&)8FI1KY4eO%pF+7B_tfE;m zPFr%llcbHcn|Z|K#a^4o^Vq)gZcQbVba#3aEpM&sslj*!4M&?bn(UFL05w9Uy=G7x z_4SzCB~!f34SK`m8kp{0)OKsPyxayx-B-ayw1v6ke{ zzuZW*?t~o4Oq;o-#w*KoV~+3t65CuuvK0vaY=s{VEd9?<~pJG+yb$wgm`C+ZI~Yo&k3{ zHHBwrV|5NW?F>^P_35cN|0`WJEe#k%c(+ddKi-7qTNGJ^s z_A;b5d+PTjo)=8~ap(Lt!+Gn2dcLGpk#Y-nVC#A&_)g>0YGP?o%B`XvY2_`2%2?-tmZRLPGc%yG&8mRPk(9c0_p-!xR33h3$=LcfSU)hS z+zJ~MeW0c#JFxv4W*t6Y#3%KzRho~6k!5Pebeu|AYo8S}i?0oyfgs?Crz2jQpblGq znS|fji1(H`l|qx~ip%Zg|2QwoxAJfk~asgiY&u{klcvum{O3T%*&K!Y`@(XM&MzbB!&ryugcbVLR8-%Yo@-=Eky z4r2Jdqd-{@u)#mud0f|7)7+)Wt6JIzLez$u92t{4{0hY&dtP{j?@wv-3hydiwRuaI z7Zcy5$t$p<^wd)6q20r|N{<&8qqHEnv$ROlwCl1AyKH!(mGRDRxmisO7PGYMd(?)h z)7^#vPc`#ojq+;dVbE)yfq6g;nZwAWM_ka<8a~yM_JYe%qu4Vr7kmJnXuXogADODWojSWDxXoMo3xKI(ukmpWAG89ZV!fPxE+)JR^A zaulkk_j$<;>nlgh#U*bjk6feyP~LFXELLW;d2WG9d#w}fr8s#$OO-i4^n3yf^gh}1 z(W{o`M2FrG<13CHIY06l2cN$3FA~W0dc7|V$!VAD82oBgPQ?&LRY5yvxH4$3SA~$% zrT%9=7V$88)tps>hut9@p%a;}AoL@YT^#xoh)*d}8R}mkwPT_mf$XBuzd*Wx^dpq3 znDis0yRbMjOZDSUVAg`;qudzws(w-XAkMKoVvJ^V8TCwrZ0b?Z@-}|{BJ-g)-@S`- zZ6&XO{UkS+NBpGUSbFwD?iwijQm{H|qo659T$~ z_-GL9ceL-1#|<{X=V)Ozt&m6#afUzJ?3dN6oF4cr`sp-6UX)8qB_e|gKJlK zkr&fTzU;@1c3#0~*!KKRaA};bH$m<+Jt&51b)=TS7`!*P7{>XU8iSZEI95xvuE|^w z@EmS2f#CQ^MY$rfC!3hm`X$UoXADIBk>#Sw(-B$yP%a)d)2R|C+8Sk1a?pP&H2Ae#mV+2EI@z!^xaK?e#F8iKa)B^M#HPhsV1xi{27NfJ0dv+f(ESsrx zyxcE=alP6I(O~x#gtDwsmX-}3ITo!jRxp>Qb?;=wVy;V5A>z2m?E8NgPyQ96yh8V9 z*(@)!ey^eB<>;~#WM2}@%c=jXYk67bT52;aOkQOGRvv3Gmvv26l}lxW%AWR&qG+te z(tSp}M?^AHS3B#LLIGFehrzmP#QJqhYwG25Q3JhaNzcj#u}+;6&QU+M85LlgP#0-) zE0SGuGt7!@M4XGZKV@}WgR?Mh%ePrzTZ8YiwynV|OxxDxm)tHX+gwYs)`jDCaj-zt zf;Vqy+=hbaILW=O0js0iun`6m4tuYyFUlrXa!#(s)qQ#5cV6U|u|r>_!`kVNl|Spw zC+o6)ZDGxmOntu@rjL0j=~60mPx*A`z5^{!QnOx)mM0uVV_%P!hnT0m`hGNQ8sogm zmtJ|CeH*B`gy$odhva>cn>Va&>&z<*pS&h%^o?uV%*yO>BO?q9I9G-3%5sxTF3J1N z8|sj}XQBPeD4A@AkM^T{_D?oSn4CHEFB}Q2EPOc%dB#0%x$6YwqIs=bZfcxua$WP5 zm)^MKP1d_yiI!t*>XdTx1)Y!b530Py(jNTfseLA4t|S!llb@g2?rt&JhhWt&Yb%-f{cjY|J zl&eU&&MxH;)L~)C#nQPLn1dsx*?D^*O_OsFVjphG5t}a}dE;OH7Kbkb%-foPDld&; zNy{ItgIM1FlPf1Qxu5Rdpv~9ZYSR2g);Oc(LlN>iLYOZ7D8eB2qX>P~Vg7NC-Uj8P zN71DD6`@VMc?LO6avb8HAFaIj(3V`8;AItDtCY9WX=!msoDY3z=6)2WY5k|rpT_c* zE@c$WpLU;T=VV6Zt110r=3``w*4ns7GJnRq>GLPw2;nF5o#gq{VNmBU02Z;o5&-S_ zstf&R+b=!%7S=~?>A$G|7h1(6!^b?M|FS{>%{1T2J+$vXUlfG?)Fj^-wi+AkaRsNE zDbCI-IWKDKJ2%zsoOzom?~6L~H^P{SIj-!4nMqxJmvi8xZtvWdzg^IKN@Saplc{yl zXFjWnak@JvL(eV7IYa0h09C?#&~n=$t$w*iR5oKOxIXyGtjkGgUw@;nJoH0NjZ%Jb zts6@Hi{XRPeIKb$-MNGLOM+LZyt;P>@{=g%ZKr!B$9=|P56FHE&2lT5{5MC2?^^|%;w z1MWM(<vmb%`v+pA#X6H5#-JR#y$CAOp_r8#f zkmfcK#B7b?`jK{f=LijFypQwC9?RTOq>n9YOrAshicB9p)BD``V7fa|bTFST=*l>l z&m%4KFn-RE*-zqwIh8JZ_f<|Y`gJ%yn?(N+CO(hX>nx#$(`OnzttCFg@;(=Rc;2^G zb03(ONyvJXz*U;$xruD5XPcUF9G-SY>-*_)hm}3m* zMd`U^GRJgzW3Y*Nt0=Fi=iHpC5A$Rb*%&waC(TEhV}pRP$1&p+t)md+RfWGua%)Jp zUb%C~vC|+=sp$``bBR13V{>~#9$HuLlRvxkFTNvS`OMj$EP(^c`&;K6Z_e^o>I80_Q%6~S zR0!(;tG{f)8lS!!&j)jTXw?U4*2Aj)(#)fccKgO!-ap|pC|yLQPnvq3Nkth#Uir+f zJcm&G(*oo^cj~k5=00nRT<^fq8P`b`e!i>gUsWYH7#t_$r{42cgZ5=hf>5vz2*Nle?obO>LI^Usrhg<7-#}akSKF1vF;ij+2H)DZ$j(K3?XJ9xX_Y zg6v&#UB?dpEe`(8#LlAEpOWXD3Rg+fJ9x4e4R1ESOO|(VM@j0J>DZ|cqvW8Cb(S1$ zB{oWmQBJ(DdF;prBW;cGv?V)4?7u-dd+@JoRrcigwXDMb$DDi`nT?F#(Tv^7IE?9@ z!e%ji`p-yzCTGvMbK9NmRArrc*d+SYk!v>Z8LfXKv}f>KmT1oaKFrac;j(0n(<?bXn?T(t4Q*_hF}O*Wpg+w{K3{n?T;4Aw?UWZRWtwe%FuUu^lc zr`t;(`padO_LQ;T0dg9%y`#us(e@1B>K=XOY;N1OXGD&vn6GHe5WWH!b2NX2#t7gm z0)Iwt&*bN`d}j${-u);i)4l}FV*~e$%&%p}mjHQ~Ww(ZVik9C_;7h37Y_b>(Jq5~b z9QO=j+ID%%JTyQ%lVt3S#2$F5%-^I6S3b(+(3?inJF{oFH5ZX>#9kQ|nDPx^kE z)4h3kUG>ir#gbmR*6dDlh_P2dh)Uq(D(|hXORSDY+9KW~d5+G-|q)^8jcxA&(hH;4^ehyRa zzLL_bebEgNT!KxZjbL^IX{-h1rBz$`wGs?|W?16b3dKnUlgX7JCLJtICM2F znOX}C#5Z&#_~%h=ubW2=NDoK3Fi5pmQ2e5C4cfItoR8_5am+%qA+^Id3VW&tKl<6% z)k?Lj1HbnvKQjf`(ASRN1#M0q&-K^xxCzbrq5BuU8=b^dx9b{hwuP$kXu!})q?!;X zHv=Nk)!MtG2bY2CyLOX_ly0r;c2D3(=Q>k-HE>Gor0ass11uC>9Rp=;!H?3ScF6xm zN({1|czP3Mj!i}ovD1jrm7JPsHqMdvraDX_qg~9w%GDg^pfsDn9Aq^!9QsA|$wgd) zak9<;u4$Ifr8h@w2#%^WS{V&PY`m>u12sJE4q`Ud25y1r4&->77w4L3eA~Y))7&D- z?J2l}A7|7kYw_#2@>jTJVdpa7=0tRPO8|4LEF(sano%yP$&H>a z(O8Ca@AdWi2~ScANZr3-OltJY0V>GKp&vg6Mv}m!okf)XFoHndj2gSJXxo^^cqHB3 zizGIuXWq$5dRciZ_jFTJ*q&CWh`GWpOoLo_sQYxW!NG9-*wJPOfBn zv~T*SeK~@i9kfS}TekcGEZ&aI2)Ux@cL>dyeyLarsD8E-e$@b*XB>0H?ck*4z~RZX zM(`d$4+aelOB8wbJxBfF0)2bMqVqQ!IS<(~ncF7_^{iic?d~8uk`< z@$~#bv+K)K7%gjme)tnTB81KC$1z4$$5#8-D`sc5rkMs*$<`$a9FOe8^lZlTMe*L= zWP*B0b7*M}L~3T*18_A#fW$n!%`$ZH3PFlVZ%U>xfW!PMCG7$&?a5xMsx2L4LBOTj zB8h%bY{tAPzJ={ko!#9C2cPI{+tkLh5z*F*NeG<2JL5XHv#sP0S`f@3b-Y3%i#3i zyF-Nd0PYL8FX61euf8fg_vBr>;17rbQ78t8pcp6yi6Svr3=u;`u_zIxVwebteMFfk z7h$ols1U=&eqw(S5hKJ%F-nXUl_Dy}h$=Bw#Kbr;UQ7@Nh>2p7m@EzyQ$)3xDyE4V zFt~PCc|=Zp@CJD3VL(``6ooXy3^72?mk!|R7pz4Ww|jZ z2~*wKmW)?Zi88~a5R!f$XHIl=cQj7sz9@)Wx1?l|^yEQ>)#Qb2V*7OMck{*Pb{;hB z>G!7$y{I8F_~V!Vw7u#t2fh<~>9k$ZN-K2Lrz?2jFfq}ndobLLkg zpB=kT=dq7}@ctR&hRu5awc5Gw{O_1SsiRgtUiaHqe!KkMwhs?}`}hGLOXi>~zxwT4Z@BHN zrG3BrXcv@xA>0jc)PVdD?iX+$z zNcmq^_ai3&qu-c#~Ud|3KtD*sc6gTk~U zjE?uqxf1prz!oSzze5Egx}O0yM!_}!M!b(x@kef#el6dg+ob?k)%KSdWrwbd?~}Fpr5u&!cJCUvpXoDVNsODzmQ+205@Lc z^-K3j9=goDio6ek?qbkU-n!}UnkCa|=Hn=p*Sehbf(OY(`9XirDm|=Ha(;qxN%>WU zbm+YP6b&K4NS`_n?o#^EdGN3MC10KX+mybjJkwuzvE&ing$`fo=nrdU7+uCzqoJmF zz605G`58Dy(&&6B9w+@epWabrMaw@~l?`1t-d6cSI-|c;syuFh4Bt|6^ttN8-l3VY zu2K1U%MHv%v@Vr$XdaiVc&R?n-@_hd?$htdFjXqvKQu`{$wGg+&!YUHzhe2~{0d-H zL;Z-Rp|V8IO+!J5j`T=n>fx?Gyxeo=nM40E;LM>d$L@F?QHm?z-hlfI?nLNw7~VxF z&r1#!;!lSQ@!R8ts60!Ex6c-0;5ld$&J|+kB|`LGiuUj_Ax440&#wl}HA0l!guwXQ z4WUc%9t*c;5O77{85ZJtbbte)iyd&|776jfG9d;n7ozb9u2xZ-W1L@DD5ggE8o%G<^WR&r)ZKKdlQCE%9wQM8|)WZqipFYD*AfK>DMw1Sg$Q z9U2Trx}&u314m&i;P!(X0XG`15)Q==<3ZWqPsIB`xG8Yc;A-JW*Y$W)e?JS3`g-05(G2L7Y*fya^uJ(f7^yy07KJ?Ag4ocOCr z5466v_nPycKk%{es+YH1bM3in_ukwz_8b2??7mY@==gHXIkERT4xV!RMUPzcz$GUv z+jD8^=U@Kvx(!DhIr)u;pMU<4GcG;q{+123&m7S*@9vjsqFsmop|tLj_8AY%ee+NA z&T0PZgJ;(a{%87z(1X7j|Irus?jHHx;Kt8iz4YyokNj>_#f3ZfsjB(!p#{5t|JhAD z2A_KTkqauv?cI3U>-Ve-U-Zz&$DVP<==FECKmN@6vmX6L@wnjiCkz^y81~yeQ^PcF zI&$k@)`p6=?isY-qt)TX``&idn|prv>Vo0FoABn<$4uLG=FpnT0ZT7>`INh-;tBw{`;na(7}&ZTye_@qyBl!-4n&!53UIREKW@Cf`P)DK%|3Vje*VRC$6s9h@Du0k{KZqpkN&v%$jcu{ zUVF+jU2E%0Zf%&b`GDKce)Q$e{r~sdC#)v?SKn#=^Qv#Q?)TyT$-v^Le!BML&_Us=Xa4%1b3dQo^W7WY zzqagxg)Of=Pvg9u*PO8C@e}GkfA!-dL+=#sA8JFT*amkt+_iA`!Mz0cd$>>Gh73f# zhwFwr1@2O~+u$xHsTFf-69qaWC9c zaIeDAB=U2(QZxw%z#Rm)8SX^53*o*C_e;28Xc(&C9)SBXTx|*H;7)}54&1|VKZAP{ z?k{l5(eNDu*8_Jp+_iA`!TkX4HMsZSzJMEs#-<9c4sIFTQE**wC&OI=_eZ$@g)0uB z&4HT@w-T-et{3ifxGUi9gnI(+CAdGqeF?V@8nGDMOt|H6y>O?)T>*C|+!Jsw!TlcY zQ@A1M2S>q8gIf%D7~F2STjBP?Jq!01+(I;*0kj(r!VTb7RMbW#Xa-Q!Wa4i_OoG;- z1SrsB=twBwwf`S$ZvzljmHv<4nYl9z@1UTlsKbkfhB_b`l^Gz8XoxSFYh^K**=WAU zx@vBVX05sA4utMtE4R*UZ#)UB7K#>kDSB>$)|$Ci4za%kb{+^PGETxF}Hj z{r?B%KKFC(bDnd~^PKl{?wNH|`BL>O9GoQ8!FN5(obphw;mJRr4looXNq)WpGxxLO zUCAjPbv}2x00T~Sa zfh>bsKu#dlAaA2Z04bQo2m}dhbEQBYNBzvB(ux*~!u{fUUEvC69_Tx4aw<+@&H#VT!;mKUe?Fg)X9^k7KE=puD;WW^u$n7-!iIpL z1g^$cP)~5#5Aqn4Ob$4`2g8XFFaSD3I3Z}+L54iZNcD0?D1hG~F_a!Bn0b0;p!Fsv z?T&y`BW}s*=Ouvv=JJ@?pd%iQnl!0rQ$CM*4By1ah|P@HwlXqfCnJz03=ENkeh*c0 z39h>&r)FeM?i71Sa?0$=;Oj?7PLW+^8LN|=2Ex?b>cPlB6z92Js-qz;IgP0dh+l|E zP)0f{S^aC+kO%xI&zqTDd9wzd$^QZ5Ev~HHh&(JR7=xKpHN?@AFh*ueg?yh>$QzIY z@GL8u5i^Pp&_;v{GIIzcpGa9~*;t1Dh}?r`55eFdkp+xQmU8^ng$$iHGV-X2k%m=_ zB*7%`@K=efLi&N|^WZ@#{v~??TDr*d^GKwFb2U6GaXpXta$UT`6aHHy9Oa8X`+q5M z9qO|G?}kdctU=ckvZ}HJBHuyWNpT8@<|6;VGs`L|v)J*3!r#ouhf-!4u`?iH5SMW0 z;{gdrQHhh#@eu*1Qm6_E67Iw!NSm~nky_O6JZ+DSmWsuN2bj}RNW+s(saU*%%7F7} zVI3;1pA2G7b*YS~XENfGO6!iN7)p?o4rXD{%TkOsV3@*_`48x|KOXIp^2fJQ{+J-; zj~Ar;@dXlqa7Rduz|W=p@fRt7tdjCa;teMn<+sd0^mbhQ><9 zza){3U3p-~&!jm13sK;4+=)0M3c^ED9N&=Q_;1uNkUmw4<1R1&eJkbR2~r$ikm6V+ z#qq3^T{lVDHDwm_@Wi8xD7q?WGyIZj_e-k%lcd_O^BG@_q}nGX)wZr=j$jt1qG}^! zYr3-AOGtqTr%$DDoe~*#AM+C%9|;SJSIh+M$^#IAElz1FC}HLln1|A!k)bY>0ntWB`o(DhA5IH zyc|Zt7GR)H2ed><-a91_yzmy?q6}J?(~zpblcwKF%%39@@#x==h?4&|p&0Ho+AKMJ zzb@eP1Bx_prRD^jVkb&Ywa6+wE}=h{oOVKC+=#UFiF;@Ws`!0CzSB&YGvGUqxUCw04?PGnKt zHi3~#GZ^{(1B|3S!pKf3ljKOnKS?st-q6|v zHvg9L;qa~un6*HPtE?F7#Bq!(gKq8j%NPL1w@D?&1^)!i3L}a+EN%3@xx_dJ7xH>D~e*w>+ z894#w&mWZh+cyTB-h(_6`6?2Ds)9Zq&Nb$xfUKvv_7uoXJgMgp7ZKc#Nos49O!8~V z2+c?#&vp0k#CH59;4}{+D9ninlc(&TJhFG8H1PnQPm{RTAqVipJ~2sha{MCT^dc{F zub|BF5FPs^F8$U3*9SbG@9!!NHXg71tN_>3+a!-?kQN?d0k`oTh%Xm^KlDkl{}-|( z=SmF5C>BoCc7SVf3?nY7$~g)v!%;hm5e14BP%bRM<$ooAnH?zCS&Es4_ z9SDaj$dN9291W4&>D3e|BDx zLSqt`HzY}u694s6l4CB5|cnQ9^e{vz`pUZJ>uux^&LRmm~eLgM|;hqY4!$60FMseyz z?jrmpr=M_olv69G7EX6?TEZ#Kk&u5ArwchP;53WV3{F!xjpsCsQ(817ISY{$QTwcz z4N7{L0ZQ()5RX=O#bi)QM?5Gxnk#6Lo}SZ!Jw5M)k)h`mZjJE4VXR#r|D|xG5pFj$ z!U4jhH^SHOC4Uz|Q75c84>}I?7bwnO8#lxZ9J#};T?edho2LU zG>({evG>x77h@m_!3@;uO57PpcKv| zPzom=l){ezrTB+H&KvMo`YYi`6x>9}Axv@z(=iYjIhl*yW$_QGCh&UQqJ48#DoQD=7Kj2><&KUVMpgqy%oo@K2b+C%hV8@^1ts|MNg8 zJ$c+cle?#aqUu|r}6895e-V6KFE%GRWHv|B0K0BQ(pf1o8-zJi?3cycBp4p3}NC zs_+AZ={ey?@O%gG06bp{JRi>q({sXe@%&rVAI~7ZD}k|z<^W-OPB;f&^qp7G8aTx_ z5p)db08mPYhP%^xIk`80lKWSnl+S2Ao$}ddpp?(fDy4k31M&G7ZYPyp`Hb*Ud?}w* zfhK_N2BmOmou2fx6_oT;3`%-h1WMs71f_81f>JmJgfkxL{1?K>hg%lHAx!BaoQW^# zHwAoS;oc6uvE&9m!o){dhv%e^_whUxcrc#(^+PxYUkX10l)@K5Dg0)I@WCL+8Ms9_ z(g|UW3gG}@l1umozLc)7Kq=o`27e5mXMq1I+%AHjFm7Kb{0Y9K*At-R?DUbU%i#7nxAdyOZq4PpA+t7;F|}x8Q>#K ze1r{nPU-(Gp3eo&!E?Vp2zR20kAR#;OqtohcO87qaC2jRgfPh=d;{NM;JXY;@x2I2 z@%7a}e1uEzMF(dE zxq1B6K)VYI>6kA-{>3b!Y- zaG`cNmD7=+BY~SF-W8NiG_5PHa!l!@cIg~?)5VAfKCj1w2*P39puJzQ6O`JqZJ;D~ z3n(71CoG?OsoiN3p;sHMF z6+=A-eqo5VVBTRgRXYFTt6CdDo94L6iJ2`c}E3L4ia$3ddUQVCmbR(yaa5|sUiJYc$ z+KF+sxh11`1x|P!s zPM_xVDNYaWmBM?I(`B44;dBtEv7BmNlJu$MvVjK^fITHIQ@vz4>&!{ z=|N8Sa=M4pot$px^f^v9a=MDsr#W53>EoPE<8%tA-aNK0FJ4CflJxo#`ZEg9dqoM~ z#i^cC>PHaY2u>3??Z;^Zr$L;mIQ;?bD*0>R^czlT3`_3Rmmo?rwM75S>1j@>UqSA) zKaD8$FNp5rw1U%JoW2N3>Da>QGn}sC)X3>VPG@pDozr_boyh4OoF;J^!)X+!!JMi& z?L_1#{8mm~oYrw_ppy#7GP2_YKr?ezN&--&4%4ra%6j^%SjtkKrIBnq6 z#wqm;@GpMBX)UK`IX%VcF;3s*^es;R!0A3tD>;3c)0a5i%;_&VUB~HKPM_xVDNcXJ z>4Ti+bDGEL-JDL~bPT7XI33LC08WEARdL!TNa^-*YUlJir(bYd%jsV^{R^k3I6cAX zdz`+*={`;?IenQ^RI5zi8#!Ia=@L#Car!8yKjReD2J@H8Ddry;#@K_=L{5is8p$b| zO!ger0;3>|{s4+BA~tY}{uRTd2Xem(3RQ{Jzan~x(;80Cae9W+lbjysl=@fX&&uh3 zPWN$I&Z(Kx9h`3CbQ7oRIW6XNHK&U?HFCO;(*>N)<8(HsxtwNkI*HRvPBS>wbDGSl zj?;Kf<2ViDRLiNzDF{ndC4a8Ag3sbw-AB zfe*=W7I38uPXgX1! zO+jX$p2NiF9f#A@B-jnGCU7>iww^OUM0hL$Dk@*hB3caHC%>sfx~1t3%F%( zSNNC*thyn?nZTdRa0c)h8P)^8EyJn6dt^8T_}4O=3|uV3I^ZH1#{6Sdfegn1kCb7| zOIG!lVa!2R2{If8?0Ky#JzC%^GK~4ls{fW@RLWIv%W%7h_{(rJ@ULa~2jF5EZU8Ql zVK;Dr4BLV4mEr5aDKcyWj+No7z)Bgu3~WcH_2-XEz+cF44e(hRz5u*hhA|IY^_UEw z1D+wnXMpdL;gi70GK~4!s%RNL3f%c>SA430T{3(K__7RJf&U`I`+?t;;eEirm*Gm_ z9WrbI-XO!}z)NJ<44f~+JAm(&;cdVpWq2#_r+d2MUjlqWhBpEKL59}@m&WcVuZ6Eb`mc(x2*0=`d%Yk-4f z_yX_`XvF;X`WW~d89oR6nGBx+{!oTb0$XMHIPfkRJ_@`=hA}TuwMvFDKT-9N3|oP7 zWEk@nRpVqB^A}a|GF%B9EW;MyrdPVsQx5zu88!pg$nXx}k7O9{^;I2|;jO^Gli?EJ ztunj`c#RCN2Yy_Ji-8}I;nlz`WnJ-G4tzs~O~9Ya@M7RIGHe8XTZR_`?~vgIz#C+E z9`F(wo(=q<4Ce!9$#5K^M&k}GD2*eVkuiwcIlav3$Dm*lk8^6})WYdDPSa=v^N0#B6d&v23(wn_83HSciLZI;qJ6If!3KL zF<_*3vL_+Ek+CI$8{@xs$Q^@7dJo%3?y3?&kF;N*G=iVjGU7P@Rq)U{FUxIs-h!|H zzDb&QgNyY3s^6WO7XN(_4CBA|@3&|CGWWOO;OF^5Ci8DHIq%EvX?@(!KTzi0DZ9s* zEWoo!=6=8I9@!wk(=6lPAdABXW`ues~%ZHgA6Kuhth9KD6=|IF_vN!Dac&3g_Yo#Ak5!6scq7 zFK~ijS6H%h@Yqifb~^`8#>bB~WhZ4l!PGWy!|Eq-7D$(<35%ax^z)}~IgM5JoQseS zWa;uIKMPkn#G~sOJ5uiU1J`6i0~|e__0}bbA6eJaA(1j+jH}yGp0bDXcy=9u*cF8Q zc_5Ac0|Dg^$FIOimdo(tgz($bbDS{@E66n~_l+ZsajtGJUIT|>_wqbVU%VS|zbWN+)7Bl9aqdT#9)kD))N*skaielX}eaK5MDyE-h?9y6~ zr!+|i19i*753O7)%f$YSe_KiE!ROp3pZWQUCx1Llc79A(#3*CQkDQTCm+Ip=J7%Zw zk;Thr;~bhk`26AcO@C`Z-OhG|oZk3uJuR{iR@oVqeQ?PSsqBNTheIX%;=bin$wL2m zKiP{H%TD@%guagU>g@n7I$!Q?RBSkx1P9A?(|gYui=A)y9|zWTC~TM4K*bX%>p0SH z>8fW6>8HmsrsMPvA(Dfv0IPxfRHcd1%40nR>QN(bl!u0MfCi5egV$ag2?qn zis}=HON(4xcHe>g*b<1F`e67SoqZX^@Xc()Dj)6x3qXe;WNwh!n7$<3ZGp6 z#FMLw3)u;}X}7zi!|$~GSvlGHg@w}#i^vua7UyT;pukm2>8z#@e3H_}rKRh-K564K zCg?Nn(r0AobQARSBwbHW)Aag@Y&^={+ z5p+p}DC%PCBy2^0rKeBFbE1$6zIISzp)akU&uz!8ic#q?;re+P{jzQ|L^g4`0Fr zFhA1aktBuOZk4eQ3w>6&UwDp!?)sqX9r)lJtffypvth-eRm-0#{`sPeTV>?^LSik( zUIO`tl0zRFpA;58SX@-R^a(0zrpiBHQQOT_3E^!b*)KBll<7a}9LM zKF=W@J259sdnV{p4H>VXUyBckWFNGl)bA-QTC@m12T$?nE+g!wLYRv_Y$h#OcmD(& z0y5SXt$gZ9Iy0=hjK|dy>-O+~7r&%{gI~sqq9>>l`2Qqh`O=k7QUE>0;{j}t^2Z}j zq4q1{ws_z$bQZ^3WgNg;$5Y1OjoW)AFAE@JZ!bDs{qse|=w?21s|>eMDcp(iYuwU6 zu)XTznc}rQ#$(`GrEmu83R7q!L-$X>!LL(pmfQ64w+@xCpg-Q3(?~fzZ>*a3nbJot zqo}y3D*&V=dtP=I9v3b7eRPn#v~)eEJ5+j4JRz&#Zq4g@$hZz2E`*Fgz}-ba#-eAQ zk-6O(52|xe)NlL9-B53@T8U%v{GVH8=mv`H9E|+oA}jj~rmNZ6TYi3`kO7m>dF;~X z*0ijLj5iSIe#nr24?)BJ;RXFz*HBjLaoT^UwqnmBZA%ns{!)5G)4ALjH3;s`GVbN;*214P=q7^9l zx0g8!WL(F_;&Zei3Lh(EU~Y~+0hRb=tXi~;6*|PDTRpbvXQGfyehY8Y#%(fKJXRMy zajT4dBmqO_bV>7Lh7#Rfk9a=TV0#lqU9uy&(W4n$+ zHIfj=Z7-;WA4W^BFV5y6O$DXz8hnr8y8_?dK4&0DZg)SQ`F+JZqCsd-HR}xKkA%|= z@2lP!;}F8%{w_;QZip1$Fo-RlEn-XkS#ve`$`$1b%T3?)`e{uo6%+E#G>VGs#+pSN za&f2Jn7ckV*rZKQGzOQBn;v3TS+g4yiqPL}$o;fAqb96Wksy}d^qsGd(%tl(t5=$Z zL}kUarZ@q9h4r~1MrDOynqk!Hl@;5JN}Xtq2VZr)0$fU?kfb#H*{CX-QuKULPP6uY zWl>I%a*t41V^mpRH{SGB*6R#WhmsN3WW@Ck-^C&3AK8WQhL6;h8VkjFd;P42n|jf# zGu-rTt;Ytll;F!>+l7W81#u|Bv9aD+S6A2h)mK=2FhfBGg)uF~*Jn5Go});l&_Z5?wvv^Gb4IafLvC)-R?^oj(pN}jcH__I zf=8L%`0T@=!T)TIIb$w3cUcjYd^+Sox>T zg88P;?p2vp79j*Fk>2)O%WE3|)Vi{yM$0(>(VUzCh* zU;78PXwIh#@J;jzDR1dkAHLf3R@iKdo#f2WPF2UeA_x6whiWd&j2IASr?nH|^p~NJZl2HppDPozNQ*I4-hFgaohy~9vcP#93 z)IAi}YWF}~54(rpdeA)xS1Tka6J9WlHuN(o?ryIwH&Jb(OcZR2bRj9l@N$l-MldPH zZ$q5-B6TYmYbWURFyoaT8B1>n6`><_9E7Z~-VZZ`PO<9nIEEDiSGk7cy3dt> zYo#j**F7$Mk39eio&0TQ{$6DMwlaSuE-KZ@tW3W_kziv2t5&=};npzjf5ala_>lC}E zT%P5+d4v44_i{ai-iUB|J0?JAzkTmze_yrMEF@D}f=XYuM+;F>JKO2IQUyPC;kCNZ)d_U)rniK;{(4=ZuTS$GdMxl!_t5L>~ z`xBK(H+?spO1MN=DHqzD8rD0hQgB+pWgVGPKpoExGtsbQx_gdtJ802fpJ8wFJ@q}_im6NQx z*Gc{>os_FBPSWshr>@6*5L-FGLa}|(skD)wEzHkzPSRTp%LD73F_z$zA*^3GaKON* zf#GVknpvFuQfMaUH+6LX6}wW39(Vquu9l&{!CL3>f{2LzdhfPEUy<8N#cZYJwi?@F zXo{aRo!Kf_W~=DZsnfgqiJvylgRNplKF<*DoE^u3mD)^=JcXRf+c;<2~ab-Ak?N2}hVEC?%Td z9_1`d#Fic^YvhB%IOw=m_ccS`K+oxz^SFdQdS7}jF$g0`{&vI5_H2RlJlCLT*w}1n zI+~U(=~>nuMwi~#qn=kf4&_X&Nj51aA3}-P`QGJbtst67(;>*a8rF6!baZK&%Edf~ z!a%yEco#r-BG+Rc(`lC;vm6?($4N|&nM{upnQqdV9`!$>M;+shm+5f;^r%URVtNb< z4OOXBaxH2d|EjYwEnZ`F%U96y(f@-Ug@!M08k&|T{B%8jV*hbH9=CVbW3|0Yj|c5t zdfbnDwJbkY+WmU8*h%N*cFJRAcFK=C?UWyP*!#|pn;7qUdslv3Ywt^si|yU@_$FQm z`@iWi9ePZT&gmgPPVO;3j)WdF1Nm`pkNGj?7Cna9Rp=K=IdTwMXfdG6PG2X+!d<%T z^flE>y6p5d)~l_ZK5xASS9iS@S9^UZt~cuY(q*UbOU8SVjkl?6cls{W_pZxM->LfU zx?HIgh2#IHJh`LO(0F;xPtB8^zLNSM%afhHmGxbDQb_3ZEvZ+b%>LW|g=sid+e8hoH-!ZSM;;$xc+P0j6+6ZX*uopX5Qy%z-8a)R!Rg3%WUNw3W)T`+9ZN+^s4>JtU zHhDwvBoue+yp+d_y_DZqdr96(Z-@&D+dL=s}j(B$vgPcKR-R z-oR*Jpfv%d{-Q^zi^oV1_V*JnqTp#g}%@%kl&htEjEf`A;-<+eb5fU+m zzGpM~4s+iVkb^~YKloMzdR?8q$)5gjQCkN=cBV(P#3aPCJerRCSme=o*6Zr@jrI({ z6E(P!JyiQ7dMI}e^N@z)J%ezK^9;dtfG4HLzSq#oVV0RTx=v%)Nj8dir<>y4?w()^ zM=VJ57{@79mVMtvsVL8T-4SqCR)ko!(1_g~2}EICa}Tyev6w2&A&AozcQlZ)0`~Vj=?l0EuVB;}zr6(BB{= zhZr=a!fr*m&@ipd&{z=txKxLB^)gotDt)BKI&_lzaL$sNi5PbsX5%g+t3Sy;V__d* zWVAHzQ227row9j{-893IFbwk!V@x~YPni(3JEoLIYbxaFewc}g!Q27WYGLkB%sX^q z{2#Oz^9~cgWOd3E8`Y_pmjxfq$kI3<7-9b4qWVs_j-|hoMb*uFdxU*n4HFAoxW;Uj76I=klDX~ zzX&!c@Yj$O-agmYbyw>uc#U}lV{)oH|3S54n@SjrI?+FeACC2nkL>2GPTz|k`rZ6% z9@X!QhFMJ^#xsp7LHW-5T&-Sbe8V*12#usr`@2#QljSaoj|tc6k9yAwC#$D6<*gY; zwWuN$wMeQZ7BgttG=-7s*%_{>O&M!Z&nBygL#Z%|Yc}SdGfu&LQa{rWXL>Ln^ka0v5rPPjNTtc@`R|qz2Q{h4&~pehMU?#9Lk|2^9siBeiy2# zli^n541!xS^ZAKWiMvkUd8b&R7$toF$C74~A|V=(;m3$=Tcp*QtDAxCt7vL zmu6=ed?q5)?M}LGbLw#2>KtZ0Y)h+5x3t>`ZvyW0ZFK${b)Z;EF=)^3ior_6KwldH zIdMD&ixJk_*^z-547SE029Ln?zjLAjF^IPgMhps^(eN1$`7@k!H8=<3n(K_SuCUSF zWZZT7COQ9T>jys4r|?}EtAE2({qSV0Q;Au&7}zw{JjS9g?FX63&X|N$+;{qPP6gVC zER!BBhSD5^X9JuA67;Md?&ln1>GVZ7`&m_W{j4w82J*DsElZn#wEgM_=ixYn9mZ4F z@tK42 z)dj~mTt9Y9>ak@aODI`y>NxXx)Slnth zVR0xd!vor&KA+j4`en?zYR20=olm-f6zTMep#wJOd+T{PMT=N;HJ;qF}0~Y;a=8qg;Yv&hS8;& zvau+w=la(w(fhYk&3M%wViA%=bBIM{4(??pIicH3vQnqn74%9N>L1kqb{YX>No#{j zbs5?sHkXVRz)s^UHF^~X?LnAJuBoGXe?P|boxZ9*#`MHh78uQUV*DRw5mQ1~OQKaO zmD1`CMu2ul-3_!Cdw);~@Af(7EU#9Yr#5Y3>jo3@Fkfm|pG&oScxn3d2y+mdON~Sw zos0RoD3r{(_M@nMBWlr`$w)D1%TfOA+H#?h(5ml)MT`LK$%AJ#X`-pWLv@)Jbs6>HrA2*E^%ho}npNOP#w-W=fA%0;huLF#EK|XiA*@#v!L*=d zxms)2%GSM!LuKv241l!mZT?=xe%q(__N}~HVU9B>Ux_hv_^#Ef-lqP7B2h6i1^7z+ z)TYN3BU!$Ya!q(?au1r(?(V?qzuG#=kO*IA>M3;!i~4|aPlxX~+&g^7>M2(5)(7EQ zUEh1^h-)7k9aHK$e0%C|O&v+w$x|ns-h}pjVV^eMSFJd(*&Z%L!{6Hasf|0XJ@wMmRuSW`4qs+H^~Hj%K?l?aJA8U3SKO0j5=LXpT%*8h`gZj5)aZ{< z3ma+;KG5MCR!`$yj7<)PzID^5yGbM7Xlo>%MAb(kB@viy=GaZS=w8-yim(x9lb1Lfy`;ScFImCuB~GW8^l~FGhVAg#yjp~%utdM5#H{_lI_deB z7zuayF7+}Jrv6+!D}{px#zaSis>QP`WQykr?`d{_ve&D$9`f#YDj~Jc@h;7=Ypv?C zc;t$m-l>h}=VZw8Wi(1`*NnQnHtX=M_fk$O_9_iZ%-?FzZ|T7JpJvXqh@r_F%;$Sl zW)1Xf^wJEusscFxGXotM|I?lYtrb5TXo*dtm5jf3lD~Y+DRlT|czd5WBd&XxW@*N( z!`fCoa1EdEzrS<%v(Q%HKUt+{<)v3gg=j%mDPACl0Y$0jX@f z>FzC0Sls?R5$E}_woG0&Ho2!ZRz?5RJh6o7Vv(E5Mh=w?)Da5cv?59S8yEyDpl~)9?@uxoEa-fHmfT2G91p zLVzg7`&@%8p==gPZ61Ic+2RTVQlmyLa}B_Avy1ZH4vdgH*!q8m??qQX+;4S7;97zd zboicg(acvIYHh5ACW)xEy=^3Wt!oIb82|TJThZ)NH0H26e2+8fk6?EJS^y?}9+N(o zNiT4btb8`BL9<$D|6TEx@RVd$wN&5!*|e0x#mr*+9L-zDX;BA z%sQ|GAe2eyvR_0S$t!aX#C4}LxkvjAsvK+y#jHN;&m?YS64x_{#ZL0SmhB9PV>Vmv zjI)HM3}rSO0)s_IM`$#fAOqMvuWo@Z_LLWfF->eEh@)hcLI zWPKOCGq)*Z&NP{wVzC=w0Q!1lr-95)i)-RwrzqHIF!nyzbDT*Z4nm z(Utuy2{sM$Mfw-_d}zX&cPsTEFJdeY>pQ4#cfk?gqZPRy4)co#Yp2?Sr7j=m?_&)g1ySG#F-14zDbC*O0!lS*a1M?;+_%{cAxQH zyNcy)lz)f9KxHMEm4?XSA%<$VQG*{&(9cM@M7D0674oPn3U*!O{L>4BCOwKS{X4Bz$RS{eSyE>!?&JEwOK@ zP@{g)Os*f>N$z<&mCLjCp35bbvk}bR3A*_BK?ATZ7NikQv$8~~c+-B8-G9*QRVsbQ z>)v1-6|CItxS`d93k4BmDmK%WhndVQ>txt)v|ZHYnX~YGq@AvbcH-3`W}gU% z6;|{VCN($&ONTGUe)$`E8fEu9&6^oiEm*}@Maj3e$Rn+jQ{Vkw)-yE zPsH_7eLAie>oaiutUeRh3-tw!Z>|XsggzE-XX_*2do&OI1VX3XO4xgbeVvieBIWWF z7KcOF51(gF#cXs6;_zmDG?3mp_FyXFV7=Lo#X*laSnBnVySqLW*RuK)T+Q{Paotf* z;cc()4^E|}9sB=prbO1p5ULn~C!6X=R*taF!_K&N-@1B1_eKtON$F^A`n8f+#+3-J zW%WW*Qjc|jc5|$a(!GGCdp=9|T%>!{Hx!cs7Lyq)CV7a-ux|$Fl&|EO3mV@k8pdmk zcHceq0})ajdXr>}jQTjB0jySN_odbk0>UiwfdNSW$a;!}vRmCUnCmNs=_{sw2>5CK zIR^X@_3=P7OCAq>Mco_FSdAZJWY83?V5iqJb}Xg`|Ex=x)));anI0 zHOD_g(vJQAI`~wu8IpFa|0e)RGbFISHxWphA!+yR^ODr=x=50A!DdI=G5${mzcf42 z=_~CV0W=A-BkjH|-blpkIgHJb12E^&j?upw*L9flX!otfoJTu$08qMLuOpsijAses zSpk9FTr<7XaLw?}>#?<*UO59ZcJ01o<|C2$7{+D|U|&PKFV351xdXG-FS1$d=hi&? z^EGQ?S3YfevM_ex!}A}U85K&{SA9cdB^7Y_YLB2{7KiF%-=qCrILEavy%CHx|b`}D2F|B*wca@u9CcGnY=9U zT0GBxOR*_o*BrQ*J*!y#zxKLH*dq2d5AMc0JdatG<*>gex6z#Tb@R3ms_pliHsp%s zRO3I18h`!ZCFVj_<3Gh}{Qb2i)cD3ySl=UJy|CRkAFK9fOu|yEsbOEUQl~04vK`v( zz8N0$k1Eb!-^FI^mwD=WmCk66N_!NsoP?baM$`ul(GRowKuFw>+wM!pUI?T4QR~CV ztEnE*@Gv-2Jc`sBf8Ih`dUA56g2)tFIa@JB=5wxl5c4?&KJ$_0Dd5d>lWzm_ox^-*x#zt% z7<~709b~$P0Ew3SnGUiszrUj+9xjhrvmqzNoelpZ-S^{~=+3xC(uOf<@l0Br`>t#B zEXF*?lxJyXMsvXI=V%Ch8aUFEs!MMhQYd>U-u1R5B-xsCHxGb(w zj4KUXWiIOnqZ!YoqH!{w7hQKUo^jwQfuzXVaY(~PR~oMCUE^^rc1^%_t?MpaSGtmI zsZ7c%MPp=A7P-bSDPtgIp-VK30q+7ANt(|j&1I5iGfDYO(hS$u_r}7{D6Z!m*Ek^2 zGK%T>PUv}W2euwS&v!y*y6aBJ(z{0Cn(CVT4M|R6l1DPhiA=JNNsf2j`wj8Mx$gQV z4H9NHx#!#=i))xG9j=dB?|@tl;(7;omCWwr;hx0f)9TCs5-mwAJ|hsHD;*Qy@|bl5 z{5hQ?;LGkz!u7hd$wt)XylI;Vj+srH=OoC&yX3qJu8&$1;O{f6Fh5z7$+(PjhRe9l zI`3v&!@+gZDWuG*y@zq#KWC_n>#*})#x)dNR;Oqfig5QkhvQo1Ou%)o^TLPsGk?)@ z2Fm=EIkT9*f$+Bj{sw|~n^TcmP@4_+{yfbk&Kw}o(x0W7-pRPyJOwU~S!3aEwKEpJ zR^qJ!lz!(X8-==rg}T@|30#A?l!eawn3O?G3hlxAbH`*RWeB7cIETRB4Cf$R^PCSe zDY;Bamb1`Cu9KXP+9-@n=g(}p@JDSzx>HO^tepxJ$wL|KGyo}dkp~6DnCgDo_jcvx zG!{}cLW*-zKV*P264!ptWE;^4=NMZaIA%6|k{!zQ^XNfpU6ju0%=O(I*6&h=9@q%i zX2%S;QqQLmqs4Y#1ICHy{W&N`PR9dyCZhj*-65KPd!3%x*psV{HMW^eW76_jU&n}% z4E3NcI%a|&J+*_6p|5kPr2yzLjBMMn`=5GSXEFM0_nmUgY`USFm5ecvFth0j-eFZK zl@;rAH|D-%n%VSu60qvo-03D``OK#OB`$GOF6~uS!|y(ahL5VEYsA2)>X8p-BP6Be zF^r0ZhQ%$xHVS9EW4LV&cNZFd-AevT9FO7poTCuejgIAq@P1nlZxB;EO5DpB_YyWc zVPyR+qr+&KgZ|c-&0pK28b&Eb;_pd8hwor~WAKeq1mmj0_omP+JSlvSKQI0q_`3%D zweWXbKgYL5_ypJU_&bZgQ}{c9zhn5ThWp#XA8>sg-@RC)eG=qVJ)st3d@BhxGutK=SamU#lymb!YKUKh` zuTEgt)scc=bx3GK4>zC}WuzNGRQi;7_e;)fD zNYbx3eU3e&I^~r8^0)Nl3wEWt>8Sm4_LOSC!}e0Caud^_yMcrh7g1H;nm0Idz`%T~MlTs)*eGdfgrU&k( zog{fP!TUIPkAFxAZ!R%93$AnRYnXiMCFO%-73X-GQR;E!*o};X`fHQykFfiPaX-;M zkM@Z8hJSd|H}u2KuP%Ls4IDUpruTJuOSQ5r!Z4-js-lGLJ$nd!)|c{vP3vTUcc0=t)6NK{VpoxAI&jQ+O!D6MC?e6KmD$0OHK>zfykU~ z__SGH(uVi{!6B5GUd)N9S&b4Nra+m-POq&ddQN@lHs8^DMT)xil0#5nebJ)L)tF~P zp5*^c=3lFSF-K9W-rL_cv+?X2{|<_yrZCh!l8mx?^< znu^@PLaOTOss@d)HD}o8!G}f}(hcAluVXyot`1*IC%xsPHzXL^e9N(V-sUs$z4+?A zdbllu6!Ep(!9#4c(@-pm^lwcixU?`q#^M(Lv_9UTa(uVPW zD3H1$(yG}*mdAWpXBb>YSd$J!f*UgcK%=a892@~j#hnr4*D?w|7kft`PK&%FaD5!J z2yIyZPr`M9Hv!lA-l4e8^$x;yHug-kVf}v~t~0PRqRnUU#^RdmrF3UOD{UD6-+}8r zNcGipVFYxnR9iOYmY8NXelZ>htzS0f6MZV$Wnq_MR~yFv5f-IkF3NT}%C0hry{CO| zDaz!B@6nFlnT@;CNzO+2j6|%lgE&d@sr5zy(~NPOPl=h2HthbN*|;<*&u?9t=Nr59O`v9^$&@iLh*?_peozIT=JcqUYIQB%uITJ6mgd>z<&z-og^u$gb{ zd!w078WkVozwp z41j2$JXGlpsZgYDGlior&7<}vL&Q8P`Q8cNTIM^F`F_z&yRRhQC2qAL%s@GG6W*T3 zSu1;kU(GgEn}j=G!aTGTqgVVf%A_|rK5d>|qD?~$;I1|)k~9nlSw_XFEx9g18O}nO zkG%jfyuP394yg>cuB+2xJudjw=}dBOa@%~Fh^rz|&7~&9(VqP_ya7Oa!l(sk!wf)3 zWvI2Fj><}+yZ2r7q?3MZuK=YLEr2@)`yZusv=EIljP}WgTitx`mA&pd+63vnqic1C zKU1-v-sru*ak4thEF_hfLd&4D(kxScQ}P;W8-y}iF@g16QyL2tBI}EM-CVAga?J#^ z5IbTgn#ZvgLfX&1AvY7P!$}u@T(n`;=9!K6DXFHTx{LO3kD)z~NosH$atR|u8iH7sBnE+<#IVH_YSHY9Hf_#1dpg9T$c;9JS+r$}L|SLimxZNK zY@c(%ZO>-YY?Bfe)|c(W{%cnLv6DfM`u|SMhKZ<6mSHCYVaj)lUBS3(^BLh+ov5uS zF$FV;QB2}IS8%16D5SnwqtOMI>(PGRiCyyAvNm5H_BaqG898huj`|-mC_X`E+Wj74 zf!!@zb1t7wFpR(oA?%O64|=>UKLYh{3M9jI60Gmi?h(^3u)V%#*&bj8%3U004cdG$ zt`BVaP0fqg9(krobw!d@fi!4cA(k@(HRe!U@$R2aZ4hl#E4MpEXf?T4t-gAjR>j-2 z8rn^(7oC2sh6S|B>VIcAQZpPau%y*fPTE;NoN45^GZ=TM|KT_CHmx3X`n4Lxv^o?r zv`nj&Y>)j=CS$jg$~3hxWso8yMjIsE((d|D%L_Rcy#KC-exnSRvBsl4tu=(;RG8_5 z7G(=5@uz85>JX->wa)%b>qDUR

          $B(7MT~-J?xE$+S-THewu)+8?tbZCL*wgX?^@ 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 z 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

          p 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

          8RAi_HW&zPUi7P7>%D*8bRA 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%0D5mncv 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 z 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�eQ6hJ@cTh)j5 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≥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�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 literal 0 HcmV?d00001 diff --git a/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/Current b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/Current new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/TagLib.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/Audio-Frameworks/bin/taglib/headers/ape/apefile.h b/Audio-Frameworks/bin/taglib/headers/ape/apefile.h new file mode 100644 index 0000000..0bdbd42 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/ape/apefile.h @@ -0,0 +1,198 @@ +/*************************************************************************** + copyright : (C) 2010 by Alex Novichkov + email : novichko@atnet.ru + + copyright : (C) 2006 by Lukáš Lalinský + email : lalinsky@gmail.com + (original WavPack implementation) + + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + (original MPC implementation) + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_APEFILE_H +#define TAGLIB_APEFILE_H + +#include "tfile.h" +#include "taglib_export.h" +#include "apeproperties.h" + +namespace TagLib { + + class Tag; + + namespace ID3v1 { class Tag; } + namespace APE { class Tag; } + + //! An implementation of APE metadata + + /*! + * This is implementation of APE metadata. + * + * This supports ID3v1 and APE (v1 and v2) style comments as well as reading stream + * properties from the file. + */ + + namespace APE { + + //! An implementation of TagLib::File with APE specific methods + + /*! + * This implements and provides an interface APE WavPack files to the + * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing + * the abstract TagLib::File API as well as providing some additional + * information specific to APE files. + */ + + class TAGLIB_EXPORT File : public TagLib::File + { + public: + /*! + * This set of flags is used for various operations and is suitable for + * being OR-ed together. + */ + enum TagTypes { + //! Empty set. Matches no tag types. + NoTags = 0x0000, + //! Matches ID3v1 tags. + ID3v1 = 0x0001, + //! Matches APE tags. + APE = 0x0002, + //! Matches all tag types. + AllTags = 0xffff + }; + + /*! + * Contructs an WavPack file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an WavPack file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns the Tag for this file. This will be an APE tag, an ID3v1 tag + * or a combination of the two. + */ + virtual TagLib::Tag *tag() const; + + /*! + * Implements the unified property interface -- export function. + * If the file contains both an APE and an ID3v1 tag, only APE + * will be converted to the PropertyMap. + */ + PropertyMap properties() const; + + /*! + * Removes unsupported properties. Forwards to the actual Tag's + * removeUnsupportedProperties() function. + */ + void removeUnsupportedProperties(const StringList &properties); + + /*! + * Implements the unified property interface -- import function. + * As for the export, only one tag is taken into account. If the file + * has no tag at all, APE will be created. + */ + PropertyMap setProperties(const PropertyMap &); + /*! + * Returns the APE::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + /*! + * Saves the file. + * + * \note According to the official Monkey's Audio SDK, an APE file + * can only have either ID3V1 or APE tags, so a parameter is used here. + */ + virtual bool save(); + + /*! + * Returns a pointer to the ID3v1 tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid ID3v1 tag. If \a create is true it will create + * an ID3v1 tag if one does not exist. If there is already an APE tag, the + * new ID3v1 tag will be placed after it. + * + * \note The Tag is still owned by the APE::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + ID3v1::Tag *ID3v1Tag(bool create = false); + + /*! + * Returns a pointer to the APE tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid APE tag. If \a create is true it will create + * a APE tag if one does not exist. + * + * \note The Tag is still owned by the APE::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + APE::Tag *APETag(bool create = false); + + /*! + * This will remove the tags that match the OR-ed together TagTypes from the + * file. By default it removes all tags. + * + * \note This will also invalidate pointers to the tags + * as their memory will be freed. + * \note In order to make the removal permanent save() still needs to be called + */ + void strip(int tags = AllTags); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + void scan(); + long findID3v1(); + long findAPE(); + + class FilePrivate; + FilePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/ape/apefooter.h b/Audio-Frameworks/bin/taglib/headers/ape/apefooter.h new file mode 100644 index 0000000..080f930 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/ape/apefooter.h @@ -0,0 +1,173 @@ +/*************************************************************************** + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_APEFOOTER_H +#define TAGLIB_APEFOOTER_H + +#include "tbytevector.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace APE { + + //! An implementation of APE footers + + /*! + * This class implements APE footers (and headers). It attempts to follow, both + * semantically and programatically, the structure specified in + * the APE v2.0 standard. The API is based on the properties of APE footer and + * headers specified there. + */ + + class TAGLIB_EXPORT Footer + { + public: + /*! + * Constructs an empty APE footer. + */ + Footer(); + + /*! + * Constructs an APE footer based on \a data. parse() is called + * immediately. + */ + Footer(const ByteVector &data); + + /*! + * Destroys the footer. + */ + virtual ~Footer(); + + /*! + * Returns the version number. (Note: This is the 1000 or 2000.) + */ + uint version() const; + + /*! + * Returns true if a header is present in the tag. + */ + bool headerPresent() const; + + /*! + * Returns true if a footer is present in the tag. + */ + bool footerPresent() const; + + /*! + * Returns true this is actually the header. + */ + bool isHeader() const; + + /*! + * Sets whether the header should be rendered or not + */ + void setHeaderPresent(bool b) const; + + /*! + * Returns the number of items in the tag. + */ + uint itemCount() const; + + /*! + * Set the item count to \a s. + * \see itemCount() + */ + void setItemCount(uint s); + + /*! + * Returns the tag size in bytes. This is the size of the frame content and footer. + * The size of the \e entire tag will be this plus the header size, if present. + * + * \see completeTagSize() + */ + uint tagSize() const; + + /*! + * Returns the tag size, including if present, the header + * size. + * + * \see tagSize() + */ + uint completeTagSize() const; + + /*! + * Set the tag size to \a s. + * \see tagSize() + */ + void setTagSize(uint s); + + /*! + * Returns the size of the footer. Presently this is always 32 bytes. + */ + static uint size(); + + /*! + * Returns the string used to identify an APE tag inside of a file. + * Presently this is always "APETAGEX". + */ + static ByteVector fileIdentifier(); + + /*! + * Sets the data that will be used as the footer. 32 bytes, + * starting from \a data will be used. + */ + void setData(const ByteVector &data); + + /*! + * Renders the footer back to binary format. + */ + ByteVector renderFooter() const; + + /*! + * Renders the header corresponding to the footer. If headerPresent is + * set to false, it returns an empty ByteVector. + */ + ByteVector renderHeader() const; + + protected: + /*! + * Called by setData() to parse the footer data. It makes this information + * available through the public API. + */ + void parse(const ByteVector &data); + + /*! + * Called by renderFooter and renderHeader + */ + ByteVector render(bool isHeader) const; + + private: + Footer(const Footer &); + Footer &operator=(const Footer &); + + class FooterPrivate; + FooterPrivate *d; + }; + + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/ape/apeitem.h b/Audio-Frameworks/bin/taglib/headers/ape/apeitem.h new file mode 100644 index 0000000..f7fd05e --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/ape/apeitem.h @@ -0,0 +1,217 @@ +/*************************************************************************** + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_APEITEM_H +#define TAGLIB_APEITEM_H + +#include "tbytevector.h" +#include "tstring.h" +#include "tstringlist.h" + +namespace TagLib { + + namespace APE { + + //! An implementation of APE-items + + /*! + * This class provides the features of items in the APEv2 standard. + */ + class TAGLIB_EXPORT Item + { + public: + /*! + * Enum of types an Item can have. The value of 3 is reserved. + */ + enum ItemTypes { + //! Item contains text information coded in UTF-8 + Text = 0, + //! Item contains binary information + Binary = 1, + //! Item is a locator of external stored information + Locator = 2 + }; + /*! + * Constructs an empty item. + */ + Item(); + + /*! + * Constructs a text item with \a key and \a value. + */ + // BIC: Remove this, StringList has a constructor from a single string + Item(const String &key, const String &value); + + /*! + * Constructs a text item with \a key and \a values. + */ + Item(const String &key, const StringList &values); + + /*! + * Constructs an item with \a key and \a value. + * If \a binary is true a Binary item will be created, otherwise \a value will be interpreted as text + */ + Item(const String &key, const ByteVector &value, bool binary); + + /*! + * Construct an item as a copy of \a item. + */ + Item(const Item &item); + + /*! + * Destroys the item. + */ + virtual ~Item(); + + /*! + * Copies the contents of \a item into this item. + */ + Item &operator=(const Item &item); + + /*! + * Returns the key. + */ + String key() const; + + /*! + * Returns the binary value. + * If the item type is not \a Binary, the returned contents are undefined + */ + ByteVector binaryData() const; + + /*! + * Set the binary value to \a value + * The item's type will also be set to \a Binary + */ + void setBinaryData(const ByteVector &value); + +#ifndef DO_NOT_DOCUMENT + /* Remove in next binary incompatible release */ + ByteVector value() const; +#endif + + /*! + * Sets the key for the item to \a key. + */ + void setKey(const String &key); + + /*! + * Sets the text value of the item to \a value and clears any previous contents. + * + * \see toString() + */ + void setValue(const String &value); + + /*! + * Sets the text value of the item to the list of values in \a value and clears + * any previous contents. + * + * \see toStringList() + */ + void setValues(const StringList &values); + + /*! + * Appends \a value to create (or extend) the current list of text values. + * + * \see toString() + */ + void appendValue(const String &value); + + /*! + * Appends \a values to extend the current list of text values. + * + * \see toStringList() + */ + void appendValues(const StringList &values); + + /*! + * Returns the size of the full item. + */ + int size() const; + + /*! + * Returns the value as a single string. In case of multiple strings, + * the first is returned. + */ + String toString() const; + +#ifndef DO_NOT_DOCUMENT + /* Remove in next binary incompatible release */ + StringList toStringList() const; +#endif + + /*! + * Returns the list of text values. + */ + StringList values() const; + + /*! + * Render the item to a ByteVector. + */ + ByteVector render() const; + + /*! + * Parse the item from the ByteVector \a data. + */ + void parse(const ByteVector& data); + + /*! + * Set the item to read-only. + */ + void setReadOnly(bool readOnly); + + /*! + * Return true if the item is read-only. + */ + bool isReadOnly() const; + + /*! + * Sets the type of the item to \a type. + * + * \see ItemTypes + */ + void setType(ItemTypes type); + + /*! + * Returns the type of the item. + */ + ItemTypes type() const; + + /*! + * Returns if the item has any real content. + */ + bool isEmpty() const; + + private: + class ItemPrivate; + ItemPrivate *d; + }; + } + +} + +#endif + + diff --git a/Audio-Frameworks/bin/taglib/headers/ape/apeproperties.h b/Audio-Frameworks/bin/taglib/headers/ape/apeproperties.h new file mode 100644 index 0000000..f154ec3 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/ape/apeproperties.h @@ -0,0 +1,99 @@ +/*************************************************************************** + copyright : (C) 2010 by Alex Novichkov + email : novichko@atnet.ru + + copyright : (C) 2006 by Lukáš Lalinský + email : lalinsky@gmail.com + (original WavPack implementation) + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_APEPROPERTIES_H +#define TAGLIB_APEPROPERTIES_H + +#include "taglib_export.h" +#include "audioproperties.h" + +namespace TagLib { + + namespace APE { + + class File; + + //! An implementation of audio property reading for APE + + /*! + * This reads the data from an APE stream found in the AudioProperties + * API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of APE::Properties with the data read from the + * ByteVector \a data. + */ + Properties(File *f, ReadStyle style = Average); + + /*! + * Destroys this APE::Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + /*! + * Returns number of bits per sample. + */ + int bitsPerSample() const; + uint sampleFrames() const; + + /*! + * Returns APE version. + */ + int version() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void read(); + + long findDescriptor(); + long findID3v2(); + + void analyzeCurrent(); + void analyzeOld(); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/ape/apetag.h b/Audio-Frameworks/bin/taglib/headers/ape/apetag.h new file mode 100644 index 0000000..1a8c30c --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/ape/apetag.h @@ -0,0 +1,201 @@ +/*************************************************************************** + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_APETAG_H +#define TAGLIB_APETAG_H + +#include "tag.h" +#include "tbytevector.h" +#include "tmap.h" +#include "tstring.h" +#include "taglib_export.h" + +#include "apeitem.h" + +namespace TagLib { + + class File; + + //! An implementation of the APE tagging format + + namespace APE { + + class Footer; + + /*! + * A mapping between a list of item names, or keys, and the associated item. + * + * \see APE::Tag::itemListMap() + */ + typedef Map ItemListMap; + + + //! An APE tag implementation + + class TAGLIB_EXPORT Tag : public TagLib::Tag + { + public: + /*! + * Create an APE tag with default values. + */ + Tag(); + + /*! + * Create an APE tag and parse the data in \a file with APE footer at + * \a tagOffset. + */ + Tag(TagLib::File *file, long footerLocation); + + /*! + * Destroys this Tag instance. + */ + virtual ~Tag(); + + /*! + * Renders the in memory values to a ByteVector suitable for writing to + * the file. + */ + ByteVector render() const; + + /*! + * Returns the string "APETAGEX" suitable for usage in locating the tag in a + * file. + */ + static ByteVector fileIdentifier(); + + // Reimplementations. + + virtual String title() const; + virtual String artist() const; + virtual String album() const; + virtual String comment() const; + virtual String genre() const; + virtual uint year() const; + virtual uint track() const; + + virtual void setTitle(const String &s); + virtual void setArtist(const String &s); + virtual void setAlbum(const String &s); + virtual void setComment(const String &s); + virtual void setGenre(const String &s); + virtual void setYear(uint i); + virtual void setTrack(uint i); + + /*! + * Implements the unified tag dictionary interface -- export function. + * APE tags are perfectly compatible with the dictionary interface because they + * support both arbitrary tag names and multiple values. Currently only + * APE items of type *Text* are handled by the dictionary interface; all *Binary* + * and *Locator* items will be put into the unsupportedData list and can be + * deleted on request using removeUnsupportedProperties(). The same happens + * to Text items if their key is invalid for PropertyMap (which should actually + * never happen). + * + * The only conversion done by this export function is to rename the APE tags + * TRACK to TRACKNUMBER, YEAR to DATE, and ALBUM ARTIST to ALBUMARTIST, respectively, + * in order to be compliant with the names used in other formats. + */ + PropertyMap properties() const; + + void removeUnsupportedProperties(const StringList &properties); + + /*! + * Implements the unified tag dictionary interface -- import function. The same + * comments as for the export function apply. + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Returns a pointer to the tag's footer. + */ + Footer *footer() const; + + /*! + * Returns a reference to the item list map. This is an ItemListMap of + * all of the items in the tag. + * + * This is the most powerfull structure for accessing the items of the tag. + * + * APE tags are case-insensitive, all keys in this map have been converted + * to upper case. + * + * \warning You should not modify this data structure directly, instead + * use setItem() and removeItem(). + */ + const ItemListMap &itemListMap() const; + + /*! + * Removes the \a key item from the tag + */ + void removeItem(const String &key); + + /*! + * Adds to the text item specified by \a key the data \a value. If \a replace + * is true, then all of the other values on the same key will be removed + * first. If a binary item exists for \a key it will be removed first. + */ + void addValue(const String &key, const String &value, bool replace = true); + + /*! + * Set the binary data for the key specified by \a item to \a value + * This will convert the item to type \a Binary if it isn't already and + * all of the other values on the same key will be removed. + */ + void setData(const String &key, const ByteVector &value); + + /*! + * Sets the \a key item to the value of \a item. If an item with the \a key is already + * present, it will be replaced. + */ + void setItem(const String &key, const Item &item); + + /*! + * Returns true if the tag does not contain any data. + */ + bool isEmpty() const; + + protected: + + /*! + * Reads from the file specified in the constructor. + */ + void read(); + + /*! + * Parses the body of the tag in \a data. + */ + void parse(const ByteVector &data); + + private: + Tag(const Tag &); + Tag &operator=(const Tag &); + + class TagPrivate; + TagPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/asf/asfattribute.h b/Audio-Frameworks/bin/taglib/headers/asf/asfattribute.h new file mode 100644 index 0000000..54eb0c7 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/asf/asfattribute.h @@ -0,0 +1,203 @@ +/************************************************************************** + copyright : (C) 2005-2007 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ASFATTRIBUTE_H +#define TAGLIB_ASFATTRIBUTE_H + +#include "tstring.h" +#include "tbytevector.h" +#include "taglib_export.h" +#include "asfpicture.h" + +namespace TagLib +{ + + namespace ASF + { + + class File; + class Picture; + + class TAGLIB_EXPORT Attribute + { + public: + + /*! + * Enum of types an Attribute can have. + */ + enum AttributeTypes { + UnicodeType = 0, + BytesType = 1, + BoolType = 2, + DWordType = 3, + QWordType = 4, + WordType = 5, + GuidType = 6 + }; + + /*! + * Constructs an empty attribute. + */ + Attribute(); + + /*! + * Constructs an attribute with \a key and a UnicodeType \a value. + */ + Attribute(const String &value); + + /*! + * Constructs an attribute with \a key and a BytesType \a value. + */ + Attribute(const ByteVector &value); + + /*! + * Constructs an attribute with \a key and a Picture \a value. + * + * This attribute is compatible with the ID3 frame, APIC. The ID3 specification for the APIC frame stipulates that, + * while there may be any number of APIC frames associated with a file, + * only one may be of type 1 and only one may be of type 2. + * + * The specification also states that the description of the picture can be no longer than 64 characters, but can be empty. + * WM/Picture attributes added with TagLib::ASF are not automatically validated to conform to ID3 specifications. + * You must add code in your application to perform validations if you want to maintain complete compatibility with ID3. + */ + Attribute(const Picture &value); + + /*! + * Constructs an attribute with \a key and a DWordType \a value. + */ + Attribute(unsigned int value); + + /*! + * Constructs an attribute with \a key and a QWordType \a value. + */ + Attribute(unsigned long long value); + + /*! + * Constructs an attribute with \a key and a WordType \a value. + */ + Attribute(unsigned short value); + + /*! + * Constructs an attribute with \a key and a BoolType \a value. + */ + Attribute(bool value); + + /*! + * Construct an attribute as a copy of \a other. + */ + Attribute(const Attribute &item); + + /*! + * Copies the contents of \a other into this item. + */ + ASF::Attribute &operator=(const Attribute &other); + + /*! + * Destroys the attribute. + */ + virtual ~Attribute(); + + /*! + * Returns type of the value. + */ + AttributeTypes type() const; + + /*! + * Returns the BoolType \a value. + */ + unsigned short toBool() const; + + /*! + * Returns the WordType \a value. + */ + unsigned short toUShort() const; + + /*! + * Returns the DWordType \a value. + */ + unsigned int toUInt() const; + + /*! + * Returns the QWordType \a value. + */ + unsigned long long toULongLong() const; + + /*! + * Returns the UnicodeType \a value. + */ + String toString() const; + + /*! + * Returns the BytesType \a value. + */ + ByteVector toByteVector() const; + + /*! + * Returns the Picture \a value. + */ + Picture toPicture() const; + + /*! + * Returns the language number, or 0 is no stream number was set. + */ + int language() const; + + /*! + * Sets the language number. + */ + void setLanguage(int value); + + /*! + * Returns the stream number, or 0 is no stream number was set. + */ + int stream() const; + + /*! + * Sets the stream number. + */ + void setStream(int value); + +#ifndef DO_NOT_DOCUMENT + /* THIS IS PRIVATE, DON'T TOUCH IT! */ + String parse(ASF::File &file, int kind = 0); +#endif + + //! Returns the size of the stored data + int dataSize() const; + + private: + friend class File; + + ByteVector render(const String &name, int kind = 0) const; + + class AttributePrivate; + AttributePrivate *d; + }; + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/asf/asffile.h b/Audio-Frameworks/bin/taglib/headers/asf/asffile.h new file mode 100644 index 0000000..f0acd72 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/asf/asffile.h @@ -0,0 +1,130 @@ +/************************************************************************** + copyright : (C) 2005-2007 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ASFFILE_H +#define TAGLIB_ASFFILE_H + +#include "tag.h" +#include "tfile.h" +#include "taglib_export.h" +#include "asfproperties.h" +#include "asftag.h" + +namespace TagLib { + + //! An implementation of ASF (WMA) metadata + namespace ASF { + + /*! + * This implements and provides an interface for ASF files to the + * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing + * the abstract TagLib::File API as well as providing some additional + * information specific to ASF files. + */ + class TAGLIB_EXPORT File : public TagLib::File + { + public: + + /*! + * Contructs an ASF file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + * + * \note In the current implementation, both \a readProperties and + * \a propertiesStyle are ignored. + */ + File(FileName file, bool readProperties = true, Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an ASF file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + * + * \note In the current implementation, both \a readProperties and + * \a propertiesStyle are ignored. + */ + File(IOStream *stream, bool readProperties = true, Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns a pointer to the ASF tag of the file. + * + * ASF::Tag implements the tag interface, so this serves as the + * reimplementation of TagLib::File::tag(). + * + * \note The Tag is still owned by the ASF::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + virtual Tag *tag() const; + + /*! + * Returns the ASF audio properties for this file. + */ + virtual Properties *audioProperties() const; + + /*! + * Save the file. + * + * This returns true if the save was successful. + */ + virtual bool save(); + + private: + + int readBYTE(bool *ok = 0); + int readWORD(bool *ok = 0); + unsigned int readDWORD(bool *ok = 0); + long long readQWORD(bool *ok = 0); + static ByteVector renderString(const String &str, bool includeLength = false); + String readString(int len); + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + + friend class Attribute; + friend class Picture; + + class BaseObject; + class UnknownObject; + class FilePropertiesObject; + class StreamPropertiesObject; + class ContentDescriptionObject; + class ExtendedContentDescriptionObject; + class HeaderExtensionObject; + class MetadataObject; + class MetadataLibraryObject; + + class FilePrivate; + FilePrivate *d; + }; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/asf/asfpicture.h b/Audio-Frameworks/bin/taglib/headers/asf/asfpicture.h new file mode 100644 index 0000000..aa0a060 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/asf/asfpicture.h @@ -0,0 +1,217 @@ +/************************************************************************** + copyright : (C) 2010 by Anton Sergunov + email : setosha@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef ASFPICTURE_H +#define ASFPICTURE_H + +#include "tstring.h" +#include "tbytevector.h" +#include "taglib_export.h" +#include "attachedpictureframe.h" + +namespace TagLib +{ + namespace ASF + { + + //! An ASF attached picture interface implementation + + /*! + * This is an implementation of ASF attached pictures interface. Pictures may be + * included in attributes, one per WM/Picture attribute (but there may be multiple WM/Picture + * attribute in a single tag). These pictures are usually in either JPEG or + * PNG format. + * \see Attribute::toPicture() + * \see Attribute::Attribute(const Picture& picture) + */ + class TAGLIB_EXPORT Picture { + public: + + /*! + * This describes the function or content of the picture. + */ + enum Type { + //! A type not enumerated below + Other = 0x00, + //! 32x32 PNG image that should be used as the file icon + FileIcon = 0x01, + //! File icon of a different size or format + OtherFileIcon = 0x02, + //! Front cover image of the album + FrontCover = 0x03, + //! Back cover image of the album + BackCover = 0x04, + //! Inside leaflet page of the album + LeafletPage = 0x05, + //! Image from the album itself + Media = 0x06, + //! Picture of the lead artist or soloist + LeadArtist = 0x07, + //! Picture of the artist or performer + Artist = 0x08, + //! Picture of the conductor + Conductor = 0x09, + //! Picture of the band or orchestra + Band = 0x0A, + //! Picture of the composer + Composer = 0x0B, + //! Picture of the lyricist or text writer + Lyricist = 0x0C, + //! Picture of the recording location or studio + RecordingLocation = 0x0D, + //! Picture of the artists during recording + DuringRecording = 0x0E, + //! Picture of the artists during performance + DuringPerformance = 0x0F, + //! Picture from a movie or video related to the track + MovieScreenCapture = 0x10, + //! Picture of a large, coloured fish + ColouredFish = 0x11, + //! Illustration related to the track + Illustration = 0x12, + //! Logo of the band or performer + BandLogo = 0x13, + //! Logo of the publisher (record company) + PublisherLogo = 0x14 + }; + + /*! + * Constructs an empty picture. + */ + Picture(); + + /*! + * Construct an picture as a copy of \a other. + */ + Picture(const Picture& other); + + /*! + * Destroys the picture. + */ + virtual ~Picture(); + + /*! + * Copies the contents of \a other into this picture. + */ + Picture& operator=(const Picture& other); + + /*! + * Returns true if Picture stores valid picture + */ + bool isValid() const; + + /*! + * Returns the mime type of the image. This should in most cases be + * "image/png" or "image/jpeg". + * \see setMimeType(const String &) + * \see picture() + * \see setPicture(const ByteArray&) + */ + String mimeType() const; + + /*! + * Sets the mime type of the image. This should in most cases be + * "image/png" or "image/jpeg". + * \see setMimeType(const String &) + * \see picture() + * \see setPicture(const ByteArray&) + */ + void setMimeType(const String &value); + + /*! + * Returns the type of the image. + * + * \see Type + * \see setType() + */ + Type type() const; + + /*! + * Sets the type for the image. + * + * \see Type + * \see type() + */ + void setType(const ASF::Picture::Type& t); + + /*! + * Returns a text description of the image. + * + * \see setDescription() + */ + String description() const; + + /*! + * Sets a textual description of the image to \a desc. + * + * \see description() + */ + void setDescription(const String &desc); + + /*! + * Returns the image data as a ByteVector. + * + * \note ByteVector has a data() method that returns a const char * which + * should make it easy to export this data to external programs. + * + * \see setPicture() + * \see mimeType() + */ + ByteVector picture() const; + + /*! + * Sets the image data to \a p. \a p should be of the type specified in + * this frame's mime-type specification. + * + * \see picture() + * \see mimeType() + * \see setMimeType() + */ + void setPicture(const ByteVector &p); + + /*! + * Returns picture as binary raw data \a value + */ + ByteVector render() const; + + /*! + * Returns picture as binary raw data \a value + */ + int dataSize() const; + +#ifndef DO_NOT_DOCUMENT + /* THIS IS PRIVATE, DON'T TOUCH IT! */ + void parse(const ByteVector& ); + static Picture fromInvalid(); + friend class Attribute; +#endif + private: + class PicturePrivate; + PicturePrivate *d; + }; + } +} + +#endif // ASFPICTURE_H diff --git a/Audio-Frameworks/bin/taglib/headers/asf/asfproperties.h b/Audio-Frameworks/bin/taglib/headers/asf/asfproperties.h new file mode 100644 index 0000000..95730d8 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/asf/asfproperties.h @@ -0,0 +1,76 @@ +/************************************************************************** + copyright : (C) 2005-2007 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ASFPROPERTIES_H +#define TAGLIB_ASFPROPERTIES_H + +#include "audioproperties.h" +#include "tstring.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace ASF { + + //! An implementation of ASF audio properties + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + + /*! + * Create an instance of ASF::Properties. + */ + Properties(); + + /*! + * Destroys this ASF::Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + bool isEncrypted() const; + +#ifndef DO_NOT_DOCUMENT + void setLength(int value); + void setBitrate(int value); + void setSampleRate(int value); + void setChannels(int value); + void setEncrypted(bool value); +#endif + + private: + class PropertiesPrivate; + PropertiesPrivate *d; + }; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/asf/asftag.h b/Audio-Frameworks/bin/taglib/headers/asf/asftag.h new file mode 100644 index 0000000..6b2d2bf --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/asf/asftag.h @@ -0,0 +1,186 @@ +/************************************************************************** + copyright : (C) 2005-2007 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ASFTAG_H +#define TAGLIB_ASFTAG_H + +#include "tag.h" +#include "tlist.h" +#include "tmap.h" +#include "taglib_export.h" +#include "asfattribute.h" + +namespace TagLib { + + namespace ASF { + + typedef List AttributeList; + typedef Map AttributeListMap; + + class TAGLIB_EXPORT Tag : public TagLib::Tag { + + friend class File; + + public: + + Tag(); + + virtual ~Tag(); + + /*! + * Returns the track name. + */ + virtual String title() const; + + /*! + * Returns the artist name. + */ + virtual String artist() const; + + /*! + * Returns the album name; if no album name is present in the tag + * String::null will be returned. + */ + virtual String album() const; + + /*! + * Returns the track comment. + */ + virtual String comment() const; + + /*! + * Returns the genre name; if no genre is present in the tag String::null + * will be returned. + */ + virtual String genre() const; + + /*! + * Returns the rating. + */ + virtual String rating() const; + + /*! + * Returns the genre name; if no genre is present in the tag String::null + * will be returned. + */ + virtual String copyright() const; + + /*! + * Returns the year; if there is no year set, this will return 0. + */ + virtual uint year() const; + + /*! + * Returns the track number; if there is no track number set, this will + * return 0. + */ + virtual uint track() const; + + /*! + * Sets the title to \a s. + */ + virtual void setTitle(const String &s); + + /*! + * Sets the artist to \a s. + */ + virtual void setArtist(const String &s); + + /*! + * Sets the album to \a s. If \a s is String::null then this value will be + * cleared. + */ + virtual void setAlbum(const String &s); + + /*! + * Sets the comment to \a s. + */ + virtual void setComment(const String &s); + + /*! + * Sets the rating to \a s. + */ + virtual void setRating(const String &s); + + /*! + * Sets the copyright to \a s. + */ + virtual void setCopyright(const String &s); + + /*! + * Sets the genre to \a s. + */ + virtual void setGenre(const String &s); + + /*! + * Sets the year to \a i. If \a s is 0 then this value will be cleared. + */ + virtual void setYear(uint i); + + /*! + * Sets the track to \a i. If \a s is 0 then this value will be cleared. + */ + virtual void setTrack(uint i); + + /*! + * Returns true if the tag does not contain any data. This should be + * reimplemented in subclasses that provide more than the basic tagging + * abilities in this class. + */ + virtual bool isEmpty() const; + + /*! + * Returns a reference to the item list map. This is an AttributeListMap of + * all of the items in the tag. + * + * This is the most powerfull structure for accessing the items of the tag. + */ + AttributeListMap &attributeListMap(); + + /*! + * Removes the \a key attribute from the tag + */ + void removeItem(const String &name); + + /*! + * Sets the \a key attribute to the value of \a attribute. If an attribute + * with the \a key is already present, it will be replaced. + */ + void setAttribute(const String &name, const Attribute &attribute); + + /*! + * Sets the \a key attribute to the value of \a attribute. If an attribute + * with the \a key is already present, it will be added to the list. + */ + void addAttribute(const String &name, const Attribute &attribute); + + private: + + class TagPrivate; + TagPrivate *d; + }; + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/audioproperties.h b/Audio-Frameworks/bin/taglib/headers/audioproperties.h new file mode 100644 index 0000000..e9844fa --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/audioproperties.h @@ -0,0 +1,110 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_AUDIOPROPERTIES_H +#define TAGLIB_AUDIOPROPERTIES_H + +#include "taglib_export.h" + +namespace TagLib { + + //! A simple, abstract interface to common audio properties + + /*! + * The values here are common to most audio formats. For more specific, codec + * dependant values, please see see the subclasses APIs. This is meant to + * compliment the TagLib::File and TagLib::Tag APIs in providing a simple + * interface that is sufficient for most applications. + */ + + class TAGLIB_EXPORT AudioProperties + { + public: + + /*! + * Reading audio properties from a file can sometimes be very time consuming + * and for the most accurate results can often involve reading the entire + * file. Because in many situations speed is critical or the accuracy of the + * values is not particularly important this allows the level of desired + * accuracy to be set. + */ + enum ReadStyle { + //! Read as little of the file as possible + Fast, + //! Read more of the file and make better values guesses + Average, + //! Read as much of the file as needed to report accurate values + Accurate + }; + + /*! + * Destroys this AudioProperties instance. + */ + virtual ~AudioProperties(); + + /*! + * Returns the length of the file in seconds. + */ + virtual int length() const = 0; + + /*! + * Returns the most appropriate bit rate for the file in kb/s. For constant + * bitrate formats this is simply the bitrate of the file. For variable + * bitrate formats this is either the average or nominal bitrate. + */ + virtual int bitrate() const = 0; + + /*! + * Returns the sample rate in Hz. + */ + virtual int sampleRate() const = 0; + + /*! + * Returns the number of audio channels. + */ + virtual int channels() const = 0; + + protected: + + /*! + * Construct an audio properties instance. This is protected as this class + * should not be instantiated directly, but should be instantiated via its + * subclasses and can be fetched from the FileRef or File APIs. + * + * \see ReadStyle + */ + AudioProperties(ReadStyle style); + + private: + AudioProperties(const AudioProperties &); + AudioProperties &operator=(const AudioProperties &); + + class AudioPropertiesPrivate; + AudioPropertiesPrivate *d; + }; + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/fileref.h b/Audio-Frameworks/bin/taglib/headers/fileref.h new file mode 100644 index 0000000..0f0c21a --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/fileref.h @@ -0,0 +1,263 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_FILEREF_H +#define TAGLIB_FILEREF_H + +#include "tfile.h" +#include "tstringlist.h" + +#include "taglib_export.h" +#include "audioproperties.h" + +namespace TagLib { + + class Tag; + + //! This class provides a simple abstraction for creating and handling files + + /*! + * FileRef exists to provide a minimal, generic and value-based wrapper around + * a File. It is lightweight and implicitly shared, and as such suitable for + * pass-by-value use. This hides some of the uglier details of TagLib::File + * and the non-generic portions of the concrete file implementations. + * + * This class is useful in a "simple usage" situation where it is desirable + * to be able to get and set some of the tag information that is similar + * across file types. + * + * Also note that it is probably a good idea to plug this into your mime + * type system rather than using the constructor that accepts a file name using + * the FileTypeResolver. + * + * \see FileTypeResolver + * \see addFileTypeResolver() + */ + + class TAGLIB_EXPORT FileRef + { + public: + + //! A class for pluggable file type resolution. + + /*! + * This class is used to add extend TagLib's very basic file name based file + * type resolution. + * + * This can be accomplished with: + * + * \code + * + * class MyFileTypeResolver : FileTypeResolver + * { + * TagLib::File *createFile(TagLib::FileName *fileName, bool, AudioProperties::ReadStyle) + * { + * if(someCheckForAnMP3File(fileName)) + * return new TagLib::MPEG::File(fileName); + * return 0; + * } + * } + * + * FileRef::addFileTypeResolver(new MyFileTypeResolver); + * + * \endcode + * + * Naturally a less contrived example would be slightly more complex. This + * can be used to plug in mime-type detection systems or to add new file types + * to TagLib. + */ + + class TAGLIB_EXPORT FileTypeResolver + { + TAGLIB_IGNORE_MISSING_DESTRUCTOR + public: + /*! + * This method must be overridden to provide an additional file type + * resolver. If the resolver is able to determine the file type it should + * return a valid File object; if not it should return 0. + * + * \note The created file is then owned by the FileRef and should not be + * deleted. Deletion will happen automatically when the FileRef passes + * out of scope. + */ + virtual File *createFile(FileName fileName, + bool readAudioProperties = true, + AudioProperties::ReadStyle + audioPropertiesStyle = AudioProperties::Average) const = 0; + }; + + /*! + * Creates a null FileRef. + */ + FileRef(); + + /*! + * Create a FileRef from \a fileName. If \a readAudioProperties is true then + * the audio properties will be read using \a audioPropertiesStyle. If + * \a readAudioProperties is false then \a audioPropertiesStyle will be + * ignored. + * + * Also see the note in the class documentation about why you may not want to + * use this method in your application. + */ + explicit FileRef(FileName fileName, + bool readAudioProperties = true, + AudioProperties::ReadStyle + audioPropertiesStyle = AudioProperties::Average); + + /*! + * Contruct a FileRef using \a file. The FileRef now takes ownership of the + * pointer and will delete the File when it passes out of scope. + */ + explicit FileRef(File *file); + + /*! + * Make a copy of \a ref. + */ + FileRef(const FileRef &ref); + + /*! + * Destroys this FileRef instance. + */ + virtual ~FileRef(); + + /*! + * Returns a pointer to represented file's tag. + * + * \warning This pointer will become invalid when this FileRef and all + * copies pass out of scope. + * + * \warning Do not cast it to any subclasses of \class Tag. + * Use tag returning methods of appropriate subclasses of \class File instead. + * + * \see File::tag() + */ + Tag *tag() const; + + /*! + * Returns the audio properties for this FileRef. If no audio properties + * were read then this will returns a null pointer. + */ + AudioProperties *audioProperties() const; + + /*! + * Returns a pointer to the file represented by this handler class. + * + * As a general rule this call should be avoided since if you need to work + * with file objects directly, you are probably better served instantiating + * the File subclasses (i.e. MPEG::File) manually and working with their APIs. + * + * This handle exists to provide a minimal, generic and value-based + * wrapper around a File. Accessing the file directly generally indicates + * a moving away from this simplicity (and into things beyond the scope of + * FileRef). + * + * \warning This pointer will become invalid when this FileRef and all + * copies pass out of scope. + */ + File *file() const; + + /*! + * Saves the file. Returns true on success. + */ + bool save(); + + /*! + * Adds a FileTypeResolver to the list of those used by TagLib. Each + * additional FileTypeResolver is added to the front of a list of resolvers + * that are tried. If the FileTypeResolver returns zero the next resolver + * is tried. + * + * Returns a pointer to the added resolver (the same one that's passed in -- + * this is mostly so that static inialializers have something to use for + * assignment). + * + * \see FileTypeResolver + */ + static const FileTypeResolver *addFileTypeResolver(const FileTypeResolver *resolver); + + /*! + * As is mentioned elsewhere in this class's documentation, the default file + * type resolution code provided by TagLib only works by comparing file + * extensions. + * + * This method returns the list of file extensions that are used by default. + * + * The extensions are all returned in lowercase, though the comparison used + * by TagLib for resolution is case-insensitive. + * + * \note This does not account for any additional file type resolvers that + * are plugged in. Also note that this is not intended to replace a propper + * mime-type resolution system, but is just here for reference. + * + * \see FileTypeResolver + */ + static StringList defaultFileExtensions(); + + /*! + * Returns true if the file (and as such other pointers) are null. + */ + bool isNull() const; + + /*! + * Assign the file pointed to by \a ref to this FileRef. + */ + FileRef &operator=(const FileRef &ref); + + /*! + * Returns true if this FileRef and \a ref point to the same File object. + */ + bool operator==(const FileRef &ref) const; + + /*! + * Returns true if this FileRef and \a ref do not point to the same File + * object. + */ + bool operator!=(const FileRef &ref) const; + + /*! + * A simple implementation of file type guessing. If \a readAudioProperties + * is true then the audio properties will be read using + * \a audioPropertiesStyle. If \a readAudioProperties is false then + * \a audioPropertiesStyle will be ignored. + * + * \note You generally shouldn't use this method, but instead the constructor + * directly. + * + * \deprecated + */ + static File *create(FileName fileName, + bool readAudioProperties = true, + AudioProperties::ReadStyle audioPropertiesStyle = AudioProperties::Average); + + + private: + class FileRefPrivate; + FileRefPrivate *d; + }; + +} // namespace TagLib + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/flac/flacfile.h b/Audio-Frameworks/bin/taglib/headers/flac/flacfile.h new file mode 100644 index 0000000..31dfebd --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/flac/flacfile.h @@ -0,0 +1,258 @@ +/*************************************************************************** + copyright : (C) 2003 by Allan Sandfeld Jensen + email : kde@carewolf.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_FLACFILE_H +#define TAGLIB_FLACFILE_H + +#include "taglib_export.h" +#include "tfile.h" +#include "tlist.h" +#include "tag.h" + +#include "flacpicture.h" +#include "flacproperties.h" + +namespace TagLib { + + class Tag; + namespace ID3v2 { class FrameFactory; class Tag; } + namespace ID3v1 { class Tag; } + namespace Ogg { class XiphComment; } + + //! An implementation of FLAC metadata + + /*! + * This is implementation of FLAC metadata for non-Ogg FLAC files. At some + * point when Ogg / FLAC is more common there will be a similar implementation + * under the Ogg hiearchy. + * + * This supports ID3v1, ID3v2 and Xiph style comments as well as reading stream + * properties from the file. + */ + + namespace FLAC { + + //! An implementation of TagLib::File with FLAC specific methods + + /*! + * This implements and provides an interface for FLAC files to the + * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing + * the abstract TagLib::File API as well as providing some additional + * information specific to FLAC files. + */ + + class TAGLIB_EXPORT File : public TagLib::File + { + public: + /*! + * Contructs a FLAC file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + * + * \deprecated This constructor will be dropped in favor of the one below + * in a future version. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs a FLAC file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + * + * If this file contains and ID3v2 tag the frames will be created using + * \a frameFactory. + */ + // BIC: merge with the above constructor + File(FileName file, ID3v2::FrameFactory *frameFactory, + bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs a FLAC file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + * + * If this file contains and ID3v2 tag the frames will be created using + * \a frameFactory. + */ + // BIC: merge with the above constructor + File(IOStream *stream, ID3v2::FrameFactory *frameFactory, + bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns the Tag for this file. This will be a union of XiphComment, + * ID3v1 and ID3v2 tags. + * + * \see ID3v2Tag() + * \see ID3v1Tag() + * \see XiphComment() + */ + virtual TagLib::Tag *tag() const; + + /*! + * Implements the unified property interface -- export function. + * If the file contains more than one tag (e.g. XiphComment and ID3v1), + * only the first one (in the order XiphComment, ID3v2, ID3v1) will be + * converted to the PropertyMap. + */ + PropertyMap properties() const; + + void removeUnsupportedProperties(const StringList &); + + /*! + * Implements the unified property interface -- import function. + * As with the export, only one tag is taken into account. If the file + * has no tag at all, a XiphComment will be created. + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Returns the FLAC::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + /*! + * Save the file. This will primarily save the XiphComment, but + * will also keep any old ID3-tags up to date. If the file + * has no XiphComment, one will be constructed from the ID3-tags. + * + * This returns true if the save was successful. + */ + virtual bool save(); + + /*! + * Returns a pointer to the ID3v2 tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid ID3v2 tag. If \a create is true it will create + * an ID3v2 tag if one does not exist. + * + * \note The Tag is still owned by the FLAC::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + ID3v2::Tag *ID3v2Tag(bool create = false); + + /*! + * Returns a pointer to the ID3v1 tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid ID3v1 tag. If \a create is true it will create + * an ID3v1 tag if one does not exist. + * + * \note The Tag is still owned by the FLAC::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + ID3v1::Tag *ID3v1Tag(bool create = false); + + /*! + * Returns a pointer to the XiphComment for the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid XiphComment. If \a create is true it will create + * a XiphComment if one does not exist. + * + * \note The Tag is still owned by the FLAC::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + Ogg::XiphComment *xiphComment(bool create = false); + + /*! + * Set the ID3v2::FrameFactory to something other than the default. This + * can be used to specify the way that ID3v2 frames will be interpreted + * when + * + * \see ID3v2FrameFactory + */ + void setID3v2FrameFactory(const ID3v2::FrameFactory *factory); + + /*! + * Returns the block of data used by FLAC::Properties for parsing the + * stream properties. + * + * \deprecated This method will not be public in a future release. + */ + ByteVector streamInfoData(); // BIC: remove + + /*! + * Returns the length of the audio-stream, used by FLAC::Properties for + * calculating the bitrate. + * + * \deprecated This method will not be public in a future release. + */ + long streamLength(); // BIC: remove + + /*! + * Returns a list of pictures attached to the FLAC file. + */ + List pictureList(); + + /*! + * Removes an attached picture. If \a del is true the picture's memory + * will be freed; if it is false, it must be deleted by the user. + */ + void removePicture(Picture *picture, bool del = true); + + /*! + * Remove all attached images. + */ + void removePictures(); + + /*! + * Add a new picture to the file. The file takes ownership of the + * picture and will handle freeing its memory. + * + * \note The file will be saved only after calling save(). + */ + void addPicture(Picture *picture); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + void scan(); + long findID3v2(); + long findID3v1(); + ByteVector xiphCommentData() const; + long findPaddingBreak(long nextPageOffset, long targetOffset, bool *isLast); + + class FilePrivate; + FilePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/flac/flacmetadatablock.h b/Audio-Frameworks/bin/taglib/headers/flac/flacmetadatablock.h new file mode 100644 index 0000000..41bca31 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/flac/flacmetadatablock.h @@ -0,0 +1,75 @@ +/************************************************************************** + copyright : (C) 2010 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_FLACMETADATABLOCK_H +#define TAGLIB_FLACMETADATABLOCK_H + +#include "tlist.h" +#include "tbytevector.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace FLAC { + + class TAGLIB_EXPORT MetadataBlock + { + public: + MetadataBlock(); + virtual ~MetadataBlock(); + + enum BlockType { + StreamInfo = 0, + Padding, + Application, + SeekTable, + VorbisComment, + CueSheet, + Picture + }; + + /*! + * Returns the FLAC metadata block type. + */ + virtual int code() const = 0; + + /*! + * Render the content of the block. + */ + virtual ByteVector render() const = 0; + + private: + MetadataBlock(const MetadataBlock &item); + MetadataBlock &operator=(const MetadataBlock &item); + + class MetadataBlockPrivate; + MetadataBlockPrivate *d; + }; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/flac/flacpicture.h b/Audio-Frameworks/bin/taglib/headers/flac/flacpicture.h new file mode 100644 index 0000000..b6def57 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/flac/flacpicture.h @@ -0,0 +1,208 @@ +/************************************************************************** + copyright : (C) 2010 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_FLACPICTURE_H +#define TAGLIB_FLACPICTURE_H + +#include "tlist.h" +#include "tstring.h" +#include "tbytevector.h" +#include "taglib_export.h" +#include "flacmetadatablock.h" + +namespace TagLib { + + namespace FLAC { + + class TAGLIB_EXPORT Picture : public MetadataBlock + { + public: + + /*! + * This describes the function or content of the picture. + */ + enum Type { + //! A type not enumerated below + Other = 0x00, + //! 32x32 PNG image that should be used as the file icon + FileIcon = 0x01, + //! File icon of a different size or format + OtherFileIcon = 0x02, + //! Front cover image of the album + FrontCover = 0x03, + //! Back cover image of the album + BackCover = 0x04, + //! Inside leaflet page of the album + LeafletPage = 0x05, + //! Image from the album itself + Media = 0x06, + //! Picture of the lead artist or soloist + LeadArtist = 0x07, + //! Picture of the artist or performer + Artist = 0x08, + //! Picture of the conductor + Conductor = 0x09, + //! Picture of the band or orchestra + Band = 0x0A, + //! Picture of the composer + Composer = 0x0B, + //! Picture of the lyricist or text writer + Lyricist = 0x0C, + //! Picture of the recording location or studio + RecordingLocation = 0x0D, + //! Picture of the artists during recording + DuringRecording = 0x0E, + //! Picture of the artists during performance + DuringPerformance = 0x0F, + //! Picture from a movie or video related to the track + MovieScreenCapture = 0x10, + //! Picture of a large, coloured fish + ColouredFish = 0x11, + //! Illustration related to the track + Illustration = 0x12, + //! Logo of the band or performer + BandLogo = 0x13, + //! Logo of the publisher (record company) + PublisherLogo = 0x14 + }; + + Picture(); + Picture(const ByteVector &data); + ~Picture(); + + /*! + * Returns the type of the image. + */ + Type type() const; + + /*! + * Sets the type of the image. + */ + void setType(Type type); + + /*! + * Returns the mime type of the image. This should in most cases be + * "image/png" or "image/jpeg". + */ + String mimeType() const; + + /*! + * Sets the mime type of the image. This should in most cases be + * "image/png" or "image/jpeg". + */ + void setMimeType(const String &m); + + /*! + * Returns a text description of the image. + */ + + String description() const; + + /*! + * Sets a textual description of the image to \a desc. + */ + + void setDescription(const String &desc); + + /*! + * Returns the width of the image. + */ + int width() const; + + /*! + * Sets the width of the image. + */ + void setWidth(int w); + + /*! + * Returns the height of the image. + */ + int height() const; + + /*! + * Sets the height of the image. + */ + void setHeight(int h); + + /*! + * Returns the color depth (in bits-per-pixel) of the image. + */ + int colorDepth() const; + + /*! + * Sets the color depth (in bits-per-pixel) of the image. + */ + void setColorDepth(int depth); + + /*! + * Returns the number of colors used on the image.. + */ + int numColors() const; + + /*! + * Sets the number of colors used on the image (for indexed images). + */ + void setNumColors(int numColors); + + /*! + * Returns the image data. + */ + ByteVector data() const; + + /*! + * Sets the image data. + */ + void setData(const ByteVector &data); + + /*! + * Returns the FLAC metadata block type. + */ + int code() const; + + /*! + * Render the content to the FLAC picture block format. + */ + ByteVector render() const; + + /*! + * Parse the picture data in the FLAC picture block format. + */ + bool parse(const ByteVector &rawData); + + private: + Picture(const Picture &item); + Picture &operator=(const Picture &item); + + class PicturePrivate; + PicturePrivate *d; + }; + + typedef List PictureList; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/flac/flacproperties.h b/Audio-Frameworks/bin/taglib/headers/flac/flacproperties.h new file mode 100644 index 0000000..c145898 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/flac/flacproperties.h @@ -0,0 +1,103 @@ +/*************************************************************************** + copyright : (C) 2003 by Allan Sandfeld Jensen + email : kde@carewolf.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_FLACPROPERTIES_H +#define TAGLIB_FLACPROPERTIES_H + +#include "taglib_export.h" +#include "audioproperties.h" + +namespace TagLib { + + namespace FLAC { + + class File; + + //! An implementation of audio property reading for FLAC + + /*! + * This reads the data from an FLAC stream found in the AudioProperties + * API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of FLAC::Properties with the data read from the + * ByteVector \a data. + */ + // BIC: switch to const reference + Properties(ByteVector data, long streamLength, ReadStyle style = Average); + + /*! + * Create an instance of FLAC::Properties with the data read from the + * FLAC::File \a file. + */ + // BIC: remove + Properties(File *file, ReadStyle style = Average); + + /*! + * Destroys this FLAC::Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + /*! + * Returns the sample width as read from the FLAC identification + * header. + */ + int sampleWidth() const; + + /*! + * Return the number of sample frames + */ + unsigned long long sampleFrames() const; + + /*! + * Returns the MD5 signature of the uncompressed audio stream as read + * from the stream info header header. + */ + ByteVector signature() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void read(); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/flac/flacunknownmetadatablock.h b/Audio-Frameworks/bin/taglib/headers/flac/flacunknownmetadatablock.h new file mode 100644 index 0000000..3030254 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/flac/flacunknownmetadatablock.h @@ -0,0 +1,81 @@ +/************************************************************************** + copyright : (C) 2010 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_FLACUNKNOWNMETADATABLOCK_H +#define TAGLIB_FLACUNKNOWNMETADATABLOCK_H + +#include "tlist.h" +#include "tbytevector.h" +#include "taglib_export.h" +#include "flacmetadatablock.h" + +namespace TagLib { + + namespace FLAC { + + class TAGLIB_EXPORT UnknownMetadataBlock : public MetadataBlock + { + public: + UnknownMetadataBlock(int blockType, const ByteVector &data); + ~UnknownMetadataBlock(); + + /*! + * Returns the FLAC metadata block type. + */ + int code() const; + + /*! + * Sets the FLAC metadata block type. + */ + void setCode(int code); + + /*! + * Returns the FLAC metadata block type. + */ + ByteVector data() const; + + /*! + * Sets the FLAC metadata block type. + */ + void setData(const ByteVector &data); + + /*! + * Render the content of the block. + */ + ByteVector render() const; + + private: + UnknownMetadataBlock(const MetadataBlock &item); + UnknownMetadataBlock &operator=(const MetadataBlock &item); + + class UnknownMetadataBlockPrivate; + UnknownMetadataBlockPrivate *d; + }; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/it/itfile.h b/Audio-Frameworks/bin/taglib/headers/it/itfile.h new file mode 100644 index 0000000..9c50774 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/it/itfile.h @@ -0,0 +1,102 @@ +/*************************************************************************** + copyright : (C) 2011 by Mathias Panzenböck + email : grosser.meister.morti@gmx.net + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * + * MA 02110-1301 USA * + ***************************************************************************/ + +#ifndef TAGLIB_ITFILE_H +#define TAGLIB_ITFILE_H + +#include "tfile.h" +#include "audioproperties.h" +#include "taglib_export.h" +#include "modfilebase.h" +#include "modtag.h" +#include "itproperties.h" + +namespace TagLib { + + namespace IT { + + class TAGLIB_EXPORT File : public Mod::FileBase { + public: + /*! + * Contructs a Impulse Tracker file from \a file. If \a readProperties + * is true the file's audio properties will also be read using + * \a propertiesStyle. If false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + AudioProperties::ReadStyle propertiesStyle = + AudioProperties::Average); + + /*! + * Contructs a Impulse Tracker file from \a stream. If \a readProperties + * is true the file's audio properties will also be read using + * \a propertiesStyle. If false, \a propertiesStyle is ignored. + */ + File(IOStream *stram, bool readProperties = true, + AudioProperties::ReadStyle propertiesStyle = + AudioProperties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + Mod::Tag *tag() const; + + /*! + * Forwards to Mod::Tag::properties(). + * BIC: will be removed once File::toDict() is made virtual + */ + PropertyMap properties() const; + + /*! + * Forwards to Mod::Tag::setProperties(). + * BIC: will be removed once File::setProperties() is made virtual + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Returns the IT::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + IT::Properties *audioProperties() const; + + /*! + * Save the file. + * This is the same as calling save(AllTags); + * + * \note Saving Impulse Tracker tags is not supported. + */ + bool save(); + + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties); + + class FilePrivate; + FilePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/it/itproperties.h b/Audio-Frameworks/bin/taglib/headers/it/itproperties.h new file mode 100644 index 0000000..da2a7c4 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/it/itproperties.h @@ -0,0 +1,101 @@ +/*************************************************************************** + copyright : (C) 2011 by Mathias Panzenböck + email : grosser.meister.morti@gmx.net + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * + * MA 02110-1301 USA * + ***************************************************************************/ + +#ifndef TAGLIB_ITPROPERTIES_H +#define TAGLIB_ITPROPERTIES_H + +#include "taglib.h" +#include "audioproperties.h" + +namespace TagLib { + namespace IT { + class TAGLIB_EXPORT Properties : public AudioProperties { + friend class File; + public: + /*! Flag bits. */ + enum { + Stereo = 1, + Vol0MixOptimizations = 2, + UseInstruments = 4, + LinearSlides = 8, + OldEffects = 16, + LinkEffects = 32, + UseMidiPitchController = 64, + RequestEmbeddedMidiConf = 128 + }; + + /*! Special bits. */ + enum { + MessageAttached = 1, + MidiConfEmbedded = 8 + }; + + Properties(AudioProperties::ReadStyle propertiesStyle); + virtual ~Properties(); + + int length() const; + int bitrate() const; + int sampleRate() const; + int channels() const; + + ushort lengthInPatterns() const; + bool stereo() const; + ushort instrumentCount() const; + ushort sampleCount() const; + ushort patternCount() const; + ushort version() const; + ushort compatibleVersion() const; + ushort flags() const; + ushort special() const; + uchar globalVolume() const; + uchar mixVolume() const; + uchar tempo() const; + uchar bpmSpeed() const; + uchar panningSeparation() const; + uchar pitchWheelDepth() const; + + void setChannels(int channels); + void setLengthInPatterns(ushort lengthInPatterns); + void setInstrumentCount(ushort instrumentCount); + void setSampleCount (ushort sampleCount); + void setPatternCount(ushort patternCount); + void setVersion (ushort version); + void setCompatibleVersion(ushort compatibleVersion); + void setFlags (ushort flags); + void setSpecial (ushort special); + void setGlobalVolume(uchar globalVolume); + void setMixVolume (uchar mixVolume); + void setTempo (uchar tempo); + void setBpmSpeed (uchar bpmSpeed); + void setPanningSeparation(uchar panningSeparation); + void setPitchWheelDepth (uchar pitchWheelDepth); + + private: + Properties(const Properties&); + Properties &operator=(const Properties&); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mod/modfile.h b/Audio-Frameworks/bin/taglib/headers/mod/modfile.h new file mode 100644 index 0000000..9e79659 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mod/modfile.h @@ -0,0 +1,103 @@ +/*************************************************************************** + copyright : (C) 2011 by Mathias Panzenböck + email : grosser.meister.morti@gmx.net + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * + * MA 02110-1301 USA * + ***************************************************************************/ + +#ifndef TAGLIB_MODFILE_H +#define TAGLIB_MODFILE_H + +#include "tfile.h" +#include "audioproperties.h" +#include "taglib_export.h" +#include "modfilebase.h" +#include "modtag.h" +#include "modproperties.h" + +namespace TagLib { + + namespace Mod { + + class TAGLIB_EXPORT File : public TagLib::Mod::FileBase + { + public: + /*! + * Contructs a Protracker file from \a file. If \a readProperties + * is true the file's audio properties will also be read using + * \a propertiesStyle. If false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + AudioProperties::ReadStyle propertiesStyle = + AudioProperties::Average); + + /*! + * Contructs a Protracker file from \a stream. If \a readProperties + * is true the file's audio properties will also be read using + * \a propertiesStyle. If false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + AudioProperties::ReadStyle propertiesStyle = + AudioProperties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + Mod::Tag *tag() const; + + /*! + * Implements the unified property interface -- export function. + * Forwards to Mod::Tag::properties(). + */ + PropertyMap properties() const; + + /*! + * Implements the unified property interface -- import function. + * Forwards to Mod::Tag::setProperties(). + */ + PropertyMap setProperties(const PropertyMap &); + /*! + * Returns the Mod::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + Mod::Properties *audioProperties() const; + + /*! + * Save the file. + * This is the same as calling save(AllTags); + * + * \note Saving Protracker tags is not supported. + */ + bool save(); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties); + + class FilePrivate; + FilePrivate *d; + }; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mod/modfilebase.h b/Audio-Frameworks/bin/taglib/headers/mod/modfilebase.h new file mode 100644 index 0000000..383bde1 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mod/modfilebase.h @@ -0,0 +1,62 @@ +/*************************************************************************** + copyright : (C) 2011 by Mathias Panzenböck + email : grosser.meister.morti@gmx.net + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * + * MA 02110-1301 USA * + ***************************************************************************/ + +#ifndef TAGLIB_MODFILEBASE_H +#define TAGLIB_MODFILEBASE_H + +#include "taglib.h" +#include "tfile.h" +#include "tstring.h" +#include "tlist.h" +#include "taglib_export.h" + +#include + +namespace TagLib { + + namespace Mod { + + class TAGLIB_EXPORT FileBase : public TagLib::File + { + protected: + FileBase(FileName file); + FileBase(IOStream *stream); + + void writeString(const String &s, ulong size, char padding = 0); + void writeByte(uchar byte); + void writeU16L(ushort number); + void writeU32L(ulong number); + void writeU16B(ushort number); + void writeU32B(ulong number); + + bool readString(String &s, ulong size); + bool readByte(uchar &byte); + bool readU16L(ushort &number); + bool readU32L(ulong &number); + bool readU16B(ushort &number); + bool readU32B(ulong &number); + }; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mod/modfileprivate.h b/Audio-Frameworks/bin/taglib/headers/mod/modfileprivate.h new file mode 100644 index 0000000..19a3001 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mod/modfileprivate.h @@ -0,0 +1,67 @@ +/*************************************************************************** + copyright : (C) 2011 by Mathias Panzenböck + email : grosser.meister.morti@gmx.net + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * + * MA 02110-1301 USA * + ***************************************************************************/ + +#ifndef TAGLIB_MODFILEPRIVATE_H +#define TAGLIB_MODFILEPRIVATE_H + +// some helper-macros only used internally by (s3m|it|xm)file.cpp +#define READ_ASSERT(cond) \ + if(!(cond)) \ + { \ + setValid(false); \ + return; \ + } + +#define READ(setter,type,read) \ + { \ + type number; \ + READ_ASSERT(read(number)); \ + setter(number); \ + } + +#define READ_BYTE(setter) READ(setter,uchar,readByte) +#define READ_U16L(setter) READ(setter,ushort,readU16L) +#define READ_U32L(setter) READ(setter,ulong,readU32L) +#define READ_U16B(setter) READ(setter,ushort,readU16B) +#define READ_U32B(setter) READ(setter,ulong,readU32B) + +#define READ_STRING(setter,size) \ + { \ + String s; \ + READ_ASSERT(readString(s, size)); \ + setter(s); \ + } + +#define READ_AS(type,name,read) \ + type name = 0; \ + READ_ASSERT(read(name)); + +#define READ_BYTE_AS(name) READ_AS(uchar,name,readByte) +#define READ_U16L_AS(name) READ_AS(ushort,name,readU16L) +#define READ_U32L_AS(name) READ_AS(ulong,name,readU32L) +#define READ_U16B_AS(name) READ_AS(ushort,name,readU16B) +#define READ_U32B_AS(name) READ_AS(ulong,name,readU32B) + +#define READ_STRING_AS(name,size) \ + String name; \ + READ_ASSERT(readString(name, size)); + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mod/modproperties.h b/Audio-Frameworks/bin/taglib/headers/mod/modproperties.h new file mode 100644 index 0000000..d50353a --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mod/modproperties.h @@ -0,0 +1,65 @@ +/*************************************************************************** + copyright : (C) 2011 by Mathias Panzenböck + email : grosser.meister.morti@gmx.net + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * + * MA 02110-1301 USA * + ***************************************************************************/ + +#ifndef TAGLIB_MODPROPERTIES_H +#define TAGLIB_MODPROPERTIES_H + +#include "taglib.h" +#include "audioproperties.h" + +namespace TagLib { + + namespace Mod { + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + Properties(AudioProperties::ReadStyle propertiesStyle); + virtual ~Properties(); + + int length() const; + int bitrate() const; + int sampleRate() const; + int channels() const; + + uint instrumentCount() const; + uchar lengthInPatterns() const; + + void setChannels(int channels); + + void setInstrumentCount(uint sampleCount); + void setLengthInPatterns(uchar lengthInPatterns); + + private: + friend class File; + + Properties(const Properties&); + Properties &operator=(const Properties&); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mod/modtag.h b/Audio-Frameworks/bin/taglib/headers/mod/modtag.h new file mode 100644 index 0000000..f33e33f --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mod/modtag.h @@ -0,0 +1,190 @@ +/*************************************************************************** + copyright : (C) 2011 by Mathias Panzenböck + email : grosser.meister.morti@gmx.net + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * + * MA 02110-1301 USA * + ***************************************************************************/ + +#ifndef TAGLIB_MODTAG_H +#define TAGLIB_MODTAG_H + +#include "tag.h" + +namespace TagLib { + + namespace Mod { + + /*! + * Tags for module files (Mod, S3M, IT, XM). + * + * Note that only the \a title is supported as such by most + * module file formats. Except for XM files the \a trackerName + * is derived from the file format or the flavour of the file + * format. For XM files it is stored in the file. + * + * The \a comment tag is not strictly supported by module files, + * but it is common practice to abuse instrument/sample/pattern + * names as multiline comments. TagLib does so as well. + */ + class TAGLIB_EXPORT Tag : public TagLib::Tag + { + public: + Tag(); + virtual ~Tag(); + + /*! + * Returns the track name; if no track name is present in the tag + * String::null will be returned. + */ + String title() const; + + /*! + * Not supported by module files. Therefore always returns String::null. + */ + String artist() const; + + /*! + * Not supported by module files. Therefore always returns String::null. + */ + String album() const; + + /*! + * Returns the track comment derived from the instrument/sample/pattern + * names; if no comment is present in the tag String::null will be + * returned. + */ + String comment() const; + + /*! + * Not supported by module files. Therefore always returns String::null. + */ + String genre() const; + + /*! + * Not supported by module files. Therefore always returns 0. + */ + uint year() const; + + /*! + * Not supported by module files. Therefore always returns 0. + */ + uint track() const; + + /*! + * Returns the name of the tracker used to create/edit the module file. + * Only XM files store this tag to the file as such, for other formats + * (Mod, S3M, IT) this is derived from the file type or the flavour of + * the file type. Therefore only XM files might have an empty + * (String::null) tracker name. + */ + String trackerName() const; + + /*! + * Sets the title to \a title. If \a title is String::null then this + * value will be cleared. + * + * The length limits per file type are (1 characetr = 1 byte): + * Mod 20 characters, S3M 27 characters, IT 25 characters and XM 20 + * characters. + */ + void setTitle(const String &title); + + /*! + * Not supported by module files and therefore ignored. + */ + void setArtist(const String &artist); + + /*! + * Not supported by module files and therefore ignored. + */ + void setAlbum(const String &album); + + /*! + * Sets the comment to \a comment. If \a comment is String::null then + * this value will be cleared. + * + * Note that module file formats don't actually support a comment tag. + * Instead the names of instruments/patterns/samples are abused as + * a multiline comment. Because of this the number of lines in a + * module file is fixed to the number of instruments/patterns/samples. + * + * Also note that the instrument/pattern/sample name length is limited + * an thus the line length in comments are limited. Too big comments + * will be truncated. + * + * The line length limits per file type are (1 characetr = 1 byte): + * Mod 22 characters, S3M 27 characters, IT 25 characters and XM 22 + * characters. + */ + void setComment(const String &comment); + + /*! + * Not supported by module files and therefore ignored. + */ + void setGenre(const String &genre); + + /*! + * Not supported by module files and therefore ignored. + */ + void setYear(uint year); + + /*! + * Not supported by module files and therefore ignored. + */ + void setTrack(uint track); + + /*! + * Sets the tracker name to \a trackerName. If \a trackerName is + * String::null then this value will be cleared. + * + * Note that only XM files support this tag. Setting the + * tracker name for other module file formats will be ignored. + * + * The length of this tag is limited to 20 characters (1 character + * = 1 byte). + */ + void setTrackerName(const String &trackerName); + + /*! + * Implements the unified property interface -- export function. + * Since the module tag is very limited, the exported map is as well. + */ + PropertyMap properties() const; + + /*! + * Implements the unified property interface -- import function. + * Because of the limitations of the module file tag, any tags besides + * COMMENT, TITLE and, if it is an XM file, TRACKERNAME, will be + * returened. Additionally, if the map contains tags with multiple values, + * all but the first will be contained in the returned map of unsupported + * properties. + */ + PropertyMap setProperties(const PropertyMap &); + + private: + Tag(const Tag &); + Tag &operator=(const Tag &); + + class TagPrivate; + TagPrivate *d; + }; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mp4/mp4atom.h b/Audio-Frameworks/bin/taglib/headers/mp4/mp4atom.h new file mode 100644 index 0000000..ea5091a --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mp4/mp4atom.h @@ -0,0 +1,111 @@ +/************************************************************************** + copyright : (C) 2007,2011 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +// This file is not part of the public API! + +#ifndef DO_NOT_DOCUMENT + +#ifndef TAGLIB_MP4ATOM_H +#define TAGLIB_MP4ATOM_H + +#include "tfile.h" +#include "tlist.h" + +namespace TagLib { + + namespace MP4 { + + class Atom; + typedef TagLib::List AtomList; + + enum AtomDataType + { + TypeImplicit = 0, // for use with tags for which no type needs to be indicated because only one type is allowed + TypeUTF8 = 1, // without any count or null terminator + TypeUTF16 = 2, // also known as UTF-16BE + TypeSJIS = 3, // deprecated unless it is needed for special Japanese characters + TypeHTML = 6, // the HTML file header specifies which HTML version + TypeXML = 7, // the XML header must identify the DTD or schemas + TypeUUID = 8, // also known as GUID; stored as 16 bytes in binary (valid as an ID) + TypeISRC = 9, // stored as UTF-8 text (valid as an ID) + TypeMI3P = 10, // stored as UTF-8 text (valid as an ID) + TypeGIF = 12, // (deprecated) a GIF image + TypeJPEG = 13, // a JPEG image + TypePNG = 14, // a PNG image + TypeURL = 15, // absolute, in UTF-8 characters + TypeDuration = 16, // in milliseconds, 32-bit integer + TypeDateTime = 17, // in UTC, counting seconds since midnight, January 1, 1904; 32 or 64-bits + TypeGenred = 18, // a list of enumerated values + TypeInteger = 21, // a signed big-endian integer with length one of { 1,2,3,4,8 } bytes + TypeRIAAPA = 24, // RIAA parental advisory; { -1=no, 1=yes, 0=unspecified }, 8-bit ingteger + TypeUPC = 25, // Universal Product Code, in text UTF-8 format (valid as an ID) + TypeBMP = 27, // Windows bitmap image + TypeUndefined = 255 // undefined + }; + + struct AtomData { + AtomData(AtomDataType type, ByteVector data) : type(type), locale(0), data(data) {} + AtomDataType type; + int locale; + ByteVector data; + }; + + typedef TagLib::List AtomDataList; + + class Atom + { + public: + Atom(File *file); + ~Atom(); + Atom *find(const char *name1, const char *name2 = 0, const char *name3 = 0, const char *name4 = 0); + bool path(AtomList &path, const char *name1, const char *name2 = 0, const char *name3 = 0); + AtomList findall(const char *name, bool recursive = false); + long offset; + long length; + TagLib::ByteVector name; + AtomList children; + private: + static const int numContainers = 11; + static const char *containers[11]; + }; + + //! Root-level atoms + class Atoms + { + public: + Atoms(File *file); + ~Atoms(); + Atom *find(const char *name1, const char *name2 = 0, const char *name3 = 0, const char *name4 = 0); + AtomList path(const char *name1, const char *name2 = 0, const char *name3 = 0, const char *name4 = 0); + AtomList atoms; + }; + + } + +} + +#endif + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mp4/mp4coverart.h b/Audio-Frameworks/bin/taglib/headers/mp4/mp4coverart.h new file mode 100644 index 0000000..804ab78 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mp4/mp4coverart.h @@ -0,0 +1,74 @@ +/************************************************************************** + copyright : (C) 2009 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MP4COVERART_H +#define TAGLIB_MP4COVERART_H + +#include "tlist.h" +#include "tbytevector.h" +#include "taglib_export.h" +#include "mp4atom.h" + +namespace TagLib { + + namespace MP4 { + + class TAGLIB_EXPORT CoverArt + { + public: + /*! + * This describes the image type. + */ + enum Format { + JPEG = TypeJPEG, + PNG = TypePNG, + BMP = TypeBMP, + GIF = TypeGIF + }; + + CoverArt(Format format, const ByteVector &data); + ~CoverArt(); + + CoverArt(const CoverArt &item); + CoverArt &operator=(const CoverArt &item); + + //! Format of the image + Format format() const; + + //! The image data + ByteVector data() const; + + private: + class CoverArtPrivate; + CoverArtPrivate *d; + }; + + typedef List CoverArtList; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mp4/mp4file.h b/Audio-Frameworks/bin/taglib/headers/mp4/mp4file.h new file mode 100644 index 0000000..c3613f7 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mp4/mp4file.h @@ -0,0 +1,113 @@ +/************************************************************************** + copyright : (C) 2007 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MP4FILE_H +#define TAGLIB_MP4FILE_H + +#include "tag.h" +#include "tfile.h" +#include "taglib_export.h" +#include "mp4properties.h" +#include "mp4tag.h" + +namespace TagLib { + + //! An implementation of MP4 (AAC, ALAC, ...) metadata + namespace MP4 { + + class Atoms; + + /*! + * This implements and provides an interface for MP4 files to the + * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing + * the abstract TagLib::File API as well as providing some additional + * information specific to MP4 files. + */ + class TAGLIB_EXPORT File : public TagLib::File + { + public: + /*! + * Contructs a MP4 file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + * + * \note In the current implementation, both \a readProperties and + * \a propertiesStyle are ignored. + */ + File(FileName file, bool readProperties = true, Properties::ReadStyle audioPropertiesStyle = Properties::Average); + + /*! + * Contructs a MP4 file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + * + * \note In the current implementation, both \a readProperties and + * \a propertiesStyle are ignored. + */ + File(IOStream *stream, bool readProperties = true, Properties::ReadStyle audioPropertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns a pointer to the MP4 tag of the file. + * + * MP4::Tag implements the tag interface, so this serves as the + * reimplementation of TagLib::File::tag(). + * + * \note The Tag is still owned by the MP4::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + Tag *tag() const; + + /*! + * Returns the MP4 audio properties for this file. + */ + Properties *audioProperties() const; + + /*! + * Save the file. + * + * This returns true if the save was successful. + */ + bool save(); + + private: + + void read(bool readProperties, Properties::ReadStyle audioPropertiesStyle); + bool checkValid(const MP4::AtomList &list); + + class FilePrivate; + FilePrivate *d; + }; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mp4/mp4item.h b/Audio-Frameworks/bin/taglib/headers/mp4/mp4item.h new file mode 100644 index 0000000..be7aa1a --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mp4/mp4item.h @@ -0,0 +1,83 @@ +/************************************************************************** + copyright : (C) 2007 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MP4ITEM_H +#define TAGLIB_MP4ITEM_H + +#include "tstringlist.h" +#include "mp4coverart.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace MP4 { + + class TAGLIB_EXPORT Item + { + public: + struct IntPair { + int first, second; + }; + + Item(); + Item(const Item &item); + Item &operator=(const Item &item); + ~Item(); + + Item(int value); + Item(uchar value); + Item(uint value); + Item(long long value); + Item(bool value); + Item(int first, int second); + Item(const StringList &value); + Item(const ByteVectorList &value); + Item(const CoverArtList &value); + + void setAtomDataType(AtomDataType type); + AtomDataType atomDataType() const; + + int toInt() const; + uchar toByte() const; + uint toUInt() const; + long long toLongLong() const; + bool toBool() const; + IntPair toIntPair() const; + StringList toStringList() const; + ByteVectorList toByteVectorList() const; + CoverArtList toCoverArtList() const; + + bool isValid() const; + + private: + class ItemPrivate; + ItemPrivate *d; + }; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mp4/mp4properties.h b/Audio-Frameworks/bin/taglib/headers/mp4/mp4properties.h new file mode 100644 index 0000000..7906824 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mp4/mp4properties.h @@ -0,0 +1,62 @@ +/************************************************************************** + copyright : (C) 2007 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MP4PROPERTIES_H +#define TAGLIB_MP4PROPERTIES_H + +#include "taglib_export.h" +#include "audioproperties.h" + +namespace TagLib { + + namespace MP4 { + + class Atoms; + class File; + + //! An implementation of MP4 audio properties + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + Properties(File *file, Atoms *atoms, ReadStyle style = Average); + virtual ~Properties(); + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + virtual int bitsPerSample() const; + bool isEncrypted() const; + + private: + class PropertiesPrivate; + PropertiesPrivate *d; + }; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mp4/mp4tag.h b/Audio-Frameworks/bin/taglib/headers/mp4/mp4tag.h new file mode 100644 index 0000000..b5ea6eb --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mp4/mp4tag.h @@ -0,0 +1,112 @@ +/************************************************************************** + copyright : (C) 2007,2011 by Lukáš Lalinský + email : lalinsky@gmail.com + **************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MP4TAG_H +#define TAGLIB_MP4TAG_H + +#include "tag.h" +#include "tbytevectorlist.h" +#include "tfile.h" +#include "tmap.h" +#include "tstringlist.h" +#include "taglib_export.h" +#include "mp4atom.h" +#include "mp4item.h" + +namespace TagLib { + + namespace MP4 { + + typedef TagLib::Map ItemListMap; + + class TAGLIB_EXPORT Tag: public TagLib::Tag + { + public: + Tag(); + Tag(TagLib::File *file, Atoms *atoms); + ~Tag(); + bool save(); + + String title() const; + String artist() const; + String album() const; + String comment() const; + String genre() const; + uint year() const; + uint track() const; + + void setTitle(const String &value); + void setArtist(const String &value); + void setAlbum(const String &value); + void setComment(const String &value); + void setGenre(const String &value); + void setYear(uint value); + void setTrack(uint value); + + ItemListMap &itemListMap(); + + private: + AtomDataList parseData2(Atom *atom, TagLib::File *file, int expectedFlags = -1, bool freeForm = false); + TagLib::ByteVectorList parseData(Atom *atom, TagLib::File *file, int expectedFlags = -1, bool freeForm = false); + void parseText(Atom *atom, TagLib::File *file, int expectedFlags = 1); + void parseFreeForm(Atom *atom, TagLib::File *file); + void parseInt(Atom *atom, TagLib::File *file); + void parseByte(Atom *atom, TagLib::File *file); + void parseUInt(Atom *atom, TagLib::File *file); + void parseLongLong(Atom *atom, TagLib::File *file); + void parseGnre(Atom *atom, TagLib::File *file); + void parseIntPair(Atom *atom, TagLib::File *file); + void parseBool(Atom *atom, TagLib::File *file); + void parseCovr(Atom *atom, TagLib::File *file); + + TagLib::ByteVector padIlst(const ByteVector &data, int length = -1); + TagLib::ByteVector renderAtom(const ByteVector &name, const TagLib::ByteVector &data); + TagLib::ByteVector renderData(const ByteVector &name, int flags, const TagLib::ByteVectorList &data); + TagLib::ByteVector renderText(const ByteVector &name, Item &item, int flags = TypeUTF8); + TagLib::ByteVector renderFreeForm(const String &name, Item &item); + TagLib::ByteVector renderBool(const ByteVector &name, Item &item); + TagLib::ByteVector renderInt(const ByteVector &name, Item &item); + TagLib::ByteVector renderByte(const ByteVector &name, Item &item); + TagLib::ByteVector renderUInt(const ByteVector &name, Item &item); + TagLib::ByteVector renderLongLong(const ByteVector &name, Item &item); + TagLib::ByteVector renderIntPair(const ByteVector &name, Item &item); + TagLib::ByteVector renderIntPairNoTrailing(const ByteVector &name, Item &item); + TagLib::ByteVector renderCovr(const ByteVector &name, Item &item); + + void updateParents(AtomList &path, long delta, int ignore = 0); + void updateOffsets(long delta, long offset); + + void saveNew(TagLib::ByteVector &data); + void saveExisting(TagLib::ByteVector &data, AtomList &path); + + class TagPrivate; + TagPrivate *d; + }; + + } + +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpc/mpcfile.h b/Audio-Frameworks/bin/taglib/headers/mpc/mpcfile.h new file mode 100644 index 0000000..61ac6d6 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpc/mpcfile.h @@ -0,0 +1,201 @@ +/*************************************************************************** + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MPCFILE_H +#define TAGLIB_MPCFILE_H + +#include "taglib_export.h" +#include "tfile.h" +#include "tag.h" + +#include "mpcproperties.h" + +#include "tlist.h" + +namespace TagLib { + + class Tag; + + namespace ID3v1 { class Tag; } + namespace APE { class Tag; } + + //! An implementation of MPC metadata + + /*! + * This is implementation of MPC metadata. + * + * This supports ID3v1 and APE (v1 and v2) style comments as well as reading stream + * properties from the file. ID3v2 tags are invalid in MPC-files, but will be skipped + * and ignored. + */ + + namespace MPC { + + //! An implementation of TagLib::File with MPC specific methods + + /*! + * This implements and provides an interface for MPC files to the + * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing + * the abstract TagLib::File API as well as providing some additional + * information specific to MPC files. + * The only invalid tag combination supported is an ID3v1 tag after an APE tag. + */ + + class TAGLIB_EXPORT File : public TagLib::File + { + public: + /*! + * This set of flags is used for various operations and is suitable for + * being OR-ed together. + */ + enum TagTypes { + //! Empty set. Matches no tag types. + NoTags = 0x0000, + //! Matches ID3v1 tags. + ID3v1 = 0x0001, + //! Matches ID3v2 tags. + ID3v2 = 0x0002, + //! Matches APE tags. + APE = 0x0004, + //! Matches all tag types. + AllTags = 0xffff + }; + + /*! + * Contructs an MPC file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(FileName file, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Contructs an MPC file from \a file. If \a readProperties is true the + * file's audio properties will also be read using \a propertiesStyle. If + * false, \a propertiesStyle is ignored. + */ + File(IOStream *stream, bool readProperties = true, + Properties::ReadStyle propertiesStyle = Properties::Average); + + /*! + * Destroys this instance of the File. + */ + virtual ~File(); + + /*! + * Returns the Tag for this file. This will be an APE tag, an ID3v1 tag + * or a combination of the two. + */ + virtual TagLib::Tag *tag() const; + + /*! + * Implements the unified property interface -- export function. + * If the file contains both an APE and an ID3v1 tag, only the APE + * tag will be converted to the PropertyMap. + */ + PropertyMap properties() const; + + void removeUnsupportedProperties(const StringList &properties); + + /*! + * Implements the unified property interface -- import function. + * As with the export, only one tag is taken into account. If the file + * has no tag at all, an APE tag will be created. + */ + PropertyMap setProperties(const PropertyMap &); + + /*! + * Returns the MPC::Properties for this file. If no audio properties + * were read then this will return a null pointer. + */ + virtual Properties *audioProperties() const; + + /*! + * Saves the file. + */ + virtual bool save(); + + /*! + * Returns a pointer to the ID3v1 tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid ID3v1 tag. If \a create is true it will create + * an ID3v1 tag if one does not exist. If there is already an APE tag, the + * new ID3v1 tag will be placed after it. + * + * \note The Tag is still owned by the APE::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + ID3v1::Tag *ID3v1Tag(bool create = false); + + /*! + * Returns a pointer to the APE tag of the file. + * + * If \a create is false (the default) this will return a null pointer + * if there is no valid APE tag. If \a create is true it will create + * a APE tag if one does not exist. If there is already an ID3v1 tag, thes + * new APE tag will be placed before it. + * + * \note The Tag is still owned by the APE::File and should not be + * deleted by the user. It will be deleted when the file (object) is + * destroyed. + */ + APE::Tag *APETag(bool create = false); + + /*! + * This will remove the tags that match the OR-ed together TagTypes from the + * file. By default it removes all tags. + * + * \warning This will also invalidate pointers to the tags + * as their memory will be freed. + * + * \note In order to make the removal permanent save() still needs to be called. + */ + void strip(int tags = AllTags); + + /*! + * \deprecated + * \see strip + */ + void remove(int tags = AllTags); + + private: + File(const File &); + File &operator=(const File &); + + void read(bool readProperties, Properties::ReadStyle propertiesStyle); + void scan(); + long findAPE(); + long findID3v1(); + long findID3v2(); + + class FilePrivate; + FilePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpc/mpcproperties.h b/Audio-Frameworks/bin/taglib/headers/mpc/mpcproperties.h new file mode 100644 index 0000000..adf40d8 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpc/mpcproperties.h @@ -0,0 +1,122 @@ +/*************************************************************************** + copyright : (C) 2004 by Allan Sandfeld Jensen + email : kde@carewolf.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_MPCPROPERTIES_H +#define TAGLIB_MPCPROPERTIES_H + +#include "taglib_export.h" +#include "audioproperties.h" + +namespace TagLib { + + namespace MPC { + + class File; + + static const uint HeaderSize = 8*7; + + //! An implementation of audio property reading for MPC + + /*! + * This reads the data from an MPC stream found in the AudioProperties + * API. + */ + + class TAGLIB_EXPORT Properties : public AudioProperties + { + public: + /*! + * Create an instance of MPC::Properties with the data read from the + * ByteVector \a data. + * + * This constructor is deprecated. It only works for MPC version up to 7. + */ + Properties(const ByteVector &data, long streamLength, ReadStyle style = Average); + + /*! + * Create an instance of MPC::Properties with the data read directly + * from a MPC::File. + */ + Properties(File *file, long streamLength, ReadStyle style = Average); + + /*! + * Destroys this MPC::Properties instance. + */ + virtual ~Properties(); + + // Reimplementations. + + virtual int length() const; + virtual int bitrate() const; + virtual int sampleRate() const; + virtual int channels() const; + + /*! + * Returns the version of the bitstream (SV4-SV8) + */ + int mpcVersion() const; + uint totalFrames() const; + uint sampleFrames() const; + + /*! + * Returns the track gain as an integer value, + * to convert to dB: trackGain in dB = 64.82 - (trackGain / 256) + */ + int trackGain() const; + + /*! + * Returns the track peak as an integer value, + * to convert to dB: trackPeak in dB = trackPeak / 256 + * to convert to floating [-1..1]: trackPeak = 10^(trackPeak / 256 / 20)/32768 + */ + int trackPeak() const; + + /*! + * Returns the album gain as an integer value, + * to convert to dB: albumGain in dB = 64.82 - (albumGain / 256) + */ + int albumGain() const; + + /*! + * Returns the album peak as an integer value, + * to convert to dB: albumPeak in dB = albumPeak / 256 + * to convert to floating [-1..1]: albumPeak = 10^(albumPeak / 256 / 20)/32768 + */ + int albumPeak() const; + + private: + Properties(const Properties &); + Properties &operator=(const Properties &); + + void readSV7(const ByteVector &data); + void readSV8(File *file); + + class PropertiesPrivate; + PropertiesPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/id3v1/id3v1genres.h b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v1/id3v1genres.h new file mode 100644 index 0000000..271f725 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v1/id3v1genres.h @@ -0,0 +1,66 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ID3V1GENRE_H +#define TAGLIB_ID3V1GENRE_H + +#include "tmap.h" +#include "tstringlist.h" +#include "taglib_export.h" + +namespace TagLib { + namespace ID3v1 { + + typedef Map GenreMap; + + /*! + * Returns the list of canonical ID3v1 genre names in the order that they + * are listed in the standard. + */ + StringList TAGLIB_EXPORT genreList(); + + /*! + * A "reverse mapping" that goes from the canonical ID3v1 genre name to the + * respective genre number. genreMap()["Rock"] == + */ + GenreMap TAGLIB_EXPORT genreMap(); + + /*! + * Returns the name of the genre at \a index in the ID3v1 genre list. If + * \a index is out of range -- less than zero or greater than 146 -- a null + * string will be returned. + */ + String TAGLIB_EXPORT genre(int index); + + /*! + * Returns the genre index for the (case sensitive) genre \a name. If the + * genre is not in the list 255 (which signifies an unknown genre in ID3v1) + * will be returned. + */ + int TAGLIB_EXPORT genreIndex(const String &name); + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/id3v1/id3v1tag.h b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v1/id3v1tag.h new file mode 100644 index 0000000..a90ac53 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v1/id3v1tag.h @@ -0,0 +1,182 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ID3V1TAG_H +#define TAGLIB_ID3V1TAG_H + +#include "tag.h" +#include "tbytevector.h" +#include "taglib_export.h" + +namespace TagLib { + + class File; + + //! An ID3v1 implementation + + namespace ID3v1 { + + //! A abstraction for the string to data encoding in ID3v1 tags. + + /*! + * ID3v1 should in theory always contain ISO-8859-1 (Latin1) data. In + * practice it does not. TagLib by default only supports ISO-8859-1 data + * in ID3v1 tags. + * + * However by subclassing this class and reimplementing parse() and render() + * and setting your reimplementation as the default with + * ID3v1::Tag::setStringHandler() you can define how you would like these + * transformations to be done. + * + * \warning It is advisable not to write non-ISO-8859-1 data to ID3v1 + * tags. Please consider disabling the writing of ID3v1 tags in the case + * that the data is not ISO-8859-1. + * + * \see ID3v1::Tag::setStringHandler() + */ + + class TAGLIB_EXPORT StringHandler + { + TAGLIB_IGNORE_MISSING_DESTRUCTOR + public: + // BIC: Add virtual destructor. + StringHandler(); + + /*! + * Decode a string from \a data. The default implementation assumes that + * \a data is an ISO-8859-1 (Latin1) character array. + */ + virtual String parse(const ByteVector &data) const; + + /*! + * Encode a ByteVector with the data from \a s. The default implementation + * assumes that \a s is an ISO-8859-1 (Latin1) string. If the string is + * does not conform to ISO-8859-1, no value is written. + * + * \warning It is recommended that you not override this method, but + * instead do not write an ID3v1 tag in the case that the data is not + * ISO-8859-1. + */ + virtual ByteVector render(const String &s) const; + }; + + //! The main class in the ID3v1 implementation + + /*! + * This is an implementation of the ID3v1 format. ID3v1 is both the simplist + * and most common of tag formats but is rather limited. Because of its + * pervasiveness and the way that applications have been written around the + * fields that it provides, the generic TagLib::Tag API is a mirror of what is + * provided by ID3v1. + * + * ID3v1 tags should generally only contain Latin1 information. However because + * many applications do not follow this rule there is now support for overriding + * the ID3v1 string handling using the ID3v1::StringHandler class. Please see + * the documentation for that class for more information. + * + * \see StringHandler + * + * \note Most fields are truncated to a maximum of 28-30 bytes. The + * truncation happens automatically when the tag is rendered. + */ + + class TAGLIB_EXPORT Tag : public TagLib::Tag + { + public: + /*! + * Create an ID3v1 tag with default values. + */ + Tag(); + + /*! + * Create an ID3v1 tag and parse the data in \a file starting at + * \a tagOffset. + */ + Tag(File *file, long tagOffset); + + /*! + * Destroys this Tag instance. + */ + virtual ~Tag(); + + /*! + * Renders the in memory values to a ByteVector suitable for writing to + * the file. + */ + ByteVector render() const; + + /*! + * Returns the string "TAG" suitable for usage in locating the tag in a + * file. + */ + static ByteVector fileIdentifier(); + + // Reimplementations. + + virtual String title() const; + virtual String artist() const; + virtual String album() const; + virtual String comment() const; + virtual String genre() const; + virtual uint year() const; + virtual uint track() const; + + virtual void setTitle(const String &s); + virtual void setArtist(const String &s); + virtual void setAlbum(const String &s); + virtual void setComment(const String &s); + virtual void setGenre(const String &s); + virtual void setYear(uint i); + virtual void setTrack(uint i); + + /*! + * Sets the string handler that decides how the ID3v1 data will be + * converted to and from binary data. + * + * \see StringHandler + */ + static void setStringHandler(const StringHandler *handler); + + protected: + /*! + * Reads from the file specified in the constructor. + */ + void read(); + /*! + * Pareses the body of the tag in \a data. + */ + void parse(const ByteVector &data); + + private: + Tag(const Tag &); + Tag &operator=(const Tag &); + + class TagPrivate; + TagPrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/attachedpictureframe.h b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/attachedpictureframe.h new file mode 100644 index 0000000..55067bd --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/attachedpictureframe.h @@ -0,0 +1,230 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_ATTACHEDPICTUREFRAME_H +#define TAGLIB_ATTACHEDPICTUREFRAME_H + +#include "id3v2frame.h" +#include "id3v2header.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace ID3v2 { + + //! An ID3v2 attached picture frame implementation + + /*! + * This is an implementation of ID3v2 attached pictures. Pictures may be + * included in tags, one per APIC frame (but there may be multiple APIC + * frames in a single tag). These pictures are usually in either JPEG or + * PNG format. + */ + + class TAGLIB_EXPORT AttachedPictureFrame : public Frame + { + friend class FrameFactory; + + public: + + /*! + * This describes the function or content of the picture. + */ + enum Type { + //! A type not enumerated below + Other = 0x00, + //! 32x32 PNG image that should be used as the file icon + FileIcon = 0x01, + //! File icon of a different size or format + OtherFileIcon = 0x02, + //! Front cover image of the album + FrontCover = 0x03, + //! Back cover image of the album + BackCover = 0x04, + //! Inside leaflet page of the album + LeafletPage = 0x05, + //! Image from the album itself + Media = 0x06, + //! Picture of the lead artist or soloist + LeadArtist = 0x07, + //! Picture of the artist or performer + Artist = 0x08, + //! Picture of the conductor + Conductor = 0x09, + //! Picture of the band or orchestra + Band = 0x0A, + //! Picture of the composer + Composer = 0x0B, + //! Picture of the lyricist or text writer + Lyricist = 0x0C, + //! Picture of the recording location or studio + RecordingLocation = 0x0D, + //! Picture of the artists during recording + DuringRecording = 0x0E, + //! Picture of the artists during performance + DuringPerformance = 0x0F, + //! Picture from a movie or video related to the track + MovieScreenCapture = 0x10, + //! Picture of a large, coloured fish + ColouredFish = 0x11, + //! Illustration related to the track + Illustration = 0x12, + //! Logo of the band or performer + BandLogo = 0x13, + //! Logo of the publisher (record company) + PublisherLogo = 0x14 + }; + + /*! + * Constructs an empty picture frame. The description, content and text + * encoding should be set manually. + */ + AttachedPictureFrame(); + + /*! + * Constructs an AttachedPicture frame based on \a data. + */ + explicit AttachedPictureFrame(const ByteVector &data); + + /*! + * Destroys the AttahcedPictureFrame instance. + */ + virtual ~AttachedPictureFrame(); + + /*! + * Returns a string containing the description and mime-type + */ + virtual String toString() const; + + /*! + * Returns the text encoding used for the description. + * + * \see setTextEncoding() + * \see description() + */ + String::Type textEncoding() const; + + /*! + * Set the text encoding used for the description. + * + * \see description() + */ + void setTextEncoding(String::Type t); + + /*! + * Returns the mime type of the image. This should in most cases be + * "image/png" or "image/jpeg". + */ + String mimeType() const; + + /*! + * Sets the mime type of the image. This should in most cases be + * "image/png" or "image/jpeg". + */ + void setMimeType(const String &m); + + /*! + * Returns the type of the image. + * + * \see Type + * \see setType() + */ + Type type() const; + + /*! + * Sets the type for the image. + * + * \see Type + * \see type() + */ + void setType(Type t); + + /*! + * Returns a text description of the image. + * + * \see setDescription() + * \see textEncoding() + * \see setTextEncoding() + */ + + String description() const; + + /*! + * Sets a textual description of the image to \a desc. + * + * \see description() + * \see textEncoding() + * \see setTextEncoding() + */ + + void setDescription(const String &desc); + + /*! + * Returns the image data as a ByteVector. + * + * \note ByteVector has a data() method that returns a const char * which + * should make it easy to export this data to external programs. + * + * \see setPicture() + * \see mimeType() + */ + ByteVector picture() const; + + /*! + * Sets the image data to \a p. \a p should be of the type specified in + * this frame's mime-type specification. + * + * \see picture() + * \see mimeType() + * \see setMimeType() + */ + void setPicture(const ByteVector &p); + + protected: + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + class AttachedPictureFramePrivate; + AttachedPictureFramePrivate *d; + + private: + AttachedPictureFrame(const AttachedPictureFrame &); + AttachedPictureFrame &operator=(const AttachedPictureFrame &); + AttachedPictureFrame(const ByteVector &data, Header *h); + + }; + + //! support for ID3v2.2 PIC frames + class TAGLIB_EXPORT AttachedPictureFrameV22 : public AttachedPictureFrame + { + protected: + virtual void parseFields(const ByteVector &data); + private: + AttachedPictureFrameV22(const ByteVector &data, Header *h); + friend class FrameFactory; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/commentsframe.h b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/commentsframe.h new file mode 100644 index 0000000..f65f6f0 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/commentsframe.h @@ -0,0 +1,179 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_COMMENTSFRAME_H +#define TAGLIB_COMMENTSFRAME_H + +#include "id3v2frame.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace ID3v2 { + + //! An implementation of ID3v2 comments + + /*! + * This implements the ID3v2 comment format. An ID3v2 comment concists of + * a language encoding, a description and a single text field. + */ + + class TAGLIB_EXPORT CommentsFrame : public Frame + { + friend class FrameFactory; + + public: + /*! + * Construct an empty comment frame that will use the text encoding + * \a encoding. + */ + explicit CommentsFrame(String::Type encoding = String::Latin1); + + /*! + * Construct a comment based on the data in \a data. + */ + explicit CommentsFrame(const ByteVector &data); + + /*! + * Destroys this CommentFrame instance. + */ + virtual ~CommentsFrame(); + + /*! + * Returns the text of this comment. + * + * \see text() + */ + virtual String toString() const; + + /*! + * Returns the language encoding as a 3 byte encoding as specified by + * ISO-639-2. + * + * \note Most taggers simply ignore this value. + * + * \see setLanguage() + */ + ByteVector language() const; + + /*! + * Returns the description of this comment. + * + * \note Most taggers simply ignore this value. + * + * \see setDescription() + */ + String description() const; + + /*! + * Returns the text of this comment. + * + * \see setText() + */ + String text() const; + + /*! + * Set the language using the 3 byte language code from + * ISO-639-2 to + * \a languageCode. + * + * \see language() + */ + void setLanguage(const ByteVector &languageCode); + + /*! + * Sets the description of the comment to \a s. + * + * \see decription() + */ + void setDescription(const String &s); + + /*! + * Sets the text portion of the comment to \a s. + * + * \see text() + */ + virtual void setText(const String &s); + + /*! + * Returns the text encoding that will be used in rendering this frame. + * This defaults to the type that was either specified in the constructor + * or read from the frame when parsed. + * + * \see setTextEncoding() + * \see render() + */ + String::Type textEncoding() const; + + /*! + * Sets the text encoding to be used when rendering this frame to + * \a encoding. + * + * \see textEncoding() + * \see render() + */ + void setTextEncoding(String::Type encoding); + + /*! + * Parses this frame as PropertyMap with a single key. + * - if description() is empty or "COMMENT", the key will be "COMMENT" + * - if description() is not a valid PropertyMap key, the frame will be + * marked unsupported by an entry "COMM/" in the unsupportedData() + * attribute of the returned map. + * - otherwise, the key will be "COMMENT:" + * - The single value will be the frame's text(). + */ + PropertyMap asProperties() const; + + /*! + * Comments each have a unique description. This searches for a comment + * frame with the decription \a d and returns a pointer to it. If no + * frame is found that matches the given description null is returned. + * + * \see description() + */ + static CommentsFrame *findByDescription(const Tag *tag, const String &d); + + protected: + // Reimplementations. + + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + private: + /*! + * The constructor used by the FrameFactory. + */ + CommentsFrame(const ByteVector &data, Header *h); + CommentsFrame(const CommentsFrame &); + CommentsFrame &operator=(const CommentsFrame &); + + class CommentsFramePrivate; + CommentsFramePrivate *d; + }; + + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/generalencapsulatedobjectframe.h b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/generalencapsulatedobjectframe.h new file mode 100644 index 0000000..42f854c --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/generalencapsulatedobjectframe.h @@ -0,0 +1,178 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + copyright : (C) 2006 by Aaron VonderHaar + email : avh4@users.sourceforge.net + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_GENERALENCAPSULATEDOBJECT_H +#define TAGLIB_GENERALENCAPSULATEDOBJECT_H + +#include "id3v2frame.h" +#include "id3v2header.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace ID3v2 { + + //! An ID3v2 general encapsulated object frame implementation + + /*! + * This is an implementation of ID3v2 general encapsulated objects. + * Arbitrary binary data may be included in tags, stored in GEOB frames. + * There may be multiple GEOB frames in a single tag. Each GEOB it + * labelled with a content description (which may be blank), a required + * mime-type, and a file name (may be blank). The content description + * uniquely identifies the GEOB frame in the tag. + */ + + class TAGLIB_EXPORT GeneralEncapsulatedObjectFrame : public Frame + { + friend class FrameFactory; + + public: + + /*! + * Constructs an empty object frame. The description, file name and text + * encoding should be set manually. + */ + GeneralEncapsulatedObjectFrame(); + + /*! + * Constructs a GeneralEncapsulatedObjectFrame frame based on \a data. + * + * \warning This is \em not data for the encapsulated object, for that use + * setObject(). This constructor is used when reading the frame from the + * disk. + */ + explicit GeneralEncapsulatedObjectFrame(const ByteVector &data); + + /*! + * Destroys the GeneralEncapsulatedObjectFrame instance. + */ + virtual ~GeneralEncapsulatedObjectFrame(); + + /*! + * Returns a string containing the description, file name and mime-type + */ + virtual String toString() const; + + /*! + * Returns the text encoding used for the description and file name. + * + * \see setTextEncoding() + * \see description() + * \see fileName() + */ + String::Type textEncoding() const; + + /*! + * Set the text encoding used for the description and file name. + * + * \see description() + * \see fileName() + */ + void setTextEncoding(String::Type encoding); + + /*! + * Returns the mime type of the object. + */ + String mimeType() const; + + /*! + * Sets the mime type of the object. + */ + void setMimeType(const String &type); + + /*! + * Returns the file name of the object. + * + * \see setFileName() + */ + String fileName() const; + + /*! + * Sets the file name for the object. + * + * \see fileName() + */ + void setFileName(const String &name); + + /*! + * Returns the content description of the object. + * + * \see setDescription() + * \see textEncoding() + * \see setTextEncoding() + */ + + String description() const; + + /*! + * Sets the content description of the object to \a desc. + * + * \see description() + * \see textEncoding() + * \see setTextEncoding() + */ + + void setDescription(const String &desc); + + /*! + * Returns the object data as a ByteVector. + * + * \note ByteVector has a data() method that returns a const char * which + * should make it easy to export this data to external programs. + * + * \see setObject() + * \see mimeType() + */ + ByteVector object() const; + + /*! + * Sets the object data to \a data. \a data should be of the type specified in + * this frame's mime-type specification. + * + * \see object() + * \see mimeType() + * \see setMimeType() + */ + void setObject(const ByteVector &object); + + protected: + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + private: + GeneralEncapsulatedObjectFrame(const ByteVector &data, Header *h); + GeneralEncapsulatedObjectFrame(const GeneralEncapsulatedObjectFrame &); + GeneralEncapsulatedObjectFrame &operator=(const GeneralEncapsulatedObjectFrame &); + + class GeneralEncapsulatedObjectFramePrivate; + GeneralEncapsulatedObjectFramePrivate *d; + }; + } +} + +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/popularimeterframe.h b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/popularimeterframe.h new file mode 100644 index 0000000..d39f1aa --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/popularimeterframe.h @@ -0,0 +1,132 @@ +/*************************************************************************** + copyright : (C) 2008 by Lukas Lalinsky + email : lalinsky@gmail.com + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_POPULARIMETERFRAME_H +#define TAGLIB_POPULARIMETERFRAME_H + +#include "id3v2frame.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace ID3v2 { + + //! An implementation of ID3v2 "popularimeter" + + /*! + * This implements the ID3v2 popularimeter (POPM frame). It concists of + * an email, a rating and an optional counter. + */ + + class TAGLIB_EXPORT PopularimeterFrame : public Frame + { + friend class FrameFactory; + + public: + /*! + * Construct an empty popularimeter frame. + */ + explicit PopularimeterFrame(); + + /*! + * Construct a popularimeter based on the data in \a data. + */ + explicit PopularimeterFrame(const ByteVector &data); + + /*! + * Destroys this PopularimeterFrame instance. + */ + virtual ~PopularimeterFrame(); + + /*! + * Returns the text of this popularimeter. + * + * \see text() + */ + virtual String toString() const; + + /*! + * Returns the email. + * + * \see setEmail() + */ + String email() const; + + /*! + * Set the email. + * + * \see email() + */ + void setEmail(const String &email); + + /*! + * Returns the rating. + * + * \see setRating() + */ + int rating() const; + + /*! + * Set the rating. + * + * \see rating() + */ + void setRating(int rating); + + /*! + * Returns the counter. + * + * \see setCounter() + */ + uint counter() const; + + /*! + * Set the counter. + * + * \see counter() + */ + void setCounter(uint counter); + + protected: + // Reimplementations. + + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + private: + /*! + * The constructor used by the FrameFactory. + */ + PopularimeterFrame(const ByteVector &data, Header *h); + PopularimeterFrame(const PopularimeterFrame &); + PopularimeterFrame &operator=(const PopularimeterFrame &); + + class PopularimeterFramePrivate; + PopularimeterFramePrivate *d; + }; + + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/privateframe.h b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/privateframe.h new file mode 100644 index 0000000..06f82f3 --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/privateframe.h @@ -0,0 +1,111 @@ +/*************************************************************************** + copyright : (C) 2008 by Serkan Kalyoncu + copyright : (C) 2008 by Scott Wheeler + email : wheeler@kde.org +***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_PRIVATEFRAME_H +#define TAGLIB_PRIVATEFRAME_H + +#include "id3v2frame.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace ID3v2 { + + //! An implementation of ID3v2 privateframe + + class TAGLIB_EXPORT PrivateFrame : public Frame + { + friend class FrameFactory; + + public: + /*! + * Construct an empty private frame. + */ + PrivateFrame(); + + /*! + * Construct a private frame based on the data in \a data. + * + * \note This is the constructor used when parsing the frame from a file. + */ + explicit PrivateFrame(const ByteVector &data); + + /*! + * Destroys this private frame instance. + */ + virtual ~PrivateFrame(); + + /*! + * Returns the text of this private frame, currently just the owner. + * + * \see text() + */ + virtual String toString() const; + + /*! + * \return The owner of the private frame. + * \note This should contain an email address or link to a website. + */ + String owner() const; + + /*! + * + */ + ByteVector data() const; + + /*! + * Sets the owner of the frame to \a s. + * \note This should contain an email address or link to a website. + */ + void setOwner(const String &s); + + /*! + * + */ + void setData(const ByteVector &v); + + protected: + // Reimplementations. + + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + private: + /*! + * The constructor used by the FrameFactory. + */ + PrivateFrame(const ByteVector &data, Header *h); + + PrivateFrame(const PrivateFrame &); + PrivateFrame &operator=(const PrivateFrame &); + + class PrivateFramePrivate; + PrivateFramePrivate *d; + }; + + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/relativevolumeframe.h b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/relativevolumeframe.h new file mode 100644 index 0000000..dad4e7d --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/relativevolumeframe.h @@ -0,0 +1,274 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_RELATIVEVOLUMEFRAME_H +#define TAGLIB_RELATIVEVOLUMEFRAME_H + +#include "tlist.h" +#include "id3v2frame.h" +#include "taglib_export.h" + +namespace TagLib { + + namespace ID3v2 { + + //! An ID3v2 relative volume adjustment frame implementation + + /*! + * This is an implementation of ID3v2 relative volume adjustment. The + * presence of this frame makes it possible to specify an increase in volume + * for an audio file or specific audio tracks in that file. + * + * Multiple relative volume adjustment frames may be present in the tag + * each with a unique identification and describing volume adjustment for + * different channel types. + */ + + class TAGLIB_EXPORT RelativeVolumeFrame : public Frame + { + friend class FrameFactory; + + public: + + /*! + * This indicates the type of volume adjustment that should be applied. + */ + enum ChannelType { + //! A type not enumerated below + Other = 0x00, + //! The master volume for the track + MasterVolume = 0x01, + //! The front right audio channel + FrontRight = 0x02, + //! The front left audio channel + FrontLeft = 0x03, + //! The back right audio channel + BackRight = 0x04, + //! The back left audio channel + BackLeft = 0x05, + //! The front center audio channel + FrontCentre = 0x06, + //! The back center audio channel + BackCentre = 0x07, + //! The subwoofer audio channel + Subwoofer = 0x08 + }; + + //! Struct that stores the relevant values for ID3v2 peak volume + + /*! + * The peak volume is described as a series of bits that is padded to fill + * a block of bytes. These two values should always be updated in tandem. + */ + struct PeakVolume + { + /*! + * Constructs an empty peak volume description. + */ + PeakVolume() : bitsRepresentingPeak(0) {} + /*! + * The number of bits (in the range of 0 to 255) used to describe the + * peak volume. + */ + unsigned char bitsRepresentingPeak; + /*! + * The array of bits (represented as a series of bytes) used to describe + * the peak volume. + */ + ByteVector peakVolume; + }; + + /*! + * Constructs a RelativeVolumeFrame. The relevant data should be set + * manually. + */ + RelativeVolumeFrame(); + + /*! + * Constructs a RelativeVolumeFrame based on the contents of \a data. + */ + RelativeVolumeFrame(const ByteVector &data); + + /*! + * Destroys the RelativeVolumeFrame instance. + */ + virtual ~RelativeVolumeFrame(); + + /*! + * Returns the frame's identification. + * + * \see identification() + */ + virtual String toString() const; + + /*! + * Returns a list of channels with information currently in the frame. + */ + List channels() const; + + /*! + * \deprecated Always returns master volume. + */ + ChannelType channelType() const; + + /*! + * \deprecated This method no longer has any effect. + */ + void setChannelType(ChannelType t); + + /* + * There was a terrible API goof here, and while this can't be changed to + * the way it appears below for binary compaibility reasons, let's at + * least pretend that it looks clean. + */ + +#ifdef DOXYGEN + + /*! + * Returns the relative volume adjustment "index". As indicated by the + * ID3v2 standard this is a 16-bit signed integer that reflects the + * decibils of adjustment when divided by 512. + * + * This defaults to returning the value for the master volume channel if + * available and returns 0 if the specified channel does not exist. + * + * \see setVolumeAdjustmentIndex() + * \see volumeAjustment() + */ + short volumeAdjustmentIndex(ChannelType type = MasterVolume) const; + + /*! + * Set the volume adjustment to \a index. As indicated by the ID3v2 + * standard this is a 16-bit signed integer that reflects the decibils of + * adjustment when divided by 512. + * + * By default this sets the value for the master volume. + * + * \see volumeAdjustmentIndex() + * \see setVolumeAjustment() + */ + void setVolumeAdjustmentIndex(short index, ChannelType type = MasterVolume); + + /*! + * Returns the relative volume adjustment in decibels. + * + * \note Because this is actually stored internally as an "index" to this + * value the value returned by this method may not be identical to the + * value set using setVolumeAdjustment(). + * + * This defaults to returning the value for the master volume channel if + * available and returns 0 if the specified channel does not exist. + * + * \see setVolumeAdjustment() + * \see volumeAdjustmentIndex() + */ + float volumeAdjustment(ChannelType type = MasterVolume) const; + + /*! + * Set the relative volume adjustment in decibels to \a adjustment. + * + * By default this sets the value for the master volume. + * + * \note Because this is actually stored internally as an "index" to this + * value the value set by this method may not be identical to the one + * returned by volumeAdjustment(). + * + * \see setVolumeAdjustment() + * \see volumeAdjustmentIndex() + */ + void setVolumeAdjustment(float adjustment, ChannelType type = MasterVolume); + + /*! + * Returns the peak volume (represented as a length and a string of bits). + * + * This defaults to returning the value for the master volume channel if + * available and returns 0 if the specified channel does not exist. + * + * \see setPeakVolume() + */ + PeakVolume peakVolume(ChannelType type = MasterVolume) const; + + /*! + * Sets the peak volume to \a peak. + * + * By default this sets the value for the master volume. + * + * \see peakVolume() + */ + void setPeakVolume(const PeakVolume &peak, ChannelType type = MasterVolume); + +#else + + // BIC: Combine each of the following pairs of functions (or maybe just + // rework this junk altogether). + + short volumeAdjustmentIndex(ChannelType type) const; + short volumeAdjustmentIndex() const; + + void setVolumeAdjustmentIndex(short index, ChannelType type); + void setVolumeAdjustmentIndex(short index); + + float volumeAdjustment(ChannelType type) const; + float volumeAdjustment() const; + + void setVolumeAdjustment(float adjustment, ChannelType type); + void setVolumeAdjustment(float adjustment); + + PeakVolume peakVolume(ChannelType type) const; + PeakVolume peakVolume() const; + + void setPeakVolume(const PeakVolume &peak, ChannelType type); + void setPeakVolume(const PeakVolume &peak); + +#endif + + /*! + * Returns the identification for this frame. + */ + String identification() const; + + /*! + * Sets the identification of the frame to \a s. The string + * is used to identify the situation and/or device where this + * adjustment should apply. + */ + void setIdentification(const String &s); + + protected: + virtual void parseFields(const ByteVector &data); + virtual ByteVector renderFields() const; + + private: + RelativeVolumeFrame(const ByteVector &data, Header *h); + RelativeVolumeFrame(const RelativeVolumeFrame &); + RelativeVolumeFrame &operator=(const RelativeVolumeFrame &); + + class RelativeVolumeFramePrivate; + RelativeVolumeFramePrivate *d; + }; + + } +} +#endif diff --git a/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/textidentificationframe.h b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/textidentificationframe.h new file mode 100644 index 0000000..58ed63e --- /dev/null +++ b/Audio-Frameworks/bin/taglib/headers/mpeg/id3v2/frames/textidentificationframe.h @@ -0,0 +1,313 @@ +/*************************************************************************** + copyright : (C) 2002 - 2008 by Scott Wheeler + email : wheeler@kde.org + ***************************************************************************/ + +/*************************************************************************** + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, but * + * WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * + * 02110-1301 USA * + * * + * Alternatively, this file is available under the Mozilla Public * + * License Version 1.1. You may obtain a copy of the License at * + * http://www.mozilla.org/MPL/ * + ***************************************************************************/ + +#ifndef TAGLIB_TEXTIDENTIFICATIONFRAME_H +#define TAGLIB_TEXTIDENTIFICATIONFRAME_H + +#include "tstringlist.h" +#include "tmap.h" +#include "taglib_export.h" + +#include "id3v2frame.h" + +namespace TagLib { + + namespace ID3v2 { + + class Tag; + typedef Map KeyConversionMap; + + //! An ID3v2 text identification frame implementation + + /*! + * This is an implementation of the most common type of ID3v2 frame -- text + * identification frames. There are a number of variations on this. Those + * enumerated in the ID3v2.4 standard are: + * + *

        NBd7z)j0@=HN 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 qYD1@_I|&@y)*%=d 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 C API. + + The libopusfile package provides a convenient high-level API for + decoding and basic manipulation of all Ogg Opus audio streams. + libopusfile is implemented as a layer on top of Xiph.Org's + reference + libogg + and + libopus + libraries. + + libopusfile provides several sets of built-in routines for + file/stream access, and may also use custom stream I/O routines provided by + the embedded environment. + There are built-in I/O routines provided for ANSI-compliant + stdio (FILE *), memory buffers, and URLs + (including URLs, plus optionally and URLs). + + \section Organization + + The main API is divided into several sections: + - \ref stream_open_close + - \ref stream_info + - \ref stream_decoding + - \ref stream_seeking + + Several additional sections are not tied to the main API. + - \ref stream_callbacks + - \ref header_info + - \ref error_codes + + \section Overview + + The libopusfile API always decodes files to 48 kHz. + The original sample rate is not preserved by the lossy compression, though + it is stored in the header to allow you to resample to it after decoding + (the libopusfile API does not currently provide a resampler, + but the + the + Speex resampler is a good choice if you need one). + In general, if you are playing back the audio, you should leave it at + 48 kHz, provided your audio hardware supports it. + When decoding to a file, it may be worth resampling back to the original + sample rate, so as not to surprise users who might not expect the sample + rate to change after encoding to Opus and decoding. + + Opus files can contain anywhere from 1 to 255 channels of audio. + The channel mappings for up to 8 channels are the same as the + Vorbis + mappings. + A special stereo API can convert everything to 2 channels, making it simple + to support multichannel files in a application which only has stereo + output. + Although the libopusfile ABI provides support for the theoretical + maximum number of channels, the current implementation does not support + files with more than 8 channels, as they do not have well-defined channel + mappings. + + Like all Ogg files, Opus files may be "chained". + That is, multiple Opus files may be combined into a single, longer file just + by concatenating the original files. + This is commonly done in internet radio streaming, as it allows the title + and artist to be updated each time the song changes, since each link in the + chain includes its own set of metadata. + + libopusfile fully supports chained files. + It will decode the first Opus stream found in each link of a chained file + (ignoring any other streams that might be concurrently multiplexed with it, + such as a video stream). + + The channel count can also change between links, but if your application is + not prepared to deal with this, it can use the stereo API to ensure the + audio from all links will always get decoded into a common format. + Since libopusfile always decodes to 48 kHz, you do not have to + worry about the sample rate changing between links (as was possible with + Vorbis). + This makes application support for chained files with libopusfile + very easy.*/ + +# if defined(__cplusplus) +extern "C" { +# endif + +# include +# include +# include +# include + +/*Enable special features for gcc and gcc-compatible compilers.*/ +# if !defined(OP_GNUC_PREREQ) +# if defined(__GNUC__)&&defined(__GNUC_MINOR__) +# define OP_GNUC_PREREQ(_maj,_min) \ + ((__GNUC__<<16)+__GNUC_MINOR__>=((_maj)<<16)+(_min)) +# else +# define OP_GNUC_PREREQ(_maj,_min) 0 +# endif +# endif + +# if OP_GNUC_PREREQ(4,0) +# pragma GCC visibility push(default) +# endif + +typedef struct OpusHead OpusHead; +typedef struct OpusTags OpusTags; +typedef struct OpusPictureTag OpusPictureTag; +typedef struct OggOpusFile OggOpusFile; + +/*Warning attributes for libopusfile functions.*/ +# if OP_GNUC_PREREQ(3,4) +# define OP_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__)) +# else +# define OP_WARN_UNUSED_RESULT +# endif +# if OP_GNUC_PREREQ(3,4) +# define OP_ARG_NONNULL(_x) __attribute__((__nonnull__(_x))) +# else +# define OP_ARG_NONNULL(_x) +# endif + +/**\defgroup error_codes Error Codes*/ +/*@{*/ +/**\name List of possible error codes + Many of the functions in this library return a negative error code when a + function fails. + This list provides a brief explanation of the common errors. + See each individual function for more details on what a specific error code + means in that context.*/ +/*@{*/ + +/**A request did not succeed.*/ +#define OP_FALSE (-1) +/*Currently not used externally.*/ +#define OP_EOF (-2) +/**There was a hole in the page sequence numbers (e.g., a page was corrupt or + missing).*/ +#define OP_HOLE (-3) +/**An underlying read, seek, or tell operation failed when it should have + succeeded.*/ +#define OP_EREAD (-128) +/**A NULL pointer was passed where one was unexpected, or an + internal memory allocation failed, or an internal library error was + encountered.*/ +#define OP_EFAULT (-129) +/**The stream used a feature that is not implemented, such as an unsupported + channel family.*/ +#define OP_EIMPL (-130) +/**One or more parameters to a function were invalid.*/ +#define OP_EINVAL (-131) +/**A purported Ogg Opus stream did not begin with an Ogg page, a purported + header packet did not start with one of the required strings, "OpusHead" or + "OpusTags", or a link in a chained file was encountered that did not + contain any logical Opus streams.*/ +#define OP_ENOTFORMAT (-132) +/**A required header packet was not properly formatted, contained illegal + values, or was missing altogether.*/ +#define OP_EBADHEADER (-133) +/**The ID header contained an unrecognized version number.*/ +#define OP_EVERSION (-134) +/*Currently not used at all.*/ +#define OP_ENOTAUDIO (-135) +/**An audio packet failed to decode properly. + This is usually caused by a multistream Ogg packet where the durations of + the individual Opus packets contained in it are not all the same.*/ +#define OP_EBADPACKET (-136) +/**We failed to find data we had seen before, or the bitstream structure was + sufficiently malformed that seeking to the target destination was + impossible.*/ +#define OP_EBADLINK (-137) +/**An operation that requires seeking was requested on an unseekable stream.*/ +#define OP_ENOSEEK (-138) +/**The first or last granule position of a link failed basic validity checks.*/ +#define OP_EBADTIMESTAMP (-139) + +/*@}*/ +/*@}*/ + +/**\defgroup header_info Header Information*/ +/*@{*/ + +/**The maximum number of channels in an Ogg Opus stream.*/ +#define OPUS_CHANNEL_COUNT_MAX (255) + +/**Ogg Opus bitstream information. + This contains the basic playback parameters for a stream, and corresponds to + the initial ID header packet of an Ogg Opus stream.*/ +struct OpusHead{ + /**The Ogg Opus format version, in the range 0...255. + The top 4 bits represent a "major" version, and the bottom four bits + represent backwards-compatible "minor" revisions. + The current specification describes version 1. + This library will recognize versions up through 15 as backwards compatible + with the current specification. + An earlier draft of the specification described a version 0, but the only + difference between version 1 and version 0 is that version 0 did + not specify the semantics for handling the version field.*/ + int version; + /**The number of channels, in the range 1...255.*/ + int channel_count; + /**The number of samples that should be discarded from the beginning of the + stream.*/ + unsigned pre_skip; + /**The sampling rate of the original input. + All Opus audio is coded at 48 kHz, and should also be decoded at 48 kHz + for playback (unless the target hardware does not support this sampling + rate). + However, this field may be used to resample the audio back to the original + sampling rate, for example, when saving the output to a file.*/ + opus_uint32 input_sample_rate; + /**The gain to apply to the decoded output, in dB, as a Q8 value in the range + -32768...32767. + The libopusfile API will automatically apply this gain to the + decoded output before returning it, scaling it by + pow(10,output_gain/(20.0*256)).*/ + int output_gain; + /**The channel mapping family, in the range 0...255. + Channel mapping family 0 covers mono or stereo in a single stream. + Channel mapping family 1 covers 1 to 8 channels in one or more streams, + using the Vorbis speaker assignments. + Channel mapping family 255 covers 1 to 255 channels in one or more + streams, but without any defined speaker assignment.*/ + int mapping_family; + /**The number of Opus streams in each Ogg packet, in the range 1...255.*/ + int stream_count; + /**The number of coupled Opus streams in each Ogg packet, in the range + 0...127. + This must satisfy 0 <= coupled_count <= stream_count and + coupled_count + stream_count <= 255. + The coupled streams appear first, before all uncoupled streams, in an Ogg + Opus packet.*/ + int coupled_count; + /**The mapping from coded stream channels to output channels. + Let index=mapping[k] be the value for channel k. + If index<2*coupled_count, then it refers to the left channel + from stream (index/2) if even, and the right channel from + stream (index/2) if odd. + Otherwise, it refers to the output of the uncoupled stream + (index-coupled_count).*/ + unsigned char mapping[OPUS_CHANNEL_COUNT_MAX]; +}; + +/**The metadata from an Ogg Opus stream. + + This structure holds the in-stream metadata corresponding to the 'comment' + header packet of an Ogg Opus stream. + The comment header is meant to be used much like someone jotting a quick + note on the label of a CD. + It should be a short, to the point text note that can be more than a couple + words, but not more than a short paragraph. + + The metadata is stored as a series of (tag, value) pairs, in length-encoded + string vectors, using the same format as Vorbis (without the final "framing + bit"), Theora, and Speex, except for the packet header. + The first occurrence of the '=' character delimits the tag and value. + A particular tag may occur more than once, and order is significant. + The character set encoding for the strings is always UTF-8, but the tag + names are limited to ASCII, and treated as case-insensitive. + See the Vorbis + comment header specification for details. + + In filling in this structure, libopusfile will null-terminate the + #user_comments strings for safety. + However, the bitstream format itself treats them as 8-bit clean vectors, + possibly containing NUL characters, so the #comment_lengths array should be + treated as their authoritative length. + + This structure is binary and source-compatible with a + vorbis_comment, and pointers to it may be freely cast to + vorbis_comment pointers, and vice versa. + It is provided as a separate type to avoid introducing a compile-time + dependency on the libvorbis headers.*/ +struct OpusTags{ + /**The array of comment string vectors.*/ + char **user_comments; + /**An array of the corresponding length of each vector, in bytes.*/ + int *comment_lengths; + /**The total number of comment streams.*/ + int comments; + /**The null-terminated vendor string. + This identifies the software used to encode the stream.*/ + char *vendor; +}; + +/**\name Picture tag image formats*/ +/*@{*/ + +/**The MIME type was not recognized, or the image data did not match the + declared MIME type.*/ +#define OP_PIC_FORMAT_UNKNOWN (-1) +/**The MIME type indicates the image data is really a URL.*/ +#define OP_PIC_FORMAT_URL (0) +/**The image is a JPEG.*/ +#define OP_PIC_FORMAT_JPEG (1) +/**The image is a PNG.*/ +#define OP_PIC_FORMAT_PNG (2) +/**The image is a GIF.*/ +#define OP_PIC_FORMAT_GIF (3) + +/*@}*/ + +/**The contents of a METADATA_BLOCK_PICTURE tag.*/ +struct OpusPictureTag{ + /**The picture type according to the ID3v2 APIC frame: +