blob: 158d1b362b8dc8f4e01cc43b1d83927d5744fd2a [file] [log] [blame]
Jon Hjelleca91e382016-01-21 15:36:47 -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 "RTCAudioTrack.h"
12
13#import "webrtc/api/objc/RTCAudioTrack+Private.h"
14#import "webrtc/api/objc/RTCMediaStreamTrack+Private.h"
15#import "webrtc/api/objc/RTCPeerConnectionFactory+Private.h"
16#import "webrtc/base/objc/NSString+StdString.h"
17
18@implementation RTCAudioTrack
19
20- (instancetype)initWithFactory:(RTCPeerConnectionFactory *)factory
21 trackId:(NSString *)trackId {
22 NSParameterAssert(factory);
23 NSParameterAssert(trackId.length);
24 std::string nativeId = [NSString stdStringForString:trackId];
25 rtc::scoped_refptr<webrtc::AudioTrackInterface> track =
26 factory.nativeFactory->CreateAudioTrack(nativeId, nullptr);
27 return [self initWithNativeTrack:track type:RTCMediaStreamTrackTypeAudio];
28}
29
30- (instancetype)initWithNativeTrack:
31 (rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>)nativeTrack
32 type:(RTCMediaStreamTrackType)type {
33 NSParameterAssert(nativeTrack);
34 NSParameterAssert(type == RTCMediaStreamTrackTypeAudio);
35 return [super initWithNativeTrack:nativeTrack type:type];
36}
37
38#pragma mark - Private
39
40- (rtc::scoped_refptr<webrtc::AudioTrackInterface>)nativeAudioTrack {
41 return static_cast<webrtc::AudioTrackInterface *>(self.nativeTrack.get());
42}
43
44@end