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

Unified Diff: webrtc/api/objc/RTCMediaStreamTrack.mm

Issue 1553743003: Update API for Objective-C RTCAudioTrack and RTCVideoTrack. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@updateRTCMediaStreamTrack
Patch Set: Improve comments a bit Created 4 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: webrtc/api/objc/RTCMediaStreamTrack.mm
diff --git a/webrtc/api/objc/RTCMediaStreamTrack.mm b/webrtc/api/objc/RTCMediaStreamTrack.mm
index e5751b0746bd5c855cc403d6113d25a7ac6ef4c9..827e25d438e5d3fdfcf404ffd9a288782a300ea8 100644
--- a/webrtc/api/objc/RTCMediaStreamTrack.mm
+++ b/webrtc/api/objc/RTCMediaStreamTrack.mm
@@ -14,27 +14,29 @@
#import "webrtc/base/objc/NSString+StdString.h"
@implementation RTCMediaStreamTrack {
- rtc::scoped_refptr<webrtc::MediaStreamTrackInterface> _nativeTrack;
+ rtc::scoped_refptr<webrtc::MediaStreamTrackInterface> _nativeAudioTrack;
+ rtc::scoped_refptr<webrtc::MediaStreamTrackInterface> _nativeVideoTrack;
+ RTCMediaStreamTrackType _type;
}
- (NSString *)kind {
- return [NSString stringForStdString:_nativeTrack->kind()];
+ return [NSString stringForStdString:self.nativeMediaTrack->kind()];
}
- (NSString *)trackId {
- return [NSString stringForStdString:_nativeTrack->id()];
+ return [NSString stringForStdString:self.nativeMediaTrack->id()];
}
- (BOOL)isEnabled {
- return _nativeTrack->enabled();
+ return self.nativeMediaTrack->enabled();
}
- (void)setIsEnabled:(BOOL)isEnabled {
- _nativeTrack->set_enabled(isEnabled);
+ self.nativeMediaTrack->set_enabled(isEnabled);
}
- (RTCMediaStreamTrackState)readyState {
- return [[self class] trackStateForNativeState:_nativeTrack->state()];
+ return [[self class] trackStateForNativeState:self.nativeMediaTrack->state()];
}
- (NSString *)description {
@@ -48,15 +50,35 @@
#pragma mark - Private
-- (rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>)nativeTrack {
- return _nativeTrack;
+- (rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>)nativeMediaTrack {
+ switch (_type) {
+ case RTCMediaStreamTrackTypeAudio:
+ return _nativeAudioTrack;
+ case RTCMediaStreamTrackTypeVideo:
+ return _nativeVideoTrack;
+ }
+}
+
+- (rtc::scoped_refptr<webrtc::AudioTrackInterface>)nativeAudioTrack {
+ return static_cast<webrtc::AudioTrackInterface *>(_nativeAudioTrack.get());
tkchin_webrtc 2016/01/21 01:23:30 If we're static casting on the getter, might as we
hjon 2016/01/21 19:53:27 This should be taken care of.
+}
+
+- (rtc::scoped_refptr<webrtc::VideoTrackInterface>)nativeVideoTrack {
+ return static_cast<webrtc::VideoTrackInterface *>(_nativeVideoTrack.get());
}
-- (instancetype)initWithNativeTrack:
- (rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>)nativeTrack {
- NSParameterAssert(nativeTrack);
+- (instancetype)initWithNativeMediaTrack:
+ (rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>)nativeMediaTrack
+ type:(RTCMediaStreamTrackType)type {
+ NSParameterAssert(nativeMediaTrack);
if (self = [super init]) {
- _nativeTrack = nativeTrack;
+ switch (_type) {
+ case RTCMediaStreamTrackTypeAudio:
+ _nativeAudioTrack = nativeMediaTrack;
+ case RTCMediaStreamTrackTypeVideo:
+ _nativeVideoTrack = nativeMediaTrack;
+ }
+ _type = type;
}
return self;
}

Powered by Google App Engine
This is Rietveld 408576698