Home | History | Annotate | Download | only in AppRTCDemo
      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