blob: 2b9c6b92d27e218459201e81ce8e4e3cdc2c99a2 [file] [log] [blame]
tkchind4bfbfc2016-08-30 11:56:05 -07001/*
2 * Copyright 2016 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 "RTCAudioSource+Private.h"
12
13#include "webrtc/base/checks.h"
14
15@implementation RTCAudioSource {
16 rtc::scoped_refptr<webrtc::AudioSourceInterface> _nativeAudioSource;
17}
18
frederik.riedel0d1305e2017-02-23 13:57:00 -080019@synthesize volume = _volume;
20
tkchind4bfbfc2016-08-30 11:56:05 -070021- (instancetype)initWithNativeAudioSource:
22 (rtc::scoped_refptr<webrtc::AudioSourceInterface>)nativeAudioSource {
23 RTC_DCHECK(nativeAudioSource);
24 if (self = [super initWithNativeMediaSource:nativeAudioSource
25 type:RTCMediaSourceTypeAudio]) {
26 _nativeAudioSource = nativeAudioSource;
27 }
28 return self;
29}
30
31- (instancetype)initWithNativeMediaSource:
32 (rtc::scoped_refptr<webrtc::MediaSourceInterface>)nativeMediaSource
33 type:(RTCMediaSourceType)type {
34 RTC_NOTREACHED();
35 return nil;
36}
37
38- (NSString *)description {
39 NSString *stateString = [[self class] stringForState:self.state];
40 return [NSString stringWithFormat:@"RTCAudioSource( %p ): %@", self, stateString];
41}
42
frederik.riedel0d1305e2017-02-23 13:57:00 -080043- (void)setVolume:(double)volume {
44 _volume = volume;
45 _nativeAudioSource->SetVolume(volume);
46}
47
tkchind4bfbfc2016-08-30 11:56:05 -070048#pragma mark - Private
49
50- (rtc::scoped_refptr<webrtc::AudioSourceInterface>)nativeAudioSource {
51 return _nativeAudioSource;
52}
53
54@end