Chromium Code Reviews| Index: webrtc/api/objc/RTCMediaStreamTrack.mm |
| diff --git a/webrtc/api/objc/RTCMediaStreamTrack.mm b/webrtc/api/objc/RTCMediaStreamTrack.mm |
| index 25979b38d9a32bd968d531bdc66a5553ec77f4d7..7105fbb565d045f1babf587c3a2b6ca393c28b79 100644 |
| --- a/webrtc/api/objc/RTCMediaStreamTrack.mm |
| +++ b/webrtc/api/objc/RTCMediaStreamTrack.mm |
| @@ -47,6 +47,20 @@ |
| readyState]; |
| } |
| +- (BOOL)isEqual:(id)object { |
| + if (self == object) { |
| + return YES; |
| + } |
| + if (![object isKindOfClass:[RTCMediaStreamTrack class]]) { |
|
tkchin_webrtc
2016/04/08 22:45:46
[object isMemberOfClass:[self class]]? Do we care
skvlad
2016/04/08 23:23:23
Changed to isMemberOfClass:.
|
| + return NO; |
| + } |
| + return [self isEqualToTrack:(RTCMediaStreamTrack *)object]; |
| +} |
| + |
| +- (NSUInteger)hash { |
| + return (NSUInteger) _nativeTrack.get(); |
|
tkchin_webrtc
2016/04/08 22:45:46
nit: remove space
Is this a safe conversion?
skvlad
2016/04/08 23:23:23
It's safe enough for a hash function, even if two
|
| +} |
| + |
| #pragma mark - Private |
| - (rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>)nativeTrack { |
| @@ -64,6 +78,29 @@ |
| return self; |
| } |
| +- (instancetype)initWithNativeTrack: |
| + (rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>)nativeTrack { |
| + NSParameterAssert(nativeTrack); |
| + if (nativeTrack->kind() == |
| + std::string(webrtc::MediaStreamTrackInterface::kAudioKind)) { |
| + return [self initWithNativeTrack:nativeTrack |
| + type:RTCMediaStreamTrackTypeAudio]; |
| + } |
| + if (nativeTrack->kind() == |
| + std::string(webrtc::MediaStreamTrackInterface::kVideoKind)) { |
| + return [self initWithNativeTrack:nativeTrack |
| + type:RTCMediaStreamTrackTypeVideo]; |
| + } |
| + return nil; |
| +} |
| + |
| +- (BOOL)isEqualToTrack:(RTCMediaStreamTrack *)track { |
| + if (!track) { |
| + return NO; |
| + } |
| + return _nativeTrack == track->_nativeTrack; |
|
tkchin_webrtc
2016/04/08 22:45:46
nit: don't use -> if possible
just access the nati
skvlad
2016/04/08 23:23:23
Changed to use the property. refptr has operator==
|
| +} |
| + |
| + (webrtc::MediaStreamTrackInterface::TrackState)nativeTrackStateForState: |
| (RTCMediaStreamTrackState)state { |
| switch (state) { |