1 // Copyright (c) 2012 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.
5 #include "content/renderer/media/audio_device_factory.h"
7 #include "base/logging.h"
8 #include "content/renderer/media/audio_input_message_filter.h"
9 #include "content/renderer/media/audio_message_filter.h"
10 #include "media/audio/audio_input_device.h"
11 #include "media/audio/audio_output_device.h"
16 AudioDeviceFactory
* AudioDeviceFactory::factory_
= NULL
;
19 scoped_refptr
<media::AudioOutputDevice
> AudioDeviceFactory::NewOutputDevice(
20 int render_view_id
, int render_frame_id
) {
22 media::AudioOutputDevice
* const device
=
23 factory_
->CreateOutputDevice(render_view_id
);
28 AudioMessageFilter
* const filter
= AudioMessageFilter::Get();
29 return new media::AudioOutputDevice(
30 filter
->CreateAudioOutputIPC(render_view_id
, render_frame_id
),
31 filter
->io_message_loop());
35 scoped_refptr
<media::AudioInputDevice
> AudioDeviceFactory::NewInputDevice(
38 media::AudioInputDevice
* const device
=
39 factory_
->CreateInputDevice(render_view_id
);
44 AudioInputMessageFilter
* const filter
= AudioInputMessageFilter::Get();
45 return new media::AudioInputDevice(
46 filter
->CreateAudioInputIPC(render_view_id
), filter
->io_message_loop());
49 AudioDeviceFactory::AudioDeviceFactory() {
50 DCHECK(!factory_
) << "Can't register two factories at once.";
54 AudioDeviceFactory::~AudioDeviceFactory() {
58 } // namespace content