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