/* * Copyright 2015 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #import "RTCAudioTrack+Private.h" #import "NSString+StdString.h" #import "RTCMediaStreamTrack+Private.h" #import "RTCPeerConnectionFactory+Private.h" @implementation RTCAudioTrack - (instancetype)initWithFactory:(RTCPeerConnectionFactory *)factory trackId:(NSString *)trackId { NSParameterAssert(factory); NSParameterAssert(trackId.length); std::string nativeId = [NSString stdStringForString:trackId]; rtc::scoped_refptr track = factory.nativeFactory->CreateAudioTrack(nativeId, nullptr); return [self initWithNativeTrack:track type:RTCMediaStreamTrackTypeAudio]; } - (instancetype)initWithNativeTrack: (rtc::scoped_refptr)nativeTrack type:(RTCMediaStreamTrackType)type { NSParameterAssert(nativeTrack); NSParameterAssert(type == RTCMediaStreamTrackTypeAudio); return [super initWithNativeTrack:nativeTrack type:type]; } #pragma mark - Private - (rtc::scoped_refptr)nativeAudioTrack { return static_cast(self.nativeTrack.get()); } @end