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 |
(...skipping 29 matching lines...) Expand all Loading... |
40 | 40 |
41 - (NSString *)description { | 41 - (NSString *)description { |
42 NSString *readyState = [[self class] stringForState:self.readyState]; | 42 NSString *readyState = [[self class] stringForState:self.readyState]; |
43 return [NSString stringWithFormat:@"RTCMediaStreamTrack:\n%@\n%@\n%@\n%@", | 43 return [NSString stringWithFormat:@"RTCMediaStreamTrack:\n%@\n%@\n%@\n%@", |
44 self.kind, | 44 self.kind, |
45 self.trackId, | 45 self.trackId, |
46 self.isEnabled ? @"enabled" : @"disabled", | 46 self.isEnabled ? @"enabled" : @"disabled", |
47 readyState]; | 47 readyState]; |
48 } | 48 } |
49 | 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 |
50 #pragma mark - Private | 64 #pragma mark - Private |
51 | 65 |
52 - (rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>)nativeTrack { | 66 - (rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>)nativeTrack { |
53 return _nativeTrack; | 67 return _nativeTrack; |
54 } | 68 } |
55 | 69 |
56 - (instancetype)initWithNativeTrack: | 70 - (instancetype)initWithNativeTrack: |
57 (rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>)nativeTrack | 71 (rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>)nativeTrack |
58 type:(RTCMediaStreamTrackType)type { | 72 type:(RTCMediaStreamTrackType)type { |
59 NSParameterAssert(nativeTrack); | 73 NSParameterAssert(nativeTrack); |
60 if (self = [super init]) { | 74 if (self = [super init]) { |
61 _nativeTrack = nativeTrack; | 75 _nativeTrack = nativeTrack; |
62 _type = type; | 76 _type = type; |
63 } | 77 } |
64 return self; | 78 return self; |
65 } | 79 } |
66 | 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 |
67 + (webrtc::MediaStreamTrackInterface::TrackState)nativeTrackStateForState: | 104 + (webrtc::MediaStreamTrackInterface::TrackState)nativeTrackStateForState: |
68 (RTCMediaStreamTrackState)state { | 105 (RTCMediaStreamTrackState)state { |
69 switch (state) { | 106 switch (state) { |
70 case RTCMediaStreamTrackStateLive: | 107 case RTCMediaStreamTrackStateLive: |
71 return webrtc::MediaStreamTrackInterface::kLive; | 108 return webrtc::MediaStreamTrackInterface::kLive; |
72 case RTCMediaStreamTrackStateEnded: | 109 case RTCMediaStreamTrackStateEnded: |
73 return webrtc::MediaStreamTrackInterface::kEnded; | 110 return webrtc::MediaStreamTrackInterface::kEnded; |
74 } | 111 } |
75 } | 112 } |
76 | 113 |
(...skipping 10 matching lines...) Expand all Loading... |
87 + (NSString *)stringForState:(RTCMediaStreamTrackState)state { | 124 + (NSString *)stringForState:(RTCMediaStreamTrackState)state { |
88 switch (state) { | 125 switch (state) { |
89 case RTCMediaStreamTrackStateLive: | 126 case RTCMediaStreamTrackStateLive: |
90 return @"Live"; | 127 return @"Live"; |
91 case RTCMediaStreamTrackStateEnded: | 128 case RTCMediaStreamTrackStateEnded: |
92 return @"Ended"; | 129 return @"Ended"; |
93 } | 130 } |
94 } | 131 } |
95 | 132 |
96 @end | 133 @end |
OLD | NEW |