blob: 155e31228b3036d4ca8a4ad13a78981f741d33b0 [file] [log] [blame]
Jon Hjelle81028792016-01-11 13:16:13 -08001/*
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
Henrik Kjellander15583c12016-02-10 10:53:12 +010013#include "webrtc/api/mediastreaminterface.h"
Jon Hjelle81028792016-01-11 13:16:13 -080014#include "webrtc/base/scoped_ptr.h"
15
Jon Hjelleca91e382016-01-21 15:36:47 -080016typedef NS_ENUM(NSInteger, RTCMediaStreamTrackType) {
17 RTCMediaStreamTrackTypeAudio,
18 RTCMediaStreamTrackTypeVideo,
19};
20
Jon Hjelle81028792016-01-11 13:16:13 -080021NS_ASSUME_NONNULL_BEGIN
22
23@interface RTCMediaStreamTrack ()
24
25/**
Jon Hjelleca91e382016-01-21 15:36:47 -080026 * The native MediaStreamTrackInterface passed in or created during
27 * construction.
Jon Hjelle81028792016-01-11 13:16:13 -080028 */
29@property(nonatomic, readonly)
30 rtc::scoped_refptr<webrtc::MediaStreamTrackInterface> nativeTrack;
31
32/**
33 * Initialize an RTCMediaStreamTrack from a native MediaStreamTrackInterface.
34 */
35- (instancetype)initWithNativeTrack:
36 (rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>)nativeTrack
Jon Hjelleca91e382016-01-21 15:36:47 -080037 type:(RTCMediaStreamTrackType)type
Jon Hjelle81028792016-01-11 13:16:13 -080038 NS_DESIGNATED_INITIALIZER;
39
40+ (webrtc::MediaStreamTrackInterface::TrackState)nativeTrackStateForState:
41 (RTCMediaStreamTrackState)state;
42
43+ (RTCMediaStreamTrackState)trackStateForNativeState:
44 (webrtc::MediaStreamTrackInterface::TrackState)nativeState;
45
46+ (NSString *)stringForState:(RTCMediaStreamTrackState)state;
47
48@end
49
50NS_ASSUME_NONNULL_END