diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Blocks/TCGMsgHandleBlk.html" b/Blocks/TCGMsgHandleBlk.html similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Blocks/TCGMsgHandleBlk.html" rename to Blocks/TCGMsgHandleBlk.html diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Blocks/createTransFinishBlk.html" b/Blocks/createTransFinishBlk.html similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Blocks/createTransFinishBlk.html" rename to Blocks/createTransFinishBlk.html diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Blocks/requestFinishBlk.html" b/Blocks/requestFinishBlk.html similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Blocks/requestFinishBlk.html" rename to Blocks/requestFinishBlk.html diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Blocks/tBoolFinishBlk.html" b/Blocks/tBoolFinishBlk.html similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Blocks/tBoolFinishBlk.html" rename to Blocks/tBoolFinishBlk.html diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Classes/TCGCustomTransChannel.html" b/Classes/TCGCustomTransChannel.html similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Classes/TCGCustomTransChannel.html" rename to Classes/TCGCustomTransChannel.html diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Classes/TCGGameController.html" b/Classes/TCGGameController.html similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Classes/TCGGameController.html" rename to Classes/TCGGameController.html diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Classes/TCGGamePlayer.html" b/Classes/TCGGamePlayer.html similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Classes/TCGGamePlayer.html" rename to Classes/TCGGamePlayer.html diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Classes/TCGVKeyGamepad.html" b/Classes/TCGVKeyGamepad.html similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Classes/TCGVKeyGamepad.html" rename to Classes/TCGVKeyGamepad.html diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Classes/TCGVirtualMouseCursor.html" b/Classes/TCGVirtualMouseCursor.html similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Classes/TCGVirtualMouseCursor.html" rename to Classes/TCGVirtualMouseCursor.html diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Constants/TCGErrorType.html" b/Constants/TCGErrorType.html similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Constants/TCGErrorType.html" rename to Constants/TCGErrorType.html diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Constants/TCGMouseCursorShowMode.html" b/Constants/TCGMouseCursorShowMode.html similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Constants/TCGMouseCursorShowMode.html" rename to Constants/TCGMouseCursorShowMode.html diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Constants/TCGMouseCursorTouchMode.html" b/Constants/TCGMouseCursorTouchMode.html similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Constants/TCGMouseCursorTouchMode.html" rename to Constants/TCGMouseCursorTouchMode.html diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Constants/TCGTextFieldType.html" b/Constants/TCGTextFieldType.html similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Constants/TCGTextFieldType.html" rename to Constants/TCGTextFieldType.html diff --git a/Demo/1-SimplePCDemo/Podfile b/Demo/1-SimplePCDemo/Podfile deleted file mode 100644 index 9680d54..0000000 --- a/Demo/1-SimplePCDemo/Podfile +++ /dev/null @@ -1,7 +0,0 @@ -platform :ios,'12.2' -project './SimplePCDemo.xcodeproj' -target 'SimplePCDemo' do - # Comment the next line if you don't want to use dynamic frameworks - use_frameworks! - pod 'TCGSDK', :git => "https://github.com/tencentyun/cloudgame-ios-sdk.git", :tag => '1.1.9.1' -end diff --git a/Demo/1-SimplePCDemo/SimplePCDemo.xcodeproj/project.pbxproj b/Demo/1-SimplePCDemo/SimplePCDemo.xcodeproj/project.pbxproj deleted file mode 100644 index d086f9c..0000000 --- a/Demo/1-SimplePCDemo/SimplePCDemo.xcodeproj/project.pbxproj +++ /dev/null @@ -1,350 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 11554627279A947A00E998F6 /* SecurityUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 11554626279A947A00E998F6 /* SecurityUtil.m */; }; - 8AB05950271EC91A00D5B560 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AB0594F271EC91A00D5B560 /* AppDelegate.m */; }; - 8AB05956271EC91A00D5B560 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AB05955271EC91A00D5B560 /* ViewController.m */; }; - 8AB05959271EC91A00D5B560 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8AB05957271EC91A00D5B560 /* Main.storyboard */; }; - 8AB0595B271EC91B00D5B560 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8AB0595A271EC91B00D5B560 /* Assets.xcassets */; }; - 8AB0595E271EC91B00D5B560 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8AB0595C271EC91B00D5B560 /* LaunchScreen.storyboard */; }; - 8AB05961271EC91B00D5B560 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AB05960271EC91B00D5B560 /* main.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 11554625279A947A00E998F6 /* SecurityUtil.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SecurityUtil.h; sourceTree = ""; }; - 11554626279A947A00E998F6 /* SecurityUtil.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SecurityUtil.m; sourceTree = ""; }; - 8AB0594B271EC91A00D5B560 /* SimplePCDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SimplePCDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 8AB0594E271EC91A00D5B560 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 8AB0594F271EC91A00D5B560 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 8AB05954271EC91A00D5B560 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; - 8AB05955271EC91A00D5B560 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; - 8AB05958271EC91A00D5B560 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 8AB0595A271EC91B00D5B560 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 8AB0595D271EC91B00D5B560 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 8AB0595F271EC91B00D5B560 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8AB05960271EC91B00D5B560 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8AB05948271EC91A00D5B560 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 8AB05942271EC91A00D5B560 = { - isa = PBXGroup; - children = ( - 8AB0594D271EC91A00D5B560 /* SimplePCDemo */, - 8AB0594C271EC91A00D5B560 /* Products */, - ); - sourceTree = ""; - }; - 8AB0594C271EC91A00D5B560 /* Products */ = { - isa = PBXGroup; - children = ( - 8AB0594B271EC91A00D5B560 /* SimplePCDemo.app */, - ); - name = Products; - sourceTree = ""; - }; - 8AB0594D271EC91A00D5B560 /* SimplePCDemo */ = { - isa = PBXGroup; - children = ( - 8AB0594E271EC91A00D5B560 /* AppDelegate.h */, - 11554625279A947A00E998F6 /* SecurityUtil.h */, - 11554626279A947A00E998F6 /* SecurityUtil.m */, - 8AB0594F271EC91A00D5B560 /* AppDelegate.m */, - 8AB05954271EC91A00D5B560 /* ViewController.h */, - 8AB05955271EC91A00D5B560 /* ViewController.m */, - 8AB05957271EC91A00D5B560 /* Main.storyboard */, - 8AB0595A271EC91B00D5B560 /* Assets.xcassets */, - 8AB0595C271EC91B00D5B560 /* LaunchScreen.storyboard */, - 8AB0595F271EC91B00D5B560 /* Info.plist */, - 8AB05960271EC91B00D5B560 /* main.m */, - ); - path = SimplePCDemo; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8AB0594A271EC91A00D5B560 /* SimplePCDemo */ = { - isa = PBXNativeTarget; - buildConfigurationList = 8AB05964271EC91B00D5B560 /* Build configuration list for PBXNativeTarget "SimplePCDemo" */; - buildPhases = ( - 8AB05947271EC91A00D5B560 /* Sources */, - 8AB05948271EC91A00D5B560 /* Frameworks */, - 8AB05949271EC91A00D5B560 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SimplePCDemo; - productName = SimplePCDemo; - productReference = 8AB0594B271EC91A00D5B560 /* SimplePCDemo.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 8AB05943271EC91A00D5B560 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1170; - ORGANIZATIONNAME = yujunlei; - TargetAttributes = { - 8AB0594A271EC91A00D5B560 = { - CreatedOnToolsVersion = 11.7; - }; - }; - }; - buildConfigurationList = 8AB05946271EC91A00D5B560 /* Build configuration list for PBXProject "SimplePCDemo" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 8AB05942271EC91A00D5B560; - productRefGroup = 8AB0594C271EC91A00D5B560 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8AB0594A271EC91A00D5B560 /* SimplePCDemo */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8AB05949271EC91A00D5B560 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8AB0595E271EC91B00D5B560 /* LaunchScreen.storyboard in Resources */, - 8AB0595B271EC91B00D5B560 /* Assets.xcassets in Resources */, - 8AB05959271EC91A00D5B560 /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8AB05947271EC91A00D5B560 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8AB05956271EC91A00D5B560 /* ViewController.m in Sources */, - 8AB05950271EC91A00D5B560 /* AppDelegate.m in Sources */, - 8AB05961271EC91B00D5B560 /* main.m in Sources */, - 11554627279A947A00E998F6 /* SecurityUtil.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 8AB05957271EC91A00D5B560 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 8AB05958271EC91A00D5B560 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 8AB0595C271EC91B00D5B560 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 8AB0595D271EC91B00D5B560 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 8AB05962271EC91B00D5B560 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.7; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 8AB05963271EC91B00D5B560 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.7; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 8AB05965271EC91B00D5B560 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = F534TE2RW6; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = SimplePCDemo/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.2; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.junlei.demo.SimplePCDemo; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Debug; - }; - 8AB05966271EC91B00D5B560 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = F534TE2RW6; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = SimplePCDemo/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.2; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.junlei.demo.SimplePCDemo; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 8AB05946271EC91A00D5B560 /* Build configuration list for PBXProject "SimplePCDemo" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8AB05962271EC91B00D5B560 /* Debug */, - 8AB05963271EC91B00D5B560 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 8AB05964271EC91B00D5B560 /* Build configuration list for PBXNativeTarget "SimplePCDemo" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8AB05965271EC91B00D5B560 /* Debug */, - 8AB05966271EC91B00D5B560 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 8AB05943271EC91A00D5B560 /* Project object */; -} diff --git a/Demo/1-SimplePCDemo/SimplePCDemo/AppDelegate.h b/Demo/1-SimplePCDemo/SimplePCDemo/AppDelegate.h deleted file mode 100644 index f6839ce..0000000 --- a/Demo/1-SimplePCDemo/SimplePCDemo/AppDelegate.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// AppDelegate.h -// SimplePCDemo -// -// Created by LyleYu on 2021/10/19. -// Copyright © 2021 yujunlei. All rights reserved. -// - -#import - -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end - diff --git a/Demo/1-SimplePCDemo/SimplePCDemo/AppDelegate.m b/Demo/1-SimplePCDemo/SimplePCDemo/AppDelegate.m deleted file mode 100644 index 98bb239..0000000 --- a/Demo/1-SimplePCDemo/SimplePCDemo/AppDelegate.m +++ /dev/null @@ -1,28 +0,0 @@ -// -// AppDelegate.m -// SimplePCDemo -// -// Created by LyleYu on 2021/10/19. -// Copyright © 2021 yujunlei. All rights reserved. -// - -#import "AppDelegate.h" -#import "ViewController.h" - -@interface AppDelegate () - -@end - -@implementation AppDelegate - - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - // Override point for customization after application launch. - CGRect frame = [[UIScreen mainScreen] bounds]; - self.window = [[UIWindow alloc] initWithFrame:frame]; - self.window.rootViewController = [[ViewController alloc] init]; - [[UIApplication sharedApplication] setIdleTimerDisabled:YES]; - return YES; -} - -@end diff --git a/Demo/1-SimplePCDemo/SimplePCDemo/Assets.xcassets/AppIcon.appiconset/Contents.json b/Demo/1-SimplePCDemo/SimplePCDemo/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 9221b9b..0000000 --- a/Demo/1-SimplePCDemo/SimplePCDemo/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "60x60" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "60x60" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "20x20" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "20x20" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "29x29" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "29x29" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "40x40" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "40x40" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "76x76" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "76x76" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "83.5x83.5" - }, - { - "idiom" : "ios-marketing", - "scale" : "1x", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Demo/1-SimplePCDemo/SimplePCDemo/Assets.xcassets/Contents.json b/Demo/1-SimplePCDemo/SimplePCDemo/Assets.xcassets/Contents.json deleted file mode 100644 index 73c0059..0000000 --- a/Demo/1-SimplePCDemo/SimplePCDemo/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Demo/1-SimplePCDemo/SimplePCDemo/Assets.xcassets/default_cursor.imageset/Contents.json b/Demo/1-SimplePCDemo/SimplePCDemo/Assets.xcassets/default_cursor.imageset/Contents.json deleted file mode 100644 index 65bca64..0000000 --- a/Demo/1-SimplePCDemo/SimplePCDemo/Assets.xcassets/default_cursor.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "cursor.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Demo/1-SimplePCDemo/SimplePCDemo/Assets.xcassets/default_cursor.imageset/cursor.png b/Demo/1-SimplePCDemo/SimplePCDemo/Assets.xcassets/default_cursor.imageset/cursor.png deleted file mode 100644 index 6b5dcff..0000000 Binary files a/Demo/1-SimplePCDemo/SimplePCDemo/Assets.xcassets/default_cursor.imageset/cursor.png and /dev/null differ diff --git a/Demo/1-SimplePCDemo/SimplePCDemo/Base.lproj/LaunchScreen.storyboard b/Demo/1-SimplePCDemo/SimplePCDemo/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 865e932..0000000 --- a/Demo/1-SimplePCDemo/SimplePCDemo/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Demo/1-SimplePCDemo/SimplePCDemo/Base.lproj/Main.storyboard b/Demo/1-SimplePCDemo/SimplePCDemo/Base.lproj/Main.storyboard deleted file mode 100644 index 808a21c..0000000 --- a/Demo/1-SimplePCDemo/SimplePCDemo/Base.lproj/Main.storyboard +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Demo/1-SimplePCDemo/SimplePCDemo/Info.plist b/Demo/1-SimplePCDemo/SimplePCDemo/Info.plist deleted file mode 100644 index c4679ee..0000000 --- a/Demo/1-SimplePCDemo/SimplePCDemo/Info.plist +++ /dev/null @@ -1,43 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Demo/1-SimplePCDemo/SimplePCDemo/SecurityUtil.h b/Demo/1-SimplePCDemo/SimplePCDemo/SecurityUtil.h deleted file mode 100644 index 36af471..0000000 --- a/Demo/1-SimplePCDemo/SimplePCDemo/SecurityUtil.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// SecurityUtility.h -// SimplePCDemo -// -// Created by xxhape on 21.1.22. -// - -#import - -@interface SecurityUtil : NSObject - -+ (NSString *) sha256Hash:(NSString *)input; -@end - diff --git a/Demo/1-SimplePCDemo/SimplePCDemo/SecurityUtil.m b/Demo/1-SimplePCDemo/SimplePCDemo/SecurityUtil.m deleted file mode 100644 index 78eba3e..0000000 --- a/Demo/1-SimplePCDemo/SimplePCDemo/SecurityUtil.m +++ /dev/null @@ -1,22 +0,0 @@ -// -// SecurityUtility.m -// SimplePCDemo -// -// Created by xxhape on 21.1.22. -// - -#import "SecurityUtil.h" -#import -@implementation SecurityUtil - -+(NSString *) sha256Hash:(NSString *)input{ - const char* str =[input UTF8String]; - unsigned char result[CC_SHA256_DIGEST_LENGTH]; - CC_SHA256(str, (CC_LONG)strlen(str), result); - NSMutableString *ret = [NSMutableString stringWithCapacity:CC_SHA256_DIGEST_LENGTH*2]; - for(int i = 0;i - -@interface ViewController : UIViewController - - -@end - diff --git a/Demo/1-SimplePCDemo/SimplePCDemo/ViewController.m b/Demo/1-SimplePCDemo/SimplePCDemo/ViewController.m deleted file mode 100644 index b3eefa0..0000000 --- a/Demo/1-SimplePCDemo/SimplePCDemo/ViewController.m +++ /dev/null @@ -1,232 +0,0 @@ -// -// ViewController.m -// SimplePCDemo -// -// Created by LyleYu on 2021/10/19. -// Copyright © 2021 yujunlei. All rights reserved. -// - -#import "ViewController.h" -#import -#import "SecurityUtil.h" -typedef void (^httpResponseBlk)(NSData * data, NSURLResponse * response, NSError * error); - -@interface ViewController () - -@property(nonatomic, copy) NSString *userId; -@property(nonatomic, strong) TCGGamePlayer *gamePlayer; -@property(nonatomic, weak) TCGGameController *gameController; -@property(nonatomic, strong) TCGVirtualMouseCursor *mouseCursor; - -@end - -@implementation ViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - // Do any additional setup after loading the view. - self.view.backgroundColor = [UIColor grayColor]; - UIButton *startBtn = [[UIButton alloc] initWithFrame:CGRectMake(50, 50, 100, 45)]; - [startBtn setTitle:@"Start" forState:UIControlStateNormal]; - [startBtn addTarget:self action:@selector(startGame) forControlEvents:UIControlEventTouchUpInside]; - UIButton *stopBtn = [[UIButton alloc] initWithFrame:CGRectMake(150, 50, 100, 45)]; - [stopBtn setTitle:@"Stop" forState:UIControlStateNormal]; - [stopBtn addTarget:self action:@selector(stopGame) forControlEvents:UIControlEventTouchUpInside]; - [self.view addSubview:startBtn]; - [self.view addSubview:stopBtn]; - self.userId = [NSString stringWithFormat:@"SimplePC_iOS-%@", [[[NSUUID UUID] UUIDString] substringToIndex:8]]; -} - -- (void)createGamePlayer { - if (self.gamePlayer) { - return; - } - self.gamePlayer = [[TCGGamePlayer alloc] initWithParams:nil andDelegate:self]; - [self.gamePlayer setConnectTimeout:10]; - [self.gamePlayer setStreamBitrateMix:1000 max:3000 fps:30]; - self.gameController = self.gamePlayer.gameController; - self.gameController.controlDelegate = self; - [self.gamePlayer.videoView setFrame:self.view.bounds]; - self.mouseCursor = [[TCGVirtualMouseCursor alloc] initWithFrame:self.gamePlayer.videoView.bounds - controller:self.gameController]; - // 设置默认的鼠标指针图片,防止后台未及时下放时显示空白 - [self.mouseCursor setCursorImage:[UIImage imageNamed:@"default_cursor"] andRemoteFrame:CGRectMake(0, 0, 32, 32)]; - - [self.gamePlayer.videoView addSubview:self.mouseCursor]; - [self.view insertSubview:self.gamePlayer.videoView atIndex:0]; -} - -- (void)viewDidDisappear:(BOOL)animated { - [super viewDidDisappear:animated]; - [self stopGame]; -} - -- (void)getRemoteSessionWithLocalSession:(NSString *)localSession { - // TODO: 这里的接口地址仅供Demo体验,请及时更换为自己的业务后台接口 - // 云应用将StartGame替换为StartProject - NSString *createSession = @"xxxxx/StartGame"; - NSString *requestID = [[NSUUID UUID] UUIDString]; - NSString *salt = @"DLaB%$bfAc!@ds"; - self.userId = [NSString stringWithFormat:@"SimplePC-%@", [[NSUUID UUID] UUIDString]]; - NSNumber *timeStamp = [self currentTimeStamp]; - NSString *stringSHA256 = [[NSString alloc] initWithFormat:@"%@game-xxx%@%@%@%@",localSession,requestID,timeStamp,self.userId,salt]; - NSString *sign = [SecurityUtil sha256Hash:stringSHA256]; - - NSDictionary *params = @{@"RequestId":requestID,@"UserId":self.userId, - @"GameId":@"game-xxx",@"ClientSession":localSession, - @"TimeStamp":timeStamp,@"Sign":sign}; - - [self postUrl:createSession params:params finishBlk:^(NSData *data, NSURLResponse *response, NSError *error) { - if (error != nil || data == nil) { - NSLog(@"申请云端机器失败:%@", error.userInfo.description); - return; - } - NSError *err = nil; - id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&err]; - if (err != nil || ![json isKindOfClass:[NSDictionary class]]) { - NSLog(@"返回结果解析失败:%@", error.userInfo.description); - return; - } - NSDictionary *jsonObj = (NSDictionary *) json; - NSString *code = [jsonObj objectForKey:@"Code"]; - if ([code intValue] != 0) { - NSLog(@"返回结果异常:%@", jsonObj); - return; - } - NSDictionary *dataDic = [jsonObj objectForKey:@"SessionDescribe"]; - NSString *serverSession = [dataDic objectForKey:@"ServerSession"]; - if (serverSession.length == 0) { - NSLog(@"返回结果异常:%@", jsonObj); - return; - } - dispatch_async(dispatch_get_main_queue(), ^{ - [self startGameWithRemoteSession:serverSession]; - }); - }]; -} - -- (void)startGame { - [self createGamePlayer]; -} - -- (void)startGameWithRemoteSession:(NSString *)remoteSession { - NSLog(@"从业务后台成功申请到云端机器"); - NSError *error; - [self.gamePlayer startGameWithRemoteSession:remoteSession error:&error]; - NSLog(@"start game %@", error); -} - -- (void)stopGame { - dispatch_async(dispatch_get_main_queue(), ^{ - if (self.gamePlayer == nil) { - return; - } - [self.mouseCursor removeFromSuperview]; - self.mouseCursor = nil; - [self.gamePlayer.videoView removeFromSuperview]; - [self.gamePlayer stopGame]; - self.gamePlayer = nil; - if (self.userId.length == 0) { - return; - } - // TODO: 业务后台需要及时向腾讯云后台释放机器,避免资源浪费 - // 云应用将StopGame替换为StopProject - NSString *releaseSession = @"xxxxx/StopGame"; - NSDictionary *params = @{@"UserId":self.userId}; - [self postUrl:releaseSession params:params finishBlk:^(NSData *data, NSURLResponse *response, NSError *error) { - if (error != nil || data == nil) { - NSLog(@"释放云端机器失败:%@", error.userInfo.description); - return; - } - NSLog(@"已释放云端机器"); - }]; - }); -} - -#pragma mark --- TCGGamePlayerDelegate --- -- (void)onInitSuccess:(NSString *)localSession { - NSLog(@"SimplePCDemo onInitSuccess, 本地初始化成功"); - [self getRemoteSessionWithLocalSession:localSession]; -} - -- (void)onVideoSizeChanged:(CGSize)videoSize { - NSLog(@"更新画面尺寸:%@", NSStringFromCGSize(videoSize)); - CGFloat newWidth = self.view.frame.size.width - [self.view safeAreaInsets].left - [self.view safeAreaInsets].right; - CGFloat newHeight = self.view.frame.size.height; - // 游戏画面强制横屏、设置游戏画面居中显示类似 UIViewContentModeScaleAspectFit - if (newWidth/newHeight < videoSize.width/videoSize.height) { - newHeight = floor(newWidth * videoSize.height / videoSize.width); - } else { - newWidth = floor(newHeight * videoSize.width / videoSize.height); - } - self.gamePlayer.videoView.frame = CGRectMake((self.view.frame.size.width - newWidth) / 2, - (self.view.frame.size.height - newHeight) / 2, - newWidth, newHeight); - self.mouseCursor.frame = self.gamePlayer.videoView.bounds; -} - -- (void)onVideoShow { - NSLog(@"SimplePCDemo onVideoShow, 游戏开始有画面"); - // 设置正确的鼠标显示与控制模式 - [self.gameController setCursorShowMode:TCGMouseCursorShowMode_Local]; - [self.mouseCursor setCursorTouchMode:TCGMouseCursorTouchMode_RelativeTouch]; -} - -- (void)onConnectionFailure:(TCGErrorType)errorCode msg:(NSError *)errorMsg { - NSLog(@"SimplePCDemo onConnectionFailure"); - [self stopGame]; -} - -- (void)onInitFailure:(TCGErrorType)errorCode msg:(NSError *)errorMsg { - NSLog(@"SimplePCDemo onInitFailure"); - [self stopGame]; -} - -- (void)onStartReConnectWithReason:(TCGErrorType)reason { - NSLog(@"onStartReConnectWithReason 与云端链接断开,SDK内部重连中"); -} - -#pragma mark --- TCGGameControllerDelegate --- -- (void)onCursorImageUpdated:(UIImage *)image frame:(CGRect)imageFrame { - [self.mouseCursor setCursorImage:image andRemoteFrame:imageFrame]; -} - -- (void)onCursorVisibleChanged:(BOOL)isVisble { - NSLog(@"onCursorVisibleChanged 鼠标状态:%@", isVisble?@"显示":@"隐藏"); - [self.mouseCursor setCursorIsShow:isVisble]; -} - -- (void)onClickedTextField:(TCGTextFieldType)type { - NSLog(@"onClickedTextField:%zu", type); -} - - - -- (void)postUrl:(NSString *)url params:(NSDictionary *)params finishBlk:(httpResponseBlk)finishBlk { - NSURLSession *session = [NSURLSession sharedSession]; - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[[NSURL alloc] initWithString:url]]; - [request setHTTPMethod:@"POST"]; - NSError *error = nil; - NSData *body = [NSJSONSerialization dataWithJSONObject:params options:0 error:&error]; - if (error != nil || body == nil) { - NSLog(@"JSON serialization error:%@", error); - if (finishBlk) { - finishBlk(nil, nil, error); - } - return; - } - [request setHTTPBody:body]; - [request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; - [[session dataTaskWithRequest:request completionHandler:finishBlk] resume]; -} - -- (NSNumber *)currentTimeStamp{ - NSDate* date = [NSDate dateWithTimeIntervalSinceNow:0]; - NSTimeInterval time=[date timeIntervalSince1970]*1000; - NSString *timeString = [NSString stringWithFormat:@"%.0f", time]; - int timeInt = [timeString intValue]; - NSNumber *timeStamp = [NSNumber numberWithInt:timeInt]; - return timeStamp; -} - -@end diff --git a/Demo/1-SimplePCDemo/SimplePCDemo/main.m b/Demo/1-SimplePCDemo/SimplePCDemo/main.m deleted file mode 100644 index 3716db2..0000000 --- a/Demo/1-SimplePCDemo/SimplePCDemo/main.m +++ /dev/null @@ -1,19 +0,0 @@ -// -// main.m -// SimplePCDemo -// -// Created by LyleYu on 2021/10/19. -// Copyright © 2021 yujunlei. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - NSString * appDelegateClassName; - @autoreleasepool { - // Setup code that might create autoreleased objects goes here. - appDelegateClassName = NSStringFromClass([AppDelegate class]); - } - return UIApplicationMain(argc, argv, nil, appDelegateClassName); -} diff --git a/Demo/2-SimpleMobile/Podfile b/Demo/2-SimpleMobile/Podfile deleted file mode 100644 index dc68342..0000000 --- a/Demo/2-SimpleMobile/Podfile +++ /dev/null @@ -1,7 +0,0 @@ -platform :ios,'12.2' -project './SimpleMobile.xcodeproj' -target 'SimpleMobile' do - # Comment the next line if you don't want to use dynamic frameworks - use_frameworks! - pod 'TCGSDK', :git => "https://github.com/tencentyun/cloudgame-ios-sdk.git", :tag => '1.1.9.1' -end diff --git a/Demo/2-SimpleMobile/SimpleMobile.xcodeproj/project.pbxproj b/Demo/2-SimpleMobile/SimpleMobile.xcodeproj/project.pbxproj deleted file mode 100644 index de9deb3..0000000 --- a/Demo/2-SimpleMobile/SimpleMobile.xcodeproj/project.pbxproj +++ /dev/null @@ -1,350 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 11554624279A93F200E998F6 /* SecurityUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 11554623279A93F200E998F6 /* SecurityUtil.m */; }; - 8AB05950271EC91A00D5B560 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AB0594F271EC91A00D5B560 /* AppDelegate.m */; }; - 8AB05956271EC91A00D5B560 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AB05955271EC91A00D5B560 /* ViewController.m */; }; - 8AB05959271EC91A00D5B560 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8AB05957271EC91A00D5B560 /* Main.storyboard */; }; - 8AB0595B271EC91B00D5B560 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8AB0595A271EC91B00D5B560 /* Assets.xcassets */; }; - 8AB0595E271EC91B00D5B560 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8AB0595C271EC91B00D5B560 /* LaunchScreen.storyboard */; }; - 8AB05961271EC91B00D5B560 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AB05960271EC91B00D5B560 /* main.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 11554622279A93F100E998F6 /* SecurityUtil.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SecurityUtil.h; sourceTree = ""; }; - 11554623279A93F200E998F6 /* SecurityUtil.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SecurityUtil.m; sourceTree = ""; }; - 8AB0594B271EC91A00D5B560 /* SimpleMobile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SimpleMobile.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 8AB0594E271EC91A00D5B560 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 8AB0594F271EC91A00D5B560 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 8AB05954271EC91A00D5B560 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; - 8AB05955271EC91A00D5B560 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; - 8AB05958271EC91A00D5B560 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 8AB0595A271EC91B00D5B560 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 8AB0595D271EC91B00D5B560 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 8AB0595F271EC91B00D5B560 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8AB05960271EC91B00D5B560 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8AB05948271EC91A00D5B560 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 8AB05942271EC91A00D5B560 = { - isa = PBXGroup; - children = ( - 8AB0594D271EC91A00D5B560 /* SimpleMobile */, - 8AB0594C271EC91A00D5B560 /* Products */, - ); - sourceTree = ""; - }; - 8AB0594C271EC91A00D5B560 /* Products */ = { - isa = PBXGroup; - children = ( - 8AB0594B271EC91A00D5B560 /* SimpleMobile.app */, - ); - name = Products; - sourceTree = ""; - }; - 8AB0594D271EC91A00D5B560 /* SimpleMobile */ = { - isa = PBXGroup; - children = ( - 8AB0594E271EC91A00D5B560 /* AppDelegate.h */, - 11554622279A93F100E998F6 /* SecurityUtil.h */, - 11554623279A93F200E998F6 /* SecurityUtil.m */, - 8AB0594F271EC91A00D5B560 /* AppDelegate.m */, - 8AB05954271EC91A00D5B560 /* ViewController.h */, - 8AB05955271EC91A00D5B560 /* ViewController.m */, - 8AB05957271EC91A00D5B560 /* Main.storyboard */, - 8AB0595A271EC91B00D5B560 /* Assets.xcassets */, - 8AB0595C271EC91B00D5B560 /* LaunchScreen.storyboard */, - 8AB0595F271EC91B00D5B560 /* Info.plist */, - 8AB05960271EC91B00D5B560 /* main.m */, - ); - path = SimpleMobile; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8AB0594A271EC91A00D5B560 /* SimpleMobile */ = { - isa = PBXNativeTarget; - buildConfigurationList = 8AB05964271EC91B00D5B560 /* Build configuration list for PBXNativeTarget "SimpleMobile" */; - buildPhases = ( - 8AB05947271EC91A00D5B560 /* Sources */, - 8AB05948271EC91A00D5B560 /* Frameworks */, - 8AB05949271EC91A00D5B560 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SimpleMobile; - productName = SimpleMobile; - productReference = 8AB0594B271EC91A00D5B560 /* SimpleMobile.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 8AB05943271EC91A00D5B560 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1170; - ORGANIZATIONNAME = yujunlei; - TargetAttributes = { - 8AB0594A271EC91A00D5B560 = { - CreatedOnToolsVersion = 11.7; - }; - }; - }; - buildConfigurationList = 8AB05946271EC91A00D5B560 /* Build configuration list for PBXProject "SimpleMobile" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 8AB05942271EC91A00D5B560; - productRefGroup = 8AB0594C271EC91A00D5B560 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8AB0594A271EC91A00D5B560 /* SimpleMobile */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8AB05949271EC91A00D5B560 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8AB0595E271EC91B00D5B560 /* LaunchScreen.storyboard in Resources */, - 8AB0595B271EC91B00D5B560 /* Assets.xcassets in Resources */, - 8AB05959271EC91A00D5B560 /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8AB05947271EC91A00D5B560 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8AB05956271EC91A00D5B560 /* ViewController.m in Sources */, - 8AB05950271EC91A00D5B560 /* AppDelegate.m in Sources */, - 8AB05961271EC91B00D5B560 /* main.m in Sources */, - 11554624279A93F200E998F6 /* SecurityUtil.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 8AB05957271EC91A00D5B560 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 8AB05958271EC91A00D5B560 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 8AB0595C271EC91B00D5B560 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 8AB0595D271EC91B00D5B560 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 8AB05962271EC91B00D5B560 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.7; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 8AB05963271EC91B00D5B560 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.7; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 8AB05965271EC91B00D5B560 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = F534TE2RW6; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = SimpleMobile/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.2; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.junlei.demo.SimpleMobile; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Debug; - }; - 8AB05966271EC91B00D5B560 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = F534TE2RW6; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = SimpleMobile/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.2; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.junlei.demo.SimpleMobile; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 8AB05946271EC91A00D5B560 /* Build configuration list for PBXProject "SimpleMobile" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8AB05962271EC91B00D5B560 /* Debug */, - 8AB05963271EC91B00D5B560 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 8AB05964271EC91B00D5B560 /* Build configuration list for PBXNativeTarget "SimpleMobile" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8AB05965271EC91B00D5B560 /* Debug */, - 8AB05966271EC91B00D5B560 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 8AB05943271EC91A00D5B560 /* Project object */; -} diff --git a/Demo/2-SimpleMobile/SimpleMobile/AppDelegate.h b/Demo/2-SimpleMobile/SimpleMobile/AppDelegate.h deleted file mode 100644 index d475a81..0000000 --- a/Demo/2-SimpleMobile/SimpleMobile/AppDelegate.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// AppDelegate.h -// SimpleMobile -// -// Created by LyleYu on 2021/10/19. -// Copyright © 2021 yujunlei. All rights reserved. -// - -#import - -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end - diff --git a/Demo/2-SimpleMobile/SimpleMobile/AppDelegate.m b/Demo/2-SimpleMobile/SimpleMobile/AppDelegate.m deleted file mode 100644 index a13c879..0000000 --- a/Demo/2-SimpleMobile/SimpleMobile/AppDelegate.m +++ /dev/null @@ -1,28 +0,0 @@ -// -// AppDelegate.m -// SimpleMobile -// -// Created by LyleYu on 2021/10/19. -// Copyright © 2021 yujunlei. All rights reserved. -// - -#import "AppDelegate.h" -#import "ViewController.h" - -@interface AppDelegate () - -@end - -@implementation AppDelegate - - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - // Override point for customization after application launch. - CGRect frame = [[UIScreen mainScreen] bounds]; - self.window = [[UIWindow alloc] initWithFrame:frame]; - self.window.rootViewController = [[ViewController alloc] init]; - [[UIApplication sharedApplication] setIdleTimerDisabled:YES]; - return YES; -} - -@end diff --git a/Demo/2-SimpleMobile/SimpleMobile/Assets.xcassets/AppIcon.appiconset/Contents.json b/Demo/2-SimpleMobile/SimpleMobile/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 9221b9b..0000000 --- a/Demo/2-SimpleMobile/SimpleMobile/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "60x60" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "60x60" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "20x20" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "20x20" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "29x29" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "29x29" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "40x40" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "40x40" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "76x76" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "76x76" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "83.5x83.5" - }, - { - "idiom" : "ios-marketing", - "scale" : "1x", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Demo/2-SimpleMobile/SimpleMobile/Assets.xcassets/Contents.json b/Demo/2-SimpleMobile/SimpleMobile/Assets.xcassets/Contents.json deleted file mode 100644 index 73c0059..0000000 --- a/Demo/2-SimpleMobile/SimpleMobile/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Demo/2-SimpleMobile/SimpleMobile/Base.lproj/LaunchScreen.storyboard b/Demo/2-SimpleMobile/SimpleMobile/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 865e932..0000000 --- a/Demo/2-SimpleMobile/SimpleMobile/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Demo/2-SimpleMobile/SimpleMobile/Base.lproj/Main.storyboard b/Demo/2-SimpleMobile/SimpleMobile/Base.lproj/Main.storyboard deleted file mode 100644 index 808a21c..0000000 --- a/Demo/2-SimpleMobile/SimpleMobile/Base.lproj/Main.storyboard +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Demo/2-SimpleMobile/SimpleMobile/Info.plist b/Demo/2-SimpleMobile/SimpleMobile/Info.plist deleted file mode 100644 index 7a725c0..0000000 --- a/Demo/2-SimpleMobile/SimpleMobile/Info.plist +++ /dev/null @@ -1,44 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationLandscapeRight - UIInterfaceOrientationPortrait - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Demo/2-SimpleMobile/SimpleMobile/SecurityUtil.h b/Demo/2-SimpleMobile/SimpleMobile/SecurityUtil.h deleted file mode 100644 index 36af471..0000000 --- a/Demo/2-SimpleMobile/SimpleMobile/SecurityUtil.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// SecurityUtility.h -// SimplePCDemo -// -// Created by xxhape on 21.1.22. -// - -#import - -@interface SecurityUtil : NSObject - -+ (NSString *) sha256Hash:(NSString *)input; -@end - diff --git a/Demo/2-SimpleMobile/SimpleMobile/SecurityUtil.m b/Demo/2-SimpleMobile/SimpleMobile/SecurityUtil.m deleted file mode 100644 index 78eba3e..0000000 --- a/Demo/2-SimpleMobile/SimpleMobile/SecurityUtil.m +++ /dev/null @@ -1,22 +0,0 @@ -// -// SecurityUtility.m -// SimplePCDemo -// -// Created by xxhape on 21.1.22. -// - -#import "SecurityUtil.h" -#import -@implementation SecurityUtil - -+(NSString *) sha256Hash:(NSString *)input{ - const char* str =[input UTF8String]; - unsigned char result[CC_SHA256_DIGEST_LENGTH]; - CC_SHA256(str, (CC_LONG)strlen(str), result); - NSMutableString *ret = [NSMutableString stringWithCapacity:CC_SHA256_DIGEST_LENGTH*2]; - for(int i = 0;i - -@interface ViewController : UIViewController - - -@end - diff --git a/Demo/2-SimpleMobile/SimpleMobile/ViewController.m b/Demo/2-SimpleMobile/SimpleMobile/ViewController.m deleted file mode 100644 index d8859fd..0000000 --- a/Demo/2-SimpleMobile/SimpleMobile/ViewController.m +++ /dev/null @@ -1,238 +0,0 @@ -// -// ViewController.m -// SimpleMobile -// -// Created by LyleYu on 2021/10/19. -// Copyright © 2021 yujunlei. All rights reserved. -// - -#import "ViewController.h" -#import -#import "SecurityUtil.h" -typedef void (^httpResponseBlk)(NSData * data, NSURLResponse * response, NSError * error); - -@interface ViewController () - -@property(nonatomic, copy) NSString *userId; -@property(nonatomic, strong) TCGGamePlayer *gamePlayer; -@property(nonatomic, weak) TCGGameController *gameController; -@property(nonatomic, strong) TCGRemoteTouchScreen *mobileTouch; - -@end - -@implementation ViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - // Do any additional setup after loading the view. - self.view.backgroundColor = [UIColor grayColor]; - UIButton *startBtn = [[UIButton alloc] initWithFrame:CGRectMake(50, 50, 100, 45)]; - [startBtn setTitle:@"Start" forState:UIControlStateNormal]; - [startBtn addTarget:self action:@selector(startGame) forControlEvents:UIControlEventTouchUpInside]; - UIButton *stopBtn = [[UIButton alloc] initWithFrame:CGRectMake(150, 50, 100, 45)]; - [stopBtn setTitle:@"Stop" forState:UIControlStateNormal]; - [stopBtn addTarget:self action:@selector(stopGame) forControlEvents:UIControlEventTouchUpInside]; - [self.view addSubview:startBtn]; - [self.view addSubview:stopBtn]; - [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(handleStatusBarOrientationChange:) name:UIApplicationDidChangeStatusBarOrientationNotification object:nil]; -} - -- (void)dealloc { - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -- (void)createGamePlayer { - if (self.gamePlayer) { - return; - } - self.gamePlayer = [[TCGGamePlayer alloc] initWithParams:nil andDelegate:self]; - [self.gamePlayer setConnectTimeout:10]; - [self.gamePlayer setStreamBitrateMix:1000 max:3000 fps:30]; - self.gameController = self.gamePlayer.gameController; - - [self.gamePlayer.videoView setFrame:self.view.bounds]; - [self.view insertSubview:self.gamePlayer.videoView atIndex:0]; - - self.mobileTouch = [[TCGRemoteTouchScreen alloc] initWithFrame:self.gamePlayer.videoView.bounds controller:self.gameController]; - [self.gamePlayer.videoView addSubview:self.mobileTouch]; -} - -- (void)viewDidDisappear:(BOOL)animated { - [super viewDidDisappear:animated]; - [self stopGame]; -} - -- (void)getRemoteSessionWithLocalSession:(NSString *)localSession { - // TODO: 这里的接口地址仅供Demo体验,请及时更换为自己的业务后台接口 - // 云应用将StartGame替换为StartProject - NSString *createSession = @"xxxxx/StartGame"; - NSString *requestID = [[NSUUID UUID] UUIDString]; - NSString *salt = @"DLaB%$bfAc!@ds"; - self.userId = [NSString stringWithFormat:@"SimpleMoblie-%@", [[NSUUID UUID] UUIDString]]; - NSNumber *timeStamp = [self currentTimeStamp]; - NSString *stringSHA256 = [[NSString alloc] initWithFormat:@"%@game-xxx%@%@%@%@",localSession,requestID,timeStamp,self.userId,salt]; - NSString *sign = [SecurityUtil sha256Hash:stringSHA256]; - NSLog(@"%@",requestID); - NSDictionary *params = @{@"RequestId":requestID,@"UserId":self.userId, - @"GameId":@"game-xxx",@"ClientSession":localSession, - @"TimeStamp":timeStamp,@"Sign":sign}; - - [self postUrl:createSession params:params finishBlk:^(NSData *data, NSURLResponse *response, NSError *error) { - if (error != nil || data == nil) { - NSLog(@"申请云端机器失败:%@", error.userInfo.description); - return; - } - NSError *err = nil; - id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&err]; - if (err != nil || ![json isKindOfClass:[NSDictionary class]]) { - NSLog(@"返回结果解析失败:%@", error.userInfo.description); - return; - } - NSDictionary *jsonObj = (NSDictionary *) json; - NSString *code = [jsonObj objectForKey:@"Code"]; - if ([code intValue] != 0) { - NSLog(@"返回结果异常:%@", jsonObj); - return; - } - NSDictionary *dataDic = [jsonObj objectForKey:@"SessionDescribe"]; - NSString *serverSession = [dataDic objectForKey:@"ServerSession"]; - if (serverSession.length == 0) { - NSLog(@"返回结果异常:%@", jsonObj); - return; - } - dispatch_async(dispatch_get_main_queue(), ^{ - [self startGameWithRemoteSession:serverSession]; - }); - }]; -} - -- (void)startGame { - [self createGamePlayer]; -} - -- (void)startGameWithRemoteSession:(NSString *)remoteSession { - NSLog(@"从业务后台成功申请到云端机器"); - NSError *error; - [self.gamePlayer startGameWithRemoteSession:remoteSession error:&error]; - NSLog(@"start game %@", error); -} - -- (void)stopGame { - dispatch_async(dispatch_get_main_queue(), ^{ - if (self.gamePlayer == nil) { - return; - } - [self.gamePlayer.videoView removeFromSuperview]; - [self.gamePlayer stopGame]; - self.gamePlayer = nil; - if (self.userId.length == 0) { - return; - } - // TODO: 业务后台需要及时向腾讯云后台释放机器,避免资源浪费 - // 云应用将StopGame替换为StopProject - NSString *releaseSession = @"xxxxx/StopGame"; - NSDictionary *params = @{@"UserId":self.userId}; - [self postUrl:releaseSession params:params finishBlk:^(NSData *data, NSURLResponse *response, NSError *error) { - if (error != nil || data == nil) { - NSLog(@"释放云端机器失败:%@", error.userInfo.description); - return; - } - NSLog(@"已释放云端机器"); - }]; - }); -} - -- (void)onInitSuccess:(NSString *)localSession { - NSLog(@"SimpleMobile onInitSuccess, 本地初始化成功"); - [self getRemoteSessionWithLocalSession:localSession]; -} - -- (void)onVideoSizeChanged:(CGSize)videoSize { - UIInterfaceOrientation vcOrient = [[UIApplication sharedApplication] statusBarOrientation]; - CGFloat newWidth = 100; - CGFloat newHeight = 100; - if (vcOrient == UIInterfaceOrientationLandscapeRight) { - // 当手机横屏显示时,需要将videoView画面逆时钟旋转90度。 - newWidth = self.view.frame.size.height; - newHeight = self.view.frame.size.width - [self.view safeAreaInsets].left; - } else { - newWidth = self.view.frame.size.width; - newHeight = self.view.frame.size.height - [self.view safeAreaInsets].top; - } - // 游戏画面固定为竖屏、设置游戏画面居中显示类似 UIViewContentModeScaleAspectFit - if (newWidth/newHeight > videoSize.width/videoSize.height) { - newHeight = floor(newWidth * videoSize.height / videoSize.width); - } else { - newWidth = floor(newHeight * videoSize.width / videoSize.height); - } - self.gamePlayer.videoView.frame = CGRectMake((self.view.frame.size.width - newWidth) / 2, - (self.view.frame.size.height - newHeight) / 2, - newWidth, newHeight); - [self.mobileTouch setFrame:self.gamePlayer.videoView.bounds]; - - if (vcOrient == UIInterfaceOrientationLandscapeRight) { - self.gamePlayer.videoView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, -M_PI_2); - } -} - -- (void)handleStatusBarOrientationChange:(NSNotification *)notification { - self.gamePlayer.videoView.center = self.view.center; - UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; - switch (orientation) { - case UIInterfaceOrientationPortrait:{ - self.gamePlayer.videoView.transform = CGAffineTransformIdentity; - } - break; - case UIInterfaceOrientationLandscapeRight:{ - self.gamePlayer.videoView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, -M_PI_2); - } - break; - default: - break; - } -} - -- (void)onVideoOrientationChanged:(UIInterfaceOrientation)orientation { - NSLog(@"onVideoOrientationChanged 游戏画面内容朝向改变:%tu", orientation); -} - -- (void)onVideoShow { - NSLog(@"SimpleMobile onVideoShow, 游戏开始有画面"); -} - -- (void)onConnectionFailure:(TCGErrorType)errorCode msg:(NSError *)errorMsg { - NSLog(@"SimpleMobile onConnectionFailure"); -} - -- (void)onInitFailure:(TCGErrorType)errorCode msg:(NSError *)errorMsg { - NSLog(@"SimpleMobile onInitFailure"); -} - -- (void)postUrl:(NSString *)url params:(NSDictionary *)params finishBlk:(httpResponseBlk)finishBlk { - NSURLSession *session = [NSURLSession sharedSession]; - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[[NSURL alloc] initWithString:url]]; - [request setHTTPMethod:@"POST"]; - NSError *error = nil; - NSData *body = [NSJSONSerialization dataWithJSONObject:params options:0 error:&error]; - if (error != nil || body == nil) { - NSLog(@"JSON serialization error:%@", error); - if (finishBlk) { - finishBlk(nil, nil, error); - } - return; - } - [request setHTTPBody:body]; - [request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; - [[session dataTaskWithRequest:request completionHandler:finishBlk] resume]; -} - -- (NSNumber *)currentTimeStamp{ - NSDate* date = [NSDate dateWithTimeIntervalSinceNow:0]; - NSTimeInterval time=[date timeIntervalSince1970]*1000; - NSString *timeString = [NSString stringWithFormat:@"%.0f", time]; - int timeInt = [timeString intValue]; - NSNumber *timeStamp = [NSNumber numberWithInt:timeInt]; - return timeStamp; -} - -@end diff --git a/Demo/2-SimpleMobile/SimpleMobile/main.m b/Demo/2-SimpleMobile/SimpleMobile/main.m deleted file mode 100644 index 52b4158..0000000 --- a/Demo/2-SimpleMobile/SimpleMobile/main.m +++ /dev/null @@ -1,19 +0,0 @@ -// -// main.m -// SimpleMobile -// -// Created by LyleYu on 2021/10/19. -// Copyright © 2021 yujunlei. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - NSString * appDelegateClassName; - @autoreleasepool { - // Setup code that might create autoreleased objects goes here. - appDelegateClassName = NSStringFromClass([AppDelegate class]); - } - return UIApplicationMain(argc, argv, nil, appDelegateClassName); -} diff --git a/Demo/3-VKeyDemo/Podfile b/Demo/3-VKeyDemo/Podfile deleted file mode 100644 index d3976ae..0000000 --- a/Demo/3-VKeyDemo/Podfile +++ /dev/null @@ -1,8 +0,0 @@ -platform :ios,'12.2' -project './VKeyDemo.xcodeproj' -target 'VKeyDemo' do - # Comment the next line if you don't want to use dynamic frameworks - use_frameworks! - pod 'TCGSDK', :git => "https://github.com/tencentyun/cloudgame-ios-sdk.git", :tag => '1.1.9.1' - pod 'TCGVKey', :git => "https://github.com/tencentyun/cloudgame-ios-sdk.git", :tag => '1.1.9.1' -end diff --git a/Demo/3-VKeyDemo/VKeyDemo.xcodeproj/project.pbxproj b/Demo/3-VKeyDemo/VKeyDemo.xcodeproj/project.pbxproj deleted file mode 100644 index 53fced1..0000000 --- a/Demo/3-VKeyDemo/VKeyDemo.xcodeproj/project.pbxproj +++ /dev/null @@ -1,352 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 8AB05950271EC91A00D5B560 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AB0594F271EC91A00D5B560 /* AppDelegate.m */; }; - 8AB05956271EC91A00D5B560 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AB05955271EC91A00D5B560 /* ViewController.m */; }; - 8AB05959271EC91A00D5B560 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8AB05957271EC91A00D5B560 /* Main.storyboard */; }; - 8AB0595B271EC91B00D5B560 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8AB0595A271EC91B00D5B560 /* Assets.xcassets */; }; - 8AB0595E271EC91B00D5B560 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8AB0595C271EC91B00D5B560 /* LaunchScreen.storyboard */; }; - 8AB05961271EC91B00D5B560 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AB05960271EC91B00D5B560 /* main.m */; }; - 8AE2E45F2726D68B00C9916D /* tcg_default_ps4.cfg in Resources */ = {isa = PBXBuildFile; fileRef = 8AE2E45D2726D68A00C9916D /* tcg_default_ps4.cfg */; }; - 8AE2E4602726D68B00C9916D /* lol_5v5.cfg in Resources */ = {isa = PBXBuildFile; fileRef = 8AE2E45E2726D68A00C9916D /* lol_5v5.cfg */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 8AB0594B271EC91A00D5B560 /* VKeyDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = VKeyDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 8AB0594E271EC91A00D5B560 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 8AB0594F271EC91A00D5B560 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 8AB05954271EC91A00D5B560 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; - 8AB05955271EC91A00D5B560 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; - 8AB05958271EC91A00D5B560 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 8AB0595A271EC91B00D5B560 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 8AB0595D271EC91B00D5B560 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 8AB0595F271EC91B00D5B560 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8AB05960271EC91B00D5B560 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 8AE2E45D2726D68A00C9916D /* tcg_default_ps4.cfg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tcg_default_ps4.cfg; sourceTree = ""; }; - 8AE2E45E2726D68A00C9916D /* lol_5v5.cfg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = lol_5v5.cfg; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8AB05948271EC91A00D5B560 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 8AB05942271EC91A00D5B560 = { - isa = PBXGroup; - children = ( - 8AB0594D271EC91A00D5B560 /* VKeyDemo */, - 8AB0594C271EC91A00D5B560 /* Products */, - ); - sourceTree = ""; - }; - 8AB0594C271EC91A00D5B560 /* Products */ = { - isa = PBXGroup; - children = ( - 8AB0594B271EC91A00D5B560 /* VKeyDemo.app */, - ); - name = Products; - sourceTree = ""; - }; - 8AB0594D271EC91A00D5B560 /* VKeyDemo */ = { - isa = PBXGroup; - children = ( - 8AE2E45E2726D68A00C9916D /* lol_5v5.cfg */, - 8AE2E45D2726D68A00C9916D /* tcg_default_ps4.cfg */, - 8AB0594E271EC91A00D5B560 /* AppDelegate.h */, - 8AB0594F271EC91A00D5B560 /* AppDelegate.m */, - 8AB05954271EC91A00D5B560 /* ViewController.h */, - 8AB05955271EC91A00D5B560 /* ViewController.m */, - 8AB05957271EC91A00D5B560 /* Main.storyboard */, - 8AB0595A271EC91B00D5B560 /* Assets.xcassets */, - 8AB0595C271EC91B00D5B560 /* LaunchScreen.storyboard */, - 8AB0595F271EC91B00D5B560 /* Info.plist */, - 8AB05960271EC91B00D5B560 /* main.m */, - ); - path = VKeyDemo; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8AB0594A271EC91A00D5B560 /* VKeyDemo */ = { - isa = PBXNativeTarget; - buildConfigurationList = 8AB05964271EC91B00D5B560 /* Build configuration list for PBXNativeTarget "VKeyDemo" */; - buildPhases = ( - 8AB05947271EC91A00D5B560 /* Sources */, - 8AB05948271EC91A00D5B560 /* Frameworks */, - 8AB05949271EC91A00D5B560 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = VKeyDemo; - productName = VKeyDemo; - productReference = 8AB0594B271EC91A00D5B560 /* VKeyDemo.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 8AB05943271EC91A00D5B560 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1170; - ORGANIZATIONNAME = yujunlei; - TargetAttributes = { - 8AB0594A271EC91A00D5B560 = { - CreatedOnToolsVersion = 11.7; - }; - }; - }; - buildConfigurationList = 8AB05946271EC91A00D5B560 /* Build configuration list for PBXProject "VKeyDemo" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 8AB05942271EC91A00D5B560; - productRefGroup = 8AB0594C271EC91A00D5B560 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8AB0594A271EC91A00D5B560 /* VKeyDemo */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8AB05949271EC91A00D5B560 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8AB0595E271EC91B00D5B560 /* LaunchScreen.storyboard in Resources */, - 8AE2E45F2726D68B00C9916D /* tcg_default_ps4.cfg in Resources */, - 8AE2E4602726D68B00C9916D /* lol_5v5.cfg in Resources */, - 8AB0595B271EC91B00D5B560 /* Assets.xcassets in Resources */, - 8AB05959271EC91A00D5B560 /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8AB05947271EC91A00D5B560 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8AB05956271EC91A00D5B560 /* ViewController.m in Sources */, - 8AB05950271EC91A00D5B560 /* AppDelegate.m in Sources */, - 8AB05961271EC91B00D5B560 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 8AB05957271EC91A00D5B560 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 8AB05958271EC91A00D5B560 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 8AB0595C271EC91B00D5B560 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 8AB0595D271EC91B00D5B560 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 8AB05962271EC91B00D5B560 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.7; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 8AB05963271EC91B00D5B560 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.7; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 8AB05965271EC91B00D5B560 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = F534TE2RW6; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = VKeyDemo/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.2; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.junlei.demo.VKeyDemo; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Debug; - }; - 8AB05966271EC91B00D5B560 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = F534TE2RW6; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = VKeyDemo/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.2; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.junlei.demo.VKeyDemo; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 8AB05946271EC91A00D5B560 /* Build configuration list for PBXProject "VKeyDemo" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8AB05962271EC91B00D5B560 /* Debug */, - 8AB05963271EC91B00D5B560 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 8AB05964271EC91B00D5B560 /* Build configuration list for PBXNativeTarget "VKeyDemo" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8AB05965271EC91B00D5B560 /* Debug */, - 8AB05966271EC91B00D5B560 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 8AB05943271EC91A00D5B560 /* Project object */; -} diff --git a/Demo/3-VKeyDemo/VKeyDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Demo/3-VKeyDemo/VKeyDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index b05a29b..0000000 --- a/Demo/3-VKeyDemo/VKeyDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Demo/3-VKeyDemo/VKeyDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Demo/3-VKeyDemo/VKeyDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/Demo/3-VKeyDemo/VKeyDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/Demo/3-VKeyDemo/VKeyDemo.xcodeproj/xcuserdata/xxhape.xcuserdatad/xcschemes/xcschememanagement.plist b/Demo/3-VKeyDemo/VKeyDemo.xcodeproj/xcuserdata/xxhape.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index 51a4597..0000000 --- a/Demo/3-VKeyDemo/VKeyDemo.xcodeproj/xcuserdata/xxhape.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,14 +0,0 @@ - - - - - SchemeUserState - - VKeyDemo.xcscheme_^#shared#^_ - - orderHint - 0 - - - - diff --git a/Demo/3-VKeyDemo/VKeyDemo/AppDelegate.h b/Demo/3-VKeyDemo/VKeyDemo/AppDelegate.h deleted file mode 100644 index d0be1ee..0000000 --- a/Demo/3-VKeyDemo/VKeyDemo/AppDelegate.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// AppDelegate.h -// VKeyDemo -// -// Created by LyleYu on 2021/10/19. -// Copyright © 2021 yujunlei. All rights reserved. -// - -#import - -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end - diff --git a/Demo/3-VKeyDemo/VKeyDemo/AppDelegate.m b/Demo/3-VKeyDemo/VKeyDemo/AppDelegate.m deleted file mode 100644 index cdd2ed7..0000000 --- a/Demo/3-VKeyDemo/VKeyDemo/AppDelegate.m +++ /dev/null @@ -1,28 +0,0 @@ -// -// AppDelegate.m -// VKeyDemo -// -// Created by LyleYu on 2021/10/19. -// Copyright © 2021 yujunlei. All rights reserved. -// - -#import "AppDelegate.h" -#import "ViewController.h" - -@interface AppDelegate () - -@end - -@implementation AppDelegate - - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - // Override point for customization after application launch. - CGRect frame = [[UIScreen mainScreen] bounds]; - self.window = [[UIWindow alloc] initWithFrame:frame]; - self.window.rootViewController = [[ViewController alloc] init]; - [[UIApplication sharedApplication] setIdleTimerDisabled:YES]; - return YES; -} - -@end diff --git a/Demo/3-VKeyDemo/VKeyDemo/Assets.xcassets/AppIcon.appiconset/Contents.json b/Demo/3-VKeyDemo/VKeyDemo/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 9221b9b..0000000 --- a/Demo/3-VKeyDemo/VKeyDemo/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "60x60" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "60x60" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "20x20" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "20x20" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "29x29" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "29x29" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "40x40" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "40x40" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "76x76" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "76x76" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "83.5x83.5" - }, - { - "idiom" : "ios-marketing", - "scale" : "1x", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Demo/3-VKeyDemo/VKeyDemo/Assets.xcassets/Contents.json b/Demo/3-VKeyDemo/VKeyDemo/Assets.xcassets/Contents.json deleted file mode 100644 index 73c0059..0000000 --- a/Demo/3-VKeyDemo/VKeyDemo/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Demo/3-VKeyDemo/VKeyDemo/Base.lproj/LaunchScreen.storyboard b/Demo/3-VKeyDemo/VKeyDemo/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 865e932..0000000 --- a/Demo/3-VKeyDemo/VKeyDemo/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Demo/3-VKeyDemo/VKeyDemo/Base.lproj/Main.storyboard b/Demo/3-VKeyDemo/VKeyDemo/Base.lproj/Main.storyboard deleted file mode 100644 index 808a21c..0000000 --- a/Demo/3-VKeyDemo/VKeyDemo/Base.lproj/Main.storyboard +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Demo/3-VKeyDemo/VKeyDemo/Info.plist b/Demo/3-VKeyDemo/VKeyDemo/Info.plist deleted file mode 100644 index c4679ee..0000000 --- a/Demo/3-VKeyDemo/VKeyDemo/Info.plist +++ /dev/null @@ -1,43 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Demo/3-VKeyDemo/VKeyDemo/ViewController.h b/Demo/3-VKeyDemo/VKeyDemo/ViewController.h deleted file mode 100644 index f3b8501..0000000 --- a/Demo/3-VKeyDemo/VKeyDemo/ViewController.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// ViewController.h -// VKeyDemo -// -// Created by LyleYu on 2021/10/19. -// Copyright © 2021 yujunlei. All rights reserved. -// - -#import - -@interface ViewController : UIViewController - - -@end - diff --git a/Demo/3-VKeyDemo/VKeyDemo/ViewController.m b/Demo/3-VKeyDemo/VKeyDemo/ViewController.m deleted file mode 100644 index d3ab8ae..0000000 --- a/Demo/3-VKeyDemo/VKeyDemo/ViewController.m +++ /dev/null @@ -1,212 +0,0 @@ -// -// ViewController.m -// VKeyDemo -// -// Created by LyleYu on 2021/10/19. -// Copyright © 2021 yujunlei. All rights reserved. -// - -#import "ViewController.h" -#import -#import - -typedef void (^httpResponseBlk)(NSData * data, NSURLResponse * response, NSError * error); - -@interface ViewController () - -@property(nonatomic, copy) NSString *userId; -@property(nonatomic, strong) TCGGamePlayer *gamePlayer; -@property(nonatomic, weak) TCGGameController *gameController; -@property(nonatomic, strong) TCGVKeyGamepad *gamepad; - -@end - -@implementation ViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - // Do any additional setup after loading the view. - self.view.backgroundColor = [UIColor grayColor]; - UIButton *startBtn = [[UIButton alloc] initWithFrame:CGRectMake(50, 50, 100, 45)]; - [startBtn setTitle:@"Start" forState:UIControlStateNormal]; - [startBtn addTarget:self action:@selector(startGame) forControlEvents:UIControlEventTouchUpInside]; - UIButton *stopBtn = [[UIButton alloc] initWithFrame:CGRectMake(150, 50, 100, 45)]; - [stopBtn setTitle:@"Stop" forState:UIControlStateNormal]; - [stopBtn addTarget:self action:@selector(stopGame) forControlEvents:UIControlEventTouchUpInside]; - UIButton *switchBtn = [[UIButton alloc] initWithFrame:CGRectMake(250, 50, 100, 45)]; - [switchBtn setTitle:@"Switch" forState:UIControlStateNormal]; - [switchBtn addTarget:self action:@selector(switchGamepad) forControlEvents:UIControlEventTouchUpInside]; - [self.view addSubview:startBtn]; - [self.view addSubview:stopBtn]; - [self.view addSubview:switchBtn]; -} - -- (void)createGamePlayer { - if (self.gamePlayer) { - return; - } - self.gamePlayer = [[TCGGamePlayer alloc] initWithParams:nil andDelegate:self]; - [self.gamePlayer setConnectTimeout:10]; - [self.gamePlayer setStreamBitrateMix:1000 max:3000 fps:30]; - self.gameController = self.gamePlayer.gameController; - self.gamepad = [[TCGVKeyGamepad alloc] initWithFrame:self.view.bounds controller:self.gameController]; - - [self.gamePlayer.videoView setFrame:self.view.bounds]; - [self.view insertSubview:self.gamePlayer.videoView atIndex:0]; - [self.view insertSubview:self.gamepad atIndex:1]; -} - -- (void)viewDidDisappear:(BOOL)animated { - [super viewDidDisappear:animated]; - [self stopGame]; -} - -- (void)switchGamepad { - static int gamepadIndex = 1; - if (gamepadIndex++ % 2 == 1) { - [self.gamepad showKeyGamepad:[self readJsonFromFile:@"lol_5v5"]]; - } else { - [self.gamepad showKeyGamepad:[self readJsonFromFile:@"tcg_default_ps4"]]; - } - if ([self.gamepad needConnected]) { - [self.gameController enableVirtualGamepad:YES]; - } -} - -- (void)getRemoteSessionWithLocalSession:(NSString *)localSession { - // TODO: 这里的接口地址仅供Demo体验,请及时更换为自己的业务后台接口 - // 云应用将StartGame替换为StartProject - NSString *createSession = @"xxxxx/StartGame"; - self.userId = [NSString stringWithFormat:@"SimplePC-%@", [[NSUUID UUID] UUIDString]]; - NSDictionary *params = @{@"GameId":@"game-xxx", @"UserId":self.userId, @"ClientSession":localSession}; - [self postUrl:createSession params:params finishBlk:^(NSData *data, NSURLResponse *response, NSError *error) { - if (error != nil || data == nil) { - NSLog(@"申请云端机器失败:%@", error.userInfo.description); - return; - } - NSError *err = nil; - id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&err]; - if (err != nil || ![json isKindOfClass:[NSDictionary class]]) { - NSLog(@"返回结果解析失败:%@", error.userInfo.description); - return; - } - NSDictionary *jsonObj = (NSDictionary *) json; - NSString *code = [jsonObj objectForKey:@"code"]; - if ([code intValue] != 0) { - NSLog(@"返回结果异常:%@", jsonObj); - return; - } - NSDictionary *dataDic = [jsonObj objectForKey:@"data"]; - NSString *serverSession = [dataDic objectForKey:@"ServerSession"]; - if (serverSession.length == 0) { - NSLog(@"返回结果异常:%@", jsonObj); - return; - } - dispatch_async(dispatch_get_main_queue(), ^{ - [self startGameWithRemoteSession:serverSession]; - }); - }]; -} - -- (void)startGame { - [self createGamePlayer]; -} - -- (void)startGameWithRemoteSession:(NSString *)remoteSession { - NSLog(@"从业务后台成功申请到云端机器"); - NSError *error; - [self.gamePlayer startGameWithRemoteSession:remoteSession error:&error]; - NSLog(@"start game %@", error); -} - -- (void)stopGame { - dispatch_async(dispatch_get_main_queue(), ^{ - if (self.gamePlayer == nil) { - return; - } - [self.gameController enableVirtualGamepad:NO]; - [self.gamePlayer.videoView removeFromSuperview]; - [self.gamePlayer stopGame]; - self.gamePlayer = nil; - if (self.userId.length == 0) { - return; - } - // TODO: 业务后台需要及时向腾讯云后台释放机器,避免资源浪费 - // 云应用将StopGame替换为StopProject - NSString *releaseSession = @"xxxxx/StopGame"; - NSDictionary *params = @{@"UserId":self.userId}; - [self postUrl:releaseSession params:params finishBlk:^(NSData *data, NSURLResponse *response, NSError *error) { - if (error != nil || data == nil) { - NSLog(@"释放云端机器失败:%@", error.userInfo.description); - return; - } - NSLog(@"已释放云端机器"); - }]; - }); -} - -- (void)onInitSuccess:(NSString *)localSession { - NSLog(@"VKeyDemo onInitSuccess, 本地初始化成功"); - [self getRemoteSessionWithLocalSession:localSession]; -} - -- (void)onVideoSizeChanged:(CGSize)videoSize { - CGFloat newWidth = self.view.frame.size.width - [self.view safeAreaInsets].left - [self.view safeAreaInsets].right; - CGFloat newHeight = self.view.frame.size.height; - // 游戏画面强制横屏、设置游戏画面居中显示类似 UIViewContentModeScaleAspectFit - if (newWidth/newHeight < videoSize.width/videoSize.height) { - newHeight = floor(newWidth * videoSize.height / videoSize.width); - } else { - newWidth = floor(newHeight * videoSize.width / videoSize.height); - } - self.gamePlayer.videoView.frame = CGRectMake((self.view.frame.size.width - newWidth) / 2, - (self.view.frame.size.height - newHeight) / 2, - newWidth, newHeight); -} - -- (void)onVideoShow { - NSLog(@"VKeyDemo onVideoShow, 游戏开始有画面"); - // 如果使用手柄类布局,需要通知云端激活虚拟手柄。 - if ([self.gamepad needConnected]) { - [self.gameController enableVirtualGamepad:YES]; - } -} - -- (void)onConnectionFailure:(TCGErrorType)errorCode msg:(NSError *)errorMsg { - NSLog(@"VKeyDemo onConnectionFailure"); -} - -- (void)onInitFailure:(TCGErrorType)errorCode msg:(NSError *)errorMsg { - NSLog(@"VKeyDemo onInitFailure"); -} - -- (void)onStartReConnectWithReason:(TCGErrorType)reason { - NSLog(@"onStartReConnectWithReason 与云端链接断开,SDK内部重连中"); -} - -- (void)postUrl:(NSString *)url params:(NSDictionary *)params finishBlk:(httpResponseBlk)finishBlk { - NSURLSession *session = [NSURLSession sharedSession]; - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[[NSURL alloc] initWithString:url]]; - [request setHTTPMethod:@"POST"]; - NSError *error = nil; - NSData *body = [NSJSONSerialization dataWithJSONObject:params options:0 error:&error]; - if (error != nil || body == nil) { - NSLog(@"JSON serialization error:%@", error); - if (finishBlk) { - finishBlk(nil, nil, error); - } - return; - } - [request setHTTPBody:body]; - [request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; - [[session dataTaskWithRequest:request completionHandler:finishBlk] resume]; -} - -- (NSString *)readJsonFromFile:(NSString *)fileName -{ - NSString *path = [[NSBundle mainBundle] pathForResource:fileName ofType:@"cfg"]; - NSData *data = [NSData dataWithContentsOfFile:path]; - return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; -} - -@end diff --git a/Demo/3-VKeyDemo/VKeyDemo/lol_5v5.cfg b/Demo/3-VKeyDemo/VKeyDemo/lol_5v5.cfg deleted file mode 100644 index cb62d27..0000000 --- a/Demo/3-VKeyDemo/VKeyDemo/lol_5v5.cfg +++ /dev/null @@ -1 +0,0 @@ -[{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"Q","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"keyboard_q","left":"0.0289%","top":"0.5375%","width":"110"},{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"W","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"keyboard_w","left":"0.1098%","top":"0.5369%","width":"110"},{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"E","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"keyboard_e","left":"0.1629%","top":"0.6250%","width":"110"},{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"R","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"keyboard_r","left":"0.1770%","top":"0.7444%","width":"110"},{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"D","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"keyboard_d","left":"0.0453%","top":"0.3531%","width":"110"},{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"F","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"keyboard_f","left":"0.1254%","top":"0.3569%","width":"110"},{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"S","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"keyboard_s","left":"0.3055%","top":"0.7375%","width":"110"},{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"A","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"keyboard_a","left":"0.3781%","top":"0.7356%","width":"110"},{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"Y","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"keyboard_y","left":"0.5953%","top":"0.7425%","width":"110"},{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"P","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"keyboard_p","left":"0.6738%","top":"0.7431%","width":"110"},{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"Ctrl","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"keyboard_Ctrl","left":"0.9105%","top":"0.6481%","width":"110"},{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"1","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"keyboard_1","left":"0.7762%","top":"0.4137%","width":"110"},{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"2","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"keyboard_2","left":"0.8418%","top":"0.4125%","width":"110"},{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"3","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"keyboard_3","left":"0.9098%","top":"0.4087%","width":"110"},{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"4","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"keyboard_4","left":"0.7758%","top":"0.5362%","width":"110"},{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"5","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"keyboard_5","left":"0.8418%","top":"0.5300%","width":"110"},{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"6","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"keyboard_6","left":"0.9098%","top":"0.5294%","width":"110"},{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"B","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"keyboard_b","left":"0.8418%","top":"0.6475%","width":"110"},{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"Enter","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"0.0680%","key":"keyboard_Enter","left":"0.8805%","top":"0.2275%","width":"0.0680%"},{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"Space","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"0.0812%","key":"keyboard_Space","left":"0.8641%","top":"0.7756%","width":"0.0812%"},{"click_mode":"0","normal_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"Esc","text_size":"30"},"pressed_view":{"bgcolor":"#00000000","icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"0.0660%","key":"keyboard_Esc","left":"0.0414%","top":"0.1469%","width":"0.0660%"},{"click_mode":"0","normal_view":{"icon_name":"tcg_mouse_left_normal","text_color":"#FFFFFF","text_content":"","text_size":"30"},"pressed_view":{"icon_name":"tcg_mouse_left_pressed","text_color":"#2684FF","text_size":"30"},"height":"0.0668%","key":"mouse_left","left":"0.1105%","top":"0.8087%","width":"0.0668%"},{"click_mode":"0","normal_view":{"icon_name":"tcg_mouse_right_normal","text_color":"#FFFFFF","text_content":"","text_size":"30"},"pressed_view":{"icon_name":"tcg_mouse_right_pressed","text_color":"#2684FF","text_size":"30"},"height":"0.0941%","key":"mouse_right","left":"0.0469%","top":"0.6438%","width":"0.0941%"}] \ No newline at end of file diff --git a/Demo/3-VKeyDemo/VKeyDemo/main.m b/Demo/3-VKeyDemo/VKeyDemo/main.m deleted file mode 100644 index 9140ac8..0000000 --- a/Demo/3-VKeyDemo/VKeyDemo/main.m +++ /dev/null @@ -1,19 +0,0 @@ -// -// main.m -// VKeyDemo -// -// Created by LyleYu on 2021/10/19. -// Copyright © 2021 yujunlei. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - NSString * appDelegateClassName; - @autoreleasepool { - // Setup code that might create autoreleased objects goes here. - appDelegateClassName = NSStringFromClass([AppDelegate class]); - } - return UIApplicationMain(argc, argv, nil, appDelegateClassName); -} diff --git a/Demo/3-VKeyDemo/VKeyDemo/tcg_default_ps4.cfg b/Demo/3-VKeyDemo/VKeyDemo/tcg_default_ps4.cfg deleted file mode 100644 index 69b7545..0000000 --- a/Demo/3-VKeyDemo/VKeyDemo/tcg_default_ps4.cfg +++ /dev/null @@ -1 +0,0 @@ -[{"button_list":[{"click_mode":"0","normal_view":{"icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"↑","text_size":"30"},"pressed_view":{"icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"gamepad_↑","left":"0.45%","top":"0.3%","width":"110"},{"click_mode":"0","normal_view":{"icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"→","text_size":"30"},"pressed_view":{"icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"gamepad_→","left":"0.45%","top":"0.3%","width":"110"},{"click_mode":"0","normal_view":{"icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"↓","text_size":"30"},"pressed_view":{"icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"gamepad_↓","left":"0.45%","top":"0.3%","width":"110"},{"click_mode":"0","normal_view":{"icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"←","text_size":"30"},"pressed_view":{"icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"gamepad_←","left":"0.45%","top":"0.3%","width":"110"}],"inner_normal_icon_name":"tcg_dpad_inner_xbox_normal","inner_pressed_icon_name":"tcg_dpad_inner_xbox_pressed","inner_radius":"70","outer_icon_name":"tcg_dpad_outer_xbox","text_color":"#FFFFFF","text_size":"30","touch_mode":"fixed","height":"340","key":"dpad_xbox","left":"0.0232%","top":"0.3019%","width":"340"},{"inner_normal_icon_name":"tcg_stick_left_normal","inner_pressed_icon_name":"tcg_stick_left_pressed","inner_radius":"85","outer_icon_name":"tcg_stick_outer_xbox","height":"340","key":"stick_left","left":"0.1732%","top":"0.6139%","width":"340"},{"inner_normal_icon_name":"tcg_stick_right_normal","inner_pressed_icon_name":"tcg_stick_right_pressed","inner_radius":"85","outer_icon_name":"tcg_stick_outer_xbox","height":"340","key":"stick_right","left":"0.6244%","top":"0.6139%","width":"340"},{"click_mode":"0","normal_view":{"icon_name":"tcg_gamepad_select_normal","text_color":"#FFFFFF","text_content":"Select","text_size":"30"},"pressed_view":{"icon_name":"tcg_gamepad_select_pressed","text_color":"#2684FF","text_size":"30"},"height":"60","key":"gamepad_select","left":"0.4090%","top":"0.1028%","width":"130"},{"click_mode":"0","normal_view":{"icon_name":"tcg_gamepad_start_normal","text_color":"#FFFFFF","text_content":"Start","text_size":"30"},"pressed_view":{"icon_name":"tcg_gamepad_start_pressed","text_color":"#2684FF","text_size":"30"},"height":"60","key":"gamepad_start","left":"0.5299%","top":"0.1028%","width":"130"},{"click_mode":"0","normal_view":{"icon_name":"tcg_ps4_a_normal","text_color":"#FFFFFF","text_content":"","text_size":"30"},"pressed_view":{"icon_name":"tcg_ps4_a_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"gamepad_ps4_a","left":"0.8462%","top":"0.5083%","width":"110"},{"click_mode":"0","normal_view":{"icon_name":"tcg_ps4_y_normal","text_color":"#FFFFFF","text_content":"","text_size":"30"},"pressed_view":{"icon_name":"tcg_ps4_y_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"gamepad_ps4_y","left":"0.8413%","top":"0.2741%","width":"110"},{"click_mode":"0","normal_view":{"icon_name":"tcg_ps4_x_normal","text_color":"#FFFFFF","text_content":"","text_size":"30"},"pressed_view":{"icon_name":"tcg_ps4_x_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"gamepad_ps4_x","left":"0.7867%","top":"0.3948%","width":"110"},{"click_mode":"0","normal_view":{"icon_name":"tcg_ps4_b_normal","text_color":"#FFFFFF","text_content":"","text_size":"30"},"pressed_view":{"icon_name":"tcg_ps4_b_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"gamepad_ps4_b","left":"0.8967%","top":"0.3954%","width":"110"},{"click_mode":"0","normal_view":{"icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"L3","text_size":"30"},"pressed_view":{"icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"gamepad_l3","left":"0.0889%","top":"0.7796%","width":"110"},{"click_mode":"0","normal_view":{"icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"R3","text_size":"30"},"pressed_view":{"icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"gamepad_r3","left":"0.8374%","top":"0.7796%","width":"110"},{"click_mode":"0","normal_view":{"icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"L1","text_size":"30"},"pressed_view":{"icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"gamepad_lb","left":"0.2751%","top":"0.3454%","width":"110"},{"damper_step":"1.0","max_value":"255","click_mode":"0","normal_view":{"icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"R2","text_size":"30"},"pressed_view":{"icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"trigger_rt_max","left":"0.7193%","top":"0.2231%","width":"110"},{"damper_step":"1.0","max_value":"255","click_mode":"0","normal_view":{"icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"L2","text_size":"30"},"pressed_view":{"icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"trigger_lt_max","left":"0.2089%","top":"0.2157%","width":"110"},{"click_mode":"0","normal_view":{"icon_name":"tcg_normal_btn_normal","text_color":"#FFFFFF","text_content":"R1","text_size":"30"},"pressed_view":{"icon_name":"tcg_normal_btn_pressed","text_color":"#2684FF","text_size":"30"},"height":"110","key":"gamepad_rb","left":"0.6540%","top":"0.3444%","width":"110"}] diff --git a/Demo/4-SwiftPCDemo/Podfile b/Demo/4-SwiftPCDemo/Podfile deleted file mode 100644 index 1144473..0000000 --- a/Demo/4-SwiftPCDemo/Podfile +++ /dev/null @@ -1,7 +0,0 @@ -platform :ios,'12.2' -project './SwiftPCDemo.xcodeproj' -target 'SwiftPCDemo' do - # Comment the next line if you don't want to use dynamic frameworks - use_frameworks! - pod 'TCGSDK', :git => "https://github.com/tencentyun/cloudgame-ios-sdk.git", :tag => '1.1.9.1' -end diff --git a/Demo/4-SwiftPCDemo/SwiftPCDemo.xcodeproj/project.pbxproj b/Demo/4-SwiftPCDemo/SwiftPCDemo.xcodeproj/project.pbxproj deleted file mode 100644 index 10ba625..0000000 --- a/Demo/4-SwiftPCDemo/SwiftPCDemo.xcodeproj/project.pbxproj +++ /dev/null @@ -1,354 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 8A096FA62728F96D00631037 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A096FA52728F96D00631037 /* AppDelegate.swift */; }; - 8A096FAA2728F96D00631037 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A096FA92728F96D00631037 /* ViewController.swift */; }; - 8A096FAD2728F96D00631037 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8A096FAB2728F96D00631037 /* Main.storyboard */; }; - 8A096FAF2728F96E00631037 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8A096FAE2728F96E00631037 /* Assets.xcassets */; }; - 8A096FB22728F96E00631037 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8A096FB02728F96E00631037 /* LaunchScreen.storyboard */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 8A096FA22728F96D00631037 /* SwiftPCDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SwiftPCDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 8A096FA52728F96D00631037 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 8A096FA92728F96D00631037 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - 8A096FAC2728F96D00631037 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 8A096FAE2728F96E00631037 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 8A096FB12728F96E00631037 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 8A096FB32728F96E00631037 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8A737846272BD846005CF4DA /* SwiftPCDemo-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SwiftPCDemo-Bridging-Header.h"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8A096F9F2728F96D00631037 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 8A096F992728F96D00631037 = { - isa = PBXGroup; - children = ( - 8A096FA42728F96D00631037 /* SwiftPCDemo */, - 8A096FA32728F96D00631037 /* Products */, - ); - sourceTree = ""; - }; - 8A096FA32728F96D00631037 /* Products */ = { - isa = PBXGroup; - children = ( - 8A096FA22728F96D00631037 /* SwiftPCDemo.app */, - ); - name = Products; - sourceTree = ""; - }; - 8A096FA42728F96D00631037 /* SwiftPCDemo */ = { - isa = PBXGroup; - children = ( - 8A096FA52728F96D00631037 /* AppDelegate.swift */, - 8A096FA92728F96D00631037 /* ViewController.swift */, - 8A096FAB2728F96D00631037 /* Main.storyboard */, - 8A096FAE2728F96E00631037 /* Assets.xcassets */, - 8A096FB02728F96E00631037 /* LaunchScreen.storyboard */, - 8A737846272BD846005CF4DA /* SwiftPCDemo-Bridging-Header.h */, - 8A096FB32728F96E00631037 /* Info.plist */, - ); - path = SwiftPCDemo; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8A096FA12728F96D00631037 /* SwiftPCDemo */ = { - isa = PBXNativeTarget; - buildConfigurationList = 8A096FB62728F96E00631037 /* Build configuration list for PBXNativeTarget "SwiftPCDemo" */; - buildPhases = ( - 8A096F9E2728F96D00631037 /* Sources */, - 8A096F9F2728F96D00631037 /* Frameworks */, - 8A096FA02728F96D00631037 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SwiftPCDemo; - productName = SwiftPCDemo; - productReference = 8A096FA22728F96D00631037 /* SwiftPCDemo.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 8A096F9A2728F96D00631037 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1250; - LastUpgradeCheck = 1250; - TargetAttributes = { - 8A096FA12728F96D00631037 = { - CreatedOnToolsVersion = 12.5; - }; - }; - }; - buildConfigurationList = 8A096F9D2728F96D00631037 /* Build configuration list for PBXProject "SwiftPCDemo" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 8A096F992728F96D00631037; - productRefGroup = 8A096FA32728F96D00631037 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8A096FA12728F96D00631037 /* SwiftPCDemo */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8A096FA02728F96D00631037 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8A096FB22728F96E00631037 /* LaunchScreen.storyboard in Resources */, - 8A096FAF2728F96E00631037 /* Assets.xcassets in Resources */, - 8A096FAD2728F96D00631037 /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8A096F9E2728F96D00631037 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8A096FAA2728F96D00631037 /* ViewController.swift in Sources */, - 8A096FA62728F96D00631037 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 8A096FAB2728F96D00631037 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 8A096FAC2728F96D00631037 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 8A096FB02728F96E00631037 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 8A096FB12728F96E00631037 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 8A096FB42728F96E00631037 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.5; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 8A096FB52728F96E00631037 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.5; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 8A096FB72728F96E00631037 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_STYLE = Automatic; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = F534TE2RW6; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = SwiftPCDemo/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.1; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.junlei.demo.SwiftPCDemo; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "SwiftPCDemo/SwiftPCDemo-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 1; - VALIDATE_WORKSPACE = YES; - }; - name = Debug; - }; - 8A096FB82728F96E00631037 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_STYLE = Automatic; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = F534TE2RW6; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = SwiftPCDemo/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.1; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.junlei.demo.SwiftPCDemo; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "SwiftPCDemo/SwiftPCDemo-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 1; - VALIDATE_WORKSPACE = YES; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 8A096F9D2728F96D00631037 /* Build configuration list for PBXProject "SwiftPCDemo" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8A096FB42728F96E00631037 /* Debug */, - 8A096FB52728F96E00631037 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 8A096FB62728F96E00631037 /* Build configuration list for PBXNativeTarget "SwiftPCDemo" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8A096FB72728F96E00631037 /* Debug */, - 8A096FB82728F96E00631037 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 8A096F9A2728F96D00631037 /* Project object */; -} diff --git a/Demo/4-SwiftPCDemo/SwiftPCDemo/AppDelegate.swift b/Demo/4-SwiftPCDemo/SwiftPCDemo/AppDelegate.swift deleted file mode 100644 index 1c7b914..0000000 --- a/Demo/4-SwiftPCDemo/SwiftPCDemo/AppDelegate.swift +++ /dev/null @@ -1,23 +0,0 @@ -// -// AppDelegate.swift -// SwiftPCDemo -// -// Created by LyleYu on 2021/10/27. -// - -import UIKit - -@main -class AppDelegate: UIResponder, UIApplicationDelegate { - - var window: UIWindow? - - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { - // Override point for customization after application launch. - window = UIWindow.init(frame: UIScreen.main.bounds) - window?.rootViewController = ViewController.init() - return true - } - -} - diff --git a/Demo/4-SwiftPCDemo/SwiftPCDemo/Assets.xcassets/AccentColor.colorset/Contents.json b/Demo/4-SwiftPCDemo/SwiftPCDemo/Assets.xcassets/AccentColor.colorset/Contents.json deleted file mode 100644 index eb87897..0000000 --- a/Demo/4-SwiftPCDemo/SwiftPCDemo/Assets.xcassets/AccentColor.colorset/Contents.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "colors" : [ - { - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Demo/4-SwiftPCDemo/SwiftPCDemo/Assets.xcassets/AppIcon.appiconset/Contents.json b/Demo/4-SwiftPCDemo/SwiftPCDemo/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 9221b9b..0000000 --- a/Demo/4-SwiftPCDemo/SwiftPCDemo/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "60x60" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "60x60" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "20x20" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "20x20" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "29x29" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "29x29" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "40x40" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "40x40" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "76x76" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "76x76" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "83.5x83.5" - }, - { - "idiom" : "ios-marketing", - "scale" : "1x", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Demo/4-SwiftPCDemo/SwiftPCDemo/Assets.xcassets/Contents.json b/Demo/4-SwiftPCDemo/SwiftPCDemo/Assets.xcassets/Contents.json deleted file mode 100644 index 73c0059..0000000 --- a/Demo/4-SwiftPCDemo/SwiftPCDemo/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Demo/4-SwiftPCDemo/SwiftPCDemo/Assets.xcassets/default_cursor.imageset/Contents.json b/Demo/4-SwiftPCDemo/SwiftPCDemo/Assets.xcassets/default_cursor.imageset/Contents.json deleted file mode 100644 index 65bca64..0000000 --- a/Demo/4-SwiftPCDemo/SwiftPCDemo/Assets.xcassets/default_cursor.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "cursor.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Demo/4-SwiftPCDemo/SwiftPCDemo/Assets.xcassets/default_cursor.imageset/cursor.png b/Demo/4-SwiftPCDemo/SwiftPCDemo/Assets.xcassets/default_cursor.imageset/cursor.png deleted file mode 100644 index 6b5dcff..0000000 Binary files a/Demo/4-SwiftPCDemo/SwiftPCDemo/Assets.xcassets/default_cursor.imageset/cursor.png and /dev/null differ diff --git a/Demo/4-SwiftPCDemo/SwiftPCDemo/Base.lproj/LaunchScreen.storyboard b/Demo/4-SwiftPCDemo/SwiftPCDemo/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 865e932..0000000 --- a/Demo/4-SwiftPCDemo/SwiftPCDemo/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Demo/4-SwiftPCDemo/SwiftPCDemo/Base.lproj/Main.storyboard b/Demo/4-SwiftPCDemo/SwiftPCDemo/Base.lproj/Main.storyboard deleted file mode 100644 index 25a7638..0000000 --- a/Demo/4-SwiftPCDemo/SwiftPCDemo/Base.lproj/Main.storyboard +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Demo/4-SwiftPCDemo/SwiftPCDemo/Info.plist b/Demo/4-SwiftPCDemo/SwiftPCDemo/Info.plist deleted file mode 100644 index 200530c..0000000 --- a/Demo/4-SwiftPCDemo/SwiftPCDemo/Info.plist +++ /dev/null @@ -1,45 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIApplicationSupportsIndirectInputEvents - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Demo/4-SwiftPCDemo/SwiftPCDemo/SwiftPCDemo-Bridging-Header.h b/Demo/4-SwiftPCDemo/SwiftPCDemo/SwiftPCDemo-Bridging-Header.h deleted file mode 100644 index 8e614c6..0000000 --- a/Demo/4-SwiftPCDemo/SwiftPCDemo/SwiftPCDemo-Bridging-Header.h +++ /dev/null @@ -1,5 +0,0 @@ -// -// Use this file to import your target's public headers that you would like to expose to Swift. -// - -#import diff --git a/Demo/4-SwiftPCDemo/SwiftPCDemo/ViewController.swift b/Demo/4-SwiftPCDemo/SwiftPCDemo/ViewController.swift deleted file mode 100644 index 049476b..0000000 --- a/Demo/4-SwiftPCDemo/SwiftPCDemo/ViewController.swift +++ /dev/null @@ -1,202 +0,0 @@ -// -// ViewController.swift -// SwiftPCDemo -// -// Created by LyleYu on 2021/10/27. -// - -import UIKit - -class ViewController: UIViewController { - - var gamePlayer : TCGGamePlayer? - var gameController : TCGGameController? - var mouseCursor : TCGVirtualMouseCursor? - var userId : String? - - override func viewDidLoad() { - super.viewDidLoad() - // Do any additional setup after loading the view. - self.view.backgroundColor = UIColor.gray - let startBtn = UIButton(type: .custom) - startBtn.frame = CGRect(x:50, y:50, width:100, height:45) - startBtn.setTitle(_:"Start", for: .normal) - startBtn.addTarget(self, action: #selector(startGame), for: .touchUpInside) - self.view.addSubview(startBtn) - - let stopBtn = UIButton(type: .custom) - stopBtn.frame = CGRect(x:150, y:50, width:100, height:45) - stopBtn.setTitle(_:"Stop", for: .normal) - stopBtn.addTarget(self, action: #selector(stopGame), for: .touchUpInside) - self.view.addSubview(stopBtn) - - userId = String(format: "SwiftPCDemo-%@", UUID().uuidString) - } - - override func viewDidDisappear(_ animated: Bool) { - super.viewDidDisappear(animated) - self.stopGame() - } - - @objc func startGame() -> Void { - print("startGame") - self.createGamePlayer() - } - - func doStartGame(_ remoteSession:String) { - print("从业务后台成功申请到云端机器") - DispatchQueue.main.async { - try? self.gamePlayer?.startGame(withRemoteSession: remoteSession) - } - } - - @objc func stopGame() { - DispatchQueue.main.async { - if let v = self.mouseCursor { - v.removeFromSuperview() - self.mouseCursor = nil - } - if let v = self.gamePlayer?.videoView() { - v.removeFromSuperview() - } - if let player = self.gamePlayer { - player.stopGame() - self.gamePlayer = nil - } - if let uid = self.userId { - let releaseSession = "xxxxx/StopGame" - self.postUrl(releaseSession, ["UserId":uid]) { (data:Data?, req:URLResponse?, err:Error?) in - if err != nil || data == nil { - print("释放机器失败:\(err.debugDescription)") - } - print("已释放云端机器") - } - } - - } - - } - - func createGamePlayer() { - if gamePlayer != nil { - return - } - gamePlayer = TCGGamePlayer.init(params: ["local_audio":0], andDelegate: self) - gamePlayer?.setConnectTimeout(10) - gamePlayer?.setStreamBitrateMix(1000, max: 3000, fps: 45) - gameController = gamePlayer?.gameController - gameController?.controlDelegate = self; - - gamePlayer?.videoView().frame = self.view.bounds - - mouseCursor = TCGVirtualMouseCursor.init(frame: self.view.bounds, controller: gameController) - // 设置默认的鼠标指针图片,防止后台未及时下放时显示空白 - mouseCursor?.setCursorImage(#imageLiteral(resourceName: "default_cursor"), andRemoteFrame: CGRect(x:0, y:0, width:32, height:32)) - if let cursor = mouseCursor { - gamePlayer?.videoView().addSubview(cursor) - } - if let v = gamePlayer?.videoView() { - self.view.insertSubview(v, at: 0) - } - } - - func getRemoteSession(_ localSession:String) -> Void { - let createSession = "xxxxx/StartGame" - if let uid = self.userId { - self.postUrl(createSession, ["GameId":"game-xxx", "UserId":uid, "ClientSession":localSession]) { (data:Data?, req:URLResponse?, err:Error?) in - if err != nil { - print("申请云端机器失败:\(err.debugDescription)") - return - } - if let data = data { - guard let infoDic = try? JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? NSDictionary else { - return } - guard let valueDic = infoDic["data"] as? [String : AnyObject] else { - print("返回结果异常:\(infoDic)") - return } - guard let session = valueDic["ServerSession"] as? String else { - print("返回结果异常:\(infoDic)") - return } - self .doStartGame(session) - } else { - print("返回结果异常:") - } - } - } - } - - func postUrl(_ urlStr:String, _ params:Dictionary, _ blk:@escaping (Data?, URLResponse?, Error?) -> Void) { - let session = URLSession.shared - let url = URL(string: urlStr)! - var request = URLRequest(url: url) - request.httpMethod = "POST" - request.setValue("application/json", forHTTPHeaderField: "Content-Type") - let jsonData = try! JSONSerialization.data(withJSONObject: params, options: []) - let task = session.uploadTask(with: request, from: jsonData, completionHandler:blk) - task.resume() - } -} - -extension ViewController : TCGGamePlayerDelegate { - func onInitSuccess(_ localSession: String!) { - print("onInitSuccess 本地初始化成功") - self.getRemoteSession(localSession) - } - - func onInitFailure(_ errorCode: TCGErrorType, msg errorMsg: Error!) { - print("onInitFailure \(errorCode) \(errorMsg.debugDescription)") - self.stopGame() - } - - func onConnectionFailure(_ errorCode: TCGErrorType, msg errorMsg: Error!) { - print("onConnectionFailure \(errorCode) \(errorMsg.debugDescription)") - self.stopGame() - } - - func onStartReConnect(withReason reason: TCGErrorType) { - print("onStartReConnect \(reason) 与云端链接断开,SDK内部重连中") - } - - func onVideoSizeChanged(_ videoSize: CGSize) { - print("onVideoSizeChanged 更新画面尺寸: \(videoSize.debugDescription)") - var newWidth = self.view.frame.size.width - self.view.safeAreaInsets.left - self.view.safeAreaInsets.right - var newHeight = self.view.frame.size.height - // 游戏画面强制横屏、设置游戏画面居中显示类似 UIViewContentModeScaleAspectFit - if newWidth/newHeight < videoSize.width/videoSize.height { - newHeight = floor(newWidth * videoSize.height / videoSize.width) - } else { - newWidth = floor(newHeight * videoSize.width / videoSize.height) - } - if let v = self.gamePlayer?.videoView() { - v.frame = CGRect(x:(self.view.frame.size.width - newWidth) / 2, - y:(self.view.frame.size.height - newHeight) / 2, - width: newWidth, height: newHeight) - if let mouse = self.mouseCursor { - mouse.frame = v.bounds - } - } - } - - func onVideoOrientationChanged(_ orientation: UIInterfaceOrientation) { - print("onVideoOrientationChanged \(orientation)") - } - - func onVideoShow() { - print("onVideoShow, 游戏开始有画面") - // 设置正确的鼠标显示与控制模式 - self.gameController?.setCursorShowMode(TCGMouseCursorShowMode.local) - self.mouseCursor?.setCursorTouchMode(TCGMouseCursorTouchMode.relativeTouch) - } - -} - -extension ViewController : TCGGameControllerDelegate { - func onCursorImageUpdated(_ image : UIImage, frame imageFrame : CGRect) { - self.mouseCursor?.setCursorImage(image, andRemoteFrame: imageFrame) - } - - func onCursorVisibleChanged(_ isVisble:Bool) { - print("onCursorVisibleChanged 鼠标状态:\(isVisble)"); - self.mouseCursor?.setCursorIsShow(isVisble) - } -} diff --git a/Demo/README.md b/Demo/README.md deleted file mode 100644 index e9c7f96..0000000 --- a/Demo/README.md +++ /dev/null @@ -1,24 +0,0 @@ -[English document](README_EN-US.md) -# 云游戏 Demo -## 目录介绍 - -提供了四个演示Demo,包含端游-简单示例、手游-简单示例、端游-虚拟按键,端游-Swift版本,运行前**pod update**更新SDK。 - -1、SimplePCDemo - -主要展示了云端运行传统PC端游时的启动流程。 -端游的画面默认为横屏(宽大于高)显示。 - -2、SimpleMobile - -主要展示了云端运行手游时的启动流程。 -手游的画面默认为竖屏(宽小于高)显示,与端游的主要区别在videoView的横竖屏切换处理。 - -3、VKeyDemo - -主要展示了虚拟按键的使用。 -工程提供了两套布局,可通过点击"Switch"按钮进行按键布局的切换。 - -4、SwiftPCDemo - -主要展示了云端运行传统PC端游时的启动流程(Swift版本)。 diff --git a/Demo/README_EN-US.md b/Demo/README_EN-US.md deleted file mode 100644 index 46b308e..0000000 --- a/Demo/README_EN-US.md +++ /dev/null @@ -1,24 +0,0 @@ -[中文文档](README.md) -# Cloud Game Demo -## Directory Introduction - -Four demos are provided, including PC Game-Simple Example, Mobile Game-Simple Example, PC Game-Virtual Button, PC Game-Swift Version, **pod update** update the SDK before running. - -1. SimplePCDemo - -It mainly shows the startup process when running traditional PC end games on the cloud. -The screen of the terminal game defaults to a horizontal screen (width greater than height) display. - -2. SimpleMobile - -It mainly shows the startup process when running mobile games on the cloud. -The screen of the mobile game defaults to a vertical screen (width smaller than the height), and the main difference from the client game is the horizontal and vertical screen switching processing of the videoView. - -3. VKeyDemo - -It mainly shows the use of virtual buttons. -The project provides two sets of layouts, which can be switched by clicking the "Switch" button. - -4. SwiftPCDemo - -It mainly shows the startup process (Swift version) when running traditional PC end games on the cloud. \ No newline at end of file diff --git a/Doc/Mobile_Game_Quick_Start_EN-US.md b/Doc/Mobile_Game_Quick_Start_EN-US.md deleted file mode 100644 index a93d9ed..0000000 --- a/Doc/Mobile_Game_Quick_Start_EN-US.md +++ /dev/null @@ -1,145 +0,0 @@ -[中文文档](手游接入说明.md) -**GS Native SDK for iOS (Object-C)** -# I. Framework Component Description -- TCGSDK.framework: The cloud game business library -- TWEBRTC.framework: The basic communication capabilities library
- -# II. TCGSDK Use Instructions -## 1. The SDK supports both PC and mobile games -The TCGSDK can run both mobile and PC games in the cloud but doesn't identify the game type by itself. The business layer needs to identify the game type when pulling the game. The features of `TCGGamePlayer` and `TCGGameController` classes are reusable. - -Difference 1: The control class for PC games is `TCGDefaultMouseCursor`, while for mobile games is `TCGRemoteTouchScreen`. - -Difference 2: `gamePlayer.videoView` for PC games is fixed in landscape mode, while for mobile games is fixed at portrait mode. - -The business layer decides on the control class to be used based on the game type after the game is started. -*Note: Some APIs are only compatible with PC games, such as the API for querying the cloud keyboard letter case.* - -## 2. Overview of key classes -### a. TCGGamePlayer -It is the base cloud game class, which provides cloud game capabilities.
-Register `TCGGamePlayerDelegate` to listen for the callbacks for the cloud game lifecycle events.
-`gamePlayer.videoView` is the video rendering layer created during the initialization of `TCGGamePlayer`. -### b. TCGGameController -It is the cloud game control feature class, which provides keyboard, mouse, and virtual controller capabilities.
-Register *TCGGameControllerDelegate* to listen for the callbacks for cloud game control events. -### c. TCGRemoteTouchScreen (mobile game control class) -It is the default cloud touchscreen mapping class of the SDK, which maps local touch events to cloud phones.
- - -## 3. Overview of key processes -### a. Create `TCGGamePlayer` to initialize the local multimedia capabilities -```objectivec -[[TCGGamePlayer alloc] initWithParams:nil andDelegate:self] -// Set the connection timeout period. -[self.gamePlayer setConnectTimeout:10]; -// Set the output bitrate range and frame rate of cloud video encoding. -[self.gamePlayer setStreamBitrateMix:1000 max:3000 fps:30]; -``` -Implement the listener API of the delegate, get the local session information, and apply to the backend for `remoteSession`. -```objectivec -- (void)onInitSuccess:(NSString *)localSession; -``` - -### b. Get the `remoteSession` returned by the backend and connect to the cloud to start the game -```objectivec -[self.gamePlayer startGameWithRemoteSession:remoteSession error:&err] -``` - -### c. Listen for the callback for a successful connection of *TCGGameControllerDelegate* -```objectivec -- (void)onVideoSizeChanged:(CGSize)videoSize { - // Set a correct size of the video source image, so that the cursor coordinates can be converted to the correct values. - [self.mouseCursor setVideoSize:videoSize]; -} - -// Frame rendering of the video stream (including the first frame rendering after reconnection) started. -- (void)onVideoShow { - -} -``` - -### d. Listen for the callback for automatic reconnection -```objectivec -- (void)onStartReConnectWithReason:(TCGErrorType)reason { - NSLog(@"A connection error occurred, and the system tried reconnection. The disconnection cause is: %zd", reason); -} -``` -The SDK will try reconnection three times in the following cases: -- When the application is switched to the background, iOS will reclaim the socket resources, and the connection between the underlying layer and the cloud will be closed immediately. Then, the application is activated again. -- When a network exception occurs, the connection may close. -- The connection is normal, but callbacks for video frames haven't been received for a certain period of time. - -After the reconnection, you need to configure peripheral devices such as controller and keyboard again.
-*Note: If the cloud is disconnected for over 90 seconds, it will release the resources.* - - -### e. Log APIs -```objectivec -// Set the log delegate and the lowest log filter level. -[TCGGamePlayer setLogger:self withMinLevel:TCGLogLevelError]; - -// Receive the log callback of the SDK. -- (void)logWithLevel:(TCGLogLevel)logLevel log:(NSString *)log { - NSLog(@"%d, %@", logLevel, log); -} -``` - -## 4. How to use the *TCGRemoteTouchScreen* cloud touchscreen class -Derived from the base class **UIView**, *TCGRemoteTouchScreen* maps the player's screen touch operations to the cloud phone screen and sends relevant events to the cloud through *TCGGameController*. - -### a. Create a view -The cloud touchscreen view must be used as a subview of *gamePlayer.videoView* with the same size and position. -```objectivec -self.mobileTouch = [[TCGRemoteTouchScreen alloc] initWithFrame:self.gamePlayer.videoView.bounds - controller:self.gameController]; -[self.gamePlayer.videoView addSubview:self.mobileTouch]; -``` - -## 5. How to process the landscape/portrait mode -The mobile game video image is fixed in the portrait mode (the resolution width is less than the height). - -### a. If `ViewController` is in portrait mode during creation -Create the frame of `videoView` normally and align it with the screen at the aspect ratio of the video. - -### b. If `ViewController` is in landscape mode during creation -As the mobile game video image is fixed in portrait mode, `videoView` needs to be rotated by 90 degrees counterclockwise to be displayed normally. In addition, when `videoView` is created, its width and height need to be aligned with the height and width of `VC.view` respectively as follows: -```objectivec -- (void)resetGamePlayViewWithSize:(CGSize)videoSize { - UIInterfaceOrientation vcOrient = [[UIApplication sharedApplication] statusBarOrientation]; - CGFloat newWidth = 0; - CGFloat newHeight = 0; - if (vcOrient == UIInterfaceOrientationPortrait) { - newWidth = self.view.frame.size.width; - newHeight = self.view.frame.size.height; - newHeight -= [self.view safeAreaInsets].top + [self.view safeAreaInsets].bottom; - } else if (vcOrient == UIInterfaceOrientationLandscapeRight) { - // The mobile game video image is fixed in portrait mode (the width is less than the height). If the mobile phone is in landscape mode, you need to rotate the image of `videoView` by 90 degrees counterclockwise. - newWidth = self.view.frame.size.height; - newHeight = self.view.frame.size.width; - newHeight -= [self.view safeAreaInsets].left + [self.view safeAreaInsets].right; - } - - // The game image is converted to the landscape mode forcibly. The long sides are aligned, and the short sides are scaled proportionally with empty spaces. You can consider creating `subview` after `viewSafeAreaInsetsDidChange`. - newWidth -= [self.view safeAreaInsets].left + [self.view safeAreaInsets].right; - if (newWidth/newHeight < videoSize.width/videoSize.height) { - newHeight = floor(newWidth * videoSize.height / videoSize.width); - } else { - newWidth = floor(newHeight * videoSize.width / videoSize.height); - } - - self.videoRenderFrame = CGRectMake((self.view.frame.size.width - newWidth) / 2, - (self.view.frame.size.height - newHeight) / 2, - newWidth, newHeight); - [self.gamePlayer.videoView setFrame:self.videoRenderFrame]; - if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeRight) { - // If the mobile phone is in landscape mode, you need to rotate the image of `videoView` by 90 degrees counterclockwise. - self.gamePlayer.videoView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, -M_PI_2); - } -} -``` - -### c. Listen for the change in the cloud phone orientation -Although the mobile game video image is fixed in portrait mode (where the resolution width is less than height), the game image in landscape mode may still be shown. You can listen for `TCGGamePlayerDelegate onVideoOrientationChanged` to get the change in the image content orientation. - -You can also call the `TCGGamePlayer.videoOrientation` API to query the current orientation. diff --git a/Doc/PC_Game_Quick_Start_EN-US.md b/Doc/PC_Game_Quick_Start_EN-US.md deleted file mode 100644 index c2f536f..0000000 --- a/Doc/PC_Game_Quick_Start_EN-US.md +++ /dev/null @@ -1,141 +0,0 @@ -[中文文档](端游接入说明.md) -**GS Native SDK for iOS (Object-C)** -# I. Framework Component Description -- TCGSDK.framework: The cloud game business library -- TWEBRTC.framework: The basic communication capabilities library
- -# II. TCGSDK Use Instructions - -## 1. Overview of key classes -### a. TCGGamePlayer -The base cloud game class, which provides cloud game capabilities.
-Register `TCGGamePlayerDelegate` to listen for the callbacks for the cloud game lifecycle events.
-`gamePlayer.videoView` is the video rendering layer created during the initialization of `TCGGamePlayer`. -### b. TCGGameController -The cloud game control feature class, which provides keyboard, mouse, and virtual controller capabilities.
-Register *TCGGameControllerDelegate* to listen for the callbacks for cloud game control events. -### c. TCGDefaultMouseCursor -The default mouse implementation class of the SDK, which provides capabilities for controlling a cloud PC mouse on a mobile touchscreen.
-End users can click the screen to trigger a mouse click event, move a finger on the screen to control the cursor movement, and also drag and drop the mouse. - -## 2. Overview of key processes -### a. Create `TCGGamePlayer` to initialize the local multimedia capabilities -```objectivec -[[TCGGamePlayer alloc] initWithParams:nil andDelegate:self] -// Set the connection timeout period. -[self.gamePlayer setConnectTimeout:10]; -// Set the output bitrate range and frame rate of cloud video encoding. -[self.gamePlayer setStreamBitrateMix:1 max:2 fps:30]; -``` -Implement the listener API of the delegate, get the local session information, and apply to the backend for `remoteSession`. -```objectivec -- (void)onInitSuccess:(NSString *)localSession; -``` - -### b. Get the `remoteSession` returned by the backend and connect to the cloud to start the game -```objectivec -[self.gamePlayer startGameWithRemoteSession:remoteSession error:&err] -``` - -### c. Listen for the callback for a successful connection of *TCGGameControllerDelegate* -```objectivec -- (void)onVideoSizeChanged:(CGSize)videoSize { - // Set a correct size of the video source image, so that the cursor coordinates can be converted to the correct values. - [self.mouseCursor setVideoSize:videoSize]; -} - -// Frame rendering of the video stream (including the first frame rendering after reconnection) started. -- (void)onVideoShow { - // Notify the cloud to connect to the virtual controller. - [self.gameController enableVirtualGamePad:YES]; - // Set the rendering mode of the cloud cursor and show the cursor. - [self.gameController setCursorShowMode:TCGMouseCursorShowMode_Local]; -} -``` - -### d. Listen for the callback for automatic reconnection -```objectivec -- (void)onStartReConnectWithReason:(TCGErrorType)reason { - NSLog(@"A connection error occurred, and the system tried reconnection. The disconnection cause is: %zd", reason); -} -``` -The SDK will try reconnection three times in the following cases: -- When the application is switched to the background, iOS will reclaim the socket resources, and the connection between the underlying layer and the cloud will be closed immediately. Then, the application is activated again. -- When a network exception occurs, the connection may close. -- When the connection is normal, but callbacks for video frames haven't been received for a certain period of time. - -After the reconnection, you need to configure peripheral devices such as controller and keyboard again.
-*Note: If the cloud is disconnected for over 90 seconds, it will release the resources.* - -### e. Pause/Resume the game -```objectivec -[gamePlayer pauseResumeGame:YES]; // Pause the game. -[gamePlayer pauseResumeGame:NO]; // Resume the game. -``` -When the user pauses the game, the SDK will remain connected to the cloud, and the cloud will pause delivering the audio/video data.
-*Note: The game process doesn't pause, and the SDK doesn't disconnect from the cloud. If the SDK is disconnected due to network problems or other issues, automatic reconnection won't be triggered.* - -### f. Configure log APIs -```objectivec -// Set the log delegate and the lowest log filter level. -[TCGGamePlayer setLogger:self withMinLevel:TCGLogLevelError]; - -// Receive the log callback of the SDK. -- (void)logWithLevel:(TCGLogLevel)logLevel log:(NSString *)log { - NSLog(@"%d, %@", logLevel, log); -} -``` - -## 3. How to use the default mouse class *TCGDefaultMouseCursor* -Derived from the base class **UIView**, *TCGDefaultMouseCursor* converts the player's screen touch operations to mouse instructions that can be recognized by the cloud and sends them to the cloud through *TCGGameController*. - -### a. Create a view -The size and position of the mouse view must be the same as those of the video view *gamePlayer.videoView*. - -### b. Set the touch mode as well as the image and size of the initial cursor -```objectivec -typedef NS_ENUM(NSInteger, TCGMouseCursorTouchMode) { - /** The cursor moves with the finger, and clicking the screen triggers a mouse button click. */ - TCGMouseCursorTouchMode_AbsoluteTouch = 0, - /** Moving the finger on the screen controls the relative movement of the cursor. - * Touching the screen triggers a left mouse button click. - * Pressing and holding the screen triggers a left mouse button click, and dragging is supported. - * Moving the finger on the screen only triggers a cursor movement. - **/ - TCGMouseCursorTouchMode_RelativeTouch = 1, - /** Moving the finger on the screen makes the cursor move at the relative position without triggering any click events. */ - TCGMouseCursorTouchMode_RelativeOnly = 2 -}; - -[self.mouseCursor setCursorTouchMode:TCGMouseCursorTouchMode_RelativeTouch]; -[self.mouseCursor setCursorImage:[UIImage imageNamed:@"default_cursor"] andRemoteFrame:CGRectMake(0, 0, 32, 32)]; -``` - -### c. Set the rendering mode after successful connection to the cloud -```objectivec -typedef NS_ENUM(NSInteger, TCGMouseCursorShowMode) { - /** The client renders the cursor on its own. **/ - TCGMouseCursorShowMode_Custom = 0, - /** The cloud distributes the cursor image for local rendering by the client. **/ - TCGMouseCursorShowMode_Local = 1, - /** The cursor image is rendered within the cloud image. **/ - TCGMouseCursorShowMode_Remote = 2 -}; - -// We recommend you use the local rendering mode. -[self.gameController setCursorShowMode:TCGMouseCursorShowMode_Local]; - -``` -*Note: If the connection is closed due to an exception, you need to set the rendering mode again after automatic reconnection succeeds.* - -### d. Listen for the callback to update the cursor image and visibility in real time -```objectivec -- (void)onCursorImageUpdated:(UIImage *)image frame:(CGRect)imageFrame { - // `imageFrame.origin` is the offset value relative to the top point of the current cursor. - [self.mouseCursor setCursorImage:image andRemoteFrame:imageFrame]; -} - -- (void)onCursorVisibleChanged:(BOOL)isVisble { - [self.mouseCursor setCursorIsShow:isVisble]; -} -``` diff --git a/Doc/Release_Notes_EN-US.md b/Doc/Release_Notes_EN-US.md deleted file mode 100644 index 56a1415..0000000 --- a/Doc/Release_Notes_EN-US.md +++ /dev/null @@ -1,23 +0,0 @@ -[中文文档](历史版本.md) -### Version 1.1.19.1 (2023-4-12) -Bug Fixes -- Fix and optimize some known issues. - -### Version 1.1.9 (2022-11-15) -Features -- TCGGamePlayer newly added method setRemoteDesktopResolution(int, int) for setting the resolution of cloud desktop. - -### Version 1.1.8.22 (2022-5-10) -Bug Fixes -- Fix and optimize some known issues. - -### Version 1.1.8.21 (2021-12-10) -Features -- Replaced the WebRTC-based reconnection API with the reconnection delegate API. -- Fixed some potential issues. - -### Version 1.1.7.20 (2021-10-29) -Features -- Optimized some details of virtual keys. -- Fixed the issue where the performance log reporting didn't stop due to an exception. - diff --git a/Doc/Virtual_Key_Quick_Start_EN-US.md b/Doc/Virtual_Key_Quick_Start_EN-US.md deleted file mode 100644 index 87c105e..0000000 --- a/Doc/Virtual_Key_Quick_Start_EN-US.md +++ /dev/null @@ -1,73 +0,0 @@ -[中文文档](自定义虚拟按键.md) -# Custom Virtual Key - -## Feature Overview - -This document describes how to add virtual keys to your game. - -After integrating the SDK, you can load a configuration file to generate custom virtual keys dynamically. - - -## Framework component description - -TCGVKey.framework: The virtual key extension library. - -## API overview - -| API | Description | -| ------------------------------------------------------------ | ------------------------ | -| TCGVKeyGamepad initWithFrame:(CGRect)frame controller:(TCGGameController *)controller; | Creates a virtual key view. | -| TCGVKeyGamepad showKeyGamepad:(NSString *)cfg; | Loads the virtual key layout and generates virtual keys. | -| TCGVKeyGamepad needConnected() | Queries whether the current key layout needs to be notified to the cloud. | - - -## Sample call - -```objectivec -- (void)initControlViews { - self.gamepad = [[TCGVKeyGamepad alloc] initWithFrame:self.view.bounds controller:self.gameController]; - [self.view addSubview:self.gamepad]; - [self.gamepad showKeyGamepad:[self readJsonFromFile:@"tcg_default_ps4"]]; -} - -- (void)onVideoShow { - if ([self.gamepad needConnected]) { - [self.gameController enableVirtualGamepad:YES]; - } -} -``` - -## Usage after integration - - -### Supported keys - -Three types of keys are supported: mouse and arrow keys, keyboard, and controller. - -#### Mouse and arrow keys - -1. Mouse buttons: Left button, middle button, right button, scroll-up, and scroll-down - -2. Arrow keys: Up, down, left and right/W, A, S, and D - Four common keys W, A, S, and D form arrow keys just like a D-pad on a controller. If the up direction is pressed, a message of the `W` key will be triggered. If a diagonal direction is pressed, its two adjacent keys will be triggered. - Messages of the up, down, left, and right arrow keys are triggered in the same way. - -#### Keyboard - -1. 78 commonly used keys on a physical keyboard - -#### Controller - -1. Left and right sticks - -2. D-pad - -3. General pressable buttons: A, B, X, Y, △, ☐, ×, ○, Select, Start, LB, RB, L3, and R3 - -4. Triggers: LT and RT (*If a trigger is pressed, its message will be sent multiple times in a row instantly, and the message strength decreases gradually over time.*) - -## Configuration file generation - -A key layout file generation tool is provided [here](https://github.com/tencentyun/cloudgame-android-sdk/blob/master/TOOLS/vktool-release.apk). The key layout configuration generated by this tool can be used by the SDK. - -Note: You only need to save and import the generated configuration file for your game to use it with no need of caring about the content and generation rules in the file. diff --git "a/Doc/\345\216\206\345\217\262\347\211\210\346\234\254.md" "b/Doc/\345\216\206\345\217\262\347\211\210\346\234\254.md" deleted file mode 100644 index aae22a3..0000000 --- "a/Doc/\345\216\206\345\217\262\347\211\210\346\234\254.md" +++ /dev/null @@ -1,23 +0,0 @@ -[English document](Release_Notes_EN-US.md) -### Version 1.1.19.1 (2023-4-12) -Bug Fixes -- 修复和优化一些已知问题 - -### Version 1.1.9 (2022-11-15) -Features -- 新增接口TCGGamePlayer.setRemoteDesktopResolution修改云端桌面分辨率 - -### Version 1.1.8.22 (2022-5-10) -Bug Fixes -- 修复和优化一些已知问题 - -### Version 1.1.8.21 (2021-12-10) -Features -- webrtc重连接口替换成重连代理接口 -- 修复一些潜在的问题 - -### Version 1.1.7.20 (2021-10-29) -Features -- 完善虚拟按键的一些细节 -- 修复性能日志上报异常不停止的问题 - diff --git "a/Doc/\346\211\213\346\270\270\346\216\245\345\205\245\350\257\264\346\230\216.md" "b/Doc/\346\211\213\346\270\270\346\216\245\345\205\245\350\257\264\346\230\216.md" deleted file mode 100644 index 71f56cb..0000000 --- "a/Doc/\346\211\213\346\270\270\346\216\245\345\205\245\350\257\264\346\230\216.md" +++ /dev/null @@ -1,145 +0,0 @@ -[English document](Mobile_Game_Quick_Start_EN-US.md) -**云游戏iOS原生SDK(Object-C)** -# 一、framework组件说明: -- TCGSDK.framework,云游业务库 -- TWEBRTC.framework,通信基础能力库
- -# 二、TCGSDK 使用说明: -## 1、SDK支持端游和手游 -TCGSDK支持云端运行手游和端游,但本身不感知游戏的类型,业务层在拉起游戏时需自行判断游戏类型,TCGGamePlayer、TCGGameController类功能复用。 - -区别1:控制类的选择上 TCGDefaultMouseCursor、TCGRemoteTouchScreen。 - -区别2:gamePlayer.videoView端游是固定横屏画面,手游是固定竖屏画面。 - -业务层在游戏启动后,根据游戏的类型来决定使用哪种类型的操控类。 -*注:部分接口只适配于端游,如查询云端键盘大小写状态等。* - -## 2、关键类介绍 -### a、TCGGamePlayer -云游基础类,提供云游能力。
-注册*TCGGamePlayerDelegate*监听云游生命周期事件的回调。
-*gamePlayer.videoView*视频渲染的图层,在TCGGamePlayer初始化时创建。 -### b、TCGGameController -云游的操控功能类,提供键盘、鼠标以及虚拟手柄相关的能力。
-注册*TCGGameControllerDelegate*监听云游操控相关事件的回调。 -### c、TCGRemoteTouchScreen(手游操控类) -SDK默认的映射云端触屏类,将本地的手指触摸事件映射到云端手机上。
- - -## 3、关键流程说明 -### a、创建TCGGamePlayer进行本地多媒体能力的初始化 -```objectivec -[[TCGGamePlayer alloc] initWithParams:nil andDelegate:self] -// 设置连接超时时长 -[self.gamePlayer setConnectTimeout:10]; -// 设置云端视频编码输出码率范围以及帧率 -[self.gamePlayer setStreamBitrateMix:1000 max:3000 fps:30]; -``` -实现代理的监听接口,拿到本地的sesssion信息,向后台申请remoteSession -```objectivec -- (void)onInitSuccess:(NSString *)localSession; -``` - -### b、拿到后台返回的remoteSession,开始连接云端进行游戏 -```objectivec -[self.gamePlayer startGameWithRemoteSession:remoteSession error:&err] -``` - -### c、监听*TCGGameControllerDelegate*连接成功的回调 -```objectivec -- (void)onVideoSizeChanged:(CGSize)videoSize { - // 设置正确的视频源尺寸,鼠标的坐标才能换算成对应的值 - [self.mouseCursor setVideoSize:videoSize]; -} - -// 视频流开始出帧(包括重连后首次出帧) -- (void)onVideoShow { - -} -``` - -### d、监听自动重连的回调 -```objectivec -- (void)onStartReConnectWithReason:(TCGErrorType)reason { - NSLog(@"连接异常尝试重连,断开的原因: %zd", reason); -} -``` -以下情况SDK会尝试重连3次: -- APP切后台的瞬间,iOS系统回收socket资源,底层与云端的连接立即被关闭,随后APP被再次激活。 -- 当网络异常时,连接可能会断开。 -- 连接正常未断开,但接收不到视频帧回调持续一定时长后。 - -重连后手柄、键盘等外设需重新设置。
-*注:云端在连接断开90秒后,会主动释放资源。* - - -### e、日志接口 -```objectivec -// 设置日志代理与最小日志等级过滤 -[TCGGamePlayer setLogger:self withMinLevel:TCGLogLevelError]; - -// 接收SDK的日志回调 -- (void)logWithLevel:(TCGLogLevel)logLevel log:(NSString *)log { - NSLog(@"%d, %@", logLevel, log); -} -``` - -## 4、云端触屏类*TCGRemoteTouchScreen*的使用说明 -*TCGRemoteTouchScreen*的基类是**UIView**,将玩家手指触控屏幕的操作映射到云端手机屏幕上,并通过*TCGGameController*发送事件给云端。 - -### a、创建 -云端触屏视图的大小与位置需要跟视频视图*gamePlayer.videoView*保持一致,并作为*gamePlayer.videoView*的子视图 -```objectivec -self.mobileTouch = [[TCGRemoteTouchScreen alloc] initWithFrame:self.gamePlayer.videoView.bounds - controller:self.gameController]; -[self.gamePlayer.videoView addSubview:self.mobileTouch]; -``` - -## 5、横竖屏的处理 -手游视频的分辨率固定为宽<高(即竖版图像) - -### a、创建时ViewController为竖屏 -正常创建videoView的frame,按视频宽高等比对齐屏幕即可。 - -### b、创建时ViewController为横屏 -因手游视频的画面固定为竖版图像,videoView在显示时需逆时钟旋转90度,画面才能显示正常。 同时在创建videoView时宽高需对齐VC.view的高与宽。示范代码如下: -```objectivec -- (void)resetGamePlayViewWithSize:(CGSize)videoSize { - UIInterfaceOrientation vcOrient = [[UIApplication sharedApplication] statusBarOrientation]; - CGFloat newWidth = 0; - CGFloat newHeight = 0; - if (vcOrient == UIInterfaceOrientationPortrait) { - newWidth = self.view.frame.size.width; - newHeight = self.view.frame.size.height; - newHeight -= [self.view safeAreaInsets].top + [self.view safeAreaInsets].bottom; - } else if (vcOrient == UIInterfaceOrientationLandscapeRight) { - // 手游的视频分辨率只会是 宽 < 高,当手机横屏显示时,需要将videoView画面逆时钟旋转90度。 - newWidth = self.view.frame.size.height; - newHeight = self.view.frame.size.width; - newHeight -= [self.view safeAreaInsets].left + [self.view safeAreaInsets].right; - } - - // 游戏画面强制横屏、长边对齐,短边留白 可考虑在viewSafeAreaInsetsDidChange之后再创建subview - newWidth -= [self.view safeAreaInsets].left + [self.view safeAreaInsets].right; - if (newWidth/newHeight < videoSize.width/videoSize.height) { - newHeight = floor(newWidth * videoSize.height / videoSize.width); - } else { - newWidth = floor(newHeight * videoSize.width / videoSize.height); - } - - self.videoRenderFrame = CGRectMake((self.view.frame.size.width - newWidth) / 2, - (self.view.frame.size.height - newHeight) / 2, - newWidth, newHeight); - [self.gamePlayer.videoView setFrame:self.videoRenderFrame]; - if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeRight) { - // 手机横屏显示时,需要将videoView画面逆时钟旋转90度。 - self.gamePlayer.videoView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, -M_PI_2); - } -} -``` - -### c、监听云端手机朝向变化 -虽然手游视频的画面固定为竖版图像(即分辨率宽小于高),但画面的内容可能会是横屏的游戏画面。 可通过监听TCGGamePlayerDelegate onVideoOrientationChanged来感知画面内容朝向的改变。 - -也可通过接口调用TCGGamePlayer.videoOrientation主动查询当前的朝向。 diff --git "a/Doc/\347\253\257\346\270\270\346\216\245\345\205\245\350\257\264\346\230\216.md" "b/Doc/\347\253\257\346\270\270\346\216\245\345\205\245\350\257\264\346\230\216.md" deleted file mode 100644 index e15d60b..0000000 --- "a/Doc/\347\253\257\346\270\270\346\216\245\345\205\245\350\257\264\346\230\216.md" +++ /dev/null @@ -1,142 +0,0 @@ - -[English document](PC_Game_Quick_Start_EN-US.md) -**云游戏iOS原生SDK(Object-C)** -# 一、framework组件说明: -- TCGSDK.framework,云游业务库 -- TWEBRTC.framework,通信基础能力库
- -# 二、TCGSDK 使用说明: - -## 1、关键类介绍 -### a、TCGGamePlayer -云游基础类,提供云游能力。
-注册*TCGGamePlayerDelegate*监听云游生命周期事件的回调。
-*gamePlayer.videoView*视频渲染的图层,在TCGGamePlayer初始化时创建。 -### b、TCGGameController -云游的操控功能类,提供键盘、鼠标以及虚拟手柄相关的能力。
-注册*TCGGameControllerDelegate*监听云游操控相关事件的回调。 -### c、TCGDefaultMouseCursor -SDK默认的鼠标实现类,在移动端触控屏上提供操控PC上鼠标的能力。
-点击屏幕可触发鼠标的点击事件,手指滑动能控制鼠标的移动,也支持按住拖拽鼠标。 - -## 2、关键流程说明 -### a、创建TCGGamePlayer进行本地多媒体能力的初始化 -```objectivec -[[TCGGamePlayer alloc] initWithParams:nil andDelegate:self] -// 设置连接超时时长 -[self.gamePlayer setConnectTimeout:10]; -// 设置云端视频编码输出码率范围以及帧率 -[self.gamePlayer setStreamBitrateMix:1 max:2 fps:30]; -``` -实现代理的监听接口,拿到本地的sesssion信息,向后台申请remoteSession -```objectivec -- (void)onInitSuccess:(NSString *)localSession; -``` - -### b、拿到后台返回的remoteSession,开始连接云端进行游戏 -```objectivec -[self.gamePlayer startGameWithRemoteSession:remoteSession error:&err] -``` - -### c、监听*TCGGameControllerDelegate*连接成功的回调 -```objectivec -- (void)onVideoSizeChanged:(CGSize)videoSize { - // 设置正确的视频源尺寸,鼠标的坐标才能换算成对应的值 - [self.mouseCursor setVideoSize:videoSize]; -} - -// 视频流开始出帧(包括重连后首次出帧) -- (void)onVideoShow { - // 通知云端连接虚拟手柄外设 - [self.gameController enableVirtualGamePad:YES]; - // 设置云流鼠标的绘制模式,并激活鼠标的显示 - [self.gameController setCursorShowMode:TCGMouseCursorShowMode_Local]; -} -``` - -### d、监听自动重连的回调 -```objectivec -- (void)onStartReConnectWithReason:(TCGErrorType)reason { - NSLog(@"连接异常尝试重连,断开的原因: %zd", reason); -} -``` -以下情况SDK会尝试重连3次: -- APP切后台的瞬间,iOS系统回收socket资源,底层与云端的连接立即被关闭,随后APP被再次激活。 -- 当网络异常时,连接可能会断开。 -- 连接正常未断开,但接收不到视频帧回调持续一定时长后。 - -重连后手柄、键盘等外设需重新设置。
-*注:云端在连接断开90秒后,会主动释放资源。* - -### e、半退/恢复游戏 -```objectivec -[gamePlayer pauseResumeGame:YES]; //半退游戏 -[gamePlayer pauseResumeGame:NO]; //恢复游戏 -``` -半退游戏,SDK不断开与云端的连接,云端暂停下发音视频数据
-*注:游戏进程不暂停。与云端的连接,不主动断开,若因网络等原因断开后不触发自动重连。* - -### f、日志接口 -```objectivec -// 设置日志代理与最小日志等级过滤 -[TCGGamePlayer setLogger:self withMinLevel:TCGLogLevelError]; - -// 接收SDK的日志回调 -- (void)logWithLevel:(TCGLogLevel)logLevel log:(NSString *)log { - NSLog(@"%d, %@", logLevel, log); -} -``` - -## 3、默认鼠标类*TCGDefaultMouseCursor*的使用说明 -*TCGDefaultMouseCursor*的基类是**UIView**,将玩家手指触控屏幕的操作转换为云端能识别鼠标操控指令,并通过*TCGGameController*发送给云端。 - -### a、创建 -鼠标视图的大小与位置需要跟视频视图*gamePlayer.videoView*保持一致。 - -### b、设置触控模式与初始指针的图片与大小 -```objectivec -typedef NS_ENUM(NSInteger, TCGMouseCursorTouchMode) { - /** 鼠标跟随手指移动,点击可以单击按键 */ - TCGMouseCursorTouchMode_AbsoluteTouch = 0, - /** 手指滑动控制鼠标相对移动 - * 轻触触发鼠标左键 - * 长按触发按点击鼠标左键, 可以拖动 - * 滑动仅触发鼠标移动 - **/ - TCGMouseCursorTouchMode_RelativeTouch = 1, - /** 鼠标在相对位置移动,不触发点击事件 */ - TCGMouseCursorTouchMode_RelativeOnly = 2 -}; - -[self.mouseCursor setCursorTouchMode:TCGMouseCursorTouchMode_RelativeTouch]; -[self.mouseCursor setCursorImage:[UIImage imageNamed:@"default_cursor"] andRemoteFrame:CGRectMake(0, 0, 32, 32)]; -``` - -### c、与云端连接成功后设置渲染模式 -```objectivec -typedef NS_ENUM(NSInteger, TCGMouseCursorShowMode) { - /** 客户端自行渲染鼠标 **/ - TCGMouseCursorShowMode_Custom = 0, - /** 云端下发鼠标图片,由客户端本地渲染 **/ - TCGMouseCursorShowMode_Local = 1, - /** 云端画面内渲染鼠标图片 **/ - TCGMouseCursorShowMode_Remote = 2 -}; - -// 推荐使用本地渲染模式 -[self.gameController setCursorShowMode:TCGMouseCursorShowMode_Local]; - -``` -*注:若连接异常断开,自动重连成功后需要再次设置渲染模式* - -### d、监听回调实时更新指针的图片与显示状态 -```objectivec -- (void)onCursorImageUpdated:(UIImage *)image frame:(CGRect)imageFrame { - // imageFrame.origin是相对于当前指针顶点的偏移值 - [self.mouseCursor setCursorImage:image andRemoteFrame:imageFrame]; -} - -- (void)onCursorVisibleChanged:(BOOL)isVisble { - [self.mouseCursor setCursorIsShow:isVisble]; -} -``` diff --git "a/Doc/\350\207\252\345\256\232\344\271\211\350\231\232\346\213\237\346\214\211\351\224\256.md" "b/Doc/\350\207\252\345\256\232\344\271\211\350\231\232\346\213\237\346\214\211\351\224\256.md" deleted file mode 100644 index 65b55d4..0000000 --- "a/Doc/\350\207\252\345\256\232\344\271\211\350\231\232\346\213\237\346\214\211\351\224\256.md" +++ /dev/null @@ -1,73 +0,0 @@ -[English document](Virtual_Key_Quick_Start_EN-US.md) -# 自定义虚拟按键 - -## 功能介绍 - -本文档主要介绍如何为您的游戏添加虚拟按键。 - -您接入之后SDK可以通过加载配置文件动态生成自定义的虚拟按键。 - - -## framework组件说明: - -TCGVKey.framework,虚拟按键拓展库。 - -## 接口介绍 - -| 接口名称 | 接口描述 | -| ------------------------------------------------------------ | ------------------------ | -| TCGVKeyGamepad initWithFrame:(CGRect)frame controller:(TCGGameController *)controller; | 创建虚拟按键的视图 | -| TCGVKeyGamepad showKeyGamepad:(NSString *)cfg; | 加载虚拟按键布局,生成按键 | -| TCGVKeyGamepad needConnected() | 启用当前的按键布局是否需要主动通知云端 | - - -## 调用示例 - -```objectivec -- (void)initControlViews { - self.gamepad = [[TCGVKeyGamepad alloc] initWithFrame:self.view.bounds controller:self.gameController]; - [self.view addSubview:self.gamepad]; - [self.gamepad showKeyGamepad:[self readJsonFromFile:@"tcg_default_ps4"]]; -} - -- (void)onVideoShow { - if ([self.gamepad needConnected]) { - [self.gameController enableVirtualGamepad:YES]; - } -} -``` - -## 接入后功能使用 - - -### 支持的按键 - -支持的按键主要分为三类,鼠标及摇杆、键盘、手柄。 - -#### 鼠标及键盘十字键 - -1、鼠标按键(左、中、右、上滚、下滚) - -2、键盘十字键(上下左右、WASD) - 将W、A、S、D四个常规键盘按键合成一个类似游戏手柄的十字方向键,按压正上方时触发'W'按键消息,按45度角同时触发相邻两个按键。 - 上下左右十字键触发按键消息类同。 - -#### 键盘 - -1、实体键盘中常用的78个点击类按键 - -#### 手柄 - -1、左、右摇杆键 - -2、手柄十字键 - -3、普通点击按键(A、B、X、Y、△、☐、×、○、Select、Start、LB、RB、L3、R3) - -4、延时扳机键(LT、RT)【*点击时在短时间内连续发多次消息,消息的力度随时间逐增减*】 - -## 配置文件生成 - -我们还提供了键盘布局文件生成工具(https://github.com/tencentyun/cloudgame-android-sdk/blob/master/TOOLS/vktool-release.apk),您可以使用该工具生成的按键布局配置供SDK使用。 - -注:您不需要关心配置文件中的内容以及生成规则,您只需要导入和保存生成的配置文件供游戏使用。 diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 2a0387f..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 腾讯云 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Protocols/TCGCustomTransChannelDelegate.html" b/Protocols/TCGCustomTransChannelDelegate.html similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Protocols/TCGCustomTransChannelDelegate.html" rename to Protocols/TCGCustomTransChannelDelegate.html diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Protocols/TCGGameControllerDelegate.html" b/Protocols/TCGGameControllerDelegate.html similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Protocols/TCGGameControllerDelegate.html" rename to Protocols/TCGGameControllerDelegate.html diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Protocols/TCGGamePlayerDelegate.html" b/Protocols/TCGGamePlayerDelegate.html similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Protocols/TCGGamePlayerDelegate.html" rename to Protocols/TCGGamePlayerDelegate.html diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Protocols/TCGLogDelegate.html" b/Protocols/TCGLogDelegate.html similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/Protocols/TCGLogDelegate.html" rename to Protocols/TCGLogDelegate.html diff --git a/README.md b/README.md deleted file mode 100644 index bf3b86c..0000000 --- a/README.md +++ /dev/null @@ -1,44 +0,0 @@ -[English document](README_EN-US.md) -# 腾讯云云游戏 iOS -## 一、仓库介绍 -该工程提供了集成云游SDK的简单应用示例,能够让您快速体验云游戏的运行效果。 - -同时还提供了快速入门的集成指引,帮您快速完成云游SDK的接入。 - -如果您需要实现一些进阶的功能,我们还提供了使用进阶指引。 - -## 二、快速入门 -1、快速体验云游戏 - -进入Demo下的工程目录, **pod update** 更新SDK库文件,运行对应的工程即可快速体验云游示例,如果有疑问请参考[Demo运行说明](Demo/README.md)。 - -2、端游快速接入 - -如果您需要在您的应用中集成云端游的功能,请参考[端游接入文档](Doc/端游接入说明.md)。 - -3、手游快速接入 - -如果您需要在您的应用中集成云手游的功能,请参考[手游接入文档](Doc/手游接入说明.md)。 - -4、虚拟按键快速接入 - -如果您需要在您的应用中集成灵活可配置的游戏按键布局,请参考[虚拟接入文档](Doc/自定义虚拟按键.md)。 - -## 三、SDK集成 - -在Podfile中添加 -``` -pod 'TCGSDK', :git => "https://github.com/tencentyun/cloudgame-ios-sdk.git" - -# 虚拟按键可选库 -# pod 'TCGVKey', :git => "https://github.com/tencentyun/cloudgame-ios-sdk.git" -``` - -我们会定期更新SDK的功能,您可以在本工程SDK目录下获取最新的版本。 - -你还可以查看SDK的发布历史,了解各版本的变更信息。 - - -## 四、相关链接 -[腾讯云云游戏解决方案](https://cloud.tencent.com/solution/gs) -[API详细文档](https://tencentyun.github.io/cloudgame-ios-sdk/) diff --git a/README_EN-US.md b/README_EN-US.md deleted file mode 100644 index 06a8f86..0000000 --- a/README_EN-US.md +++ /dev/null @@ -1,46 +0,0 @@ -[中文文档](README.md) -# Tencent cloud GS for iOS -## I.Introduction -This project provides a simple application example of integrating the Formos SDK, allowing you to quickly experience the running effect of the cloud game. - -At the same time, it also provides a quick start integration guide to help you quickly complete the access of the iOS SDK. - -If you need to implement some advanced functions, we also provide advanced guidance. - -## II、Quick start -1、Experience Cloud Gaming Quickly - -Enter the project directory under Demo, **pod update** update the SDK library file, and run the corresponding project to quickly experience the GS example. If you have any questions, please refer to[Demo](Demo/README_EN-US.md)。 - -2、PC game quick start - -If you need to integrate the cloud pc game function in your application, please refer to[PCGameQuickStart](Doc/PC_Game_Quick_Start_EN-US.md)。 - -3、Mobile game quick start - -If you need to integrate cloud mobile game functions in your application, please refer to[MobileGameQuickStart](Doc/Mobile_Game_Quick_Start_EN-US.md)。 - -4、Virtual key quick start - -If you need to integrate a flexible and configurable game button layout in your application, please refer to[VirtualKeyQuickStart](Doc/Virtual_Key_Quick_Start_EN-US.md)。 - -## III、SDK integrated - -Edit Podfile -``` -pod 'TCGSDK', :git => "https://github.com/tencentyun/cloudgame-ios-sdk.git" - -# Optional library of virtual keys -# pod 'TCGVKey', :git => "https://github.com/tencentyun/cloudgame-ios-sdk.git" -``` - -We will regularly update the functions of the SDK, and you can obtain the latest version under the SDK directory of this project. - -You can also view the release history of the SDK to learn about changes in each version. - - -## IV、See also -[CAR](https://www.tencentcloud.com/document/product/1158) -[API DOC](https://tencentyun.github.io/cloudgame-ios-sdk/) - - diff --git a/SDK/TCGARKit.framework/.DS_Store b/SDK/TCGARKit.framework/.DS_Store deleted file mode 100644 index d261c02..0000000 Binary files a/SDK/TCGARKit.framework/.DS_Store and /dev/null differ diff --git a/SDK/TCGARKit.framework/Headers/TCGARKit.h b/SDK/TCGARKit.framework/Headers/TCGARKit.h deleted file mode 100644 index 79e3503..0000000 --- a/SDK/TCGARKit.framework/Headers/TCGARKit.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// TCGARKit.h -// TCGARKit -// -// Created by LyleYu on 2021/8/6. -// - -#import - -//! Project version number for TCGARKit. -FOUNDATION_EXPORT double TCGARKitVersionNumber; - -//! Project version string for TCGARKit. -FOUNDATION_EXPORT const unsigned char TCGARKitVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - -#import diff --git a/SDK/TCGARKit.framework/Headers/TCGARKitController.h b/SDK/TCGARKit.framework/Headers/TCGARKitController.h deleted file mode 100644 index 96c1bec..0000000 --- a/SDK/TCGARKit.framework/Headers/TCGARKitController.h +++ /dev/null @@ -1,34 +0,0 @@ -// -// TCGARKitController.h -// tcgsdk -// -// Created by LyleYu on 2021/8/5. -// - -#import - -#define kTCGARKitARFaceEnable 0x01 - -@class TCGGamePlayer; -@protocol TCGARFaceTrackerDelegate - -// 人脸检测状态发生变化 -- (void)onFaceDetecteChanged:(BOOL)isDetected; -- (void)onFaceBlendShapes:(NSData *)shapesData; - -@end - -@interface TCGARKitController : NSObject - -- (instancetype)initWithPlayer:(TCGGamePlayer *)weakPlayer; - -+ (int64_t)getARKitAbility; - -//- (void)setFaceTracerDelegate:(id)delegate; - -- (UIView *)preview; - -- (void)startFaceTracking; -- (void)stopFaceTracking; - -@end diff --git a/SDK/TCGARKit.framework/Info.plist b/SDK/TCGARKit.framework/Info.plist deleted file mode 100644 index 848cea6..0000000 Binary files a/SDK/TCGARKit.framework/Info.plist and /dev/null differ diff --git a/SDK/TCGARKit.framework/Modules/module.modulemap b/SDK/TCGARKit.framework/Modules/module.modulemap deleted file mode 100644 index 5e5db4d..0000000 --- a/SDK/TCGARKit.framework/Modules/module.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module TCGARKit { - umbrella header "TCGARKit.h" - - export * - module * { export * } -} diff --git a/SDK/TCGARKit.framework/TCGARKit b/SDK/TCGARKit.framework/TCGARKit deleted file mode 100755 index 0ad3a25..0000000 Binary files a/SDK/TCGARKit.framework/TCGARKit and /dev/null differ diff --git a/SDK/TCGSDK.framework/Headers/TCGCustomTransChannel.h b/SDK/TCGSDK.framework/Headers/TCGCustomTransChannel.h deleted file mode 100644 index 5b0c2ee..0000000 --- a/SDK/TCGSDK.framework/Headers/TCGCustomTransChannel.h +++ /dev/null @@ -1,58 +0,0 @@ -// -// TCGCustomTransChannel.h -// tcgsdk -// -// Created by LyleYu on 2021/3/11. -// Copyright © 2021 Tencent. All rights reserved. -// - -#import - -@protocol TCGCustomTransChannelDelegate -/*! - * 与后台连接成功 - * @param remotePort 云端程序监听的UDP端口号 - */ -- (void)onConnSuccessAtRemotePort:(int)remotePort; - -/*! - * 与后台连接失败 - * @param error 连接失败的原因,code:-1云端连接程序失败,10009 连接处理超时, - * @param remotePort 云端程序监听的UDP端口号 - */ -- (void)onConnFailed:(NSError *)error atRemotePort:(int)remotePort; - -/*! - * 云端主动关闭了通道 - * @param remotePort 云端程序监听的UDP端口号 - */ -- (void)onClosedAtRemotePort:(int)remotePort;; - -/*! - * 接收来自云端程序的数据 - * @param data 云端发过来的数据 - * @param remotePort 云端程序监听的UDP端口号 - */ -- (void)onReceiveData:(NSData *)data fromRemotePort:(int)remotePort; -@end - - -@interface TCGCustomTransChannel : NSObject - -@property(nonatomic, weak) id delegate; -@property(nonatomic, copy, readonly) NSString *channelLabel; -@property(nonatomic, assign, readonly) int remoteUdpPort; - -/*! - * 向云端程序发送二进制数据 - * @discussion 一次最多能发送1200bytes的数据 - * @return 发送状态。0发送成功,-1 数据超过长度, -2 当前通道未连接成功 - */ -- (int)sendData:(NSData *)data; - -/*! - * 关闭通道 - */ -- (void)close; - -@end diff --git a/SDK/TCGSDK.framework/Headers/TCGGameController.h b/SDK/TCGSDK.framework/Headers/TCGGameController.h deleted file mode 100644 index 44181ca..0000000 --- a/SDK/TCGSDK.framework/Headers/TCGGameController.h +++ /dev/null @@ -1,182 +0,0 @@ -// -// TCGGameController.h -// TCGSDK -// -// Created by LyleYu on 2020/12/27. -// Copyright © 2021 Tencent. All rights reserved. -// - -#import -#import -#import - -@class TCGVirtualMouseCursor; - -typedef void(^tBoolFinishBlk)(BOOL isCapsLock, NSError *error); - -@protocol TCGGameControllerDelegate - -@optional -/*! - * 鼠标本地绘制模式下,云端实时下发鼠标游标的图片 - * @param image 游标指针的图片 - * @param imageFrame 游标的位置。视频源的坐标系,本地应用时注意换算 - */ -- (void)onCursorImageUpdated:(UIImage *)image frame:(CGRect)imageFrame; - -/*! - * 云端鼠标显示状态变化 - * @param isVisble YES 当前鼠标可见,NO 不可见 - */ -- (void)onCursorVisibleChanged:(BOOL)isVisble; - -/*! - * 鼠标左键点中了文本输入框 - * @param type 当前文本框的类型或状态 - */ -- (void)onClickedTextField:(TCGTextFieldType)type; - -/*! - * 云端是否禁止客户端的输入 - * @discussion 如云端在尝试自动登陆账号时,会忽略客户端的输入。 - * @param isEnable YES:允许客户端输入, NO:忽略客户端的输入消息 - */ -- (void)onRemoteInputStatus:(BOOL)isEnable; - -/*! -* 云端执行自动登录任务结束(并不识别账号与密码的正确性) -* @discussion 云端在尝试自动登陆时,会忽略客户端的输入。 -* @param status 0:模拟输入动作执行成功,并不代表账号与密码正确。 - -1:模拟输入动作执行失败,只是输入动作执行失败。 -*/ --(void)onAutoLoginFinish:(int)status; - -@end - -/*! TCGGamePlayer的封装类,通过gamePlayer.controller获取实例 - * 为云游的操控提供便捷的接口与回调, - */ -@interface TCGGameController : NSObject - -@property(nonatomic, weak) TCGGamePlayer *weakPlayer; -@property(nonatomic, weak) id controlDelegate; - -/*! - * 清空云端的按键,清除异常卡键的状态。 - */ -- (void)resetRemoteKeycode; - -/*! - * 发送键盘按键消息到云端 - * @param keycode 按键码 - * @param isDown YES 发送按下的消息,NO 发送抬起的消息 - */ -- (void)clickKeyboard:(int)keycode isDown:(BOOL)isDown; - -/*! - * 通知云端启用游戏手柄 - * @param enable YES 发送启用的消息,NO 发送禁用的消息 - * @discussion 需要等onVideoShow回调被触发了,与云端的消息传输通道已创建后,调用才能生效 - */ -- (void)enableVirtualGamepad:(BOOL)enable; - -/*! - * 发送游戏手柄按键消息到云端 - * @param keycode 按键码 - * @param isDown YES 发送按下的消息,NO 发送抬起的消息 - */ -- (void)clickGamepadKey:(int)keycode isDown:(BOOL)isDown; - -/*! - * 转动游戏手柄的(左/右)摇杆 - * @param deltaX 范围[-1, 1],最左端为-1 最右端为 1 - * @param deltaY 范围[-1, 1],最下方为-1 最上方为 1 - * @param isLeft YES:转动左摇杆, NO:转动右摇杆 - */ -- (void)turnJoyStickX:(CGFloat)deltaX y:(CGFloat)deltaY isLeft:(BOOL)isLeft; - -/*! - * 设置鼠标渲染的模式 - * @param mode ,推荐使用本地渲染模式(TCGMouseCursorShowMode_Local) - */ -- (void)setCursorShowMode:(TCGMouseCursorShowMode)mode; - -/*! - * 发送鼠标移动后的绝对坐标消息到云端 - * @param x 绝对坐标值(视频源尺寸范围内) - * @param y 绝对坐标值(视频源尺寸范围内) - */ -- (void)mouseMoveToX:(CGFloat)x y:(CGFloat)y; - -/*! - * 发送鼠标移动的相对变化值到云端 - * @param diffX 坐标变化值 - * @param diffY 坐标变化值 - */ -- (void)mouseDeltaMoveX:(CGFloat)diffX y:(CGFloat)diffY; - -/*! - * 发送鼠标的左右按键消息到云端 - * @param isLeft YES 发送左键消息,NO 发送右键消息 - * @param isDown YES 发送按下的消息,NO 发送抬起的消息 - */ -- (void)clickMouseIsLeft:(BOOL)isLeft isDown:(BOOL)isDown; - -/*! - * 发送鼠标滚轮滚动的消息到云端 - * @param delta 滚动变化值 - */ -- (void)mouseScroll:(CGFloat)delta; - -/*! - * 发送鼠标中键点击的消息到云端 - * @param isDown YES 发送按下的消息,NO 发送抬起的消息 - */ -- (void)clickMouseMiddleKey:(BOOL)isDown; - -/*! - * 按键消息的底层接口,(支持发送消息队列,队列存放json格式的字符串) - * @param touchMessage 按键消息 - */ -- (void)sendKeycodeMessage:(NSDictionary *)touchMessage; - -/*! - * 异步查询云端大小写状态 - * @param finishBlk 异常回调,retCode 查询的结果,0 小写,1 大写, -1 查询超时, -2 查询出错 - */ -- (void)asyncCheckRemoteCapsLock:(void(^)(int retCode))finishBlk; - -/*! - * 将文本内容复制到当前选中的文本框内 - * @param text 想复制的文本内容 - * @param finishBlk 消息发送的结果:0 云端接收到消息,-1 消息传输失败, -2 消息传输超时 - * @discussion 回调返回0,仅表示云端接收到文本内容,输入成功与否取决于当前文本框是否支持复制操作,接口本身无法感知。 - */ -- (void)asyncPasteText:(NSString *)text intoTextFieldWithBlk:(void(^)(int retCode))finishBlk; - -/*! -* 云端自动登录(模拟输入账号与密码) -* @param username 用户名 -* @param passwd 密码 -* @param finishBlk 执行结果回调,retCode: 0 开始自动登录, - -1 当前游戏不支持, - -2 当前窗口不支持, - -3 上一次自动登录未结束, - -4 云端内部错误。 - -9 云端响应超时, - -10 参数错误 -* @discussion 接口回调返回0表明云端开始模拟输入信息,这个过程耗时较长(但超过10秒会触发超时逻辑),在此期间客户端的控制消息会被云端忽略掉。 - 模拟输入动作执行结束后,通过代理onAutoLoginFinish通知执行情况。 -*/ -- (void)asyncAutoLogin:(NSString *)username passwd:(NSString *)passwd finishBlk:(void(^)(int retCode))finishBlk; - -/*! -* 取消当前自动登录操作 -*/ -- (void)cancleAutoLogin; - -/*! -* (手游) 触发云端的返回动作(触发安卓的物理返回键) -*/ -- (void)remoteMobileBackClick; -@end diff --git a/SDK/TCGSDK.framework/Headers/TCGGamePlayer.h b/SDK/TCGSDK.framework/Headers/TCGGamePlayer.h deleted file mode 100644 index bf58c7c..0000000 --- a/SDK/TCGSDK.framework/Headers/TCGGamePlayer.h +++ /dev/null @@ -1,235 +0,0 @@ -// -// TCGGamer.h -// TCGSDK -// -// Created by LyleYu on 2020/12/8. -// Copyright © 2021 Tencent. All rights reserved. -// - -#import -#import -#import -#import - -@class TCGGameController; - -@protocol TCGGamePlayerDelegate -@required -/*! - * 本地资源初始化成功,必选 - * @param localSession 本地信息用于申请云端资源 - */ -- (void)onInitSuccess:(NSString *)localSession; - -/*! - * 本地资源初始化失败,必选 - * @param errorCode 错误码 - * @param errorMsg 内部错误信息 - */ -- (void)onInitFailure:(TCGErrorType)errorCode msg:(NSError *)errorMsg; - -/*! - * 与云端的连接异常,必选。(未成功建立连接,或连接因网络等原因异常断开) - * @param errorCode 错误码 - * @param errorMsg 内部错误信息 - */ -- (void)onConnectionFailure:(TCGErrorType)errorCode msg:(NSError *)errorMsg; - -/*! - * 与云端的连接异常,开始自动重连,必选。 - * @discussion 重连后之前连接的虚拟手柄与鼠标的信息需要重新设置。 - * @param reason 触发重连的原因 - */ -- (void)onStartReConnectWithReason:(TCGErrorType)reason; - -/*! - * 视频流画面尺寸发生变化,(第一次连接成功后在画面显示之前也会回调),必选。 - * @param videoSize 视频源宽高 - */ -- (void)onVideoSizeChanged:(CGSize)videoSize; - -/*! - * (手游)视频画面的朝向发生改变,(进入游戏前也会回调)。 - * @param orientation 视频画面的朝向,UIInterfaceOrientationLandscapeRight 画面内容为横屏,UIInterfaceOrientationPortrait 画面内容为竖屏。 - * @discussion 注意这里的朝向是指画面里的内容是竖屏或横屏内容(可理解为云端手机的朝向),而视频画面的宽高是不会发生改变的。 - */ -- (void)onVideoOrientationChanged:(UIInterfaceOrientation)orientation; - -/*! - * 视频首帧出图(包括重连后出画面),必选。 - */ -- (void)onVideoShow; - -@optional -/*! - * 游戏进程启动成功,用于区别如账号登录窗口等游戏前置窗口(可选)。 - * 回调表明前置窗口已关闭,拉起了游戏主体窗口。(需后台配置来指定主体进程) - */ -- (void)onGameProcessRun; - -// 暂未实现 -//- (void)onReceiveTransChannel:(NSString *)name data:(NSData *)data; - -@end - -@protocol TCGGameArchiveDelegate -@optional -/*! - * 下载存档的状态回调 - * @param status 状态:0: 加载存档成功; 1: 下载存档失败; 2: 校验存档失败;3: 解压存档失败; 4: 其他错误; 5: 下载中, loaded_szie表示下载的字节数 - * @param infoDic 存档处理的细节信息,字典key详情见官方wiki - */ -- (void)onLoadStatusChanged:(int)status allInfo:(NSDictionary *)infoDic; - -/*! - * 保存存档的状态回调 - * @param status 状态:0: 保存成功; 1: 保存失败; 2: 校验存档失败;3: 其他错误; 4: 上传中,saved_size表示保存的字节数; 5: 存档没找到; 6: 存档操作太频繁 - * @param infoDic 存档处理的细节信息,字典key详情见官方wiki - */ -- (void)onSaveStatusChanged:(int)status allInfo:(NSDictionary *)infoDic; - -@end - -#pragma mark --- SDK云游基础类,提供云游能力 --- -@interface TCGGamePlayer : NSObject - -@property(nonatomic, weak) id delegate; -@property(nonatomic, weak) id archiveDelegate; -@property(nonatomic, strong, readonly) TCGGameController *gameController; - -/*! - * 初始化本地资源,异步回调结果 - * @param params 选填,预留暂未启用 - * @param listener 必填,player的代理,监听关键事件的回调 - */ -- (instancetype )initWithParams:(NSDictionary *)params andDelegate:(id)listener; - -/*! - * 开始与云端建立连接 - * @param remoteSession 业务后台请求到的云端session信息 - * @param error 错误返回 - */ -- (BOOL)startGameWithRemoteSession:(NSString *)remoteSession error:(NSError **)error; - -/*! - * 结束游戏,释放本地资源。 - * @discussion 云端资源在心跳断开90秒后自动释放,立即释放需业务后台主动调用接口。 - */ -- (void)stopGame; - -/*! - * 重启云端的游戏应用程序 - */ -- (void)restartGame; - -/*! - * 半退游戏,与云端的连接不主动断开,云端停止发送音视频数据。 - * @discussion 云端游戏进程不暂停。 - * 与云端的连接,只是不主动断开,若因网络等原因断开后不触发自动重连 - * @param doPause YES 半退游戏,NO 继续游戏 - */ -- (void)pauseResumeGame:(BOOL)doPause; - -/*! - * 设置游戏视频的输出编码码率和帧率 - * @param minBitrate 范围[1*1000,15*1000],单位Kbps - * @param maxBitrate 范围[1*1000,15*1000],单位Kbps - * @param fps 范围[10,60],单位帧; - */ -- (void)setStreamBitrateMix:(UInt32)minBitrate max:(UInt32)maxBitrate fps:(int)fps; - -/*! - * 设置远端声音的增益系数,默认为1.0保持源音量不变,2.0音量放大一倍 - * @param scale [0.0 ~ 10.0] - * @discussion 过度放大声音,会引起失真 - */ -- (void)setVolumeScale:(float)scale; - -/*! - * 设置连接超时时长,在连接开始前设置才有效,默认10秒 - * @param timeout 设置从连接远端开始到出画面的超时时长 - */ -- (void)setConnectTimeout:(NSTimeInterval)timeout; - -/*! - * 获取视频渲染的图层 - * @return 视频视图 UIView - */ -- (UIView *)videoView; - -/*! - * 视频图层是否支持双指手势(放大、拖动) - * @discussion 当前只支持放大视图,当尝试缩小时可恢复成最初的样子。 - * 双指拖动时,可将视图拖移出屏幕 - * @param isEnable YES, 支持双指操作(放大、拖动);NO, 关闭手势识别。默认关闭 - */ -- (void)setVideoViewEnablePinch:(BOOL)isEnable; - -/*! -* 设置videoView在父视图上拖动的边缘间距,限制videoView不拖出视图。 -* @param insets 指定边缘间距。默认(100, 50, 50, 100) -* @discussion 正值表示更接近矩形中心的边距,而负值表示远离中心的边距。 -*/ -- (void)setVideoViewInsets:(UIEdgeInsets)insets; - -/*! - * 将视频图层恢复成缩放/拖动前的状态 - */ -- (void)resetVideoViewFrame; - -/*! - * 获取视频图层当前的放大系数 - * @return 放大系数, 1.0表示没有缩放 - */ -- (CGFloat)videoViewScale; - -/*! - * (手游) 获取视频画面内容的朝向 - * @return 画面内容的朝向,UIInterfaceOrientationLandscapeRight 或 UIInterfaceOrientationPortrait - */ -- (UIInterfaceOrientation)videoOrientation; - -/*! - * 获取当前的统计信息 - * @return 信息字典NSDictionary - */ -- (NSDictionary *)currentStatisReport; - -/*! - * 修改云端桌面的分辨率,仅云端为PC Windows应用支持。修改后云端桌面的分辨率会改变为目标分辨率大小。 - * 如果客户端的gameView大小不变,修改分辨率后画面会有一定的拉伸/收缩。 - * @param width 需要修改到的目标云端桌面宽度 - * @param height 需要修改到的目标云端桌面高度 - */ -- (void)setRemoteDesktopResolution:(int)width videoheight:(int)height; - -/*! - * 创建一个能与云端程序通讯的通道,最多允许存在三个通道。 - * @param remotePort 云端程序的UDP端口号 - * @param channelDelegate 通讯对象的代理,详情见TCGCustomTransChannelDelegate - * @return TCGCustomTransChannel 通讯对象 - * @discussion 异步执行,通过TCGCustomTransChannelDelegate返回结果 - */ -- (TCGCustomTransChannel *)openCustomTransChannel:(int)remotePort delegate:(id)channelDelegate; -@end - -#pragma mark --- 日志接口 --- -@protocol TCGLogDelegate -@required -/*! - 日志打印回调接口 - @param logLevel 日志打印级别 - @param log log - */ -- (void)logWithLevel:(TCGLogLevel)logLevel log:(NSString *)log; -@end - -@interface TCGGamePlayer(Logger) -/*! - * 设置日志回调接收者及过滤等级 - * @param logger 日志回调代理 - * @param minLevel 最低过滤日志等级 - */ -+ (void)setLogger:(id)logger withMinLevel:(TCGLogLevel)minLevel; - -@end diff --git a/SDK/TCGSDK.framework/Headers/TCGRemoteTouchScreen.h b/SDK/TCGSDK.framework/Headers/TCGRemoteTouchScreen.h deleted file mode 100644 index 886447d..0000000 --- a/SDK/TCGSDK.framework/Headers/TCGRemoteTouchScreen.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// TCGRemoteTouchScreen.h -// tcgsdk -// -// Created by LyleYu on 2021/3/4. -// Copyright © 2021 Tencent. All rights reserved. -// - -#import -#import - -@class TCGGameController; - -@interface TCGRemoteTouchScreen : UIView - -- (instancetype)initWithFrame:(CGRect)frame controller:(TCGGameController *)controller; - -@end diff --git a/SDK/TCGSDK.framework/Headers/TCGSDK.h b/SDK/TCGSDK.framework/Headers/TCGSDK.h deleted file mode 100644 index 31a026d..0000000 --- a/SDK/TCGSDK.framework/Headers/TCGSDK.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// tcgsdk.h -// tcgsdk -// -// Created by LyleYu on 2020/12/17. -// Copyright © 2021 Tencent. All rights reserved. -// - -#import - -//! Project version number for tcgsdk. -FOUNDATION_EXPORT double tcgsdkVersionNumber; - -//! Project version string for tcgsdk. -FOUNDATION_EXPORT const unsigned char tcgsdkVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import -#import -#import -#import -#import -#import -#import diff --git a/SDK/TCGSDK.framework/Headers/TCGSdkConst.h b/SDK/TCGSDK.framework/Headers/TCGSdkConst.h deleted file mode 100644 index d4c15a3..0000000 --- a/SDK/TCGSDK.framework/Headers/TCGSdkConst.h +++ /dev/null @@ -1,114 +0,0 @@ -// -// TCGSdkConst.h -// Pods -// -// Created by LyleYu on 2020/12/8. -// Copyright © 2021 Tencent. All rights reserved. -// - -extern const NSString *TCGSDKVersion; - -typedef NS_ENUM(NSUInteger, TCGLogLevel){ - TCGLogLevelDebug, - TCGLogLevelInfo, - TCGLogLevelWarning, - TCGLogLevelError, - TCGLogLevelNone, -}; - -/*! 单次透传二进制数据的最大字节数 */ -static int gTransCustomDataMaxLength = 1200; -/*! 最多同时支持创建的透传通道个数 */ -static int gTransCustomDataChannelNum = 3; - -typedef NS_ENUM(NSInteger, TCGErrorType) { - TCG_OK = 0, - - /*! 系统繁忙,请稍后重试 **/ - INIT_ERROR_SYS_BUSY = 1, - /*! 票据不合法 **/ - INIT_ERROR_TICKET_ILLEGAL = 2, - /*! 我们建议您使用超过10Mbps的带宽以完美体验腾讯云云游戏 **/ - INIT_ERROR_INEFFICIENT_BANDWIDTH = 3, - /*! 资源不足,请稍后重试 **/ - INIT_ERROR_UNDER_RESOURCE = 4, - /*! 票据失效 **/ - INIT_ERROR_TICKET_EXPIRED = 5, - /*! SDP错误信息错误 **/ - INIT_ERROR_INVALID_SPD = 6, - /*! 游戏拉起失败 **/ - INIT_ERROR_LAUNCH_GAME_ERROR = 7, - /*! 下载用户游戏存档失败 **/ - INIT_ERROR_GET_ARCHIVE_FAILED = 8, - - /*! 设置远端SDP异常 **/ - CONN_ERROR_SET_REMOTE_SDP_FAILED = 10000, - /*! 设置本地SDP异常 **/ - CONN_ERROR_SET_LOCAL_SDP_FAILED = 10001, - /*! 节点连接异常 **/ - CONN_ERROR_PEER_CONNECTION_FAILED = 10002, - /*! 云API调了stopGame **/ - CONN_ERROR_USER_LOGOUT = 10003, - /*! 用户已在其他设备登录 **/ - CONN_ERROR_DUPLICATE_CONNECTION = 10004, - /*! 云端主动关闭连接 **/ - CONN_ERROR_REMOTE_CLOSE = 10008, // 跟安卓靠齐 - /*! 连接云端超时未出画面 **/ - CONN_ERROR_VIDEO_TIMEOUT = 10009, - - /*! 连接未断开但帧率为0 **/ - CONN_ERROR_NO_VIDEO_FRAME = 10020, // 安卓现在没有相应的错误码,占用 - /*! 云端响应超时*/ - CONN_ERROR_REPLY_TIMEOUT = 10021, // 安卓现在没有相应的错误码,占用 - /*! 玩家主动操作退出游戏 */ - CONN_CLOSE_NORMAL = 19000, - /*! 玩家主动操作重新连接游戏 */ - CONN_RECONNECT_BYUSER = 19001, - - ERROR_UNKNOWN = 99999 -}; - -typedef NS_ENUM(NSInteger, TCGMouseCursorShowMode) { - /*! 客户端自行渲染鼠标 **/ - TCGMouseCursorShowMode_Custom = 0, - /*! 云端下发鼠标图片,由客户端渲染 **/ - TCGMouseCursorShowMode_Local = 1, - /*! 云端画面内渲染鼠标图片 **/ - TCGMouseCursorShowMode_Remote = 2 -}; - -typedef NS_ENUM(NSInteger, TCGMouseCursorTouchMode) { - /*! 鼠标跟随手指移动,点击可以单击按键 */ - TCGMouseCursorTouchMode_AbsoluteTouch= 0, - /*! 手指滑动控制鼠标相对移动 - * 轻触触发鼠标左键 - * 长按触发按点击鼠标左键, 可以拖动 - * 滑动仅触发鼠标移动 - **/ - TCGMouseCursorTouchMode_RelativeTouch = 1, - /*! 鼠标在相对位置移动,不触发点击事件 */ - TCGMouseCursorTouchMode_RelativeOnly = 2 -}; - -typedef NS_ENUM(NSInteger, TCGTextFieldType) { - /*! 鼠标左键点击了一个普通的文本框 */ - TCGTextFieldType_Normal = 0, - /*! 鼠标左键点击了一个支持自动登录的文本框 */ - TCGTextFieldType_AutoLogin = 1, - /*! 鼠标左键点击了文本框,但当前状态为禁止用户输入(如后台正在模拟自动登录) */ - TCGTextFieldType_Disable = 99, - - TCGTextFieldType_Unknown = -1 -}; - -typedef enum : NSInteger { - TCGNetwork_NotReachable = 0, - TCGNetwork_Wifi = 1, - TCGNetwork_2G = 2, - TCGNetwork_3G = 3, - TCGNetwork_4G = 4, - TCGNetwork_5G = 5, - TCGNetwork_Unknown = 9, -} TCGNetworkStatus; - -typedef void(^TCGMsgHandleBlk)(NSError *error, NSDictionary *msg); diff --git a/SDK/TCGSDK.framework/Headers/TCGVirtualMouseCursor.h b/SDK/TCGSDK.framework/Headers/TCGVirtualMouseCursor.h deleted file mode 100644 index afce24c..0000000 --- a/SDK/TCGSDK.framework/Headers/TCGVirtualMouseCursor.h +++ /dev/null @@ -1,63 +0,0 @@ -// -// TCGVirtualMouseCursor.h -// tcgsdk -// -// Created by LyleYu on 2020/12/22. -// Copyright © 2021 Tencent. All rights reserved. -// - -#import -#import - -@class TCGGameController; - -// 鼠标类,只支持单指滑动操作 -@interface TCGVirtualMouseCursor : UIView -- (instancetype)initWithFrame:(CGRect)frame - controller:(TCGGameController *)controller; - -/*! - * 设置视频源尺寸大小,用于换算坐标值(版本1.1.1 废弃) - * @param videoSize 云端视频编码输出的尺寸 - */ -- (void)setVideoSize:(CGSize)videoSize DEPRECATED_MSG_ATTRIBUTE(); - -/*! - * 设置鼠标的操控模式 - * @param mode 详情见TCGMouseCursorTouchMode的定义 - */ -- (void)setCursorTouchMode:(TCGMouseCursorTouchMode)mode; - -/*! - * 设置鼠标是否可见 - * @param isShow YES 显示,NO 隐藏 - */ -- (void)setCursorIsShow:(BOOL)isShow; - -/*! - * 设置鼠标移动时的灵敏度,在相对移动模式下有效 - * @param sensitive 默认1.0与手动滑动的幅度相同 - */ -- (void)setCursorSensitive:(CGFloat)sensitive; - -/*! - * 设置鼠标的默认图标,在本地渲染模式 下有效 - * @param image 游标指针图标 - * @param remoteFrame 游标view的大小位置,视频源坐标系中 - */ -- (void)setCursorImage:(UIImage *)image andRemoteFrame:(CGRect)remoteFrame; - -/*! - * 设置点击时触发鼠标的点击类型,默认触发左键点击 - * @param isLeft YES,触发鼠标左键;NO,触发鼠标右键 - */ -- (void)setClickTypeIsLeft:(BOOL)isLeft; - -/*! -* 以接口的方式移动鼠标指针(本地渲染模式下有效) -* @param diffX 在当前鼠标视图的X轴上,鼠标指针移动diffX个point. -* @param diffY 在当前鼠标视图的Y轴上,鼠标指针移动diffY个point. -*/ -- (void)moveCursorWithDiffX:(CGFloat)diffX diffY:(CGFloat)diffY; - -@end diff --git a/SDK/TCGSDK.framework/Info.plist b/SDK/TCGSDK.framework/Info.plist deleted file mode 100644 index 05f9e86..0000000 Binary files a/SDK/TCGSDK.framework/Info.plist and /dev/null differ diff --git a/SDK/TCGSDK.framework/Modules/module.modulemap b/SDK/TCGSDK.framework/Modules/module.modulemap deleted file mode 100644 index c5e180c..0000000 --- a/SDK/TCGSDK.framework/Modules/module.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module TCGSDK { - umbrella header "TCGSDK.h" - - export * - module * { export * } -} diff --git a/SDK/TCGSDK.framework/TCGSDK b/SDK/TCGSDK.framework/TCGSDK deleted file mode 100755 index 2001ffc..0000000 Binary files a/SDK/TCGSDK.framework/TCGSDK and /dev/null differ diff --git a/SDK/TCGSDK.framework/button-delete.png b/SDK/TCGSDK.framework/button-delete.png deleted file mode 100644 index 30f4696..0000000 Binary files a/SDK/TCGSDK.framework/button-delete.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/editor_main_close.png b/SDK/TCGSDK.framework/editor_main_close.png deleted file mode 100644 index da68c8b..0000000 Binary files a/SDK/TCGSDK.framework/editor_main_close.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/Root.plist b/SDK/TCGSDK.framework/tcgvkey.bundle/Root.plist deleted file mode 100644 index b1b6fea..0000000 --- a/SDK/TCGSDK.framework/tcgvkey.bundle/Root.plist +++ /dev/null @@ -1,61 +0,0 @@ - - - - - StringsTable - Root - PreferenceSpecifiers - - - Type - PSGroupSpecifier - Title - Group - - - Type - PSTextFieldSpecifier - Title - Name - Key - name_preference - DefaultValue - - IsSecure - - KeyboardType - Alphabet - AutocapitalizationType - None - AutocorrectionType - No - - - Type - PSToggleSwitchSpecifier - Title - Enabled - Key - enabled_preference - DefaultValue - - - - Type - PSSliderSpecifier - Key - slider_preference - DefaultValue - 0.5 - MinimumValue - 0 - MaximumValue - 1 - MinimumValueImage - - MaximumValueImage - - - - - diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/en.lproj/Root.strings b/SDK/TCGSDK.framework/tcgvkey.bundle/en.lproj/Root.strings deleted file mode 100644 index 8cd87b9..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/en.lproj/Root.strings and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_button_rename_close.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_button_rename_close.png deleted file mode 100644 index dcd7c9d..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_button_rename_close.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_inner_normal.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_inner_normal.png deleted file mode 100644 index 272a51f..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_inner_normal.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_inner_pressed.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_inner_pressed.png deleted file mode 100644 index e1bb3bb..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_inner_pressed.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_inner_xbox_normal.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_inner_xbox_normal.png deleted file mode 100644 index e9410b3..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_inner_xbox_normal.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_inner_xbox_pressed.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_inner_xbox_pressed.png deleted file mode 100644 index 107e77c..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_inner_xbox_pressed.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_outer_updown.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_outer_updown.png deleted file mode 100644 index 7b382f1..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_outer_updown.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_outer_wdsa.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_outer_wdsa.png deleted file mode 100644 index 3f50546..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_outer_wdsa.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_outer_xbox.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_outer_xbox.png deleted file mode 100644 index 35fad24..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_dpad_outer_xbox.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_edit_process_btn.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_edit_process_btn.png deleted file mode 100644 index 61555db..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_edit_process_btn.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_edit_rename.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_edit_rename.png deleted file mode 100644 index c3a4598..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_edit_rename.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_edit_return.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_edit_return.png deleted file mode 100644 index 000d071..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_edit_return.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_gamepad_select_normal.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_gamepad_select_normal.png deleted file mode 100644 index 487555e..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_gamepad_select_normal.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_gamepad_select_pressed.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_gamepad_select_pressed.png deleted file mode 100644 index d401f32..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_gamepad_select_pressed.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_gamepad_start_normal.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_gamepad_start_normal.png deleted file mode 100644 index b265e47..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_gamepad_start_normal.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_gamepad_start_pressed.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_gamepad_start_pressed.png deleted file mode 100644 index cc9ba94..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_gamepad_start_pressed.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_down_normal.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_down_normal.png deleted file mode 100644 index 37183de..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_down_normal.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_down_pressed.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_down_pressed.png deleted file mode 100644 index ceb363d..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_down_pressed.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_left_normal.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_left_normal.png deleted file mode 100644 index e207099..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_left_normal.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_left_pressed.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_left_pressed.png deleted file mode 100644 index f273e54..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_left_pressed.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_middle_normal.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_middle_normal.png deleted file mode 100644 index 3371815..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_middle_normal.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_middle_pressed.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_middle_pressed.png deleted file mode 100644 index 27621f7..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_middle_pressed.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_right_normal.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_right_normal.png deleted file mode 100644 index aa5d726..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_right_normal.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_right_pressed.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_right_pressed.png deleted file mode 100644 index 4149a66..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_right_pressed.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_up_normal.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_up_normal.png deleted file mode 100644 index 42782cb..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_up_normal.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_up_pressed.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_up_pressed.png deleted file mode 100644 index 7e7aa15..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_mouse_up_pressed.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_normal_btn_normal.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_normal_btn_normal.png deleted file mode 100644 index 84654d7..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_normal_btn_normal.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_normal_btn_pressed.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_normal_btn_pressed.png deleted file mode 100644 index 8979437..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_normal_btn_pressed.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_a_normal.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_a_normal.png deleted file mode 100644 index dfd1922..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_a_normal.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_a_pressed.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_a_pressed.png deleted file mode 100644 index 344c383..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_a_pressed.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_b_normal.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_b_normal.png deleted file mode 100644 index 5c4f47f..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_b_normal.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_b_pressed.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_b_pressed.png deleted file mode 100644 index f407f1e..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_b_pressed.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_x_normal.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_x_normal.png deleted file mode 100644 index dbe76bf..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_x_normal.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_x_pressed.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_x_pressed.png deleted file mode 100644 index 9f24441..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_x_pressed.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_y_normal.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_y_normal.png deleted file mode 100644 index 13eec9e..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_y_normal.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_y_pressed.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_y_pressed.png deleted file mode 100644 index 650a266..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_ps4_y_pressed.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_select_xbox_bgview.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_select_xbox_bgview.png deleted file mode 100644 index 0af99f3..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_select_xbox_bgview.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_stick_left_normal.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_stick_left_normal.png deleted file mode 100644 index 6606052..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_stick_left_normal.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_stick_left_pressed.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_stick_left_pressed.png deleted file mode 100644 index 3f36508..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_stick_left_pressed.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_stick_outer_xbox.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_stick_outer_xbox.png deleted file mode 100644 index c0844f4..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_stick_outer_xbox.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_stick_right_normal.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_stick_right_normal.png deleted file mode 100644 index 6c3188f..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_stick_right_normal.png and /dev/null differ diff --git a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_stick_right_pressed.png b/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_stick_right_pressed.png deleted file mode 100644 index 6d6aa79..0000000 Binary files a/SDK/TCGSDK.framework/tcgvkey.bundle/tcg_stick_right_pressed.png and /dev/null differ diff --git a/SDK/TCGVKey.framework/Headers/TCGVKeyGamepad.h b/SDK/TCGVKey.framework/Headers/TCGVKeyGamepad.h deleted file mode 100644 index 73a21c2..0000000 --- a/SDK/TCGVKey.framework/Headers/TCGVKeyGamepad.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// TCGVKeyGamepad.h -// tcgsdk -// -// Created by LyleYu on 2021/9/17. -// Copyright © 2021 Tencent. All rights reserved. -// - -#import - -@class TCGGameController; - -@interface TCGVKeyGamepad : UIView - -@property(nonatomic, weak) TCGGameController *weakController; - -- (instancetype)initWithController:(TCGGameController *)controller; - -/*! 创建一个虚拟按键视图 -* @param frame 虚拟按键视图的frame -* @param controller tcgsdk句柄 -*/ -- (instancetype)initWithFrame:(CGRect)frame controller:(TCGGameController *)controller; - -/*! 加载虚拟按键布局,生成按键 -* @param cfg 布局文件的内容 -* @discussion 布局文件跟安卓、JS SDK通用。 -*/ -- (void)showKeyGamepad:(NSString *)cfg; - -/*! 启用当前的按键布局是否需要主动通知云端 -* @return 是否需要主动通知云端启用按键布局。 -* @discussion 目前游戏手柄类按键(如XBox的手柄按键)在启用前要主动调用SDK的enableVirtualGamepad接口 -*/ -- (BOOL)needConnected; - -@end diff --git a/SDK/TCGVKey.framework/Info.plist b/SDK/TCGVKey.framework/Info.plist deleted file mode 100644 index 058eb58..0000000 Binary files a/SDK/TCGVKey.framework/Info.plist and /dev/null differ diff --git a/SDK/TCGVKey.framework/TCGVKey b/SDK/TCGVKey.framework/TCGVKey deleted file mode 100755 index 7e7bae7..0000000 Binary files a/SDK/TCGVKey.framework/TCGVKey and /dev/null differ diff --git a/SDK/TWEBRTC.framework/Headers/RTCAudioSession.h b/SDK/TWEBRTC.framework/Headers/RTCAudioSession.h deleted file mode 100644 index b5bba2f..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCAudioSession.h +++ /dev/null @@ -1,258 +0,0 @@ -/* - * Copyright 2016 The WebRTC Project Authors. All rights reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -extern NSString *const kRTCAudioSessionErrorDomain; -/** Method that requires lock was called without lock. */ -extern NSInteger const kRTCAudioSessionErrorLockRequired; -/** Unknown configuration error occurred. */ -extern NSInteger const kRTCAudioSessionErrorConfiguration; - -@class RTCAudioSession; -@class RTCAudioSessionConfiguration; - -// Surfaces AVAudioSession events. WebRTC will listen directly for notifications -// from AVAudioSession and handle them before calling these delegate methods, -// at which point applications can perform additional processing if required. -RTC_OBJC_EXPORT -@protocol RTCAudioSessionDelegate - -@optional -/** Called on a system notification thread when AVAudioSession starts an - * interruption event. - */ -- (void)audioSessionDidBeginInterruption:(RTCAudioSession *)session; - -/** Called on a system notification thread when AVAudioSession ends an - * interruption event. - */ -- (void)audioSessionDidEndInterruption:(RTCAudioSession *)session - shouldResumeSession:(BOOL)shouldResumeSession; - -/** Called on a system notification thread when AVAudioSession changes the - * route. - */ -- (void)audioSessionDidChangeRoute:(RTCAudioSession *)session - reason:(AVAudioSessionRouteChangeReason)reason - previousRoute:(AVAudioSessionRouteDescription *)previousRoute; - -/** Called on a system notification thread when AVAudioSession media server - * terminates. - */ -- (void)audioSessionMediaServerTerminated:(RTCAudioSession *)session; - -/** Called on a system notification thread when AVAudioSession media server - * restarts. - */ -- (void)audioSessionMediaServerReset:(RTCAudioSession *)session; - -// TODO(tkchin): Maybe handle SilenceSecondaryAudioHintNotification. - -- (void)audioSession:(RTCAudioSession *)session didChangeCanPlayOrRecord:(BOOL)canPlayOrRecord; - -/** Called on a WebRTC thread when the audio device is notified to begin - * playback or recording. - */ -- (void)audioSessionDidStartPlayOrRecord:(RTCAudioSession *)session; - -/** Called on a WebRTC thread when the audio device is notified to stop - * playback or recording. - */ -- (void)audioSessionDidStopPlayOrRecord:(RTCAudioSession *)session; - -/** Called when the AVAudioSession output volume value changes. */ -- (void)audioSession:(RTCAudioSession *)audioSession didChangeOutputVolume:(float)outputVolume; - -/** Called when the audio device detects a playout glitch. The argument is the - * number of glitches detected so far in the current audio playout session. - */ -- (void)audioSession:(RTCAudioSession *)audioSession - didDetectPlayoutGlitch:(int64_t)totalNumberOfGlitches; - -/** Called when the audio session is about to change the active state. - */ -- (void)audioSession:(RTCAudioSession *)audioSession willSetActive:(BOOL)active; - -/** Called after the audio session sucessfully changed the active state. - */ -- (void)audioSession:(RTCAudioSession *)audioSession didSetActive:(BOOL)active; - -/** Called after the audio session failed to change the active state. - */ -- (void)audioSession:(RTCAudioSession *)audioSession - failedToSetActive:(BOOL)active - error:(NSError *)error; - -@end - -/** This is a protocol used to inform RTCAudioSession when the audio session - * activation state has changed outside of RTCAudioSession. The current known use - * case of this is when CallKit activates the audio session for the application - */ -RTC_OBJC_EXPORT -@protocol RTCAudioSessionActivationDelegate - -/** Called when the audio session is activated outside of the app by iOS. */ -- (void)audioSessionDidActivate:(AVAudioSession *)session; - -/** Called when the audio session is deactivated outside of the app by iOS. */ -- (void)audioSessionDidDeactivate:(AVAudioSession *)session; - -@end - -/** Proxy class for AVAudioSession that adds a locking mechanism similar to - * AVCaptureDevice. This is used to that interleaving configurations between - * WebRTC and the application layer are avoided. - * - * RTCAudioSession also coordinates activation so that the audio session is - * activated only once. See |setActive:error:|. - */ -RTC_OBJC_EXPORT -@interface RTCAudioSession : NSObject - -/** Convenience property to access the AVAudioSession singleton. Callers should - * not call setters on AVAudioSession directly, but other method invocations - * are fine. - */ -@property(nonatomic, readonly) AVAudioSession *session; - -/** Our best guess at whether the session is active based on results of calls to - * AVAudioSession. - */ -@property(nonatomic, readonly) BOOL isActive; -/** Whether RTCAudioSession is currently locked for configuration. */ -@property(nonatomic, readonly) BOOL isLocked; - -/** If YES, WebRTC will not initialize the audio unit automatically when an - * audio track is ready for playout or recording. Instead, applications should - * call setIsAudioEnabled. If NO, WebRTC will initialize the audio unit - * as soon as an audio track is ready for playout or recording. - */ -@property(nonatomic, assign) BOOL useManualAudio; - -/** This property is only effective if useManualAudio is YES. - * Represents permission for WebRTC to initialize the VoIP audio unit. - * When set to NO, if the VoIP audio unit used by WebRTC is active, it will be - * stopped and uninitialized. This will stop incoming and outgoing audio. - * When set to YES, WebRTC will initialize and start the audio unit when it is - * needed (e.g. due to establishing an audio connection). - * This property was introduced to work around an issue where if an AVPlayer is - * playing audio while the VoIP audio unit is initialized, its audio would be - * either cut off completely or played at a reduced volume. By preventing - * the audio unit from being initialized until after the audio has completed, - * we are able to prevent the abrupt cutoff. - */ -@property(nonatomic, assign) BOOL isAudioEnabled; - -// Proxy properties. -@property(readonly) NSString *category; -@property(readonly) AVAudioSessionCategoryOptions categoryOptions; -@property(readonly) NSString *mode; -@property(readonly) BOOL secondaryAudioShouldBeSilencedHint; -@property(readonly) AVAudioSessionRouteDescription *currentRoute; -@property(readonly) NSInteger maximumInputNumberOfChannels; -@property(readonly) NSInteger maximumOutputNumberOfChannels; -@property(readonly) float inputGain; -@property(readonly) BOOL inputGainSettable; -@property(readonly) BOOL inputAvailable; -@property(readonly, nullable) NSArray *inputDataSources; -@property(readonly, nullable) AVAudioSessionDataSourceDescription *inputDataSource; -@property(readonly, nullable) NSArray *outputDataSources; -@property(readonly, nullable) AVAudioSessionDataSourceDescription *outputDataSource; -@property(readonly) double sampleRate; -@property(readonly) double preferredSampleRate; -@property(readonly) NSInteger inputNumberOfChannels; -@property(readonly) NSInteger outputNumberOfChannels; -@property(readonly) float outputVolume; -@property(readonly) NSTimeInterval inputLatency; -@property(readonly) NSTimeInterval outputLatency; -@property(readonly) NSTimeInterval IOBufferDuration; -@property(readonly) NSTimeInterval preferredIOBufferDuration; - -/** - When YES, calls to -setConfiguration:error: and -setConfiguration:active:error: ignore errors in - configuring the audio session's "preferred" attributes (e.g. preferredInputNumberOfChannels). - Typically, configurations to preferred attributes are optimizations, and ignoring this type of - configuration error allows code flow to continue along the happy path when these optimization are - not available. The default value of this property is NO. - */ -@property(nonatomic) BOOL ignoresPreferredAttributeConfigurationErrors; - -/** Default constructor. */ -+ (instancetype)sharedInstance; -- (instancetype)init NS_UNAVAILABLE; - -/** Adds a delegate, which is held weakly. */ -- (void)addDelegate:(id)delegate; -/** Removes an added delegate. */ -- (void)removeDelegate:(id)delegate; - -/** Request exclusive access to the audio session for configuration. This call - * will block if the lock is held by another object. - */ -- (void)lockForConfiguration; -/** Relinquishes exclusive access to the audio session. */ -- (void)unlockForConfiguration; - -/** If |active|, activates the audio session if it isn't already active. - * Successful calls must be balanced with a setActive:NO when activation is no - * longer required. If not |active|, deactivates the audio session if one is - * active and this is the last balanced call. When deactivating, the - * AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation option is passed to - * AVAudioSession. - */ -- (BOOL)setActive:(BOOL)active error:(NSError **)outError; - -// The following methods are proxies for the associated methods on -// AVAudioSession. |lockForConfiguration| must be called before using them -// otherwise they will fail with kRTCAudioSessionErrorLockRequired. - -- (BOOL)setCategory:(NSString *)category - withOptions:(AVAudioSessionCategoryOptions)options - error:(NSError **)outError; -- (BOOL)setMode:(NSString *)mode error:(NSError **)outError; -- (BOOL)setInputGain:(float)gain error:(NSError **)outError; -- (BOOL)setPreferredSampleRate:(double)sampleRate error:(NSError **)outError; -- (BOOL)setPreferredIOBufferDuration:(NSTimeInterval)duration error:(NSError **)outError; -- (BOOL)setPreferredInputNumberOfChannels:(NSInteger)count error:(NSError **)outError; -- (BOOL)setPreferredOutputNumberOfChannels:(NSInteger)count error:(NSError **)outError; -- (BOOL)overrideOutputAudioPort:(AVAudioSessionPortOverride)portOverride error:(NSError **)outError; -- (BOOL)setPreferredInput:(AVAudioSessionPortDescription *)inPort error:(NSError **)outError; -- (BOOL)setInputDataSource:(AVAudioSessionDataSourceDescription *)dataSource - error:(NSError **)outError; -- (BOOL)setOutputDataSource:(AVAudioSessionDataSourceDescription *)dataSource - error:(NSError **)outError; -@end - -@interface RTCAudioSession (Configuration) - -/** Applies the configuration to the current session. Attempts to set all - * properties even if previous ones fail. Only the last error will be - * returned. - * |lockForConfiguration| must be called first. - */ -- (BOOL)setConfiguration:(RTCAudioSessionConfiguration *)configuration error:(NSError **)outError; - -/** Convenience method that calls both setConfiguration and setActive. - * |lockForConfiguration| must be called first. - */ -- (BOOL)setConfiguration:(RTCAudioSessionConfiguration *)configuration - active:(BOOL)active - error:(NSError **)outError; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCAudioSessionConfiguration.h b/SDK/TWEBRTC.framework/Headers/RTCAudioSessionConfiguration.h deleted file mode 100644 index bf3fe59..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCAudioSessionConfiguration.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2016 The WebRTC Project Authors. All rights reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -RTC_EXTERN const int kRTCAudioSessionPreferredNumberOfChannels; -RTC_EXTERN const double kRTCAudioSessionHighPerformanceSampleRate; -RTC_EXTERN const double kRTCAudioSessionLowComplexitySampleRate; -RTC_EXTERN const double kRTCAudioSessionHighPerformanceIOBufferDuration; -RTC_EXTERN const double kRTCAudioSessionLowComplexityIOBufferDuration; - -// Struct to hold configuration values. -RTC_OBJC_EXPORT -@interface RTCAudioSessionConfiguration : NSObject - -@property(nonatomic, strong) NSString *category; -@property(nonatomic, assign) AVAudioSessionCategoryOptions categoryOptions; -@property(nonatomic, strong) NSString *mode; -@property(nonatomic, assign) double sampleRate; -@property(nonatomic, assign) NSTimeInterval ioBufferDuration; -@property(nonatomic, assign) NSInteger inputNumberOfChannels; -@property(nonatomic, assign) NSInteger outputNumberOfChannels; - -/** Initializes configuration to defaults. */ -- (instancetype)init NS_DESIGNATED_INITIALIZER; - -/** Returns the current configuration of the audio session. */ -+ (instancetype)currentConfiguration; -/** Returns the configuration that WebRTC needs. */ -+ (instancetype)webRTCConfiguration; -/** Provide a way to override the default configuration. */ -+ (void)setWebRTCConfiguration:(RTCAudioSessionConfiguration *)configuration; - -+ (BOOL)supportPlayOrRecored; -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCAudioSource.h b/SDK/TWEBRTC.framework/Headers/RTCAudioSource.h deleted file mode 100644 index d1030e3..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCAudioSource.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2016 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCMediaSource.h" - -NS_ASSUME_NONNULL_BEGIN - -RTC_OBJC_EXPORT -@interface RTCAudioSource : RTCMediaSource - -- (instancetype)init NS_UNAVAILABLE; - -// Sets the volume for the RTCMediaSource. |volume| is a gain value in the range -// [0, 10]. -// Temporary fix to be able to modify volume of remote audio tracks. -// TODO(kthelgason): Property stays here temporarily until a proper volume-api -// is available on the surface exposed by webrtc. -@property(nonatomic, assign) double volume; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCAudioTrack.h b/SDK/TWEBRTC.framework/Headers/RTCAudioTrack.h deleted file mode 100644 index 501ef92..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCAudioTrack.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import "RTCMacros.h" -#import "RTCMediaStreamTrack.h" - -NS_ASSUME_NONNULL_BEGIN - -@class RTCAudioSource; - -RTC_OBJC_EXPORT -@interface RTCAudioTrack : RTCMediaStreamTrack - -- (instancetype)init NS_UNAVAILABLE; - -/** The audio source for this audio track. */ -@property(nonatomic, readonly) RTCAudioSource *source; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCCVPixelBuffer.h b/SDK/TWEBRTC.framework/Headers/RTCCVPixelBuffer.h deleted file mode 100644 index 432a382..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCCVPixelBuffer.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2018 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCVideoFrameBuffer.h" - -NS_ASSUME_NONNULL_BEGIN - -/** RTCVideoFrameBuffer containing a CVPixelBufferRef */ -RTC_OBJC_EXPORT -@interface RTCCVPixelBuffer : NSObject - -@property(nonatomic, readonly) CVPixelBufferRef pixelBuffer; -@property(nonatomic, readonly) int cropX; -@property(nonatomic, readonly) int cropY; -@property(nonatomic, readonly) int cropWidth; -@property(nonatomic, readonly) int cropHeight; - -+ (NSSet *)supportedPixelFormats; - -- (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer; -- (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer - adaptedWidth:(int)adaptedWidth - adaptedHeight:(int)adaptedHeight - cropWidth:(int)cropWidth - cropHeight:(int)cropHeight - cropX:(int)cropX - cropY:(int)cropY; - -- (BOOL)requiresCropping; -- (BOOL)requiresScalingToWidth:(int)width height:(int)height; -- (int)bufferSizeForCroppingAndScalingToWidth:(int)width height:(int)height; - -/** The minimum size of the |tmpBuffer| must be the number of bytes returned from the - * bufferSizeForCroppingAndScalingToWidth:height: method. - * If that size is 0, the |tmpBuffer| may be nil. - */ -- (BOOL)cropAndScaleTo:(CVPixelBufferRef)outputPixelBuffer - withTempBuffer:(nullable uint8_t *)tmpBuffer; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCCallbackLogger.h b/SDK/TWEBRTC.framework/Headers/RTCCallbackLogger.h deleted file mode 100644 index 2bce03f..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCCallbackLogger.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2018 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCLogging.h" -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -typedef void (^RTCCallbackLoggerMessageHandler)(NSString *message); -typedef void (^RTCCallbackLoggerMessageAndSeverityHandler)(NSString *message, - RTCLoggingSeverity severity); - -// This class intercepts WebRTC logs and forwards them to a registered block. -// This class is not threadsafe. -RTC_OBJC_EXPORT -@interface RTCCallbackLogger : NSObject - -// The severity level to capture. The default is kRTCLoggingSeverityInfo. -@property(nonatomic, assign) RTCLoggingSeverity severity; - -// The callback handler will be called on the same thread that does the -// logging, so if the logging callback can be slow it may be a good idea -// to implement dispatching to some other queue. -- (void)start:(nullable RTCCallbackLoggerMessageHandler)handler; -- (void)startWithMessageAndSeverityHandler: - (nullable RTCCallbackLoggerMessageAndSeverityHandler)handler; - -- (void)stop; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCCameraPreviewView.h b/SDK/TWEBRTC.framework/Headers/RTCCameraPreviewView.h deleted file mode 100644 index 17f8d33..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCCameraPreviewView.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2015 The WebRTC Project Authors. All rights reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import -#import - -#import "RTCMacros.h" - -@class AVCaptureSession; - -/** RTCCameraPreviewView is a view that renders local video from an - * AVCaptureSession. - */ -RTC_OBJC_EXPORT -@interface RTCCameraPreviewView : UIView - -/** The capture session being rendered in the view. Capture session - * is assigned to AVCaptureVideoPreviewLayer async in the same - * queue that the AVCaptureSession is started/stopped. - */ -@property(nonatomic, strong) AVCaptureSession* captureSession; - -@end diff --git a/SDK/TWEBRTC.framework/Headers/RTCCameraVideoCapturer.h b/SDK/TWEBRTC.framework/Headers/RTCCameraVideoCapturer.h deleted file mode 100644 index 2b5e56f..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCCameraVideoCapturer.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import -#import - -#import "RTCMacros.h" -#import "RTCVideoCapturer.h" - -NS_ASSUME_NONNULL_BEGIN - -RTC_OBJC_EXPORT -// Camera capture that implements RTCVideoCapturer. Delivers frames to a RTCVideoCapturerDelegate -// (usually RTCVideoSource). -NS_EXTENSION_UNAVAILABLE_IOS("Camera not available in app extensions.") -@interface RTCCameraVideoCapturer : RTCVideoCapturer - -// Capture session that is used for capturing. Valid from initialization to dealloc. -@property(readonly, nonatomic) AVCaptureSession *captureSession; - -// Returns list of available capture devices that support video capture. -+ (NSArray *)captureDevices; -// Returns list of formats that are supported by this class for this device. -+ (NSArray *)supportedFormatsForDevice:(AVCaptureDevice *)device; - -// Returns the most efficient supported output pixel format for this capturer. -- (FourCharCode)preferredOutputPixelFormat; - -// Starts the capture session asynchronously and notifies callback on completion. -// The device will capture video in the format given in the `format` parameter. If the pixel format -// in `format` is supported by the WebRTC pipeline, the same pixel format will be used for the -// output. Otherwise, the format returned by `preferredOutputPixelFormat` will be used. -- (void)startCaptureWithDevice:(AVCaptureDevice *)device - format:(AVCaptureDeviceFormat *)format - fps:(NSInteger)fps - completionHandler:(nullable void (^)(NSError *))completionHandler; -// Stops the capture session asynchronously and notifies callback on completion. -- (void)stopCaptureWithCompletionHandler:(nullable void (^)(void))completionHandler; - -// Starts the capture session asynchronously. -- (void)startCaptureWithDevice:(AVCaptureDevice *)device - format:(AVCaptureDeviceFormat *)format - fps:(NSInteger)fps; -// Stops the capture session asynchronously. -- (void)stopCapture; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCCertificate.h b/SDK/TWEBRTC.framework/Headers/RTCCertificate.h deleted file mode 100644 index 684f4ab..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCCertificate.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2018 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -RTC_OBJC_EXPORT -#ifdef RTC_IOS_BUILD_SYSBOL_RENAME -@interface OBJRTCCertificate : NSObject -#else -@interface RTCCertificate : NSObject -#endif -/** Private key in PEM. */ -@property(nonatomic, readonly, copy) NSString *private_key; - -/** Public key in an x509 cert encoded in PEM. */ -@property(nonatomic, readonly, copy) NSString *certificate; - -/** - * Initialize an RTCCertificate with PEM strings for private_key and certificate. - */ -- (instancetype)initWithPrivateKey:(NSString *)private_key - certificate:(NSString *)certificate NS_DESIGNATED_INITIALIZER; - -- (instancetype)init NS_UNAVAILABLE; - -/** Generate a new certificate for 're' use. - * - * Optional dictionary of parameters. Defaults to KeyType ECDSA if none are - * provided. - * - name: "ECDSA" or "RSASSA-PKCS1-v1_5" - */ -#ifdef RTC_IOS_BUILD_SYSBOL_RENAME -+ (nullable OBJRTCCertificate *)generateCertificateWithParams:(NSDictionary *)params; -#else -+ (nullable RTCCertificate *)generateCertificateWithParams:(NSDictionary *)params; -#endif - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCCodecSpecificInfo.h b/SDK/TWEBRTC.framework/Headers/RTCCodecSpecificInfo.h deleted file mode 100644 index e2ae4ca..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCCodecSpecificInfo.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -/** Implement this protocol to pass codec specific info from the encoder. - * Corresponds to webrtc::CodecSpecificInfo. - */ -RTC_OBJC_EXPORT -@protocol RTCCodecSpecificInfo -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCCodecSpecificInfoH264.h b/SDK/TWEBRTC.framework/Headers/RTCCodecSpecificInfoH264.h deleted file mode 100644 index ece9570..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCCodecSpecificInfoH264.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCCodecSpecificInfo.h" -#import "RTCMacros.h" - -/** Class for H264 specific config. */ -typedef NS_ENUM(NSUInteger, RTCH264PacketizationMode) { - RTCH264PacketizationModeNonInterleaved = 0, // Mode 1 - STAP-A, FU-A is allowed - RTCH264PacketizationModeSingleNalUnit // Mode 0 - only single NALU allowed -}; - -RTC_OBJC_EXPORT -@interface RTCCodecSpecificInfoH264 : NSObject - -@property(nonatomic, assign) RTCH264PacketizationMode packetizationMode; - -@end diff --git a/SDK/TWEBRTC.framework/Headers/RTCConfiguration.h b/SDK/TWEBRTC.framework/Headers/RTCConfiguration.h deleted file mode 100644 index e300c72..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCConfiguration.h +++ /dev/null @@ -1,234 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import -#import "RTCMacros.h" - -#import "RTCCertificate.h" -#import "RTCCryptoOptions.h" - - -@class RTCIceServer; -@class RTCIntervalRange; - -/** - * Represents the ice transport policy. This exposes the same states in C++, - * which include one more state than what exists in the W3C spec. - */ -typedef NS_ENUM(NSInteger, RTCIceTransportPolicy) { - RTCIceTransportPolicyNone, - RTCIceTransportPolicyRelay, - RTCIceTransportPolicyNoHost, - RTCIceTransportPolicyAll -}; - -/** Represents the bundle policy. */ -typedef NS_ENUM(NSInteger, RTCBundlePolicy) { - RTCBundlePolicyBalanced, - RTCBundlePolicyMaxCompat, - RTCBundlePolicyMaxBundle -}; - -/** Represents the rtcp mux policy. */ -typedef NS_ENUM(NSInteger, RTCRtcpMuxPolicy) { RTCRtcpMuxPolicyNegotiate, RTCRtcpMuxPolicyRequire }; - -/** Represents the tcp candidate policy. */ -typedef NS_ENUM(NSInteger, RTCTcpCandidatePolicy) { - RTCTcpCandidatePolicyEnabled, - RTCTcpCandidatePolicyDisabled -}; - -/** Represents the candidate network policy. */ -typedef NS_ENUM(NSInteger, RTCCandidateNetworkPolicy) { - RTCCandidateNetworkPolicyAll, - RTCCandidateNetworkPolicyLowCost -}; - -/** Represents the continual gathering policy. */ -typedef NS_ENUM(NSInteger, RTCContinualGatheringPolicy) { - RTCContinualGatheringPolicyGatherOnce, - RTCContinualGatheringPolicyGatherContinually -}; - -/** Represents the encryption key type. */ -typedef NS_ENUM(NSInteger, RTCEncryptionKeyType) { - RTCEncryptionKeyTypeRSA, - RTCEncryptionKeyTypeECDSA, -}; - -/** Represents the chosen SDP semantics for the RTCPeerConnection. */ -typedef NS_ENUM(NSInteger, RTCSdpSemantics) { - RTCSdpSemanticsPlanB, - RTCSdpSemanticsUnifiedPlan, -}; - -NS_ASSUME_NONNULL_BEGIN - -RTC_OBJC_EXPORT -@interface RTCConfiguration : NSObject - -/** An array of Ice Servers available to be used by ICE. */ -@property(nonatomic, copy) NSArray *iceServers; - -/** An RTCCertificate for 're' use. */ -#ifdef RTC_IOS_BUILD_SYSBOL_RENAME -@property(nonatomic, nullable) OBJRTCCertificate *certificate; -#else -@property(nonatomic, nullable) RTCCertificate *certificate; -#endif -/** Which candidates the ICE agent is allowed to use. The W3C calls it - * |iceTransportPolicy|, while in C++ it is called |type|. */ -@property(nonatomic, assign) RTCIceTransportPolicy iceTransportPolicy; - -/** The media-bundling policy to use when gathering ICE candidates. */ -@property(nonatomic, assign) RTCBundlePolicy bundlePolicy; - -/** The rtcp-mux policy to use when gathering ICE candidates. */ -@property(nonatomic, assign) RTCRtcpMuxPolicy rtcpMuxPolicy; -@property(nonatomic, assign) RTCTcpCandidatePolicy tcpCandidatePolicy; -@property(nonatomic, assign) RTCCandidateNetworkPolicy candidateNetworkPolicy; -@property(nonatomic, assign) RTCContinualGatheringPolicy continualGatheringPolicy; - -/** If set to YES, don't gather IPv6 ICE candidates. - * Default is NO. - */ -@property(nonatomic, assign) BOOL disableIPV6; - -/** If set to YES, don't gather IPv6 ICE candidates on Wi-Fi. - * Only intended to be used on specific devices. Certain phones disable IPv6 - * when the screen is turned off and it would be better to just disable the - * IPv6 ICE candidates on Wi-Fi in those cases. - * Default is NO. - */ -@property(nonatomic, assign) BOOL disableIPV6OnWiFi; - -/** By default, the PeerConnection will use a limited number of IPv6 network - * interfaces, in order to avoid too many ICE candidate pairs being created - * and delaying ICE completion. - * - * Can be set to INT_MAX to effectively disable the limit. - */ -@property(nonatomic, assign) int maxIPv6Networks; - -/** Exclude link-local network interfaces - * from considertaion for gathering ICE candidates. - * Defaults to NO. - */ -@property(nonatomic, assign) BOOL disableLinkLocalNetworks; - -@property(nonatomic, assign) int audioJitterBufferMaxPackets; -@property(nonatomic, assign) BOOL audioJitterBufferFastAccelerate; -@property(nonatomic, assign) int iceConnectionReceivingTimeout; -@property(nonatomic, assign) int iceBackupCandidatePairPingInterval; - -/** Key type used to generate SSL identity. Default is ECDSA. */ -@property(nonatomic, assign) RTCEncryptionKeyType keyType; - -/** ICE candidate pool size as defined in JSEP. Default is 0. */ -@property(nonatomic, assign) int iceCandidatePoolSize; - -/** Prune turn ports on the same network to the same turn server. - * Default is NO. - */ -@property(nonatomic, assign) BOOL shouldPruneTurnPorts; - -/** If set to YES, this means the ICE transport should presume TURN-to-TURN - * candidate pairs will succeed, even before a binding response is received. - */ -@property(nonatomic, assign) BOOL shouldPresumeWritableWhenFullyRelayed; - -/* This flag is only effective when |continualGatheringPolicy| is - * RTCContinualGatheringPolicyGatherContinually. - * - * If YES, after the ICE transport type is changed such that new types of - * ICE candidates are allowed by the new transport type, e.g. from - * RTCIceTransportPolicyRelay to RTCIceTransportPolicyAll, candidates that - * have been gathered by the ICE transport but not matching the previous - * transport type and as a result not observed by PeerConnectionDelegateAdapter, - * will be surfaced to the delegate. - */ -@property(nonatomic, assign) BOOL shouldSurfaceIceCandidatesOnIceTransportTypeChanged; - -/** If set to non-nil, controls the minimal interval between consecutive ICE - * check packets. - */ -@property(nonatomic, copy, nullable) NSNumber *iceCheckMinInterval; - -/** ICE Periodic Regathering - * If set, WebRTC will periodically create and propose candidates without - * starting a new ICE generation. The regathering happens continuously with - * interval specified in milliseconds by the uniform distribution [a, b]. - */ -@property(nonatomic, strong, nullable) RTCIntervalRange *iceRegatherIntervalRange; - -/** Configure the SDP semantics used by this PeerConnection. Note that the - * WebRTC 1.0 specification requires UnifiedPlan semantics. The - * RTCRtpTransceiver API is only available with UnifiedPlan semantics. - * - * PlanB will cause RTCPeerConnection to create offers and answers with at - * most one audio and one video m= section with multiple RTCRtpSenders and - * RTCRtpReceivers specified as multiple a=ssrc lines within the section. This - * will also cause RTCPeerConnection to ignore all but the first m= section of - * the same media type. - * - * UnifiedPlan will cause RTCPeerConnection to create offers and answers with - * multiple m= sections where each m= section maps to one RTCRtpSender and one - * RTCRtpReceiver (an RTCRtpTransceiver), either both audio or both video. This - * will also cause RTCPeerConnection to ignore all but the first a=ssrc lines - * that form a Plan B stream. - * - * For users who wish to send multiple audio/video streams and need to stay - * interoperable with legacy WebRTC implementations or use legacy APIs, - * specify PlanB. - * - * For all other users, specify UnifiedPlan. - */ -@property(nonatomic, assign) RTCSdpSemantics sdpSemantics; - -/** Actively reset the SRTP parameters when the DTLS transports underneath are - * changed after offer/answer negotiation. This is only intended to be a - * workaround for crbug.com/835958 - */ -@property(nonatomic, assign) BOOL activeResetSrtpParams; - -/** - * If MediaTransportFactory is provided in PeerConnectionFactory, this flag informs PeerConnection - * that it should use the MediaTransportInterface. - */ -@property(nonatomic, assign) BOOL useMediaTransport; - -/** - * If MediaTransportFactory is provided in PeerConnectionFactory, this flag informs PeerConnection - * that it should use the MediaTransportInterface for data channels. - */ -@property(nonatomic, assign) BOOL useMediaTransportForDataChannels; - -/** - * Defines advanced optional cryptographic settings related to SRTP and - * frame encryption for native WebRTC. Setting this will overwrite any - * options set through the PeerConnectionFactory (which is deprecated). - */ -@property(nonatomic, nullable) RTCCryptoOptions *cryptoOptions; - -/** - * Time interval between audio RTCP reports. - */ -@property(nonatomic, assign) int rtcpAudioReportIntervalMs; - -/** - * Time interval between video RTCP reports. - */ -@property(nonatomic, assign) int rtcpVideoReportIntervalMs; - -- (instancetype)init; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCCryptoOptions.h b/SDK/TWEBRTC.framework/Headers/RTCCryptoOptions.h deleted file mode 100644 index b465bb5..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCCryptoOptions.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2018 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Objective-C bindings for webrtc::CryptoOptions. This API had to be flattened - * as Objective-C doesn't support nested structures. - */ -RTC_OBJC_EXPORT -@interface RTCCryptoOptions : NSObject - -/** - * Enable GCM crypto suites from RFC 7714 for SRTP. GCM will only be used - * if both sides enable it - */ -@property(nonatomic, assign) BOOL srtpEnableGcmCryptoSuites; -/** - * If set to true, the (potentially insecure) crypto cipher - * SRTP_AES128_CM_SHA1_32 will be included in the list of supported ciphers - * during negotiation. It will only be used if both peers support it and no - * other ciphers get preferred. - */ -@property(nonatomic, assign) BOOL srtpEnableAes128Sha1_32CryptoCipher; -/** - * If set to true, encrypted RTP header extensions as defined in RFC 6904 - * will be negotiated. They will only be used if both peers support them. - */ -@property(nonatomic, assign) BOOL srtpEnableEncryptedRtpHeaderExtensions; - -/** - * If set all RtpSenders must have an FrameEncryptor attached to them before - * they are allowed to send packets. All RtpReceivers must have a - * FrameDecryptor attached to them before they are able to receive packets. - */ -@property(nonatomic, assign) BOOL sframeRequireFrameEncryption; - -/** - * Initializes CryptoOptions with all possible options set explicitly. This - * is done when converting from a native RTCConfiguration.crypto_options. - */ -- (instancetype)initWithSrtpEnableGcmCryptoSuites:(BOOL)srtpEnableGcmCryptoSuites - srtpEnableAes128Sha1_32CryptoCipher:(BOOL)srtpEnableAes128Sha1_32CryptoCipher - srtpEnableEncryptedRtpHeaderExtensions:(BOOL)srtpEnableEncryptedRtpHeaderExtensions - sframeRequireFrameEncryption:(BOOL)sframeRequireFrameEncryption - NS_DESIGNATED_INITIALIZER; - -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCDataChannel.h b/SDK/TWEBRTC.framework/Headers/RTCDataChannel.h deleted file mode 100644 index 0cc2de8..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCDataChannel.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -RTC_OBJC_EXPORT -@interface RTCDataBuffer : NSObject - -/** NSData representation of the underlying buffer. */ -@property(nonatomic, readonly) NSData *data; - -/** Indicates whether |data| contains UTF-8 or binary data. */ -@property(nonatomic, readonly) BOOL isBinary; - -- (instancetype)init NS_UNAVAILABLE; - -/** - * Initialize an RTCDataBuffer from NSData. |isBinary| indicates whether |data| - * contains UTF-8 or binary data. - */ -- (instancetype)initWithData:(NSData *)data isBinary:(BOOL)isBinary; - -@end - -@class RTCDataChannel; -RTC_OBJC_EXPORT -@protocol RTCDataChannelDelegate - -/** The data channel state changed. */ -- (void)dataChannelDidChangeState:(RTCDataChannel *)dataChannel; - -/** The data channel successfully received a data buffer. */ -- (void)dataChannel:(RTCDataChannel *)dataChannel - didReceiveMessageWithBuffer:(RTCDataBuffer *)buffer; - -@optional -/** The data channel's |bufferedAmount| changed. */ -- (void)dataChannel:(RTCDataChannel *)dataChannel didChangeBufferedAmount:(uint64_t)amount; - -@end - -/** Represents the state of the data channel. */ -typedef NS_ENUM(NSInteger, RTCDataChannelState) { - RTCDataChannelStateConnecting, - RTCDataChannelStateOpen, - RTCDataChannelStateClosing, - RTCDataChannelStateClosed, -}; - -RTC_OBJC_EXPORT -@interface RTCDataChannel : NSObject - -/** - * A label that can be used to distinguish this data channel from other data - * channel objects. - */ -@property(nonatomic, readonly) NSString *label; - -/** Whether the data channel can send messages in unreliable mode. */ -@property(nonatomic, readonly) BOOL isReliable DEPRECATED_ATTRIBUTE; - -/** Returns whether this data channel is ordered or not. */ -@property(nonatomic, readonly) BOOL isOrdered; - -/** Deprecated. Use maxPacketLifeTime. */ -@property(nonatomic, readonly) NSUInteger maxRetransmitTime DEPRECATED_ATTRIBUTE; - -/** - * The length of the time window (in milliseconds) during which transmissions - * and retransmissions may occur in unreliable mode. - */ -@property(nonatomic, readonly) uint16_t maxPacketLifeTime; - -/** - * The maximum number of retransmissions that are attempted in unreliable mode. - */ -@property(nonatomic, readonly) uint16_t maxRetransmits; - -/** - * The name of the sub-protocol used with this data channel, if any. Otherwise - * this returns an empty string. - */ -@property(nonatomic, readonly) NSString *protocol; - -/** - * Returns whether this data channel was negotiated by the application or not. - */ -@property(nonatomic, readonly) BOOL isNegotiated; - -/** Deprecated. Use channelId. */ -@property(nonatomic, readonly) NSInteger streamId DEPRECATED_ATTRIBUTE; - -/** The identifier for this data channel. */ -@property(nonatomic, readonly) int channelId; - -/** The state of the data channel. */ -@property(nonatomic, readonly) RTCDataChannelState readyState; - -/** - * The number of bytes of application data that have been queued using - * |sendData:| but that have not yet been transmitted to the network. - */ -@property(nonatomic, readonly) uint64_t bufferedAmount; - -/** The delegate for this data channel. */ -@property(nonatomic, weak) id delegate; - -- (instancetype)init NS_UNAVAILABLE; - -/** Closes the data channel. */ -- (void)close; - -/** Attempt to send |data| on this data channel's underlying data transport. */ -- (BOOL)sendData:(RTCDataBuffer *)data; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCDataChannelConfiguration.h b/SDK/TWEBRTC.framework/Headers/RTCDataChannelConfiguration.h deleted file mode 100644 index 96d33f4..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCDataChannelConfiguration.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -RTC_OBJC_EXPORT -@interface RTCDataChannelConfiguration : NSObject - -/** Set to YES if ordered delivery is required. */ -@property(nonatomic, assign) BOOL isOrdered; - -/** Deprecated. Use maxPacketLifeTime. */ -@property(nonatomic, assign) NSInteger maxRetransmitTimeMs DEPRECATED_ATTRIBUTE; - -/** - * Max period in milliseconds in which retransmissions will be sent. After this - * time, no more retransmissions will be sent. -1 if unset. - */ -@property(nonatomic, assign) int maxPacketLifeTime; - -/** The max number of retransmissions. -1 if unset. */ -@property(nonatomic, assign) int maxRetransmits; - -/** Set to YES if the channel has been externally negotiated and we do not send - * an in-band signalling in the form of an "open" message. - */ -@property(nonatomic, assign) BOOL isNegotiated; - -/** Deprecated. Use channelId. */ -@property(nonatomic, assign) int streamId DEPRECATED_ATTRIBUTE; - -/** The id of the data channel. */ -@property(nonatomic, assign) int channelId; - -/** Set by the application and opaque to the WebRTC implementation. */ -@property(nonatomic) NSString* protocol; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCDefaultVideoDecoderFactory.h b/SDK/TWEBRTC.framework/Headers/RTCDefaultVideoDecoderFactory.h deleted file mode 100644 index e9fd584..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCDefaultVideoDecoderFactory.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCVideoDecoderFactory.h" - -NS_ASSUME_NONNULL_BEGIN - -/** This decoder factory include support for all codecs bundled with WebRTC. If using custom - * codecs, create custom implementations of RTCVideoEncoderFactory and RTCVideoDecoderFactory. - */ -RTC_OBJC_EXPORT -@interface RTCDefaultVideoDecoderFactory : NSObject - -@property(nonatomic) BOOL supportBFrame; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCDefaultVideoEncoderFactory.h b/SDK/TWEBRTC.framework/Headers/RTCDefaultVideoEncoderFactory.h deleted file mode 100644 index bd054a0..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCDefaultVideoEncoderFactory.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCVideoEncoderFactory.h" - -NS_ASSUME_NONNULL_BEGIN - -/** This encoder factory include support for all codecs bundled with WebRTC. If using custom - * codecs, create custom implementations of RTCVideoEncoderFactory and RTCVideoDecoderFactory. - */ -RTC_OBJC_EXPORT -@interface RTCDefaultVideoEncoderFactory : NSObject - -@property(nonatomic) BOOL useCodecBFrame; -@property(nonatomic, retain) RTCVideoCodecInfo *preferredCodec; - -+ (NSArray *)supportedCodecs; -+ (NSArray *)supportedCodecsNOBFrame; - - - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCDispatcher.h b/SDK/TWEBRTC.framework/Headers/RTCDispatcher.h deleted file mode 100644 index 4f8359b..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCDispatcher.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -typedef NS_ENUM(NSInteger, RTCDispatcherQueueType) { - // Main dispatcher queue. - RTCDispatcherTypeMain, - // Used for starting/stopping AVCaptureSession, and assigning - // capture session to AVCaptureVideoPreviewLayer. - RTCDispatcherTypeCaptureSession, - // Used for operations on AVAudioSession. - RTCDispatcherTypeAudioSession, -}; - -/** Dispatcher that asynchronously dispatches blocks to a specific - * shared dispatch queue. - */ -RTC_OBJC_EXPORT -@interface RTCDispatcher : NSObject - -- (instancetype)init NS_UNAVAILABLE; - -/** Dispatch the block asynchronously on the queue for dispatchType. - * @param dispatchType The queue type to dispatch on. - * @param block The block to dispatch asynchronously. - */ -+ (void)dispatchAsyncOnType:(RTCDispatcherQueueType)dispatchType block:(dispatch_block_t)block; - -/** Returns YES if run on queue for the dispatchType otherwise NO. - * Useful for asserting that a method is run on a correct queue. - */ -+ (BOOL)isOnQueueForType:(RTCDispatcherQueueType)dispatchType; - -@end diff --git a/SDK/TWEBRTC.framework/Headers/RTCDtmfSender.h b/SDK/TWEBRTC.framework/Headers/RTCDtmfSender.h deleted file mode 100644 index 5d86d01..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCDtmfSender.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -RTC_OBJC_EXPORT -@protocol RTCDtmfSender - -/** - * Returns true if this RTCDtmfSender is capable of sending DTMF. Otherwise - * returns false. To be able to send DTMF, the associated RTCRtpSender must be - * able to send packets, and a "telephone-event" codec must be negotiated. - */ -@property(nonatomic, readonly) BOOL canInsertDtmf; - -/** - * Queues a task that sends the DTMF tones. The tones parameter is treated - * as a series of characters. The characters 0 through 9, A through D, #, and * - * generate the associated DTMF tones. The characters a to d are equivalent - * to A to D. The character ',' indicates a delay of 2 seconds before - * processing the next character in the tones parameter. - * - * Unrecognized characters are ignored. - * - * @param duration The parameter indicates the duration to use for each - * character passed in the tones parameter. The duration cannot be more - * than 6000 or less than 70 ms. - * - * @param interToneGap The parameter indicates the gap between tones. - * This parameter must be at least 50 ms but should be as short as - * possible. - * - * If InsertDtmf is called on the same object while an existing task for this - * object to generate DTMF is still running, the previous task is canceled. - * Returns true on success and false on failure. - */ -- (BOOL)insertDtmf:(nonnull NSString *)tones - duration:(NSTimeInterval)duration - interToneGap:(NSTimeInterval)interToneGap; - -/** The tones remaining to be played out */ -- (nonnull NSString *)remainingTones; - -/** - * The current tone duration value. This value will be the value last set via the - * insertDtmf method, or the default value of 100 ms if insertDtmf was never called. - */ -- (NSTimeInterval)duration; - -/** - * The current value of the between-tone gap. This value will be the value last set - * via the insertDtmf() method, or the default value of 50 ms if insertDtmf() was never - * called. - */ -- (NSTimeInterval)interToneGap; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCEAGLVideoView.h b/SDK/TWEBRTC.framework/Headers/RTCEAGLVideoView.h deleted file mode 100644 index 30764b5..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCEAGLVideoView.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import -#import - -#import "RTCMacros.h" -#import "RTCVideoRenderer.h" -#import "RTCVideoViewShading.h" - -NS_ASSUME_NONNULL_BEGIN - -@class RTCEAGLVideoView; - -/** - * RTCEAGLVideoView is an RTCVideoRenderer which renders video frames in its - * bounds using OpenGLES 2.0 or OpenGLES 3.0. - */ -RTC_OBJC_EXPORT -NS_EXTENSION_UNAVAILABLE_IOS("Rendering not available in app extensions.") -@interface RTCEAGLVideoView : UIView - -@property(nonatomic, weak) id delegate; - -- (instancetype)initWithFrame:(CGRect)frame - shader:(id)shader NS_DESIGNATED_INITIALIZER; - -- (instancetype)initWithCoder:(NSCoder *)aDecoder - shader:(id)shader NS_DESIGNATED_INITIALIZER; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCEncodedImage.h b/SDK/TWEBRTC.framework/Headers/RTCEncodedImage.h deleted file mode 100644 index 670c727..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCEncodedImage.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCVideoFrame.h" - -NS_ASSUME_NONNULL_BEGIN - -/** Represents an encoded frame's type. */ -typedef NS_ENUM(NSUInteger, RTCFrameType) { - RTCFrameTypeEmptyFrame = 0, - RTCFrameTypeAudioFrameSpeech = 1, - RTCFrameTypeAudioFrameCN = 2, - RTCFrameTypeVideoFrameKey = 3, - RTCFrameTypeVideoFrameDelta = 4, -}; - -typedef NS_ENUM(NSUInteger, RTCVideoContentType) { - RTCVideoContentTypeUnspecified, - RTCVideoContentTypeScreenshare, -}; - -/** Represents an encoded frame. Corresponds to webrtc::EncodedImage. */ -RTC_OBJC_EXPORT -@interface RTCEncodedImage : NSObject - -@property(nonatomic, strong) NSData *buffer; -@property(nonatomic, assign) int32_t encodedWidth; -@property(nonatomic, assign) int32_t encodedHeight; -@property(nonatomic, assign) uint32_t timeStamp; -@property(nonatomic, assign) int64_t captureTimeMs; -@property(nonatomic, assign) int64_t ntpTimeMs; -@property(nonatomic, assign) uint8_t flags; -@property(nonatomic, assign) int64_t encodeStartMs; -@property(nonatomic, assign) int64_t encodeFinishMs; -@property(nonatomic, assign) RTCFrameType frameType; -@property(nonatomic, assign) RTCVideoRotation rotation; -@property(nonatomic, assign) BOOL completeFrame; -@property(nonatomic, strong) NSNumber *qp; -@property(nonatomic, assign) RTCVideoContentType contentType; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCFieldTrials.h b/SDK/TWEBRTC.framework/Headers/RTCFieldTrials.h deleted file mode 100644 index 61443e8..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCFieldTrials.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2016 The WebRTC Project Authors. All rights reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -/** The only valid value for the following if set is kRTCFieldTrialEnabledValue. */ -RTC_EXTERN NSString * const kRTCFieldTrialAudioSendSideBweKey; -RTC_EXTERN NSString * const kRTCFieldTrialAudioForceNoTWCCKey; -RTC_EXTERN NSString * const kRTCFieldTrialAudioForceABWENoTWCCKey; -RTC_EXTERN NSString * const kRTCFieldTrialSendSideBweWithOverheadKey; -RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03AdvertisedKey; -RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03Key; -RTC_EXTERN NSString * const kRTCFieldTrialH264HighProfileKey; -RTC_EXTERN NSString * const kRTCFieldTrialMinimizeResamplingOnMobileKey; - -/** The valid value for field trials above. */ -RTC_EXTERN NSString * const kRTCFieldTrialEnabledValue; - -/** Initialize field trials using a dictionary mapping field trial keys to their - * values. See above for valid keys and values. Must be called before any other - * call into WebRTC. See: webrtc/system_wrappers/include/field_trial.h - */ -RTC_EXTERN void RTCInitFieldTrialDictionary(NSDictionary *fieldTrials); diff --git a/SDK/TWEBRTC.framework/Headers/RTCFileLogger.h b/SDK/TWEBRTC.framework/Headers/RTCFileLogger.h deleted file mode 100644 index a725d62..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCFileLogger.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -typedef NS_ENUM(NSUInteger, RTCFileLoggerSeverity) { - RTCFileLoggerSeverityVerbose, - RTCFileLoggerSeverityInfo, - RTCFileLoggerSeverityWarning, - RTCFileLoggerSeverityError -}; - -typedef NS_ENUM(NSUInteger, RTCFileLoggerRotationType) { - RTCFileLoggerTypeCall, - RTCFileLoggerTypeApp, - RTCFileLoggerTypeAppAppend, -}; - -NS_ASSUME_NONNULL_BEGIN - -// This class intercepts WebRTC logs and saves them to a file. The file size -// will not exceed the given maximum bytesize. When the maximum bytesize is -// reached, logs are rotated according to the rotationType specified. -// For kRTCFileLoggerTypeCall, logs from the beginning and the end -// are preserved while the middle section is overwritten instead. -// For kRTCFileLoggerTypeApp, the oldest log is overwritten. -// This class is not threadsafe. -RTC_OBJC_EXPORT -@interface RTCFileLogger : NSObject - -// The severity level to capture. The default is kRTCFileLoggerSeverityInfo. -@property(nonatomic, assign) RTCFileLoggerSeverity severity; - -// The rotation type for this file logger. The default is -// kRTCFileLoggerTypeCall. -@property(nonatomic, readonly) RTCFileLoggerRotationType rotationType; - -// Disables buffering disk writes. Should be set before |start|. Buffering -// is enabled by default for performance. -@property(nonatomic, assign) BOOL shouldDisableBuffering; - -// Default constructor provides default settings for dir path, file size and -// rotation type. -- (instancetype)init; - -// Create file logger with default rotation type. -- (instancetype)initWithDirPath:(NSString *)dirPath maxFileSize:(NSUInteger)maxFileSize; - -- (instancetype)initWithDirPath:(NSString *)dirPath - maxFileSize:(NSUInteger)maxFileSize - rotationType:(RTCFileLoggerRotationType)rotationType NS_DESIGNATED_INITIALIZER; - -// Starts writing WebRTC logs to disk if not already started. Overwrites any -// existing file(s). -- (void)start; - -// Stops writing WebRTC logs to disk. This method is also called on dealloc. -- (void)stop; - -// Returns the current contents of the logs, or nil if start has been called -// without a stop. -- (nullable NSData *)logData; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCFileVideoCapturer.h b/SDK/TWEBRTC.framework/Headers/RTCFileVideoCapturer.h deleted file mode 100644 index 0782588..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCFileVideoCapturer.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2017 The WebRTC Project Authors. All rights reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCVideoCapturer.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Error passing block. - */ -typedef void (^RTCFileVideoCapturerErrorBlock)(NSError *error); - -/** - * Captures buffers from bundled video file. - * - * See @c RTCVideoCapturer for more info on capturers. - */ -RTC_OBJC_EXPORT - -NS_CLASS_AVAILABLE_IOS(10) -@interface RTCFileVideoCapturer : RTCVideoCapturer - -/** - * Starts asynchronous capture of frames from video file. - * - * Capturing is not started if error occurs. Underlying error will be - * relayed in the errorBlock if one is provided. - * Successfully captured video frames will be passed to the delegate. - * - * @param nameOfFile The name of the bundled video file to be read. - * @errorBlock block to be executed upon error. - */ -- (void)startCapturingFromFileNamed:(NSString *)nameOfFile - onError:(__nullable RTCFileVideoCapturerErrorBlock)errorBlock; - -/** - * Immediately stops capture. - */ -- (void)stopCapture; -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCH264ProfileLevelId.h b/SDK/TWEBRTC.framework/Headers/RTCH264ProfileLevelId.h deleted file mode 100644 index 56b3532..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCH264ProfileLevelId.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -RTC_OBJC_EXPORT extern NSString *const kRTCVideoCodecH264Name; -RTC_OBJC_EXPORT extern NSString *const kRTCLevel31ConstrainedHigh; -RTC_OBJC_EXPORT extern NSString *const kRTCLevel31ConstrainedBaseline; -RTC_OBJC_EXPORT extern NSString *const kRTCMaxSupportedH264ProfileLevelConstrainedHigh; -RTC_OBJC_EXPORT extern NSString *const kRTCMaxSupportedH264ProfileLevelConstrainedBaseline; - -/** H264 Profiles and levels. */ -typedef NS_ENUM(NSUInteger, RTCH264Profile) { - RTCH264ProfileConstrainedBaseline, - RTCH264ProfileBaseline, - RTCH264ProfileMain, - RTCH264ProfileConstrainedHigh, - RTCH264ProfileHigh, -}; - -typedef NS_ENUM(NSUInteger, RTCH264Level) { - RTCH264Level1_b = 0, - RTCH264Level1 = 10, - RTCH264Level1_1 = 11, - RTCH264Level1_2 = 12, - RTCH264Level1_3 = 13, - RTCH264Level2 = 20, - RTCH264Level2_1 = 21, - RTCH264Level2_2 = 22, - RTCH264Level3 = 30, - RTCH264Level3_1 = 31, - RTCH264Level3_2 = 32, - RTCH264Level4 = 40, - RTCH264Level4_1 = 41, - RTCH264Level4_2 = 42, - RTCH264Level5 = 50, - RTCH264Level5_1 = 51, - RTCH264Level5_2 = 52 -}; - -RTC_OBJC_EXPORT -@interface RTCH264ProfileLevelId : NSObject - -@property(nonatomic, readonly) RTCH264Profile profile; -@property(nonatomic, readonly) RTCH264Level level; -@property(nonatomic, readonly) NSString *hexString; - -- (instancetype)initWithHexString:(NSString *)hexString; -- (instancetype)initWithProfile:(RTCH264Profile)profile level:(RTCH264Level)level; - -@end diff --git a/SDK/TWEBRTC.framework/Headers/RTCH265ProfileLevelId.h b/SDK/TWEBRTC.framework/Headers/RTCH265ProfileLevelId.h deleted file mode 100644 index 8e3486d..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCH265ProfileLevelId.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -RTC_OBJC_EXPORT extern NSString *const kRTCVideoCodecH265Name; -RTC_OBJC_EXPORT extern NSString *const kRTCLevel31Main; diff --git a/SDK/TWEBRTC.framework/Headers/RTCI420Buffer.h b/SDK/TWEBRTC.framework/Headers/RTCI420Buffer.h deleted file mode 100644 index a6c7e41..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCI420Buffer.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2018 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCYUVPlanarBuffer.h" - -NS_ASSUME_NONNULL_BEGIN - -/** Protocol for RTCYUVPlanarBuffers containing I420 data */ -RTC_OBJC_EXPORT -@protocol RTCI420Buffer -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCIceCandidate.h b/SDK/TWEBRTC.framework/Headers/RTCIceCandidate.h deleted file mode 100644 index 3e305cc..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCIceCandidate.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -RTC_OBJC_EXPORT -@interface RTCIceCandidate : NSObject - -/** - * If present, the identifier of the "media stream identification" for the media - * component this candidate is associated with. - */ -@property(nonatomic, readonly, nullable) NSString *sdpMid; - -/** - * The index (starting at zero) of the media description this candidate is - * associated with in the SDP. - */ -@property(nonatomic, readonly) int sdpMLineIndex; - -/** The SDP string for this candidate. */ -@property(nonatomic, readonly) NSString *sdp; - -/** The URL of the ICE server which this candidate is gathered from. */ -@property(nonatomic, readonly, nullable) NSString *serverUrl; - -- (instancetype)init NS_UNAVAILABLE; - -/** - * Initialize an RTCIceCandidate from SDP. - */ -- (instancetype)initWithSdp:(NSString *)sdp - sdpMLineIndex:(int)sdpMLineIndex - sdpMid:(nullable NSString *)sdpMid NS_DESIGNATED_INITIALIZER; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCIceServer.h b/SDK/TWEBRTC.framework/Headers/RTCIceServer.h deleted file mode 100644 index ab5fc4a..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCIceServer.h +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -typedef NS_ENUM(NSUInteger, RTCTlsCertPolicy) { - RTCTlsCertPolicySecure, - RTCTlsCertPolicyInsecureNoCheck -}; - -NS_ASSUME_NONNULL_BEGIN - -RTC_OBJC_EXPORT -@interface RTCIceServer : NSObject - -/** URI(s) for this server represented as NSStrings. */ -@property(nonatomic, readonly) NSArray *urlStrings; - -/** Username to use if this RTCIceServer object is a TURN server. */ -@property(nonatomic, readonly, nullable) NSString *username; - -/** Credential to use if this RTCIceServer object is a TURN server. */ -@property(nonatomic, readonly, nullable) NSString *credential; - -/** - * TLS certificate policy to use if this RTCIceServer object is a TURN server. - */ -@property(nonatomic, readonly) RTCTlsCertPolicy tlsCertPolicy; - -/** - If the URIs in |urls| only contain IP addresses, this field can be used - to indicate the hostname, which may be necessary for TLS (using the SNI - extension). If |urls| itself contains the hostname, this isn't necessary. - */ -@property(nonatomic, readonly, nullable) NSString *hostname; - -/** List of protocols to be used in the TLS ALPN extension. */ -@property(nonatomic, readonly) NSArray *tlsAlpnProtocols; - -/** - List elliptic curves to be used in the TLS elliptic curves extension. - Only curve names supported by OpenSSL should be used (eg. "P-256","X25519"). - */ -@property(nonatomic, readonly) NSArray *tlsEllipticCurves; - -- (nonnull instancetype)init NS_UNAVAILABLE; - -/** Convenience initializer for a server with no authentication (e.g. STUN). */ -- (instancetype)initWithURLStrings:(NSArray *)urlStrings; - -/** - * Initialize an RTCIceServer with its associated URLs, optional username, - * optional credential, and credentialType. - */ -- (instancetype)initWithURLStrings:(NSArray *)urlStrings - username:(nullable NSString *)username - credential:(nullable NSString *)credential; - -/** - * Initialize an RTCIceServer with its associated URLs, optional username, - * optional credential, and TLS cert policy. - */ -- (instancetype)initWithURLStrings:(NSArray *)urlStrings - username:(nullable NSString *)username - credential:(nullable NSString *)credential - tlsCertPolicy:(RTCTlsCertPolicy)tlsCertPolicy; - -/** - * Initialize an RTCIceServer with its associated URLs, optional username, - * optional credential, TLS cert policy and hostname. - */ -- (instancetype)initWithURLStrings:(NSArray *)urlStrings - username:(nullable NSString *)username - credential:(nullable NSString *)credential - tlsCertPolicy:(RTCTlsCertPolicy)tlsCertPolicy - hostname:(nullable NSString *)hostname; - -/** - * Initialize an RTCIceServer with its associated URLs, optional username, - * optional credential, TLS cert policy, hostname and ALPN protocols. - */ -- (instancetype)initWithURLStrings:(NSArray *)urlStrings - username:(nullable NSString *)username - credential:(nullable NSString *)credential - tlsCertPolicy:(RTCTlsCertPolicy)tlsCertPolicy - hostname:(nullable NSString *)hostname - tlsAlpnProtocols:(NSArray *)tlsAlpnProtocols; - -/** - * Initialize an RTCIceServer with its associated URLs, optional username, - * optional credential, TLS cert policy, hostname, ALPN protocols and - * elliptic curves. - */ -- (instancetype)initWithURLStrings:(NSArray *)urlStrings - username:(nullable NSString *)username - credential:(nullable NSString *)credential - tlsCertPolicy:(RTCTlsCertPolicy)tlsCertPolicy - hostname:(nullable NSString *)hostname - tlsAlpnProtocols:(nullable NSArray *)tlsAlpnProtocols - tlsEllipticCurves:(nullable NSArray *)tlsEllipticCurves - NS_DESIGNATED_INITIALIZER; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCIntervalRange.h b/SDK/TWEBRTC.framework/Headers/RTCIntervalRange.h deleted file mode 100644 index 64069cb..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCIntervalRange.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface RTCIntervalRange : NSObject - -@property(nonatomic, readonly) NSInteger min; -@property(nonatomic, readonly) NSInteger max; - -- (instancetype)init; -- (instancetype)initWithMin:(NSInteger)min max:(NSInteger)max NS_DESIGNATED_INITIALIZER; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCLegacyStatsReport.h b/SDK/TWEBRTC.framework/Headers/RTCLegacyStatsReport.h deleted file mode 100644 index 85f2b8f..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCLegacyStatsReport.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -/** This does not currently conform to the spec. */ -RTC_OBJC_EXPORT -@interface RTCLegacyStatsReport : NSObject - -/** Time since 1970-01-01T00:00:00Z in milliseconds. */ -@property(nonatomic, readonly) CFTimeInterval timestamp; - -/** The type of stats held by this object. */ -@property(nonatomic, readonly) NSString *type; - -/** The identifier for this object. */ -@property(nonatomic, readonly) NSString *reportId; - -/** A dictionary holding the actual stats. */ -@property(nonatomic, readonly) NSDictionary *values; - -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCLogging.h b/SDK/TWEBRTC.framework/Headers/RTCLogging.h deleted file mode 100644 index 754945c..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCLogging.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -// Subset of rtc::LoggingSeverity. -typedef NS_ENUM(NSInteger, RTCLoggingSeverity) { - RTCLoggingSeverityVerbose, - RTCLoggingSeverityInfo, - RTCLoggingSeverityWarning, - RTCLoggingSeverityError, - RTCLoggingSeverityNone, -}; - -// Wrapper for C++ RTC_LOG(sev) macros. -// Logs the log string to the webrtc logstream for the given severity. -RTC_EXTERN void RTCLogEx(RTCLoggingSeverity severity, NSString* log_string); - -// Wrapper for rtc::LogMessage::LogToDebug. -// Sets the minimum severity to be logged to console. -RTC_EXTERN void RTCSetMinDebugLogLevel(RTCLoggingSeverity severity); - -// Returns the filename with the path prefix removed. -RTC_EXTERN NSString* RTCFileName(const char* filePath); - -// Some convenience macros. - -#define RTCLogString(format, ...) \ - [NSString stringWithFormat:@"(%@:%d %s): " format, RTCFileName(__FILE__), \ - __LINE__, __FUNCTION__, ##__VA_ARGS__] - -#define RTCLogFormat(severity, format, ...) \ - do { \ - NSString* log_string = RTCLogString(format, ##__VA_ARGS__); \ - RTCLogEx(severity, log_string); \ - } while (false) - -#define RTCLogVerbose(format, ...) \ - RTCLogFormat(RTCLoggingSeverityVerbose, format, ##__VA_ARGS__) - -#define RTCLogInfo(format, ...) \ - RTCLogFormat(RTCLoggingSeverityInfo, format, ##__VA_ARGS__) - -#define RTCLogWarning(format, ...) \ - RTCLogFormat(RTCLoggingSeverityWarning, format, ##__VA_ARGS__) - -#define RTCLogError(format, ...) \ - RTCLogFormat(RTCLoggingSeverityError, format, ##__VA_ARGS__) - -#if !defined(NDEBUG) -#define RTCLogDebug(format, ...) RTCLogInfo(format, ##__VA_ARGS__) -#else -#define RTCLogDebug(format, ...) \ - do { \ - } while (false) -#endif - -#define RTCLog(format, ...) RTCLogInfo(format, ##__VA_ARGS__) diff --git a/SDK/TWEBRTC.framework/Headers/RTCMTLVideoView.h b/SDK/TWEBRTC.framework/Headers/RTCMTLVideoView.h deleted file mode 100644 index 36cb144..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCMTLVideoView.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCVideoFrame.h" -#import "RTCVideoRenderer.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * RTCMTLVideoView is thin wrapper around MTKView. - * - * It has id property that renders video frames in the view's - * bounds using Metal. - * NOTE: always check if metal is available on the running device via - * RTC_SUPPORTS_METAL macro before initializing this class. - */ -NS_CLASS_AVAILABLE_IOS(9) - -RTC_OBJC_EXPORT -@interface RTCMTLVideoView : UIView - -@property(nonatomic, weak) id delegate; - -@property(nonatomic) UIViewContentMode videoContentMode; - -/** @abstract Enables/disables rendering. - */ -@property(nonatomic, getter=isEnabled) BOOL enabled; - -/** @abstract Wrapped RTCVideoRotation, or nil. - */ -@property(nonatomic, nullable) NSValue* rotationOverride; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCMacros.h b/SDK/TWEBRTC.framework/Headers/RTCMacros.h deleted file mode 100644 index a521bb7..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCMacros.h +++ /dev/null @@ -1,178 +0,0 @@ -/* - * Copyright 2016 The WebRTC Project Authors. All rights reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#ifndef SDK_OBJC_BASE_RTCMACROS_H_ -#define SDK_OBJC_BASE_RTCMACROS_H_ - -#define RTC_OBJC_EXPORT __attribute__((visibility("default"))) - -#if defined(__cplusplus) -#define RTC_EXTERN extern "C" RTC_OBJC_EXPORT -#else -#define RTC_EXTERN extern RTC_OBJC_EXPORT -#endif - -#ifdef __OBJC__ -#define RTC_FWD_DECL_OBJC_CLASS(classname) @class classname -#else -#define RTC_FWD_DECL_OBJC_CLASS(classname) typedef struct objc_object classname -#endif - -#ifdef RTC_IOS_BUILD_SYSBOL_RENAME -//prefix -#define kRTCFieldTrialFlexFec03Key TG_kRTCFieldTrialFlexFec03Key -#define kRTCG722CodecName TG_kRTCG722CodecName -#define kRTCDtmfCodecName TG_kRTCDtmfCodecName -#define RTCGetAndResetMetrics TG_RTCGetAndResetMetrics -#define kRTCH264CodecName TG_kRTCH264CodecName -#define kRTCComfortNoiseCodecName TG_kRTCComfortNoiseCodecName -#define RTCShutdownInternalTracer TG_RTCShutdownInternalTracer -#define kRTCRtxCodecName TG_kRTCRtxCodecName -#define kRTCFlexfecCodecName TG_kRTCFlexfecCodecName -#define RTCEnableMetrics TG_RTCEnableMetrics -#define kRTCIlbcCodecName TG_kRTCIlbcCodecName -#define kRTCFieldTrialSendSideBweWithOverheadKey TG_kRTCFieldTrialSendSideBweWithOverheadKey -#define RTCStartInternalCapture TG_RTCStartInternalCapture -#define kRTCFieldTrialMinimizeResamplingOnMobileKey TG_kRTCFieldTrialMinimizeResamplingOnMobileKey -#define kRTCPcmaCodecName TG_kRTCPcmaCodecName -#define kRTCVp8CodecName TG_kRTCVp8CodecName -#define RTCStopInternalCapture TG_RTCStopInternalCapture -#define kRTCFieldTrialFlexFec03AdvertisedKey TG_kRTCFieldTrialFlexFec03AdvertisedKey -#define RTCInitializeSSL TG_RTCInitializeSSL -#define kRTCFieldTrialAudioForceABWENoTWCCKey TG_kRTCFieldTrialAudioForceABWENoTWCCKey -#define kRTCPeerConnectionErrorDomain TG_kRTCPeerConnectionErrorDomain -#define kRTCUlpfecCodecName TG_kRTCUlpfecCodecName -#define kRTCFieldTrialH264HighProfileKey TG_kRTCFieldTrialH264HighProfileKey -#define kRTCMediaStreamTrackKindAudio TG_kRTCMediaStreamTrackKindAudio -#define kRTCFieldTrialEnabledValue TG_kRTCFieldTrialEnabledValue -#define kRTCFieldTrialAudioSendSideBweKey TG_kRTCFieldTrialAudioSendSideBweKey -#define kRTCRedCodecName TG_kRTCRedCodecName -#define kRTCIsacCodecName TG_kRTCIsacCodecName -#define RTCCleanupSSL TG_RTCCleanupSSL -#define kRTCMediaStreamTrackKindVideo TG_kRTCMediaStreamTrackKindVideo -#define RTCSetupInternalTracer TG_RTCSetupInternalTracer -#define kRTCPcmuCodecName TG_kRTCPcmuCodecName -#define kRTCL16CodecName TG_kRTCL16CodecName -#define kRTCOpusCodecName TG_kRTCOpusCodecName -#define kRTCVp9CodecName TG_kRTCVp9CodecName -#define kRTCFieldTrialAudioForceNoTWCCKey TG_kRTCFieldTrialAudioForceNoTWCCKey -#define RTCInitFieldTrialDictionary TG_RTCInitFieldTrialDictionary -#define RTCCreateProgram TG_RTCCreateProgram -#define RTCCreateProgramFromFragmentSource TG_RTCCreateProgramFromFragmentSource -#define RTCCreateShader TG_RTCCreateShader -#define RTCCreateVertexBuffer TG_RTCCreateVertexBuffer -#define RTCLogEx TG_RTCLogEx -#define RTCSetMinDebugLogLevel TG_RTCSetMinDebugLogLevel -#define RTCSetVertexData TG_RTCSetVertexData -#define RTCFileName TG_RTCFileName -#define RTCCodecSpecificInfo TG_RTCCodecSpecificInfo -#define RTCAudioSession TG_RTCAudioSession -#define RTCAudioSessionConfiguration TG_RTCAudioSessionConfiguration -#define RTCEncodedImage TG_RTCEncodedImage -#define RTCRtpFragmentationHeader TG_RTCRtpFragmentationHeader -#define RTCVideoCapturer TG_RTCVideoCapturer -#define RTCVideoCodecInfo TG_RTCVideoCodecInfo -#define RTCVideoEncoderQpThresholds TG_RTCVideoEncoderQpThresholds -#define RTCVideoEncoderSettings TG_RTCVideoEncoderSettings -#define RTCVideoFrame TG_RTCVideoFrame -#define RTCAudioSource TG_RTCAudioSource -#define RTCAudioTrack TG_RTCAudioTrack - -#define RTCDataBuffer TG_RTCDataBuffer -#define RTCDataChannel TG_RTCDataChannel -#define RTCDataChannelConfiguration TG_RTCDataChannelConfiguration -#define RTCIceCandidate TG_RTCIceCandidate -#define RTCIceServer TG_RTCIceServer -#define RTCIntervalRange TG_RTCIntervalRange -#define RTCLegacyStatsReport TG_RTCLegacyStatsReport -#define RTCMediaStream TG_RTCMediaStream -#define RTCMediaStreamTrack TG_RTCMediaStreamTrack -#define RTCMetricsSampleInfo TG_RTCMetricsSampleInfo -#define RTCPeerConnection TG_RTCPeerConnection -#define RTCPeerConnectionFactory TG_RTCPeerConnectionFactory -#define RTCRtpCodecParameters TG_RTCRtpCodecParameters -#define RTCRtpEncodingParameters TG_RTCRtpEncodingParameters -#define RTCRtpParameters TG_RTCRtpParameters -#define RTCRtpReceiver TG_RTCRtpReceiver -#define RTCRtpSender TG_RTCRtpSender -#define RTCSessionDescription TG_RTCSessionDescription -#define RTCVideoTrack TG_RTCVideoTrack -#define RTCDisplayLinkTimer TG_RTCDisplayLinkTimer -#define RTCEAGLVideoView TG_RTCEAGLVideoView -#define RTCCameraVideoCapturer TG_RTCCameraVideoCapturer -#define RTCFileVideoCapturer TG_RTCFileVideoCapturer -#define RTCCodecSpecificInfoH264 TG_RTCCodecSpecificInfoH264 -#define RTCVideoDecoderFactoryH264 TG_RTCVideoDecoderFactoryH264 -#define RTCVideoDecoderH264 TG_RTCVideoDecoderH264 -#define RTCVideoEncoderFactoryH264 TG_RTCVideoEncoderFactoryH264 -#define RTCVideoEncoderH264 TG_RTCVideoEncoderH264 -#define RTCMTLI420Renderer TG_RTCMTLI420Renderer -#define RTCMTLRenderer TG_RTCMTLRenderer -#define RTCMTLNV12Renderer TG_RTCMTLNV12Renderer -#define RTCMTLVideoView TG_RTCMTLVideoView -#define RTCFileLogger TG_RTCFileLogger -#define RTCDispatcher TG_RTCDispatcher - #define RTCCameraPreviewView TG_TCCameraPreviewView -#define RTCI420Buffer TG_RTCI420Buffer -#define RTCMutableI420Buffer TG_RTCMutableI420Buffer -#define RTCCVPixelBuffer TG_RTCCVPixelBuffer -#define RTCMediaConstraints TG_RTCMediaConstraints -#define RTCMediaSource TG_RTCMediaSource -#define RTCDefaultShader TG_RTCDefaultShader -#define RTCI420TextureCache TG_RTCI420TextureCache -#define RTCNV12TextureCache TG_RTCNV12TextureCache -#define RTCVideoSource TG_RTCVideoSource -#define RTCVideoRendererAdapter TG_RTCVideoRendererAdapter -#define RTCConfiguration TG_RTCConfiguration -#define RTCDefaultVideoDecoderFactory TG_RTCDefaultVideoDecoderFactory -#define RTCCallbackLogger TG_RTCCallbackLogger -#define RTCVideoEncoderVP9 TG_RTCVideoEncoderVP9 -#define RTCWrappedNativeVideoEncoder TG_RTCWrappedNativeVideoEncoder -#define RTCNativeAudioSessionDelegateAdapter TG_RTCNativeAudioSessionDelegateAdapter -#define RTCDefaultVideoDecoderFactory TG_RTCDefaultVideoDecoderFactory -#define RTCDefaultVideoEncoderFactory TG_RTCDefaultVideoEncoderFactory -#define RTCObjCVideoSourceAdapter TG_RTCObjCVideoSourceAdapter -//#define RTCCertificate OBJRTCCertificate -#define RTCCryptoOptions TG_RTCCryptoOptions -#define RTCDtmfSender TG_RTCDtmfSender -#define RTCPeerConnectionFactoryBuilder TG_RTCPeerConnectionFactoryBuilder -#define RTCPeerConnectionFactoryOptions TG_RTCPeerConnectionFactoryOptions -#define RTCRtcpParameters TG_RTCRtcpParameters -#define RTCRtpHeaderExtension TG_RTCRtpHeaderExtension -#define RTCRtpTransceiverInit TG_RTCRtpTransceiverInit -#define RTCRtpTransceiver TG_RTCRtpTransceiver -#define RTCStatistics TG_RTCStatistics -#define RTCStatisticsReport TG_RTCStatisticsReport -#define RTCH264ProfileLevelId TG_RTCH264ProfileLevelId -#define RTCMTLRGBRenderer TG_RTCMTLRGBRenderer -#define RTCCallbackLogger TG_RTCCallbackLogger -#define RTCWrappedEncodedImageBuffer TG_RTCWrappedEncodedImageBuffer -#define RTCWrappedNativeVideoDecoder TG_RTCWrappedNativeVideoDecoder -#define RTCWrappedNativeVideoEncoder TG_RTCWrappedNativeVideoEncoder -//#define RTCSetMinDebugLogLevel TG_RTCSetMinDebugLogLevel - -//#define RTCAudioSource TC_RTCAudioSource -//#define RTCAudioTrack TC_RTCAudioTrack -//#define RTCAudioSession TC_RTCAudioSession -//#define RTCAudioSessionConfiguration TC_RTCAudioSessionConfiguration -//#define RTCCVPixelBuffer TC_RTCCVPixelBuffer -//#define RTCCallbackLogger TC_RTCCallbackLogger -//#define RTCCameraPreviewView TC_RTCCameraPreviewView -//#define RTCCameraVideoCapturer TC_RTCCameraVideoCapturer -////#define RTCCertificate TC_RTCCertificate -// -//#define RTCCodecSpecificInfoH264 TC_RTCCodecSpecificInfoH264 -////#define RTCConfiguration TC_RTCConfiguration -//#define RTCCryptoOptions TC_RTCCryptoOptions -//#define RTCDataBuffer TC_RTCDataBuffer - -#endif - -#endif // SDK_OBJC_BASE_RTCMACROS_H_ diff --git a/SDK/TWEBRTC.framework/Headers/RTCMediaConstraints.h b/SDK/TWEBRTC.framework/Headers/RTCMediaConstraints.h deleted file mode 100644 index 5c1a12e..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCMediaConstraints.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -/** Constraint keys for media sources. */ -/** The value for this key should be a base64 encoded string containing - * the data from the serialized configuration proto. - */ -RTC_EXTERN NSString *const kRTCMediaConstraintsAudioNetworkAdaptorConfig; - -/** Constraint keys for generating offers and answers. */ -RTC_EXTERN NSString *const kRTCMediaConstraintsIceRestart; -RTC_EXTERN NSString *const kRTCMediaConstraintsOfferToReceiveAudio; -RTC_EXTERN NSString *const kRTCMediaConstraintsOfferToReceiveVideo; -RTC_EXTERN NSString *const kRTCMediaConstraintsVoiceActivityDetection; - -/** Constraint values for Boolean parameters. */ -RTC_EXTERN NSString *const kRTCMediaConstraintsValueTrue; -RTC_EXTERN NSString *const kRTCMediaConstraintsValueFalse; - -RTC_OBJC_EXPORT -@interface RTCMediaConstraints : NSObject - -- (instancetype)init NS_UNAVAILABLE; - -/** Initialize with mandatory and/or optional constraints. */ -- (instancetype) - initWithMandatoryConstraints:(nullable NSDictionary *)mandatory - optionalConstraints:(nullable NSDictionary *)optional - NS_DESIGNATED_INITIALIZER; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCMediaSource.h b/SDK/TWEBRTC.framework/Headers/RTCMediaSource.h deleted file mode 100644 index 838c783..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCMediaSource.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2016 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -typedef NS_ENUM(NSInteger, RTCSourceState) { - RTCSourceStateInitializing, - RTCSourceStateLive, - RTCSourceStateEnded, - RTCSourceStateMuted, -}; - -NS_ASSUME_NONNULL_BEGIN - -RTC_OBJC_EXPORT -@interface RTCMediaSource : NSObject - -/** The current state of the RTCMediaSource. */ -@property(nonatomic, readonly) RTCSourceState state; - -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCMediaStream.h b/SDK/TWEBRTC.framework/Headers/RTCMediaStream.h deleted file mode 100644 index bb9bec6..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCMediaStream.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -@class RTCAudioTrack; -@class RTCPeerConnectionFactory; -@class RTCVideoTrack; - -RTC_OBJC_EXPORT -@interface RTCMediaStream : NSObject - -/** The audio tracks in this stream. */ -@property(nonatomic, strong, readonly) NSArray *audioTracks; - -/** The video tracks in this stream. */ -@property(nonatomic, strong, readonly) NSArray *videoTracks; - -/** An identifier for this media stream. */ -@property(nonatomic, readonly) NSString *streamId; - -- (instancetype)init NS_UNAVAILABLE; - -/** Adds the given audio track to this media stream. */ -- (void)addAudioTrack:(RTCAudioTrack *)audioTrack; - -/** Adds the given video track to this media stream. */ -- (void)addVideoTrack:(RTCVideoTrack *)videoTrack; - -/** Removes the given audio track to this media stream. */ -- (void)removeAudioTrack:(RTCAudioTrack *)audioTrack; - -/** Removes the given video track to this media stream. */ -- (void)removeVideoTrack:(RTCVideoTrack *)videoTrack; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCMediaStreamTrack.h b/SDK/TWEBRTC.framework/Headers/RTCMediaStreamTrack.h deleted file mode 100644 index d1ea0f2..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCMediaStreamTrack.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -/** - * Represents the state of the track. This exposes the same states in C++. - */ -typedef NS_ENUM(NSInteger, RTCMediaStreamTrackState) { - RTCMediaStreamTrackStateLive, - RTCMediaStreamTrackStateEnded -}; - -NS_ASSUME_NONNULL_BEGIN - -RTC_EXTERN NSString *const kRTCMediaStreamTrackKindAudio; -RTC_EXTERN NSString *const kRTCMediaStreamTrackKindVideo; - -RTC_OBJC_EXPORT -@interface RTCMediaStreamTrack : NSObject - -/** - * The kind of track. For example, "audio" if this track represents an audio - * track and "video" if this track represents a video track. - */ -@property(nonatomic, readonly) NSString *kind; - -/** An identifier string. */ -@property(nonatomic, readonly) NSString *trackId; - -/** The enabled state of the track. */ -@property(nonatomic, assign) BOOL isEnabled; - -/** The state of the track. */ -@property(nonatomic, readonly) RTCMediaStreamTrackState readyState; - -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCMetrics.h b/SDK/TWEBRTC.framework/Headers/RTCMetrics.h deleted file mode 100644 index 6629fda..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCMetrics.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2016 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCMetricsSampleInfo.h" - -/** - * Enables gathering of metrics (which can be fetched with - * RTCGetAndResetMetrics). Must be called before any other call into WebRTC. - */ -RTC_EXTERN void RTCEnableMetrics(void); - -/** Gets and clears native histograms. */ -RTC_EXTERN NSArray* RTCGetAndResetMetrics(void); diff --git a/SDK/TWEBRTC.framework/Headers/RTCMetricsSampleInfo.h b/SDK/TWEBRTC.framework/Headers/RTCMetricsSampleInfo.h deleted file mode 100644 index cd38ab9..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCMetricsSampleInfo.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2016 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -RTC_OBJC_EXPORT -@interface RTCMetricsSampleInfo : NSObject - -/** - * Example of RTCMetricsSampleInfo: - * name: "WebRTC.Video.InputFramesPerSecond" - * min: 1 - * max: 100 - * bucketCount: 50 - * samples: [29]:2 [30]:1 - */ - -/** The name of the histogram. */ -@property(nonatomic, readonly) NSString *name; - -/** The minimum bucket value. */ -@property(nonatomic, readonly) int min; - -/** The maximum bucket value. */ -@property(nonatomic, readonly) int max; - -/** The number of buckets. */ -@property(nonatomic, readonly) int bucketCount; - -/** A dictionary holding the samples . */ -@property(nonatomic, readonly) NSDictionary *samples; - -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCMutableI420Buffer.h b/SDK/TWEBRTC.framework/Headers/RTCMutableI420Buffer.h deleted file mode 100644 index 098fb9a..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCMutableI420Buffer.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2018 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCI420Buffer.h" -#import "RTCMutableYUVPlanarBuffer.h" - -NS_ASSUME_NONNULL_BEGIN - -/** Extension of the I420 buffer with mutable data access */ -RTC_OBJC_EXPORT -@protocol RTCMutableI420Buffer -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCMutableYUVPlanarBuffer.h b/SDK/TWEBRTC.framework/Headers/RTCMutableYUVPlanarBuffer.h deleted file mode 100644 index 00dfcd9..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCMutableYUVPlanarBuffer.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2018 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCYUVPlanarBuffer.h" - -NS_ASSUME_NONNULL_BEGIN - -/** Extension of the YUV planar data buffer with mutable data access */ -RTC_OBJC_EXPORT -@protocol RTCMutableYUVPlanarBuffer - -@property(nonatomic, readonly) uint8_t *mutableDataY; -@property(nonatomic, readonly) uint8_t *mutableDataU; -@property(nonatomic, readonly) uint8_t *mutableDataV; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCNativeI420Buffer.h b/SDK/TWEBRTC.framework/Headers/RTCNativeI420Buffer.h deleted file mode 100644 index 9a904f5..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCNativeI420Buffer.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2018 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCI420Buffer.h" -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -/** RTCI420Buffer implements the RTCI420Buffer protocol */ -RTC_OBJC_EXPORT -@interface RTCI420Buffer : NSObject -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCNativeMutableI420Buffer.h b/SDK/TWEBRTC.framework/Headers/RTCNativeMutableI420Buffer.h deleted file mode 100644 index 6cd5110..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCNativeMutableI420Buffer.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 2018 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCMutableI420Buffer.h" -#import "RTCNativeI420Buffer.h" - -NS_ASSUME_NONNULL_BEGIN - -/** Mutable version of RTCI420Buffer */ -RTC_OBJC_EXPORT -@interface RTCMutableI420Buffer : RTCI420Buffer -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCPeerConnection.h b/SDK/TWEBRTC.framework/Headers/RTCPeerConnection.h deleted file mode 100644 index b01ec82..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCPeerConnection.h +++ /dev/null @@ -1,385 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -@class RTCConfiguration; -@class RTCDataChannel; -@class RTCDataChannelConfiguration; -@class RTCIceCandidate; -@class RTCMediaConstraints; -@class RTCMediaStream; -@class RTCMediaStreamTrack; -@class RTCPeerConnectionFactory; -@class RTCRtpReceiver; -@class RTCRtpSender; -@class RTCRtpTransceiver; -@class RTCRtpTransceiverInit; -@class RTCSessionDescription; -@class RTCStatisticsReport; -@class RTCLegacyStatsReport; - -typedef NS_ENUM(NSInteger, RTCRtpMediaType); - -NS_ASSUME_NONNULL_BEGIN - -extern NSString *const kRTCPeerConnectionErrorDomain; -extern int const kRTCSessionDescriptionErrorCode; - -/** Represents the signaling state of the peer connection. */ -typedef NS_ENUM(NSInteger, RTCSignalingState) { - RTCSignalingStateStable, - RTCSignalingStateHaveLocalOffer, - RTCSignalingStateHaveLocalPrAnswer, - RTCSignalingStateHaveRemoteOffer, - RTCSignalingStateHaveRemotePrAnswer, - // Not an actual state, represents the total number of states. - RTCSignalingStateClosed, -}; - -/** Represents the ice connection state of the peer connection. */ -typedef NS_ENUM(NSInteger, RTCIceConnectionState) { - RTCIceConnectionStateNew, - RTCIceConnectionStateChecking, - RTCIceConnectionStateConnected, - RTCIceConnectionStateCompleted, - RTCIceConnectionStateFailed, - RTCIceConnectionStateDisconnected, - RTCIceConnectionStateClosed, - RTCIceConnectionStateCount, -}; - -/** Represents the combined ice+dtls connection state of the peer connection. */ -typedef NS_ENUM(NSInteger, RTCPeerConnectionState) { - RTCPeerConnectionStateNew, - RTCPeerConnectionStateConnecting, - RTCPeerConnectionStateConnected, - RTCPeerConnectionStateDisconnected, - RTCPeerConnectionStateFailed, - RTCPeerConnectionStateClosed, -}; - -/** Represents the ice gathering state of the peer connection. */ -typedef NS_ENUM(NSInteger, RTCIceGatheringState) { - RTCIceGatheringStateNew, - RTCIceGatheringStateGathering, - RTCIceGatheringStateComplete, -}; - -/** Represents the stats output level. */ -typedef NS_ENUM(NSInteger, RTCStatsOutputLevel) { - RTCStatsOutputLevelStandard, - RTCStatsOutputLevelDebug, -}; - -@class RTCPeerConnection; - -RTC_OBJC_EXPORT -@protocol RTCPeerConnectionDelegate - -/** Called when the SignalingState changed. */ -- (void)peerConnection:(RTCPeerConnection *)peerConnection - didChangeSignalingState:(RTCSignalingState)stateChanged; - -/** Called when media is received on a new stream from remote peer. */ -- (void)peerConnection:(RTCPeerConnection *)peerConnection didAddStream:(RTCMediaStream *)stream; - -/** Called when a remote peer closes a stream. - * This is not called when RTCSdpSemanticsUnifiedPlan is specified. - */ -- (void)peerConnection:(RTCPeerConnection *)peerConnection didRemoveStream:(RTCMediaStream *)stream; - -/** Called when negotiation is needed, for example ICE has restarted. */ -- (void)peerConnectionShouldNegotiate:(RTCPeerConnection *)peerConnection; - -/** Called any time the IceConnectionState changes. */ -- (void)peerConnection:(RTCPeerConnection *)peerConnection - didChangeIceConnectionState:(RTCIceConnectionState)newState; - -/** Called any time the IceGatheringState changes. */ -- (void)peerConnection:(RTCPeerConnection *)peerConnection - didChangeIceGatheringState:(RTCIceGatheringState)newState; - -/** New ice candidate has been found. */ -- (void)peerConnection:(RTCPeerConnection *)peerConnection - didGenerateIceCandidate:(RTCIceCandidate *)candidate; - -/** Called when a group of local Ice candidates have been removed. */ -- (void)peerConnection:(RTCPeerConnection *)peerConnection - didRemoveIceCandidates:(NSArray *)candidates; - -/** New data channel has been opened. */ -- (void)peerConnection:(RTCPeerConnection *)peerConnection - didOpenDataChannel:(RTCDataChannel *)dataChannel; - -/** Called when signaling indicates a transceiver will be receiving media from - * the remote endpoint. - * This is only called with RTCSdpSemanticsUnifiedPlan specified. - */ -@optional -/** Called any time the IceConnectionState changes following standardized - * transition. */ -- (void)peerConnection:(RTCPeerConnection *)peerConnection - didChangeStandardizedIceConnectionState:(RTCIceConnectionState)newState; - -/** Called any time the PeerConnectionState changes. */ -- (void)peerConnection:(RTCPeerConnection *)peerConnection - didChangeConnectionState:(RTCPeerConnectionState)newState; - -- (void)peerConnection:(RTCPeerConnection *)peerConnection - didStartReceivingOnTransceiver:(RTCRtpTransceiver *)transceiver; - -/** Called when a receiver and its track are created. */ -- (void)peerConnection:(RTCPeerConnection *)peerConnection - didAddReceiver:(RTCRtpReceiver *)rtpReceiver - streams:(NSArray *)mediaStreams; - -/** Called when the receiver and its track are removed. */ -- (void)peerConnection:(RTCPeerConnection *)peerConnection - didRemoveReceiver:(RTCRtpReceiver *)rtpReceiver; - -/** Called when the selected ICE candidate pair is changed. */ -- (void)peerConnection:(RTCPeerConnection *)peerConnection - didChangeLocalCandidate:(RTCIceCandidate *)local - remoteCandidate:(RTCIceCandidate *)remote - lastReceivedMs:(int)lastDataReceivedMs - changeReason:(NSString *)reason; - -@end - -RTC_OBJC_EXPORT -@interface RTCPeerConnection : NSObject - -/** The object that will be notifed about events such as state changes and - * streams being added or removed. - */ -@property(nonatomic, weak, nullable) id delegate; -/** This property is not available with RTCSdpSemanticsUnifiedPlan. Please use - * |senders| instead. - */ -@property(nonatomic, readonly) NSArray *localStreams; -@property(nonatomic, readonly, nullable) RTCSessionDescription *localDescription; -@property(nonatomic, readonly, nullable) RTCSessionDescription *remoteDescription; -@property(nonatomic, readonly) RTCSignalingState signalingState; -@property(nonatomic, readonly) RTCIceConnectionState iceConnectionState; -@property(nonatomic, readonly) RTCPeerConnectionState connectionState; -@property(nonatomic, readonly) RTCIceGatheringState iceGatheringState; -@property(nonatomic, readonly, copy) RTCConfiguration *configuration; - -/** Gets all RTCRtpSenders associated with this peer connection. - * Note: reading this property returns different instances of RTCRtpSender. - * Use isEqual: instead of == to compare RTCRtpSender instances. - */ -@property(nonatomic, readonly) NSArray *senders; - -/** Gets all RTCRtpReceivers associated with this peer connection. - * Note: reading this property returns different instances of RTCRtpReceiver. - * Use isEqual: instead of == to compare RTCRtpReceiver instances. - */ -@property(nonatomic, readonly) NSArray *receivers; - -/** Gets all RTCRtpTransceivers associated with this peer connection. - * Note: reading this property returns different instances of - * RTCRtpTransceiver. Use isEqual: instead of == to compare RTCRtpTransceiver - * instances. - * This is only available with RTCSdpSemanticsUnifiedPlan specified. - */ -@property(nonatomic, readonly) NSArray *transceivers; - -- (instancetype)init NS_UNAVAILABLE; - -/** Sets the PeerConnection's global configuration to |configuration|. - * Any changes to STUN/TURN servers or ICE candidate policy will affect the - * next gathering phase, and cause the next call to createOffer to generate - * new ICE credentials. Note that the BUNDLE and RTCP-multiplexing policies - * cannot be changed with this method. - */ -- (BOOL)setConfiguration:(RTCConfiguration *)configuration; - -/** Terminate all media and close the transport. */ -- (void)close; - -/** Provide a remote candidate to the ICE Agent. */ -- (void)addIceCandidate:(RTCIceCandidate *)candidate; - -/** Remove a group of remote candidates from the ICE Agent. */ -- (void)removeIceCandidates:(NSArray *)candidates; - -/** Add a new media stream to be sent on this peer connection. - * This method is not supported with RTCSdpSemanticsUnifiedPlan. Please use - * addTrack instead. - */ -- (void)addStream:(RTCMediaStream *)stream; - -/** Remove the given media stream from this peer connection. - * This method is not supported with RTCSdpSemanticsUnifiedPlan. Please use - * removeTrack instead. - */ -- (void)removeStream:(RTCMediaStream *)stream; - -#ifdef WEBRTC_BUILD_SENDSTREAM -/** Add a new media stream track to be sent on this peer connection, and return - * the newly created RTCRtpSender. The RTCRtpSender will be associated with - * the streams specified in the |streamIds| list. - * - * Errors: If an error occurs, returns nil. An error can occur if: - * - A sender already exists for the track. - * - The peer connection is closed. - */ -- (RTCRtpSender *)addTrack:(RTCMediaStreamTrack *)track streamIds:(NSArray *)streamIds; - -/** With PlanB semantics, removes an RTCRtpSender from this peer connection. - * - * With UnifiedPlan semantics, sets sender's track to null and removes the - * send component from the associated RTCRtpTransceiver's direction. - * - * Returns YES on success. - */ -- (BOOL)removeTrack:(RTCRtpSender *)sender; -#endif - -/** addTransceiver creates a new RTCRtpTransceiver and adds it to the set of - * transceivers. Adding a transceiver will cause future calls to CreateOffer - * to add a media description for the corresponding transceiver. - * - * The initial value of |mid| in the returned transceiver is nil. Setting a - * new session description may change it to a non-nil value. - * - * https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-addtransceiver - * - * Optionally, an RtpTransceiverInit structure can be specified to configure - * the transceiver from construction. If not specified, the transceiver will - * default to having a direction of kSendRecv and not be part of any streams. - * - * These methods are only available when Unified Plan is enabled (see - * RTCConfiguration). - */ - -/** Adds a transceiver with a sender set to transmit the given track. The kind - * of the transceiver (and sender/receiver) will be derived from the kind of - * the track. - */ -- (RTCRtpTransceiver *)addTransceiverWithTrack:(RTCMediaStreamTrack *)track; -- (RTCRtpTransceiver *)addTransceiverWithTrack:(RTCMediaStreamTrack *)track - init:(RTCRtpTransceiverInit *)init; - -/** Adds a transceiver with the given kind. Can either be RTCRtpMediaTypeAudio - * or RTCRtpMediaTypeVideo. - */ -- (RTCRtpTransceiver *)addTransceiverOfType:(RTCRtpMediaType)mediaType; -- (RTCRtpTransceiver *)addTransceiverOfType:(RTCRtpMediaType)mediaType - init:(RTCRtpTransceiverInit *)init; - -/** Generate an SDP offer. */ -- (void)offerForConstraints:(RTCMediaConstraints *)constraints - completionHandler:(nullable void (^)(RTCSessionDescription *_Nullable sdp, - NSError *_Nullable error))completionHandler; - -/** Generate an SDP answer. */ -- (void)answerForConstraints:(RTCMediaConstraints *)constraints - completionHandler:(nullable void (^)(RTCSessionDescription *_Nullable sdp, - NSError *_Nullable error))completionHandler; - -/** Apply the supplied RTCSessionDescription as the local description. */ -- (void)setLocalDescription:(RTCSessionDescription *)sdp - completionHandler:(nullable void (^)(NSError *_Nullable error))completionHandler; - -/** Apply the supplied RTCSessionDescription as the remote description. */ -- (void)setRemoteDescription:(RTCSessionDescription *)sdp - completionHandler:(nullable void (^)(NSError *_Nullable error))completionHandler; - -/** Apply the supported default RTCSessionDescription as the remote description. */ -- (void)defaultRemoteDescription:(RTCSessionDescription *)localSDP - liveBroadcastingStreamUrl:(NSString*)liveBroadcastingStreamUrl - isPush:(BOOL)isPush - isHevc:(BOOL)isHevc - completionHandler:(nullable void (^)(NSError *_Nullable error))completionHandler; - -/** Limits the bandwidth allocated for all RTP streams sent by this - * PeerConnection. Nil parameters will be unchanged. Setting - * |currentBitrateBps| will force the available bitrate estimate to the given - * value. Returns YES if the parameters were successfully updated. - */ -- (BOOL)setBweMinBitrateBps:(nullable NSNumber *)minBitrateBps - currentBitrateBps:(nullable NSNumber *)currentBitrateBps - maxBitrateBps:(nullable NSNumber *)maxBitrateBps; - -/** Start or stop recording an Rtc EventLog. */ -- (BOOL)startRtcEventLogWithFilePath:(NSString *)filePath maxSizeInBytes:(int64_t)maxSizeInBytes; -- (void)stopRtcEventLog; - -@end - -@interface RTCPeerConnection (Media) - -/** Create an RTCRtpSender with the specified kind and media stream ID. - * See RTCMediaStreamTrack.h for available kinds. - * This method is not supported with RTCSdpSemanticsUnifiedPlan. Please use - * addTransceiver instead. - */ -- (RTCRtpSender *)senderWithKind:(NSString *)kind streamId:(NSString *)streamId; - -@end - -@interface RTCPeerConnection (DataChannel) - -/** Create a new data channel with the given label and configuration. */ -- (nullable RTCDataChannel *)dataChannelForLabel:(NSString *)label - configuration:(RTCDataChannelConfiguration *)configuration; - -@end - -typedef void (^RTCStatisticsCompletionHandler)(RTCStatisticsReport *); - -@interface RTCPeerConnection (Stats) - -/** Gather stats for the given RTCMediaStreamTrack. If |mediaStreamTrack| is nil - * statistics are gathered for all tracks. - */ -- (void)statsForTrack:(nullable RTCMediaStreamTrack *)mediaStreamTrack - statsOutputLevel:(RTCStatsOutputLevel)statsOutputLevel - completionHandler:(nullable void (^)(NSArray *stats))completionHandler; - -/** Gather statistic through the v2 statistics API. */ -- (void)statisticsWithCompletionHandler:(RTCStatisticsCompletionHandler)completionHandler; - -#ifdef WEBRTC_BUILD_SENDSTREAM -/** Spec-compliant getStats() performing the stats selection algorithm with the - * sender. - */ -- (void)statisticsForSender:(RTCRtpSender *)sender - completionHandler:(RTCStatisticsCompletionHandler)completionHandler; -#endif - -/** Spec-compliant getStats() performing the stats selection algorithm with the - * receiver. - */ -- (void)statisticsForReceiver:(RTCRtpReceiver *)receiver - completionHandler:(RTCStatisticsCompletionHandler)completionHandler; - -@end - - -typedef struct WEBRTC_Plugin_Protocol { -// int (*onSendOfferCallback)(const char* type, char* sdp); -// int (*onVideoDataCallback)(const uint8_t* video_data, int length, int64_t pts); -// int (*onAudioDataCallback)(const void* audio_data, int length, int64_t pts); - int (*webrtc_plugin_open)(void *h, const char *uri, int flags, bool isHevc); - int (*webrtc_close)(void *h); - -} WEBRTC_Protocol; - - -//extern "C" { -__attribute__((visibility("default"))) void getWEBRTC_Protocol(WEBRTC_Protocol*); -//} -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCPeerConnectionFactory.h b/SDK/TWEBRTC.framework/Headers/RTCPeerConnectionFactory.h deleted file mode 100644 index d468f8a..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCPeerConnectionFactory.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -@class RTCAudioSource; -@class RTCAudioTrack; -@class RTCConfiguration; -@class RTCMediaConstraints; -@class RTCMediaStream; -@class RTCPeerConnection; -@class RTCVideoSource; -@class RTCVideoTrack; -@class RTCPeerConnectionFactoryOptions; -@protocol RTCPeerConnectionDelegate; -@protocol RTCVideoDecoderFactory; -@protocol RTCVideoEncoderFactory; - -RTC_OBJC_EXPORT -@interface RTCPeerConnectionFactory : NSObject - -/* Initialize object with default H264 video encoder/decoder factories */ -- (instancetype)init; - -- (instancetype)initWithEncoderFactory:(nullable id)encoderFactory - decoderFactory:(nullable id)decoderFactory - audioUseAAC:(BOOL)audioUseAAC; - -/* Initialize object with injectable video encoder/decoder factories */ -- (instancetype)initWithEncoderFactory:(nullable id)encoderFactory - decoderFactory:(nullable id)decoderFactory; - -/** Initialize an RTCAudioSource with constraints. */ -- (RTCAudioSource *)audioSourceWithConstraints:(nullable RTCMediaConstraints *)constraints; - -/** Initialize an RTCAudioTrack with an id. Convenience ctor to use an audio source with no - * constraints. - */ -- (RTCAudioTrack *)audioTrackWithTrackId:(NSString *)trackId; - -/** Initialize an RTCAudioTrack with a source and an id. */ -- (RTCAudioTrack *)audioTrackWithSource:(RTCAudioSource *)source trackId:(NSString *)trackId; - -/** Initialize a generic RTCVideoSource. The RTCVideoSource should be passed to a RTCVideoCapturer - * implementation, e.g. RTCCameraVideoCapturer, in order to produce frames. - */ -- (RTCVideoSource *)videoSource; - -/** Initialize an RTCVideoTrack with a source and an id. */ -- (RTCVideoTrack *)videoTrackWithSource:(RTCVideoSource *)source trackId:(NSString *)trackId; - -/** Initialize an RTCMediaStream with an id. */ -- (RTCMediaStream *)mediaStreamWithStreamId:(NSString *)streamId; - -/** Initialize an RTCPeerConnection with a configuration, constraints, and - * delegate. - */ -- (RTCPeerConnection *)peerConnectionWithConfiguration:(RTCConfiguration *)configuration - constraints:(RTCMediaConstraints *)constraints - delegate: - (nullable id)delegate; - -/** Set the options to be used for subsequently created RTCPeerConnections */ -- (void)setOptions:(nonnull RTCPeerConnectionFactoryOptions *)options; - -/** Start an AecDump recording. This API call will likely change in the future. */ -- (BOOL)startAecDumpWithFilePath:(NSString *)filePath maxSizeInBytes:(int64_t)maxSizeInBytes; - -/* Stop an active AecDump recording */ -- (void)stopAecDump; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCPeerConnectionFactoryOptions.h b/SDK/TWEBRTC.framework/Headers/RTCPeerConnectionFactoryOptions.h deleted file mode 100644 index 4bec869..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCPeerConnectionFactoryOptions.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -RTC_OBJC_EXPORT -@interface RTCPeerConnectionFactoryOptions : NSObject - -@property(nonatomic, assign) BOOL disableEncryption; - -@property(nonatomic, assign) BOOL disableNetworkMonitor; - -@property(nonatomic, assign) BOOL ignoreLoopbackNetworkAdapter; - -@property(nonatomic, assign) BOOL ignoreVPNNetworkAdapter; - -@property(nonatomic, assign) BOOL ignoreCellularNetworkAdapter; - -@property(nonatomic, assign) BOOL ignoreWiFiNetworkAdapter; - -@property(nonatomic, assign) BOOL ignoreEthernetNetworkAdapter; - -- (instancetype)init NS_DESIGNATED_INITIALIZER; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCRtcpParameters.h b/SDK/TWEBRTC.framework/Headers/RTCRtcpParameters.h deleted file mode 100644 index 5c26580..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCRtcpParameters.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2018 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -RTC_OBJC_EXPORT -@interface RTCRtcpParameters : NSObject - -/** The Canonical Name used by RTCP. */ -@property(nonatomic, readonly, copy) NSString *cname; - -/** Whether reduced size RTCP is configured or compound RTCP. */ -@property(nonatomic, assign) BOOL isReducedSize; - -- (instancetype)init NS_DESIGNATED_INITIALIZER; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCRtpCodecParameters.h b/SDK/TWEBRTC.framework/Headers/RTCRtpCodecParameters.h deleted file mode 100644 index 5d3cac5..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCRtpCodecParameters.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright 2016 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -RTC_EXTERN const NSString *const kRTCRtxCodecName; -RTC_EXTERN const NSString *const kRTCRedCodecName; -RTC_EXTERN const NSString *const kRTCUlpfecCodecName; -RTC_EXTERN const NSString *const kRTCFlexfecCodecName; -RTC_EXTERN const NSString *const kRTCOpusCodecName; -RTC_EXTERN const NSString *const kRTCIsacCodecName; -RTC_EXTERN const NSString *const kRTCL16CodecName; -RTC_EXTERN const NSString *const kRTCG722CodecName; -RTC_EXTERN const NSString *const kRTCIlbcCodecName; -RTC_EXTERN const NSString *const kRTCPcmuCodecName; -RTC_EXTERN const NSString *const kRTCPcmaCodecName; -RTC_EXTERN const NSString *const kRTCDtmfCodecName; -RTC_EXTERN const NSString *const kRTCComfortNoiseCodecName; -RTC_EXTERN const NSString *const kRTCVp8CodecName; -RTC_EXTERN const NSString *const kRTCVp9CodecName; -RTC_EXTERN const NSString *const kRTCH264CodecName; - -/** Defined in http://w3c.github.io/webrtc-pc/#idl-def-RTCRtpCodecParameters */ -RTC_OBJC_EXPORT -@interface RTCRtpCodecParameters : NSObject - -/** The RTP payload type. */ -@property(nonatomic, assign) int payloadType; - -/** - * The codec MIME subtype. Valid types are listed in: - * http://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-2 - * - * Several supported types are represented by the constants above. - */ -@property(nonatomic, readonly, nonnull) NSString *name; - -/** - * The media type of this codec. Equivalent to MIME top-level type. - * - * Valid values are kRTCMediaStreamTrackKindAudio and - * kRTCMediaStreamTrackKindVideo. - */ -@property(nonatomic, readonly, nonnull) NSString *kind; - -/** The codec clock rate expressed in Hertz. */ -@property(nonatomic, readonly, nullable) NSNumber *clockRate; - -/** - * The number of channels (mono=1, stereo=2). - * Set to null for video codecs. - **/ -@property(nonatomic, readonly, nullable) NSNumber *numChannels; - -/** The "format specific parameters" field from the "a=fmtp" line in the SDP */ -@property(nonatomic, readonly, nonnull) NSDictionary *parameters; - -- (instancetype)init NS_DESIGNATED_INITIALIZER; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCRtpEncodingParameters.h b/SDK/TWEBRTC.framework/Headers/RTCRtpEncodingParameters.h deleted file mode 100644 index 16eabf9..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCRtpEncodingParameters.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2016 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -RTC_OBJC_EXPORT -@interface RTCRtpEncodingParameters : NSObject - -/** The idenfifier for the encoding layer. This is used in simulcast. */ -@property(nonatomic, copy, nullable) NSString *rid; - -/** Controls whether the encoding is currently transmitted. */ -@property(nonatomic, assign) BOOL isActive; - -/** The maximum bitrate to use for the encoding, or nil if there is no - * limit. - */ -@property(nonatomic, copy, nullable) NSNumber *maxBitrateBps; - -/** The minimum bitrate to use for the encoding, or nil if there is no - * limit. - */ -@property(nonatomic, copy, nullable) NSNumber *minBitrateBps; - -/** The maximum framerate to use for the encoding, or nil if there is no - * limit. - */ -@property(nonatomic, copy, nullable) NSNumber *maxFramerate; - -/** The requested number of temporal layers to use for the encoding, or nil - * if the default should be used. - */ -@property(nonatomic, copy, nullable) NSNumber *numTemporalLayers; - -/** Scale the width and height down by this factor for video. If nil, - * implementation default scaling factor will be used. - */ -@property(nonatomic, copy, nullable) NSNumber *scaleResolutionDownBy; - -/** The SSRC being used by this encoding. */ -@property(nonatomic, readonly, nullable) NSNumber *ssrc; - -/** The relative DiffServ Code Point priority. */ -@property(nonatomic, assign) double networkPriority; - -- (instancetype)init NS_DESIGNATED_INITIALIZER; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCRtpFragmentationHeader.h b/SDK/TWEBRTC.framework/Headers/RTCRtpFragmentationHeader.h deleted file mode 100644 index 2e26b08..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCRtpFragmentationHeader.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -/** Information for header. Corresponds to webrtc::RTPFragmentationHeader. */ -RTC_OBJC_EXPORT -@interface RTCRtpFragmentationHeader : NSObject - -@property(nonatomic, strong) NSArray *fragmentationOffset; -@property(nonatomic, strong) NSArray *fragmentationLength; -@property(nonatomic, strong) NSArray *fragmentationTimeDiff; -@property(nonatomic, strong) NSArray *fragmentationPlType; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCRtpHeaderExtension.h b/SDK/TWEBRTC.framework/Headers/RTCRtpHeaderExtension.h deleted file mode 100644 index 3211449..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCRtpHeaderExtension.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2018 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -RTC_OBJC_EXPORT -@interface RTCRtpHeaderExtension : NSObject - -/** The URI of the RTP header extension, as defined in RFC5285. */ -@property(nonatomic, readonly, copy) NSString *uri; - -/** The value put in the RTP packet to identify the header extension. */ -@property(nonatomic, readonly) int id; - -/** Whether the header extension is encrypted or not. */ -@property(nonatomic, readonly, getter=isEncrypted) BOOL encrypted; - -- (instancetype)init NS_DESIGNATED_INITIALIZER; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCRtpParameters.h b/SDK/TWEBRTC.framework/Headers/RTCRtpParameters.h deleted file mode 100644 index c1f2d5c..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCRtpParameters.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2016 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCRtcpParameters.h" -#import "RTCRtpCodecParameters.h" -#import "RTCRtpEncodingParameters.h" -#import "RTCRtpHeaderExtension.h" - -NS_ASSUME_NONNULL_BEGIN - -RTC_OBJC_EXPORT -@interface RTCRtpParameters : NSObject - -/** A unique identifier for the last set of parameters applied. */ -@property(nonatomic, copy) NSString *transactionId; - -/** Parameters used for RTCP. */ -@property(nonatomic, readonly, copy) RTCRtcpParameters *rtcp; - -/** An array containing parameters for RTP header extensions. */ -@property(nonatomic, readonly, copy) NSArray *headerExtensions; - -/** The currently active encodings in the order of preference. */ -@property(nonatomic, copy) NSArray *encodings; - -/** The negotiated set of send codecs in order of preference. */ -@property(nonatomic, copy) NSArray *codecs; - -- (instancetype)init NS_DESIGNATED_INITIALIZER; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCRtpReceiver.h b/SDK/TWEBRTC.framework/Headers/RTCRtpReceiver.h deleted file mode 100644 index c1a2c79..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCRtpReceiver.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright 2016 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCMediaStreamTrack.h" -#import "RTCRtpParameters.h" - -NS_ASSUME_NONNULL_BEGIN - -/** Represents the media type of the RtpReceiver. */ -typedef NS_ENUM(NSInteger, RTCRtpMediaType) { - RTCRtpMediaTypeAudio, - RTCRtpMediaTypeVideo, - RTCRtpMediaTypeData, -}; - -@class RTCRtpReceiver; - -RTC_OBJC_EXPORT -@protocol RTCRtpReceiverDelegate - -/** Called when the first RTP packet is received. - * - * Note: Currently if there are multiple RtpReceivers of the same media type, - * they will all call OnFirstPacketReceived at once. - * - * For example, if we create three audio receivers, A/B/C, they will listen to - * the same signal from the underneath network layer. Whenever the first audio packet - * is received, the underneath signal will be fired. All the receivers A/B/C will be - * notified and the callback of the receiver's delegate will be called. - * - * The process is the same for video receivers. - */ -- (void)rtpReceiver:(RTCRtpReceiver *)rtpReceiver - didReceiveFirstPacketForMediaType:(RTCRtpMediaType)mediaType; - -@end - -RTC_OBJC_EXPORT -@protocol RTCRtpReceiver - -/** A unique identifier for this receiver. */ -@property(nonatomic, readonly) NSString *receiverId; - -/** The currently active RTCRtpParameters, as defined in - * https://www.w3.org/TR/webrtc/#idl-def-RTCRtpParameters. - * - * The WebRTC specification only defines RTCRtpParameters in terms of senders, - * but this API also applies them to receivers, similar to ORTC: - * http://ortc.org/wp-content/uploads/2016/03/ortc.html#rtcrtpparameters*. - */ -@property(nonatomic, readonly) RTCRtpParameters *parameters; - -/** The RTCMediaStreamTrack associated with the receiver. - * Note: reading this property returns a new instance of - * RTCMediaStreamTrack. Use isEqual: instead of == to compare - * RTCMediaStreamTrack instances. - */ -@property(nonatomic, readonly, nullable) RTCMediaStreamTrack *track; - -/** The delegate for this RtpReceiver. */ -@property(nonatomic, weak) id delegate; - - -@optional - --(void) backgroundVideoStream:(BOOL)isBackground; - -@end - -RTC_OBJC_EXPORT -@interface RTCRtpReceiver : NSObject - -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCRtpSender.h b/SDK/TWEBRTC.framework/Headers/RTCRtpSender.h deleted file mode 100644 index c03b4cc..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCRtpSender.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2016 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCDtmfSender.h" -#import "RTCMacros.h" -#import "RTCMediaStreamTrack.h" -#import "RTCRtpParameters.h" - -NS_ASSUME_NONNULL_BEGIN - -RTC_OBJC_EXPORT -@protocol RTCRtpSender - -/** A unique identifier for this sender. */ -@property(nonatomic, readonly) NSString *senderId; - -/** The currently active RTCRtpParameters, as defined in - * https://www.w3.org/TR/webrtc/#idl-def-RTCRtpParameters. - */ -@property(nonatomic, copy) RTCRtpParameters *parameters; - -/** The RTCMediaStreamTrack associated with the sender. - * Note: reading this property returns a new instance of - * RTCMediaStreamTrack. Use isEqual: instead of == to compare - * RTCMediaStreamTrack instances. - */ -@property(nonatomic, copy, nullable) RTCMediaStreamTrack *track; - -/** IDs of streams associated with the RTP sender */ -@property(nonatomic, copy) NSArray *streamIds; - -/** The RTCDtmfSender accociated with the RTP sender. */ -@property(nonatomic, readonly, nullable) id dtmfSender; - -@end - -RTC_OBJC_EXPORT -@interface RTCRtpSender : NSObject - -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCRtpTransceiver.h b/SDK/TWEBRTC.framework/Headers/RTCRtpTransceiver.h deleted file mode 100644 index f7e571a..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCRtpTransceiver.h +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright 2018 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCRtpReceiver.h" -#ifdef WEBRTC_BUILD_SENDSTREAM -#import "RTCRtpSender.h" -#endif - -NS_ASSUME_NONNULL_BEGIN - -/** https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiverdirection */ -typedef NS_ENUM(NSInteger, RTCRtpTransceiverDirection) { - RTCRtpTransceiverDirectionSendRecv, - RTCRtpTransceiverDirectionSendOnly, - RTCRtpTransceiverDirectionRecvOnly, - RTCRtpTransceiverDirectionInactive, -}; - -/** Structure for initializing an RTCRtpTransceiver in a call to - * RTCPeerConnection.addTransceiver. - * https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiverinit - */ -RTC_OBJC_EXPORT -@interface RTCRtpTransceiverInit : NSObject - -/** Direction of the RTCRtpTransceiver. See RTCRtpTransceiver.direction. */ -@property(nonatomic) RTCRtpTransceiverDirection direction; - -/** The added RTCRtpTransceiver will be added to these streams. */ -@property(nonatomic) NSArray *streamIds; - -/** TODO(bugs.webrtc.org/7600): Not implemented. */ -@property(nonatomic) NSArray *sendEncodings; - -@end - -@class RTCRtpTransceiver; - -/** The RTCRtpTransceiver maps to the RTCRtpTransceiver defined by the WebRTC - * specification. A transceiver represents a combination of an RTCRtpSender - * and an RTCRtpReceiver that share a common mid. As defined in JSEP, an - * RTCRtpTransceiver is said to be associated with a media description if its - * mid property is non-nil; otherwise, it is said to be disassociated. - * JSEP: https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-24 - * - * Note that RTCRtpTransceivers are only supported when using - * RTCPeerConnection with Unified Plan SDP. - * - * WebRTC specification for RTCRtpTransceiver, the JavaScript analog: - * https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver - */ -RTC_OBJC_EXPORT -@protocol RTCRtpTransceiver - -/** Media type of the transceiver. The sender and receiver will also have this - * type. - */ -@property(nonatomic, readonly) RTCRtpMediaType mediaType; - -/** The mid attribute is the mid negotiated and present in the local and - * remote descriptions. Before negotiation is complete, the mid value may be - * nil. After rollbacks, the value may change from a non-nil value to nil. - * https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-mid - */ -@property(nonatomic, readonly) NSString *mid; - -/** The sender attribute exposes the RTCRtpSender corresponding to the RTP - * media that may be sent with the transceiver's mid. The sender is always - * present, regardless of the direction of media. - * https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-sender - */ -#ifdef WEBRTC_BUILD_SENDSTREAM -@property(nonatomic, readonly) RTCRtpSender *sender; -#endif -/** The receiver attribute exposes the RTCRtpReceiver corresponding to the RTP - * media that may be received with the transceiver's mid. The receiver is - * always present, regardless of the direction of media. - * https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-receiver - */ -@property(nonatomic, readonly) RTCRtpReceiver *receiver; - -/** The isStopped attribute indicates that the sender of this transceiver will - * no longer send, and that the receiver will no longer receive. It is true if - * either stop has been called or if setting the local or remote description - * has caused the RTCRtpTransceiver to be stopped. - * https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-stopped - */ -@property(nonatomic, readonly) BOOL isStopped; - -/** The direction attribute indicates the preferred direction of this - * transceiver, which will be used in calls to createOffer and createAnswer. - * An update of directionality does not take effect immediately. Instead, - * future calls to createOffer and createAnswer mark the corresponding media - * descriptions as sendrecv, sendonly, recvonly, or inactive. - * https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-direction - */ -@property(nonatomic) RTCRtpTransceiverDirection direction; - -/** The currentDirection attribute indicates the current direction negotiated - * for this transceiver. If this transceiver has never been represented in an - * offer/answer exchange, or if the transceiver is stopped, the value is not - * present and this method returns NO. - * https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-currentdirection - */ -- (BOOL)currentDirection:(RTCRtpTransceiverDirection *)currentDirectionOut; - -/** The stop method irreversibly stops the RTCRtpTransceiver. The sender of - * this transceiver will no longer send, the receiver will no longer receive. - * https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-stop - */ -- (void)stop; - -@end - -RTC_OBJC_EXPORT -@interface RTCRtpTransceiver : NSObject - -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCSSLAdapter.h b/SDK/TWEBRTC.framework/Headers/RTCSSLAdapter.h deleted file mode 100644 index f68bc5e..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCSSLAdapter.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2016 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -/** - * Initialize and clean up the SSL library. Failure is fatal. These call the - * corresponding functions in webrtc/rtc_base/ssladapter.h. - */ -RTC_EXTERN BOOL RTCInitializeSSL(void); -RTC_EXTERN BOOL RTCCleanupSSL(void); diff --git a/SDK/TWEBRTC.framework/Headers/RTCSessionDescription.h b/SDK/TWEBRTC.framework/Headers/RTCSessionDescription.h deleted file mode 100644 index b9bcab1..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCSessionDescription.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -/** - * Represents the session description type. This exposes the same types that are - * in C++, which doesn't include the rollback type that is in the W3C spec. - */ -typedef NS_ENUM(NSInteger, RTCSdpType) { - RTCSdpTypeOffer, - RTCSdpTypePrAnswer, - RTCSdpTypeAnswer, -}; - -NS_ASSUME_NONNULL_BEGIN - -RTC_OBJC_EXPORT -@interface RTCSessionDescription : NSObject - -/** The type of session description. */ -@property(nonatomic, readonly) RTCSdpType type; - -/** The SDP string representation of this session description. */ -@property(nonatomic, readonly) NSString *sdp; - -- (instancetype)init NS_UNAVAILABLE; - -/** Initialize a session description with a type and SDP string. */ -- (instancetype)initWithType:(RTCSdpType)type sdp:(NSString *)sdp NS_DESIGNATED_INITIALIZER; - -+ (NSString *)stringForType:(RTCSdpType)type; - -+ (RTCSdpType)typeForString:(NSString *)string; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCStatisticsReport.h b/SDK/TWEBRTC.framework/Headers/RTCStatisticsReport.h deleted file mode 100644 index 0ca0178..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCStatisticsReport.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2019 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import -#import "RTCMacros.h" - -@class RTCStatistics; - -NS_ASSUME_NONNULL_BEGIN - -/** A statistics report. Encapsulates a number of RTCStatistics objects. */ -@interface RTCStatisticsReport : NSObject - -/** The timestamp of the report in microseconds since 1970-01-01T00:00:00Z. */ -@property(nonatomic, readonly) CFTimeInterval timestamp_us; - -/** RTCStatistics objects by id. */ -@property(nonatomic, readonly) NSDictionary *statistics; - -- (instancetype)init NS_UNAVAILABLE; - -@end - -/** A part of a report (a subreport) covering a certain area. */ -@interface RTCStatistics : NSObject - -/** The id of this subreport, e.g. "RTCMediaStreamTrack_receiver_2". */ -@property(nonatomic, readonly) NSString *id; - -@property(nonatomic, readonly) NSString *kind; - -/** The timestamp of the subreport in microseconds since 1970-01-01T00:00:00Z. */ -@property(nonatomic, readonly) CFTimeInterval timestamp_us; - -/** The type of the subreport, e.g. "track", "codec". */ -@property(nonatomic, readonly) NSString *type; - -/** The keys and values of the subreport, e.g. "totalFramesDuration = 5.551". - The values are either NSNumbers or NSStrings, or NSArrays encapsulating NSNumbers - or NSStrings. */ -@property(nonatomic, readonly) NSDictionary *values; - -- (instancetype)init NS_UNAVAILABLE; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCTracing.h b/SDK/TWEBRTC.framework/Headers/RTCTracing.h deleted file mode 100644 index 5c66e5a..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCTracing.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2016 The WebRTC Project Authors. All rights reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -RTC_EXTERN void RTCSetupInternalTracer(void); -/** Starts capture to specified file. Must be a valid writable path. - * Returns YES if capture starts. - */ -RTC_EXTERN BOOL RTCStartInternalCapture(NSString* filePath); -RTC_EXTERN void RTCStopInternalCapture(void); -RTC_EXTERN void RTCShutdownInternalTracer(void); diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoCapturer.h b/SDK/TWEBRTC.framework/Headers/RTCVideoCapturer.h deleted file mode 100644 index 5212627..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoCapturer.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import "RTCVideoFrame.h" - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -@class RTCVideoCapturer; - -RTC_OBJC_EXPORT -@protocol RTCVideoCapturerDelegate -- (void)capturer:(RTCVideoCapturer *)capturer didCaptureVideoFrame:(RTCVideoFrame *)frame; -@end - -RTC_OBJC_EXPORT -@interface RTCVideoCapturer : NSObject - -@property(nonatomic, weak) id delegate; - -- (instancetype)initWithDelegate:(id)delegate; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoCodecConstants.h b/SDK/TWEBRTC.framework/Headers/RTCVideoCodecConstants.h deleted file mode 100644 index 03f36e2..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoCodecConstants.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright 2018 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -RTC_OBJC_EXPORT extern NSString* const kRTCVideoCodecVp8Name; -RTC_OBJC_EXPORT extern NSString* const kRTCVideoCodecVp9Name; diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoCodecInfo.h b/SDK/TWEBRTC.framework/Headers/RTCVideoCodecInfo.h deleted file mode 100644 index 5e08362..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoCodecInfo.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -/** Holds information to identify a codec. Corresponds to webrtc::SdpVideoFormat. */ -RTC_OBJC_EXPORT -@interface RTCVideoCodecInfo : NSObject - -- (instancetype)init NS_UNAVAILABLE; - -- (instancetype)initWithName:(NSString *)name; - -- (instancetype)initWithName:(NSString *)name - supportBrame:(BOOL)supportBrame - parameters:(nullable NSDictionary *)parameters; - -- (instancetype)initWithName:(NSString *)name - parameters:(nullable NSDictionary *)parameters - NS_DESIGNATED_INITIALIZER; - -- (BOOL)isEqualToCodecInfo:(RTCVideoCodecInfo *)info; - -@property(nonatomic) BOOL supportBrame; -@property(nonatomic, readonly) NSString *name; -@property(nonatomic, readonly) NSDictionary *parameters; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoDecoder.h b/SDK/TWEBRTC.framework/Headers/RTCVideoDecoder.h deleted file mode 100644 index 8077c69..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoDecoder.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCCodecSpecificInfo.h" -#import "RTCEncodedImage.h" -#import "RTCMacros.h" -#import "RTCVideoEncoderSettings.h" -#import "RTCVideoFrame.h" - -NS_ASSUME_NONNULL_BEGIN - -/** Callback block for decoder. */ -typedef void (^RTCVideoDecoderCallback)(RTCVideoFrame *frame); - -/** Protocol for decoder implementations. */ -RTC_OBJC_EXPORT -@protocol RTCVideoDecoder - -- (void)setCallback:(RTCVideoDecoderCallback)callback; -- (NSInteger)startDecodeWithNumberOfCores:(int)numberOfCores; -- (NSInteger)releaseDecoder; -- (NSInteger)decode:(RTCEncodedImage *)encodedImage - missingFrames:(BOOL)missingFrames - codecSpecificInfo:(nullable id)info - renderTimeMs:(int64_t)renderTimeMs; -- (NSString *)implementationName; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderFactory.h b/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderFactory.h deleted file mode 100644 index c381832..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderFactory.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCVideoCodecInfo.h" -#import "RTCVideoDecoder.h" - -NS_ASSUME_NONNULL_BEGIN - -@protocol FrameBitStreamDelegate - --(void) onSEIData:(const uint8_t*)bitstream length:(size_t)length; - -@end - -/** RTCVideoDecoderFactory is an Objective-C version of webrtc::VideoDecoderFactory. */ -RTC_OBJC_EXPORT -@protocol RTCVideoDecoderFactory - - -- (nullable id)createDecoder:(RTCVideoCodecInfo *)info; -- (NSArray *)supportedCodecs; // TODO(andersc): "supportedFormats" instead? - -@optional - -- (void)ResiterFrameBitStreamDelegate:(id)delegate; -- (id)getFrameBitStreamDelegate; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderFactoryH264.h b/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderFactoryH264.h deleted file mode 100644 index 4fcff1d..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderFactoryH264.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCVideoDecoderFactory.h" - -RTC_OBJC_EXPORT -@interface RTCVideoDecoderFactoryH264 : NSObject -@end diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderFactoryH265.h b/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderFactoryH265.h deleted file mode 100644 index 97f484d..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderFactoryH265.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCVideoDecoderFactory.h" - -RTC_OBJC_EXPORT -API_AVAILABLE(ios(11.0)) -@interface RTCVideoDecoderFactoryH265 : NSObject -@end diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderH264.h b/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderH264.h deleted file mode 100644 index 95829d2..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderH264.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCVideoDecoder.h" - -RTC_OBJC_EXPORT -@interface RTCVideoDecoderH264 : NSObject - -- (instancetype)initWithBFrame:(BOOL)supportBFrame; - -@end diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderH265.h b/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderH265.h deleted file mode 100644 index 92cf25d..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderH265.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCVideoDecoder.h" -#import "RTCVideoDecoderH264.h" - -RTC_OBJC_EXPORT -API_AVAILABLE(ios(11.0)) -@interface RTCVideoDecoderH265 : NSObject - -- (instancetype)initWithBFrame:(BOOL)supportBFrame; - -@end diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderVP8.h b/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderVP8.h deleted file mode 100644 index 00786dc..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderVP8.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCVideoDecoder.h" - -RTC_OBJC_EXPORT -@interface RTCVideoDecoderVP8 : NSObject - -/* This returns a VP8 decoder that can be returned from a RTCVideoDecoderFactory injected into - * RTCPeerConnectionFactory. Even though it implements the RTCVideoDecoder protocol, it can not be - * used independently from the RTCPeerConnectionFactory. - */ -+ (id)vp8Decoder; - -@end diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderVP9.h b/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderVP9.h deleted file mode 100644 index b74c1ef..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoDecoderVP9.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCVideoDecoder.h" - -RTC_OBJC_EXPORT -@interface RTCVideoDecoderVP9 : NSObject - -/* This returns a VP9 decoder that can be returned from a RTCVideoDecoderFactory injected into - * RTCPeerConnectionFactory. Even though it implements the RTCVideoDecoder protocol, it can not be - * used independently from the RTCPeerConnectionFactory. - */ -+ (id)vp9Decoder; - -@end diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoEncoder.h b/SDK/TWEBRTC.framework/Headers/RTCVideoEncoder.h deleted file mode 100644 index c525767..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoEncoder.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCCodecSpecificInfo.h" -#import "RTCEncodedImage.h" -#import "RTCMacros.h" -#import "RTCRtpFragmentationHeader.h" -#import "RTCVideoEncoderQpThresholds.h" -#import "RTCVideoEncoderSettings.h" -#import "RTCVideoFrame.h" - -NS_ASSUME_NONNULL_BEGIN - -/** Callback block for encoder. */ -typedef BOOL (^RTCVideoEncoderCallback)(RTCEncodedImage *frame, - id info, - RTCRtpFragmentationHeader *header); - -/** Protocol for encoder implementations. */ -RTC_OBJC_EXPORT -@protocol RTCVideoEncoder - -- (void)setCallback:(RTCVideoEncoderCallback)callback; -- (NSInteger)startEncodeWithSettings:(RTCVideoEncoderSettings *)settings - numberOfCores:(int)numberOfCores; -- (NSInteger)releaseEncoder; -- (NSInteger)encode:(RTCVideoFrame *)frame - codecSpecificInfo:(nullable id)info - frameTypes:(NSArray *)frameTypes; -- (int)setBitrate:(uint32_t)bitrateKbit framerate:(uint32_t)framerate; -- (NSString *)implementationName; - -/** Returns QP scaling settings for encoder. The quality scaler adjusts the resolution in order to - * keep the QP from the encoded images within the given range. Returning nil from this function - * disables quality scaling. */ -- (nullable RTCVideoEncoderQpThresholds *)scalingSettings; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderFactory.h b/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderFactory.h deleted file mode 100644 index 3291797..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderFactory.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCVideoCodecInfo.h" -#import "RTCVideoEncoder.h" - -NS_ASSUME_NONNULL_BEGIN - -/** RTCVideoEncoderFactory is an Objective-C version of webrtc::VideoEncoderFactory. */ -RTC_OBJC_EXPORT -@protocol RTCVideoEncoderFactory - -- (nullable id)createEncoder:(RTCVideoCodecInfo *)info; -- (NSArray *)supportedCodecs; // TODO(andersc): "supportedFormats" instead? - -@optional -- (NSArray *)implementations; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderFactoryH264.h b/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderFactoryH264.h deleted file mode 100644 index c64405e..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderFactoryH264.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCVideoEncoderFactory.h" - -RTC_OBJC_EXPORT -@interface RTCVideoEncoderFactoryH264 : NSObject -@end diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderFactoryH265.h b/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderFactoryH265.h deleted file mode 100644 index aebea74..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderFactoryH265.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCVideoEncoderFactory.h" - -RTC_OBJC_EXPORT -API_AVAILABLE(ios(11.0)) -@interface RTCVideoEncoderFactoryH265 : NSObject -@end diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderH264.h b/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderH264.h deleted file mode 100644 index a9c0558..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderH264.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCVideoCodecInfo.h" -#import "RTCVideoEncoder.h" - -RTC_OBJC_EXPORT -@interface RTCVideoEncoderH264 : NSObject - -- (instancetype)initWithCodecInfo:(RTCVideoCodecInfo *)codecInfo; - -@end diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderH265.h b/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderH265.h deleted file mode 100644 index ff08d1f..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderH265.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCVideoCodecInfo.h" -#import "RTCVideoEncoder.h" - -RTC_OBJC_EXPORT -API_AVAILABLE(ios(11.0)) -@interface RTCVideoEncoderH265 : NSObject - -- (instancetype)initWithCodecInfo:(RTCVideoCodecInfo *)codecInfo; - -@end diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderQpThresholds.h b/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderQpThresholds.h deleted file mode 100644 index 2b48f45..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderQpThresholds.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -/** QP thresholds for encoder. Corresponds to webrtc::VideoEncoder::QpThresholds. */ -RTC_OBJC_EXPORT -@interface RTCVideoEncoderQpThresholds : NSObject - -- (instancetype)initWithThresholdsLow:(NSInteger)low high:(NSInteger)high; - -@property(nonatomic, readonly) NSInteger low; -@property(nonatomic, readonly) NSInteger high; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderSettings.h b/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderSettings.h deleted file mode 100644 index a9403f8..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderSettings.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -typedef NS_ENUM(NSUInteger, RTCVideoCodecMode) { - RTCVideoCodecModeRealtimeVideo, - RTCVideoCodecModeScreensharing, -}; - -/** Settings for encoder. Corresponds to webrtc::VideoCodec. */ -RTC_OBJC_EXPORT -@interface RTCVideoEncoderSettings : NSObject - -@property(nonatomic, strong) NSString *name; - -@property(nonatomic, assign) unsigned short width; -@property(nonatomic, assign) unsigned short height; - -@property(nonatomic, assign) unsigned int startBitrate; // kilobits/sec. -@property(nonatomic, assign) unsigned int maxBitrate; -@property(nonatomic, assign) unsigned int minBitrate; - -@property(nonatomic, assign) uint32_t maxFramerate; - -@property(nonatomic, assign) unsigned int qpMax; -@property(nonatomic, assign) RTCVideoCodecMode mode; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderVP8.h b/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderVP8.h deleted file mode 100644 index 8d87a89..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderVP8.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCVideoEncoder.h" - -RTC_OBJC_EXPORT -@interface RTCVideoEncoderVP8 : NSObject - -/* This returns a VP8 encoder that can be returned from a RTCVideoEncoderFactory injected into - * RTCPeerConnectionFactory. Even though it implements the RTCVideoEncoder protocol, it can not be - * used independently from the RTCPeerConnectionFactory. - */ -+ (id)vp8Encoder; - -@end diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderVP9.h b/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderVP9.h deleted file mode 100644 index 9efea4b..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoEncoderVP9.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCVideoEncoder.h" - -RTC_OBJC_EXPORT -@interface RTCVideoEncoderVP9 : NSObject - -/* This returns a VP9 encoder that can be returned from a RTCVideoEncoderFactory injected into - * RTCPeerConnectionFactory. Even though it implements the RTCVideoEncoder protocol, it can not be - * used independently from the RTCPeerConnectionFactory. - */ -+ (id)vp9Encoder; - -@end diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoFrame.h b/SDK/TWEBRTC.framework/Headers/RTCVideoFrame.h deleted file mode 100644 index 8899bfd..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoFrame.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -typedef NS_ENUM(NSInteger, RTCVideoRotation) { - RTCVideoRotation_0 = 0, - RTCVideoRotation_90 = 90, - RTCVideoRotation_180 = 180, - RTCVideoRotation_270 = 270, -}; - -@protocol RTCVideoFrameBuffer; - -// RTCVideoFrame is an ObjectiveC version of webrtc::VideoFrame. -RTC_OBJC_EXPORT -@interface RTCVideoFrame : NSObject - -/** Width without rotation applied. */ -@property(nonatomic, readonly) int width; - -/** Height without rotation applied. */ -@property(nonatomic, readonly) int height; -@property(nonatomic, readonly) RTCVideoRotation rotation; - -/** Timestamp in nanoseconds. */ -@property(nonatomic, readonly) int64_t timeStampNs; - -/** Timestamp 90 kHz. */ -@property(nonatomic, assign) int32_t timeStamp; - -@property(nonatomic, assign) int frameType; - -@property(nonatomic, readonly) id buffer; - -- (instancetype)init NS_UNAVAILABLE; -- (instancetype) new NS_UNAVAILABLE; - -/** Initialize an RTCVideoFrame from a pixel buffer, rotation, and timestamp. - * Deprecated - initialize with a RTCCVPixelBuffer instead - */ -- (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer - rotation:(RTCVideoRotation)rotation - timeStampNs:(int64_t)timeStampNs - DEPRECATED_MSG_ATTRIBUTE("use initWithBuffer instead"); - -/** Initialize an RTCVideoFrame from a pixel buffer combined with cropping and - * scaling. Cropping will be applied first on the pixel buffer, followed by - * scaling to the final resolution of scaledWidth x scaledHeight. - */ -- (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer - scaledWidth:(int)scaledWidth - scaledHeight:(int)scaledHeight - cropWidth:(int)cropWidth - cropHeight:(int)cropHeight - cropX:(int)cropX - cropY:(int)cropY - rotation:(RTCVideoRotation)rotation - timeStampNs:(int64_t)timeStampNs - DEPRECATED_MSG_ATTRIBUTE("use initWithBuffer instead"); - -/** Initialize an RTCVideoFrame from a frame buffer, rotation, and timestamp. - */ -- (instancetype)initWithBuffer:(id)frameBuffer - rotation:(RTCVideoRotation)rotation - timeStampNs:(int64_t)timeStampNs; - -/** Return a frame that is guaranteed to be I420, i.e. it is possible to access - * the YUV data on it. - */ -- (RTCVideoFrame *)newI420VideoFrame; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoFrameBuffer.h b/SDK/TWEBRTC.framework/Headers/RTCVideoFrameBuffer.h deleted file mode 100644 index bb9e6fb..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoFrameBuffer.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -@protocol RTCI420Buffer; - -// RTCVideoFrameBuffer is an ObjectiveC version of webrtc::VideoFrameBuffer. -RTC_OBJC_EXPORT -@protocol RTCVideoFrameBuffer - -@property(nonatomic, readonly) int width; -@property(nonatomic, readonly) int height; - -- (id)toI420; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoRenderer.h b/SDK/TWEBRTC.framework/Headers/RTCVideoRenderer.h deleted file mode 100644 index da01c56..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoRenderer.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import -#if TARGET_OS_IPHONE -#import -#endif - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -@class RTCVideoFrame; - -RTC_OBJC_EXPORT -@protocol RTCVideoRenderer - -/** The size of the frame. */ -- (void)setSize:(CGSize)size; - -/** The frame to be displayed. */ -- (void)renderFrame:(nullable RTCVideoFrame *)frame; - --(void)pause:(BOOL)isPause; - -- (void)setRenderRotationOverride:(NSValue *)rotationOverride; - -- (void)setViewContentMode:(UIViewContentMode)contentMode; - -@optional --(RTCVideoFrame*)captureFrame; - -@end - -RTC_OBJC_EXPORT -@protocol RTCVideoViewDelegate - -- (void)videoView:(id)videoView didChangeVideoSize:(CGSize)size; - - -@optional -- (void)videoView:(id)videoView isFirstFrame:(BOOL)isfirstFrame; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoSource.h b/SDK/TWEBRTC.framework/Headers/RTCVideoSource.h deleted file mode 100644 index ec8a45c..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoSource.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCMediaSource.h" -#import "RTCVideoCapturer.h" - -NS_ASSUME_NONNULL_BEGIN - -RTC_OBJC_EXPORT - -@interface RTCVideoSource : RTCMediaSource - -- (instancetype)init NS_UNAVAILABLE; - -/** - * Calling this function will cause frames to be scaled down to the - * requested resolution. Also, frames will be cropped to match the - * requested aspect ratio, and frames will be dropped to match the - * requested fps. The requested aspect ratio is orientation agnostic and - * will be adjusted to maintain the input orientation, so it doesn't - * matter if e.g. 1280x720 or 720x1280 is requested. - */ -- (void)adaptOutputFormatToWidth:(int)width height:(int)height fps:(int)fps; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoTrack.h b/SDK/TWEBRTC.framework/Headers/RTCVideoTrack.h deleted file mode 100644 index b946889..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoTrack.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2015 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import "RTCMediaStreamTrack.h" - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -@protocol RTCVideoRenderer; -@class RTCPeerConnectionFactory; -@class RTCVideoSource; - -RTC_OBJC_EXPORT -@interface RTCVideoTrack : RTCMediaStreamTrack - -/** The video source for this video track. */ -@property(nonatomic, readonly) RTCVideoSource *source; - -- (instancetype)init NS_UNAVAILABLE; - -/** Register a renderer that will render all frames received on this track. */ -- (void)addRenderer:(id)renderer; - -/** Deregister a renderer. */ -- (void)removeRenderer:(id)renderer; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCVideoViewShading.h b/SDK/TWEBRTC.framework/Headers/RTCVideoViewShading.h deleted file mode 100644 index 6876cc3..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCVideoViewShading.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCVideoFrame.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * RTCVideoViewShading provides a way for apps to customize the OpenGL(ES) shaders used in - * rendering for the RTCEAGLVideoView/RTCNSGLVideoView. - */ -RTC_OBJC_EXPORT -@protocol RTCVideoViewShading - -/** Callback for I420 frames. Each plane is given as a texture. */ -- (void)applyShadingForFrameWithWidth:(int)width - height:(int)height - rotation:(RTCVideoRotation)rotation - yPlane:(GLuint)yPlane - uPlane:(GLuint)uPlane - vPlane:(GLuint)vPlane; - -/** Callback for NV12 frames. Each plane is given as a texture. */ -- (void)applyShadingForFrameWithWidth:(int)width - height:(int)height - rotation:(RTCVideoRotation)rotation - yPlane:(GLuint)yPlane - uvPlane:(GLuint)uvPlane; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/RTCYUVPlanarBuffer.h b/SDK/TWEBRTC.framework/Headers/RTCYUVPlanarBuffer.h deleted file mode 100644 index 8ceb66c..0000000 --- a/SDK/TWEBRTC.framework/Headers/RTCYUVPlanarBuffer.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2018 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -#import "RTCMacros.h" -#import "RTCVideoFrameBuffer.h" - -NS_ASSUME_NONNULL_BEGIN - -/** Protocol for RTCVideoFrameBuffers containing YUV planar data. */ -RTC_OBJC_EXPORT -@protocol RTCYUVPlanarBuffer - -@property(nonatomic, readonly) int chromaWidth; -@property(nonatomic, readonly) int chromaHeight; -@property(nonatomic, readonly) const uint8_t *dataY; -@property(nonatomic, readonly) const uint8_t *dataU; -@property(nonatomic, readonly) const uint8_t *dataV; -@property(nonatomic, readonly) int strideY; -@property(nonatomic, readonly) int strideU; -@property(nonatomic, readonly) int strideV; - -- (instancetype)initWithWidth:(int)width - height:(int)height - dataY:(const uint8_t *)dataY - dataU:(const uint8_t *)dataU - dataV:(const uint8_t *)dataV; -- (instancetype)initWithWidth:(int)width height:(int)height; -- (instancetype)initWithWidth:(int)width - height:(int)height - strideY:(int)strideY - strideU:(int)strideU - strideV:(int)strideV; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SDK/TWEBRTC.framework/Headers/TWEBRTC.h b/SDK/TWEBRTC.framework/Headers/TWEBRTC.h deleted file mode 100644 index e33c5d1..0000000 --- a/SDK/TWEBRTC.framework/Headers/TWEBRTC.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright 2021 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import diff --git a/SDK/TWEBRTC.framework/Headers/UIDevice+RTCDevice.h b/SDK/TWEBRTC.framework/Headers/UIDevice+RTCDevice.h deleted file mode 100644 index a7f655b..0000000 --- a/SDK/TWEBRTC.framework/Headers/UIDevice+RTCDevice.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright 2016 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#import - -typedef NS_ENUM(NSInteger, RTCDeviceType) { - RTCDeviceTypeUnknown, - RTCDeviceTypeIPhone1G, - RTCDeviceTypeIPhone3G, - RTCDeviceTypeIPhone3GS, - RTCDeviceTypeIPhone4, - RTCDeviceTypeIPhone4Verizon, - RTCDeviceTypeIPhone4S, - RTCDeviceTypeIPhone5GSM, - RTCDeviceTypeIPhone5GSM_CDMA, - RTCDeviceTypeIPhone5CGSM, - RTCDeviceTypeIPhone5CGSM_CDMA, - RTCDeviceTypeIPhone5SGSM, - RTCDeviceTypeIPhone5SGSM_CDMA, - RTCDeviceTypeIPhone6Plus, - RTCDeviceTypeIPhone6, - RTCDeviceTypeIPhone6S, - RTCDeviceTypeIPhone6SPlus, - RTCDeviceTypeIPhone7, - RTCDeviceTypeIPhone7Plus, - RTCDeviceTypeIPhoneSE, - RTCDeviceTypeIPhone8, - RTCDeviceTypeIPhone8Plus, - RTCDeviceTypeIPhoneX, - RTCDeviceTypeIPhoneXS, - RTCDeviceTypeIPhoneXSMax, - RTCDeviceTypeIPhoneXR, - RTCDeviceTypeIPhone11, - RTCDeviceTypeIPhone11Pro, - RTCDeviceTypeIPhone11ProMax, - RTCDeviceTypeIPodTouch1G, - RTCDeviceTypeIPodTouch2G, - RTCDeviceTypeIPodTouch3G, - RTCDeviceTypeIPodTouch4G, - RTCDeviceTypeIPodTouch5G, - RTCDeviceTypeIPodTouch6G, - RTCDeviceTypeIPodTouch7G, - RTCDeviceTypeIPad, - RTCDeviceTypeIPad2Wifi, - RTCDeviceTypeIPad2GSM, - RTCDeviceTypeIPad2CDMA, - RTCDeviceTypeIPad2Wifi2, - RTCDeviceTypeIPadMiniWifi, - RTCDeviceTypeIPadMiniGSM, - RTCDeviceTypeIPadMiniGSM_CDMA, - RTCDeviceTypeIPad3Wifi, - RTCDeviceTypeIPad3GSM_CDMA, - RTCDeviceTypeIPad3GSM, - RTCDeviceTypeIPad4Wifi, - RTCDeviceTypeIPad4GSM, - RTCDeviceTypeIPad4GSM_CDMA, - RTCDeviceTypeIPad5, - RTCDeviceTypeIPad6, - RTCDeviceTypeIPadAirWifi, - RTCDeviceTypeIPadAirCellular, - RTCDeviceTypeIPadAirWifiCellular, - RTCDeviceTypeIPadAir2, - RTCDeviceTypeIPadMini2GWifi, - RTCDeviceTypeIPadMini2GCellular, - RTCDeviceTypeIPadMini2GWifiCellular, - RTCDeviceTypeIPadMini3, - RTCDeviceTypeIPadMini4, - RTCDeviceTypeIPadPro9Inch, - RTCDeviceTypeIPadPro12Inch, - RTCDeviceTypeIPadPro12Inch2, - RTCDeviceTypeIPadPro10Inch, - RTCDeviceTypeIPad7Gen10Inch, - RTCDeviceTypeIPadPro3Gen11Inch, - RTCDeviceTypeIPadPro3Gen12Inch, - RTCDeviceTypeIPadMini5Gen, - RTCDeviceTypeIPadAir3Gen, - RTCDeviceTypeSimulatori386, - RTCDeviceTypeSimulatorx86_64, -}; - -@interface UIDevice (RTCDevice) - -+ (RTCDeviceType)deviceType; -+ (BOOL)isIOS11OrLater; - -@end diff --git a/SDK/TWEBRTC.framework/Info.plist b/SDK/TWEBRTC.framework/Info.plist deleted file mode 100644 index c2ce335..0000000 Binary files a/SDK/TWEBRTC.framework/Info.plist and /dev/null differ diff --git a/SDK/TWEBRTC.framework/LICENSE.md b/SDK/TWEBRTC.framework/LICENSE.md deleted file mode 100644 index a6d3389..0000000 --- a/SDK/TWEBRTC.framework/LICENSE.md +++ /dev/null @@ -1,1647 +0,0 @@ -# webrtc -``` -Copyright (c) 2011, The WebRTC project authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -``` - -# abseil-cpp -``` - - Apache License - Version 2.0, January 2004 - https://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - https://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - -``` - -# base64 -``` -//********************************************************************* -//* Base64 - a simple base64 encoder and decoder. -//* -//* Copyright (c) 1999, Bob Withers - bwit@pobox.com -//* -//* This code may be freely used for any purpose, either personal -//* or commercial, provided the authors copyright notice remains -//* intact. -//* -//* Enhancements by Stanley Yamane: -//* o reverse lookup table for the decode function -//* o reserve string buffer space in advance -//* -//********************************************************************* - -``` - -# boringssl -``` -BoringSSL is a fork of OpenSSL. As such, large parts of it fall under OpenSSL -licensing. Files that are completely new have a Google copyright and an ISC -license. This license is reproduced at the bottom of this file. - -Contributors to BoringSSL are required to follow the CLA rules for Chromium: -https://cla.developers.google.com/clas - -Files in third_party/ have their own licenses, as described therein. The MIT -license, for third_party/fiat, which, unlike other third_party directories, is -compiled into non-test libraries, is included below. - -The OpenSSL toolkit stays under a dual license, i.e. both the conditions of the -OpenSSL License and the original SSLeay license apply to the toolkit. See below -for the actual license texts. Actually both licenses are BSD-style Open Source -licenses. In case of any license issues related to OpenSSL please contact -openssl-core@openssl.org. - -The following are Google-internal bug numbers where explicit permission from -some authors is recorded for use of their work. (This is purely for our own -record keeping.) - 27287199 - 27287880 - 27287883 - - OpenSSL License - --------------- - -/* ==================================================================== - * Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - - Original SSLeay License - ----------------------- - -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - - -ISC license used for completely new code in BoringSSL: - -/* Copyright (c) 2015, Google Inc. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION - * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ - - -The code in third_party/fiat carries the MIT license: - -Copyright (c) 2015-2016 the fiat-crypto authors (see -https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS). - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -Licenses for support code -------------------------- - -Parts of the TLS test suite are under the Go license. This code is not included -in BoringSSL (i.e. libcrypto and libssl) when compiled, however, so -distributing code linked against BoringSSL does not trigger this license: - -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -BoringSSL uses the Chromium test infrastructure to run a continuous build, -trybots etc. The scripts which manage this, and the script for generating build -metadata, are under the Chromium license. Distributing code linked against -BoringSSL does not trigger this license. - -Copyright 2015 The Chromium Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -``` - -# fft -``` -/* - * Copyright(c)1995,97 Mark Olesen <olesen@me.QueensU.CA> - * Queen's Univ at Kingston (Canada) - * - * Permission to use, copy, modify, and distribute this software for - * any purpose without fee is hereby granted, provided that this - * entire notice is included in all copies of any software which is - * or includes a copy or modification of this software and in all - * copies of the supporting documentation for such software. - * - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR QUEEN'S - * UNIVERSITY AT KINGSTON MAKES ANY REPRESENTATION OR WARRANTY OF ANY - * KIND CONCERNING THE MERCHANTABILITY OF THIS SOFTWARE OR ITS - * FITNESS FOR ANY PARTICULAR PURPOSE. - * - * All of which is to say that you can do what you like with this - * source code provided you don't try to sell it as your own and you - * include an unaltered copy of this message (including the - * copyright). - * - * It is also implicitly understood that bug fixes and improvements - * should make their way back to the general Internet community so - * that everyone benefits. - */ - -``` - -# fft4g -``` -/* - * http://www.kurims.kyoto-u.ac.jp/~ooura/fft.html - * Copyright Takuya OOURA, 1996-2001 - * - * You may use, copy, modify and distribute this code for any purpose (include - * commercial use) and without fee. Please refer to this package when you modify - * this code. - */ - -``` - -# fiat -``` -The MIT License (MIT) - -Copyright (c) 2015-2016 the fiat-crypto authors (see -https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS). - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -``` - -# g711 -``` -/* - * SpanDSP - a series of DSP components for telephony - * - * g711.h - In line A-law and u-law conversion routines - * - * Written by Steve Underwood <steveu@coppice.org> - * - * Copyright (C) 2001 Steve Underwood - * - * Despite my general liking of the GPL, I place this code in the - * public domain for the benefit of all mankind - even the slimy - * ones who might try to proprietize my work and use it to my - * detriment. - */ - -``` - -# g722 -``` -/* - * SpanDSP - a series of DSP components for telephony - * - * g722_decode.c - The ITU G.722 codec, decode part. - * - * Written by Steve Underwood <steveu@coppice.org> - * - * Copyright (C) 2005 Steve Underwood - * - * Despite my general liking of the GPL, I place my own contributions - * to this code in the public domain for the benefit of all mankind - - * even the slimy ones who might try to proprietize my work and use it - * to my detriment. - * - * Based in part on a single channel G.722 codec which is: - * - * Copyright (c) CMU 1993 - * Computer Science, Speech Group - * Chengxiang Lu and Alex Hauptmann - */ - -``` - -# jsoncpp -``` -The JsonCpp library's source code, including accompanying documentation, -tests and demonstration applications, are licensed under the following -conditions... - -The author (Baptiste Lepilleur) explicitly disclaims copyright in all -jurisdictions which recognize such a disclaimer. In such jurisdictions, -this software is released into the Public Domain. - -In jurisdictions which do not recognize Public Domain property (e.g. Germany as of -2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is -released under the terms of the MIT License (see below). - -In jurisdictions which recognize Public Domain property, the user of this -software may choose to accept it either as 1) Public Domain, 2) under the -conditions of the MIT License (see below), or 3) under the terms of dual -Public Domain/MIT License conditions described here, as they choose. - -The MIT License is about as close to Public Domain as a license can get, and is -described in clear, concise terms at: - - http://en.wikipedia.org/wiki/MIT_License - -The full text of the MIT License follows: - -======================================================================== -Copyright (c) 2007-2010 Baptiste Lepilleur - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, copy, -modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -======================================================================== -(END LICENSE TEXT) - -The MIT license is compatible with both the GPL and commercial -software, affording one all of the rights of Public Domain with the -minor nuisance of being required to keep the above copyright notice -and license text in the source code. Note also that by accepting the -Public Domain "license" you can re-license your copy using whatever -license you like. - -``` - -# libc++ -``` -============================================================================== -The LLVM Project is under the Apache License v2.0 with LLVM Exceptions: -============================================================================== - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - ----- LLVM Exceptions to the Apache 2.0 License ---- - -As an exception, if, as a result of your compiling your source code, portions -of this Software are embedded into an Object form of such source code, you -may redistribute such embedded portions in such Object form without complying -with the conditions of Sections 4(a), 4(b) and 4(d) of the License. - -In addition, if you combine or link compiled forms of this Software with -software that is licensed under the GPLv2 ("Combined Software") and if a -court of competent jurisdiction determines that the patent provision (Section -3), the indemnity provision (Section 9) or other Section of the License -conflicts with the conditions of the GPLv2, you may retroactively and -prospectively choose to deem waived or otherwise exclude such Section(s) of -the License, but only in their entirety and only with respect to the Combined -Software. - -============================================================================== -Software from third parties included in the LLVM Project: -============================================================================== -The LLVM Project contains third party software which is under different license -terms. All such code will be identified clearly using at least one of two -mechanisms: -1) It will be in a separate directory tree with its own `LICENSE.txt` or - `LICENSE` file at the top containing the specific license and restrictions - which apply to that software, or -2) It will contain specific license and restriction terms at the top of every - file. - -============================================================================== -Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy): -============================================================================== - -The libc++ library is dual licensed under both the University of Illinois -"BSD-Like" license and the MIT license. As a user of this code you may choose -to use it under either license. As a contributor, you agree to allow your code -to be used under both. - -Full text of the relevant licenses is included below. - -============================================================================== - -University of Illinois/NCSA -Open Source License - -Copyright (c) 2009-2019 by the contributors listed in CREDITS.TXT - -All rights reserved. - -Developed by: - - LLVM Team - - University of Illinois at Urbana-Champaign - - http://llvm.org - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal with -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimers. - - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimers in the - documentation and/or other materials provided with the distribution. - - * Neither the names of the LLVM Team, University of Illinois at - Urbana-Champaign, nor the names of its contributors may be used to - endorse or promote products derived from this Software without specific - prior written permission. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE -SOFTWARE. - -============================================================================== - -Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -``` - -# libc++abi -``` -============================================================================== -The LLVM Project is under the Apache License v2.0 with LLVM Exceptions: -============================================================================== - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - ----- LLVM Exceptions to the Apache 2.0 License ---- - -As an exception, if, as a result of your compiling your source code, portions -of this Software are embedded into an Object form of such source code, you -may redistribute such embedded portions in such Object form without complying -with the conditions of Sections 4(a), 4(b) and 4(d) of the License. - -In addition, if you combine or link compiled forms of this Software with -software that is licensed under the GPLv2 ("Combined Software") and if a -court of competent jurisdiction determines that the patent provision (Section -3), the indemnity provision (Section 9) or other Section of the License -conflicts with the conditions of the GPLv2, you may retroactively and -prospectively choose to deem waived or otherwise exclude such Section(s) of -the License, but only in their entirety and only with respect to the Combined -Software. - -============================================================================== -Software from third parties included in the LLVM Project: -============================================================================== -The LLVM Project contains third party software which is under different license -terms. All such code will be identified clearly using at least one of two -mechanisms: -1) It will be in a separate directory tree with its own `LICENSE.txt` or - `LICENSE` file at the top containing the specific license and restrictions - which apply to that software, or -2) It will contain specific license and restriction terms at the top of every - file. - -============================================================================== -Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy): -============================================================================== - -The libc++abi library is dual licensed under both the University of Illinois -"BSD-Like" license and the MIT license. As a user of this code you may choose -to use it under either license. As a contributor, you agree to allow your code -to be used under both. - -Full text of the relevant licenses is included below. - -============================================================================== - -University of Illinois/NCSA -Open Source License - -Copyright (c) 2009-2019 by the contributors listed in CREDITS.TXT - -All rights reserved. - -Developed by: - - LLVM Team - - University of Illinois at Urbana-Champaign - - http://llvm.org - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal with -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimers. - - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimers in the - documentation and/or other materials provided with the distribution. - - * Neither the names of the LLVM Team, University of Illinois at - Urbana-Champaign, nor the names of its contributors may be used to - endorse or promote products derived from this Software without specific - prior written permission. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE -SOFTWARE. - -============================================================================== - -Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -``` - -# libsrtp -``` -/* - * - * Copyright (c) 2001-2017 Cisco Systems, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * - * Neither the name of the Cisco Systems, Inc. nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -``` - -# libvpx -``` -Copyright (c) 2010, The WebM Project authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of Google, nor the WebM Project, nor the names - of its contributors may be used to endorse or promote products - derived from this software without specific prior written - permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -``` - -# libyuv -``` -Copyright 2011 The LibYuv Project Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of Google nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -``` - -# opus -``` -Copyright 2001-2011 Xiph.Org, Skype Limited, Octasic, - Jean-Marc Valin, Timothy B. Terriberry, - CSIRO, Gregory Maxwell, Mark Borgerding, - Erik de Castro Lopo - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -- Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - -- Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - -- Neither the name of Internet Society, IETF or IETF Trust, nor the -names of specific contributors, may be used to endorse or promote -products derived from this software without specific prior written -permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER -OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -Opus is subject to the royalty-free patent licenses which are -specified at: - -Xiph.Org Foundation: -https://datatracker.ietf.org/ipr/1524/ - -Microsoft Corporation: -https://datatracker.ietf.org/ipr/1914/ - -Broadcom Corporation: -https://datatracker.ietf.org/ipr/1526/ - -``` - -# pffft -``` -Copyright (c) 2013 Julien Pommier ( pommier@modartt.com ) - -Based on original fortran 77 code from FFTPACKv4 from NETLIB, -authored by Dr Paul Swarztrauber of NCAR, in 1985. - -As confirmed by the NCAR fftpack software curators, the following -FFTPACKv5 license applies to FFTPACKv4 sources. My changes are -released under the same terms. - -FFTPACK license: - -http://www.cisl.ucar.edu/css/software/fftpack5/ftpk.html - -Copyright (c) 2004 the University Corporation for Atmospheric -Research ("UCAR"). All rights reserved. Developed by NCAR's -Computational and Information Systems Laboratory, UCAR, -www.cisl.ucar.edu. - -Redistribution and use of the Software in source and binary forms, -with or without modification, is permitted provided that the -following conditions are met: - -- Neither the names of NCAR's Computational and Information Systems -Laboratory, the University Corporation for Atmospheric Research, -nor the names of its sponsors or contributors may be used to -endorse or promote products derived from this Software without -specific prior written permission. - -- Redistributions of source code must retain the above copyright -notices, this list of conditions, and the disclaimer below. - -- Redistributions in binary form must reproduce the above copyright -notice, this list of conditions, and the disclaimer below in the -documentation and/or other materials provided with the -distribution. - -THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES OR OTHER LIABILITY, WHETHER IN AN -ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE -SOFTWARE. - -``` - -# rnnoise -``` -Copyright (c) 2017, Mozilla -Copyright (c) 2007-2017, Jean-Marc Valin -Copyright (c) 2005-2017, Xiph.Org Foundation -Copyright (c) 2003-2004, Mark Borgerding - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -- Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - -- Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - -- Neither the name of the Xiph.Org Foundation nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION -OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -``` - -# sigslot -``` -// sigslot.h: Signal/Slot classes -// -// Written by Sarah Thompson (sarah@telergy.com) 2002. -// -// License: Public domain. You are free to use this code however you like, with -// the proviso that the author takes on no responsibility or liability for any -// use. - -``` - -# spl_sqrt_floor -``` -/* - * Written by Wilco Dijkstra, 1996. The following email exchange establishes the - * license. - * - * From: Wilco Dijkstra <Wilco.Dijkstra@ntlworld.com> - * Date: Fri, Jun 24, 2011 at 3:20 AM - * Subject: Re: sqrt routine - * To: Kevin Ma <kma@google.com> - * Hi Kevin, - * Thanks for asking. Those routines are public domain (originally posted to - * comp.sys.arm a long time ago), so you can use them freely for any purpose. - * Cheers, - * Wilco - * - * ----- Original Message ----- - * From: "Kevin Ma" <kma@google.com> - * To: <Wilco.Dijkstra@ntlworld.com> - * Sent: Thursday, June 23, 2011 11:44 PM - * Subject: Fwd: sqrt routine - * Hi Wilco, - * I saw your sqrt routine from several web sites, including - * http://www.finesse.demon.co.uk/steven/sqrt.html. - * Just wonder if there's any copyright information with your Successive - * approximation routines, or if I can freely use it for any purpose. - * Thanks. - * Kevin - */ - -``` - -# usrsctp -``` -(Copied from the COPYRIGHT file of -https://code.google.com/p/sctp-refimpl/source/browse/trunk/COPYRIGHT) --------------------------------------------------------------------------------- - -Copyright (c) 2001, 2002 Cisco Systems, Inc. -Copyright (c) 2002-12 Randall R. Stewart -Copyright (c) 2002-12 Michael Tuexen -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -SUCH DAMAGE. - -``` - diff --git a/SDK/TWEBRTC.framework/Modules/module.modulemap b/SDK/TWEBRTC.framework/Modules/module.modulemap deleted file mode 100644 index ef752f8..0000000 --- a/SDK/TWEBRTC.framework/Modules/module.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module TWEBRTC { - umbrella header "TWEBRTC.h" - - export * - module * { export * } -} diff --git a/SDK/TWEBRTC.framework/TWEBRTC b/SDK/TWEBRTC.framework/TWEBRTC deleted file mode 100755 index acec266..0000000 Binary files a/SDK/TWEBRTC.framework/TWEBRTC and /dev/null differ diff --git a/TCGARKit.podspec b/TCGARKit.podspec deleted file mode 100644 index 8315d86..0000000 --- a/TCGARKit.podspec +++ /dev/null @@ -1,14 +0,0 @@ -Pod::Spec.new do |spec| - spec.name = 'TCGARKit' - spec.version = '1.1.9.1' - spec.license = { :type => 'MIT' } - spec.homepage = 'https://github.com/tencentyun/cloudgame-ios-sdk' - spec.summary = 'Tencent Cloud Gaming Software Development Kit for iOS.' - spec.authors = { 'lyleyu' => 'lyleyu@tencent.com' } - spec.source = { :path => './' } - spec.pod_target_xcconfig = { - 'ENABLE_BITCODE' => 'OFF' - } - spec.vendored_frameworks = 'SDK/TCGARKit.framework' -end - diff --git a/TCGSDK.podspec b/TCGSDK.podspec deleted file mode 100644 index 17bf84c..0000000 --- a/TCGSDK.podspec +++ /dev/null @@ -1,22 +0,0 @@ -Pod::Spec.new do |spec| - spec.name = 'TCGSDK' - spec.version = '1.1.9.1' - spec.license = { :type => 'MIT' } - spec.homepage = 'https://github.com/tencentyun/cloudgame-ios-sdk' - spec.summary = 'Tencent Cloud Gaming Software Development Kit for iOS.' - spec.authors = { 'lyleyu' => 'lyleyu@tencent.com' } - spec.source = { :path => './' } - spec.pod_target_xcconfig = { - 'ENABLE_BITCODE' => 'OFF' - } - spec.vendored_frameworks = 'SDK/TCGSDK.framework', 'SDK/TWEBRTC.framework' - spec.info_plist = { - 'UISupportedInterfaceOrientations' => [ - 'UIInterfaceOrientationPortrait', - 'UIInterfaceOrientationLandscapeLeft', - 'UIInterfaceOrientationLandscapeRight', - ], - 'NSMicrophoneUsageDescription' => '云游戏互动时需要开启麦克风' - } -end - diff --git a/TCGVKey.podspec b/TCGVKey.podspec deleted file mode 100644 index d38f32c..0000000 --- a/TCGVKey.podspec +++ /dev/null @@ -1,14 +0,0 @@ -Pod::Spec.new do |spec| - spec.name = 'TCGVKey' - spec.version = '1.1.9.1' - spec.license = { :type => 'MIT' } - spec.homepage = 'https://github.com/tencentyun/cloudgame-ios-sdk' - spec.summary = 'Tencent Cloud Gaming Software Development Kit for iOS.' - spec.authors = { 'lyleyu' => 'lyleyu@tencent.com' } - spec.source = { :path => './' } - spec.pod_target_xcconfig = { - 'ENABLE_BITCODE' => 'OFF' - } - spec.vendored_frameworks = 'SDK/TCGVKey.framework' -end - diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/css/scss/_index.scss" b/css/scss/_index.scss similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/css/scss/_index.scss" rename to css/scss/_index.scss diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/css/scss/_layout.scss" b/css/scss/_layout.scss similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/css/scss/_layout.scss" rename to css/scss/_layout.scss diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/css/scss/_normalize.scss" b/css/scss/_normalize.scss similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/css/scss/_normalize.scss" rename to css/scss/_normalize.scss diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/css/scss/_object.scss" b/css/scss/_object.scss similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/css/scss/_object.scss" rename to css/scss/_object.scss diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/css/scss/_print.scss" b/css/scss/_print.scss similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/css/scss/_print.scss" rename to css/scss/_print.scss diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/css/scss/_variables.scss" b/css/scss/_variables.scss similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/css/scss/_variables.scss" rename to css/scss/_variables.scss diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/css/scss/_xcode.scss" b/css/scss/_xcode.scss similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/css/scss/_xcode.scss" rename to css/scss/_xcode.scss diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/css/scss/style.scss" b/css/scss/style.scss similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/css/scss/style.scss" rename to css/scss/style.scss diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/css/style.css" b/css/style.css similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/css/style.css" rename to css/style.css diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/hierarchy.html" b/hierarchy.html similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/hierarchy.html" rename to hierarchy.html diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/img/button_bar_background.png" b/img/button_bar_background.png similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/img/button_bar_background.png" rename to img/button_bar_background.png diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/img/disclosure.png" b/img/disclosure.png similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/img/disclosure.png" rename to img/disclosure.png diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/img/disclosure_open.png" b/img/disclosure_open.png similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/img/disclosure_open.png" rename to img/disclosure_open.png diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/img/library_background.png" b/img/library_background.png similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/img/library_background.png" rename to img/library_background.png diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/img/title_background.png" b/img/title_background.png similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/img/title_background.png" rename to img/title_background.png diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/index.html" b/index.html similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/index.html" rename to index.html diff --git "a/Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/js/script.js" b/js/script.js similarity index 100% rename from "Doc/api\350\257\246\347\273\206\350\257\264\346\230\216\346\226\207\346\241\243/js/script.js" rename to js/script.js