From 18fc7353f9a2867bbf3ad444c7f97e3dec9bbc44 Mon Sep 17 00:00:00 2001 From: Thong Nguyen Date: Mon, 20 Jan 2014 15:42:28 +0000 Subject: [PATCH] Renamed project to StreamingKit and addded STK classes prefixes. Separated library and sample app into discrete projects inside a workspace. --- Audjustable.xcodeproj/project.pbxproj | 489 ----------------- .../contents.xcworkspacedata | 7 - .../Audjustable Test Project.xcscheme | 86 --- .../audjustable static library.xcscheme | 59 -- Audjustable/main.m | 18 - Default-568h@2x.png | Bin 18594 -> 0 bytes .../ExampleApp.xcodeproj/project.pbxproj | 506 ++++++++++++++++++ .../ExampleApp}/AppDelegate.h | 11 +- .../ExampleApp}/AppDelegate.m | 28 +- .../ExampleApp}/AudioPlayerView.h | 6 +- .../ExampleApp}/AudioPlayerView.m | 39 +- .../ExampleApp/ExampleApp-Info.plist | 2 +- .../ExampleApp/ExampleApp-Prefix.pch | 4 +- .../AppIcon.appiconset/Contents.json | 53 ++ .../LaunchImage.launchimage/Contents.json | 51 ++ .../ExampleApp/Resources}/sample.m4a | Bin ExampleApp/ExampleApp/SampleQueueId.h | 17 + ExampleApp/ExampleApp/SampleQueueId.m | 39 ++ .../ExampleApp}/en.lproj/InfoPlist.strings | 0 ExampleApp/ExampleApp/main.m | 19 + .../ExampleAppTests-Info.plist | 22 + ExampleApp/ExampleAppTests/ExampleAppTests.m | 34 ++ .../en.lproj/InfoPlist.strings | 2 + README.md | 34 +- ...-head.podspec => StreamingKit-head.podspec | 8 +- Audjustable.podspec => StreamingKit.podspec | 0 .../contents.xcworkspacedata | 10 + .../xcshareddata/StreamingKit.xccheckout | 16 +- .../StreamingKit.xcodeproj/project.pbxproj | 467 ++++++++++++++++ .../StreamingKit/STKAudioPlayer.h | 34 +- .../StreamingKit/STKAudioPlayer.m | 26 +- .../STKAutoRecoveringHttpDataSource.h | 8 +- .../STKAutoRecoveringHttpDataSource.m | 8 +- .../STKCoreFoundationDataSource.h | 8 +- .../STKCoreFoundationDataSource.m | 8 +- .../StreamingKit/STKDataSource.h | 4 +- .../StreamingKit/STKDataSource.m | 2 +- .../StreamingKit/STKDataSourceWrapper.h | 4 +- .../StreamingKit/STKDataSourceWrapper.m | 2 +- .../StreamingKit/STKHttpDataSource.h | 6 +- .../StreamingKit/STKHttpDataSource.m | 15 +- .../StreamingKit/STKLocalFileDataSource.h | 4 +- .../StreamingKit/STKLocalFileDataSource.m | 4 +- .../StreamingKit/StreamingKit-Prefix.pch | 9 + .../StreamingKitTests-Info.plist | 22 + .../StreamingKitTests/StreamingKitTests.m | 34 ++ .../en.lproj/InfoPlist.strings | 2 + 47 files changed, 1448 insertions(+), 779 deletions(-) delete mode 100644 Audjustable.xcodeproj/project.pbxproj delete mode 100644 Audjustable.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 Audjustable.xcodeproj/xcshareddata/xcschemes/Audjustable Test Project.xcscheme delete mode 100644 Audjustable.xcodeproj/xcshareddata/xcschemes/audjustable static library.xcscheme delete mode 100644 Audjustable/main.m delete mode 100644 Default-568h@2x.png create mode 100644 ExampleApp/ExampleApp.xcodeproj/project.pbxproj rename {Audjustable => ExampleApp/ExampleApp}/AppDelegate.h (56%) rename {Audjustable => ExampleApp/ExampleApp}/AppDelegate.m (72%) rename {Audjustable/Classes => ExampleApp/ExampleApp}/AudioPlayerView.h (94%) rename {Audjustable/Classes => ExampleApp/ExampleApp}/AudioPlayerView.m (77%) rename Audjustable/Audjustable-Info.plist => ExampleApp/ExampleApp/ExampleApp-Info.plist (95%) rename Audjustable/Audjustable-Prefix.pch => ExampleApp/ExampleApp/ExampleApp-Prefix.pch (66%) create mode 100644 ExampleApp/ExampleApp/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ExampleApp/ExampleApp/Images.xcassets/LaunchImage.launchimage/Contents.json rename {Audjustable => ExampleApp/ExampleApp/Resources}/sample.m4a (100%) create mode 100644 ExampleApp/ExampleApp/SampleQueueId.h create mode 100644 ExampleApp/ExampleApp/SampleQueueId.m rename {Audjustable => ExampleApp/ExampleApp}/en.lproj/InfoPlist.strings (100%) create mode 100644 ExampleApp/ExampleApp/main.m create mode 100644 ExampleApp/ExampleAppTests/ExampleAppTests-Info.plist create mode 100644 ExampleApp/ExampleAppTests/ExampleAppTests.m create mode 100644 ExampleApp/ExampleAppTests/en.lproj/InfoPlist.strings rename Audjustable-head.podspec => StreamingKit-head.podspec (64%) rename Audjustable.podspec => StreamingKit.podspec (100%) create mode 100644 StreamingKit.xcworkspace/contents.xcworkspacedata rename Audjustable.xcodeproj/project.xcworkspace/xcshareddata/Audjustable.xccheckout => StreamingKit.xcworkspace/xcshareddata/StreamingKit.xccheckout (74%) create mode 100644 StreamingKit/StreamingKit.xcodeproj/project.pbxproj rename Audjustable/Classes/AudioPlayer/AudioPlayer.h => StreamingKit/StreamingKit/STKAudioPlayer.h (84%) rename Audjustable/Classes/AudioPlayer/AudioPlayer.m => StreamingKit/StreamingKit/STKAudioPlayer.m (99%) rename Audjustable/Classes/AudioPlayer/AutoRecoveringHttpDataSource.h => StreamingKit/StreamingKit/STKAutoRecoveringHttpDataSource.h (93%) rename Audjustable/Classes/AudioPlayer/AutoRecoveringHttpDataSource.m => StreamingKit/StreamingKit/STKAutoRecoveringHttpDataSource.m (96%) rename Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.h => StreamingKit/StreamingKit/STKCoreFoundationDataSource.h (92%) rename Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.m => StreamingKit/StreamingKit/STKCoreFoundationDataSource.m (95%) rename Audjustable/Classes/AudioPlayer/DataSource.h => StreamingKit/StreamingKit/STKDataSource.h (95%) rename Audjustable/Classes/AudioPlayer/DataSource.m => StreamingKit/StreamingKit/STKDataSource.m (98%) rename Audjustable/Classes/AudioPlayer/DataSourceWrapper.h => StreamingKit/StreamingKit/STKDataSourceWrapper.h (95%) rename Audjustable/Classes/AudioPlayer/DataSourceWrapper.m => StreamingKit/StreamingKit/STKDataSourceWrapper.m (99%) rename Audjustable/Classes/AudioPlayer/HttpDataSource.h => StreamingKit/StreamingKit/STKHttpDataSource.h (94%) rename Audjustable/Classes/AudioPlayer/HttpDataSource.m => StreamingKit/StreamingKit/STKHttpDataSource.m (96%) rename Audjustable/Classes/AudioPlayer/LocalFileDataSource.h => StreamingKit/StreamingKit/STKLocalFileDataSource.h (95%) rename Audjustable/Classes/AudioPlayer/LocalFileDataSource.m => StreamingKit/StreamingKit/STKLocalFileDataSource.m (98%) create mode 100644 StreamingKit/StreamingKit/StreamingKit-Prefix.pch create mode 100644 StreamingKit/StreamingKitTests/StreamingKitTests-Info.plist create mode 100644 StreamingKit/StreamingKitTests/StreamingKitTests.m create mode 100644 StreamingKit/StreamingKitTests/en.lproj/InfoPlist.strings diff --git a/Audjustable.xcodeproj/project.pbxproj b/Audjustable.xcodeproj/project.pbxproj deleted file mode 100644 index bdc8371..0000000 --- a/Audjustable.xcodeproj/project.pbxproj +++ /dev/null @@ -1,489 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 8AC7AD4816E55CD70069BDE7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A186B4E5157F80E700BD0084 /* Foundation.framework */; }; - 8AC7AD5416E55D260069BDE7 /* AutoRecoveringHttpDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = A16CB9AA162EC4AB00CFD1E8 /* AutoRecoveringHttpDataSource.m */; }; - 8AC7AD5616E55D260069BDE7 /* DataSourceWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = A16CB9AC162EC4AB00CFD1E8 /* DataSourceWrapper.m */; }; - 8AC7AD5816E55D260069BDE7 /* AudioPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = A186B501157F813100BD0084 /* AudioPlayer.m */; }; - 8AC7AD5A16E55D260069BDE7 /* CoreFoundationDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = A186B503157F813100BD0084 /* CoreFoundationDataSource.m */; }; - 8AC7AD5C16E55D260069BDE7 /* DataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = A186B505157F813100BD0084 /* DataSource.m */; }; - 8AC7AD5E16E55D260069BDE7 /* HttpDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = A186B507157F813100BD0084 /* HttpDataSource.m */; }; - 8AC7AD6016E55D260069BDE7 /* LocalFileDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = A186B509157F813100BD0084 /* LocalFileDataSource.m */; }; - A16CB9AD162EC4AB00CFD1E8 /* AutoRecoveringHttpDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = A16CB9AA162EC4AB00CFD1E8 /* AutoRecoveringHttpDataSource.m */; }; - A16CB9AE162EC4AB00CFD1E8 /* DataSourceWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = A16CB9AC162EC4AB00CFD1E8 /* DataSourceWrapper.m */; }; - A16CB9B1162EC5E300CFD1E8 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A16CB9B0162EC5E300CFD1E8 /* SystemConfiguration.framework */; }; - A16CB9B3162EC5E900CFD1E8 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A16CB9B2162EC5E900CFD1E8 /* Default-568h@2x.png */; }; - A186B4E4157F80E700BD0084 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A186B4E3157F80E700BD0084 /* UIKit.framework */; }; - A186B4E6157F80E700BD0084 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A186B4E5157F80E700BD0084 /* Foundation.framework */; }; - A186B4EE157F80E700BD0084 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = A186B4EC157F80E700BD0084 /* InfoPlist.strings */; }; - A186B4F0157F80E700BD0084 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = A186B4EF157F80E700BD0084 /* main.m */; }; - A186B4F4157F80E700BD0084 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A186B4F3157F80E700BD0084 /* AppDelegate.m */; }; - A186B50C157F813100BD0084 /* AudioPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = A186B501157F813100BD0084 /* AudioPlayer.m */; }; - A186B50D157F813100BD0084 /* CoreFoundationDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = A186B503157F813100BD0084 /* CoreFoundationDataSource.m */; }; - A186B50E157F813100BD0084 /* DataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = A186B505157F813100BD0084 /* DataSource.m */; }; - A186B50F157F813100BD0084 /* HttpDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = A186B507157F813100BD0084 /* HttpDataSource.m */; }; - A186B510157F813100BD0084 /* LocalFileDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = A186B509157F813100BD0084 /* LocalFileDataSource.m */; }; - A186B511157F813100BD0084 /* AudioPlayerView.m in Sources */ = {isa = PBXBuildFile; fileRef = A186B50B157F813100BD0084 /* AudioPlayerView.m */; }; - A186B514157F817500BD0084 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A186B513157F817500BD0084 /* AudioToolbox.framework */; }; - A186B518157F818900BD0084 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A186B517157F818900BD0084 /* CoreFoundation.framework */; }; - A186B51A157F819500BD0084 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A186B519157F819500BD0084 /* CFNetwork.framework */; }; - A186B51D157F825400BD0084 /* sample.m4a in Resources */ = {isa = PBXBuildFile; fileRef = A186B51C157F820F00BD0084 /* sample.m4a */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 8AC7AD4516E55CD70069BDE7 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/${PRODUCT_NAME}"; - dstSubfolderSpec = 16; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 8AC7AD4716E55CD70069BDE7 /* libaudjustable.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libaudjustable.a; sourceTree = BUILT_PRODUCTS_DIR; }; - A16CB9A9162EC4AB00CFD1E8 /* AutoRecoveringHttpDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoRecoveringHttpDataSource.h; sourceTree = ""; }; - A16CB9AA162EC4AB00CFD1E8 /* AutoRecoveringHttpDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoRecoveringHttpDataSource.m; sourceTree = ""; }; - A16CB9AB162EC4AB00CFD1E8 /* DataSourceWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataSourceWrapper.h; sourceTree = ""; }; - A16CB9AC162EC4AB00CFD1E8 /* DataSourceWrapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DataSourceWrapper.m; sourceTree = ""; }; - A16CB9B0162EC5E300CFD1E8 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; - A16CB9B2162EC5E900CFD1E8 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-568h@2x.png"; path = "../Default-568h@2x.png"; sourceTree = ""; }; - A186B4DF157F80E600BD0084 /* Audjustable.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Audjustable.app; sourceTree = BUILT_PRODUCTS_DIR; }; - A186B4E3157F80E700BD0084 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - A186B4E5157F80E700BD0084 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - A186B4E7157F80E700BD0084 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - A186B4EB157F80E700BD0084 /* Audjustable-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Audjustable-Info.plist"; sourceTree = ""; }; - A186B4ED157F80E700BD0084 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; - A186B4EF157F80E700BD0084 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - A186B4F1157F80E700BD0084 /* Audjustable-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Audjustable-Prefix.pch"; sourceTree = ""; }; - A186B4F2157F80E700BD0084 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - A186B4F3157F80E700BD0084 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - A186B500157F813100BD0084 /* AudioPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioPlayer.h; sourceTree = ""; }; - A186B501157F813100BD0084 /* AudioPlayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AudioPlayer.m; sourceTree = ""; wrapsLines = 1; }; - A186B502157F813100BD0084 /* CoreFoundationDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreFoundationDataSource.h; sourceTree = ""; }; - A186B503157F813100BD0084 /* CoreFoundationDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CoreFoundationDataSource.m; sourceTree = ""; }; - A186B504157F813100BD0084 /* DataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataSource.h; sourceTree = ""; }; - A186B505157F813100BD0084 /* DataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DataSource.m; sourceTree = ""; }; - A186B506157F813100BD0084 /* HttpDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HttpDataSource.h; sourceTree = ""; }; - A186B507157F813100BD0084 /* HttpDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HttpDataSource.m; sourceTree = ""; }; - A186B508157F813100BD0084 /* LocalFileDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalFileDataSource.h; sourceTree = ""; }; - A186B509157F813100BD0084 /* LocalFileDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LocalFileDataSource.m; sourceTree = ""; }; - A186B50A157F813100BD0084 /* AudioPlayerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioPlayerView.h; sourceTree = ""; }; - A186B50B157F813100BD0084 /* AudioPlayerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AudioPlayerView.m; sourceTree = ""; }; - A186B513157F817500BD0084 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; - A186B517157F818900BD0084 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; }; - A186B519157F819500BD0084 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; }; - A186B51C157F820F00BD0084 /* sample.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = sample.m4a; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8AC7AD4416E55CD70069BDE7 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8AC7AD4816E55CD70069BDE7 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A186B4DC157F80E600BD0084 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A16CB9B1162EC5E300CFD1E8 /* SystemConfiguration.framework in Frameworks */, - A186B51A157F819500BD0084 /* CFNetwork.framework in Frameworks */, - A186B518157F818900BD0084 /* CoreFoundation.framework in Frameworks */, - A186B514157F817500BD0084 /* AudioToolbox.framework in Frameworks */, - A186B4E4157F80E700BD0084 /* UIKit.framework in Frameworks */, - A186B4E6157F80E700BD0084 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - A186B4D4157F80E600BD0084 = { - isa = PBXGroup; - children = ( - A186B4E9157F80E700BD0084 /* Audjustable */, - A186B4E2157F80E700BD0084 /* Frameworks */, - A186B4E0157F80E600BD0084 /* Products */, - ); - sourceTree = ""; - }; - A186B4E0157F80E600BD0084 /* Products */ = { - isa = PBXGroup; - children = ( - A186B4DF157F80E600BD0084 /* Audjustable.app */, - 8AC7AD4716E55CD70069BDE7 /* libaudjustable.a */, - ); - name = Products; - sourceTree = ""; - }; - A186B4E2157F80E700BD0084 /* Frameworks */ = { - isa = PBXGroup; - children = ( - A16CB9B0162EC5E300CFD1E8 /* SystemConfiguration.framework */, - A186B519157F819500BD0084 /* CFNetwork.framework */, - A186B517157F818900BD0084 /* CoreFoundation.framework */, - A186B513157F817500BD0084 /* AudioToolbox.framework */, - A186B4E3157F80E700BD0084 /* UIKit.framework */, - A186B4E5157F80E700BD0084 /* Foundation.framework */, - A186B4E7157F80E700BD0084 /* CoreGraphics.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - A186B4E9157F80E700BD0084 /* Audjustable */ = { - isa = PBXGroup; - children = ( - A186B4FE157F813100BD0084 /* Classes */, - A186B4F2157F80E700BD0084 /* AppDelegate.h */, - A186B4F3157F80E700BD0084 /* AppDelegate.m */, - A186B4EA157F80E700BD0084 /* Supporting Files */, - ); - path = Audjustable; - sourceTree = ""; - }; - A186B4EA157F80E700BD0084 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - A186B51B157F81D900BD0084 /* Resources */, - A186B4EB157F80E700BD0084 /* Audjustable-Info.plist */, - A186B4EC157F80E700BD0084 /* InfoPlist.strings */, - A16CB9B2162EC5E900CFD1E8 /* Default-568h@2x.png */, - A186B4EF157F80E700BD0084 /* main.m */, - A186B4F1157F80E700BD0084 /* Audjustable-Prefix.pch */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - A186B4FE157F813100BD0084 /* Classes */ = { - isa = PBXGroup; - children = ( - A186B4FF157F813100BD0084 /* AudioPlayer */, - A186B50A157F813100BD0084 /* AudioPlayerView.h */, - A186B50B157F813100BD0084 /* AudioPlayerView.m */, - ); - path = Classes; - sourceTree = ""; - }; - A186B4FF157F813100BD0084 /* AudioPlayer */ = { - isa = PBXGroup; - children = ( - A16CB9A9162EC4AB00CFD1E8 /* AutoRecoveringHttpDataSource.h */, - A16CB9AA162EC4AB00CFD1E8 /* AutoRecoveringHttpDataSource.m */, - A16CB9AB162EC4AB00CFD1E8 /* DataSourceWrapper.h */, - A16CB9AC162EC4AB00CFD1E8 /* DataSourceWrapper.m */, - A186B500157F813100BD0084 /* AudioPlayer.h */, - A186B501157F813100BD0084 /* AudioPlayer.m */, - A186B502157F813100BD0084 /* CoreFoundationDataSource.h */, - A186B503157F813100BD0084 /* CoreFoundationDataSource.m */, - A186B504157F813100BD0084 /* DataSource.h */, - A186B505157F813100BD0084 /* DataSource.m */, - A186B506157F813100BD0084 /* HttpDataSource.h */, - A186B507157F813100BD0084 /* HttpDataSource.m */, - A186B508157F813100BD0084 /* LocalFileDataSource.h */, - A186B509157F813100BD0084 /* LocalFileDataSource.m */, - ); - path = AudioPlayer; - sourceTree = ""; - }; - A186B51B157F81D900BD0084 /* Resources */ = { - isa = PBXGroup; - children = ( - A186B51C157F820F00BD0084 /* sample.m4a */, - ); - name = Resources; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8AC7AD4616E55CD70069BDE7 /* audjustable */ = { - isa = PBXNativeTarget; - buildConfigurationList = 8AC7AD5016E55CD70069BDE7 /* Build configuration list for PBXNativeTarget "audjustable" */; - buildPhases = ( - 8AC7AD4316E55CD70069BDE7 /* Sources */, - 8AC7AD4416E55CD70069BDE7 /* Frameworks */, - 8AC7AD4516E55CD70069BDE7 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = audjustable; - productName = audjustable; - productReference = 8AC7AD4716E55CD70069BDE7 /* libaudjustable.a */; - productType = "com.apple.product-type.library.static"; - }; - A186B4DE157F80E600BD0084 /* Audjustable */ = { - isa = PBXNativeTarget; - buildConfigurationList = A186B4F7157F80E700BD0084 /* Build configuration list for PBXNativeTarget "Audjustable" */; - buildPhases = ( - A186B4DB157F80E600BD0084 /* Sources */, - A186B4DC157F80E600BD0084 /* Frameworks */, - A186B4DD157F80E600BD0084 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Audjustable; - productName = Audjustable; - productReference = A186B4DF157F80E600BD0084 /* Audjustable.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - A186B4D6157F80E600BD0084 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0500; - }; - buildConfigurationList = A186B4D9157F80E600BD0084 /* Build configuration list for PBXProject "Audjustable" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = A186B4D4157F80E600BD0084; - productRefGroup = A186B4E0157F80E600BD0084 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - A186B4DE157F80E600BD0084 /* Audjustable */, - 8AC7AD4616E55CD70069BDE7 /* audjustable */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - A186B4DD157F80E600BD0084 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A186B4EE157F80E700BD0084 /* InfoPlist.strings in Resources */, - A186B51D157F825400BD0084 /* sample.m4a in Resources */, - A16CB9B3162EC5E900CFD1E8 /* Default-568h@2x.png in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8AC7AD4316E55CD70069BDE7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8AC7AD5416E55D260069BDE7 /* AutoRecoveringHttpDataSource.m in Sources */, - 8AC7AD5616E55D260069BDE7 /* DataSourceWrapper.m in Sources */, - 8AC7AD5816E55D260069BDE7 /* AudioPlayer.m in Sources */, - 8AC7AD5A16E55D260069BDE7 /* CoreFoundationDataSource.m in Sources */, - 8AC7AD5C16E55D260069BDE7 /* DataSource.m in Sources */, - 8AC7AD5E16E55D260069BDE7 /* HttpDataSource.m in Sources */, - 8AC7AD6016E55D260069BDE7 /* LocalFileDataSource.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A186B4DB157F80E600BD0084 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A186B4F0157F80E700BD0084 /* main.m in Sources */, - A186B4F4157F80E700BD0084 /* AppDelegate.m in Sources */, - A186B50C157F813100BD0084 /* AudioPlayer.m in Sources */, - A186B50D157F813100BD0084 /* CoreFoundationDataSource.m in Sources */, - A186B50E157F813100BD0084 /* DataSource.m in Sources */, - A186B50F157F813100BD0084 /* HttpDataSource.m in Sources */, - A186B510157F813100BD0084 /* LocalFileDataSource.m in Sources */, - A186B511157F813100BD0084 /* AudioPlayerView.m in Sources */, - A16CB9AD162EC4AB00CFD1E8 /* AutoRecoveringHttpDataSource.m in Sources */, - A16CB9AE162EC4AB00CFD1E8 /* DataSourceWrapper.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - A186B4EC157F80E700BD0084 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - A186B4ED157F80E700BD0084 /* en */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 8AC7AD5116E55CD70069BDE7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - 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; - DSTROOT = /tmp/audjustable.dst; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "audjustable/audjustable-Prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 4.3; - ONLY_ACTIVE_ARCH = NO; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 8AC7AD5216E55CD70069BDE7 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - 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; - DSTROOT = /tmp/audjustable.dst; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "audjustable/audjustable-Prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 4.3; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - }; - name = Release; - }; - A186B4F5157F80E700BD0084 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_ARC = YES; - 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; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - 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 = 4.3; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - A186B4F6157F80E700BD0084 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ENABLE_OBJC_ARC = YES; - 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; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - 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 = 4.3; - OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - A186B4F8157F80E700BD0084 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "Audjustable/Audjustable-Prefix.pch"; - INFOPLIST_FILE = "Audjustable/Audjustable-Info.plist"; - PRODUCT_NAME = "$(TARGET_NAME)"; - WRAPPER_EXTENSION = app; - }; - name = Debug; - }; - A186B4F9157F80E700BD0084 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "Audjustable/Audjustable-Prefix.pch"; - INFOPLIST_FILE = "Audjustable/Audjustable-Info.plist"; - PRODUCT_NAME = "$(TARGET_NAME)"; - WRAPPER_EXTENSION = app; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 8AC7AD5016E55CD70069BDE7 /* Build configuration list for PBXNativeTarget "audjustable" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8AC7AD5116E55CD70069BDE7 /* Debug */, - 8AC7AD5216E55CD70069BDE7 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A186B4D9157F80E600BD0084 /* Build configuration list for PBXProject "Audjustable" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A186B4F5157F80E700BD0084 /* Debug */, - A186B4F6157F80E700BD0084 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A186B4F7157F80E700BD0084 /* Build configuration list for PBXNativeTarget "Audjustable" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A186B4F8157F80E700BD0084 /* Debug */, - A186B4F9157F80E700BD0084 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = A186B4D6157F80E600BD0084 /* Project object */; -} diff --git a/Audjustable.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Audjustable.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 94b1065..0000000 --- a/Audjustable.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Audjustable.xcodeproj/xcshareddata/xcschemes/Audjustable Test Project.xcscheme b/Audjustable.xcodeproj/xcshareddata/xcschemes/Audjustable Test Project.xcscheme deleted file mode 100644 index 0cf93ec..0000000 --- a/Audjustable.xcodeproj/xcshareddata/xcschemes/Audjustable Test Project.xcscheme +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Audjustable.xcodeproj/xcshareddata/xcschemes/audjustable static library.xcscheme b/Audjustable.xcodeproj/xcshareddata/xcschemes/audjustable static library.xcscheme deleted file mode 100644 index afcaf03..0000000 --- a/Audjustable.xcodeproj/xcshareddata/xcschemes/audjustable static library.xcscheme +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Audjustable/main.m b/Audjustable/main.m deleted file mode 100644 index aa92128..0000000 --- a/Audjustable/main.m +++ /dev/null @@ -1,18 +0,0 @@ -// -// main.m -// Audjustable -// -// Created by Thong Nguyen on 06/06/2012. -// Copyright (c) 2012 __MyCompanyName__. All rights reserved. -// - -#import - -#import "AppDelegate.h" - -int main(int argc, char *argv[]) -{ - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/Default-568h@2x.png b/Default-568h@2x.png deleted file mode 100644 index 0891b7aabfcf3422423b109c8beed2bab838c607..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18594 zcmeI4X;f257Jx&9fS`ixvS;&$x8J@slQFSel)6zJN=?13FB7H(lQjRkSy8x_-S~tvu2gzn1oS+dLcF#eqtq$ z%tf9TTvX?`)R@}3uBI;jzS-=ZR-Td&MHaS&;!0?Ni*#$#`n*~CcQK)Q9vAQ~TUpnI!j)a2biYK^R)M~A5wUDZhx?ULMX z3x1P&qt=trOY6P2U67L=m=U?F|5#Uj(eCueNTZaHs_ceWiHeET+j+tp3Jt9g(ekqP z2WOvfR{qV+9r+o4J5?qK>7;;^+I7tGv-i)es$X_D=EoKF+S?zsyj^oRFElP}c}JT< zd8SUs-?O?}2YD#ngKbnHgzHBcboxK_2r9l(?eNCl-pEzkJm}fY?WC*jnS?VBE4EpY zO$fEejz6fU;W2Kl>JeQBZBl-%Irg`obSlg*@4QB;Dd1H7^Oi5wvt4d{RZ!8Og?^aE z)k0$1g+V3fd(gdQ3d&q2q-FL*uy#}|bc^=VhFsl0jBgUGJ+-s3U8MK9A!YJJMxpci z5hJ%|{DwV48fZn0{n5l$N_KcSb#NKE4plB`9I6Zt=Z!~-zw0{9tg$L&Ju1F0X)Cy8 zKF;(&lJ>x)Jw(=;p~sF(Sd9VWGwFE2rnyS9!f^DZ8+aCLq zQ};>lcJ1GDLqjm6Hd>|Eabno@P`~Bn(~6^aD_#yoEH(a?Nm1S<;S+hSxI5d16^<1lEM3NPFi zkqPrpL)+ zgnseFikg`gJVBha1&7C4;O6>h=dt~`ND+;Zd?W(4v2JIb7Pt>Td42%M-Ju-XAH#Pns762L}K3 zDhvsRqN0Ni(1UrishD2YvV?4*h2iFj$+&N||Fn$4n|^NSU+o?~jq`0jVQt8T9l{7b zXiwwODFh2V!Q6sqP9S>WH$oOf$N~=d0-bqTlD61!=`&0eAP-F>XN?*|gtOXX{ zQVTWyYo4ZK0GAw!GHf|pz9`D;-bbb*5LBX*{bnz|+)$@&P9|ORM2o?95{;ejvo&r- zq8cBhTN6nn)7~W>54U)%-F_-b?YKdfk5I8MHcuzBD5)!;yv#Z&R&^y=@=>VTIMy#r zX&U<=BsPkdqcMe<_}2+>H%XKyrr5ZR8_KVe>ZqYN z^=^~TFD};;rHJ$U;{~w^hYojl4hRI@SH$^K{YEo=sg)WY87r!*7blQK&qnpDo0`Vn zkl)9u9g=mCh&ZCJS(L4yN3k0kQ zuvg$h2KEEk51T+O0JQ+r0`R>g{jvqM0Mr6d3qUOZwE!?PI7HY@CE|dr sfw?Q;rAv?G4&^^8-z_>&sWXMxvD*gPOU4CBe-*@OtE+wfmVJNyHv)PfH~;_u diff --git a/ExampleApp/ExampleApp.xcodeproj/project.pbxproj b/ExampleApp/ExampleApp.xcodeproj/project.pbxproj new file mode 100644 index 0000000..85d28a4 --- /dev/null +++ b/ExampleApp/ExampleApp.xcodeproj/project.pbxproj @@ -0,0 +1,506 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + A1115935188D686000641365 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1115934188D686000641365 /* Foundation.framework */; }; + A1115937188D686000641365 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1115936188D686000641365 /* CoreGraphics.framework */; }; + A1115939188D686000641365 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1115938188D686000641365 /* UIKit.framework */; }; + A111593F188D686000641365 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = A111593D188D686000641365 /* InfoPlist.strings */; }; + A1115941188D686000641365 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = A1115940188D686000641365 /* main.m */; }; + A1115945188D686000641365 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A1115944188D686000641365 /* AppDelegate.m */; }; + A1115947188D686000641365 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A1115946188D686000641365 /* Images.xcassets */; }; + A111594E188D686000641365 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A111594D188D686000641365 /* XCTest.framework */; }; + A111594F188D686000641365 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1115934188D686000641365 /* Foundation.framework */; }; + A1115950188D686000641365 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1115938188D686000641365 /* UIKit.framework */; }; + A1115958188D686000641365 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = A1115956188D686000641365 /* InfoPlist.strings */; }; + A111595A188D686000641365 /* ExampleAppTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A1115959188D686000641365 /* ExampleAppTests.m */; }; + A1115964188D691500641365 /* libStreamingKit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A1115963188D691500641365 /* libStreamingKit.a */; }; + A1115967188D6AEE00641365 /* AudioPlayerView.m in Sources */ = {isa = PBXBuildFile; fileRef = A1115966188D6AEE00641365 /* AudioPlayerView.m */; }; + A111596C188D6C8100641365 /* sample.m4a in Resources */ = {isa = PBXBuildFile; fileRef = A111596B188D6C8100641365 /* sample.m4a */; }; + A111596F188D6DB100641365 /* SampleQueueId.m in Sources */ = {isa = PBXBuildFile; fileRef = A111596E188D6DB100641365 /* SampleQueueId.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + A1115951188D686000641365 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A1115929188D686000641365 /* Project object */; + proxyType = 1; + remoteGlobalIDString = A1115930188D686000641365; + remoteInfo = ExampleApp; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + A1115931188D686000641365 /* ExampleApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ExampleApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; + A1115934188D686000641365 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + A1115936188D686000641365 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + A1115938188D686000641365 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + A111593C188D686000641365 /* ExampleApp-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "ExampleApp-Info.plist"; sourceTree = ""; }; + A111593E188D686000641365 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + A1115940188D686000641365 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + A1115942188D686000641365 /* ExampleApp-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ExampleApp-Prefix.pch"; sourceTree = ""; }; + A1115943188D686000641365 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + A1115944188D686000641365 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + A1115946188D686000641365 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + A111594C188D686000641365 /* ExampleAppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ExampleAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + A111594D188D686000641365 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + A1115955188D686000641365 /* ExampleAppTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "ExampleAppTests-Info.plist"; sourceTree = ""; }; + A1115957188D686000641365 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + A1115959188D686000641365 /* ExampleAppTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ExampleAppTests.m; sourceTree = ""; }; + A1115963188D691500641365 /* libStreamingKit.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libStreamingKit.a; path = "../../../Library/Developer/Xcode/DerivedData/StreamingKit-dabtccqthoyywldsgcvllbcjcmma/Build/Products/Debug-iphoneos/libStreamingKit.a"; sourceTree = ""; }; + A1115965188D6AEE00641365 /* AudioPlayerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioPlayerView.h; sourceTree = ""; }; + A1115966188D6AEE00641365 /* AudioPlayerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AudioPlayerView.m; sourceTree = ""; }; + A111596B188D6C8100641365 /* sample.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = sample.m4a; path = Resources/sample.m4a; sourceTree = ""; }; + A111596D188D6DB100641365 /* SampleQueueId.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SampleQueueId.h; sourceTree = ""; }; + A111596E188D6DB100641365 /* SampleQueueId.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SampleQueueId.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + A111592E188D686000641365 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A1115964188D691500641365 /* libStreamingKit.a in Frameworks */, + A1115937188D686000641365 /* CoreGraphics.framework in Frameworks */, + A1115939188D686000641365 /* UIKit.framework in Frameworks */, + A1115935188D686000641365 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A1115949188D686000641365 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A111594E188D686000641365 /* XCTest.framework in Frameworks */, + A1115950188D686000641365 /* UIKit.framework in Frameworks */, + A111594F188D686000641365 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + A1115928188D686000641365 = { + isa = PBXGroup; + children = ( + A111593A188D686000641365 /* ExampleApp */, + A1115953188D686000641365 /* ExampleAppTests */, + A1115933188D686000641365 /* Frameworks */, + A1115932188D686000641365 /* Products */, + ); + sourceTree = ""; + }; + A1115932188D686000641365 /* Products */ = { + isa = PBXGroup; + children = ( + A1115931188D686000641365 /* ExampleApp.app */, + A111594C188D686000641365 /* ExampleAppTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + A1115933188D686000641365 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A1115963188D691500641365 /* libStreamingKit.a */, + A1115934188D686000641365 /* Foundation.framework */, + A1115936188D686000641365 /* CoreGraphics.framework */, + A1115938188D686000641365 /* UIKit.framework */, + A111594D188D686000641365 /* XCTest.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + A111593A188D686000641365 /* ExampleApp */ = { + isa = PBXGroup; + children = ( + A111596A188D6C4B00641365 /* Resources */, + A1115943188D686000641365 /* AppDelegate.h */, + A1115944188D686000641365 /* AppDelegate.m */, + A1115965188D6AEE00641365 /* AudioPlayerView.h */, + A1115966188D6AEE00641365 /* AudioPlayerView.m */, + A111596D188D6DB100641365 /* SampleQueueId.h */, + A111596E188D6DB100641365 /* SampleQueueId.m */, + A1115946188D686000641365 /* Images.xcassets */, + A111593B188D686000641365 /* Supporting Files */, + ); + path = ExampleApp; + sourceTree = ""; + }; + A111593B188D686000641365 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + A111593C188D686000641365 /* ExampleApp-Info.plist */, + A111593D188D686000641365 /* InfoPlist.strings */, + A1115940188D686000641365 /* main.m */, + A1115942188D686000641365 /* ExampleApp-Prefix.pch */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + A1115953188D686000641365 /* ExampleAppTests */ = { + isa = PBXGroup; + children = ( + A1115959188D686000641365 /* ExampleAppTests.m */, + A1115954188D686000641365 /* Supporting Files */, + ); + path = ExampleAppTests; + sourceTree = ""; + }; + A1115954188D686000641365 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + A1115955188D686000641365 /* ExampleAppTests-Info.plist */, + A1115956188D686000641365 /* InfoPlist.strings */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + A111596A188D6C4B00641365 /* Resources */ = { + isa = PBXGroup; + children = ( + A111596B188D6C8100641365 /* sample.m4a */, + ); + name = Resources; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + A1115930188D686000641365 /* ExampleApp */ = { + isa = PBXNativeTarget; + buildConfigurationList = A111595D188D686000641365 /* Build configuration list for PBXNativeTarget "ExampleApp" */; + buildPhases = ( + A111592D188D686000641365 /* Sources */, + A111592E188D686000641365 /* Frameworks */, + A111592F188D686000641365 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ExampleApp; + productName = ExampleApp; + productReference = A1115931188D686000641365 /* ExampleApp.app */; + productType = "com.apple.product-type.application"; + }; + A111594B188D686000641365 /* ExampleAppTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = A1115960188D686000641365 /* Build configuration list for PBXNativeTarget "ExampleAppTests" */; + buildPhases = ( + A1115948188D686000641365 /* Sources */, + A1115949188D686000641365 /* Frameworks */, + A111594A188D686000641365 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + A1115952188D686000641365 /* PBXTargetDependency */, + ); + name = ExampleAppTests; + productName = ExampleAppTests; + productReference = A111594C188D686000641365 /* ExampleAppTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + A1115929188D686000641365 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0500; + ORGANIZATIONNAME = "Thong Nguyen"; + TargetAttributes = { + A111594B188D686000641365 = { + TestTargetID = A1115930188D686000641365; + }; + }; + }; + buildConfigurationList = A111592C188D686000641365 /* Build configuration list for PBXProject "ExampleApp" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = A1115928188D686000641365; + productRefGroup = A1115932188D686000641365 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + A1115930188D686000641365 /* ExampleApp */, + A111594B188D686000641365 /* ExampleAppTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + A111592F188D686000641365 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A111593F188D686000641365 /* InfoPlist.strings in Resources */, + A111596C188D6C8100641365 /* sample.m4a in Resources */, + A1115947188D686000641365 /* Images.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A111594A188D686000641365 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A1115958188D686000641365 /* InfoPlist.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A111592D188D686000641365 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A1115945188D686000641365 /* AppDelegate.m in Sources */, + A1115941188D686000641365 /* main.m in Sources */, + A111596F188D6DB100641365 /* SampleQueueId.m in Sources */, + A1115967188D6AEE00641365 /* AudioPlayerView.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A1115948188D686000641365 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A111595A188D686000641365 /* ExampleAppTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + A1115952188D686000641365 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = A1115930188D686000641365 /* ExampleApp */; + targetProxy = A1115951188D686000641365 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + A111593D188D686000641365 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + A111593E188D686000641365 /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + A1115956188D686000641365 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + A1115957188D686000641365 /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + A111595B188D686000641365 /* 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; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + 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; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "$(SRCROOT)/../StreamingKit/StreamingKit", + ); + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + A111595C188D686000641365 /* 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; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + 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; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, + "$(SRCROOT)/../StreamingKit/StreamingKit", + ); + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + A111595E188D686000641365 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "ExampleApp/ExampleApp-Prefix.pch"; + INFOPLIST_FILE = "ExampleApp/ExampleApp-Info.plist"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(USER_LIBRARY_DIR)/Developer/Xcode/DerivedData/StreamingKit-dabtccqthoyywldsgcvllbcjcmma/Build/Products/Debug-iphoneos", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + A111595F188D686000641365 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "ExampleApp/ExampleApp-Prefix.pch"; + INFOPLIST_FILE = "ExampleApp/ExampleApp-Info.plist"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(USER_LIBRARY_DIR)/Developer/Xcode/DerivedData/StreamingKit-dabtccqthoyywldsgcvllbcjcmma/Build/Products/Debug-iphoneos", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; + A1115961188D686000641365 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/ExampleApp.app/ExampleApp"; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + "$(DEVELOPER_FRAMEWORKS_DIR)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "ExampleApp/ExampleApp-Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = "ExampleAppTests/ExampleAppTests-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUNDLE_LOADER)"; + WRAPPER_EXTENSION = xctest; + }; + name = Debug; + }; + A1115962188D686000641365 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/ExampleApp.app/ExampleApp"; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + "$(DEVELOPER_FRAMEWORKS_DIR)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "ExampleApp/ExampleApp-Prefix.pch"; + INFOPLIST_FILE = "ExampleAppTests/ExampleAppTests-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUNDLE_LOADER)"; + WRAPPER_EXTENSION = xctest; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + A111592C188D686000641365 /* Build configuration list for PBXProject "ExampleApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A111595B188D686000641365 /* Debug */, + A111595C188D686000641365 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A111595D188D686000641365 /* Build configuration list for PBXNativeTarget "ExampleApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A111595E188D686000641365 /* Debug */, + A111595F188D686000641365 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A1115960188D686000641365 /* Build configuration list for PBXNativeTarget "ExampleAppTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A1115961188D686000641365 /* Debug */, + A1115962188D686000641365 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = A1115929188D686000641365 /* Project object */; +} diff --git a/Audjustable/AppDelegate.h b/ExampleApp/ExampleApp/AppDelegate.h similarity index 56% rename from Audjustable/AppDelegate.h rename to ExampleApp/ExampleApp/AppDelegate.h index 7d84248..09f91c5 100644 --- a/Audjustable/AppDelegate.h +++ b/ExampleApp/ExampleApp/AppDelegate.h @@ -1,19 +1,16 @@ // // AppDelegate.h -// BlueCucumber-AudioPlayer +// ExampleApp // -// Created by Thong Nguyen on 01/06/2012. -// Copyright (c) 2012 Thong Nguyen All rights reserved. +// Created by Thong Nguyen on 20/01/2014. +// Copyright (c) 2014 Thong Nguyen. All rights reserved. // #import +#import "STKAudioPlayer.h" #import "AudioPlayerView.h" @interface AppDelegate : UIResponder -{ -@private - AudioPlayer* audioPlayer; -} @property (strong, nonatomic) UIWindow *window; diff --git a/Audjustable/AppDelegate.m b/ExampleApp/ExampleApp/AppDelegate.m similarity index 72% rename from Audjustable/AppDelegate.m rename to ExampleApp/ExampleApp/AppDelegate.m index 44dd509..7e4e340 100644 --- a/Audjustable/AppDelegate.m +++ b/ExampleApp/ExampleApp/AppDelegate.m @@ -1,27 +1,34 @@ // // AppDelegate.m -// BlueCucumber-AudioPlayer +// ExampleApp // -// Created by Thong Nguyen on 01/06/2012. -// Copyright (c) 2012 Thong Nguyen All rights reserved. +// Created by Thong Nguyen on 20/01/2014. +// Copyright (c) 2014 Thong Nguyen. All rights reserved. // #import "AppDelegate.h" +#import "STKAudioPlayer.h" #import "AudioPlayerView.h" +#import "SampleQueueId.h" + +@interface AppDelegate() +{ + STKAudioPlayer* audioPlayer; +} +@end @implementation AppDelegate -@synthesize window = _window; -(BOOL) application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; self.window.backgroundColor = [UIColor whiteColor]; - - audioPlayer = [[AudioPlayer alloc] init]; + + audioPlayer = [[STKAudioPlayer alloc] init]; AudioPlayerView* audioPlayerView = [[AudioPlayerView alloc] initWithFrame:self.window.bounds]; - + audioPlayerView.delegate = self; audioPlayerView.audioPlayer = audioPlayer; @@ -33,10 +40,10 @@ } -(void) audioPlayerViewPlayFromHTTPSelected:(AudioPlayerView*)audioPlayerView -{ +{ NSURL* url = [NSURL URLWithString:@"http://fs.bloom.fm/oss/audiosamples/sample.mp3"]; - [audioPlayer setDataSource:[audioPlayer dataSourceFromURL:url] withQueueItemId:url]; + [audioPlayer setDataSource:[audioPlayer dataSourceFromURL:url] withQueueItemId:[[SampleQueueId alloc] initWithUrl:url andCount:0]]; } -(void) audioPlayerViewPlayFromLocalFileSelected:(AudioPlayerView*)audioPlayerView @@ -44,7 +51,8 @@ NSString * path = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"m4a"]; NSURL* url = [NSURL fileURLWithPath:path]; - [audioPlayer setDataSource:[audioPlayer dataSourceFromURL:url] withQueueItemId:url]; + [audioPlayer setDataSource:[audioPlayer dataSourceFromURL:url] withQueueItemId:[[SampleQueueId alloc] initWithUrl:url andCount:0]]; } + @end diff --git a/Audjustable/Classes/AudioPlayerView.h b/ExampleApp/ExampleApp/AudioPlayerView.h similarity index 94% rename from Audjustable/Classes/AudioPlayerView.h rename to ExampleApp/ExampleApp/AudioPlayerView.h index ea2fd2f..972da83 100644 --- a/Audjustable/Classes/AudioPlayerView.h +++ b/ExampleApp/ExampleApp/AudioPlayerView.h @@ -33,7 +33,7 @@ **********************************************************************************/ #import -#import "AudioPlayer.h" +#import "STKAudioPlayer.h" @class AudioPlayerView; @@ -42,7 +42,7 @@ -(void) audioPlayerViewPlayFromLocalFileSelected:(AudioPlayerView*)audioPlayerView; @end -@interface AudioPlayerView : UIView +@interface AudioPlayerView : UIView { @private NSTimer* timer; @@ -52,7 +52,7 @@ UIButton* playFromLocalFileButton; } -@property (readwrite, retain) AudioPlayer* audioPlayer; +@property (readwrite, retain) STKAudioPlayer* audioPlayer; @property (readwrite, unsafe_unretained) id delegate; @end diff --git a/Audjustable/Classes/AudioPlayerView.m b/ExampleApp/ExampleApp/AudioPlayerView.m similarity index 77% rename from Audjustable/Classes/AudioPlayerView.m rename to ExampleApp/ExampleApp/AudioPlayerView.m index 1d79776..9c4f903 100644 --- a/Audjustable/Classes/AudioPlayerView.m +++ b/ExampleApp/ExampleApp/AudioPlayerView.m @@ -33,6 +33,11 @@ **********************************************************************************/ #import "AudioPlayerView.h" +#import "SampleQueueId.h" + +/// +/// This sample media player will play a local or an HTTP stream in repeat (gapless) +/// @interface AudioPlayerView() -(void) setupTimer; @@ -51,12 +56,12 @@ CGSize size = CGSizeMake(180, 50); playFromHTTPButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; - playFromHTTPButton.frame = CGRectMake((320 - size.width) / 2, 60, size.width, size.height); + playFromHTTPButton.frame = CGRectMake((320 - size.width) / 2, frame.size.height * 0.15, size.width, size.height); [playFromHTTPButton addTarget:self action:@selector(playFromHTTPButtonTouched) forControlEvents:UIControlEventTouchUpInside]; [playFromHTTPButton setTitle:@"Play from HTTP" forState:UIControlStateNormal]; playFromLocalFileButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; - playFromLocalFileButton.frame = CGRectMake((320 - size.width) / 2, 120, size.width, size.height); + playFromLocalFileButton.frame = CGRectMake((320 - size.width) / 2, frame.size.height * 0.15 + 50, size.width, size.height); [playFromLocalFileButton addTarget:self action:@selector(playFromLocalFileButtonTouched) forControlEvents:UIControlEventTouchUpInside]; [playFromLocalFileButton setTitle:@"Play from Local File" forState:UIControlStateNormal]; @@ -161,7 +166,7 @@ } } --(void) setAudioPlayer:(AudioPlayer*)value +-(void) setAudioPlayer:(STKAudioPlayer*)value { if (audioPlayer) { @@ -174,34 +179,50 @@ [self updateControls]; } --(AudioPlayer*) audioPlayer +-(STKAudioPlayer*) audioPlayer { return audioPlayer; } --(void) audioPlayer:(AudioPlayer*)audioPlayer stateChanged:(AudioPlayerState)state +-(void) audioPlayer:(STKAudioPlayer*)audioPlayer stateChanged:(AudioPlayerState)state { [self updateControls]; } --(void) audioPlayer:(AudioPlayer*)audioPlayer didEncounterError:(AudioPlayerErrorCode)errorCode +-(void) audioPlayer:(STKAudioPlayer*)audioPlayer didEncounterError:(AudioPlayerErrorCode)errorCode { [self updateControls]; } --(void) audioPlayer:(AudioPlayer*)audioPlayer didStartPlayingQueueItemId:(NSObject*)queueItemId +-(void) audioPlayer:(STKAudioPlayer*)audioPlayer didStartPlayingQueueItemId:(NSObject*)queueItemId { + SampleQueueId* queueId = (SampleQueueId*)queueItemId; + + NSLog(@"Started: %@", [queueId.url description]); + [self updateControls]; } --(void) audioPlayer:(AudioPlayer*)audioPlayer didFinishBufferingSourceWithQueueItemId:(NSObject*)queueItemId +-(void) audioPlayer:(STKAudioPlayer*)audioPlayer didFinishBufferingSourceWithQueueItemId:(NSObject*)queueItemId { [self updateControls]; + + // This queues on the currently playing track to be buffered and played immediately after (gapless) + + SampleQueueId* queueId = (SampleQueueId*)queueItemId; + + NSLog(@"Requeuing: %@", [queueId.url description]); + + [self->audioPlayer queueDataSource:[self->audioPlayer dataSourceFromURL:queueId.url] withQueueItemId:[[SampleQueueId alloc] initWithUrl:queueId.url andCount:queueId.count + 1]]; } --(void) audioPlayer:(AudioPlayer*)audioPlayer didFinishPlayingQueueItemId:(NSObject*)queueItemId withReason:(AudioPlayerStopReason)stopReason andProgress:(double)progress andDuration:(double)duration +-(void) audioPlayer:(STKAudioPlayer*)audioPlayer didFinishPlayingQueueItemId:(NSObject*)queueItemId withReason:(AudioPlayerStopReason)stopReason andProgress:(double)progress andDuration:(double)duration { [self updateControls]; + + SampleQueueId* queueId = (SampleQueueId*)queueItemId; + + NSLog(@"Finished: %@", [queueId.url description]); } @end diff --git a/Audjustable/Audjustable-Info.plist b/ExampleApp/ExampleApp/ExampleApp-Info.plist similarity index 95% rename from Audjustable/Audjustable-Info.plist rename to ExampleApp/ExampleApp/ExampleApp-Info.plist index e3f619b..c56a53f 100644 --- a/Audjustable/Audjustable-Info.plist +++ b/ExampleApp/ExampleApp/ExampleApp-Info.plist @@ -9,7 +9,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - AbstractPath.${PRODUCT_NAME:rfc1034identifier} + abstractpath.com.${PRODUCT_NAME:rfc1034identifier} CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/Audjustable/Audjustable-Prefix.pch b/ExampleApp/ExampleApp/ExampleApp-Prefix.pch similarity index 66% rename from Audjustable/Audjustable-Prefix.pch rename to ExampleApp/ExampleApp/ExampleApp-Prefix.pch index 250976e..743435c 100644 --- a/Audjustable/Audjustable-Prefix.pch +++ b/ExampleApp/ExampleApp/ExampleApp-Prefix.pch @@ -1,5 +1,7 @@ // -// Prefix header for all source files of the 'Audjustable' target in the 'Audjustable' project +// Prefix header +// +// The contents of this file are implicitly included at the beginning of every source file. // #import diff --git a/ExampleApp/ExampleApp/Images.xcassets/AppIcon.appiconset/Contents.json b/ExampleApp/ExampleApp/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..91bf9c1 --- /dev/null +++ b/ExampleApp/ExampleApp/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,53 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ExampleApp/ExampleApp/Images.xcassets/LaunchImage.launchimage/Contents.json b/ExampleApp/ExampleApp/Images.xcassets/LaunchImage.launchimage/Contents.json new file mode 100644 index 0000000..6f870a4 --- /dev/null +++ b/ExampleApp/ExampleApp/Images.xcassets/LaunchImage.launchimage/Contents.json @@ -0,0 +1,51 @@ +{ + "images" : [ + { + "orientation" : "portrait", + "idiom" : "iphone", + "extent" : "full-screen", + "minimum-system-version" : "7.0", + "scale" : "2x" + }, + { + "orientation" : "portrait", + "idiom" : "iphone", + "subtype" : "retina4", + "extent" : "full-screen", + "minimum-system-version" : "7.0", + "scale" : "2x" + }, + { + "orientation" : "portrait", + "idiom" : "ipad", + "extent" : "full-screen", + "minimum-system-version" : "7.0", + "scale" : "1x" + }, + { + "orientation" : "landscape", + "idiom" : "ipad", + "extent" : "full-screen", + "minimum-system-version" : "7.0", + "scale" : "1x" + }, + { + "orientation" : "portrait", + "idiom" : "ipad", + "extent" : "full-screen", + "minimum-system-version" : "7.0", + "scale" : "2x" + }, + { + "orientation" : "landscape", + "idiom" : "ipad", + "extent" : "full-screen", + "minimum-system-version" : "7.0", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Audjustable/sample.m4a b/ExampleApp/ExampleApp/Resources/sample.m4a similarity index 100% rename from Audjustable/sample.m4a rename to ExampleApp/ExampleApp/Resources/sample.m4a diff --git a/ExampleApp/ExampleApp/SampleQueueId.h b/ExampleApp/ExampleApp/SampleQueueId.h new file mode 100644 index 0000000..8d6c91b --- /dev/null +++ b/ExampleApp/ExampleApp/SampleQueueId.h @@ -0,0 +1,17 @@ +// +// SampleQueueId.h +// ExampleApp +// +// Created by Thong Nguyen on 20/01/2014. +// Copyright (c) 2014 Thong Nguyen. All rights reserved. +// + +#import + +@interface SampleQueueId : NSObject +@property (readwrite) int count; +@property (readwrite) NSURL* url; + +-(id) initWithUrl:(NSURL*)url andCount:(int)count; + +@end diff --git a/ExampleApp/ExampleApp/SampleQueueId.m b/ExampleApp/ExampleApp/SampleQueueId.m new file mode 100644 index 0000000..0a07b89 --- /dev/null +++ b/ExampleApp/ExampleApp/SampleQueueId.m @@ -0,0 +1,39 @@ +// +// SampleQueueId.m +// ExampleApp +// +// Created by Thong Nguyen on 20/01/2014. +// Copyright (c) 2014 Thong Nguyen. All rights reserved. +// + +#import "SampleQueueId.h" + +@implementation SampleQueueId + +-(id) initWithUrl:(NSURL*)url andCount:(int)count +{ + if (self = [super init]) + { + self.url = url; + self.count = count; + } + + return self; +} + +-(BOOL) isEqual:(id)object +{ + if (object == nil) + { + return NO; + } + + if ([object class] != [SampleQueueId class]) + { + return NO; + } + + return [((SampleQueueId*)object).url isEqual: self.url] && ((SampleQueueId*)object).count == self.count; +} + +@end diff --git a/Audjustable/en.lproj/InfoPlist.strings b/ExampleApp/ExampleApp/en.lproj/InfoPlist.strings similarity index 100% rename from Audjustable/en.lproj/InfoPlist.strings rename to ExampleApp/ExampleApp/en.lproj/InfoPlist.strings diff --git a/ExampleApp/ExampleApp/main.m b/ExampleApp/ExampleApp/main.m new file mode 100644 index 0000000..f256b9c --- /dev/null +++ b/ExampleApp/ExampleApp/main.m @@ -0,0 +1,19 @@ +// +// main.m +// ExampleApp +// +// Created by Thong Nguyen on 20/01/2014. +// Copyright (c) 2014 Thong Nguyen. All rights reserved. +// + +#import + +#import "AppDelegate.h" + +int main(int argc, char * argv[]) +{ + @autoreleasepool + { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/ExampleApp/ExampleAppTests/ExampleAppTests-Info.plist b/ExampleApp/ExampleAppTests/ExampleAppTests-Info.plist new file mode 100644 index 0000000..12b70c6 --- /dev/null +++ b/ExampleApp/ExampleAppTests/ExampleAppTests-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + abstractpath.com.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/ExampleApp/ExampleAppTests/ExampleAppTests.m b/ExampleApp/ExampleAppTests/ExampleAppTests.m new file mode 100644 index 0000000..d0697ee --- /dev/null +++ b/ExampleApp/ExampleAppTests/ExampleAppTests.m @@ -0,0 +1,34 @@ +// +// ExampleAppTests.m +// ExampleAppTests +// +// Created by Thong Nguyen on 20/01/2014. +// Copyright (c) 2014 Thong Nguyen. All rights reserved. +// + +#import + +@interface ExampleAppTests : XCTestCase + +@end + +@implementation ExampleAppTests + +- (void)setUp +{ + [super setUp]; + // Put setup code here. This method is called before the invocation of each test method in the class. +} + +- (void)tearDown +{ + // Put teardown code here. This method is called after the invocation of each test method in the class. + [super tearDown]; +} + +- (void)testExample +{ + XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); +} + +@end diff --git a/ExampleApp/ExampleAppTests/en.lproj/InfoPlist.strings b/ExampleApp/ExampleAppTests/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/ExampleApp/ExampleAppTests/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/README.md b/README.md index 4c58895..468af4a 100644 --- a/README.md +++ b/README.md @@ -1,50 +1,44 @@ -### Audjustable Audio Streamer +## StreamingKit -[Homepage](http://tumtumtum.github.com/audjustable) +StreamingKit (formally Audjustable) is an audio streaming library for iOS and OSX. StreamingKit uses CoreAudio to decompress and playback audio whilst providing a clean and simple object-oriented API. -Audjustable is an audio streaming class for iOS and OSX. Audjustable uses CoreAudio to decompress and playback audio whilst providing a clean and simple object-oriented API. +The primary motivation of this project was to decouple the input data sources from the actual player logic in order to allow advanced customizable input handling such as HTTP streaming, encryption/decryption, auto-recovery, dynamic-buffering. Along the way other features such as gapless playback were added. -The primary motivation of this project was to decouple the input (DataSource/InputStreams) from the actual player logic in order to allow advanced customizable input handling such as: HTTP streaming, encryption, auto-recovery, dynamic-buffering. Along the way other features such as gapless playback were added as the opportunity arose. - -## Features +## Main Features * Simple OOP API * Easy to read source -* Adjustable audio buffering * Mostly asynchronous API * Buffered and gapless playback * Easy to implement audio data sources (HTTP and local file system DataSources provided) * Easy to extend DataSource to support adaptive buffering, encryption, etc. * Optimised for low CPU/battery usage -## Usage +## Installation -Download the [source](https://github.com/tumtumtum/audjustable/zipball/master) which includes a simple audio player project that streams audio over HTTP or locally using the `HttpDataSource` or `LocalFileDataSource` classes respectively. +StreamingKit is also available as a [Cocoapod](http://cocoapods.org/?q=StreamingKit) and a static lib. You can also simply manually copy all the source files located inside StreamingKit/StreamingKit/* into your project. -If you would like to integrate the AudioPlayer directly into your project you only need to copy the files inside the `/Audjustable/Classes/AudioPlayer` [directory](https://github.com/tumtumtum/audjustable/tree/master/Audjustable/Classes/AudioPlayer) into your project. +## Example -Audjustable is also available as a [Cocoapod](http://cocoapods.org/?q=audjustable). - -## Code - -There are two main classes. The `DataSource` class which is the abstract base class for the various compressed audio data sources (HTTP, local file are provided). The `AudioPlayer` class manages and renders audio from a queue DataSources. +There are two main classes. The `STKDataSource` class which is the abstract base class for the various compressed audio data sources (HTTP, local file are provided). The `STKAudioPlayer` class manages and renders audio from a queue DataSources. ```objective-c // Create AudioPlayer -AudioPlayer* audioPlayer = [[AudioPlayer alloc] init]; +STKAudioPlayer* audioPlayer = [[STKAudioPlayer alloc] init]; audioPlayer.delegate = self; // Queue on a URL to play. Each queue item has a unique ID (item1) that to identify the related file in delegate callbacks -[audioPlayer setDataSource:[audioPlayer dataSourceFromURL:@"https://github.com/downloads/tumtumtum/audjustable/sample.m4a"] withQueueItemId:@"item1"]; +[audioPlayer setDataSource:[audioPlayer dataSourceFromURL:@"http://fs.bloom.fm/oss/audiosamples/sample.mp3"] withQueueItemId:@"item1"]; + ``` -## Other +## Background Playback -Background playback on iOS is easily added to your application by calling the `AudioSessionInitialize` in your AppDelegate. +Background playback on iOS is easily added to your application by calling the `AudioSessionInitialize` in your AppDelegate and adding audio to the `UIBackgroundModes` key in your plist file. ### Authors and Contributors -Copyright 2012, Thong Nguyen (@tumtumtum) +Copyright (c) 2012-2014, Thong Nguyen (@tumtumtum) diff --git a/Audjustable-head.podspec b/StreamingKit-head.podspec similarity index 64% rename from Audjustable-head.podspec rename to StreamingKit-head.podspec index a4fc400..c55bdd7 100644 --- a/Audjustable-head.podspec +++ b/StreamingKit-head.podspec @@ -1,13 +1,13 @@ Pod::Spec.new do |s| - s.name = "Audjustable" + s.name = "StreamingKit" s.version = "0.0.0" s.summary = "A fast and extensible audio streamer for iOS and OSX with support for gapless playback and custom (non-HTTP) sources." - s.homepage = "http://tumtumtum.github.com/audjustable/" + s.homepage = "https://github.com/tumtumtum/StreamingKit/" s.license = 'MIT' s.author = { "Thong Nguyen" => "tumtumtum@gmail.com" } - s.source = { :git => "https://github.com/tumtumtum/audjustable.git"} + s.source = { :git => "https://github.com/tumtumtum/StreamingKit.git"} s.platform = :ios s.requires_arc = true - s.source_files = 'Audjustable/Classes/AudioPlayer/*.{h,m}' + s.source_files = 'StreamingKit/StreamingKit/*.{h,m}' s.frameworks = 'AVFoundation', 'SystemConfiguration', 'CFNetwork', 'CoreFoundation', 'AudioToolbox' end diff --git a/Audjustable.podspec b/StreamingKit.podspec similarity index 100% rename from Audjustable.podspec rename to StreamingKit.podspec diff --git a/StreamingKit.xcworkspace/contents.xcworkspacedata b/StreamingKit.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..eb695ed --- /dev/null +++ b/StreamingKit.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/Audjustable.xcodeproj/project.xcworkspace/xcshareddata/Audjustable.xccheckout b/StreamingKit.xcworkspace/xcshareddata/StreamingKit.xccheckout similarity index 74% rename from Audjustable.xcodeproj/project.xcworkspace/xcshareddata/Audjustable.xccheckout rename to StreamingKit.xcworkspace/xcshareddata/StreamingKit.xccheckout index c1a6b64..a8a5d06 100644 --- a/Audjustable.xcodeproj/project.xcworkspace/xcshareddata/Audjustable.xccheckout +++ b/StreamingKit.xcworkspace/xcshareddata/StreamingKit.xccheckout @@ -5,34 +5,34 @@ IDESourceControlProjectFavoriteDictionaryKey IDESourceControlProjectIdentifier - 0082CB9A-521A-4A1D-A18C-AEBEDF2DF227 + A5188B80-95E0-46CF-BEC9-273724D5616A IDESourceControlProjectName - Audjustable + StreamingKit IDESourceControlProjectOriginsDictionary - 39F64986-79A8-40D3-9B3C-3C7711576969 + 821E27F3-2BD4-4B06-BB39-F4C3ECC1BBAD https://github.com/tumtumtum/audjustable.git IDESourceControlProjectPath - Audjustable.xcodeproj/project.xcworkspace + StreamingKit.xcworkspace IDESourceControlProjectRelativeInstallPathDictionary - 39F64986-79A8-40D3-9B3C-3C7711576969 - ../.. + 821E27F3-2BD4-4B06-BB39-F4C3ECC1BBAD + .. IDESourceControlProjectURL https://github.com/tumtumtum/audjustable.git IDESourceControlProjectVersion 110 IDESourceControlProjectWCCIdentifier - 39F64986-79A8-40D3-9B3C-3C7711576969 + 821E27F3-2BD4-4B06-BB39-F4C3ECC1BBAD IDESourceControlProjectWCConfigurations IDESourceControlRepositoryExtensionIdentifierKey public.vcs.git IDESourceControlWCCIdentifierKey - 39F64986-79A8-40D3-9B3C-3C7711576969 + 821E27F3-2BD4-4B06-BB39-F4C3ECC1BBAD IDESourceControlWCCName audjustable diff --git a/StreamingKit/StreamingKit.xcodeproj/project.pbxproj b/StreamingKit/StreamingKit.xcodeproj/project.pbxproj new file mode 100644 index 0000000..e4c6dd1 --- /dev/null +++ b/StreamingKit/StreamingKit.xcodeproj/project.pbxproj @@ -0,0 +1,467 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + A1E7C4CC188D57F50010896F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1E7C4CB188D57F50010896F /* Foundation.framework */; }; + A1E7C4DA188D57F60010896F /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1E7C4D9188D57F60010896F /* XCTest.framework */; }; + A1E7C4DB188D57F60010896F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1E7C4CB188D57F50010896F /* Foundation.framework */; }; + A1E7C4E0188D57F60010896F /* libStreamingKit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A1E7C4C8188D57F50010896F /* libStreamingKit.a */; }; + A1E7C4E6188D57F60010896F /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = A1E7C4E4188D57F60010896F /* InfoPlist.strings */; }; + A1E7C4E8188D57F60010896F /* StreamingKitTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A1E7C4E7188D57F60010896F /* StreamingKitTests.m */; }; + A1E7C4FF188D5E550010896F /* STKAudioPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = A1E7C4F2188D5E550010896F /* STKAudioPlayer.m */; }; + A1E7C500188D5E550010896F /* STKAutoRecoveringHttpDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = A1E7C4F4188D5E550010896F /* STKAutoRecoveringHttpDataSource.m */; }; + A1E7C501188D5E550010896F /* STKCoreFoundationDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = A1E7C4F6188D5E550010896F /* STKCoreFoundationDataSource.m */; }; + A1E7C502188D5E550010896F /* STKDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = A1E7C4F8188D5E550010896F /* STKDataSource.m */; }; + A1E7C503188D5E550010896F /* STKDataSourceWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = A1E7C4FA188D5E550010896F /* STKDataSourceWrapper.m */; }; + A1E7C504188D5E550010896F /* STKHttpDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = A1E7C4FC188D5E550010896F /* STKHttpDataSource.m */; }; + A1E7C505188D5E550010896F /* STKLocalFileDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = A1E7C4FE188D5E550010896F /* STKLocalFileDataSource.m */; }; + A1E7C508188D62D20010896F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1E7C507188D62D20010896F /* UIKit.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + A1E7C4DE188D57F60010896F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A1E7C4C0188D57F50010896F /* Project object */; + proxyType = 1; + remoteGlobalIDString = A1E7C4C7188D57F50010896F; + remoteInfo = StreamingKit; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + A1E7C4C6188D57F50010896F /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + A1E7C4C8188D57F50010896F /* libStreamingKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libStreamingKit.a; sourceTree = BUILT_PRODUCTS_DIR; }; + A1E7C4CB188D57F50010896F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + A1E7C4CF188D57F50010896F /* StreamingKit-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "StreamingKit-Prefix.pch"; sourceTree = ""; }; + A1E7C4D8188D57F60010896F /* StreamingKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = StreamingKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + A1E7C4D9188D57F60010896F /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + A1E7C4E3188D57F60010896F /* StreamingKitTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "StreamingKitTests-Info.plist"; sourceTree = ""; }; + A1E7C4E5188D57F60010896F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + A1E7C4E7188D57F60010896F /* StreamingKitTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StreamingKitTests.m; sourceTree = ""; }; + A1E7C4F1188D5E550010896F /* STKAudioPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STKAudioPlayer.h; sourceTree = ""; }; + A1E7C4F2188D5E550010896F /* STKAudioPlayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STKAudioPlayer.m; sourceTree = ""; }; + A1E7C4F3188D5E550010896F /* STKAutoRecoveringHttpDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STKAutoRecoveringHttpDataSource.h; sourceTree = ""; }; + A1E7C4F4188D5E550010896F /* STKAutoRecoveringHttpDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STKAutoRecoveringHttpDataSource.m; sourceTree = ""; }; + A1E7C4F5188D5E550010896F /* STKCoreFoundationDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STKCoreFoundationDataSource.h; sourceTree = ""; }; + A1E7C4F6188D5E550010896F /* STKCoreFoundationDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STKCoreFoundationDataSource.m; sourceTree = ""; }; + A1E7C4F7188D5E550010896F /* STKDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STKDataSource.h; sourceTree = ""; }; + A1E7C4F8188D5E550010896F /* STKDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STKDataSource.m; sourceTree = ""; }; + A1E7C4F9188D5E550010896F /* STKDataSourceWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STKDataSourceWrapper.h; sourceTree = ""; }; + A1E7C4FA188D5E550010896F /* STKDataSourceWrapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STKDataSourceWrapper.m; sourceTree = ""; }; + A1E7C4FB188D5E550010896F /* STKHttpDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STKHttpDataSource.h; sourceTree = ""; }; + A1E7C4FC188D5E550010896F /* STKHttpDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STKHttpDataSource.m; sourceTree = ""; }; + A1E7C4FD188D5E550010896F /* STKLocalFileDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STKLocalFileDataSource.h; sourceTree = ""; }; + A1E7C4FE188D5E550010896F /* STKLocalFileDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STKLocalFileDataSource.m; sourceTree = ""; }; + A1E7C507188D62D20010896F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + A1E7C4C5188D57F50010896F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A1E7C508188D62D20010896F /* UIKit.framework in Frameworks */, + A1E7C4CC188D57F50010896F /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A1E7C4D5188D57F60010896F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A1E7C4DA188D57F60010896F /* XCTest.framework in Frameworks */, + A1E7C4E0188D57F60010896F /* libStreamingKit.a in Frameworks */, + A1E7C4DB188D57F60010896F /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + A1E7C4BF188D57F50010896F = { + isa = PBXGroup; + children = ( + A1E7C4CD188D57F50010896F /* StreamingKit */, + A1E7C4E1188D57F60010896F /* StreamingKitTests */, + A1E7C4CA188D57F50010896F /* Frameworks */, + A1E7C4C9188D57F50010896F /* Products */, + ); + sourceTree = ""; + }; + A1E7C4C9188D57F50010896F /* Products */ = { + isa = PBXGroup; + children = ( + A1E7C4C8188D57F50010896F /* libStreamingKit.a */, + A1E7C4D8188D57F60010896F /* StreamingKitTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + A1E7C4CA188D57F50010896F /* Frameworks */ = { + isa = PBXGroup; + children = ( + A1E7C507188D62D20010896F /* UIKit.framework */, + A1E7C4CB188D57F50010896F /* Foundation.framework */, + A1E7C4D9188D57F60010896F /* XCTest.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + A1E7C4CD188D57F50010896F /* StreamingKit */ = { + isa = PBXGroup; + children = ( + A1E7C4F1188D5E550010896F /* STKAudioPlayer.h */, + A1E7C4F2188D5E550010896F /* STKAudioPlayer.m */, + A1E7C4F3188D5E550010896F /* STKAutoRecoveringHttpDataSource.h */, + A1E7C4F4188D5E550010896F /* STKAutoRecoveringHttpDataSource.m */, + A1E7C4F5188D5E550010896F /* STKCoreFoundationDataSource.h */, + A1E7C4F6188D5E550010896F /* STKCoreFoundationDataSource.m */, + A1E7C4F7188D5E550010896F /* STKDataSource.h */, + A1E7C4F8188D5E550010896F /* STKDataSource.m */, + A1E7C4F9188D5E550010896F /* STKDataSourceWrapper.h */, + A1E7C4FA188D5E550010896F /* STKDataSourceWrapper.m */, + A1E7C4FB188D5E550010896F /* STKHttpDataSource.h */, + A1E7C4FC188D5E550010896F /* STKHttpDataSource.m */, + A1E7C4FD188D5E550010896F /* STKLocalFileDataSource.h */, + A1E7C4FE188D5E550010896F /* STKLocalFileDataSource.m */, + A1E7C4CE188D57F50010896F /* Supporting Files */, + ); + path = StreamingKit; + sourceTree = ""; + }; + A1E7C4CE188D57F50010896F /* Supporting Files */ = { + isa = PBXGroup; + children = ( + A1E7C4CF188D57F50010896F /* StreamingKit-Prefix.pch */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + A1E7C4E1188D57F60010896F /* StreamingKitTests */ = { + isa = PBXGroup; + children = ( + A1E7C4E7188D57F60010896F /* StreamingKitTests.m */, + A1E7C4E2188D57F60010896F /* Supporting Files */, + ); + path = StreamingKitTests; + sourceTree = ""; + }; + A1E7C4E2188D57F60010896F /* Supporting Files */ = { + isa = PBXGroup; + children = ( + A1E7C4E3188D57F60010896F /* StreamingKitTests-Info.plist */, + A1E7C4E4188D57F60010896F /* InfoPlist.strings */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + A1E7C4C7188D57F50010896F /* StreamingKit */ = { + isa = PBXNativeTarget; + buildConfigurationList = A1E7C4EB188D57F60010896F /* Build configuration list for PBXNativeTarget "StreamingKit" */; + buildPhases = ( + A1E7C4C4188D57F50010896F /* Sources */, + A1E7C4C5188D57F50010896F /* Frameworks */, + A1E7C4C6188D57F50010896F /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = StreamingKit; + productName = StreamingKit; + productReference = A1E7C4C8188D57F50010896F /* libStreamingKit.a */; + productType = "com.apple.product-type.library.static"; + }; + A1E7C4D7188D57F60010896F /* StreamingKitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = A1E7C4EE188D57F60010896F /* Build configuration list for PBXNativeTarget "StreamingKitTests" */; + buildPhases = ( + A1E7C4D4188D57F60010896F /* Sources */, + A1E7C4D5188D57F60010896F /* Frameworks */, + A1E7C4D6188D57F60010896F /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + A1E7C4DF188D57F60010896F /* PBXTargetDependency */, + ); + name = StreamingKitTests; + productName = StreamingKitTests; + productReference = A1E7C4D8188D57F60010896F /* StreamingKitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + A1E7C4C0188D57F50010896F /* Project object */ = { + isa = PBXProject; + attributes = { + CLASSPREFIX = STK; + LastUpgradeCheck = 0500; + ORGANIZATIONNAME = "Thong Nguyen"; + }; + buildConfigurationList = A1E7C4C3188D57F50010896F /* Build configuration list for PBXProject "StreamingKit" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = A1E7C4BF188D57F50010896F; + productRefGroup = A1E7C4C9188D57F50010896F /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + A1E7C4C7188D57F50010896F /* StreamingKit */, + A1E7C4D7188D57F60010896F /* StreamingKitTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + A1E7C4D6188D57F60010896F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A1E7C4E6188D57F60010896F /* InfoPlist.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A1E7C4C4188D57F50010896F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A1E7C501188D5E550010896F /* STKCoreFoundationDataSource.m in Sources */, + A1E7C4FF188D5E550010896F /* STKAudioPlayer.m in Sources */, + A1E7C505188D5E550010896F /* STKLocalFileDataSource.m in Sources */, + A1E7C504188D5E550010896F /* STKHttpDataSource.m in Sources */, + A1E7C503188D5E550010896F /* STKDataSourceWrapper.m in Sources */, + A1E7C502188D5E550010896F /* STKDataSource.m in Sources */, + A1E7C500188D5E550010896F /* STKAutoRecoveringHttpDataSource.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A1E7C4D4188D57F60010896F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A1E7C4E8188D57F60010896F /* StreamingKitTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + A1E7C4DF188D57F60010896F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = A1E7C4C7188D57F50010896F /* StreamingKit */; + targetProxy = A1E7C4DE188D57F60010896F /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + A1E7C4E4188D57F60010896F /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + A1E7C4E5188D57F60010896F /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + A1E7C4E9188D57F60010896F /* 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; + }; + A1E7C4EA188D57F60010896F /* 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; + }; + A1E7C4EC188D57F60010896F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + DSTROOT = /tmp/StreamingKit.dst; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(DEVELOPER_FRAMEWORKS_DIR)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "StreamingKit/StreamingKit-Prefix.pch"; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + A1E7C4ED188D57F60010896F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DSTROOT = /tmp/StreamingKit.dst; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(DEVELOPER_FRAMEWORKS_DIR)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "StreamingKit/StreamingKit-Prefix.pch"; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + }; + name = Release; + }; + A1E7C4EF188D57F60010896F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + "$(DEVELOPER_FRAMEWORKS_DIR)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "StreamingKit/StreamingKit-Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = "StreamingKitTests/StreamingKitTests-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = xctest; + }; + name = Debug; + }; + A1E7C4F0188D57F60010896F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + "$(DEVELOPER_FRAMEWORKS_DIR)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "StreamingKit/StreamingKit-Prefix.pch"; + INFOPLIST_FILE = "StreamingKitTests/StreamingKitTests-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = xctest; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + A1E7C4C3188D57F50010896F /* Build configuration list for PBXProject "StreamingKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A1E7C4E9188D57F60010896F /* Debug */, + A1E7C4EA188D57F60010896F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A1E7C4EB188D57F60010896F /* Build configuration list for PBXNativeTarget "StreamingKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A1E7C4EC188D57F60010896F /* Debug */, + A1E7C4ED188D57F60010896F /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; + A1E7C4EE188D57F60010896F /* Build configuration list for PBXNativeTarget "StreamingKitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A1E7C4EF188D57F60010896F /* Debug */, + A1E7C4F0188D57F60010896F /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = A1E7C4C0188D57F50010896F /* Project object */; +} diff --git a/Audjustable/Classes/AudioPlayer/AudioPlayer.h b/StreamingKit/StreamingKit/STKAudioPlayer.h similarity index 84% rename from Audjustable/Classes/AudioPlayer/AudioPlayer.h rename to StreamingKit/StreamingKit/STKAudioPlayer.h index 0e4a1ff..69b66f9 100644 --- a/Audjustable/Classes/AudioPlayer/AudioPlayer.h +++ b/StreamingKit/StreamingKit/STKAudioPlayer.h @@ -37,9 +37,13 @@ #import #import -#import "DataSource.h" +#import "STKDataSource.h" #include +#if TARGET_OS_IPHONE +#include "UIKit/UIApplication.h" +#endif + #define AudioPlayerDefaultNumberOfAudioQueueBuffers (2 * 1024) typedef enum @@ -94,18 +98,18 @@ typedef enum } AudioPlayerErrorCode; -@class AudioPlayer; +@class STKAudioPlayer; -@protocol AudioPlayerDelegate --(void) audioPlayer:(AudioPlayer*)audioPlayer stateChanged:(AudioPlayerState)state; --(void) audioPlayer:(AudioPlayer*)audioPlayer didEncounterError:(AudioPlayerErrorCode)errorCode; --(void) audioPlayer:(AudioPlayer*)audioPlayer didStartPlayingQueueItemId:(NSObject*)queueItemId; --(void) audioPlayer:(AudioPlayer*)audioPlayer didFinishBufferingSourceWithQueueItemId:(NSObject*)queueItemId; --(void) audioPlayer:(AudioPlayer*)audioPlayer didFinishPlayingQueueItemId:(NSObject*)queueItemId withReason:(AudioPlayerStopReason)stopReason andProgress:(double)progress andDuration:(double)duration; +@protocol STKAudioPlayerDelegate +-(void) audioPlayer:(STKAudioPlayer*)audioPlayer stateChanged:(AudioPlayerState)state; +-(void) audioPlayer:(STKAudioPlayer*)audioPlayer didEncounterError:(AudioPlayerErrorCode)errorCode; +-(void) audioPlayer:(STKAudioPlayer*)audioPlayer didStartPlayingQueueItemId:(NSObject*)queueItemId; +-(void) audioPlayer:(STKAudioPlayer*)audioPlayer didFinishBufferingSourceWithQueueItemId:(NSObject*)queueItemId; +-(void) audioPlayer:(STKAudioPlayer*)audioPlayer didFinishPlayingQueueItemId:(NSObject*)queueItemId withReason:(AudioPlayerStopReason)stopReason andProgress:(double)progress andDuration:(double)duration; @optional --(void) audioPlayer:(AudioPlayer*)audioPlayer logInfo:(NSString*)line; --(void) audioPlayer:(AudioPlayer*)audioPlayer internalStateChanged:(AudioPlayerInternalState)state; --(void) audioPlayer:(AudioPlayer*)audioPlayer didCancelQueuedItems:(NSArray*)queuedItems; +-(void) audioPlayer:(STKAudioPlayer*)audioPlayer logInfo:(NSString*)line; +-(void) audioPlayer:(STKAudioPlayer*)audioPlayer internalStateChanged:(AudioPlayerInternalState)state; +-(void) audioPlayer: (STKAudioPlayer*)audioPlayer didCancelQueuedItems:(NSArray*)queuedItems; @end @class QueueEntry; @@ -117,7 +121,7 @@ typedef struct } AudioQueueBufferRefLookupEntry; -@interface AudioPlayer : NSObject +@interface STKAudioPlayer : NSObject { @private UInt8* readBuffer; @@ -155,8 +159,10 @@ AudioQueueBufferRefLookupEntry; int fillBufferIndex; +#if TARGET_OS_IPHONE UIBackgroundTaskIdentifier backgroundTaskId; - +#endif + AudioPlayerErrorCode errorCode; AudioPlayerStopReason stopReason; @@ -183,7 +189,7 @@ AudioQueueBufferRefLookupEntry; @property (readonly) double progress; @property (readwrite) AudioPlayerState state; @property (readonly) AudioPlayerStopReason stopReason; -@property (readwrite, unsafe_unretained) id delegate; +@property (readwrite, unsafe_unretained) id delegate; @property (readwrite) BOOL meteringEnabled; -(id) init; diff --git a/Audjustable/Classes/AudioPlayer/AudioPlayer.m b/StreamingKit/StreamingKit/STKAudioPlayer.m similarity index 99% rename from Audjustable/Classes/AudioPlayer/AudioPlayer.m rename to StreamingKit/StreamingKit/STKAudioPlayer.m index 9eb7f3c..aed4cc6 100644 --- a/Audjustable/Classes/AudioPlayer/AudioPlayer.m +++ b/StreamingKit/StreamingKit/STKAudioPlayer.m @@ -35,10 +35,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **********************************************************************************/ -#import "AudioPlayer.h" +#import "STKAudioPlayer.h" #import "AudioToolbox/AudioToolbox.h" -#import "HttpDataSource.h" -#import "LocalFileDataSource.h" +#import "STKHttpDataSource.h" +#import "STKLocalFileDataSource.h" #import "libkern/OSAtomic.h" #define BitRateEstimationMinPackets (64) @@ -245,7 +245,7 @@ @end -@interface AudioPlayer() +@interface STKAudioPlayer() @property (readwrite) AudioPlayerInternalState internalState; -(void) logInfo:(NSString*)line; @@ -270,33 +270,33 @@ static void AudioFileStreamPropertyListenerProc(void* clientData, AudioFileStreamID audioFileStream, AudioFileStreamPropertyID propertyId, UInt32* flags) { - AudioPlayer* player = (__bridge AudioPlayer*)clientData; + STKAudioPlayer* player = (__bridge STKAudioPlayer*)clientData; [player handlePropertyChangeForFileStream:audioFileStream fileStreamPropertyID:propertyId ioFlags:flags]; } static void AudioFileStreamPacketsProc(void* clientData, UInt32 numberBytes, UInt32 numberPackets, const void* inputData, AudioStreamPacketDescription* packetDescriptions) { - AudioPlayer* player = (__bridge AudioPlayer*)clientData; + STKAudioPlayer* player = (__bridge STKAudioPlayer*)clientData; [player handleAudioPackets:inputData numberBytes:numberBytes numberPackets:numberPackets packetDescriptions:packetDescriptions]; } static void AudioQueueOutputCallbackProc(void* clientData, AudioQueueRef audioQueue, AudioQueueBufferRef buffer) { - AudioPlayer* player = (__bridge AudioPlayer*)clientData; + STKAudioPlayer* player = (__bridge STKAudioPlayer*)clientData; [player handleAudioQueueOutput:audioQueue buffer:buffer]; } static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQueue, AudioQueuePropertyID propertyId) { - AudioPlayer* player = (__bridge AudioPlayer*)userData; + STKAudioPlayer* player = (__bridge STKAudioPlayer*)userData; [player handlePropertyChangeForQueue:audioQueue propertyID:propertyId]; } -@implementation AudioPlayer +@implementation STKAudioPlayer @synthesize delegate, internalState, state; -(AudioPlayerInternalState) internalState @@ -465,6 +465,7 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ -(void) startSystemBackgroundTask { +#if TARGET_OS_IPHONE pthread_mutex_lock(&playerMutex); { if (backgroundTaskId != UIBackgroundTaskInvalid) @@ -480,10 +481,12 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ }]; } pthread_mutex_unlock(&playerMutex); +#endif } -(void) stopSystemBackgroundTask { +#if TARGET_OS_IPHONE pthread_mutex_lock(&playerMutex); { if (backgroundTaskId != UIBackgroundTaskInvalid) @@ -494,6 +497,7 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ } } pthread_mutex_unlock(&playerMutex); +#endif } -(DataSource*) dataSourceFromURL:(NSURL*)url @@ -1797,10 +1801,12 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ if (error) { +#if TARGET_OS_IPHONE if (backgroundTaskId == UIBackgroundTaskInvalid) { [self startSystemBackgroundTask]; } +#endif [self stopAudioQueueWithReason:@"from startAudioQueue"]; [self createAudioQueue]; @@ -2251,7 +2257,7 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ } } - UInt32 sizeofMeters = sizeof(AudioQueueLevelMeterState) * numberOfChannels; + UInt32 sizeofMeters = (UInt32)(sizeof(AudioQueueLevelMeterState) * numberOfChannels); AudioQueueGetProperty(audioQueue, kAudioQueueProperty_CurrentLevelMeterDB, levelMeterState, &sizeofMeters); } diff --git a/Audjustable/Classes/AudioPlayer/AutoRecoveringHttpDataSource.h b/StreamingKit/StreamingKit/STKAutoRecoveringHttpDataSource.h similarity index 93% rename from Audjustable/Classes/AudioPlayer/AutoRecoveringHttpDataSource.h rename to StreamingKit/StreamingKit/STKAutoRecoveringHttpDataSource.h index 88f2637..7d008f4 100644 --- a/Audjustable/Classes/AudioPlayer/AutoRecoveringHttpDataSource.h +++ b/StreamingKit/StreamingKit/STKAutoRecoveringHttpDataSource.h @@ -32,11 +32,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **********************************************************************************/ -#import "DataSource.h" -#import "HttpDataSource.h" -#import "DataSourceWrapper.h" +#import "STKDataSource.h" +#import "STKHttpDataSource.h" +#import "STKDataSourceWrapper.h" -@interface AutoRecoveringHttpDataSource : DataSourceWrapper +@interface STKAutoRecoveringHttpDataSource : DataSourceWrapper -(id) initWithHttpDataSource:(HttpDataSource*)innerDataSource; diff --git a/Audjustable/Classes/AudioPlayer/AutoRecoveringHttpDataSource.m b/StreamingKit/StreamingKit/STKAutoRecoveringHttpDataSource.m similarity index 96% rename from Audjustable/Classes/AudioPlayer/AutoRecoveringHttpDataSource.m rename to StreamingKit/StreamingKit/STKAutoRecoveringHttpDataSource.m index 0b15d55..44e8e96 100644 --- a/Audjustable/Classes/AudioPlayer/AutoRecoveringHttpDataSource.m +++ b/StreamingKit/StreamingKit/STKAutoRecoveringHttpDataSource.m @@ -40,12 +40,12 @@ #import #import #import -#import "AutoRecoveringHttpDataSource.h" +#import "STKAutoRecoveringHttpDataSource.h" #define MAX_IMMEDIATE_RECONNECT_ATTEMPTS (8) #define MAX_ATTEMPTS_WITH_SERVER_ERROR (MAX_IMMEDIATE_RECONNECT_ATTEMPTS + 2) -@interface AutoRecoveringHttpDataSource() +@interface STKAutoRecoveringHttpDataSource() { int reconnectAttempts; BOOL waitingForNetwork; @@ -60,13 +60,13 @@ static void ReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkReach { @autoreleasepool { - AutoRecoveringHttpDataSource* dataSource = (__bridge AutoRecoveringHttpDataSource*)info; + STKAutoRecoveringHttpDataSource* dataSource = (__bridge STKAutoRecoveringHttpDataSource*)info; [dataSource reachabilityChanged]; } } -@implementation AutoRecoveringHttpDataSource +@implementation STKAutoRecoveringHttpDataSource -(HttpDataSource*) innerHttpDataSource { diff --git a/Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.h b/StreamingKit/StreamingKit/STKCoreFoundationDataSource.h similarity index 92% rename from Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.h rename to StreamingKit/StreamingKit/STKCoreFoundationDataSource.h index f06125c..0ab4dec 100644 --- a/Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.h +++ b/StreamingKit/StreamingKit/STKCoreFoundationDataSource.h @@ -32,16 +32,16 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **********************************************************************************/ -#import "DataSource.h" +#import "STKDataSource.h" -@class CoreFoundationDataSource; +@class STKCoreFoundationDataSource; @interface CoreFoundationDataSourceClientInfo : NSObject @property (readwrite) CFReadStreamRef readStreamRef; -@property (readwrite, retain) CoreFoundationDataSource* datasource; +@property (readwrite, retain) STKCoreFoundationDataSource* datasource; @end -@interface CoreFoundationDataSource : DataSource +@interface STKCoreFoundationDataSource : DataSource { @protected CFReadStreamRef stream; diff --git a/Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.m b/StreamingKit/StreamingKit/STKCoreFoundationDataSource.m similarity index 95% rename from Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.m rename to StreamingKit/StreamingKit/STKCoreFoundationDataSource.m index bf27fdd..13622db 100644 --- a/Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.m +++ b/StreamingKit/StreamingKit/STKCoreFoundationDataSource.m @@ -32,11 +32,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **********************************************************************************/ -#import "CoreFoundationDataSource.h" +#import "STKCoreFoundationDataSource.h" static void ReadStreamCallbackProc(CFReadStreamRef stream, CFStreamEventType eventType, void* inClientInfo) { - CoreFoundationDataSource* datasource = (__bridge CoreFoundationDataSource*)inClientInfo; + STKCoreFoundationDataSource* datasource = (__bridge STKCoreFoundationDataSource*)inClientInfo; switch (eventType) { @@ -58,7 +58,7 @@ static void ReadStreamCallbackProc(CFReadStreamRef stream, CFStreamEventType eve @synthesize readStreamRef, datasource; @end -@implementation CoreFoundationDataSource +@implementation STKCoreFoundationDataSource -(void) dataAvailable { @@ -104,7 +104,7 @@ static void ReadStreamCallbackProc(CFReadStreamRef stream, CFStreamEventType eve -(int) readIntoBuffer:(UInt8*)buffer withSize:(int)size { - return CFReadStreamRead(stream, buffer, size); + return (int)CFReadStreamRead(stream, buffer, size); } -(void) unregisterForEvents diff --git a/Audjustable/Classes/AudioPlayer/DataSource.h b/StreamingKit/StreamingKit/STKDataSource.h similarity index 95% rename from Audjustable/Classes/AudioPlayer/DataSource.h rename to StreamingKit/StreamingKit/STKDataSource.h index 155c308..494df37 100644 --- a/Audjustable/Classes/AudioPlayer/DataSource.h +++ b/StreamingKit/StreamingKit/STKDataSource.h @@ -37,7 +37,7 @@ @class DataSource; -@protocol DataSourceDelegate +@protocol STKDataSourceDelegate -(void) dataSourceDataAvailable:(DataSource*)dataSource; -(void) dataSourceErrorOccured:(DataSource*)dataSource; -(void) dataSourceEof:(DataSource*)dataSource; @@ -53,7 +53,7 @@ @property (readonly) long long position; @property (readonly) long long length; @property (readonly) BOOL hasBytesAvailable; -@property (readwrite, unsafe_unretained) id delegate; +@property (readwrite, unsafe_unretained) id delegate; -(BOOL) registerForEvents:(NSRunLoop*)runLoop; -(void) unregisterForEvents; diff --git a/Audjustable/Classes/AudioPlayer/DataSource.m b/StreamingKit/StreamingKit/STKDataSource.m similarity index 98% rename from Audjustable/Classes/AudioPlayer/DataSource.m rename to StreamingKit/StreamingKit/STKDataSource.m index 4cd61c3..4751e3e 100644 --- a/Audjustable/Classes/AudioPlayer/DataSource.m +++ b/StreamingKit/StreamingKit/STKDataSource.m @@ -32,7 +32,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **********************************************************************************/ -#import "DataSource.h" +#import "STKDataSource.h" @implementation DataSource @synthesize delegate; diff --git a/Audjustable/Classes/AudioPlayer/DataSourceWrapper.h b/StreamingKit/StreamingKit/STKDataSourceWrapper.h similarity index 95% rename from Audjustable/Classes/AudioPlayer/DataSourceWrapper.h rename to StreamingKit/StreamingKit/STKDataSourceWrapper.h index 6715577..186e2f4 100644 --- a/Audjustable/Classes/AudioPlayer/DataSourceWrapper.h +++ b/StreamingKit/StreamingKit/STKDataSourceWrapper.h @@ -32,9 +32,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **********************************************************************************/ -#import "DataSource.h" +#import "STKDataSource.h" -@interface DataSourceWrapper : DataSource +@interface DataSourceWrapper : DataSource -(id) initWithDataSource:(DataSource*)innerDataSource; diff --git a/Audjustable/Classes/AudioPlayer/DataSourceWrapper.m b/StreamingKit/StreamingKit/STKDataSourceWrapper.m similarity index 99% rename from Audjustable/Classes/AudioPlayer/DataSourceWrapper.m rename to StreamingKit/StreamingKit/STKDataSourceWrapper.m index 2528798..85ec5f8 100644 --- a/Audjustable/Classes/AudioPlayer/DataSourceWrapper.m +++ b/StreamingKit/StreamingKit/STKDataSourceWrapper.m @@ -32,7 +32,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **********************************************************************************/ -#import "DataSourceWrapper.h" +#import "STKDataSourceWrapper.h" @interface DataSourceWrapper() @property (readwrite) DataSource* innerDataSource; diff --git a/Audjustable/Classes/AudioPlayer/HttpDataSource.h b/StreamingKit/StreamingKit/STKHttpDataSource.h similarity index 94% rename from Audjustable/Classes/AudioPlayer/HttpDataSource.h rename to StreamingKit/StreamingKit/STKHttpDataSource.h index 7e19fc2..e83572f 100644 --- a/Audjustable/Classes/AudioPlayer/HttpDataSource.h +++ b/StreamingKit/StreamingKit/STKHttpDataSource.h @@ -32,14 +32,14 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **********************************************************************************/ -#import "CoreFoundationDataSource.h" +#import "STKCoreFoundationDataSource.h" -@interface HttpDataSource : CoreFoundationDataSource +@interface HttpDataSource : STKCoreFoundationDataSource { @private int seekStart; int relativePosition; - int fileLength; + long long fileLength; int discontinuous; NSDictionary* httpHeaders; AudioFileTypeID audioFileTypeHint; diff --git a/Audjustable/Classes/AudioPlayer/HttpDataSource.m b/StreamingKit/StreamingKit/STKHttpDataSource.m similarity index 96% rename from Audjustable/Classes/AudioPlayer/HttpDataSource.m rename to StreamingKit/StreamingKit/STKHttpDataSource.m index 6bd0a8c..06295a2 100644 --- a/Audjustable/Classes/AudioPlayer/HttpDataSource.m +++ b/StreamingKit/StreamingKit/STKHttpDataSource.m @@ -32,8 +32,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **********************************************************************************/ -#import "HttpDataSource.h" -#import "LocalFileDataSource.h" +#import "STKHttpDataSource.h" +#import "STKLocalFileDataSource.h" @interface HttpDataSource() -(void) open; @@ -117,7 +117,7 @@ { if (seekStart == 0) { - fileLength = [[httpHeaders objectForKey:@"Content-Length"] integerValue]; + fileLength = (long long)[[httpHeaders objectForKey:@"Content-Length"] integerValue]; } NSString* contentType = [httpHeaders objectForKey:@"Content-Type"]; @@ -177,7 +177,7 @@ return 0; } - int read = CFReadStreamRead(stream, buffer, size); + int read = (int)CFReadStreamRead(stream, buffer, size); if (read < 0) { @@ -202,6 +202,13 @@ stream = CFReadStreamCreateForHTTPRequest(NULL, message); + if (stream == nil) + { + CFRelease(message); + + return; + } + if (!CFReadStreamSetProperty(stream, kCFStreamPropertyHTTPShouldAutoredirect, kCFBooleanTrue)) { CFRelease(message); diff --git a/Audjustable/Classes/AudioPlayer/LocalFileDataSource.h b/StreamingKit/StreamingKit/STKLocalFileDataSource.h similarity index 95% rename from Audjustable/Classes/AudioPlayer/LocalFileDataSource.h rename to StreamingKit/StreamingKit/STKLocalFileDataSource.h index 2df15dc..ac3fcbe 100644 --- a/Audjustable/Classes/AudioPlayer/LocalFileDataSource.h +++ b/StreamingKit/StreamingKit/STKLocalFileDataSource.h @@ -32,9 +32,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **********************************************************************************/ -#import "CoreFoundationDataSource.h" +#import "STKCoreFoundationDataSource.h" -@interface LocalFileDataSource : CoreFoundationDataSource +@interface LocalFileDataSource : STKCoreFoundationDataSource { @private long long position; diff --git a/Audjustable/Classes/AudioPlayer/LocalFileDataSource.m b/StreamingKit/StreamingKit/STKLocalFileDataSource.m similarity index 98% rename from Audjustable/Classes/AudioPlayer/LocalFileDataSource.m rename to StreamingKit/StreamingKit/STKLocalFileDataSource.m index 7e8c2ef..ca3a924 100644 --- a/Audjustable/Classes/AudioPlayer/LocalFileDataSource.m +++ b/StreamingKit/StreamingKit/STKLocalFileDataSource.m @@ -32,7 +32,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **********************************************************************************/ -#import "LocalFileDataSource.h" +#import "STKLocalFileDataSource.h" @interface LocalFileDataSource() @property (readwrite, copy) NSString* filePath; @@ -163,7 +163,7 @@ -(int) readIntoBuffer:(UInt8*)buffer withSize:(int)size { - int retval = CFReadStreamRead(stream, buffer, size); + int retval = (int)CFReadStreamRead(stream, buffer, size); if (retval > 0) { diff --git a/StreamingKit/StreamingKit/StreamingKit-Prefix.pch b/StreamingKit/StreamingKit/StreamingKit-Prefix.pch new file mode 100644 index 0000000..eb2007e --- /dev/null +++ b/StreamingKit/StreamingKit/StreamingKit-Prefix.pch @@ -0,0 +1,9 @@ +// +// Prefix header +// +// The contents of this file are implicitly included at the beginning of every source file. +// + +#ifdef __OBJC__ + #import +#endif diff --git a/StreamingKit/StreamingKitTests/StreamingKitTests-Info.plist b/StreamingKit/StreamingKitTests/StreamingKitTests-Info.plist new file mode 100644 index 0000000..12b70c6 --- /dev/null +++ b/StreamingKit/StreamingKitTests/StreamingKitTests-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + abstractpath.com.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/StreamingKit/StreamingKitTests/StreamingKitTests.m b/StreamingKit/StreamingKitTests/StreamingKitTests.m new file mode 100644 index 0000000..3c5ca6d --- /dev/null +++ b/StreamingKit/StreamingKitTests/StreamingKitTests.m @@ -0,0 +1,34 @@ +// +// StreamingKitTests.m +// StreamingKitTests +// +// Created by Thong Nguyen on 20/01/2014. +// Copyright (c) 2014 Thong Nguyen. All rights reserved. +// + +#import + +@interface StreamingKitTests : XCTestCase + +@end + +@implementation StreamingKitTests + +- (void)setUp +{ + [super setUp]; + // Put setup code here. This method is called before the invocation of each test method in the class. +} + +- (void)tearDown +{ + // Put teardown code here. This method is called after the invocation of each test method in the class. + [super tearDown]; +} + +- (void)testExample +{ + XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); +} + +@end diff --git a/StreamingKit/StreamingKitTests/en.lproj/InfoPlist.strings b/StreamingKit/StreamingKitTests/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/StreamingKit/StreamingKitTests/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ +