OLD | NEW |
---|---|
(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 @interface RTCMediaStreamTrack () { | |
17 rtc::scoped_refptr<webrtc::MediaStreamTrackInterface> _track; | |
18 } | |
19 @end | |
20 | |
21 @implementation RTCMediaStreamTrack | |
22 | |
23 - (NSString *)kind { | |
24 return [NSString stringForStdString:_track->kind()]; | |
25 } | |
26 | |
27 - (NSString *)trackId { | |
28 return [NSString stringForStdString:_track->id()]; | |
29 } | |
30 | |
31 - (BOOL)isEnabled { | |
32 return _track->enabled(); | |
33 } | |
34 | |
35 - (void)setIsEnabled:(BOOL)enabled { | |
tkchin_webrtc
2016/01/06 19:30:52
isEnabled
| |
36 _track->set_enabled(enabled); | |
37 } | |
38 | |
39 - (RTCMediaStreamTrackState)readyState { | |
40 return [[self class] trackStateForNativeState:_track->state()]; | |
41 } | |
42 | |
43 - (NSString *)description { | |
44 return [NSString stringWithFormat:@"RTCMediaStreamTrack:\n%@\n%@\n%@\n%@", | |
45 self.kind, | |
46 self.trackId, | |
47 self.isEnabled ? @"enabled" : @"disabled", | |
48 [[self class] stringForState: | |
49 self.readyState]]; | |
tkchin_webrtc
2016/01/06 19:30:52
move into a local first to avoid the weird indenta
| |
50 } | |
51 | |
52 #pragma mark - Private | |
53 | |
54 - (rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>)nativeTrack { | |
55 return _track; | |
56 } | |
57 | |
58 - (instancetype)initWithNativeTrack: | |
59 (rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>)track { | |
60 NSParameterAssert(track); | |
61 if (self = [super init]) { | |
62 _track = track; | |
63 } | |
64 return self; | |
65 } | |
66 | |
67 + (webrtc::MediaStreamTrackInterface::TrackState)nativeTrackStateForState: | |
68 (RTCMediaStreamTrackState)state { | |
69 switch (state) { | |
70 case RTCMediaStreamTrackStateInitializing: | |
71 return webrtc::MediaStreamTrackInterface::kInitializing; | |
72 case RTCMediaStreamTrackStateLive: | |
73 return webrtc::MediaStreamTrackInterface::kLive; | |
74 case RTCMediaStreamTrackStateEnded: | |
75 return webrtc::MediaStreamTrackInterface::kEnded; | |
76 case RTCMediaStreamTrackStateFailed: | |
77 return webrtc::MediaStreamTrackInterface::kFailed; | |
78 } | |
79 } | |
80 | |
81 + (RTCMediaStreamTrackState)trackStateForNativeState: | |
82 (webrtc::MediaStreamTrackInterface::TrackState)nativeState { | |
83 switch (nativeState) { | |
84 case webrtc::MediaStreamTrackInterface::kInitializing: | |
85 return RTCMediaStreamTrackStateInitializing; | |
86 case webrtc::MediaStreamTrackInterface::kLive: | |
87 return RTCMediaStreamTrackStateLive; | |
88 case webrtc::MediaStreamTrackInterface::kEnded: | |
89 return RTCMediaStreamTrackStateEnded; | |
90 case webrtc::MediaStreamTrackInterface::kFailed: | |
91 return RTCMediaStreamTrackStateFailed; | |
92 } | |
93 } | |
94 | |
95 + (NSString *)stringForState: | |
tkchin_webrtc
2016/01/06 19:30:52
I think it fits on one line
| |
96 (RTCMediaStreamTrackState)state { | |
97 switch (state) { | |
98 case RTCMediaStreamTrackStateInitializing: | |
99 return @"Initializing"; | |
100 case RTCMediaStreamTrackStateLive: | |
101 return @"Live"; | |
102 case RTCMediaStreamTrackStateEnded: | |
103 return @"Ended"; | |
104 case RTCMediaStreamTrackStateFailed: | |
105 return @"Failed"; | |
106 } | |
107 } | |
108 | |
109 @end | |
OLD | NEW |