├── .gitignore ├── CONTRIBUTING.md ├── Config.xcconfig ├── LICENSE ├── Package.swift ├── README.md ├── YbridOgg.podspec ├── build.sh ├── ogg-swift.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── xcshareddata │ └── xcschemes │ ├── ogg-swift.xcscheme │ └── ogg-swiftUITests.xcscheme ├── ogg-swift ├── Info.plist ├── module.modulemap └── ogg_swift.h ├── ogg-swiftUITests ├── Info.plist └── oggPlatformTests.swift ├── pod_check.sh ├── pod_push.sh ├── prepare.sh └── test.sh /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | .DS_Store 3 | */build/* 4 | *.pbxuser 5 | xcuserdata 6 | profile 7 | *.moved-aside 8 | DerivedData 9 | .idea/ 10 | *.hmap 11 | *.xccheckout 12 | 13 | # nacamar's prepare.sh operates in libogg* and build.sh creates xcframework 14 | *.log 15 | libogg-*/ 16 | include/*.h 17 | include/COPYING 18 | src/*.h 19 | src/*.c 20 | *.xcframework 21 | *.zip 22 | contributions/ 23 | tmp 24 | .swiftpm 25 | OggSwiftLocal 26 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to contribute? 2 | First of all. Thank you for considering to contribute to this project. 3 | 4 | ## Issues 5 | You are welcome to state your wishes in terms of [isssues](https://github.com/ybrid/ogg-swift/issues) in this project. Of course reporting of bugs is favored in this transparent way, too. 6 | 7 | ## Tests 8 | We do not own all exisiting ios device types of the past and the future. So try running the script ```test.sh``` with your device and tell us about success or failure. Does the test script pass the tests on your mac? This will help us improve the power of this software. 9 | 10 | ## Tell us your needs 11 | ### package management 12 | Currently we support integration with CocoaPods. You may tell us which type of package management you use. 13 | -------------------------------------------------------------------------------- /Config.xcconfig: -------------------------------------------------------------------------------- 1 | // 2 | // Config.xcconfig 3 | // ogg-swift 4 | // 5 | // Copyright (c) 2021 nacamar GmbH - Ybrid®, a Hybrid Dynamic Live Audio Technology 6 | // 7 | // Permission is hereby granted, free of charge, to any person obtaining a copy 8 | // of this software and associated documentation files (the "Software"), to deal 9 | // in the Software without restriction, including without limitation the rights 10 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | // copies of the Software, and to permit persons to whom the Software is 12 | // furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all 15 | // copies or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | // SOFTWARE. 24 | // 25 | 26 | // Configuration settings file format documentation can be found at: 27 | // https://help.apple.com/xcode/#/dev745c5c974 28 | 29 | 30 | // Product Version, PLEASE CHANGE HERE to affect all targets 31 | MARKETING_VERSION = 0.8.0 32 | // Build number, PLEASE CHANGE HERE to affect all targets 33 | CURRENT_PROJECT_VERSION = 7 34 | 35 | // Architectures 36 | ARCHS = arm64 armv7 x86_64 x86_64h i386 37 | EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 38 | EXCLUDED_ARCHS[sdk=macosx*] = i386 39 | SUPPORTED_PLATFORMS = iphoneos iphonesimulator macosx 40 | 41 | // Deployment 42 | TARGETED_DEVICE_FAMILY = 1,2,6 43 | IPHONEOS_DEPLOYMENT_TARGET = 9.0 44 | MACOSX_DEPLOYMENT_TARGET = 10.10 45 | 46 | // else 47 | SWIFT_VERSION = 4.0 48 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Ybrid®, a Hybrid Dynamic Live Audio Technology 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | # 3rd party licenses 24 | ## ogg 25 | This project makes use of the sources for ogg from [xiph.org/downloads](https://xiph.org/downloads/). 26 | Ogg is licensed under the [New BSD License](https://wiki.xiph.org/XiphWiki:Copyrights). 27 | 28 | Copyright (c) 2002, Xiph.org Foundation 29 | 30 | The New BSD License states that: 31 | 32 | Redistribution and use in source and binary forms [of this work], with or without modification, are permitted provided that the following conditions are met: 33 | Redistributions of source code must retain the copyright notice, this list of conditions, and the following disclaimer. 34 | Redistributions in binary form must reproduce the copyright notice, this list of conditions, and the following disclaimer in the documentation, and/or other materials provided with the distribution. 35 | 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 work without specific prior written permission. 36 | THIS WORK 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 WORK, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version:5.3 2 | // The swift-tools-version declares the minimum version of Swift required to build this package. 3 | 4 | import PackageDescription 5 | 6 | let version = "0.8.0" 7 | let package = Package( 8 | name: "YbridOgg", 9 | platforms: [ 10 | .macOS(.v10_10), .iOS(.v9) 11 | ], 12 | products: [ 13 | .library( 14 | name: "YbridOgg", 15 | targets: ["YbridOgg"]), 16 | ], 17 | dependencies: [ 18 | ], 19 | targets: [ 20 | .binaryTarget( 21 | name: "YbridOgg", 22 | url: "https://github.com/ybrid/ogg-swift/releases/download/"+version+"/YbridOgg.xcframework.zip", 23 | checksum: "871547dc18a2c7257dc9711203afa523117c845cc73fc49b0e1fc7d32667f543" 24 | ) 25 | ] 26 | ) 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ogg-swift 2 | A Swift wrapper to use [libogg api](https://www.xiph.org/ogg/doc/libogg/index.html). 3 | 4 | Intension of this project is to support [audio player SDK](https://github.com/ybrid/player-sdk-swift) with a platform independend XCFramework that can be integrated in Swift projects via CocoaPod. 5 | 6 | It supports iOS devices and simulators (version 9 to 14) and macOS (versions 10.10 to 11.2). 7 | 8 | # Version 9 | The supported version of libogg API is 1.3.4. 10 | 11 | # Integration 12 | After integration use 13 | ```swift 14 | import YbridOgg 15 | ``` 16 | in your Swift code. 17 | 18 | ## if you use CocoaPods 19 | The Cocoa Podfile of a project using this framework, should look like 20 | ```ruby 21 | platform :ios, '9.0' 22 | target 'player-sdk-swift' do 23 | use_frameworks! 24 | source 'https://github.com/CocoaPods/Specs.git' 25 | pod 'YbridOgg' 26 | end 27 | ``` 28 | ## If you use Swift Package Management 29 | The Package.swift using this framework should look like 30 | ```swift 31 | ... 32 | dependencies: [ 33 | .package( 34 | name: "YbridOgg", 35 | url: "git@github.com:ybrid/ogg-swift.git", 36 | from: "0.8.0"), 37 | ... 38 | ``` 39 | ## If you don't use CocoaPods or Swift Package Managenment 40 | If you manage packages in another way you may download YbridOgg.xcframework.zip from [the latest release of this repository](https://github.com/ybrid/ogg-swift/releases) and embed it into your own project manually. 41 | 42 | Unzip the file into a directory called 'Frameworks' of your XCode project. In the properties editor, drag and drop the directory into the section 'Frameworks, Libraries and Embedded Content' of the target's 'General' tab. 43 | 44 | # Contributing 45 | You are welcome to [contribute](https://github.com/ybrid/ogg-swift/blob/master/CONTRIBUTING.md). 46 | 47 | # Licenses 48 | This project is under MIT license. It makes use of the sources for ogg from [xiph.org/downloads](https://xiph.org/downloads/). Ogg is licensed under the [New BSD License](https://wiki.xiph.org/XiphWiki:Copyrights). See the [LICENSE](https://github.com/ybrid/ogg-swift/blob/master/LICENSE) file. -------------------------------------------------------------------------------- /YbridOgg.podspec: -------------------------------------------------------------------------------- 1 | # 2 | # Run `pod_check.sh` to ensure this is a valid spec before submitting. 3 | # 4 | # Submit this version to Cocoapod with 'pod_push.sh'. 5 | # 6 | Pod::Spec.new do |s| 7 | s.name = 'YbridOgg' 8 | s.version = '0.8.0' 9 | s.summary = 'Ogg xcframework for iOS and macOS.' 10 | s.description = <<-DESC 11 | XCFramework to use Ogg transport layer API within Swift source. 12 | It runs on iOS devices, iOS simulators and macOS. 13 | DESC 14 | s.homepage = 'https://github.com/ybrid/ogg-swift' 15 | s.license = { :type => 'MIT', :text => <<-LICENSE 16 | MIT License 17 | 18 | Copyright (c) 2021 Ybrid®, a Hybrid Dynamic Live Audio Technology 19 | 20 | Permission is hereby granted, free of charge, to any person obtaining a copy 21 | of this software and associated documentation files (the "Software"), to deal 22 | in the Software without restriction, including without limitation the rights 23 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 24 | copies of the Software, and to permit persons to whom the Software is 25 | furnished to do so, subject to the following conditions: 26 | 27 | The above copyright notice and this permission notice shall be included in all 28 | copies or substantial portions of the Software. 29 | 30 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 31 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 32 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 33 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 34 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 35 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 36 | SOFTWARE. 37 | 38 | # 3rd party licenses 39 | ## ogg 40 | This project makes use of the sources for ogg from [xiph.org/downloads](https://xiph.org/downloads/). 41 | Ogg is licensed under the [New BSD License](https://wiki.xiph.org/XiphWiki:Copyrights). 42 | 43 | Copyright (c) 2002, Xiph.org Foundation 44 | 45 | The New BSD License states that: 46 | 47 | Redistribution and use in source and binary forms [of this work], with or without modification, are permitted provided that the following conditions are met: 48 | Redistributions of source code must retain the copyright notice, this list of conditions, and the following disclaimer. 49 | Redistributions in binary form must reproduce the copyright notice, this list of conditions, and the following disclaimer in the documentation, and/or other materials provided with the distribution. 50 | 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 work without specific prior written permission. 51 | THIS WORK 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 WORK, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 52 | 53 | LICENSE 54 | } 55 | s.author = { 'Florian Nowotny' => 'Florian.Nowotny@nacamar.de' } 56 | s.source = { :http => 'https://github.com/ybrid/ogg-swift/releases/download/'+s.version.to_s+'/YbridOgg.xcframework.zip'} 57 | 58 | s.ios.deployment_target = '9.0' 59 | s.osx.deployment_target = '10.10' 60 | s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } 61 | s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } 62 | 63 | s.framework = 'YbridOgg' 64 | s.vendored_frameworks = 'YbridOgg.xcframework' 65 | end 66 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | # MIT License 5 | 6 | # Copyright (c) 2021 Ybrid®, a Hybrid Dynamic Live Audio Technology 7 | 8 | # Permission is hereby granted, free of charge, to any person obtaining a copy 9 | # of this software and associated documentation files (the "Software"), to deal 10 | # in the Software without restriction, including without limitation the rights 11 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | # copies of the Software, and to permit persons to whom the Software is 13 | # furnished to do so, subject to the following conditions: 14 | 15 | # The above copyright notice and this permission notice shall be included in all 16 | # copies or substantial portions of the Software. 17 | 18 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 24 | # SOFTWARE. 25 | 26 | # 27 | # Generates ogg_swift.xcframework from ogg.xcodeproj. 28 | # Usage: no parameters, settings mostly defined in xcode project 29 | # 30 | 31 | opts="SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES" 32 | 33 | dd=./DerivedData 34 | archivesPath="$dd/Archives" 35 | generatedPath="Products/Library/Frameworks" 36 | 37 | # path and name of intermediatly built frameworks 38 | builtPath="$dd/Build/Products" 39 | framework=YbridOgg.framework 40 | 41 | rm -rfd $dd 42 | mkdir -p "$archivesPath" 43 | mkdir -p "$builtPath" 44 | 45 | 46 | scheme=ogg-swift 47 | 48 | platform=iphoneos 49 | echo "building for $platform ..." 50 | xcodebuild archive -scheme $scheme -sdk $platform -destination="iOS" -derivedDataPath $dd \ 51 | -archivePath "$archivesPath/$platform.xcarchive" $opts > "build-$platform.log" 52 | cp -R "$archivesPath/$platform.xcarchive/$generatedPath" "$builtPath/Archive-$platform" 53 | 54 | platform=iphonesimulator 55 | echo "building for $platform ..." 56 | xcodebuild archive -scheme $scheme -sdk $platform -destination="iOS Simulator" -derivedDataPath $dd \ 57 | -archivePath "$archivesPath/$platform.xcarchive" $opts > "build-$platform.log" 58 | cp -R "$archivesPath/$platform.xcarchive/$generatedPath" "$builtPath/Archive-$platform" 59 | 60 | platform=maccatalyst 61 | echo "building for $platform ..." 62 | xcodebuild archive -scheme $scheme -sdk macosx -destination 'generic/platform=macOS,variant=Mac Catalyst,name=Any Mac' -derivedDataPath $dd \ 63 | -archivePath "$archivesPath/$platform.xcarchive" $opts > "build-$platform.log" 64 | cp -R "$archivesPath/$platform.xcarchive/$generatedPath" "$builtPath/Archive-$platform" 65 | 66 | platform=macosx 67 | echo "building for $platform ..." 68 | xcodebuild archive -scheme $scheme -sdk $platform -destination='My Mac' -derivedDataPath $dd \ 69 | -archivePath "$archivesPath/$platform.xcarchive" $opts > "build-$platform.log" 70 | cp -R "$archivesPath/$platform.xcarchive/$generatedPath" "$builtPath/Archive-$platform" 71 | 72 | 73 | # name of final ogg xcframework 74 | xcFramework=YbridOgg.xcframework 75 | rm -rfd $xcFramework 76 | 77 | products=`ls $builtPath` 78 | echo "generating $xcFramework for \n$products\n..." 79 | 80 | cmd="xcodebuild -quiet -create-xcframework " 81 | for entry in $products; do 82 | cmd="$cmd -framework $builtPath/$entry/$framework " 83 | done 84 | cmd="$cmd -output $xcFramework" 85 | #echo $cmd 86 | $cmd 87 | 88 | echo "zip $xcFramework including LICENSE file..." 89 | cp LICENSE $xcFramework 90 | zip -q -r -y $xcFramework.zip $xcFramework 91 | echo "done." 92 | -------------------------------------------------------------------------------- /ogg-swift.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 50; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 17CBC68025DEDE4300B2F7E7 /* COPYING in Resources */ = {isa = PBXBuildFile; fileRef = 17CBC67F25DEDE4300B2F7E7 /* COPYING */; }; 11 | 17CBC68325DEDE5B00B2F7E7 /* COPYING in Headers */ = {isa = PBXBuildFile; fileRef = 17CBC67F25DEDE4300B2F7E7 /* COPYING */; settings = {ATTRIBUTES = (Public, ); }; }; 12 | 17E5BBAE25C819910061F232 /* ogg_swift.h in Headers */ = {isa = PBXBuildFile; fileRef = 17E5BBAC25C819910061F232 /* ogg_swift.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13 | 17E5BC7425C84AA40061F232 /* Config.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 17E5BC7325C84AA40061F232 /* Config.xcconfig */; }; 14 | 17EE842A25CC493A002F15B3 /* oggPlatformTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17EE842925CC493A002F15B3 /* oggPlatformTests.swift */; }; 15 | 17EE843425CC4A63002F15B3 /* YbridOgg.framework in Resources */ = {isa = PBXBuildFile; fileRef = 17E5BB6A25C817C20061F232 /* YbridOgg.framework */; }; 16 | 17EE867725CD990C002F15B3 /* ogg.h in Headers */ = {isa = PBXBuildFile; fileRef = 17EE867525CD990C002F15B3 /* ogg.h */; settings = {ATTRIBUTES = (Public, ); }; }; 17 | 17EE867825CD990C002F15B3 /* os_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 17EE867625CD990C002F15B3 /* os_types.h */; settings = {ATTRIBUTES = (Public, ); }; }; 18 | 17EE867F25CD9915002F15B3 /* framing.c in Sources */ = {isa = PBXBuildFile; fileRef = 17EE867C25CD9915002F15B3 /* framing.c */; }; 19 | 17EE868025CD9915002F15B3 /* crctable.h in Headers */ = {isa = PBXBuildFile; fileRef = 17EE867D25CD9915002F15B3 /* crctable.h */; }; 20 | 17EE868125CD9915002F15B3 /* bitwise.c in Sources */ = {isa = PBXBuildFile; fileRef = 17EE867E25CD9915002F15B3 /* bitwise.c */; }; 21 | /* End PBXBuildFile section */ 22 | 23 | /* Begin PBXContainerItemProxy section */ 24 | 17CBC63A25DE870800B2F7E7 /* PBXContainerItemProxy */ = { 25 | isa = PBXContainerItemProxy; 26 | containerPortal = 17E5BB6125C817C20061F232 /* Project object */; 27 | proxyType = 1; 28 | remoteGlobalIDString = 17E5BB6925C817C20061F232; 29 | remoteInfo = "ogg-swift"; 30 | }; 31 | /* End PBXContainerItemProxy section */ 32 | 33 | /* Begin PBXFileReference section */ 34 | 17CBC67F25DEDE4300B2F7E7 /* COPYING */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = COPYING; sourceTree = ""; }; 35 | 17E5BB6A25C817C20061F232 /* YbridOgg.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = YbridOgg.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 36 | 17E5BBAB25C819910061F232 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 37 | 17E5BBAC25C819910061F232 /* ogg_swift.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ogg_swift.h; sourceTree = ""; }; 38 | 17E5BBCD25C821EA0061F232 /* module.modulemap */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; path = module.modulemap; sourceTree = ""; }; 39 | 17E5BC7325C84AA40061F232 /* Config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; 40 | 17EE842725CC493A002F15B3 /* ogg-swiftUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "ogg-swiftUITests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 41 | 17EE842925CC493A002F15B3 /* oggPlatformTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = oggPlatformTests.swift; sourceTree = ""; }; 42 | 17EE842B25CC493A002F15B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 43 | 17EE867525CD990C002F15B3 /* ogg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ogg.h; sourceTree = ""; }; 44 | 17EE867625CD990C002F15B3 /* os_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = os_types.h; sourceTree = ""; }; 45 | 17EE867C25CD9915002F15B3 /* framing.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = framing.c; sourceTree = ""; }; 46 | 17EE867D25CD9915002F15B3 /* crctable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crctable.h; sourceTree = ""; }; 47 | 17EE867E25CD9915002F15B3 /* bitwise.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bitwise.c; sourceTree = ""; }; 48 | /* End PBXFileReference section */ 49 | 50 | /* Begin PBXFrameworksBuildPhase section */ 51 | 17E5BB6725C817C20061F232 /* Frameworks */ = { 52 | isa = PBXFrameworksBuildPhase; 53 | buildActionMask = 2147483647; 54 | files = ( 55 | ); 56 | runOnlyForDeploymentPostprocessing = 0; 57 | }; 58 | 17EE842425CC493A002F15B3 /* Frameworks */ = { 59 | isa = PBXFrameworksBuildPhase; 60 | buildActionMask = 2147483647; 61 | files = ( 62 | ); 63 | runOnlyForDeploymentPostprocessing = 0; 64 | }; 65 | /* End PBXFrameworksBuildPhase section */ 66 | 67 | /* Begin PBXGroup section */ 68 | 17E5BB6025C817C20061F232 = { 69 | isa = PBXGroup; 70 | children = ( 71 | 17E5BC7325C84AA40061F232 /* Config.xcconfig */, 72 | 17EE867B25CD9915002F15B3 /* src */, 73 | 17EE867425CD990C002F15B3 /* include */, 74 | 17E5BB6C25C817C20061F232 /* ogg-swift */, 75 | 17EE842825CC493A002F15B3 /* ogg-swiftUITests */, 76 | 17E5BB6B25C817C20061F232 /* Products */, 77 | 17EE843325CC4A63002F15B3 /* Frameworks */, 78 | ); 79 | sourceTree = ""; 80 | }; 81 | 17E5BB6B25C817C20061F232 /* Products */ = { 82 | isa = PBXGroup; 83 | children = ( 84 | 17E5BB6A25C817C20061F232 /* YbridOgg.framework */, 85 | 17EE842725CC493A002F15B3 /* ogg-swiftUITests.xctest */, 86 | ); 87 | name = Products; 88 | sourceTree = ""; 89 | }; 90 | 17E5BB6C25C817C20061F232 /* ogg-swift */ = { 91 | isa = PBXGroup; 92 | children = ( 93 | 17E5BBCD25C821EA0061F232 /* module.modulemap */, 94 | 17E5BBAB25C819910061F232 /* Info.plist */, 95 | 17E5BBAC25C819910061F232 /* ogg_swift.h */, 96 | ); 97 | path = "ogg-swift"; 98 | sourceTree = ""; 99 | }; 100 | 17EE842825CC493A002F15B3 /* ogg-swiftUITests */ = { 101 | isa = PBXGroup; 102 | children = ( 103 | 17EE842925CC493A002F15B3 /* oggPlatformTests.swift */, 104 | 17EE842B25CC493A002F15B3 /* Info.plist */, 105 | ); 106 | path = "ogg-swiftUITests"; 107 | sourceTree = ""; 108 | }; 109 | 17EE843325CC4A63002F15B3 /* Frameworks */ = { 110 | isa = PBXGroup; 111 | children = ( 112 | ); 113 | name = Frameworks; 114 | sourceTree = ""; 115 | }; 116 | 17EE867425CD990C002F15B3 /* include */ = { 117 | isa = PBXGroup; 118 | children = ( 119 | 17CBC67F25DEDE4300B2F7E7 /* COPYING */, 120 | 17EE867525CD990C002F15B3 /* ogg.h */, 121 | 17EE867625CD990C002F15B3 /* os_types.h */, 122 | ); 123 | path = include; 124 | sourceTree = ""; 125 | }; 126 | 17EE867B25CD9915002F15B3 /* src */ = { 127 | isa = PBXGroup; 128 | children = ( 129 | 17EE867C25CD9915002F15B3 /* framing.c */, 130 | 17EE867D25CD9915002F15B3 /* crctable.h */, 131 | 17EE867E25CD9915002F15B3 /* bitwise.c */, 132 | ); 133 | path = src; 134 | sourceTree = ""; 135 | }; 136 | /* End PBXGroup section */ 137 | 138 | /* Begin PBXHeadersBuildPhase section */ 139 | 17E5BB6525C817C20061F232 /* Headers */ = { 140 | isa = PBXHeadersBuildPhase; 141 | buildActionMask = 2147483647; 142 | files = ( 143 | 17EE868025CD9915002F15B3 /* crctable.h in Headers */, 144 | 17EE867725CD990C002F15B3 /* ogg.h in Headers */, 145 | 17EE867825CD990C002F15B3 /* os_types.h in Headers */, 146 | 17CBC68325DEDE5B00B2F7E7 /* COPYING in Headers */, 147 | 17E5BBAE25C819910061F232 /* ogg_swift.h in Headers */, 148 | ); 149 | runOnlyForDeploymentPostprocessing = 0; 150 | }; 151 | /* End PBXHeadersBuildPhase section */ 152 | 153 | /* Begin PBXNativeTarget section */ 154 | 17E5BB6925C817C20061F232 /* ogg-swift */ = { 155 | isa = PBXNativeTarget; 156 | buildConfigurationList = 17E5BB7E25C817C20061F232 /* Build configuration list for PBXNativeTarget "ogg-swift" */; 157 | buildPhases = ( 158 | 17E5BB6525C817C20061F232 /* Headers */, 159 | 17E5BB6625C817C20061F232 /* Sources */, 160 | 17E5BB6725C817C20061F232 /* Frameworks */, 161 | 17E5BB6825C817C20061F232 /* Resources */, 162 | ); 163 | buildRules = ( 164 | ); 165 | dependencies = ( 166 | ); 167 | name = "ogg-swift"; 168 | productName = "ogg-swift"; 169 | productReference = 17E5BB6A25C817C20061F232 /* YbridOgg.framework */; 170 | productType = "com.apple.product-type.framework"; 171 | }; 172 | 17EE842625CC493A002F15B3 /* ogg-swiftUITests */ = { 173 | isa = PBXNativeTarget; 174 | buildConfigurationList = 17EE842E25CC493A002F15B3 /* Build configuration list for PBXNativeTarget "ogg-swiftUITests" */; 175 | buildPhases = ( 176 | 17EE842325CC493A002F15B3 /* Sources */, 177 | 17EE842425CC493A002F15B3 /* Frameworks */, 178 | 17EE842525CC493A002F15B3 /* Resources */, 179 | ); 180 | buildRules = ( 181 | ); 182 | dependencies = ( 183 | 17CBC63B25DE870800B2F7E7 /* PBXTargetDependency */, 184 | ); 185 | name = "ogg-swiftUITests"; 186 | productName = "ogg-swiftUITests"; 187 | productReference = 17EE842725CC493A002F15B3 /* ogg-swiftUITests.xctest */; 188 | productType = "com.apple.product-type.bundle.ui-testing"; 189 | }; 190 | /* End PBXNativeTarget section */ 191 | 192 | /* Begin PBXProject section */ 193 | 17E5BB6125C817C20061F232 /* Project object */ = { 194 | isa = PBXProject; 195 | attributes = { 196 | LastSwiftUpdateCheck = 1240; 197 | LastUpgradeCheck = 1240; 198 | TargetAttributes = { 199 | 17E5BB6925C817C20061F232 = { 200 | CreatedOnToolsVersion = 12.4; 201 | }; 202 | 17EE842625CC493A002F15B3 = { 203 | CreatedOnToolsVersion = 12.4; 204 | LastSwiftMigration = 1240; 205 | }; 206 | }; 207 | }; 208 | buildConfigurationList = 17E5BB6425C817C20061F232 /* Build configuration list for PBXProject "ogg-swift" */; 209 | compatibilityVersion = "Xcode 9.3"; 210 | developmentRegion = en; 211 | hasScannedForEncodings = 0; 212 | knownRegions = ( 213 | en, 214 | Base, 215 | ); 216 | mainGroup = 17E5BB6025C817C20061F232; 217 | productRefGroup = 17E5BB6B25C817C20061F232 /* Products */; 218 | projectDirPath = ""; 219 | projectRoot = ""; 220 | targets = ( 221 | 17E5BB6925C817C20061F232 /* ogg-swift */, 222 | 17EE842625CC493A002F15B3 /* ogg-swiftUITests */, 223 | ); 224 | }; 225 | /* End PBXProject section */ 226 | 227 | /* Begin PBXResourcesBuildPhase section */ 228 | 17E5BB6825C817C20061F232 /* Resources */ = { 229 | isa = PBXResourcesBuildPhase; 230 | buildActionMask = 2147483647; 231 | files = ( 232 | 17CBC68025DEDE4300B2F7E7 /* COPYING in Resources */, 233 | 17E5BC7425C84AA40061F232 /* Config.xcconfig in Resources */, 234 | ); 235 | runOnlyForDeploymentPostprocessing = 0; 236 | }; 237 | 17EE842525CC493A002F15B3 /* Resources */ = { 238 | isa = PBXResourcesBuildPhase; 239 | buildActionMask = 2147483647; 240 | files = ( 241 | 17EE843425CC4A63002F15B3 /* YbridOgg.framework in Resources */, 242 | ); 243 | runOnlyForDeploymentPostprocessing = 0; 244 | }; 245 | /* End PBXResourcesBuildPhase section */ 246 | 247 | /* Begin PBXSourcesBuildPhase section */ 248 | 17E5BB6625C817C20061F232 /* Sources */ = { 249 | isa = PBXSourcesBuildPhase; 250 | buildActionMask = 2147483647; 251 | files = ( 252 | 17EE867F25CD9915002F15B3 /* framing.c in Sources */, 253 | 17EE868125CD9915002F15B3 /* bitwise.c in Sources */, 254 | ); 255 | runOnlyForDeploymentPostprocessing = 0; 256 | }; 257 | 17EE842325CC493A002F15B3 /* Sources */ = { 258 | isa = PBXSourcesBuildPhase; 259 | buildActionMask = 2147483647; 260 | files = ( 261 | 17EE842A25CC493A002F15B3 /* oggPlatformTests.swift in Sources */, 262 | ); 263 | runOnlyForDeploymentPostprocessing = 0; 264 | }; 265 | /* End PBXSourcesBuildPhase section */ 266 | 267 | /* Begin PBXTargetDependency section */ 268 | 17CBC63B25DE870800B2F7E7 /* PBXTargetDependency */ = { 269 | isa = PBXTargetDependency; 270 | target = 17E5BB6925C817C20061F232 /* ogg-swift */; 271 | targetProxy = 17CBC63A25DE870800B2F7E7 /* PBXContainerItemProxy */; 272 | }; 273 | /* End PBXTargetDependency section */ 274 | 275 | /* Begin XCBuildConfiguration section */ 276 | 17E5BB7C25C817C20061F232 /* Debug */ = { 277 | isa = XCBuildConfiguration; 278 | baseConfigurationReference = 17E5BC7325C84AA40061F232 /* Config.xcconfig */; 279 | buildSettings = { 280 | ALWAYS_SEARCH_USER_PATHS = NO; 281 | CLANG_ANALYZER_NONNULL = YES; 282 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 283 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 284 | CLANG_CXX_LIBRARY = "libc++"; 285 | CLANG_ENABLE_MODULES = YES; 286 | CLANG_ENABLE_OBJC_ARC = YES; 287 | CLANG_ENABLE_OBJC_WEAK = YES; 288 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 289 | CLANG_WARN_BOOL_CONVERSION = YES; 290 | CLANG_WARN_COMMA = YES; 291 | CLANG_WARN_CONSTANT_CONVERSION = YES; 292 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 293 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 294 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 295 | CLANG_WARN_EMPTY_BODY = YES; 296 | CLANG_WARN_ENUM_CONVERSION = YES; 297 | CLANG_WARN_INFINITE_RECURSION = YES; 298 | CLANG_WARN_INT_CONVERSION = YES; 299 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 300 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 301 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 302 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 303 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 304 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 305 | CLANG_WARN_STRICT_PROTOTYPES = YES; 306 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 307 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 308 | CLANG_WARN_UNREACHABLE_CODE = YES; 309 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 310 | COPY_PHASE_STRIP = NO; 311 | CURRENT_PROJECT_VERSION = "$(inherited)"; 312 | DEBUG_INFORMATION_FORMAT = dwarf; 313 | ENABLE_STRICT_OBJC_MSGSEND = YES; 314 | ENABLE_TESTABILITY = YES; 315 | GCC_C_LANGUAGE_STANDARD = gnu11; 316 | GCC_DYNAMIC_NO_PIC = NO; 317 | GCC_NO_COMMON_BLOCKS = YES; 318 | GCC_OPTIMIZATION_LEVEL = 0; 319 | GCC_PREPROCESSOR_DEFINITIONS = ( 320 | "DEBUG=1", 321 | "$(inherited)", 322 | ); 323 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 324 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 325 | GCC_WARN_UNDECLARED_SELECTOR = YES; 326 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 327 | GCC_WARN_UNUSED_FUNCTION = YES; 328 | GCC_WARN_UNUSED_VARIABLE = YES; 329 | MARKETING_VERSION = "$(inherited)"; 330 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 331 | MTL_FAST_MATH = YES; 332 | ONLY_ACTIVE_ARCH = YES; 333 | PRODUCT_BUNDLE_IDENTIFIER = "io.ybrid.ogg-swift"; 334 | PRODUCT_NAME = YbridOgg; 335 | SDKROOT = ""; 336 | SUPPORTS_MACCATALYST = YES; 337 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 338 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 339 | VERSIONING_SYSTEM = "apple-generic"; 340 | }; 341 | name = Debug; 342 | }; 343 | 17E5BB7D25C817C20061F232 /* Release */ = { 344 | isa = XCBuildConfiguration; 345 | baseConfigurationReference = 17E5BC7325C84AA40061F232 /* Config.xcconfig */; 346 | buildSettings = { 347 | ALWAYS_SEARCH_USER_PATHS = NO; 348 | CLANG_ANALYZER_NONNULL = YES; 349 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 350 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 351 | CLANG_CXX_LIBRARY = "libc++"; 352 | CLANG_ENABLE_MODULES = YES; 353 | CLANG_ENABLE_OBJC_ARC = YES; 354 | CLANG_ENABLE_OBJC_WEAK = YES; 355 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 356 | CLANG_WARN_BOOL_CONVERSION = YES; 357 | CLANG_WARN_COMMA = YES; 358 | CLANG_WARN_CONSTANT_CONVERSION = YES; 359 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 360 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 361 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 362 | CLANG_WARN_EMPTY_BODY = YES; 363 | CLANG_WARN_ENUM_CONVERSION = YES; 364 | CLANG_WARN_INFINITE_RECURSION = YES; 365 | CLANG_WARN_INT_CONVERSION = YES; 366 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 367 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 368 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 369 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 370 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 371 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 372 | CLANG_WARN_STRICT_PROTOTYPES = YES; 373 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 374 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 375 | CLANG_WARN_UNREACHABLE_CODE = YES; 376 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 377 | COPY_PHASE_STRIP = NO; 378 | CURRENT_PROJECT_VERSION = "$(inherited)"; 379 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 380 | ENABLE_NS_ASSERTIONS = NO; 381 | ENABLE_STRICT_OBJC_MSGSEND = YES; 382 | GCC_C_LANGUAGE_STANDARD = gnu11; 383 | GCC_NO_COMMON_BLOCKS = YES; 384 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 385 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 386 | GCC_WARN_UNDECLARED_SELECTOR = YES; 387 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 388 | GCC_WARN_UNUSED_FUNCTION = YES; 389 | GCC_WARN_UNUSED_VARIABLE = YES; 390 | MARKETING_VERSION = "$(inherited)"; 391 | MTL_ENABLE_DEBUG_INFO = NO; 392 | MTL_FAST_MATH = YES; 393 | PRODUCT_BUNDLE_IDENTIFIER = "io.ybrid.ogg-swift"; 394 | PRODUCT_NAME = YbridOgg; 395 | SDKROOT = ""; 396 | SUPPORTS_MACCATALYST = YES; 397 | SWIFT_COMPILATION_MODE = wholemodule; 398 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 399 | VALIDATE_PRODUCT = YES; 400 | VERSIONING_SYSTEM = "apple-generic"; 401 | }; 402 | name = Release; 403 | }; 404 | 17E5BB7F25C817C20061F232 /* Debug */ = { 405 | isa = XCBuildConfiguration; 406 | buildSettings = { 407 | CODE_SIGN_STYLE = Automatic; 408 | CURRENT_PROJECT_VERSION = "$(inherited)"; 409 | DEFINES_MODULE = YES; 410 | DEVELOPMENT_TEAM = J327NUG776; 411 | DYLIB_COMPATIBILITY_VERSION = 1; 412 | DYLIB_CURRENT_VERSION = 1; 413 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 414 | HEADER_SEARCH_PATHS = "include/**"; 415 | INFOPLIST_FILE = "ogg-swift/Info.plist"; 416 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 417 | LD_RUNPATH_SEARCH_PATHS = ( 418 | "$(inherited)", 419 | "@executable_path/Frameworks", 420 | "@loader_path/Frameworks", 421 | ); 422 | MODULEMAP_FILE = "ogg-swift/module.modulemap"; 423 | PRODUCT_BUNDLE_IDENTIFIER = "$(inherited)"; 424 | PRODUCT_NAME = "$(inherited)"; 425 | PROVISIONING_PROFILE_SPECIFIER = ""; 426 | SKIP_INSTALL = YES; 427 | TARGETED_DEVICE_FAMILY = "1,2,6"; 428 | }; 429 | name = Debug; 430 | }; 431 | 17E5BB8025C817C20061F232 /* Release */ = { 432 | isa = XCBuildConfiguration; 433 | buildSettings = { 434 | CODE_SIGN_STYLE = Automatic; 435 | CURRENT_PROJECT_VERSION = "$(inherited)"; 436 | DEFINES_MODULE = YES; 437 | DEVELOPMENT_TEAM = J327NUG776; 438 | DYLIB_COMPATIBILITY_VERSION = 1; 439 | DYLIB_CURRENT_VERSION = 1; 440 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 441 | HEADER_SEARCH_PATHS = "include/**"; 442 | INFOPLIST_FILE = "ogg-swift/Info.plist"; 443 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 444 | LD_RUNPATH_SEARCH_PATHS = ( 445 | "$(inherited)", 446 | "@executable_path/Frameworks", 447 | "@loader_path/Frameworks", 448 | ); 449 | MODULEMAP_FILE = "ogg-swift/module.modulemap"; 450 | PRODUCT_BUNDLE_IDENTIFIER = "$(inherited)"; 451 | PRODUCT_NAME = "$(inherited)"; 452 | PROVISIONING_PROFILE_SPECIFIER = ""; 453 | SKIP_INSTALL = YES; 454 | TARGETED_DEVICE_FAMILY = "1,2,6"; 455 | }; 456 | name = Release; 457 | }; 458 | 17EE842C25CC493A002F15B3 /* Debug */ = { 459 | isa = XCBuildConfiguration; 460 | buildSettings = { 461 | CODE_SIGN_IDENTITY = "Apple Development"; 462 | CODE_SIGN_STYLE = Automatic; 463 | DEVELOPMENT_TEAM = J327NUG776; 464 | INFOPLIST_FILE = "ogg-swiftUITests/Info.plist"; 465 | LD_RUNPATH_SEARCH_PATHS = ( 466 | "$(inherited)", 467 | "@executable_path/Frameworks", 468 | "@loader_path/Frameworks", 469 | "@loader_path", 470 | ); 471 | OTHER_LDFLAGS = ( 472 | "-framework", 473 | YbridOgg, 474 | ); 475 | PRODUCT_BUNDLE_IDENTIFIER = "io.ybrid.ogg-swiftUITests"; 476 | PRODUCT_NAME = "ogg-swiftUITests"; 477 | PROVISIONING_PROFILE = ""; 478 | PROVISIONING_PROFILE_SPECIFIER = ""; 479 | SDKROOT = iphoneos; 480 | TARGETED_DEVICE_FAMILY = "1,2"; 481 | }; 482 | name = Debug; 483 | }; 484 | 17EE842D25CC493A002F15B3 /* Release */ = { 485 | isa = XCBuildConfiguration; 486 | buildSettings = { 487 | CODE_SIGN_IDENTITY = "Apple Development"; 488 | CODE_SIGN_STYLE = Automatic; 489 | DEVELOPMENT_TEAM = J327NUG776; 490 | INFOPLIST_FILE = "ogg-swiftUITests/Info.plist"; 491 | LD_RUNPATH_SEARCH_PATHS = ( 492 | "$(inherited)", 493 | "@executable_path/Frameworks", 494 | "@loader_path/Frameworks", 495 | "@loader_path", 496 | ); 497 | OTHER_LDFLAGS = ( 498 | "-framework", 499 | YbridOgg, 500 | ); 501 | PRODUCT_BUNDLE_IDENTIFIER = "io.ybrid.ogg-swiftUITests"; 502 | PRODUCT_NAME = "ogg-swiftUITests"; 503 | PROVISIONING_PROFILE = ""; 504 | PROVISIONING_PROFILE_SPECIFIER = ""; 505 | SDKROOT = iphoneos; 506 | TARGETED_DEVICE_FAMILY = "1,2"; 507 | }; 508 | name = Release; 509 | }; 510 | /* End XCBuildConfiguration section */ 511 | 512 | /* Begin XCConfigurationList section */ 513 | 17E5BB6425C817C20061F232 /* Build configuration list for PBXProject "ogg-swift" */ = { 514 | isa = XCConfigurationList; 515 | buildConfigurations = ( 516 | 17E5BB7C25C817C20061F232 /* Debug */, 517 | 17E5BB7D25C817C20061F232 /* Release */, 518 | ); 519 | defaultConfigurationIsVisible = 0; 520 | defaultConfigurationName = Release; 521 | }; 522 | 17E5BB7E25C817C20061F232 /* Build configuration list for PBXNativeTarget "ogg-swift" */ = { 523 | isa = XCConfigurationList; 524 | buildConfigurations = ( 525 | 17E5BB7F25C817C20061F232 /* Debug */, 526 | 17E5BB8025C817C20061F232 /* Release */, 527 | ); 528 | defaultConfigurationIsVisible = 0; 529 | defaultConfigurationName = Release; 530 | }; 531 | 17EE842E25CC493A002F15B3 /* Build configuration list for PBXNativeTarget "ogg-swiftUITests" */ = { 532 | isa = XCConfigurationList; 533 | buildConfigurations = ( 534 | 17EE842C25CC493A002F15B3 /* Debug */, 535 | 17EE842D25CC493A002F15B3 /* Release */, 536 | ); 537 | defaultConfigurationIsVisible = 0; 538 | defaultConfigurationName = Release; 539 | }; 540 | /* End XCConfigurationList section */ 541 | }; 542 | rootObject = 17E5BB6125C817C20061F232 /* Project object */; 543 | } 544 | -------------------------------------------------------------------------------- /ogg-swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ogg-swift.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ogg-swift.xcodeproj/xcshareddata/xcschemes/ogg-swift.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 57 | 58 | 59 | 60 | 62 | 63 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /ogg-swift.xcodeproj/xcshareddata/xcschemes/ogg-swiftUITests.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 53 | 54 | 60 | 61 | 63 | 64 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /ogg-swift/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleDisplayName 8 | ogg-swift 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleGetInfoString 12 | libogg wrapper framework for swift 13 | CFBundleIdentifier 14 | $(PRODUCT_BUNDLE_IDENTIFIER) 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | $(PRODUCT_NAME) 19 | CFBundlePackageType 20 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 21 | CFBundleShortVersionString 22 | $(MARKETING_VERSION) 23 | CFBundleVersion 24 | $(CURRENT_PROJECT_VERSION) 25 | NSHumanReadableCopyright 26 | Copyright (c) 2021 nacamar GmbH - Ybrid®, a Hybrid Dynamic Live Audio Technology 27 | 28 | 29 | -------------------------------------------------------------------------------- /ogg-swift/module.modulemap: -------------------------------------------------------------------------------- 1 | // 2 | // module.modulemap 3 | // ogg-swift 4 | // 5 | // Copyright (c) 2021 nacamar GmbH - Ybrid®, a Hybrid Dynamic Live Audio Technology 6 | // 7 | // Permission is hereby granted, free of charge, to any person obtaining a copy 8 | // of this software and associated documentation files (the "Software"), to deal 9 | // in the Software without restriction, including without limitation the rights 10 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | // copies of the Software, and to permit persons to whom the Software is 12 | // furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all 15 | // copies or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | // SOFTWARE. 24 | // 25 | 26 | framework module YbridOgg { 27 | umbrella header "ogg_swift.h" 28 | export * 29 | } 30 | -------------------------------------------------------------------------------- /ogg-swift/ogg_swift.h: -------------------------------------------------------------------------------- 1 | // 2 | // ogg_swift.h 3 | // ogg-swift 4 | // 5 | // Copyright (c) 2021 nacamar GmbH - Ybrid®, a Hybrid Dynamic Live Audio Technology 6 | // 7 | // Permission is hereby granted, free of charge, to any person obtaining a copy 8 | // of this software and associated documentation files (the "Software"), to deal 9 | // in the Software without restriction, including without limitation the rights 10 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | // copies of the Software, and to permit persons to whom the Software is 12 | // furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all 15 | // copies or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | // SOFTWARE. 24 | // 25 | 26 | #include 27 | 28 | #if TARGET_OS_IPHONE 29 | @import UIKit; 30 | #else 31 | @import AppKit; 32 | #endif 33 | 34 | #include "ogg.h" 35 | -------------------------------------------------------------------------------- /ogg-swiftUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /ogg-swiftUITests/oggPlatformTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ogg_swiftUITests.swift 3 | // ogg-swiftUITests 4 | // 5 | // Copyright (c) 2021 nacamar GmbH - Ybrid®, a Hybrid Dynamic Live Audio Technology 6 | // 7 | // Permission is hereby granted, free of charge, to any person obtaining a copy 8 | // of this software and associated documentation files (the "Software"), to deal 9 | // in the Software without restriction, including without limitation the rights 10 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | // copies of the Software, and to permit persons to whom the Software is 12 | // furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in all 15 | // copies or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | // SOFTWARE. 24 | // 25 | 26 | import XCTest 27 | import YbridOgg 28 | 29 | class oggPlatformTests: XCTestCase { 30 | 31 | func testBundleInfo() throws { 32 | let oggBundleIdentifier = "io.ybrid.ogg-swift" 33 | 34 | guard let bundle = Bundle(identifier: oggBundleIdentifier) else { 35 | XCTFail("no bundle identifier '\(oggBundleIdentifier)' found") 36 | return 37 | } 38 | guard let info = bundle.infoDictionary else { 39 | XCTFail("no infoDictionary on bundle '\(oggBundleIdentifier)' found") 40 | return 41 | } 42 | print("-- infoDictionary is '\(info)'") 43 | 44 | let version = info["CFBundleShortVersionString"] as! String 45 | XCTAssertNotNil(version) 46 | let name = info["CFBundleName"] as! String 47 | XCTAssertEqual("YbridOgg", name) 48 | let copyright = info["NSHumanReadableCopyright"] as! String 49 | XCTAssertTrue(copyright.contains("nacamar")) 50 | 51 | let build = info["CFBundleVersion"] as! String 52 | print("-- version of \(name) is \(version) (build \(build))") 53 | } 54 | 55 | func testOggAvailable() { 56 | var oggSyncState = ogg_sync_state() 57 | print("-- ogg_sync_state() is '\(oggSyncState)\'") 58 | XCTAssertNotNil(oggSyncState) 59 | XCTAssertEqual(0, oggSyncState.returned) 60 | ogg_sync_init(&oggSyncState) 61 | ogg_sync_clear(&oggSyncState) 62 | print("-- ogg_sync_state() is '\(oggSyncState)\'") 63 | XCTAssertEqual(0, oggSyncState.returned) 64 | } 65 | 66 | } 67 | -------------------------------------------------------------------------------- /pod_check.sh: -------------------------------------------------------------------------------- 1 | pod lib lint --verbose 2 | -------------------------------------------------------------------------------- /pod_push.sh: -------------------------------------------------------------------------------- 1 | # public 2 | # pod trunk register florian.nowotny@nacamar.de 'Florian Nowotny' --description='macbook pro' 3 | # session needs to be confirmed by email 4 | pod trunk push YbridOgg.podspec --allow-warnings --verbose 5 | 6 | # private 7 | #pod repo push Private-CocoaPods YbridOgg.podspec --allow-warnings --verbose 8 | -------------------------------------------------------------------------------- /prepare.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # MIT License 4 | 5 | # Copyright (c) 2021 Ybrid®, a Hybrid Dynamic Live Audio Technology 6 | 7 | # Permission is hereby granted, free of charge, to any person obtaining a copy 8 | # of this software and associated documentation files (the "Software"), to deal 9 | # in the Software without restriction, including without limitation the rights 10 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | # copies of the Software, and to permit persons to whom the Software is 12 | # furnished to do so, subject to the following conditions: 13 | 14 | # The above copyright notice and this permission notice shall be included in all 15 | # copies or substantial portions of the Software. 16 | 17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | # SOFTWARE. 24 | 25 | # 26 | # prepares XCode project with sources from Xiph.org. 27 | # 28 | # Preconditions: 29 | # - XCode installed 30 | 31 | 32 | liboggDownload="https://downloads.xiph.org/releases/ogg/libogg-1.3.4.zip" 33 | here=$(pwd) 34 | 35 | logfile="$here/prepare.log" 36 | rm -rf libogg* > $logfile 37 | 38 | wget $liboggDownload >> $logfile 39 | unzip `basename $liboggDownload` >> $logfile 40 | 41 | liboggDir=`basename $liboggDownload | sed "s/\.zip$//"` 42 | cd $liboggDir 43 | ./configure >> $logfile 44 | 45 | cd $here 46 | echo "copy sources into ogg-swift.xcodeproj" 47 | # pattern to flatten all ogg includes 48 | modifyIncludesPattern='s||"\1"|g' 49 | modifiedMarkerPattern='1s|^|// this file has been modified by nacamar GmbH\n|' 50 | for f in $liboggDir/include/ogg/*.h; do 51 | file=`basename $f` 52 | echo "copying $file with flattened ogg includes" 53 | sed -r $modifyIncludesPattern $f > include/$file 54 | sed -i '' "$modifiedMarkerPattern" include/$file 55 | done 56 | for f in $liboggDir/src/*.{h,c}; do 57 | file=`basename $f` 58 | echo "copying $file with flattened ogg includes" 59 | sed -r $modifyIncludesPattern $f > src/$file 60 | sed -i '' "$modifiedMarkerPattern" src/$file 61 | done 62 | cp $liboggDir/COPYING include 63 | echo "ogg-swift.xcodeproj is ready, check $logfile" -------------------------------------------------------------------------------- /test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # MIT License 4 | 5 | # Copyright (c) 2021 Ybrid®, a Hybrid Dynamic Live Audio Technology 6 | 7 | # Permission is hereby granted, free of charge, to any person obtaining a copy 8 | # of this software and associated documentation files (the "Software"), to deal 9 | # in the Software without restriction, including without limitation the rights 10 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | # copies of the Software, and to permit persons to whom the Software is 12 | # furnished to do so, subject to the following conditions: 13 | 14 | # The above copyright notice and this permission notice shall be included in all 15 | # copies or substantial portions of the Software. 16 | 17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | # SOFTWARE. 24 | 25 | # 26 | # Test ogg frameworks on different platforms. 27 | # 28 | # Usage: no parameters, settings mostly defined in xcode xcodeworkspace 29 | # 30 | 31 | scheme=ogg-swiftUITests 32 | target=ogg-swiftUITests 33 | testing="-only-testing $target/oggPlatformTests" 34 | 35 | logbase="test-" 36 | rm -f "$logbase*.log" 37 | 38 | grepToStdoutPattern="^\s*Executed\s\d*\stests|^\*\* TEST" 39 | 40 | # simulators 41 | platform=iphonesimulator 42 | 43 | device="iPhone 11 Pro" 44 | logfile=$logbase$device.log 45 | echo "testing with $platform on $device" 46 | xcodebuild -scheme $scheme -destination "name=$device" -sdk $platform \ 47 | test $testing 2>&1 > "$logfile" 48 | result=`cat "$logfile" | grep -E "$grepToStdoutPattern"` 49 | echo "$result, see $logfile" 50 | echo "---------------------------------" 51 | 52 | device="iPhone 6s" 53 | logfile=$logbase$device.log 54 | echo "testing with $platform on $device" 55 | xcodebuild -scheme $scheme -destination "platform=iOS Simulator,OS=11.4,name=$device" -sdk $platform \ 56 | test $testing 2>&1 > "$logfile" 57 | result=`cat "$logfile" | grep -E "$grepToStdoutPattern"` 58 | echo "$result, see $logfile" 59 | echo "---------------------------------" 60 | 61 | # macs 62 | platform=macosx 63 | 64 | device='Any Mac' 65 | echo "testing with $platform on $device" 66 | logfile=$logbase$device.log 67 | xcodebuild -scheme $scheme -destination='generic/platform=macOS,variant=Mac Catalyst,name=$device' \ 68 | -sdk $platform test $testing 2>&1 > "$logfile" 69 | result=`cat "$logfile" | grep -E "$grepToStdoutPattern"` 70 | echo "$result, see $logfile" 71 | echo "---------------------------------" 72 | 73 | device="My Mac" 74 | echo "testing with $platform on $device" 75 | logfile=$logbase$device.log 76 | xcodebuild -scheme $scheme -destination='$device' -sdk $platform \ 77 | test $testing 2>&1 > "$logfile" 78 | result=`cat "$logfile" | grep -E "$grepToStdoutPattern"` 79 | echo "$result, see $logfile" 80 | echo "---------------------------------" 81 | 82 | # real ios devices 83 | # ## You may run tests on your own connected device 84 | platform=iphoneos 85 | # #device="Nacamars iPad Air" # iOS 12 86 | # #device="Nacamar's iPad Mini" # iOS 9 87 | # device="iPhone von Florian" # iOS 14 88 | # echo "testing with $platform on $device" 89 | # logfile=$logbase$device.log 90 | # xcodebuild -scheme $scheme -destination "platform=iOS,name=$device" -sdk $platform \ 91 | # test $testing 2>&1 > "$logfile" 92 | # result=`cat "$logfile" | grep -E "$grepToStdoutPattern"` 93 | # echo "$result, see $logfile" 94 | # echo "---------------------------------" 95 | 96 | echo "done." --------------------------------------------------------------------------------