This CL adds a new factory method called AudioDeviceFactory. It is a template based...
commitd13842a16ccaa2c2cd03c200249779e6549398d6
authorhenrika@chromium.org <henrika@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Fri, 29 Jun 2012 08:59:04 +0000 (29 08:59 +0000)
committerhenrika@chromium.org <henrika@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Fri, 29 Jun 2012 08:59:04 +0000 (29 08:59 +0000)
treecfecafcae3834ca62ef4047542754e4718b0d924
parentfb0a2d219207814565debcce53ec0f745127984c
This CL adds a new factory method called AudioDeviceFactory. It is a template based factory which allows the user to create a media::AudioRenderSink implementation (AudioDevice) using a factory which is created once and then distributed to all clients.

Advantages:

+ We can mock (or try alternative implementations of) AudioDevice for all clients at one centralized place.
+ The factory now owns the audio message filter, hence the restriction that each client must be created on the main renderer thread should now be removed.

BUG=none
TEST=content_unittests, misc. WebRTC demos, WebAudio demos and <audio> tag demos.

Review URL: https://chromiumcodereview.appspot.com/10537121

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144888 0039d316-1c4b-4281-b951-d872f2087c98
16 files changed:
content/content_renderer.gypi
content/renderer/media/audio_device.cc
content/renderer/media/audio_device.h
content/renderer/media/audio_device_factory.cc [new file with mode: 0644]
content/renderer/media/audio_device_factory.h [new file with mode: 0644]
content/renderer/media/audio_message_filter.cc
content/renderer/media/audio_message_filter.h
content/renderer/media/render_audiosourceprovider.cc
content/renderer/media/render_audiosourceprovider.h
content/renderer/media/renderer_webaudiodevice_impl.cc
content/renderer/media/renderer_webaudiodevice_impl.h
content/renderer/media/webrtc_audio_device_impl.cc
content/renderer/media/webrtc_audio_device_impl.h
content/renderer/media/webrtc_audio_device_unittest.cc
content/renderer/render_view_impl.cc
content/test/webrtc_audio_device_test.cc