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

Side by Side Diff: webrtc/examples/objc/AppRTCDemo/RTCIceCandidate+JSON.m

Issue 2343403002: Rename AppRTCDemo on Android and iOS to AppRTCMobile (Closed)
Patch Set: Rebase Created 4 years, 3 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
OLDNEW
(Empty)
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 "RTCIceCandidate+JSON.h"
12
13 #import "WebRTC/RTCLogging.h"
14
15 static NSString const *kRTCICECandidateTypeKey = @"type";
16 static NSString const *kRTCICECandidateTypeValue = @"candidate";
17 static NSString const *kRTCICECandidateMidKey = @"id";
18 static NSString const *kRTCICECandidateMLineIndexKey = @"label";
19 static NSString const *kRTCICECandidateSdpKey = @"candidate";
20 static NSString const *kRTCICECandidatesTypeKey = @"candidates";
21
22
23 @implementation RTCIceCandidate (JSON)
24
25 + (RTCIceCandidate *)candidateFromJSONDictionary:(NSDictionary *)dictionary {
26 NSString *mid = dictionary[kRTCICECandidateMidKey];
27 NSString *sdp = dictionary[kRTCICECandidateSdpKey];
28 NSNumber *num = dictionary[kRTCICECandidateMLineIndexKey];
29 NSInteger mLineIndex = [num integerValue];
30 return [[RTCIceCandidate alloc] initWithSdp:sdp
31 sdpMLineIndex:mLineIndex
32 sdpMid:mid];
33 }
34
35 + (NSData *)JSONDataForIceCandidates:(NSArray<RTCIceCandidate *> *)candidates
36 withType:(NSString *)typeValue {
37 NSMutableArray *jsonCandidates =
38 [NSMutableArray arrayWithCapacity:candidates.count];
39 for (RTCIceCandidate *candidate in candidates) {
40 NSDictionary *jsonCandidate = [candidate JSONDictionary];
41 [jsonCandidates addObject:jsonCandidate];
42 }
43 NSDictionary *json = @{
44 kRTCICECandidateTypeKey : typeValue,
45 kRTCICECandidatesTypeKey : jsonCandidates
46 };
47 NSError *error = nil;
48 NSData *data =
49 [NSJSONSerialization dataWithJSONObject:json
50 options:NSJSONWritingPrettyPrinted
51 error:&error];
52 if (error) {
53 RTCLogError(@"Error serializing JSON: %@", error);
54 return nil;
55 }
56 return data;
57 }
58
59 + (NSArray<RTCIceCandidate *> *)candidatesFromJSONDictionary:
60 (NSDictionary *)dictionary {
61 NSArray *jsonCandidates = dictionary[kRTCICECandidatesTypeKey];
62 NSMutableArray<RTCIceCandidate *> *candidates =
63 [NSMutableArray arrayWithCapacity:jsonCandidates.count];
64 for (NSDictionary *jsonCandidate in jsonCandidates) {
65 RTCIceCandidate *candidate =
66 [RTCIceCandidate candidateFromJSONDictionary:jsonCandidate];
67 [candidates addObject:candidate];
68 }
69 return candidates;
70 }
71
72 - (NSData *)JSONData {
73 NSDictionary *json = @{
74 kRTCICECandidateTypeKey : kRTCICECandidateTypeValue,
75 kRTCICECandidateMLineIndexKey : @(self.sdpMLineIndex),
76 kRTCICECandidateMidKey : self.sdpMid,
77 kRTCICECandidateSdpKey : self.sdp
78 };
79 NSError *error = nil;
80 NSData *data =
81 [NSJSONSerialization dataWithJSONObject:json
82 options:NSJSONWritingPrettyPrinted
83 error:&error];
84 if (error) {
85 RTCLogError(@"Error serializing JSON: %@", error);
86 return nil;
87 }
88 return data;
89 }
90
91 - (NSDictionary *)JSONDictionary{
92 NSDictionary *json = @{
93 kRTCICECandidateMLineIndexKey : @(self.sdpMLineIndex),
94 kRTCICECandidateMidKey : self.sdpMid,
95 kRTCICECandidateSdpKey : self.sdp
96 };
97 return json;
98 }
99
100 @end
OLDNEW
« no previous file with comments | « webrtc/examples/objc/AppRTCDemo/RTCIceCandidate+JSON.h ('k') | webrtc/examples/objc/AppRTCDemo/RTCIceServer+JSON.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698