From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- .../examples/objc/AppRTCMobile/ARDAppClient.h | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 third_party/libwebrtc/examples/objc/AppRTCMobile/ARDAppClient.h (limited to 'third_party/libwebrtc/examples/objc/AppRTCMobile/ARDAppClient.h') diff --git a/third_party/libwebrtc/examples/objc/AppRTCMobile/ARDAppClient.h b/third_party/libwebrtc/examples/objc/AppRTCMobile/ARDAppClient.h new file mode 100644 index 0000000000..91d2cef1ce --- /dev/null +++ b/third_party/libwebrtc/examples/objc/AppRTCMobile/ARDAppClient.h @@ -0,0 +1,87 @@ +/* + * Copyright 2014 The WebRTC Project Authors. All rights reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#import + +#import "sdk/objc/api/peerconnection/RTCPeerConnection.h" +#import "sdk/objc/api/peerconnection/RTCVideoTrack.h" + +typedef NS_ENUM(NSInteger, ARDAppClientState) { + // Disconnected from servers. + kARDAppClientStateDisconnected, + // Connecting to servers. + kARDAppClientStateConnecting, + // Connected to servers. + kARDAppClientStateConnected, +}; + +@class ARDAppClient; +@class ARDSettingsModel; +@class ARDExternalSampleCapturer; +@class RTC_OBJC_TYPE(RTCMediaConstraints); +@class RTC_OBJC_TYPE(RTCCameraVideoCapturer); +@class RTC_OBJC_TYPE(RTCFileVideoCapturer); + +// The delegate is informed of pertinent events and will be called on the +// main queue. +@protocol ARDAppClientDelegate + +- (void)appClient:(ARDAppClient *)client didChangeState:(ARDAppClientState)state; + +- (void)appClient:(ARDAppClient *)client didChangeConnectionState:(RTCIceConnectionState)state; + +- (void)appClient:(ARDAppClient *)client + didCreateLocalCapturer:(RTC_OBJC_TYPE(RTCCameraVideoCapturer) *)localCapturer; + +- (void)appClient:(ARDAppClient *)client + didReceiveLocalVideoTrack:(RTC_OBJC_TYPE(RTCVideoTrack) *)localVideoTrack; + +- (void)appClient:(ARDAppClient *)client + didReceiveRemoteVideoTrack:(RTC_OBJC_TYPE(RTCVideoTrack) *)remoteVideoTrack; + +- (void)appClient:(ARDAppClient *)client didError:(NSError *)error; + +- (void)appClient:(ARDAppClient *)client didGetStats:(RTC_OBJC_TYPE(RTCStatisticsReport) *)stats; + +@optional +- (void)appClient:(ARDAppClient *)client + didCreateLocalFileCapturer:(RTC_OBJC_TYPE(RTCFileVideoCapturer) *)fileCapturer; + +- (void)appClient:(ARDAppClient *)client + didCreateLocalExternalSampleCapturer:(ARDExternalSampleCapturer *)externalSampleCapturer; + +@end + +// Handles connections to the AppRTC server for a given room. Methods on this +// class should only be called from the main queue. +@interface ARDAppClient : NSObject + +// If `shouldGetStats` is true, stats will be reported in 1s intervals through +// the delegate. +@property(nonatomic, assign) BOOL shouldGetStats; +@property(nonatomic, readonly) ARDAppClientState state; +@property(nonatomic, weak) id delegate; +@property(nonatomic, assign, getter=isBroadcast) BOOL broadcast; + +// Convenience constructor since all expected use cases will need a delegate +// in order to receive remote tracks. +- (instancetype)initWithDelegate:(id)delegate; + +// Establishes a connection with the AppRTC servers for the given room id. +// `settings` is an object containing settings such as video codec for the call. +// If `isLoopback` is true, the call will connect to itself. +- (void)connectToRoomWithId:(NSString *)roomId + settings:(ARDSettingsModel *)settings + isLoopback:(BOOL)isLoopback; + +// Disconnects from the AppRTC servers and any connected clients. +- (void)disconnect; + +@end -- cgit v1.2.3