1 /* 2 * Copyright 2014 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 "ARDAppClient.h" 12 13 #import "sdk/objc/api/peerconnection/RTCPeerConnection.h" 14 15 #import "ARDRoomServerClient.h" 16 #import "ARDSignalingChannel.h" 17 #import "ARDTURNClient.h" 18 19 @class RTC_OBJC_TYPE(RTCPeerConnectionFactory); 20 21 @interface ARDAppClient () <ARDSignalingChannelDelegate, RTC_OBJC_TYPE (RTCPeerConnectionDelegate)> 22 23 // All properties should only be mutated from the main queue. 24 @property(nonatomic, strong) id<ARDRoomServerClient> roomServerClient; 25 @property(nonatomic, strong) id<ARDSignalingChannel> channel; 26 @property(nonatomic, strong) id<ARDSignalingChannel> loopbackChannel; 27 @property(nonatomic, strong) id<ARDTURNClient> turnClient; 28 29 @property(nonatomic, strong) RTC_OBJC_TYPE(RTCPeerConnection) * peerConnection; 30 @property(nonatomic, strong) RTC_OBJC_TYPE(RTCPeerConnectionFactory) * factory; 31 @property(nonatomic, strong) NSMutableArray *messageQueue; 32 33 @property(nonatomic, assign) BOOL isTurnComplete; 34 @property(nonatomic, assign) BOOL hasReceivedSdp; 35 @property(nonatomic, readonly) BOOL hasJoinedRoomServerRoom; 36 37 @property(nonatomic, strong) NSString *roomId; 38 @property(nonatomic, strong) NSString *clientId; 39 @property(nonatomic, assign) BOOL isInitiator; 40 @property(nonatomic, strong) NSMutableArray *iceServers; 41 @property(nonatomic, strong) NSURL *webSocketURL; 42 @property(nonatomic, strong) NSURL *webSocketRestURL; 43 @property(nonatomic, readonly) BOOL isLoopback; 44 45 @property(nonatomic, strong) RTC_OBJC_TYPE(RTCMediaConstraints) * defaultPeerConnectionConstraints; 46 47 - (instancetype)initWithRoomServerClient:(id<ARDRoomServerClient>)rsClient 48 signalingChannel:(id<ARDSignalingChannel>)channel 49 turnClient:(id<ARDTURNClient>)turnClient 50 delegate:(id<ARDAppClientDelegate>)delegate; 51 52 @end 53