├── .github └── FUNDING.yml ├── Podfile ├── Podfile.lock ├── Pods ├── GoogleWebRTC │ ├── Frameworks │ │ └── frameworks │ │ │ └── WebRTC.framework │ │ │ ├── Headers │ │ │ ├── RTCAudioSession.h │ │ │ ├── RTCAudioSessionConfiguration.h │ │ │ ├── RTCAudioSource.h │ │ │ ├── RTCAudioTrack.h │ │ │ ├── RTCCVPixelBuffer.h │ │ │ ├── RTCCallbackLogger.h │ │ │ ├── RTCCameraPreviewView.h │ │ │ ├── RTCCameraVideoCapturer.h │ │ │ ├── RTCCertificate.h │ │ │ ├── RTCCodecSpecificInfo.h │ │ │ ├── RTCCodecSpecificInfoH264.h │ │ │ ├── RTCConfiguration.h │ │ │ ├── RTCCryptoOptions.h │ │ │ ├── RTCDataChannel.h │ │ │ ├── RTCDataChannelConfiguration.h │ │ │ ├── RTCDefaultVideoDecoderFactory.h │ │ │ ├── RTCDefaultVideoEncoderFactory.h │ │ │ ├── RTCDispatcher.h │ │ │ ├── RTCDtmfSender.h │ │ │ ├── RTCEAGLVideoView.h │ │ │ ├── RTCEncodedImage.h │ │ │ ├── RTCFieldTrials.h │ │ │ ├── RTCFileLogger.h │ │ │ ├── RTCFileVideoCapturer.h │ │ │ ├── RTCH264ProfileLevelId.h │ │ │ ├── RTCI420Buffer.h │ │ │ ├── RTCIceCandidate.h │ │ │ ├── RTCIceServer.h │ │ │ ├── RTCLegacyStatsReport.h │ │ │ ├── RTCLogging.h │ │ │ ├── RTCMTLVideoView.h │ │ │ ├── RTCMacros.h │ │ │ ├── RTCMediaConstraints.h │ │ │ ├── RTCMediaSource.h │ │ │ ├── RTCMediaStream.h │ │ │ ├── RTCMediaStreamTrack.h │ │ │ ├── RTCMetrics.h │ │ │ ├── RTCMetricsSampleInfo.h │ │ │ ├── RTCMutableI420Buffer.h │ │ │ ├── RTCMutableYUVPlanarBuffer.h │ │ │ ├── RTCNativeI420Buffer.h │ │ │ ├── RTCNativeMutableI420Buffer.h │ │ │ ├── RTCNetworkMonitor.h │ │ │ ├── RTCPeerConnection.h │ │ │ ├── RTCPeerConnectionFactory.h │ │ │ ├── RTCPeerConnectionFactoryOptions.h │ │ │ ├── RTCRtcpParameters.h │ │ │ ├── RTCRtpCodecParameters.h │ │ │ ├── RTCRtpEncodingParameters.h │ │ │ ├── RTCRtpFragmentationHeader.h │ │ │ ├── RTCRtpHeaderExtension.h │ │ │ ├── RTCRtpParameters.h │ │ │ ├── RTCRtpReceiver.h │ │ │ ├── RTCRtpSender.h │ │ │ ├── RTCRtpTransceiver.h │ │ │ ├── RTCSSLAdapter.h │ │ │ ├── RTCSessionDescription.h │ │ │ ├── RTCStatisticsReport.h │ │ │ ├── RTCTracing.h │ │ │ ├── RTCVideoCapturer.h │ │ │ ├── RTCVideoCodecConstants.h │ │ │ ├── RTCVideoCodecInfo.h │ │ │ ├── RTCVideoDecoder.h │ │ │ ├── RTCVideoDecoderFactory.h │ │ │ ├── RTCVideoDecoderFactoryH264.h │ │ │ ├── RTCVideoDecoderH264.h │ │ │ ├── RTCVideoDecoderVP8.h │ │ │ ├── RTCVideoDecoderVP9.h │ │ │ ├── RTCVideoEncoder.h │ │ │ ├── RTCVideoEncoderFactory.h │ │ │ ├── RTCVideoEncoderFactoryH264.h │ │ │ ├── RTCVideoEncoderH264.h │ │ │ ├── RTCVideoEncoderQpThresholds.h │ │ │ ├── RTCVideoEncoderSettings.h │ │ │ ├── RTCVideoEncoderVP8.h │ │ │ ├── RTCVideoEncoderVP9.h │ │ │ ├── RTCVideoFrame.h │ │ │ ├── RTCVideoFrameBuffer.h │ │ │ ├── RTCVideoRenderer.h │ │ │ ├── RTCVideoSource.h │ │ │ ├── RTCVideoTrack.h │ │ │ ├── RTCVideoViewShading.h │ │ │ ├── RTCYUVPlanarBuffer.h │ │ │ ├── UIDevice+RTCDevice.h │ │ │ └── WebRTC.h │ │ │ ├── Info.plist │ │ │ ├── LICENSE.md │ │ │ ├── Modules │ │ │ └── module.modulemap │ │ │ └── WebRTC │ ├── LICENSE.md │ └── README.md ├── Headers │ ├── Private │ │ └── MBProgressHUD │ │ │ └── MBProgressHUD.h │ └── Public │ │ ├── IQKeyboardManagerSwift │ │ ├── IQKeyboardManagerSwift-umbrella.h │ │ └── IQKeyboardManagerSwift.modulemap │ │ ├── MBProgressHUD │ │ └── MBProgressHUD.h │ │ └── Starscream │ │ ├── Starscream-umbrella.h │ │ └── Starscream.modulemap ├── IQKeyboardManagerSwift │ ├── IQKeyboardManagerSwift │ │ ├── Configuration │ │ │ ├── IQActiveConfiguration.swift │ │ │ ├── IQBarButtonItemConfiguration.swift │ │ │ ├── IQKeyboardConfiguration.swift │ │ │ ├── IQRootControllerConfiguration.swift │ │ │ ├── IQScrollViewConfiguration.swift │ │ │ ├── IQToolbarConfiguration.swift │ │ │ └── IQToolbarPlaceholderConfiguration.swift │ │ ├── Constants │ │ │ └── IQKeyboardManagerConstants.swift │ │ ├── IQKeyboardManager │ │ │ ├── IQKeyboardManager+Debug.swift │ │ │ ├── IQKeyboardManager+Deprecated.swift │ │ │ ├── IQKeyboardManager+Internal.swift │ │ │ ├── IQKeyboardManager+Position.swift │ │ │ ├── IQKeyboardManager+Toolbar.swift │ │ │ ├── IQKeyboardManager+ToolbarActions.swift │ │ │ ├── IQKeyboardManager+UIKeyboardNotification.swift │ │ │ ├── IQKeyboardManager+UITextFieldViewNotification.swift │ │ │ └── IQKeyboardManager.swift │ │ ├── IQKeyboardManagerCompatible │ │ │ └── IQKeyboardManagerCompatible.swift │ │ ├── IQTextView │ │ │ ├── IQPlaceholderable.swift │ │ │ └── IQTextView.swift │ │ ├── IQToolbar │ │ │ ├── IQBarButtonItem.swift │ │ │ ├── IQInvocation.swift │ │ │ ├── IQPreviousNextView.swift │ │ │ ├── IQTitleBarButtonItem.swift │ │ │ ├── IQToolbar.swift │ │ │ ├── IQUIView+IQKeyboardToolbar.swift │ │ │ └── IQUIView+IQKeyboardToolbarDeprecated.swift │ │ ├── LIsteners │ │ │ ├── IQKeyboardListener.swift │ │ │ ├── IQTextFieldViewListener.swift │ │ │ └── Info │ │ │ │ ├── IQKeyboardInfo.swift │ │ │ │ └── IQTextFieldViewInfo.swift │ │ ├── PrivacyInfo.xcprivacy │ │ ├── ReturnKeyHandler │ │ │ ├── IQKeyboardReturnKeyHandler+TextFieldDelegate.swift │ │ │ ├── IQKeyboardReturnKeyHandler+TextViewDelegate.swift │ │ │ ├── IQKeyboardReturnKeyHandler.swift │ │ │ └── IQTextFieldViewInfoModel.swift │ │ └── UIKitExtensions │ │ │ ├── IQNSArray+Sort.swift │ │ │ ├── IQUICollectionView+Additions.swift │ │ │ ├── IQUIScrollView+Additions.swift │ │ │ ├── IQUITableView+Additions.swift │ │ │ ├── IQUITextFieldView+Additions.swift │ │ │ ├── IQUIView+Hierarchy.swift │ │ │ ├── IQUIViewController+Additions.swift │ │ │ ├── MainActor+AssumeIsolated.swift │ │ │ └── UIImage+NextPrevious.swift │ ├── LICENSE.md │ └── README.md ├── MBProgressHUD │ ├── LICENSE │ ├── MBProgressHUD.h │ ├── MBProgressHUD.m │ └── README.mdown ├── Manifest.lock ├── Pods.xcodeproj │ ├── project.pbxproj │ └── xcuserdata │ │ ├── jinfulai.xcuserdatad │ │ └── xcschemes │ │ │ ├── GoogleWebRTC.xcscheme │ │ │ ├── IQKeyboardManagerSwift-IQKeyboardManagerSwift.xcscheme │ │ │ ├── IQKeyboardManagerSwift.xcscheme │ │ │ ├── MBProgressHUD.xcscheme │ │ │ ├── Pods-SwftDemo.xcscheme │ │ │ ├── Starscream-Starscream_Privacy.xcscheme │ │ │ ├── Starscream.xcscheme │ │ │ └── xcschememanagement.plist │ │ └── zhangye.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist ├── Starscream │ ├── LICENSE │ ├── README.md │ └── Sources │ │ ├── Compression │ │ ├── Compression.swift │ │ └── WSCompression.swift │ │ ├── DataBytes │ │ └── Data+Extensions.swift │ │ ├── Engine │ │ ├── Engine.swift │ │ ├── NativeEngine.swift │ │ └── WSEngine.swift │ │ ├── Framer │ │ ├── FoundationHTTPHandler.swift │ │ ├── FoundationHTTPServerHandler.swift │ │ ├── FrameCollector.swift │ │ ├── Framer.swift │ │ ├── HTTPHandler.swift │ │ └── StringHTTPHandler.swift │ │ ├── PrivacyInfo.xcprivacy │ │ ├── Security │ │ ├── FoundationSecurity.swift │ │ └── Security.swift │ │ ├── Server │ │ ├── Server.swift │ │ └── WebSocketServer.swift │ │ ├── Starscream │ │ └── WebSocket.swift │ │ └── Transport │ │ ├── FoundationTransport.swift │ │ ├── TCPTransport.swift │ │ └── Transport.swift └── Target Support Files │ ├── GoogleWebRTC │ ├── GoogleWebRTC.debug.xcconfig │ └── GoogleWebRTC.release.xcconfig │ ├── IQKeyboardManagerSwift │ ├── IQKeyboardManagerSwift-dummy.m │ ├── IQKeyboardManagerSwift-prefix.pch │ ├── IQKeyboardManagerSwift-umbrella.h │ ├── IQKeyboardManagerSwift.debug.xcconfig │ ├── IQKeyboardManagerSwift.modulemap │ ├── IQKeyboardManagerSwift.release.xcconfig │ └── ResourceBundle-IQKeyboardManagerSwift-IQKeyboardManagerSwift-Info.plist │ ├── MBProgressHUD │ ├── MBProgressHUD-dummy.m │ ├── MBProgressHUD-prefix.pch │ ├── MBProgressHUD.debug.xcconfig │ └── MBProgressHUD.release.xcconfig │ ├── Pods-SwftDemo │ ├── Pods-SwftDemo-acknowledgements.markdown │ ├── Pods-SwftDemo-acknowledgements.plist │ ├── Pods-SwftDemo-dummy.m │ ├── Pods-SwftDemo-frameworks-Debug-input-files.xcfilelist │ ├── Pods-SwftDemo-frameworks-Debug-output-files.xcfilelist │ ├── Pods-SwftDemo-frameworks-Release-input-files.xcfilelist │ ├── Pods-SwftDemo-frameworks-Release-output-files.xcfilelist │ ├── Pods-SwftDemo-frameworks.sh │ ├── Pods-SwftDemo-resources-Debug-input-files.xcfilelist │ ├── Pods-SwftDemo-resources-Debug-output-files.xcfilelist │ ├── Pods-SwftDemo-resources-Release-input-files.xcfilelist │ ├── Pods-SwftDemo-resources-Release-output-files.xcfilelist │ ├── Pods-SwftDemo-resources.sh │ ├── Pods-SwftDemo-umbrella.h │ ├── Pods-SwftDemo.debug.xcconfig │ ├── Pods-SwftDemo.modulemap │ └── Pods-SwftDemo.release.xcconfig │ └── Starscream │ ├── ResourceBundle-Starscream_Privacy-Starscream-Info.plist │ ├── Starscream-dummy.m │ ├── Starscream-prefix.pch │ ├── Starscream-umbrella.h │ ├── Starscream.debug.xcconfig │ ├── Starscream.modulemap │ └── Starscream.release.xcconfig ├── README.md ├── SwftDemo.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── xcuserdata │ │ └── jinfulai.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ ├── jinfulai.xcuserdatad │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ └── xcschemes │ │ └── xcschememanagement.plist │ └── zhangye.xcuserdatad │ └── xcschemes │ └── xcschememanagement.plist ├── SwftDemo.xcworkspace ├── contents.xcworkspacedata ├── xcshareddata │ └── IDEWorkspaceChecks.plist └── xcuserdata │ ├── jinfulai.xcuserdatad │ ├── IDEFindNavigatorScopes.plist │ ├── UserInterfaceState.xcuserstate │ └── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ └── zhangye.xcuserdatad │ ├── UserInterfaceState.xcuserstate │ └── xcdebugger │ └── Breakpoints_v2.xcbkptlist └── SwftDemo ├── AppDelegate.swift ├── Assets.xcassets ├── AppIcon.appiconset │ ├── Contents.json │ └── 资源 14.png └── Contents.json ├── Base.lproj └── LaunchScreen.storyboard ├── Extention ├── Extention+MBProgress.swift └── MaciroDefine.swift ├── Info.plist ├── RealTim-WebRTC ├── RealTimeApiWebRTCMainVC.swift └── RealTimeApiWebRTCMainVC.xib ├── RealTime-WebSocket ├── AudioVolumeView │ └── AudioVisualizerView.swift ├── PlayAudio │ └── PlayAudioCotinuouslyManager.swift ├── RealTimeApiWebSocketMainVC.swift ├── RealTimeApiWebSocketMainVC.xib ├── RecordAudio │ └── RecordAudioManager.swift └── WebSocket │ └── WebSocketManager.swift ├── RootViewController.swift ├── RootViewController.xib └── SwftDemo-Bridging-Header.h /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | buy_me_a_coffee: fuwei007 2 | 3 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | target 'SwftDemo' do 2 | pod 'Starscream' 3 | pod 'MBProgressHUD' 4 | pod 'IQKeyboardManagerSwift' 5 | pod "GoogleWebRTC" 6 | end 7 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - GoogleWebRTC (1.1.32000) 3 | - IQKeyboardManagerSwift (7.1.1) 4 | - MBProgressHUD (1.2.0) 5 | - Starscream (4.0.8) 6 | 7 | DEPENDENCIES: 8 | - GoogleWebRTC 9 | - IQKeyboardManagerSwift 10 | - MBProgressHUD 11 | - Starscream 12 | 13 | SPEC REPOS: 14 | trunk: 15 | - GoogleWebRTC 16 | - IQKeyboardManagerSwift 17 | - MBProgressHUD 18 | - Starscream 19 | 20 | SPEC CHECKSUMS: 21 | GoogleWebRTC: 4d261187b30512efdb711d21fa961a6adf138717 22 | IQKeyboardManagerSwift: d7f3d3a562c237a0e7335e657cd598c452f57f1b 23 | MBProgressHUD: 3ee5efcc380f6a79a7cc9b363dd669c5e1ae7406 24 | Starscream: 19b5533ddb925208db698f0ac508a100b884a1b9 25 | 26 | PODFILE CHECKSUM: 80f9dca7b05274ee2433240a4520eedd06a422dd 27 | 28 | COCOAPODS: 1.16.2 29 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCAudioSessionConfiguration.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | #import 13 | 14 | #import "RTCMacros.h" 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | RTC_EXTERN const int kRTCAudioSessionPreferredNumberOfChannels; 19 | RTC_EXTERN const double kRTCAudioSessionHighPerformanceSampleRate; 20 | RTC_EXTERN const double kRTCAudioSessionLowComplexitySampleRate; 21 | RTC_EXTERN const double kRTCAudioSessionHighPerformanceIOBufferDuration; 22 | RTC_EXTERN const double kRTCAudioSessionLowComplexityIOBufferDuration; 23 | 24 | // Struct to hold configuration values. 25 | RTC_OBJC_EXPORT 26 | @interface RTC_OBJC_TYPE (RTCAudioSessionConfiguration) : NSObject 27 | 28 | @property(nonatomic, strong) NSString *category; 29 | @property(nonatomic, assign) AVAudioSessionCategoryOptions categoryOptions; 30 | @property(nonatomic, strong) NSString *mode; 31 | @property(nonatomic, assign) double sampleRate; 32 | @property(nonatomic, assign) NSTimeInterval ioBufferDuration; 33 | @property(nonatomic, assign) NSInteger inputNumberOfChannels; 34 | @property(nonatomic, assign) NSInteger outputNumberOfChannels; 35 | 36 | /** Initializes configuration to defaults. */ 37 | - (instancetype)init NS_DESIGNATED_INITIALIZER; 38 | 39 | /** Returns the current configuration of the audio session. */ 40 | + (instancetype)currentConfiguration; 41 | /** Returns the configuration that WebRTC needs. */ 42 | + (instancetype)webRTCConfiguration; 43 | /** Provide a way to override the default configuration. */ 44 | + (void)setWebRTCConfiguration:(RTC_OBJC_TYPE(RTCAudioSessionConfiguration) *)configuration; 45 | 46 | @end 47 | 48 | NS_ASSUME_NONNULL_END 49 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCAudioSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCMediaSource.h" 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | RTC_OBJC_EXPORT 19 | @interface RTC_OBJC_TYPE (RTCAudioSource) : RTC_OBJC_TYPE(RTCMediaSource) 20 | 21 | - (instancetype)init NS_UNAVAILABLE; 22 | 23 | // Sets the volume for the RTCMediaSource. |volume| is a gain value in the range 24 | // [0, 10]. 25 | // Temporary fix to be able to modify volume of remote audio tracks. 26 | // TODO(kthelgason): Property stays here temporarily until a proper volume-api 27 | // is available on the surface exposed by webrtc. 28 | @property(nonatomic, assign) double volume; 29 | 30 | @end 31 | 32 | NS_ASSUME_NONNULL_END 33 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCAudioTrack.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import "RTCMacros.h" 12 | #import "RTCMediaStreamTrack.h" 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | @class RTC_OBJC_TYPE(RTCAudioSource); 17 | 18 | RTC_OBJC_EXPORT 19 | @interface RTC_OBJC_TYPE (RTCAudioTrack) : RTC_OBJC_TYPE(RTCMediaStreamTrack) 20 | 21 | - (instancetype)init NS_UNAVAILABLE; 22 | 23 | /** The audio source for this audio track. */ 24 | @property(nonatomic, readonly) RTC_OBJC_TYPE(RTCAudioSource) * source; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCCVPixelBuffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCVideoFrameBuffer.h" 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | /** RTCVideoFrameBuffer containing a CVPixelBufferRef */ 19 | RTC_OBJC_EXPORT 20 | @interface RTC_OBJC_TYPE (RTCCVPixelBuffer) : NSObject 21 | 22 | @property(nonatomic, readonly) CVPixelBufferRef pixelBuffer; 23 | @property(nonatomic, readonly) int cropX; 24 | @property(nonatomic, readonly) int cropY; 25 | @property(nonatomic, readonly) int cropWidth; 26 | @property(nonatomic, readonly) int cropHeight; 27 | 28 | + (NSSet *)supportedPixelFormats; 29 | 30 | - (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer; 31 | - (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer 32 | adaptedWidth:(int)adaptedWidth 33 | adaptedHeight:(int)adaptedHeight 34 | cropWidth:(int)cropWidth 35 | cropHeight:(int)cropHeight 36 | cropX:(int)cropX 37 | cropY:(int)cropY; 38 | 39 | - (BOOL)requiresCropping; 40 | - (BOOL)requiresScalingToWidth:(int)width height:(int)height; 41 | - (int)bufferSizeForCroppingAndScalingToWidth:(int)width height:(int)height; 42 | 43 | /** The minimum size of the |tmpBuffer| must be the number of bytes returned from the 44 | * bufferSizeForCroppingAndScalingToWidth:height: method. 45 | * If that size is 0, the |tmpBuffer| may be nil. 46 | */ 47 | - (BOOL)cropAndScaleTo:(CVPixelBufferRef)outputPixelBuffer 48 | withTempBuffer:(nullable uint8_t *)tmpBuffer; 49 | 50 | @end 51 | 52 | NS_ASSUME_NONNULL_END 53 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCCallbackLogger.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCLogging.h" 14 | #import "RTCMacros.h" 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | typedef void (^RTCCallbackLoggerMessageHandler)(NSString *message); 19 | typedef void (^RTCCallbackLoggerMessageAndSeverityHandler)(NSString *message, 20 | RTCLoggingSeverity severity); 21 | 22 | // This class intercepts WebRTC logs and forwards them to a registered block. 23 | // This class is not threadsafe. 24 | RTC_OBJC_EXPORT 25 | @interface RTC_OBJC_TYPE (RTCCallbackLogger) : NSObject 26 | 27 | // The severity level to capture. The default is kRTCLoggingSeverityInfo. 28 | @property(nonatomic, assign) RTCLoggingSeverity severity; 29 | 30 | // The callback handler will be called on the same thread that does the 31 | // logging, so if the logging callback can be slow it may be a good idea 32 | // to implement dispatching to some other queue. 33 | - (void)start:(nullable RTCCallbackLoggerMessageHandler)handler; 34 | - (void)startWithMessageAndSeverityHandler: 35 | (nullable RTCCallbackLoggerMessageAndSeverityHandler)handler; 36 | 37 | - (void)stop; 38 | 39 | @end 40 | 41 | NS_ASSUME_NONNULL_END 42 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCCameraPreviewView.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | #import 13 | 14 | #import "RTCMacros.h" 15 | 16 | @class AVCaptureSession; 17 | 18 | /** RTCCameraPreviewView is a view that renders local video from an 19 | * AVCaptureSession. 20 | */ 21 | RTC_OBJC_EXPORT 22 | @interface RTC_OBJC_TYPE (RTCCameraPreviewView) : UIView 23 | 24 | /** The capture session being rendered in the view. Capture session 25 | * is assigned to AVCaptureVideoPreviewLayer async in the same 26 | * queue that the AVCaptureSession is started/stopped. 27 | */ 28 | @property(nonatomic, strong) AVCaptureSession* captureSession; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCCameraVideoCapturer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | #import 13 | 14 | #import "RTCMacros.h" 15 | #import "RTCVideoCapturer.h" 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | RTC_OBJC_EXPORT 20 | // Camera capture that implements RTCVideoCapturer. Delivers frames to a 21 | // RTCVideoCapturerDelegate (usually RTCVideoSource). 22 | NS_EXTENSION_UNAVAILABLE_IOS("Camera not available in app extensions.") 23 | @interface RTC_OBJC_TYPE (RTCCameraVideoCapturer) : RTC_OBJC_TYPE(RTCVideoCapturer) 24 | 25 | // Capture session that is used for capturing. Valid from initialization to dealloc. 26 | @property(readonly, nonatomic) AVCaptureSession *captureSession; 27 | 28 | // Returns list of available capture devices that support video capture. 29 | + (NSArray *)captureDevices; 30 | // Returns list of formats that are supported by this class for this device. 31 | + (NSArray *)supportedFormatsForDevice:(AVCaptureDevice *)device; 32 | 33 | // Returns the most efficient supported output pixel format for this capturer. 34 | - (FourCharCode)preferredOutputPixelFormat; 35 | 36 | // Starts the capture session asynchronously and notifies callback on completion. 37 | // The device will capture video in the format given in the `format` parameter. If the pixel format 38 | // in `format` is supported by the WebRTC pipeline, the same pixel format will be used for the 39 | // output. Otherwise, the format returned by `preferredOutputPixelFormat` will be used. 40 | - (void)startCaptureWithDevice:(AVCaptureDevice *)device 41 | format:(AVCaptureDeviceFormat *)format 42 | fps:(NSInteger)fps 43 | completionHandler:(nullable void (^)(NSError *))completionHandler; 44 | // Stops the capture session asynchronously and notifies callback on completion. 45 | - (void)stopCaptureWithCompletionHandler:(nullable void (^)(void))completionHandler; 46 | 47 | // Starts the capture session asynchronously. 48 | - (void)startCaptureWithDevice:(AVCaptureDevice *)device 49 | format:(AVCaptureDeviceFormat *)format 50 | fps:(NSInteger)fps; 51 | // Stops the capture session asynchronously. 52 | - (void)stopCapture; 53 | 54 | @end 55 | 56 | NS_ASSUME_NONNULL_END 57 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCCertificate.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_OBJC_EXPORT 18 | @interface RTC_OBJC_TYPE (RTCCertificate) : NSObject 19 | 20 | /** Private key in PEM. */ 21 | @property(nonatomic, readonly, copy) NSString *private_key; 22 | 23 | /** Public key in an x509 cert encoded in PEM. */ 24 | @property(nonatomic, readonly, copy) NSString *certificate; 25 | 26 | /** 27 | * Initialize an RTCCertificate with PEM strings for private_key and certificate. 28 | */ 29 | - (instancetype)initWithPrivateKey:(NSString *)private_key 30 | certificate:(NSString *)certificate NS_DESIGNATED_INITIALIZER; 31 | 32 | - (instancetype)init NS_UNAVAILABLE; 33 | 34 | /** Generate a new certificate for 're' use. 35 | * 36 | * Optional dictionary of parameters. Defaults to KeyType ECDSA if none are 37 | * provided. 38 | * - name: "ECDSA" or "RSASSA-PKCS1-v1_5" 39 | */ 40 | + (nullable RTC_OBJC_TYPE(RTCCertificate) *)generateCertificateWithParams:(NSDictionary *)params; 41 | 42 | @end 43 | 44 | NS_ASSUME_NONNULL_END 45 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCCodecSpecificInfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** Implement this protocol to pass codec specific info from the encoder. 18 | * Corresponds to webrtc::CodecSpecificInfo. 19 | */ 20 | RTC_OBJC_EXPORT 21 | @protocol RTC_OBJC_TYPE 22 | (RTCCodecSpecificInfo) @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCCodecSpecificInfoH264.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCCodecSpecificInfo.h" 14 | #import "RTCMacros.h" 15 | 16 | /** Class for H264 specific config. */ 17 | typedef NS_ENUM(NSUInteger, RTCH264PacketizationMode) { 18 | RTCH264PacketizationModeNonInterleaved = 0, // Mode 1 - STAP-A, FU-A is allowed 19 | RTCH264PacketizationModeSingleNalUnit // Mode 0 - only single NALU allowed 20 | }; 21 | 22 | RTC_OBJC_EXPORT 23 | @interface RTC_OBJC_TYPE (RTCCodecSpecificInfoH264) : NSObject 24 | 25 | @property(nonatomic, assign) RTCH264PacketizationMode packetizationMode; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCCryptoOptions.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** 18 | * Objective-C bindings for webrtc::CryptoOptions. This API had to be flattened 19 | * as Objective-C doesn't support nested structures. 20 | */ 21 | RTC_OBJC_EXPORT 22 | @interface RTC_OBJC_TYPE (RTCCryptoOptions) : NSObject 23 | 24 | /** 25 | * Enable GCM crypto suites from RFC 7714 for SRTP. GCM will only be used 26 | * if both sides enable it 27 | */ 28 | @property(nonatomic, assign) BOOL srtpEnableGcmCryptoSuites; 29 | /** 30 | * If set to true, the (potentially insecure) crypto cipher 31 | * SRTP_AES128_CM_SHA1_32 will be included in the list of supported ciphers 32 | * during negotiation. It will only be used if both peers support it and no 33 | * other ciphers get preferred. 34 | */ 35 | @property(nonatomic, assign) BOOL srtpEnableAes128Sha1_32CryptoCipher; 36 | /** 37 | * If set to true, encrypted RTP header extensions as defined in RFC 6904 38 | * will be negotiated. They will only be used if both peers support them. 39 | */ 40 | @property(nonatomic, assign) BOOL srtpEnableEncryptedRtpHeaderExtensions; 41 | 42 | /** 43 | * If set all RtpSenders must have an FrameEncryptor attached to them before 44 | * they are allowed to send packets. All RtpReceivers must have a 45 | * FrameDecryptor attached to them before they are able to receive packets. 46 | */ 47 | @property(nonatomic, assign) BOOL sframeRequireFrameEncryption; 48 | 49 | /** 50 | * Initializes CryptoOptions with all possible options set explicitly. This 51 | * is done when converting from a native RTCConfiguration.crypto_options. 52 | */ 53 | - (instancetype)initWithSrtpEnableGcmCryptoSuites:(BOOL)srtpEnableGcmCryptoSuites 54 | srtpEnableAes128Sha1_32CryptoCipher:(BOOL)srtpEnableAes128Sha1_32CryptoCipher 55 | srtpEnableEncryptedRtpHeaderExtensions:(BOOL)srtpEnableEncryptedRtpHeaderExtensions 56 | sframeRequireFrameEncryption:(BOOL)sframeRequireFrameEncryption 57 | NS_DESIGNATED_INITIALIZER; 58 | 59 | - (instancetype)init NS_UNAVAILABLE; 60 | 61 | @end 62 | 63 | NS_ASSUME_NONNULL_END 64 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCDataChannelConfiguration.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | #import 13 | 14 | #import "RTCMacros.h" 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | RTC_OBJC_EXPORT 19 | @interface RTC_OBJC_TYPE (RTCDataChannelConfiguration) : NSObject 20 | 21 | /** Set to YES if ordered delivery is required. */ 22 | @property(nonatomic, assign) BOOL isOrdered; 23 | 24 | /** Deprecated. Use maxPacketLifeTime. */ 25 | @property(nonatomic, assign) NSInteger maxRetransmitTimeMs DEPRECATED_ATTRIBUTE; 26 | 27 | /** 28 | * Max period in milliseconds in which retransmissions will be sent. After this 29 | * time, no more retransmissions will be sent. -1 if unset. 30 | */ 31 | @property(nonatomic, assign) int maxPacketLifeTime; 32 | 33 | /** The max number of retransmissions. -1 if unset. */ 34 | @property(nonatomic, assign) int maxRetransmits; 35 | 36 | /** Set to YES if the channel has been externally negotiated and we do not send 37 | * an in-band signalling in the form of an "open" message. 38 | */ 39 | @property(nonatomic, assign) BOOL isNegotiated; 40 | 41 | /** Deprecated. Use channelId. */ 42 | @property(nonatomic, assign) int streamId DEPRECATED_ATTRIBUTE; 43 | 44 | /** The id of the data channel. */ 45 | @property(nonatomic, assign) int channelId; 46 | 47 | /** Set by the application and opaque to the WebRTC implementation. */ 48 | @property(nonatomic) NSString* protocol; 49 | 50 | @end 51 | 52 | NS_ASSUME_NONNULL_END 53 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCDefaultVideoDecoderFactory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCVideoDecoderFactory.h" 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | /** This decoder factory include support for all codecs bundled with WebRTC. If using custom 19 | * codecs, create custom implementations of RTCVideoEncoderFactory and 20 | * RTCVideoDecoderFactory. 21 | */ 22 | RTC_OBJC_EXPORT 23 | @interface RTC_OBJC_TYPE (RTCDefaultVideoDecoderFactory) : NSObject 24 | @end 25 | 26 | NS_ASSUME_NONNULL_END 27 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCDefaultVideoEncoderFactory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCVideoEncoderFactory.h" 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | /** This encoder factory include support for all codecs bundled with WebRTC. If using custom 19 | * codecs, create custom implementations of RTCVideoEncoderFactory and 20 | * RTCVideoDecoderFactory. 21 | */ 22 | RTC_OBJC_EXPORT 23 | @interface RTC_OBJC_TYPE (RTCDefaultVideoEncoderFactory) : NSObject 24 | 25 | @property(nonatomic, retain) RTC_OBJC_TYPE(RTCVideoCodecInfo) *preferredCodec; 26 | 27 | + (NSArray *)supportedCodecs; 28 | 29 | @end 30 | 31 | NS_ASSUME_NONNULL_END 32 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCDispatcher.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | typedef NS_ENUM(NSInteger, RTCDispatcherQueueType) { 16 | // Main dispatcher queue. 17 | RTCDispatcherTypeMain, 18 | // Used for starting/stopping AVCaptureSession, and assigning 19 | // capture session to AVCaptureVideoPreviewLayer. 20 | RTCDispatcherTypeCaptureSession, 21 | // Used for operations on AVAudioSession. 22 | RTCDispatcherTypeAudioSession, 23 | // Used for operations on NWPathMonitor. 24 | RTCDispatcherTypeNetworkMonitor, 25 | }; 26 | 27 | /** Dispatcher that asynchronously dispatches blocks to a specific 28 | * shared dispatch queue. 29 | */ 30 | RTC_OBJC_EXPORT 31 | @interface RTC_OBJC_TYPE (RTCDispatcher) : NSObject 32 | 33 | - (instancetype)init NS_UNAVAILABLE; 34 | 35 | /** Dispatch the block asynchronously on the queue for dispatchType. 36 | * @param dispatchType The queue type to dispatch on. 37 | * @param block The block to dispatch asynchronously. 38 | */ 39 | + (void)dispatchAsyncOnType:(RTCDispatcherQueueType)dispatchType block:(dispatch_block_t)block; 40 | 41 | /** Returns YES if run on queue for the dispatchType otherwise NO. 42 | * Useful for asserting that a method is run on a correct queue. 43 | */ 44 | + (BOOL)isOnQueueForType:(RTCDispatcherQueueType)dispatchType; 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCEAGLVideoView.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | #import 13 | 14 | #import "RTCMacros.h" 15 | #import "RTCVideoRenderer.h" 16 | #import "RTCVideoViewShading.h" 17 | 18 | NS_ASSUME_NONNULL_BEGIN 19 | 20 | @class RTC_OBJC_TYPE(RTCEAGLVideoView); 21 | 22 | /** 23 | * RTCEAGLVideoView is an RTCVideoRenderer which renders video frames 24 | * in its bounds using OpenGLES 2.0 or OpenGLES 3.0. 25 | */ 26 | RTC_OBJC_EXPORT 27 | NS_EXTENSION_UNAVAILABLE_IOS("Rendering not available in app extensions.") 28 | @interface RTC_OBJC_TYPE (RTCEAGLVideoView) : UIView 29 | 30 | @property(nonatomic, weak) id delegate; 31 | 32 | - (instancetype)initWithFrame:(CGRect)frame 33 | shader:(id)shader 34 | NS_DESIGNATED_INITIALIZER; 35 | 36 | - (instancetype)initWithCoder:(NSCoder *)aDecoder 37 | shader:(id)shader 38 | NS_DESIGNATED_INITIALIZER; 39 | 40 | /** @abstract Wrapped RTCVideoRotation, or nil. 41 | */ 42 | @property(nonatomic, nullable) NSValue *rotationOverride; 43 | @end 44 | 45 | NS_ASSUME_NONNULL_END 46 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCEncodedImage.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCVideoFrame.h" 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | /** Represents an encoded frame's type. */ 19 | typedef NS_ENUM(NSUInteger, RTCFrameType) { 20 | RTCFrameTypeEmptyFrame = 0, 21 | RTCFrameTypeAudioFrameSpeech = 1, 22 | RTCFrameTypeAudioFrameCN = 2, 23 | RTCFrameTypeVideoFrameKey = 3, 24 | RTCFrameTypeVideoFrameDelta = 4, 25 | }; 26 | 27 | typedef NS_ENUM(NSUInteger, RTCVideoContentType) { 28 | RTCVideoContentTypeUnspecified, 29 | RTCVideoContentTypeScreenshare, 30 | }; 31 | 32 | /** Represents an encoded frame. Corresponds to webrtc::EncodedImage. */ 33 | RTC_OBJC_EXPORT 34 | @interface RTC_OBJC_TYPE (RTCEncodedImage) : NSObject 35 | 36 | @property(nonatomic, strong) NSData *buffer; 37 | @property(nonatomic, assign) int32_t encodedWidth; 38 | @property(nonatomic, assign) int32_t encodedHeight; 39 | @property(nonatomic, assign) uint32_t timeStamp; 40 | @property(nonatomic, assign) int64_t captureTimeMs; 41 | @property(nonatomic, assign) int64_t ntpTimeMs; 42 | @property(nonatomic, assign) uint8_t flags; 43 | @property(nonatomic, assign) int64_t encodeStartMs; 44 | @property(nonatomic, assign) int64_t encodeFinishMs; 45 | @property(nonatomic, assign) RTCFrameType frameType; 46 | @property(nonatomic, assign) RTCVideoRotation rotation; 47 | @property(nonatomic, assign) BOOL completeFrame; 48 | @property(nonatomic, strong) NSNumber *qp; 49 | @property(nonatomic, assign) RTCVideoContentType contentType; 50 | 51 | @end 52 | 53 | NS_ASSUME_NONNULL_END 54 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCFieldTrials.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | /** The only valid value for the following if set is kRTCFieldTrialEnabledValue. */ 16 | RTC_EXTERN NSString * const kRTCFieldTrialAudioSendSideBweKey; 17 | RTC_EXTERN NSString * const kRTCFieldTrialAudioForceNoTWCCKey; 18 | RTC_EXTERN NSString * const kRTCFieldTrialAudioForceABWENoTWCCKey; 19 | RTC_EXTERN NSString * const kRTCFieldTrialSendSideBweWithOverheadKey; 20 | RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03AdvertisedKey; 21 | RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03Key; 22 | RTC_EXTERN NSString * const kRTCFieldTrialH264HighProfileKey; 23 | RTC_EXTERN NSString * const kRTCFieldTrialMinimizeResamplingOnMobileKey; 24 | RTC_EXTERN NSString *const kRTCFieldTrialUseNWPathMonitor; 25 | 26 | /** The valid value for field trials above. */ 27 | RTC_EXTERN NSString * const kRTCFieldTrialEnabledValue; 28 | 29 | /** Initialize field trials using a dictionary mapping field trial keys to their 30 | * values. See above for valid keys and values. Must be called before any other 31 | * call into WebRTC. See: webrtc/system_wrappers/include/field_trial.h 32 | */ 33 | RTC_EXTERN void RTCInitFieldTrialDictionary(NSDictionary *fieldTrials); 34 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCFileVideoCapturer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCVideoCapturer.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** 18 | * Error passing block. 19 | */ 20 | typedef void (^RTCFileVideoCapturerErrorBlock)(NSError *error); 21 | 22 | /** 23 | * Captures buffers from bundled video file. 24 | * 25 | * See @c RTCVideoCapturer for more info on capturers. 26 | */ 27 | RTC_OBJC_EXPORT 28 | 29 | NS_CLASS_AVAILABLE_IOS(10) 30 | @interface RTC_OBJC_TYPE (RTCFileVideoCapturer) : RTC_OBJC_TYPE(RTCVideoCapturer) 31 | 32 | /** 33 | * Starts asynchronous capture of frames from video file. 34 | * 35 | * Capturing is not started if error occurs. Underlying error will be 36 | * relayed in the errorBlock if one is provided. 37 | * Successfully captured video frames will be passed to the delegate. 38 | * 39 | * @param nameOfFile The name of the bundled video file to be read. 40 | * @errorBlock block to be executed upon error. 41 | */ 42 | - (void)startCapturingFromFileNamed:(NSString *)nameOfFile 43 | onError:(__nullable RTCFileVideoCapturerErrorBlock)errorBlock; 44 | 45 | /** 46 | * Immediately stops capture. 47 | */ 48 | - (void)stopCapture; 49 | @end 50 | 51 | NS_ASSUME_NONNULL_END 52 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCH264ProfileLevelId.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | RTC_OBJC_EXPORT extern NSString *const kRTCVideoCodecH264Name; 16 | RTC_OBJC_EXPORT extern NSString *const kRTCLevel31ConstrainedHigh; 17 | RTC_OBJC_EXPORT extern NSString *const kRTCLevel31ConstrainedBaseline; 18 | RTC_OBJC_EXPORT extern NSString *const kRTCMaxSupportedH264ProfileLevelConstrainedHigh; 19 | RTC_OBJC_EXPORT extern NSString *const kRTCMaxSupportedH264ProfileLevelConstrainedBaseline; 20 | 21 | /** H264 Profiles and levels. */ 22 | typedef NS_ENUM(NSUInteger, RTCH264Profile) { 23 | RTCH264ProfileConstrainedBaseline, 24 | RTCH264ProfileBaseline, 25 | RTCH264ProfileMain, 26 | RTCH264ProfileConstrainedHigh, 27 | RTCH264ProfileHigh, 28 | }; 29 | 30 | typedef NS_ENUM(NSUInteger, RTCH264Level) { 31 | RTCH264Level1_b = 0, 32 | RTCH264Level1 = 10, 33 | RTCH264Level1_1 = 11, 34 | RTCH264Level1_2 = 12, 35 | RTCH264Level1_3 = 13, 36 | RTCH264Level2 = 20, 37 | RTCH264Level2_1 = 21, 38 | RTCH264Level2_2 = 22, 39 | RTCH264Level3 = 30, 40 | RTCH264Level3_1 = 31, 41 | RTCH264Level3_2 = 32, 42 | RTCH264Level4 = 40, 43 | RTCH264Level4_1 = 41, 44 | RTCH264Level4_2 = 42, 45 | RTCH264Level5 = 50, 46 | RTCH264Level5_1 = 51, 47 | RTCH264Level5_2 = 52 48 | }; 49 | 50 | RTC_OBJC_EXPORT 51 | @interface RTC_OBJC_TYPE (RTCH264ProfileLevelId) : NSObject 52 | 53 | @property(nonatomic, readonly) RTCH264Profile profile; 54 | @property(nonatomic, readonly) RTCH264Level level; 55 | @property(nonatomic, readonly) NSString *hexString; 56 | 57 | - (instancetype)initWithHexString:(NSString *)hexString; 58 | - (instancetype)initWithProfile:(RTCH264Profile)profile level:(RTCH264Level)level; 59 | 60 | @end 61 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCI420Buffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCYUVPlanarBuffer.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** Protocol for RTCYUVPlanarBuffers containing I420 data */ 18 | RTC_OBJC_EXPORT 19 | @protocol RTC_OBJC_TYPE 20 | (RTCI420Buffer) @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCIceCandidate.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_OBJC_EXPORT 18 | @interface RTC_OBJC_TYPE (RTCIceCandidate) : NSObject 19 | 20 | /** 21 | * If present, the identifier of the "media stream identification" for the media 22 | * component this candidate is associated with. 23 | */ 24 | @property(nonatomic, readonly, nullable) NSString *sdpMid; 25 | 26 | /** 27 | * The index (starting at zero) of the media description this candidate is 28 | * associated with in the SDP. 29 | */ 30 | @property(nonatomic, readonly) int sdpMLineIndex; 31 | 32 | /** The SDP string for this candidate. */ 33 | @property(nonatomic, readonly) NSString *sdp; 34 | 35 | /** The URL of the ICE server which this candidate is gathered from. */ 36 | @property(nonatomic, readonly, nullable) NSString *serverUrl; 37 | 38 | - (instancetype)init NS_UNAVAILABLE; 39 | 40 | /** 41 | * Initialize an RTCIceCandidate from SDP. 42 | */ 43 | - (instancetype)initWithSdp:(NSString *)sdp 44 | sdpMLineIndex:(int)sdpMLineIndex 45 | sdpMid:(nullable NSString *)sdpMid NS_DESIGNATED_INITIALIZER; 46 | 47 | @end 48 | 49 | NS_ASSUME_NONNULL_END 50 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCLegacyStatsReport.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** This does not currently conform to the spec. */ 18 | RTC_OBJC_EXPORT 19 | @interface RTC_OBJC_TYPE (RTCLegacyStatsReport) : NSObject 20 | 21 | /** Time since 1970-01-01T00:00:00Z in milliseconds. */ 22 | @property(nonatomic, readonly) CFTimeInterval timestamp; 23 | 24 | /** The type of stats held by this object. */ 25 | @property(nonatomic, readonly) NSString *type; 26 | 27 | /** The identifier for this object. */ 28 | @property(nonatomic, readonly) NSString *reportId; 29 | 30 | /** A dictionary holding the actual stats. */ 31 | @property(nonatomic, readonly) NSDictionary *values; 32 | 33 | - (instancetype)init NS_UNAVAILABLE; 34 | 35 | @end 36 | 37 | NS_ASSUME_NONNULL_END 38 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCLogging.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | // Subset of rtc::LoggingSeverity. 16 | typedef NS_ENUM(NSInteger, RTCLoggingSeverity) { 17 | RTCLoggingSeverityVerbose, 18 | RTCLoggingSeverityInfo, 19 | RTCLoggingSeverityWarning, 20 | RTCLoggingSeverityError, 21 | RTCLoggingSeverityNone, 22 | }; 23 | 24 | // Wrapper for C++ RTC_LOG(sev) macros. 25 | // Logs the log string to the webrtc logstream for the given severity. 26 | RTC_EXTERN void RTCLogEx(RTCLoggingSeverity severity, NSString* log_string); 27 | 28 | // Wrapper for rtc::LogMessage::LogToDebug. 29 | // Sets the minimum severity to be logged to console. 30 | RTC_EXTERN void RTCSetMinDebugLogLevel(RTCLoggingSeverity severity); 31 | 32 | // Returns the filename with the path prefix removed. 33 | RTC_EXTERN NSString* RTCFileName(const char* filePath); 34 | 35 | // Some convenience macros. 36 | 37 | #define RTCLogString(format, ...) \ 38 | [NSString stringWithFormat:@"(%@:%d %s): " format, RTCFileName(__FILE__), \ 39 | __LINE__, __FUNCTION__, ##__VA_ARGS__] 40 | 41 | #define RTCLogFormat(severity, format, ...) \ 42 | do { \ 43 | NSString* log_string = RTCLogString(format, ##__VA_ARGS__); \ 44 | RTCLogEx(severity, log_string); \ 45 | } while (false) 46 | 47 | #define RTCLogVerbose(format, ...) \ 48 | RTCLogFormat(RTCLoggingSeverityVerbose, format, ##__VA_ARGS__) 49 | 50 | #define RTCLogInfo(format, ...) \ 51 | RTCLogFormat(RTCLoggingSeverityInfo, format, ##__VA_ARGS__) 52 | 53 | #define RTCLogWarning(format, ...) \ 54 | RTCLogFormat(RTCLoggingSeverityWarning, format, ##__VA_ARGS__) 55 | 56 | #define RTCLogError(format, ...) \ 57 | RTCLogFormat(RTCLoggingSeverityError, format, ##__VA_ARGS__) 58 | 59 | #if !defined(NDEBUG) 60 | #define RTCLogDebug(format, ...) RTCLogInfo(format, ##__VA_ARGS__) 61 | #else 62 | #define RTCLogDebug(format, ...) \ 63 | do { \ 64 | } while (false) 65 | #endif 66 | 67 | #define RTCLog(format, ...) RTCLogInfo(format, ##__VA_ARGS__) 68 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCMTLVideoView.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCVideoFrame.h" 15 | #import "RTCVideoRenderer.h" 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | /** 20 | * RTCMTLVideoView is thin wrapper around MTKView. 21 | * 22 | * It has id property that renders video frames in the view's 23 | * bounds using Metal. 24 | * NOTE: always check if metal is available on the running device via 25 | * RTC_SUPPORTS_METAL macro before initializing this class. 26 | */ 27 | NS_CLASS_AVAILABLE_IOS(9) 28 | 29 | RTC_OBJC_EXPORT 30 | @interface RTC_OBJC_TYPE (RTCMTLVideoView) : UIView 31 | 32 | @property(nonatomic, weak) id delegate; 33 | 34 | @property(nonatomic) UIViewContentMode videoContentMode; 35 | 36 | /** @abstract Enables/disables rendering. 37 | */ 38 | @property(nonatomic, getter=isEnabled) BOOL enabled; 39 | 40 | /** @abstract Wrapped RTCVideoRotation, or nil. 41 | */ 42 | @property(nonatomic, nullable) NSValue* rotationOverride; 43 | 44 | @end 45 | 46 | NS_ASSUME_NONNULL_END 47 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCMacros.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef SDK_OBJC_BASE_RTCMACROS_H_ 12 | #define SDK_OBJC_BASE_RTCMACROS_H_ 13 | 14 | // Internal macros used to correctly concatenate symbols. 15 | #define RTC_SYMBOL_CONCAT_HELPER(a, b) a##b 16 | #define RTC_SYMBOL_CONCAT(a, b) RTC_SYMBOL_CONCAT_HELPER(a, b) 17 | 18 | // RTC_OBJC_TYPE_PREFIX 19 | // 20 | // Macro used to prepend a prefix to the API types that are exported with 21 | // RTC_OBJC_EXPORT. 22 | // 23 | // Clients can patch the definition of this macro locally and build 24 | // WebRTC.framework with their own prefix in case symbol clashing is a 25 | // problem. 26 | // 27 | // This macro must only be defined here and not on via compiler flag to 28 | // ensure it has a unique value. 29 | #define RTC_OBJC_TYPE_PREFIX 30 | 31 | // RCT_OBJC_TYPE 32 | // 33 | // Macro used internally to declare API types. Declaring an API type without 34 | // using this macro will not include the declared type in the set of types 35 | // that will be affected by the configurable RTC_OBJC_TYPE_PREFIX. 36 | #define RTC_OBJC_TYPE(type_name) RTC_SYMBOL_CONCAT(RTC_OBJC_TYPE_PREFIX, type_name) 37 | 38 | #define RTC_OBJC_EXPORT __attribute__((visibility("default"))) 39 | 40 | #if defined(__cplusplus) 41 | #define RTC_EXTERN extern "C" RTC_OBJC_EXPORT 42 | #else 43 | #define RTC_EXTERN extern RTC_OBJC_EXPORT 44 | #endif 45 | 46 | #ifdef __OBJC__ 47 | #define RTC_FWD_DECL_OBJC_CLASS(classname) @class classname 48 | #else 49 | #define RTC_FWD_DECL_OBJC_CLASS(classname) typedef struct objc_object classname 50 | #endif 51 | 52 | #endif // SDK_OBJC_BASE_RTCMACROS_H_ 53 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCMediaConstraints.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** Constraint keys for media sources. */ 18 | /** The value for this key should be a base64 encoded string containing 19 | * the data from the serialized configuration proto. 20 | */ 21 | RTC_EXTERN NSString *const kRTCMediaConstraintsAudioNetworkAdaptorConfig; 22 | 23 | /** Constraint keys for generating offers and answers. */ 24 | RTC_EXTERN NSString *const kRTCMediaConstraintsIceRestart; 25 | RTC_EXTERN NSString *const kRTCMediaConstraintsOfferToReceiveAudio; 26 | RTC_EXTERN NSString *const kRTCMediaConstraintsOfferToReceiveVideo; 27 | RTC_EXTERN NSString *const kRTCMediaConstraintsVoiceActivityDetection; 28 | 29 | /** Constraint values for Boolean parameters. */ 30 | RTC_EXTERN NSString *const kRTCMediaConstraintsValueTrue; 31 | RTC_EXTERN NSString *const kRTCMediaConstraintsValueFalse; 32 | 33 | RTC_OBJC_EXPORT 34 | @interface RTC_OBJC_TYPE (RTCMediaConstraints) : NSObject 35 | 36 | - (instancetype)init NS_UNAVAILABLE; 37 | 38 | /** Initialize with mandatory and/or optional constraints. */ 39 | - (instancetype) 40 | initWithMandatoryConstraints:(nullable NSDictionary *)mandatory 41 | optionalConstraints:(nullable NSDictionary *)optional 42 | NS_DESIGNATED_INITIALIZER; 43 | 44 | @end 45 | 46 | NS_ASSUME_NONNULL_END 47 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCMediaSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | typedef NS_ENUM(NSInteger, RTCSourceState) { 16 | RTCSourceStateInitializing, 17 | RTCSourceStateLive, 18 | RTCSourceStateEnded, 19 | RTCSourceStateMuted, 20 | }; 21 | 22 | NS_ASSUME_NONNULL_BEGIN 23 | 24 | RTC_OBJC_EXPORT 25 | @interface RTC_OBJC_TYPE (RTCMediaSource) : NSObject 26 | 27 | /** The current state of the RTCMediaSource. */ 28 | @property(nonatomic, readonly) RTCSourceState state; 29 | 30 | - (instancetype)init NS_UNAVAILABLE; 31 | 32 | @end 33 | 34 | NS_ASSUME_NONNULL_END 35 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCMediaStream.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @class RTC_OBJC_TYPE(RTCAudioTrack); 18 | @class RTC_OBJC_TYPE(RTCPeerConnectionFactory); 19 | @class RTC_OBJC_TYPE(RTCVideoTrack); 20 | 21 | RTC_OBJC_EXPORT 22 | @interface RTC_OBJC_TYPE (RTCMediaStream) : NSObject 23 | 24 | /** The audio tracks in this stream. */ 25 | @property(nonatomic, strong, readonly) NSArray *audioTracks; 26 | 27 | /** The video tracks in this stream. */ 28 | @property(nonatomic, strong, readonly) NSArray *videoTracks; 29 | 30 | /** An identifier for this media stream. */ 31 | @property(nonatomic, readonly) NSString *streamId; 32 | 33 | - (instancetype)init NS_UNAVAILABLE; 34 | 35 | /** Adds the given audio track to this media stream. */ 36 | - (void)addAudioTrack:(RTC_OBJC_TYPE(RTCAudioTrack) *)audioTrack; 37 | 38 | /** Adds the given video track to this media stream. */ 39 | - (void)addVideoTrack:(RTC_OBJC_TYPE(RTCVideoTrack) *)videoTrack; 40 | 41 | /** Removes the given audio track to this media stream. */ 42 | - (void)removeAudioTrack:(RTC_OBJC_TYPE(RTCAudioTrack) *)audioTrack; 43 | 44 | /** Removes the given video track to this media stream. */ 45 | - (void)removeVideoTrack:(RTC_OBJC_TYPE(RTCVideoTrack) *)videoTrack; 46 | 47 | @end 48 | 49 | NS_ASSUME_NONNULL_END 50 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCMediaStreamTrack.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | /** 16 | * Represents the state of the track. This exposes the same states in C++. 17 | */ 18 | typedef NS_ENUM(NSInteger, RTCMediaStreamTrackState) { 19 | RTCMediaStreamTrackStateLive, 20 | RTCMediaStreamTrackStateEnded 21 | }; 22 | 23 | NS_ASSUME_NONNULL_BEGIN 24 | 25 | RTC_EXTERN NSString *const kRTCMediaStreamTrackKindAudio; 26 | RTC_EXTERN NSString *const kRTCMediaStreamTrackKindVideo; 27 | 28 | RTC_OBJC_EXPORT 29 | @interface RTC_OBJC_TYPE (RTCMediaStreamTrack) : NSObject 30 | 31 | /** 32 | * The kind of track. For example, "audio" if this track represents an audio 33 | * track and "video" if this track represents a video track. 34 | */ 35 | @property(nonatomic, readonly) NSString *kind; 36 | 37 | /** An identifier string. */ 38 | @property(nonatomic, readonly) NSString *trackId; 39 | 40 | /** The enabled state of the track. */ 41 | @property(nonatomic, assign) BOOL isEnabled; 42 | 43 | /** The state of the track. */ 44 | @property(nonatomic, readonly) RTCMediaStreamTrackState readyState; 45 | 46 | - (instancetype)init NS_UNAVAILABLE; 47 | 48 | @end 49 | 50 | NS_ASSUME_NONNULL_END 51 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCMetrics.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCMetricsSampleInfo.h" 15 | 16 | /** 17 | * Enables gathering of metrics (which can be fetched with 18 | * RTCGetAndResetMetrics). Must be called before any other call into WebRTC. 19 | */ 20 | RTC_EXTERN void RTCEnableMetrics(void); 21 | 22 | /** Gets and clears native histograms. */ 23 | RTC_EXTERN NSArray* RTCGetAndResetMetrics(void); 24 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCMetricsSampleInfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_OBJC_EXPORT 18 | @interface RTC_OBJC_TYPE (RTCMetricsSampleInfo) : NSObject 19 | 20 | /** 21 | * Example of RTCMetricsSampleInfo: 22 | * name: "WebRTC.Video.InputFramesPerSecond" 23 | * min: 1 24 | * max: 100 25 | * bucketCount: 50 26 | * samples: [29]:2 [30]:1 27 | */ 28 | 29 | /** The name of the histogram. */ 30 | @property(nonatomic, readonly) NSString *name; 31 | 32 | /** The minimum bucket value. */ 33 | @property(nonatomic, readonly) int min; 34 | 35 | /** The maximum bucket value. */ 36 | @property(nonatomic, readonly) int max; 37 | 38 | /** The number of buckets. */ 39 | @property(nonatomic, readonly) int bucketCount; 40 | 41 | /** A dictionary holding the samples . */ 42 | @property(nonatomic, readonly) NSDictionary *samples; 43 | 44 | - (instancetype)init NS_UNAVAILABLE; 45 | 46 | @end 47 | 48 | NS_ASSUME_NONNULL_END 49 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCMutableI420Buffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCI420Buffer.h" 14 | #import "RTCMutableYUVPlanarBuffer.h" 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | /** Extension of the I420 buffer with mutable data access */ 19 | RTC_OBJC_EXPORT 20 | @protocol RTC_OBJC_TYPE 21 | (RTCMutableI420Buffer) @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCMutableYUVPlanarBuffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCYUVPlanarBuffer.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** Extension of the YUV planar data buffer with mutable data access */ 18 | RTC_OBJC_EXPORT 19 | @protocol RTC_OBJC_TYPE 20 | (RTCMutableYUVPlanarBuffer) 21 | 22 | @property(nonatomic, readonly) uint8_t *mutableDataY; 23 | @property(nonatomic, readonly) uint8_t *mutableDataU; 24 | @property(nonatomic, readonly) uint8_t *mutableDataV; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCNativeI420Buffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCI420Buffer.h" 14 | #import "RTCMacros.h" 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | /** RTCI420Buffer implements the RTCI420Buffer protocol */ 19 | RTC_OBJC_EXPORT 20 | @interface RTC_OBJC_TYPE (RTCI420Buffer) : NSObject 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCNativeMutableI420Buffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCMutableI420Buffer.h" 15 | #import "RTCNativeI420Buffer.h" 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | /** Mutable version of RTCI420Buffer */ 20 | RTC_OBJC_EXPORT 21 | @interface RTC_OBJC_TYPE (RTCMutableI420Buffer) : RTC_OBJC_TYPE(RTCI420Buffer) 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCNetworkMonitor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | /** Listens for NWPathMonitor updates and forwards the results to a C++ 16 | * observer. 17 | */ 18 | @interface RTCNetworkMonitor : NSObject 19 | 20 | - (instancetype)init NS_UNAVAILABLE; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCPeerConnectionFactoryOptions.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_OBJC_EXPORT 18 | @interface RTC_OBJC_TYPE (RTCPeerConnectionFactoryOptions) : NSObject 19 | 20 | @property(nonatomic, assign) BOOL disableEncryption; 21 | 22 | @property(nonatomic, assign) BOOL disableNetworkMonitor; 23 | 24 | @property(nonatomic, assign) BOOL ignoreLoopbackNetworkAdapter; 25 | 26 | @property(nonatomic, assign) BOOL ignoreVPNNetworkAdapter; 27 | 28 | @property(nonatomic, assign) BOOL ignoreCellularNetworkAdapter; 29 | 30 | @property(nonatomic, assign) BOOL ignoreWiFiNetworkAdapter; 31 | 32 | @property(nonatomic, assign) BOOL ignoreEthernetNetworkAdapter; 33 | 34 | - (instancetype)init NS_DESIGNATED_INITIALIZER; 35 | 36 | @end 37 | 38 | NS_ASSUME_NONNULL_END 39 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCRtcpParameters.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_OBJC_EXPORT 18 | @interface RTC_OBJC_TYPE (RTCRtcpParameters) : NSObject 19 | 20 | /** The Canonical Name used by RTCP. */ 21 | @property(nonatomic, readonly, copy) NSString *cname; 22 | 23 | /** Whether reduced size RTCP is configured or compound RTCP. */ 24 | @property(nonatomic, assign) BOOL isReducedSize; 25 | 26 | - (instancetype)init NS_DESIGNATED_INITIALIZER; 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCRtpEncodingParameters.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** Corresponds to webrtc::Priority. */ 18 | typedef NS_ENUM(NSInteger, RTCPriority) { 19 | RTCPriorityVeryLow, 20 | RTCPriorityLow, 21 | RTCPriorityMedium, 22 | RTCPriorityHigh 23 | }; 24 | 25 | RTC_OBJC_EXPORT 26 | @interface RTC_OBJC_TYPE (RTCRtpEncodingParameters) : NSObject 27 | 28 | /** The idenfifier for the encoding layer. This is used in simulcast. */ 29 | @property(nonatomic, copy, nullable) NSString *rid; 30 | 31 | /** Controls whether the encoding is currently transmitted. */ 32 | @property(nonatomic, assign) BOOL isActive; 33 | 34 | /** The maximum bitrate to use for the encoding, or nil if there is no 35 | * limit. 36 | */ 37 | @property(nonatomic, copy, nullable) NSNumber *maxBitrateBps; 38 | 39 | /** The minimum bitrate to use for the encoding, or nil if there is no 40 | * limit. 41 | */ 42 | @property(nonatomic, copy, nullable) NSNumber *minBitrateBps; 43 | 44 | /** The maximum framerate to use for the encoding, or nil if there is no 45 | * limit. 46 | */ 47 | @property(nonatomic, copy, nullable) NSNumber *maxFramerate; 48 | 49 | /** The requested number of temporal layers to use for the encoding, or nil 50 | * if the default should be used. 51 | */ 52 | @property(nonatomic, copy, nullable) NSNumber *numTemporalLayers; 53 | 54 | /** Scale the width and height down by this factor for video. If nil, 55 | * implementation default scaling factor will be used. 56 | */ 57 | @property(nonatomic, copy, nullable) NSNumber *scaleResolutionDownBy; 58 | 59 | /** The SSRC being used by this encoding. */ 60 | @property(nonatomic, readonly, nullable) NSNumber *ssrc; 61 | 62 | /** The relative bitrate priority. */ 63 | @property(nonatomic, assign) double bitratePriority; 64 | 65 | /** The relative DiffServ Code Point priority. */ 66 | @property(nonatomic, assign) RTCPriority networkPriority; 67 | 68 | - (instancetype)init NS_DESIGNATED_INITIALIZER; 69 | 70 | @end 71 | 72 | NS_ASSUME_NONNULL_END 73 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCRtpFragmentationHeader.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** Information for header. Corresponds to webrtc::RTPFragmentationHeader. */ 18 | RTC_OBJC_EXPORT 19 | @interface RTC_OBJC_TYPE (RTCRtpFragmentationHeader) : NSObject 20 | 21 | @property(nonatomic, strong) NSArray *fragmentationOffset; 22 | @property(nonatomic, strong) NSArray *fragmentationLength; 23 | @property(nonatomic, strong) NSArray *fragmentationTimeDiff; 24 | @property(nonatomic, strong) NSArray *fragmentationPlType; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCRtpHeaderExtension.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_OBJC_EXPORT 18 | @interface RTC_OBJC_TYPE (RTCRtpHeaderExtension) : NSObject 19 | 20 | /** The URI of the RTP header extension, as defined in RFC5285. */ 21 | @property(nonatomic, readonly, copy) NSString *uri; 22 | 23 | /** The value put in the RTP packet to identify the header extension. */ 24 | @property(nonatomic, readonly) int id; 25 | 26 | /** Whether the header extension is encrypted or not. */ 27 | @property(nonatomic, readonly, getter=isEncrypted) BOOL encrypted; 28 | 29 | - (instancetype)init NS_DESIGNATED_INITIALIZER; 30 | 31 | @end 32 | 33 | NS_ASSUME_NONNULL_END 34 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCRtpParameters.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCRtcpParameters.h" 15 | #import "RTCRtpCodecParameters.h" 16 | #import "RTCRtpEncodingParameters.h" 17 | #import "RTCRtpHeaderExtension.h" 18 | 19 | NS_ASSUME_NONNULL_BEGIN 20 | 21 | /** Corresponds to webrtc::DegradationPreference. */ 22 | typedef NS_ENUM(NSInteger, RTCDegradationPreference) { 23 | RTCDegradationPreferenceDisabled, 24 | RTCDegradationPreferenceMaintainFramerate, 25 | RTCDegradationPreferenceMaintainResolution, 26 | RTCDegradationPreferenceBalanced 27 | }; 28 | 29 | RTC_OBJC_EXPORT 30 | @interface RTC_OBJC_TYPE (RTCRtpParameters) : NSObject 31 | 32 | /** A unique identifier for the last set of parameters applied. */ 33 | @property(nonatomic, copy) NSString *transactionId; 34 | 35 | /** Parameters used for RTCP. */ 36 | @property(nonatomic, readonly, copy) RTC_OBJC_TYPE(RTCRtcpParameters) * rtcp; 37 | 38 | /** An array containing parameters for RTP header extensions. */ 39 | @property(nonatomic, readonly, copy) 40 | NSArray *headerExtensions; 41 | 42 | /** The currently active encodings in the order of preference. */ 43 | @property(nonatomic, copy) NSArray *encodings; 44 | 45 | /** The negotiated set of send codecs in order of preference. */ 46 | @property(nonatomic, copy) NSArray *codecs; 47 | 48 | /** 49 | * Degradation preference in case of CPU adaptation or constrained bandwidth. 50 | * If nil, implementation default degradation preference will be used. 51 | */ 52 | @property(nonatomic, copy, nullable) NSNumber *degradationPreference; 53 | 54 | - (instancetype)init NS_DESIGNATED_INITIALIZER; 55 | 56 | @end 57 | 58 | NS_ASSUME_NONNULL_END 59 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCRtpSender.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCDtmfSender.h" 14 | #import "RTCMacros.h" 15 | #import "RTCMediaStreamTrack.h" 16 | #import "RTCRtpParameters.h" 17 | 18 | NS_ASSUME_NONNULL_BEGIN 19 | 20 | RTC_OBJC_EXPORT 21 | @protocol RTC_OBJC_TYPE 22 | (RTCRtpSender) 23 | 24 | /** A unique identifier for this sender. */ 25 | @property(nonatomic, readonly) NSString *senderId; 26 | 27 | /** The currently active RTCRtpParameters, as defined in 28 | * https://www.w3.org/TR/webrtc/#idl-def-RTCRtpParameters. 29 | */ 30 | @property(nonatomic, copy) RTC_OBJC_TYPE(RTCRtpParameters) * parameters; 31 | 32 | /** The RTCMediaStreamTrack associated with the sender. 33 | * Note: reading this property returns a new instance of 34 | * RTCMediaStreamTrack. Use isEqual: instead of == to compare 35 | * RTCMediaStreamTrack instances. 36 | */ 37 | @property(nonatomic, copy, nullable) RTC_OBJC_TYPE(RTCMediaStreamTrack) * track; 38 | 39 | /** IDs of streams associated with the RTP sender */ 40 | @property(nonatomic, copy) NSArray *streamIds; 41 | 42 | /** The RTCDtmfSender accociated with the RTP sender. */ 43 | @property(nonatomic, readonly, nullable) id dtmfSender; 44 | 45 | @end 46 | 47 | RTC_OBJC_EXPORT 48 | @interface RTC_OBJC_TYPE (RTCRtpSender) : NSObject 49 | 50 | - (instancetype)init NS_UNAVAILABLE; 51 | 52 | @end 53 | 54 | NS_ASSUME_NONNULL_END 55 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCSSLAdapter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | /** 16 | * Initialize and clean up the SSL library. Failure is fatal. These call the 17 | * corresponding functions in webrtc/rtc_base/ssladapter.h. 18 | */ 19 | RTC_EXTERN BOOL RTCInitializeSSL(void); 20 | RTC_EXTERN BOOL RTCCleanupSSL(void); 21 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCSessionDescription.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | /** 16 | * Represents the session description type. This exposes the same types that are 17 | * in C++, which doesn't include the rollback type that is in the W3C spec. 18 | */ 19 | typedef NS_ENUM(NSInteger, RTCSdpType) { 20 | RTCSdpTypeOffer, 21 | RTCSdpTypePrAnswer, 22 | RTCSdpTypeAnswer, 23 | }; 24 | 25 | NS_ASSUME_NONNULL_BEGIN 26 | 27 | RTC_OBJC_EXPORT 28 | @interface RTC_OBJC_TYPE (RTCSessionDescription) : NSObject 29 | 30 | /** The type of session description. */ 31 | @property(nonatomic, readonly) RTCSdpType type; 32 | 33 | /** The SDP string representation of this session description. */ 34 | @property(nonatomic, readonly) NSString *sdp; 35 | 36 | - (instancetype)init NS_UNAVAILABLE; 37 | 38 | /** Initialize a session description with a type and SDP string. */ 39 | - (instancetype)initWithType:(RTCSdpType)type sdp:(NSString *)sdp NS_DESIGNATED_INITIALIZER; 40 | 41 | + (NSString *)stringForType:(RTCSdpType)type; 42 | 43 | + (RTCSdpType)typeForString:(NSString *)string; 44 | 45 | @end 46 | 47 | NS_ASSUME_NONNULL_END 48 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCStatisticsReport.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | @class RTC_OBJC_TYPE(RTCStatistics); 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | /** A statistics report. Encapsulates a number of RTCStatistics objects. */ 20 | RTC_OBJC_EXPORT 21 | @interface RTC_OBJC_TYPE (RTCStatisticsReport) : NSObject 22 | 23 | /** The timestamp of the report in microseconds since 1970-01-01T00:00:00Z. */ 24 | @property(nonatomic, readonly) CFTimeInterval timestamp_us; 25 | 26 | /** RTCStatistics objects by id. */ 27 | @property(nonatomic, readonly) NSDictionary *statistics; 28 | 29 | - (instancetype)init NS_UNAVAILABLE; 30 | 31 | @end 32 | 33 | /** A part of a report (a subreport) covering a certain area. */ 34 | RTC_OBJC_EXPORT 35 | @interface RTC_OBJC_TYPE (RTCStatistics) : NSObject 36 | 37 | /** The id of this subreport, e.g. "RTCMediaStreamTrack_receiver_2". */ 38 | @property(nonatomic, readonly) NSString *id; 39 | 40 | /** The timestamp of the subreport in microseconds since 1970-01-01T00:00:00Z. */ 41 | @property(nonatomic, readonly) CFTimeInterval timestamp_us; 42 | 43 | /** The type of the subreport, e.g. "track", "codec". */ 44 | @property(nonatomic, readonly) NSString *type; 45 | 46 | /** The keys and values of the subreport, e.g. "totalFramesDuration = 5.551". 47 | The values are either NSNumbers or NSStrings, or NSArrays encapsulating NSNumbers 48 | or NSStrings. */ 49 | @property(nonatomic, readonly) NSDictionary *values; 50 | 51 | - (instancetype)init NS_UNAVAILABLE; 52 | 53 | @end 54 | 55 | NS_ASSUME_NONNULL_END 56 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCTracing.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | RTC_EXTERN void RTCSetupInternalTracer(void); 16 | /** Starts capture to specified file. Must be a valid writable path. 17 | * Returns YES if capture starts. 18 | */ 19 | RTC_EXTERN BOOL RTCStartInternalCapture(NSString* filePath); 20 | RTC_EXTERN void RTCStopInternalCapture(void); 21 | RTC_EXTERN void RTCShutdownInternalTracer(void); 22 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoCapturer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import "RTCVideoFrame.h" 12 | 13 | #import "RTCMacros.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @class RTC_OBJC_TYPE(RTCVideoCapturer); 18 | 19 | RTC_OBJC_EXPORT 20 | @protocol RTC_OBJC_TYPE 21 | (RTCVideoCapturerDelegate) - 22 | (void)capturer : (RTC_OBJC_TYPE(RTCVideoCapturer) *)capturer didCaptureVideoFrame 23 | : (RTC_OBJC_TYPE(RTCVideoFrame) *)frame; 24 | @end 25 | 26 | RTC_OBJC_EXPORT 27 | @interface RTC_OBJC_TYPE (RTCVideoCapturer) : NSObject 28 | 29 | @property(nonatomic, weak) id delegate; 30 | 31 | - (instancetype)initWithDelegate:(id)delegate; 32 | 33 | @end 34 | 35 | NS_ASSUME_NONNULL_END 36 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoCodecConstants.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | RTC_OBJC_EXPORT extern NSString* const kRTCVideoCodecVp8Name; 16 | RTC_OBJC_EXPORT extern NSString* const kRTCVideoCodecVp9Name; 17 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoCodecInfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** Holds information to identify a codec. Corresponds to webrtc::SdpVideoFormat. */ 18 | RTC_OBJC_EXPORT 19 | @interface RTC_OBJC_TYPE (RTCVideoCodecInfo) : NSObject 20 | 21 | - (instancetype)init NS_UNAVAILABLE; 22 | 23 | - (instancetype)initWithName:(NSString *)name; 24 | 25 | - (instancetype)initWithName:(NSString *)name 26 | parameters:(nullable NSDictionary *)parameters 27 | NS_DESIGNATED_INITIALIZER; 28 | 29 | - (BOOL)isEqualToCodecInfo:(RTC_OBJC_TYPE(RTCVideoCodecInfo) *)info; 30 | 31 | @property(nonatomic, readonly) NSString *name; 32 | @property(nonatomic, readonly) NSDictionary *parameters; 33 | 34 | @end 35 | 36 | NS_ASSUME_NONNULL_END 37 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCCodecSpecificInfo.h" 14 | #import "RTCEncodedImage.h" 15 | #import "RTCMacros.h" 16 | #import "RTCVideoEncoderSettings.h" 17 | #import "RTCVideoFrame.h" 18 | 19 | NS_ASSUME_NONNULL_BEGIN 20 | 21 | /** Callback block for decoder. */ 22 | typedef void (^RTCVideoDecoderCallback)(RTC_OBJC_TYPE(RTCVideoFrame) * frame); 23 | 24 | /** Protocol for decoder implementations. */ 25 | RTC_OBJC_EXPORT 26 | @protocol RTC_OBJC_TYPE 27 | (RTCVideoDecoder) 28 | 29 | - (void)setCallback : (RTCVideoDecoderCallback)callback; 30 | - (NSInteger)startDecodeWithNumberOfCores:(int)numberOfCores; 31 | - (NSInteger)releaseDecoder; 32 | - (NSInteger)decode:(RTC_OBJC_TYPE(RTCEncodedImage) *)encodedImage 33 | missingFrames:(BOOL)missingFrames 34 | codecSpecificInfo:(nullable id)info 35 | renderTimeMs:(int64_t)renderTimeMs; 36 | - (NSString *)implementationName; 37 | 38 | @end 39 | 40 | NS_ASSUME_NONNULL_END 41 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoDecoderFactory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCVideoCodecInfo.h" 15 | #import "RTCVideoDecoder.h" 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | /** RTCVideoDecoderFactory is an Objective-C version of webrtc::VideoDecoderFactory. 20 | */ 21 | RTC_OBJC_EXPORT 22 | @protocol RTC_OBJC_TYPE 23 | (RTCVideoDecoderFactory) 24 | 25 | - (nullable id)createDecoder 26 | : (RTC_OBJC_TYPE(RTCVideoCodecInfo) *)info; 27 | - (NSArray *) 28 | supportedCodecs; // TODO(andersc): "supportedFormats" instead? 29 | 30 | @end 31 | 32 | NS_ASSUME_NONNULL_END 33 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoDecoderFactoryH264.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCVideoDecoderFactory.h" 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoDecoderFactoryH264) : NSObject 18 | @end 19 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoDecoderH264.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCVideoDecoder.h" 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoDecoderH264) : NSObject 18 | @end 19 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoDecoderVP8.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCVideoDecoder.h" 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoDecoderVP8) : NSObject 18 | 19 | /* This returns a VP8 decoder that can be returned from a RTCVideoDecoderFactory injected into 20 | * RTCPeerConnectionFactory. Even though it implements the RTCVideoDecoder protocol, it can not be 21 | * used independently from the RTCPeerConnectionFactory. 22 | */ 23 | + (id)vp8Decoder; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoDecoderVP9.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCVideoDecoder.h" 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoDecoderVP9) : NSObject 18 | 19 | /* This returns a VP9 decoder that can be returned from a RTCVideoDecoderFactory injected into 20 | * RTCPeerConnectionFactory. Even though it implements the RTCVideoDecoder protocol, it can not be 21 | * used independently from the RTCPeerConnectionFactory. 22 | */ 23 | + (id)vp9Decoder; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoEncoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCCodecSpecificInfo.h" 14 | #import "RTCEncodedImage.h" 15 | #import "RTCMacros.h" 16 | #import "RTCRtpFragmentationHeader.h" 17 | #import "RTCVideoEncoderQpThresholds.h" 18 | #import "RTCVideoEncoderSettings.h" 19 | #import "RTCVideoFrame.h" 20 | 21 | NS_ASSUME_NONNULL_BEGIN 22 | 23 | /** Callback block for encoder. */ 24 | typedef BOOL (^RTCVideoEncoderCallback)(RTC_OBJC_TYPE(RTCEncodedImage) * frame, 25 | id info, 26 | RTC_OBJC_TYPE(RTCRtpFragmentationHeader) * header); 27 | 28 | /** Protocol for encoder implementations. */ 29 | RTC_OBJC_EXPORT 30 | @protocol RTC_OBJC_TYPE 31 | (RTCVideoEncoder) 32 | 33 | - (void)setCallback : (RTCVideoEncoderCallback)callback; 34 | - (NSInteger)startEncodeWithSettings:(RTC_OBJC_TYPE(RTCVideoEncoderSettings) *)settings 35 | numberOfCores:(int)numberOfCores; 36 | - (NSInteger)releaseEncoder; 37 | - (NSInteger)encode:(RTC_OBJC_TYPE(RTCVideoFrame) *)frame 38 | codecSpecificInfo:(nullable id)info 39 | frameTypes:(NSArray *)frameTypes; 40 | - (int)setBitrate:(uint32_t)bitrateKbit framerate:(uint32_t)framerate; 41 | - (NSString *)implementationName; 42 | 43 | /** Returns QP scaling settings for encoder. The quality scaler adjusts the resolution in order to 44 | * keep the QP from the encoded images within the given range. Returning nil from this function 45 | * disables quality scaling. */ 46 | - (nullable RTC_OBJC_TYPE(RTCVideoEncoderQpThresholds) *)scalingSettings; 47 | 48 | @end 49 | 50 | NS_ASSUME_NONNULL_END 51 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoEncoderFactory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCVideoCodecInfo.h" 15 | #import "RTCVideoEncoder.h" 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | /** RTCVideoEncoderFactory is an Objective-C version of 20 | webrtc::VideoEncoderFactory::VideoEncoderSelector. 21 | */ 22 | RTC_OBJC_EXPORT 23 | @protocol RTC_OBJC_TYPE 24 | (RTCVideoEncoderSelector) 25 | 26 | - (void)registerCurrentEncoderInfo : (RTC_OBJC_TYPE(RTCVideoCodecInfo) *)info; 27 | - (nullable RTC_OBJC_TYPE(RTCVideoCodecInfo) *)encoderForBitrate:(NSInteger)bitrate; 28 | - (nullable RTC_OBJC_TYPE(RTCVideoCodecInfo) *)encoderForBrokenEncoder; 29 | 30 | @end 31 | 32 | /** RTCVideoEncoderFactory is an Objective-C version of webrtc::VideoEncoderFactory. 33 | */ 34 | RTC_OBJC_EXPORT 35 | @protocol RTC_OBJC_TYPE 36 | (RTCVideoEncoderFactory) 37 | 38 | - (nullable id)createEncoder 39 | : (RTC_OBJC_TYPE(RTCVideoCodecInfo) *)info; 40 | - (NSArray *) 41 | supportedCodecs; // TODO(andersc): "supportedFormats" instead? 42 | 43 | @optional 44 | - (NSArray *)implementations; 45 | - (nullable id)encoderSelector; 46 | 47 | @end 48 | 49 | NS_ASSUME_NONNULL_END 50 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoEncoderFactoryH264.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCVideoEncoderFactory.h" 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoEncoderFactoryH264) : NSObject 18 | @end 19 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoEncoderH264.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCVideoCodecInfo.h" 15 | #import "RTCVideoEncoder.h" 16 | 17 | RTC_OBJC_EXPORT 18 | @interface RTC_OBJC_TYPE (RTCVideoEncoderH264) : NSObject 19 | 20 | - (instancetype)initWithCodecInfo:(RTC_OBJC_TYPE(RTCVideoCodecInfo) *)codecInfo; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoEncoderQpThresholds.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** QP thresholds for encoder. Corresponds to webrtc::VideoEncoder::QpThresholds. */ 18 | RTC_OBJC_EXPORT 19 | @interface RTC_OBJC_TYPE (RTCVideoEncoderQpThresholds) : NSObject 20 | 21 | - (instancetype)initWithThresholdsLow:(NSInteger)low high:(NSInteger)high; 22 | 23 | @property(nonatomic, readonly) NSInteger low; 24 | @property(nonatomic, readonly) NSInteger high; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoEncoderSettings.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | typedef NS_ENUM(NSUInteger, RTCVideoCodecMode) { 18 | RTCVideoCodecModeRealtimeVideo, 19 | RTCVideoCodecModeScreensharing, 20 | }; 21 | 22 | /** Settings for encoder. Corresponds to webrtc::VideoCodec. */ 23 | RTC_OBJC_EXPORT 24 | @interface RTC_OBJC_TYPE (RTCVideoEncoderSettings) : NSObject 25 | 26 | @property(nonatomic, strong) NSString *name; 27 | 28 | @property(nonatomic, assign) unsigned short width; 29 | @property(nonatomic, assign) unsigned short height; 30 | 31 | @property(nonatomic, assign) unsigned int startBitrate; // kilobits/sec. 32 | @property(nonatomic, assign) unsigned int maxBitrate; 33 | @property(nonatomic, assign) unsigned int minBitrate; 34 | 35 | @property(nonatomic, assign) uint32_t maxFramerate; 36 | 37 | @property(nonatomic, assign) unsigned int qpMax; 38 | @property(nonatomic, assign) RTCVideoCodecMode mode; 39 | 40 | @end 41 | 42 | NS_ASSUME_NONNULL_END 43 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoEncoderVP8.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCVideoEncoder.h" 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoEncoderVP8) : NSObject 18 | 19 | /* This returns a VP8 encoder that can be returned from a RTCVideoEncoderFactory injected into 20 | * RTCPeerConnectionFactory. Even though it implements the RTCVideoEncoder protocol, it can not be 21 | * used independently from the RTCPeerConnectionFactory. 22 | */ 23 | + (id)vp8Encoder; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoEncoderVP9.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCVideoEncoder.h" 15 | 16 | RTC_OBJC_EXPORT 17 | @interface RTC_OBJC_TYPE (RTCVideoEncoderVP9) : NSObject 18 | 19 | /* This returns a VP9 encoder that can be returned from a RTCVideoEncoderFactory injected into 20 | * RTCPeerConnectionFactory. Even though it implements the RTCVideoEncoder protocol, it can not be 21 | * used independently from the RTCPeerConnectionFactory. 22 | */ 23 | + (id)vp9Encoder; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoFrameBuffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @protocol RTC_OBJC_TYPE 18 | (RTCI420Buffer); 19 | 20 | // RTCVideoFrameBuffer is an ObjectiveC version of webrtc::VideoFrameBuffer. 21 | RTC_OBJC_EXPORT 22 | @protocol RTC_OBJC_TYPE 23 | (RTCVideoFrameBuffer) 24 | 25 | @property(nonatomic, readonly) int width; 26 | @property(nonatomic, readonly) int height; 27 | 28 | - (id)toI420; 29 | 30 | @end 31 | 32 | NS_ASSUME_NONNULL_END 33 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoRenderer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | #if TARGET_OS_IPHONE 13 | #import 14 | #endif 15 | 16 | #import "RTCMacros.h" 17 | 18 | NS_ASSUME_NONNULL_BEGIN 19 | 20 | @class RTC_OBJC_TYPE(RTCVideoFrame); 21 | 22 | RTC_OBJC_EXPORT 23 | @protocol RTC_OBJC_TYPE 24 | (RTCVideoRenderer) 25 | 26 | /** The size of the frame. */ 27 | - (void)setSize : (CGSize)size; 28 | 29 | /** The frame to be displayed. */ 30 | - (void)renderFrame:(nullable RTC_OBJC_TYPE(RTCVideoFrame) *)frame; 31 | 32 | @end 33 | 34 | RTC_OBJC_EXPORT 35 | @protocol RTC_OBJC_TYPE 36 | (RTCVideoViewDelegate) 37 | 38 | - (void)videoView : (id)videoView didChangeVideoSize 39 | : (CGSize)size; 40 | 41 | @end 42 | 43 | NS_ASSUME_NONNULL_END 44 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCMediaSource.h" 15 | #import "RTCVideoCapturer.h" 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | RTC_OBJC_EXPORT 20 | 21 | @interface RTC_OBJC_TYPE (RTCVideoSource) : RTC_OBJC_TYPE(RTCMediaSource) 22 | 23 | - (instancetype)init NS_UNAVAILABLE; 24 | 25 | /** 26 | * Calling this function will cause frames to be scaled down to the 27 | * requested resolution. Also, frames will be cropped to match the 28 | * requested aspect ratio, and frames will be dropped to match the 29 | * requested fps. The requested aspect ratio is orientation agnostic and 30 | * will be adjusted to maintain the input orientation, so it doesn't 31 | * matter if e.g. 1280x720 or 720x1280 is requested. 32 | */ 33 | - (void)adaptOutputFormatToWidth:(int)width height:(int)height fps:(int)fps; 34 | 35 | @end 36 | 37 | NS_ASSUME_NONNULL_END 38 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoTrack.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import "RTCMediaStreamTrack.h" 12 | 13 | #import "RTCMacros.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @protocol RTC_OBJC_TYPE 18 | (RTCVideoRenderer); 19 | @class RTC_OBJC_TYPE(RTCPeerConnectionFactory); 20 | @class RTC_OBJC_TYPE(RTCVideoSource); 21 | 22 | RTC_OBJC_EXPORT 23 | @interface RTC_OBJC_TYPE (RTCVideoTrack) : RTC_OBJC_TYPE(RTCMediaStreamTrack) 24 | 25 | /** The video source for this video track. */ 26 | @property(nonatomic, readonly) RTC_OBJC_TYPE(RTCVideoSource) *source; 27 | 28 | - (instancetype)init NS_UNAVAILABLE; 29 | 30 | /** Register a renderer that will render all frames received on this track. */ 31 | - (void)addRenderer:(id)renderer; 32 | 33 | /** Deregister a renderer. */ 34 | - (void)removeRenderer:(id)renderer; 35 | 36 | @end 37 | 38 | NS_ASSUME_NONNULL_END 39 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCVideoViewShading.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCVideoFrame.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** 18 | * RTCVideoViewShading provides a way for apps to customize the OpenGL(ES shaders 19 | * used in rendering for the RTCEAGLVideoView/RTCNSGLVideoView. 20 | */ 21 | RTC_OBJC_EXPORT 22 | @protocol RTC_OBJC_TYPE 23 | (RTCVideoViewShading) 24 | 25 | /** Callback for I420 frames. Each plane is given as a texture. */ 26 | - (void)applyShadingForFrameWithWidth : (int)width height : (int)height rotation 27 | : (RTCVideoRotation)rotation yPlane : (GLuint)yPlane uPlane : (GLuint)uPlane vPlane 28 | : (GLuint)vPlane; 29 | 30 | /** Callback for NV12 frames. Each plane is given as a texture. */ 31 | - (void)applyShadingForFrameWithWidth:(int)width 32 | height:(int)height 33 | rotation:(RTCVideoRotation)rotation 34 | yPlane:(GLuint)yPlane 35 | uvPlane:(GLuint)uvPlane; 36 | 37 | @end 38 | 39 | NS_ASSUME_NONNULL_END 40 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Headers/RTCYUVPlanarBuffer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMacros.h" 14 | #import "RTCVideoFrameBuffer.h" 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | /** Protocol for RTCVideoFrameBuffers containing YUV planar data. */ 19 | RTC_OBJC_EXPORT 20 | @protocol RTC_OBJC_TYPE 21 | (RTCYUVPlanarBuffer) 22 | 23 | @property(nonatomic, readonly) int chromaWidth; 24 | @property(nonatomic, readonly) int chromaHeight; 25 | @property(nonatomic, readonly) const uint8_t *dataY; 26 | @property(nonatomic, readonly) const uint8_t *dataU; 27 | @property(nonatomic, readonly) const uint8_t *dataV; 28 | @property(nonatomic, readonly) int strideY; 29 | @property(nonatomic, readonly) int strideU; 30 | @property(nonatomic, readonly) int strideV; 31 | 32 | - (instancetype)initWithWidth:(int)width 33 | height:(int)height 34 | dataY:(const uint8_t *)dataY 35 | dataU:(const uint8_t *)dataU 36 | dataV:(const uint8_t *)dataV; 37 | - (instancetype)initWithWidth:(int)width height:(int)height; 38 | - (instancetype)initWithWidth:(int)width 39 | height:(int)height 40 | strideY:(int)strideY 41 | strideU:(int)strideU 42 | strideV:(int)strideV; 43 | 44 | @end 45 | 46 | NS_ASSUME_NONNULL_END 47 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuwei007/OpenAIIOSRealtimeAPIDemo/9007de66ca5f01194c6b5853cecf3bd50f8f53cb/Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Info.plist -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module WebRTC { 2 | umbrella header "WebRTC.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/WebRTC: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuwei007/OpenAIIOSRealtimeAPIDemo/9007de66ca5f01194c6b5853cecf3bd50f8f53cb/Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/WebRTC -------------------------------------------------------------------------------- /Pods/GoogleWebRTC/README.md: -------------------------------------------------------------------------------- 1 | # WebRTC SDK for iOS 2 | 3 | This pod contains the WebRTC iOS SDK in binary form. It is a dynamic library 4 | that contains the armv7, arm64 and x86_64 slices. Bitcode is not supported. Our 5 | currently provided API’s are Objective-C only. 6 | 7 | # NOTE 8 | 9 | This pod is no longer being updated. 10 | 11 | ## Getting started 12 | If you are new to WebRTC valuable resources can be found at webrtc.org/start/. 13 | More documentation can be found at https://webrtc.org/native-code/ios/. 14 | Sample code can be found [here](https://webrtc.googlesource.com/src/+/master/examples/objc/AppRTCMobile/). 15 | 16 | ## Installation 17 | To integrate the WebRTC SDK into your XCode project add the following to your 18 | Podfile: 19 | 20 | 21 | ``` 22 | source 'https://github.com/CocoaPods/Specs.git' 23 | target 'YOUR_APPLICATION_TARGET_NAME_HERE' do 24 | platform :ios, '9.0' 25 | pod 'GoogleWebRTC' 26 | end 27 | ``` 28 | 29 | Then, run the following command 30 | 31 | ``` 32 | $ pod install 33 | ``` 34 | 35 | ## Notice 36 | While WebRTC source code is licensed under BSD, it depends on many 37 | other open sourced projects. The list of relevant transitive licenses are 38 | enclosed in LICENSE.md. 39 | 40 | ## Terms of Service 41 | WebRTC is a free, open project that provides browsers and mobile applications 42 | with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC 43 | components have been optimized to best serve this purpose. 44 | 45 | Our mission: To enable rich, high-quality RTC applications to be developed for 46 | browsers, mobile platforms, and IoT devices, and allow them all to communicate 47 | via a common set of protocols. 48 | 49 | The WebRTC Mobile libraries are part of Google’s effort to facilitate the 50 | adoption of WebRTC on Android and iOS. They can be integrated with projects in 51 | Apple’s Xcode and Android studio directly, giving developers the opportunity to 52 | start experimenting with WebRTC. The libraries are published weekly as a 53 | snapshot of the WebRTC source code at 54 | https://webrtc.googlesource.com/src. They are targeted for 55 | developers that want to try out WebRTC on mobile devices. 56 | 57 | Thank you, 58 | -The WebRTC Team 59 | -------------------------------------------------------------------------------- /Pods/Headers/Private/MBProgressHUD/MBProgressHUD.h: -------------------------------------------------------------------------------- 1 | ../../../MBProgressHUD/MBProgressHUD.h -------------------------------------------------------------------------------- /Pods/Headers/Public/IQKeyboardManagerSwift/IQKeyboardManagerSwift-umbrella.h: -------------------------------------------------------------------------------- 1 | ../../../Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-umbrella.h -------------------------------------------------------------------------------- /Pods/Headers/Public/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap: -------------------------------------------------------------------------------- 1 | ../../../Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap -------------------------------------------------------------------------------- /Pods/Headers/Public/MBProgressHUD/MBProgressHUD.h: -------------------------------------------------------------------------------- 1 | ../../../MBProgressHUD/MBProgressHUD.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Starscream/Starscream-umbrella.h: -------------------------------------------------------------------------------- 1 | ../../../Target Support Files/Starscream/Starscream-umbrella.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Starscream/Starscream.modulemap: -------------------------------------------------------------------------------- 1 | ../../../Target Support Files/Starscream/Starscream.modulemap -------------------------------------------------------------------------------- /Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQKeyboardConfiguration.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IQKeyboardConfiguration.swift 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-24 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | import UIKit 25 | 26 | @available(iOSApplicationExtension, unavailable) 27 | @MainActor 28 | @objc public final class IQKeyboardConfiguration: NSObject { 29 | 30 | /** 31 | Override the keyboardAppearance for all textField/textView. Default is NO. 32 | */ 33 | @objc public var overrideAppearance: Bool = false 34 | 35 | /** 36 | If overrideKeyboardAppearance is YES, then all the textField keyboardAppearance is set using this property. 37 | */ 38 | @objc public var appearance: UIKeyboardAppearance = UIKeyboardAppearance.default 39 | } 40 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/Configuration/IQToolbarPlaceholderConfiguration.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IQToolbarPlaceholderConfiguration.swift 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-24 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | import UIKit 25 | 26 | @available(iOSApplicationExtension, unavailable) 27 | @MainActor 28 | @objc public final class IQToolbarPlaceholderConfiguration: NSObject { 29 | 30 | /** 31 | If YES, then it add the textField's placeholder text on IQToolbar. Default is YES. 32 | */ 33 | @objc public var showPlaceholder: Bool = true 34 | 35 | /** 36 | Placeholder Font. Default is nil. 37 | */ 38 | @objc public var font: UIFont? 39 | 40 | /** 41 | Placeholder Color. Default is nil. Which means lightGray 42 | */ 43 | @objc public var color: UIColor? 44 | 45 | /** 46 | Placeholder Button Color when it's treated as button. Default is nil. 47 | */ 48 | @objc public var buttonColor: UIColor? 49 | 50 | /** 51 | Placeholder accessibility Label 52 | */ 53 | public override var accessibilityLabel: String? { didSet { } } 54 | } 55 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+Debug.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IQKeyboardManager+Debug.swift 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-24 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | import UIKit 25 | 26 | // MARK: Debugging & Developer options 27 | @available(iOSApplicationExtension, unavailable) 28 | public extension IQKeyboardManager { 29 | 30 | @MainActor 31 | private struct AssociatedKeys { 32 | static var enableDebugging: Int = 0 33 | } 34 | 35 | @objc var enableDebugging: Bool { 36 | get { 37 | return objc_getAssociatedObject(self, &AssociatedKeys.enableDebugging) as? Bool ?? false 38 | } 39 | set(newValue) { 40 | objc_setAssociatedObject(self, &AssociatedKeys.enableDebugging, 41 | newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) 42 | } 43 | } 44 | 45 | @MainActor 46 | struct Static { 47 | static var indentation = 0 48 | } 49 | 50 | internal func showLog(_ logString: String, indentation: Int = 0) { 51 | 52 | guard enableDebugging else { 53 | return 54 | } 55 | 56 | if indentation < 0 { 57 | Static.indentation = max(0, Static.indentation + indentation) 58 | } 59 | 60 | var preLog: String = "IQKeyboardManager" 61 | for _ in 0 ... Static.indentation { 62 | preLog += "|\t" 63 | } 64 | 65 | print(preLog + logString) 66 | 67 | if indentation > 0 { 68 | Static.indentation += indentation 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManager/IQKeyboardManager+UITextFieldViewNotification.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IQKeyboardManager+UITextFieldViewNotification.swift 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-24 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | import UIKit 25 | 26 | // MARK: UITextField/UITextView Notifications 27 | @available(iOSApplicationExtension, unavailable) 28 | @MainActor 29 | internal extension IQKeyboardManager { 30 | 31 | @MainActor 32 | private struct AssociatedKeys { 33 | static var rootConfigWhilePopActive: Int = 0 34 | } 35 | 36 | var rootConfigurationWhilePopGestureActive: IQRootControllerConfiguration? { 37 | get { 38 | return objc_getAssociatedObject(self, 39 | &AssociatedKeys.rootConfigWhilePopActive) as? IQRootControllerConfiguration 40 | } 41 | set(newValue) { 42 | objc_setAssociatedObject(self, &AssociatedKeys.rootConfigWhilePopActive, 43 | newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQKeyboardManagerCompatible/IQKeyboardManagerCompatible.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IQKeyboardManagerCompatible.swift 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-24 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | import Foundation 25 | 26 | /// Wrapper for IQKeyboardManager compatible types. This type provides an extension point for 27 | /// convenience methods in IQKeyboardManager. 28 | @available(iOSApplicationExtension, unavailable) 29 | public struct IQKeyboardManagerWrapper { 30 | public private(set) weak var base: Base? 31 | public init(_ base: Base) { 32 | self.base = base 33 | } 34 | } 35 | 36 | // swiftlint:disable identifier_name 37 | /// Represents an object type that is compatible with IQKeyboardManager. You can use `iq` property to get a 38 | /// value in the namespace of IQKeyboardManager. 39 | @available(iOSApplicationExtension, unavailable) 40 | public protocol IQKeyboardManagerCompatible { 41 | /// Type being extended. 42 | associatedtype Base: AnyObject 43 | 44 | /// Instance IQKeyboardManager extension point. 45 | @MainActor 46 | var iq: IQKeyboardManagerWrapper { get set } 47 | } 48 | 49 | // swiftlint:disable unused_setter_value 50 | @available(iOSApplicationExtension, unavailable) 51 | public extension IQKeyboardManagerCompatible where Self: AnyObject { 52 | 53 | /// Instance IQKeyboardManager extension point. 54 | @MainActor 55 | var iq: IQKeyboardManagerWrapper { 56 | get { IQKeyboardManagerWrapper(self) } 57 | set {} 58 | } 59 | } 60 | // swiftlint:enable unused_setter_value 61 | // swiftlint:enable identifier_name 62 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQTextView/IQPlaceholderable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IQPlaceholderable.swift 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-24 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | import Foundation 25 | import UIKit 26 | 27 | @available(iOSApplicationExtension, unavailable) 28 | @MainActor 29 | public protocol IQPlaceholderable: AnyObject { 30 | 31 | var placeholder: String? { get set } 32 | var attributedPlaceholder: NSAttributedString? { get set } 33 | } 34 | 35 | @available(iOSApplicationExtension, unavailable) 36 | extension UITextField: IQPlaceholderable { } 37 | 38 | @available(iOSApplicationExtension, unavailable) 39 | extension IQTextView: IQPlaceholderable { } 40 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQInvocation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IQInvocation.swift 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-24 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | import UIKit 25 | 26 | @available(iOSApplicationExtension, unavailable) 27 | @MainActor 28 | @objc public final class IQInvocation: NSObject { 29 | @objc public weak var target: AnyObject? 30 | @objc public var action: Selector 31 | 32 | @objc public init(_ target: AnyObject, _ action: Selector) { 33 | self.target = target 34 | self.action = action 35 | } 36 | 37 | @objc public func invoke(from: Any) { 38 | if let target: AnyObject = target { 39 | UIApplication.shared.sendAction(action, to: target, from: from, for: UIEvent()) 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQPreviousNextView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IQPreviousNextView.swift 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-24 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | import UIKit 25 | 26 | @available(iOSApplicationExtension, unavailable) 27 | @MainActor 28 | @objc open class IQPreviousNextView: UIView { 29 | } 30 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/LIsteners/Info/IQTextFieldViewInfo.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IQTextFieldViewInfo.swift 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-24 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | import UIKit 25 | 26 | @available(iOSApplicationExtension, unavailable) 27 | @MainActor 28 | public struct IQTextFieldViewInfo: Equatable { 29 | 30 | nonisolated public static func == (lhs: Self, rhs: Self) -> Bool { 31 | return lhs.textFieldView == rhs.textFieldView && 32 | lhs.name == rhs.name 33 | } 34 | 35 | @MainActor 36 | @objc public enum Name: Int { 37 | case beginEditing 38 | case endEditing 39 | } 40 | 41 | public let name: Name 42 | 43 | public let textFieldView: UIView 44 | 45 | public init?(notification: Notification?, name: Name) { 46 | guard let view: UIView = notification?.object as? UIView else { 47 | return nil 48 | } 49 | 50 | guard !view.iq.isAlertViewTextField() else { 51 | return nil 52 | } 53 | 54 | self.name = name 55 | textFieldView = view 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/PrivacyInfo.xcprivacy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrivacyAccessedAPITypes 6 | 7 | NSPrivacyTrackingDomains 8 | 9 | NSPrivacyCollectedDataTypes 10 | 11 | NSPrivacyTracking 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/ReturnKeyHandler/IQTextFieldViewInfoModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IQTextFieldViewInfoModel.swift 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-24 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | import UIKit 25 | 26 | @available(iOSApplicationExtension, unavailable) 27 | @MainActor 28 | internal final class IQTextFieldViewInfoModel: NSObject { 29 | 30 | weak var textFieldDelegate: (any UITextFieldDelegate)? 31 | weak var textViewDelegate: (any UITextViewDelegate)? 32 | weak var textFieldView: UIView? 33 | let originalReturnKeyType: UIReturnKeyType 34 | 35 | init(textField: UITextField) { 36 | self.textFieldView = textField 37 | self.textFieldDelegate = textField.delegate 38 | self.originalReturnKeyType = textField.returnKeyType 39 | } 40 | 41 | init(textView: UITextView) { 42 | self.textFieldView = textView 43 | self.textViewDelegate = textView.delegate 44 | self.originalReturnKeyType = textView.returnKeyType 45 | } 46 | 47 | func restore() { 48 | if let textField = textFieldView as? UITextField { 49 | textField.returnKeyType = originalReturnKeyType 50 | textField.delegate = textFieldDelegate 51 | } else if let textView = textFieldView as? UITextView { 52 | textView.returnKeyType = originalReturnKeyType 53 | textView.delegate = textViewDelegate 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQNSArray+Sort.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IQNSArray+Sort.swift 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-24 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | import UIKit 25 | 26 | /** 27 | UIView.subviews sorting category. 28 | */ 29 | @available(iOSApplicationExtension, unavailable) 30 | @MainActor 31 | internal extension Array where Element: UIView { 32 | 33 | /** 34 | Returns the array by sorting the UIView's by their tag property. 35 | */ 36 | func sortedByTag() -> [Element] { 37 | 38 | return sorted(by: { (obj1: Element, obj2: Element) -> Bool in 39 | 40 | return (obj1.tag < obj2.tag) 41 | }) 42 | } 43 | 44 | /** 45 | Returns the array by sorting the UIView's by their tag property. 46 | */ 47 | func sortedByPosition() -> [Element] { 48 | 49 | return sorted(by: { (obj1: Element, obj2: Element) -> Bool in 50 | if obj1.frame.minY != obj2.frame.minY { 51 | return obj1.frame.minY < obj2.frame.minY 52 | } else { 53 | return obj1.frame.minX < obj2.frame.minX 54 | } 55 | }) 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUICollectionView+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IQUICollectionView+Additions.swift 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-24 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | import UIKit 25 | 26 | @available(iOSApplicationExtension, unavailable) 27 | @MainActor 28 | internal extension UICollectionView { 29 | 30 | func previousIndexPath(of indexPath: IndexPath) -> IndexPath? { 31 | var previousRow: Int = indexPath.row - 1 32 | var previousSection: Int = indexPath.section 33 | 34 | // Fixing indexPath 35 | if previousRow < 0 { 36 | previousSection -= 1 37 | if previousSection >= 0 { 38 | previousRow = self.numberOfItems(inSection: previousSection) - 1 39 | } 40 | } 41 | 42 | if previousRow >= 0, previousSection >= 0 { 43 | return IndexPath(item: previousRow, section: previousSection) 44 | } else { 45 | return nil 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUITableView+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IQUITableView+Additions.swift 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-24 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | import UIKit 25 | 26 | @available(iOSApplicationExtension, unavailable) 27 | @MainActor 28 | internal extension UITableView { 29 | 30 | func previousIndexPath(of indexPath: IndexPath) -> IndexPath? { 31 | var previousRow: Int = indexPath.row - 1 32 | var previousSection: Int = indexPath.section 33 | 34 | // Fixing indexPath 35 | if previousRow < 0 { 36 | previousSection -= 1 37 | if previousSection >= 0 { 38 | previousRow = self.numberOfRows(inSection: previousSection) - 1 39 | } 40 | } 41 | 42 | if previousRow >= 0, previousSection >= 0 { 43 | return IndexPath(row: previousRow, section: previousSection) 44 | } else { 45 | return nil 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/IQUIViewController+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IQUIViewController+Additions.swift 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-24 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | import UIKit 25 | 26 | @available(iOSApplicationExtension, unavailable) 27 | @MainActor 28 | @objc extension UIViewController { 29 | 30 | /** 31 | This method is provided to override by viewController's 32 | if the library lifts a viewController which you doesn't want to lift. 33 | This may happen if you have implemented side menu feature 34 | in your app and the library try to lift the side menu controller. 35 | Overriding this method in side menu class to return correct controller should fix the problem. 36 | */ 37 | open func iq_parentContainerViewController() -> UIViewController? { 38 | return self 39 | } 40 | } 41 | 42 | @available(iOSApplicationExtension, unavailable) 43 | @objc extension UIViewController { 44 | @available(*, unavailable, renamed: "iq_parentContainerViewController()") 45 | open func parentIQContainerViewController() -> UIViewController? { 46 | return self 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/UIKitExtensions/MainActor+AssumeIsolated.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MainActor+AssumeIsolated.swift 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-24 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | import Foundation 25 | 26 | extension MainActor { 27 | // https://forums.swift.org/t/replacement-for-mainactor-unsafe/65956/2 28 | @_unavailableFromAsync 29 | static func assumeIsolatedBackDeployed(_ body: @MainActor () throws -> T) rethrows -> T { 30 | #if swift(>=6) // Xcode 16 31 | if #available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) { 32 | return try assumeIsolated(body) 33 | } 34 | #elseif swift(>=5.9) // Xcode 15 35 | if #available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *) { 36 | return try assumeIsolated(body) 37 | } 38 | #endif 39 | dispatchPrecondition(condition: .onQueue(.main)) 40 | return try withoutActuallyEscaping(body) { function in 41 | try unsafeBitCast(function, to: (() throws -> T).self)() 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManagerSwift/LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2013-2023 Iftekhar Qurashi 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Pods/MBProgressHUD/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright © 2009-2020 Matej Bukovinski 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - GoogleWebRTC (1.1.32000) 3 | - IQKeyboardManagerSwift (7.1.1) 4 | - MBProgressHUD (1.2.0) 5 | - Starscream (4.0.8) 6 | 7 | DEPENDENCIES: 8 | - GoogleWebRTC 9 | - IQKeyboardManagerSwift 10 | - MBProgressHUD 11 | - Starscream 12 | 13 | SPEC REPOS: 14 | trunk: 15 | - GoogleWebRTC 16 | - IQKeyboardManagerSwift 17 | - MBProgressHUD 18 | - Starscream 19 | 20 | SPEC CHECKSUMS: 21 | GoogleWebRTC: 4d261187b30512efdb711d21fa961a6adf138717 22 | IQKeyboardManagerSwift: d7f3d3a562c237a0e7335e657cd598c452f57f1b 23 | MBProgressHUD: 3ee5efcc380f6a79a7cc9b363dd669c5e1ae7406 24 | Starscream: 19b5533ddb925208db698f0ac508a100b884a1b9 25 | 26 | PODFILE CHECKSUM: 80f9dca7b05274ee2433240a4520eedd06a422dd 27 | 28 | COCOAPODS: 1.16.2 29 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/jinfulai.xcuserdatad/xcschemes/GoogleWebRTC.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 53 | 54 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/jinfulai.xcuserdatad/xcschemes/IQKeyboardManagerSwift-IQKeyboardManagerSwift.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 53 | 54 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/jinfulai.xcuserdatad/xcschemes/IQKeyboardManagerSwift.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 53 | 54 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/jinfulai.xcuserdatad/xcschemes/MBProgressHUD.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 53 | 54 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/jinfulai.xcuserdatad/xcschemes/Pods-SwftDemo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 53 | 54 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/jinfulai.xcuserdatad/xcschemes/Starscream-Starscream_Privacy.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 53 | 54 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/jinfulai.xcuserdatad/xcschemes/Starscream.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 53 | 54 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/jinfulai.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | GoogleWebRTC.xcscheme 8 | 9 | isShown 10 | 11 | orderHint 12 | 0 13 | 14 | IQKeyboardManagerSwift-IQKeyboardManagerSwift.xcscheme 15 | 16 | isShown 17 | 18 | orderHint 19 | 2 20 | 21 | IQKeyboardManagerSwift.xcscheme 22 | 23 | isShown 24 | 25 | orderHint 26 | 1 27 | 28 | MBProgressHUD.xcscheme 29 | 30 | isShown 31 | 32 | orderHint 33 | 3 34 | 35 | Pods-SwftDemo.xcscheme 36 | 37 | isShown 38 | 39 | orderHint 40 | 4 41 | 42 | Starscream-Starscream_Privacy.xcscheme 43 | 44 | isShown 45 | 46 | orderHint 47 | 6 48 | 49 | Starscream.xcscheme 50 | 51 | isShown 52 | 53 | orderHint 54 | 5 55 | 56 | 57 | SuppressBuildableAutocreation 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/zhangye.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | IQKeyboardManagerSwift-IQKeyboardManagerSwift.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 3 11 | 12 | IQKeyboardManagerSwift.xcscheme_^#shared#^_ 13 | 14 | orderHint 15 | 0 16 | 17 | MBProgressHUD.xcscheme_^#shared#^_ 18 | 19 | orderHint 20 | 4 21 | 22 | Pods-SwftDemo.xcscheme_^#shared#^_ 23 | 24 | orderHint 25 | 2 26 | 27 | Starscream-Starscream_Privacy.xcscheme_^#shared#^_ 28 | 29 | orderHint 30 | 6 31 | 32 | Starscream.xcscheme_^#shared#^_ 33 | 34 | orderHint 35 | 5 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /Pods/Starscream/Sources/Compression/Compression.swift: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Compression.swift 4 | // Starscream 5 | // 6 | // Created by Dalton Cherry on 2/4/19. 7 | // Copyright © 2019 Vluxe. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // http://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // 21 | ////////////////////////////////////////////////////////////////////////////////////////////////// 22 | 23 | import Foundation 24 | 25 | public protocol CompressionHandler { 26 | func load(headers: [String: String]) 27 | func decompress(data: Data, isFinal: Bool) -> Data? 28 | func compress(data: Data) -> Data? 29 | } 30 | -------------------------------------------------------------------------------- /Pods/Starscream/Sources/DataBytes/Data+Extensions.swift: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Data+Extensions.swift 4 | // Starscream 5 | // 6 | // Created by Dalton Cherry on 3/27/19. 7 | // Copyright © 2019 Vluxe. All rights reserved. 8 | // 9 | // Fix for deprecation warnings 10 | // 11 | // Licensed under the Apache License, Version 2.0 (the "License"); 12 | // you may not use this file except in compliance with the License. 13 | // You may obtain a copy of the License at 14 | // 15 | // http://www.apache.org/licenses/LICENSE-2.0 16 | // 17 | // Unless required by applicable law or agreed to in writing, software 18 | // distributed under the License is distributed on an "AS IS" BASIS, 19 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 20 | // See the License for the specific language governing permissions and 21 | // limitations under the License. 22 | // 23 | ////////////////////////////////////////////////////////////////////////////////////////////////// 24 | 25 | import Foundation 26 | 27 | internal extension Data { 28 | struct ByteError: Swift.Error {} 29 | 30 | #if swift(>=5.0) 31 | func withUnsafeBytes(_ completion: (UnsafePointer) throws -> ResultType) rethrows -> ResultType { 32 | return try withUnsafeBytes { 33 | if let baseAddress = $0.baseAddress, $0.count > 0 { 34 | return try completion(baseAddress.assumingMemoryBound(to: ContentType.self)) 35 | } else { 36 | throw ByteError() 37 | } 38 | } 39 | } 40 | #endif 41 | 42 | #if swift(>=5.0) 43 | mutating func withUnsafeMutableBytes(_ completion: (UnsafeMutablePointer) throws -> ResultType) rethrows -> ResultType { 44 | return try withUnsafeMutableBytes { 45 | if let baseAddress = $0.baseAddress, $0.count > 0 { 46 | return try completion(baseAddress.assumingMemoryBound(to: ContentType.self)) 47 | } else { 48 | throw ByteError() 49 | } 50 | } 51 | } 52 | #endif 53 | } 54 | -------------------------------------------------------------------------------- /Pods/Starscream/Sources/Engine/Engine.swift: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Engine.swift 4 | // Starscream 5 | // 6 | // Created by Dalton Cherry on 6/15/19 7 | // Copyright © 2019 Vluxe. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // http://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // 21 | ////////////////////////////////////////////////////////////////////////////////////////////////// 22 | 23 | import Foundation 24 | 25 | public protocol EngineDelegate: AnyObject { 26 | func didReceive(event: WebSocketEvent) 27 | } 28 | 29 | public protocol Engine { 30 | func register(delegate: EngineDelegate) 31 | func start(request: URLRequest) 32 | func stop(closeCode: UInt16) 33 | func forceStop() 34 | func write(data: Data, opcode: FrameOpCode, completion: (() -> ())?) 35 | func write(string: String, completion: (() -> ())?) 36 | } 37 | -------------------------------------------------------------------------------- /Pods/Starscream/Sources/PrivacyInfo.xcprivacy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrivacyTracking 6 | 7 | NSPrivacyTrackingDomains 8 | 9 | NSPrivacyCollectedDataTypes 10 | 11 | NSPrivacyAccessedAPITypes 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Pods/Starscream/Sources/Security/Security.swift: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Security.swift 4 | // Starscream 5 | // 6 | // Created by Dalton Cherry on 3/16/19. 7 | // Copyright © 2019 Vluxe. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // http://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // 21 | ////////////////////////////////////////////////////////////////////////////////////////////////// 22 | 23 | import Foundation 24 | 25 | public enum SecurityErrorCode: UInt16 { 26 | case acceptFailed = 1 27 | case pinningFailed = 2 28 | } 29 | 30 | public enum PinningState { 31 | case success 32 | case failed(CFError?) 33 | } 34 | 35 | // CertificatePinning protocol provides an interface for Transports to handle Certificate 36 | // or Public Key Pinning. 37 | public protocol CertificatePinning: AnyObject { 38 | func evaluateTrust(trust: SecTrust, domain: String?, completion: ((PinningState) -> ())) 39 | } 40 | 41 | // validates the "Sec-WebSocket-Accept" header as defined 1.3 of the RFC 6455 42 | // https://tools.ietf.org/html/rfc6455#section-1.3 43 | public protocol HeaderValidator: AnyObject { 44 | func validate(headers: [String: String], key: String) -> Error? 45 | } 46 | -------------------------------------------------------------------------------- /Pods/Starscream/Sources/Server/Server.swift: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Server.swift 4 | // Starscream 5 | // 6 | // Created by Dalton Cherry on 4/2/19. 7 | // Copyright © 2019 Vluxe. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // http://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // 21 | ////////////////////////////////////////////////////////////////////////////////////////////////// 22 | 23 | import Foundation 24 | 25 | public enum ConnectionEvent { 26 | case connected([String: String]) 27 | case disconnected(String, UInt16) 28 | case text(String) 29 | case binary(Data) 30 | case pong(Data?) 31 | case ping(Data?) 32 | case error(Error) 33 | } 34 | 35 | public protocol Connection { 36 | func write(data: Data, opcode: FrameOpCode) 37 | } 38 | 39 | public protocol ConnectionDelegate: AnyObject { 40 | func didReceive(event: ServerEvent) 41 | } 42 | 43 | public enum ServerEvent { 44 | case connected(Connection, [String: String]) 45 | case disconnected(Connection, String, UInt16) 46 | case text(Connection, String) 47 | case binary(Connection, Data) 48 | case pong(Connection, Data?) 49 | case ping(Connection, Data?) 50 | } 51 | 52 | public protocol Server { 53 | func start(address: String, port: UInt16) -> Error? 54 | } 55 | 56 | 57 | -------------------------------------------------------------------------------- /Pods/Starscream/Sources/Transport/Transport.swift: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Transport.swift 4 | // Starscream 5 | // 6 | // Created by Dalton Cherry on 1/23/19. 7 | // Copyright © 2019 Vluxe. All rights reserved. 8 | // 9 | // Licensed under the Apache License, Version 2.0 (the "License"); 10 | // you may not use this file except in compliance with the License. 11 | // You may obtain a copy of the License at 12 | // 13 | // http://www.apache.org/licenses/LICENSE-2.0 14 | // 15 | // Unless required by applicable law or agreed to in writing, software 16 | // distributed under the License is distributed on an "AS IS" BASIS, 17 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | // See the License for the specific language governing permissions and 19 | // limitations under the License. 20 | // 21 | ////////////////////////////////////////////////////////////////////////////////////////////////// 22 | 23 | import Foundation 24 | 25 | public enum ConnectionState { 26 | /// Ready connections can send and receive data 27 | case connected 28 | 29 | /// Waiting connections have not yet been started, or do not have a viable network 30 | case waiting 31 | 32 | /// Cancelled connections have been invalidated by the client and will send no more events 33 | case cancelled 34 | 35 | /// Failed connections are disconnected and can no longer send or receive data 36 | case failed(Error?) 37 | 38 | /// Viability (connection status) of the connection has updated 39 | /// e.g. connection is down, connection came back up, etc. 40 | case viability(Bool) 41 | 42 | /// Connection ca be upgraded to wifi from cellular. 43 | /// You should consider reconnecting to take advantage of this. 44 | case shouldReconnect(Bool) 45 | 46 | /// Received data 47 | case receive(Data) 48 | 49 | /// Remote peer has closed the network connection. 50 | case peerClosed 51 | } 52 | 53 | public protocol TransportEventClient: AnyObject { 54 | func connectionChanged(state: ConnectionState) 55 | } 56 | 57 | public protocol Transport: AnyObject { 58 | func register(delegate: TransportEventClient) 59 | func connect(url: URL, timeout: Double, certificatePinning: CertificatePinning?) 60 | func disconnect() 61 | func write(data: Data, completion: @escaping ((Error?) -> ())) 62 | var usingTLS: Bool { get } 63 | } 64 | -------------------------------------------------------------------------------- /Pods/Target Support Files/GoogleWebRTC/GoogleWebRTC.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/GoogleWebRTC 3 | EXCLUDED_ARCHS[sdk=iphonesimulator*] = ["arm64"] 4 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/GoogleWebRTC/Frameworks/frameworks" 5 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/GoogleWebRTC 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Pods/Target Support Files/GoogleWebRTC/GoogleWebRTC.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/GoogleWebRTC 3 | EXCLUDED_ARCHS[sdk=iphonesimulator*] = ["arm64"] 4 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/GoogleWebRTC/Frameworks/frameworks" 5 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/GoogleWebRTC 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_IQKeyboardManagerSwift : NSObject 3 | @end 4 | @implementation PodsDummy_IQKeyboardManagerSwift 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double IQKeyboardManagerSwiftVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char IQKeyboardManagerSwiftVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) $(SDKROOT)/usr/lib/swift 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/IQKeyboardManagerSwift 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap: -------------------------------------------------------------------------------- 1 | module IQKeyboardManagerSwift { 2 | umbrella header "IQKeyboardManagerSwift-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManagerSwift/IQKeyboardManagerSwift.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) $(SDKROOT)/usr/lib/swift 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/IQKeyboardManagerSwift 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManagerSwift/ResourceBundle-IQKeyboardManagerSwift-IQKeyboardManagerSwift-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | ${PODS_DEVELOPMENT_LANGUAGE} 7 | CFBundleIdentifier 8 | ${PRODUCT_BUNDLE_IDENTIFIER} 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundleName 12 | ${PRODUCT_NAME} 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 7.1.1 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | NSPrincipalClass 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MBProgressHUD/MBProgressHUD-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MBProgressHUD : NSObject 3 | @end 4 | @implementation PodsDummy_MBProgressHUD 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MBProgressHUD/MBProgressHUD-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MBProgressHUD/MBProgressHUD.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MBProgressHUD" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MBProgressHUD" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MBProgressHUD 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Pods/Target Support Files/MBProgressHUD/MBProgressHUD.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MBProgressHUD" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MBProgressHUD" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MBProgressHUD 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwftDemo/Pods-SwftDemo-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SwftDemo : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SwftDemo 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwftDemo/Pods-SwftDemo-frameworks-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-SwftDemo/Pods-SwftDemo-frameworks.sh 2 | ${PODS_ROOT}/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwftDemo/Pods-SwftDemo-frameworks-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebRTC.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwftDemo/Pods-SwftDemo-frameworks-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-SwftDemo/Pods-SwftDemo-frameworks.sh 2 | ${PODS_ROOT}/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwftDemo/Pods-SwftDemo-frameworks-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebRTC.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwftDemo/Pods-SwftDemo-resources-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-SwftDemo/Pods-SwftDemo-resources.sh 2 | ${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.bundle 3 | ${PODS_CONFIGURATION_BUILD_DIR}/Starscream/Starscream_Privacy.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwftDemo/Pods-SwftDemo-resources-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/IQKeyboardManagerSwift.bundle 2 | ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Starscream_Privacy.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwftDemo/Pods-SwftDemo-resources-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-SwftDemo/Pods-SwftDemo-resources.sh 2 | ${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.bundle 3 | ${PODS_CONFIGURATION_BUILD_DIR}/Starscream/Starscream_Privacy.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwftDemo/Pods-SwftDemo-resources-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/IQKeyboardManagerSwift.bundle 2 | ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Starscream_Privacy.bundle -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwftDemo/Pods-SwftDemo-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_SwftDemoVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_SwftDemoVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwftDemo/Pods-SwftDemo.debug.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 3 | EXCLUDED_ARCHS[sdk=iphonesimulator*] = ["arm64"] 4 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/GoogleWebRTC/Frameworks/frameworks" 5 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 6 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MBProgressHUD" 7 | LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' 8 | LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/Starscream" "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(SDKROOT)/usr/lib/swift 9 | OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Starscream/Starscream.modulemap" 10 | OTHER_LDFLAGS = $(inherited) -ObjC -l"IQKeyboardManagerSwift" -l"MBProgressHUD" -l"Starscream" -l"swiftCoreGraphics" -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit" -framework "WebRTC" 11 | OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/GoogleWebRTC" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "-F${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "-F${PODS_CONFIGURATION_BUILD_DIR}/Starscream" 12 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Starscream/Starscream.modulemap" 13 | PODS_BUILD_DIR = ${BUILD_DIR} 14 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 15 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 16 | PODS_ROOT = ${SRCROOT}/Pods 17 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 18 | SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/Starscream" 19 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 20 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwftDemo/Pods-SwftDemo.modulemap: -------------------------------------------------------------------------------- 1 | module Pods_SwftDemo { 2 | umbrella header "Pods-SwftDemo-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-SwftDemo/Pods-SwftDemo.release.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 3 | EXCLUDED_ARCHS[sdk=iphonesimulator*] = ["arm64"] 4 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/GoogleWebRTC/Frameworks/frameworks" 5 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 6 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MBProgressHUD" 7 | LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' 8 | LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/Starscream" "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(SDKROOT)/usr/lib/swift 9 | OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Starscream/Starscream.modulemap" 10 | OTHER_LDFLAGS = $(inherited) -ObjC -l"IQKeyboardManagerSwift" -l"MBProgressHUD" -l"Starscream" -l"swiftCoreGraphics" -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit" -framework "WebRTC" 11 | OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/GoogleWebRTC" "-F${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "-F${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "-F${PODS_CONFIGURATION_BUILD_DIR}/Starscream" 12 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Starscream/Starscream.modulemap" 13 | PODS_BUILD_DIR = ${BUILD_DIR} 14 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 15 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 16 | PODS_ROOT = ${SRCROOT}/Pods 17 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 18 | SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/Starscream" 19 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 20 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Starscream/ResourceBundle-Starscream_Privacy-Starscream-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | ${PODS_DEVELOPMENT_LANGUAGE} 7 | CFBundleIdentifier 8 | ${PRODUCT_BUNDLE_IDENTIFIER} 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundleName 12 | ${PRODUCT_NAME} 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 4.0.8 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | NSPrincipalClass 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Starscream/Starscream-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Starscream : NSObject 3 | @end 4 | @implementation PodsDummy_Starscream 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Starscream/Starscream-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Starscream/Starscream-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double StarscreamVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char StarscreamVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Starscream/Starscream.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Starscream 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Starscream 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Starscream/Starscream.modulemap: -------------------------------------------------------------------------------- 1 | module Starscream { 2 | umbrella header "Starscream-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Starscream/Starscream.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Starscream 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Starscream 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Welcome! This is the first IOS demo for OpenAI realtime API. 2 | 3 | News: 4 | 5 | 2025-3-3: Welcome to https://github.com/fuwei007/AIChatBotiOSSDK for the SDK for IOS, you can easily implement Realtime converstion, with text, audio, functon call in 10 minutes. 6 | 7 | 8 | Video: 9 | 10 | https://www.youtube.com/watch?v=eWsvwTnscBA 11 | 12 | https://www.youtube.com/watch?v=3HC1VeaPhRo&t=331s 13 | -------------------------------------------------------------------------------- /SwftDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SwftDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SwftDemo.xcodeproj/project.xcworkspace/xcuserdata/jinfulai.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuwei007/OpenAIIOSRealtimeAPIDemo/9007de66ca5f01194c6b5853cecf3bd50f8f53cb/SwftDemo.xcodeproj/project.xcworkspace/xcuserdata/jinfulai.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /SwftDemo.xcodeproj/xcuserdata/jinfulai.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /SwftDemo.xcodeproj/xcuserdata/jinfulai.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | SwftDemo.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 7 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /SwftDemo.xcodeproj/xcuserdata/zhangye.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | SwftDemo.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 1 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /SwftDemo.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /SwftDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SwftDemo.xcworkspace/xcuserdata/jinfulai.xcuserdatad/IDEFindNavigatorScopes.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /SwftDemo.xcworkspace/xcuserdata/jinfulai.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuwei007/OpenAIIOSRealtimeAPIDemo/9007de66ca5f01194c6b5853cecf3bd50f8f53cb/SwftDemo.xcworkspace/xcuserdata/jinfulai.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /SwftDemo.xcworkspace/xcuserdata/jinfulai.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /SwftDemo.xcworkspace/xcuserdata/zhangye.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuwei007/OpenAIIOSRealtimeAPIDemo/9007de66ca5f01194c6b5853cecf3bd50f8f53cb/SwftDemo.xcworkspace/xcuserdata/zhangye.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /SwftDemo.xcworkspace/xcuserdata/zhangye.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /SwftDemo/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | 2 | import UIKit 3 | import IQKeyboardManagerSwift 4 | 5 | @main 6 | class AppDelegate: UIResponder, UIApplicationDelegate { 7 | 8 | var window: UIWindow? 9 | 10 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 11 | 12 | initIQKeyboardManagerSwift() 13 | 14 | window = UIWindow(frame: UIScreen.main.bounds) 15 | window?.backgroundColor = .white 16 | 17 | let vc = RootViewController() 18 | window?.rootViewController = vc 19 | window?.makeKeyAndVisible() 20 | 21 | return true 22 | } 23 | 24 | //MARK: Third SDK---IQKeyboardManager 25 | func initIQKeyboardManagerSwift(){ 26 | IQKeyboardManager.shared.enable = true 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /SwftDemo/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "资源 14.png", 5 | "idiom" : "universal", 6 | "platform" : "ios", 7 | "size" : "1024x1024" 8 | } 9 | ], 10 | "info" : { 11 | "author" : "xcode", 12 | "version" : 1 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /SwftDemo/Assets.xcassets/AppIcon.appiconset/资源 14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fuwei007/OpenAIIOSRealtimeAPIDemo/9007de66ca5f01194c6b5853cecf3bd50f8f53cb/SwftDemo/Assets.xcassets/AppIcon.appiconset/资源 14.png -------------------------------------------------------------------------------- /SwftDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SwftDemo/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /SwftDemo/Extention/MaciroDefine.swift: -------------------------------------------------------------------------------- 1 | 2 | import Foundation 3 | import UIKit 4 | import AVFoundation 5 | 6 | func getCurrentVc() -> UIViewController{ 7 | let rootVc = UIApplication.shared.keyWindow?.rootViewController 8 | let currentVc = getCurrentVcFrom(rootVc!) 9 | return currentVc 10 | } 11 | func getCurrentVcFrom(_ rootVc:UIViewController) -> UIViewController{ 12 | var currentVc:UIViewController 13 | var rootCtr = rootVc 14 | if(rootCtr.presentedViewController != nil) { 15 | rootCtr = rootVc.presentedViewController! 16 | } 17 | if rootVc.isKind(of:UITabBarController.classForCoder()) { 18 | currentVc = getCurrentVcFrom((rootVc as! UITabBarController).selectedViewController!) 19 | }else if rootVc.isKind(of:UINavigationController.classForCoder()){ 20 | currentVc = getCurrentVcFrom((rootVc as! UINavigationController).visibleViewController!) 21 | }else{ 22 | currentVc = rootCtr 23 | } 24 | return currentVc 25 | } 26 | func int16DataToPCMBuffer(int16Data: [Int16], sampleRate: Double, channels: AVAudioChannelCount) -> AVAudioPCMBuffer? { 27 | let audioFormat = AVAudioFormat(commonFormat: .pcmFormatInt16, sampleRate: sampleRate, channels: channels, interleaved: false) 28 | let frameLength = UInt32(int16Data.count) / channels 29 | guard let pcmBuffer = AVAudioPCMBuffer(pcmFormat: audioFormat!, frameCapacity: frameLength) else { 30 | print("Can't creat AVAudioPCMBuffer") 31 | return nil 32 | } 33 | pcmBuffer.frameLength = frameLength 34 | if let channelData = pcmBuffer.int16ChannelData { 35 | for channel in 0.. 2 | 3 | 4 | 5 | ITSAppUsesNonExemptEncryption 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SwftDemo/RealTime-WebSocket/AudioVolumeView/AudioVisualizerView.swift: -------------------------------------------------------------------------------- 1 | 2 | 3 | import UIKit 4 | 5 | class AudioVisualizerView: UIView { 6 | var circleViews: [UIView] = [] 7 | override init(frame: CGRect) { 8 | super.init(frame: frame) 9 | self.backgroundColor = .clear 10 | setupCircles() 11 | } 12 | required init?(coder: NSCoder) { 13 | super.init(coder: coder) 14 | setupCircles() 15 | } 16 | private func setupCircles() { 17 | for _ in 0..<4 { 18 | let circleView = UIView() 19 | circleView.backgroundColor = .black 20 | circleView.layer.cornerRadius = 10 21 | circleView.layer.masksToBounds = true 22 | circleView.frame = CGRect(x: 0, y: 0, width: 20, height: 20) 23 | self.addSubview(circleView) 24 | circleViews.append(circleView) 25 | } 26 | layoutCircles() 27 | } 28 | private func layoutCircles() { 29 | let spacing: CGFloat = 15.0 30 | let totalWidth = CGFloat(circleViews.count - 1) * spacing + CGFloat(circleViews.count) * 20.0 31 | let startX = (self.bounds.width - totalWidth) / 2 32 | for (index, circleView) in circleViews.enumerated() { 33 | circleView.frame.origin = CGPoint(x: startX + CGFloat(index) * (20 + spacing), y: (self.bounds.height - 20) / 2) 34 | } 35 | } 36 | func updateCircles(with rmsValue: Float) { 37 | let maxScale: CGFloat = 4 38 | let scaleFactor = CGFloat(rmsValue*2) * maxScale 39 | UIView.animate(withDuration: 0.1) { 40 | for circleView in self.circleViews { 41 | let new_height = max(20, 20 + scaleFactor * 20) 42 | circleView.frame = CGRectMake(circleView.frame.minX, self.bounds.size.height/2-new_height/2, 20, new_height) 43 | circleView.layer.cornerRadius = 10 44 | } 45 | } 46 | } 47 | override func layoutSubviews() { 48 | super.layoutSubviews() 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /SwftDemo/RootViewController.swift: -------------------------------------------------------------------------------- 1 | 2 | import UIKit 3 | 4 | class RootViewController: UIViewController { 5 | 6 | @IBOutlet weak var firstButton: UIButton! 7 | @IBOutlet weak var secondButton: UIButton! 8 | override func viewDidLoad() { 9 | super.viewDidLoad() 10 | 11 | initUI() 12 | } 13 | 14 | func initUI(){ 15 | firstButton.layer.borderWidth = 1.0 16 | firstButton.layer.borderColor = UIColor.black.cgColor 17 | firstButton.layer.cornerRadius = 8 18 | 19 | secondButton.layer.borderWidth = 1.0 20 | secondButton.layer.borderColor = UIColor.black.cgColor 21 | secondButton.layer.cornerRadius = 8 22 | } 23 | 24 | @IBAction func clickWebSocketButton(_ sender: Any) { 25 | let vc = RealTimeApiWebSocketMainVC() 26 | vc.modalPresentationStyle = .fullScreen 27 | present(vc, animated: true) 28 | } 29 | 30 | @IBAction func clickWebRTCButton(_ sender: Any) { 31 | let vc = RealTimeApiWebRTCMainVC() 32 | vc.modalPresentationStyle = .fullScreen 33 | present(vc, animated: true) 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /SwftDemo/SwftDemo-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #ifndef SwftDemo-Bridging-Headerr_h 2 | #define SwftDemo-Bridging-Header_h 3 | 4 | #import "MBProgressHUD.h" 5 | 6 | #endif 7 | --------------------------------------------------------------------------------