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

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

Issue 1903663002: Build dynamic iOS SDK. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Fix test gyp Created 4 years, 7 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/RTCMediaStreamTrack.h ('k') | webrtc/api/objc/RTCMediaStreamTrack+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 "RTCMediaStreamTrack.h"
12
13 #import "webrtc/api/objc/RTCMediaStreamTrack+Private.h"
14 #import "webrtc/base/objc/NSString+StdString.h"
15
16 @implementation RTCMediaStreamTrack {
17 rtc::scoped_refptr<webrtc::MediaStreamTrackInterface> _nativeTrack;
18 RTCMediaStreamTrackType _type;
19 }
20
21 - (NSString *)kind {
22 return [NSString stringForStdString:_nativeTrack->kind()];
23 }
24
25 - (NSString *)trackId {
26 return [NSString stringForStdString:_nativeTrack->id()];
27 }
28
29 - (BOOL)isEnabled {
30 return _nativeTrack->enabled();
31 }
32
33 - (void)setIsEnabled:(BOOL)isEnabled {
34 _nativeTrack->set_enabled(isEnabled);
35 }
36
37 - (RTCMediaStreamTrackState)readyState {
38 return [[self class] trackStateForNativeState:_nativeTrack->state()];
39 }
40
41 - (NSString *)description {
42 NSString *readyState = [[self class] stringForState:self.readyState];
43 return [NSString stringWithFormat:@"RTCMediaStreamTrack:\n%@\n%@\n%@\n%@",
44 self.kind,
45 self.trackId,
46 self.isEnabled ? @"enabled" : @"disabled",
47 readyState];
48 }
49
50 - (BOOL)isEqual:(id)object {
51 if (self == object) {
52 return YES;
53 }
54 if (![object isMemberOfClass:[self class]]) {
55 return NO;
56 }
57 return [self isEqualToTrack:(RTCMediaStreamTrack *)object];
58 }
59
60 - (NSUInteger)hash {
61 return (NSUInteger)_nativeTrack.get();
62 }
63
64 #pragma mark - Private
65
66 - (rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>)nativeTrack {
67 return _nativeTrack;
68 }
69
70 - (instancetype)initWithNativeTrack:
71 (rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>)nativeTrack
72 type:(RTCMediaStreamTrackType)type {
73 NSParameterAssert(nativeTrack);
74 if (self = [super init]) {
75 _nativeTrack = nativeTrack;
76 _type = type;
77 }
78 return self;
79 }
80
81 - (instancetype)initWithNativeTrack:
82 (rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>)nativeTrack {
83 NSParameterAssert(nativeTrack);
84 if (nativeTrack->kind() ==
85 std::string(webrtc::MediaStreamTrackInterface::kAudioKind)) {
86 return [self initWithNativeTrack:nativeTrack
87 type:RTCMediaStreamTrackTypeAudio];
88 }
89 if (nativeTrack->kind() ==
90 std::string(webrtc::MediaStreamTrackInterface::kVideoKind)) {
91 return [self initWithNativeTrack:nativeTrack
92 type:RTCMediaStreamTrackTypeVideo];
93 }
94 return nil;
95 }
96
97 - (BOOL)isEqualToTrack:(RTCMediaStreamTrack *)track {
98 if (!track) {
99 return NO;
100 }
101 return _nativeTrack == track.nativeTrack;
102 }
103
104 + (webrtc::MediaStreamTrackInterface::TrackState)nativeTrackStateForState:
105 (RTCMediaStreamTrackState)state {
106 switch (state) {
107 case RTCMediaStreamTrackStateLive:
108 return webrtc::MediaStreamTrackInterface::kLive;
109 case RTCMediaStreamTrackStateEnded:
110 return webrtc::MediaStreamTrackInterface::kEnded;
111 }
112 }
113
114 + (RTCMediaStreamTrackState)trackStateForNativeState:
115 (webrtc::MediaStreamTrackInterface::TrackState)nativeState {
116 switch (nativeState) {
117 case webrtc::MediaStreamTrackInterface::kLive:
118 return RTCMediaStreamTrackStateLive;
119 case webrtc::MediaStreamTrackInterface::kEnded:
120 return RTCMediaStreamTrackStateEnded;
121 }
122 }
123
124 + (NSString *)stringForState:(RTCMediaStreamTrackState)state {
125 switch (state) {
126 case RTCMediaStreamTrackStateLive:
127 return @"Live";
128 case RTCMediaStreamTrackStateEnded:
129 return @"Ended";
130 }
131 }
132
133 @end
OLDNEW
« no previous file with comments | « webrtc/api/objc/RTCMediaStreamTrack.h ('k') | webrtc/api/objc/RTCMediaStreamTrack+Private.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698