Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / content / renderer / media / media_stream_audio_source.cc
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/renderer/media/media_stream_audio_source.h"
6
7 namespace content {
8
9 MediaStreamAudioSource::MediaStreamAudioSource(
10     int render_view_id,
11     const StreamDeviceInfo& device_info,
12     const SourceStoppedCallback& stop_callback,
13     MediaStreamDependencyFactory* factory)
14     : render_view_id_(render_view_id),
15       factory_(factory) {
16   SetDeviceInfo(device_info);
17   SetStopCallback(stop_callback);
18 }
19
20 MediaStreamAudioSource::MediaStreamAudioSource()
21     : render_view_id_(-1),
22       factory_(NULL) {
23 }
24
25 MediaStreamAudioSource::~MediaStreamAudioSource() {}
26
27 void MediaStreamAudioSource::DoStopSource() {
28   if (audio_capturer_.get())
29     audio_capturer_->Stop();
30 }
31
32 void MediaStreamAudioSource::AddTrack(
33     const blink::WebMediaStreamTrack& track,
34     const blink::WebMediaConstraints& constraints,
35     const ConstraintsCallback& callback) {
36   // TODO(xians): Properly implement for audio sources.
37   bool result = true;
38   if (factory_ && !local_audio_source_) {
39     result = factory_->InitializeMediaStreamAudioSource(render_view_id_,
40                                                         constraints,
41                                                         this);
42   }
43   callback.Run(this, result);
44 }
45
46 void MediaStreamAudioSource::RemoveTrack(
47     const blink::WebMediaStreamTrack& track) {
48   NOTIMPLEMENTED();
49 }
50
51 }  // namespace content