OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright 2015 The WebRTC project authors. All Rights Reserved. | 2 * Copyright 2015 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 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 | 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 | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
11 #import <Foundation/Foundation.h> | 11 #import <Foundation/Foundation.h> |
12 | 12 |
13 @class RTCConfiguration; | 13 @class RTCConfiguration; |
14 @class RTCDataChannel; | 14 @class RTCDataChannel; |
15 @class RTCDataChannelConfiguration; | 15 @class RTCDataChannelConfiguration; |
16 @class RTCIceCandidate; | 16 @class RTCIceCandidate; |
17 @class RTCMediaConstraints; | 17 @class RTCMediaConstraints; |
18 @class RTCMediaStream; | 18 @class RTCMediaStream; |
19 @class RTCMediaStreamTrack; | 19 @class RTCMediaStreamTrack; |
20 @class RTCPeerConnectionFactory; | 20 @class RTCPeerConnectionFactory; |
21 @class RTCSessionDescription; | 21 @class RTCSessionDescription; |
22 @class RTCStatsReport; | 22 @class RTCStatsReport; |
23 | 23 |
24 NS_ASSUME_NONNULL_BEGIN | 24 NS_ASSUME_NONNULL_BEGIN |
tkchin_webrtc
2016/02/24 22:39:18
for this file, can just add that todo bug at the t
| |
25 | 25 |
26 extern NSString * const kRTCPeerConnectionErrorDomain; | 26 extern NSString * _Nonnull const kRTCPeerConnectionErrorDomain; |
27 extern int const kRTCSessionDescriptionErrorCode; | 27 extern int const kRTCSessionDescriptionErrorCode; |
28 | 28 |
29 /** Represents the signaling state of the peer connection. */ | 29 /** Represents the signaling state of the peer connection. */ |
30 typedef NS_ENUM(NSInteger, RTCSignalingState) { | 30 typedef NS_ENUM(NSInteger, RTCSignalingState) { |
31 RTCSignalingStateStable, | 31 RTCSignalingStateStable, |
32 RTCSignalingStateHaveLocalOffer, | 32 RTCSignalingStateHaveLocalOffer, |
33 RTCSignalingStateHaveLocalPrAnswer, | 33 RTCSignalingStateHaveLocalPrAnswer, |
34 RTCSignalingStateHaveRemoteOffer, | 34 RTCSignalingStateHaveRemoteOffer, |
35 RTCSignalingStateHaveRemotePrAnswer, | 35 RTCSignalingStateHaveRemotePrAnswer, |
36 RTCSignalingStateClosed, | 36 RTCSignalingStateClosed, |
(...skipping 22 matching lines...) Expand all Loading... | |
59 typedef NS_ENUM(NSInteger, RTCStatsOutputLevel) { | 59 typedef NS_ENUM(NSInteger, RTCStatsOutputLevel) { |
60 RTCStatsOutputLevelStandard, | 60 RTCStatsOutputLevelStandard, |
61 RTCStatsOutputLevelDebug, | 61 RTCStatsOutputLevelDebug, |
62 }; | 62 }; |
63 | 63 |
64 @class RTCPeerConnection; | 64 @class RTCPeerConnection; |
65 | 65 |
66 @protocol RTCPeerConnectionDelegate <NSObject> | 66 @protocol RTCPeerConnectionDelegate <NSObject> |
67 | 67 |
68 /** Called when the SignalingState changed. */ | 68 /** Called when the SignalingState changed. */ |
69 - (void)peerConnection:(RTCPeerConnection *)peerConnection | 69 - (void)peerConnection:(nonnull RTCPeerConnection *)peerConnection |
70 didChangeSignalingState:(RTCSignalingState)stateChanged; | 70 didChangeSignalingState:(RTCSignalingState)stateChanged; |
71 | 71 |
72 /** Called when media is received on a new stream from remote peer. */ | 72 /** Called when media is received on a new stream from remote peer. */ |
73 - (void)peerConnection:(RTCPeerConnection *)peerConnection | 73 - (void)peerConnection:(nonnull RTCPeerConnection *)peerConnection |
74 didAddStream:(RTCMediaStream *)stream; | 74 didAddStream:(nonnull RTCMediaStream *)stream; |
75 | 75 |
76 /** Called when a remote peer closes a stream. */ | 76 /** Called when a remote peer closes a stream. */ |
77 - (void)peerConnection:(RTCPeerConnection *)peerConnection | 77 - (void)peerConnection:(nonnull RTCPeerConnection *)peerConnection |
78 didRemoveStream:(RTCMediaStream *)stream; | 78 didRemoveStream:(nonnull RTCMediaStream *)stream; |
79 | 79 |
80 /** Called when negotiation is needed, for example ICE has restarted. */ | 80 /** Called when negotiation is needed, for example ICE has restarted. */ |
81 - (void)peerConnectionShouldNegotiate:(RTCPeerConnection *)peerConnection; | 81 - (void)peerConnectionShouldNegotiate:(nonnull RTCPeerConnection *)peerConnectio n; |
82 | 82 |
83 /** Called any time the IceConnectionState changes. */ | 83 /** Called any time the IceConnectionState changes. */ |
84 - (void)peerConnection:(RTCPeerConnection *)peerConnection | 84 - (void)peerConnection:(nonnull RTCPeerConnection *)peerConnection |
85 didChangeIceConnectionState:(RTCIceConnectionState)newState; | 85 didChangeIceConnectionState:(RTCIceConnectionState)newState; |
86 | 86 |
87 /** Called any time the IceGatheringState changes. */ | 87 /** Called any time the IceGatheringState changes. */ |
88 - (void)peerConnection:(RTCPeerConnection *)peerConnection | 88 - (void)peerConnection:(nonnull RTCPeerConnection *)peerConnection |
89 didChangeIceGatheringState:(RTCIceGatheringState)newState; | 89 didChangeIceGatheringState:(RTCIceGatheringState)newState; |
90 | 90 |
91 /** New ice candidate has been found. */ | 91 /** New ice candidate has been found. */ |
92 - (void)peerConnection:(RTCPeerConnection *)peerConnection | 92 - (void)peerConnection:(nonnull RTCPeerConnection *)peerConnection |
93 didGenerateIceCandidate:(RTCIceCandidate *)candidate; | 93 didGenerateIceCandidate:(nonnull RTCIceCandidate *)candidate; |
94 | 94 |
95 /** New data channel has been opened. */ | 95 /** New data channel has been opened. */ |
96 - (void)peerConnection:(RTCPeerConnection *)peerConnection | 96 - (void)peerConnection:(nonnull RTCPeerConnection *)peerConnection |
97 didOpenDataChannel:(RTCDataChannel *)dataChannel; | 97 didOpenDataChannel:(nonnull RTCDataChannel *)dataChannel; |
98 | 98 |
99 @end | 99 @end |
100 | 100 |
101 | 101 |
102 @interface RTCPeerConnection : NSObject | 102 @interface RTCPeerConnection : NSObject |
103 | 103 |
104 /** The object that will be notifed about events such as state changes and | 104 /** The object that will be notifed about events such as state changes and |
105 * streams being added or removed. | 105 * streams being added or removed. |
106 */ | 106 */ |
107 @property(nonatomic, weak) id<RTCPeerConnectionDelegate> delegate; | 107 @property(nonatomic, weak, nullable) id<RTCPeerConnectionDelegate> delegate; |
108 @property(nonatomic, readonly) NSArray *localStreams; | 108 @property(nonatomic, readonly, nonnull) NSArray *localStreams; |
109 @property(nonatomic, readonly, nullable) | 109 @property(nonatomic, readonly, nullable) |
110 RTCSessionDescription *localDescription; | 110 RTCSessionDescription *localDescription; |
111 @property(nonatomic, readonly, nullable) | 111 @property(nonatomic, readonly, nullable) |
112 RTCSessionDescription *remoteDescription; | 112 RTCSessionDescription *remoteDescription; |
113 @property(nonatomic, readonly) RTCSignalingState signalingState; | 113 @property(nonatomic, readonly) RTCSignalingState signalingState; |
114 @property(nonatomic, readonly) RTCIceConnectionState iceConnectionState; | 114 @property(nonatomic, readonly) RTCIceConnectionState iceConnectionState; |
115 @property(nonatomic, readonly) RTCIceGatheringState iceGatheringState; | 115 @property(nonatomic, readonly) RTCIceGatheringState iceGatheringState; |
116 | 116 |
117 - (instancetype)init NS_UNAVAILABLE; | 117 - (nonnull instancetype)init NS_UNAVAILABLE; |
118 | 118 |
119 /** Initialize an RTCPeerConnection with a configuration, constraints, and | 119 /** Initialize an RTCPeerConnection with a configuration, constraints, and |
120 * delegate. | 120 * delegate. |
121 */ | 121 */ |
122 - (instancetype)initWithFactory:(RTCPeerConnectionFactory *)factory | 122 - (nonnull instancetype)initWithFactory:(nonnull RTCPeerConnectionFactory *)fact ory |
123 configuration:(RTCConfiguration *)configuration | 123 configuration:(nonnull RTCConfiguration *)configuratio n |
124 constraints:(RTCMediaConstraints *)constraints | 124 constraints:(nonnull RTCMediaConstraints *)constrain ts |
125 delegate:(id<RTCPeerConnectionDelegate>)delegate | 125 delegate:(nullable id<RTCPeerConnectionDelegate>) delegate |
126 NS_DESIGNATED_INITIALIZER; | 126 NS_DESIGNATED_INITIALIZER; |
127 | 127 |
128 /** Terminate all media and close the transport. */ | 128 /** Terminate all media and close the transport. */ |
129 - (void)close; | 129 - (void)close; |
130 | 130 |
131 /** Provide a remote candidate to the ICE Agent. */ | 131 /** Provide a remote candidate to the ICE Agent. */ |
132 - (void)addIceCandidate:(RTCIceCandidate *)candidate; | 132 - (void)addIceCandidate:(nonnull RTCIceCandidate *)candidate; |
133 | 133 |
134 /** Add a new media stream to be sent on this peer connection. */ | 134 /** Add a new media stream to be sent on this peer connection. */ |
135 - (void)addStream:(RTCMediaStream *)stream; | 135 - (void)addStream:(nonnull RTCMediaStream *)stream; |
136 | 136 |
137 /** Remove the given media stream from this peer connection. */ | 137 /** Remove the given media stream from this peer connection. */ |
138 - (void)removeStream:(RTCMediaStream *)stream; | 138 - (void)removeStream:(nonnull RTCMediaStream *)stream; |
139 | 139 |
140 /** Generate an SDP offer. */ | 140 /** Generate an SDP offer. */ |
141 - (void)offerForConstraints:(RTCMediaConstraints *)constraints | 141 - (void)offerForConstraints:(nonnull RTCMediaConstraints *)constraints |
142 completionHandler:(void (^)(RTCSessionDescription *sdp, | 142 completionHandler:(nullable void (^)(RTCSessionDescription * _Nullable sdp, |
143 NSError *error))completionHandler; | 143 NSError * _Nullable error))completionHandl er; |
144 | 144 |
145 /** Generate an SDP answer. */ | 145 /** Generate an SDP answer. */ |
146 - (void)answerForConstraints:(RTCMediaConstraints *)constraints | 146 - (void)answerForConstraints:(nonnull RTCMediaConstraints *)constraints |
147 completionHandler:(void (^)(RTCSessionDescription *sdp, | 147 completionHandler:(nullable void (^)(RTCSessionDescription * _Nullabl e sdp, |
148 NSError *error))completionHandler; | 148 NSError * _Nullable error))completionHand ler; |
149 | 149 |
150 /** Apply the supplied RTCSessionDescription as the local description. */ | 150 /** Apply the supplied RTCSessionDescription as the local description. */ |
151 - (void)setLocalDescription:(RTCSessionDescription *)sdp | 151 - (void)setLocalDescription:(nonnull RTCSessionDescription *)sdp |
152 completionHandler:(void (^)(NSError *error))completionHandler; | 152 completionHandler:(nullable void (^)(NSError * _Nullable error))comple tionHandler; |
153 | 153 |
154 /** Apply the supplied RTCSessionDescription as the remote description. */ | 154 /** Apply the supplied RTCSessionDescription as the remote description. */ |
155 - (void)setRemoteDescription:(RTCSessionDescription *)sdp | 155 - (void)setRemoteDescription:(nonnull RTCSessionDescription *)sdp |
156 completionHandler:(void (^)(NSError *error))completionHandler; | 156 completionHandler:(nullable void (^)(NSError * _Nullable error))compl etionHandler; |
157 | 157 |
158 @end | 158 @end |
159 | 159 |
160 @interface RTCPeerConnection (DataChannel) | 160 @interface RTCPeerConnection (DataChannel) |
161 | 161 |
162 /** Create a new data channel with the given label and configuration. */ | 162 /** Create a new data channel with the given label and configuration. */ |
163 - (RTCDataChannel *)dataChannelForLabel:(NSString *)label | 163 - (nonnull RTCDataChannel *)dataChannelForLabel:(nonnull NSString *)label |
164 configuration:(RTCDataChannelConfiguration *)configuration; | 164 configuration:(nonnull RTCDataChannelConfiguration *)configuration; |
165 | 165 |
166 @end | 166 @end |
167 | 167 |
168 @interface RTCPeerConnection (Stats) | 168 @interface RTCPeerConnection (Stats) |
169 | 169 |
170 /** Gather stats for the given RTCMediaStreamTrack. If |mediaStreamTrack| is nil | 170 /** Gather stats for the given RTCMediaStreamTrack. If |mediaStreamTrack| is nil |
171 * statistics are gathered for all tracks. | 171 * statistics are gathered for all tracks. |
172 */ | 172 */ |
173 - (void)statsForTrack: | 173 - (void)statsForTrack: |
174 (nullable RTCMediaStreamTrack *)mediaStreamTrack | 174 (nonnull RTCMediaStreamTrack *)mediaStreamTrack |
175 statsOutputLevel:(RTCStatsOutputLevel)statsOutputLevel | 175 statsOutputLevel:(RTCStatsOutputLevel)statsOutputLevel |
176 completionHandler: | 176 completionHandler: |
177 (void (^)(NSArray<RTCStatsReport *> *stats))completionHandler; | 177 (nullable void (^)(NSArray/*<RTCStatsReport *>*/ * _Nonnull stats))completio nHandler; |
178 | 178 |
179 @end | 179 @end |
180 | 180 |
181 NS_ASSUME_NONNULL_END | 181 NS_ASSUME_NONNULL_END |
OLD | NEW |