Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(228)

Side by Side Diff: webrtc/api/objc/RTCConfiguration.mm

Issue 1616303002: Update API for Objective-C RTCConfiguration. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Changes based on feedback Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/api/objc/RTCConfiguration.h ('k') | webrtc/api/objc/RTCConfiguration+Private.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 * Copyright 2015 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 "RTCConfiguration.h"
12
13 #import "webrtc/api/objc/RTCConfiguration+Private.h"
14 #import "webrtc/api/objc/RTCIceServer+Private.h"
15
16 @implementation RTCConfiguration
17
18 @synthesize iceServers = _iceServers;
19 @synthesize iceTransportPolicy = _iceTransportPolicy;
20 @synthesize bundlePolicy = _bundlePolicy;
21 @synthesize rtcpMuxPolicy = _rtcpMuxPolicy;
22 @synthesize tcpCandidatePolicy = _tcpCandidatePolicy;
23 @synthesize audioJitterBufferMaxPackets = _audioJitterBufferMaxPackets;
24 @synthesize iceConnectionReceivingTimeout = _iceConnectionReceivingTimeout;
25 @synthesize iceBackupCandidatePairPingInterval =
26 _iceBackupCandidatePairPingInterval;
27
28 - (instancetype)init {
29 if (self = [super init]) {
30 _iceServers = [NSMutableArray array];
31 // Copy defaults.
32 webrtc::PeerConnectionInterface::RTCConfiguration config;
33 _iceTransportPolicy =
34 [[self class] transportPolicyForTransportsType:config.type];
35 _bundlePolicy =
36 [[self class] bundlePolicyForNativePolicy:config.bundle_policy];
37 _rtcpMuxPolicy =
38 [[self class] rtcpMuxPolicyForNativePolicy:config.rtcp_mux_policy];
39 _tcpCandidatePolicy = [[self class] tcpCandidatePolicyForNativePolicy:
40 config.tcp_candidate_policy];
41 _audioJitterBufferMaxPackets = config.audio_jitter_buffer_max_packets;
42 _iceConnectionReceivingTimeout = config.ice_connection_receiving_timeout;
43 _iceBackupCandidatePairPingInterval =
44 config.ice_backup_candidate_pair_ping_interval;
45 }
46 return self;
47 }
48
49 - (instancetype)initWithIceServers:(NSArray<RTCIceServer *> *)iceServers
50 iceTransportPolicy:(RTCIceTransportPolicy)iceTransportPolicy
51 bundlePolicy:(RTCBundlePolicy)bundlePolicy
52 rtcpMuxPolicy:(RTCRtcpMuxPolicy)rtcpMuxPolicy
53 tcpCandidatePolicy:(RTCTcpCandidatePolicy)tcpCandidatePolicy
54 audioJitterBufferMaxPackets:(int)audioJitterBufferMaxPackets
55 iceConnectionReceivingTimeout:(int)iceConnectionReceivingTimeout
56 iceBackupCandidatePairPingInterval:(int)iceBackupCandidatePairPingInterval {
57 if (self = [self init]) {
58 if (iceServers) {
59 _iceServers = [iceServers copy];
60 }
61 _iceTransportPolicy = iceTransportPolicy;
62 _bundlePolicy = bundlePolicy;
63 _rtcpMuxPolicy = rtcpMuxPolicy;
64 _tcpCandidatePolicy = tcpCandidatePolicy;
65 _audioJitterBufferMaxPackets = audioJitterBufferMaxPackets;
66 _iceConnectionReceivingTimeout = iceConnectionReceivingTimeout;
67 _iceBackupCandidatePairPingInterval = iceBackupCandidatePairPingInterval;
68 }
69 return self;
70 }
71
72 - (NSString *)description {
73 return [NSString stringWithFormat:
74 @"RTCConfiguration: {\n%@\n%@\n%@\n%@\n%@\n%d\n%d\n%d\n}\n",
75 _iceServers,
76 [[self class] stringForTransportPolicy:_iceTransportPolicy],
77 [[self class] stringForBundlePolicy:_bundlePolicy],
78 [[self class] stringForRtcpMuxPolicy:_rtcpMuxPolicy],
79 [[self class] stringForTcpCandidatePolicy:_tcpCandidatePolicy],
80 _audioJitterBufferMaxPackets,
81 _iceConnectionReceivingTimeout,
82 _iceBackupCandidatePairPingInterval];
83 }
84
85 #pragma mark - Private
86
87 - (webrtc::PeerConnectionInterface::RTCConfiguration)nativeConfiguration {
88 webrtc::PeerConnectionInterface::RTCConfiguration nativeConfig;
89
90 for (RTCIceServer *iceServer in _iceServers) {
91 nativeConfig.servers.push_back(iceServer.iceServer);
92 }
93 nativeConfig.type =
94 [[self class] nativeTransportsTypeForTransportPolicy:_iceTransportPolicy];
95 nativeConfig.bundle_policy =
96 [[self class] nativeBundlePolicyForPolicy:_bundlePolicy];
97 nativeConfig.rtcp_mux_policy =
98 [[self class] nativeRtcpMuxPolicyForPolicy:_rtcpMuxPolicy];
99 nativeConfig.tcp_candidate_policy =
100 [[self class] nativeTcpCandidatePolicyForPolicy:_tcpCandidatePolicy];
101 nativeConfig.audio_jitter_buffer_max_packets = _audioJitterBufferMaxPackets;
102 nativeConfig.ice_connection_receiving_timeout =
103 _iceConnectionReceivingTimeout;
104 nativeConfig.ice_backup_candidate_pair_ping_interval =
105 _iceBackupCandidatePairPingInterval;
106
107 return nativeConfig;
108 }
109
110 - (instancetype)initWithNativeConfiguration:
111 (webrtc::PeerConnectionInterface::RTCConfiguration)nativeConfig {
112 NSMutableArray *iceServers =
113 [NSMutableArray arrayWithCapacity:nativeConfig.servers.size()];
114 for (auto const &server : nativeConfig.servers) {
115 RTCIceServer *iceServer =
116 [[RTCIceServer alloc] initWithNativeServer:server];
117 [iceServers addObject:iceServer];
118 }
119
120 if (self = [self init]) {
121 if (iceServers) {
122 _iceServers = [iceServers copy];
123 }
124 _iceTransportPolicy =
125 [[self class] transportPolicyForTransportsType:nativeConfig.type];
126 _bundlePolicy =
127 [[self class] bundlePolicyForNativePolicy:nativeConfig.bundle_policy];
128 _rtcpMuxPolicy = [[self class] rtcpMuxPolicyForNativePolicy:
129 nativeConfig.rtcp_mux_policy];
130 _tcpCandidatePolicy = [[self class] tcpCandidatePolicyForNativePolicy:
131 nativeConfig.tcp_candidate_policy];
132 _audioJitterBufferMaxPackets = nativeConfig.audio_jitter_buffer_max_packets;
133 _iceConnectionReceivingTimeout =
134 nativeConfig.ice_connection_receiving_timeout;
135 _iceBackupCandidatePairPingInterval =
136 nativeConfig.ice_backup_candidate_pair_ping_interval;
137 }
138
139 return self;
140 }
141
142 + (webrtc::PeerConnectionInterface::IceTransportsType)
143 nativeTransportsTypeForTransportPolicy:(RTCIceTransportPolicy)policy {
144 switch (policy) {
145 case RTCIceTransportPolicyNone:
146 return webrtc::PeerConnectionInterface::kNone;
147 case RTCIceTransportPolicyRelay:
148 return webrtc::PeerConnectionInterface::kRelay;
149 case RTCIceTransportPolicyNoHost:
150 return webrtc::PeerConnectionInterface::kNoHost;
151 case RTCIceTransportPolicyAll:
152 return webrtc::PeerConnectionInterface::kAll;
153 }
154 }
155
156 + (RTCIceTransportPolicy)transportPolicyForTransportsType:
157 (webrtc::PeerConnectionInterface::IceTransportsType)nativeType {
158 switch (nativeType) {
159 case webrtc::PeerConnectionInterface::kNone:
160 return RTCIceTransportPolicyNone;
161 case webrtc::PeerConnectionInterface::kRelay:
162 return RTCIceTransportPolicyRelay;
163 case webrtc::PeerConnectionInterface::kNoHost:
164 return RTCIceTransportPolicyNoHost;
165 case webrtc::PeerConnectionInterface::kAll:
166 return RTCIceTransportPolicyAll;
167 }
168 }
169
170 + (NSString *)stringForTransportPolicy:(RTCIceTransportPolicy)policy {
171 switch (policy) {
172 case RTCIceTransportPolicyNone:
173 return @"NONE";
174 case RTCIceTransportPolicyRelay:
175 return @"RELAY";
176 case RTCIceTransportPolicyNoHost:
177 return @"NO_HOST";
178 case RTCIceTransportPolicyAll:
179 return @"ALL";
180 }
181 }
182
183 + (webrtc::PeerConnectionInterface::BundlePolicy)nativeBundlePolicyForPolicy:
184 (RTCBundlePolicy)policy {
185 switch (policy) {
186 case RTCBundlePolicyBalanced:
187 return webrtc::PeerConnectionInterface::kBundlePolicyBalanced;
188 case RTCBundlePolicyMaxCompat:
189 return webrtc::PeerConnectionInterface::kBundlePolicyMaxCompat;
190 case RTCBundlePolicyMaxBundle:
191 return webrtc::PeerConnectionInterface::kBundlePolicyMaxBundle;
192 }
193 }
194
195 + (RTCBundlePolicy)bundlePolicyForNativePolicy:
196 (webrtc::PeerConnectionInterface::BundlePolicy)nativePolicy {
197 switch (nativePolicy) {
198 case webrtc::PeerConnectionInterface::kBundlePolicyBalanced:
199 return RTCBundlePolicyBalanced;
200 case webrtc::PeerConnectionInterface::kBundlePolicyMaxCompat:
201 return RTCBundlePolicyMaxCompat;
202 case webrtc::PeerConnectionInterface::kBundlePolicyMaxBundle:
203 return RTCBundlePolicyMaxBundle;
204 }
205 }
206
207 + (NSString *)stringForBundlePolicy:(RTCBundlePolicy)policy {
208 switch (policy) {
209 case RTCBundlePolicyBalanced:
210 return @"BALANCED";
211 case RTCBundlePolicyMaxCompat:
212 return @"MAX_COMPAT";
213 case RTCBundlePolicyMaxBundle:
214 return @"MAX_BUNDLE";
215 }
216 }
217
218 + (webrtc::PeerConnectionInterface::RtcpMuxPolicy)nativeRtcpMuxPolicyForPolicy:
219 (RTCRtcpMuxPolicy)policy {
220 switch (policy) {
221 case RTCRtcpMuxPolicyNegotiate:
222 return webrtc::PeerConnectionInterface::kRtcpMuxPolicyNegotiate;
223 case RTCRtcpMuxPolicyRequire:
224 return webrtc::PeerConnectionInterface::kRtcpMuxPolicyRequire;
225 }
226 }
227
228 + (RTCRtcpMuxPolicy)rtcpMuxPolicyForNativePolicy:
229 (webrtc::PeerConnectionInterface::RtcpMuxPolicy)nativePolicy {
230 switch (nativePolicy) {
231 case webrtc::PeerConnectionInterface::kRtcpMuxPolicyNegotiate:
232 return RTCRtcpMuxPolicyNegotiate;
233 case webrtc::PeerConnectionInterface::kRtcpMuxPolicyRequire:
234 return RTCRtcpMuxPolicyRequire;
235 }
236 }
237
238 + (NSString *)stringForRtcpMuxPolicy:(RTCRtcpMuxPolicy)policy {
239 switch (policy) {
240 case RTCRtcpMuxPolicyNegotiate:
241 return @"NEGOTIATE";
242 case RTCRtcpMuxPolicyRequire:
243 return @"REQUIRE";
244 }
245 }
246
247 + (webrtc::PeerConnectionInterface::TcpCandidatePolicy)
248 nativeTcpCandidatePolicyForPolicy:(RTCTcpCandidatePolicy)policy {
249 switch (policy) {
250 case RTCTcpCandidatePolicyEnabled:
251 return webrtc::PeerConnectionInterface::kTcpCandidatePolicyEnabled;
252 case RTCTcpCandidatePolicyDisabled:
253 return webrtc::PeerConnectionInterface::kTcpCandidatePolicyDisabled;
254 }
255 }
256
257 + (RTCTcpCandidatePolicy)tcpCandidatePolicyForNativePolicy:
258 (webrtc::PeerConnectionInterface::TcpCandidatePolicy)nativePolicy {
259 switch (nativePolicy) {
260 case webrtc::PeerConnectionInterface::kTcpCandidatePolicyEnabled:
261 return RTCTcpCandidatePolicyEnabled;
262 case webrtc::PeerConnectionInterface::kTcpCandidatePolicyDisabled:
263 return RTCTcpCandidatePolicyDisabled;
264 }
265 }
266
267 + (NSString *)stringForTcpCandidatePolicy:(RTCTcpCandidatePolicy)policy {
268 switch (policy) {
269 case RTCTcpCandidatePolicyEnabled:
270 return @"TCP_ENABLED";
271 case RTCTcpCandidatePolicyDisabled:
272 return @"TCP_DISABLED";
273 }
274 }
275
276 @end
OLDNEW
« no previous file with comments | « webrtc/api/objc/RTCConfiguration.h ('k') | webrtc/api/objc/RTCConfiguration+Private.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698