Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(92)

Side by Side Diff: media/audio/audio_input_controller.cc

Issue 3148003: Allow unit tests to use a mock audio input controller. (Closed)
Patch Set: Address review comments from Jeremy and Alpha Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « media/audio/audio_input_controller.h ('k') | media/audio/test_audio_input_controller_factory.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/audio/audio_input_controller.h" 5 #include "media/audio/audio_input_controller.h"
6 6
7 namespace { 7 namespace {
8 8
9 const int kMaxSampleRate = 192000; 9 const int kMaxSampleRate = 192000;
10 const int kMaxBitsPerSample = 64; 10 const int kMaxBitsPerSample = 64;
11 const int kMaxInputChannels = 2; 11 const int kMaxInputChannels = 2;
12 const int kMaxSamplesPerPacket = kMaxSampleRate; 12 const int kMaxSamplesPerPacket = kMaxSampleRate;
13 13
14 } // namespace 14 } // namespace
15 15
16 namespace media { 16 namespace media {
17 17
18 // static
19 AudioInputController::Factory* AudioInputController::factory_ = NULL;
20
18 AudioInputController::AudioInputController(EventHandler* handler) 21 AudioInputController::AudioInputController(EventHandler* handler)
19 : handler_(handler), 22 : handler_(handler),
20 stream_(NULL), 23 stream_(NULL),
21 state_(kEmpty), 24 state_(kEmpty),
22 thread_("AudioInputControllerThread") { 25 thread_("AudioInputControllerThread") {
23 } 26 }
24 27
25 AudioInputController::~AudioInputController() { 28 AudioInputController::~AudioInputController() {
26 DCHECK(kClosed == state_ || kCreated == state_ || kEmpty == state_); 29 DCHECK(kClosed == state_ || kCreated == state_ || kEmpty == state_);
27 } 30 }
28 31
29 // static 32 // static
30 scoped_refptr<AudioInputController> AudioInputController::Create( 33 scoped_refptr<AudioInputController> AudioInputController::Create(
31 EventHandler* event_handler, 34 EventHandler* event_handler,
32 AudioManager::Format format, 35 AudioManager::Format format,
33 int channels, 36 int channels,
34 int sample_rate, 37 int sample_rate,
35 int bits_per_sample, 38 int bits_per_sample,
36 int samples_per_packet) { 39 int samples_per_packet) {
37 if ((channels > kMaxInputChannels) || (channels <= 0) || 40 if ((channels > kMaxInputChannels) || (channels <= 0) ||
38 (sample_rate > kMaxSampleRate) || (sample_rate <= 0) || 41 (sample_rate > kMaxSampleRate) || (sample_rate <= 0) ||
39 (bits_per_sample > kMaxBitsPerSample) || (bits_per_sample <= 0) || 42 (bits_per_sample > kMaxBitsPerSample) || (bits_per_sample <= 0) ||
40 (samples_per_packet > kMaxSamplesPerPacket) || (samples_per_packet < 0)) 43 (samples_per_packet > kMaxSamplesPerPacket) || (samples_per_packet < 0))
41 return NULL; 44 return NULL;
42 45
46 if (factory_) {
47 return factory_->Create(event_handler, format, channels, sample_rate,
48 bits_per_sample, samples_per_packet);
49 }
50
43 scoped_refptr<AudioInputController> controller = new AudioInputController( 51 scoped_refptr<AudioInputController> controller = new AudioInputController(
44 event_handler); 52 event_handler);
45 53
46 // Start the thread and post a task to create the audio input stream. 54 // Start the thread and post a task to create the audio input stream.
47 controller->thread_.Start(); 55 controller->thread_.Start();
48 controller->thread_.message_loop()->PostTask( 56 controller->thread_.message_loop()->PostTask(
49 FROM_HERE, 57 FROM_HERE,
50 NewRunnableMethod(controller.get(), &AudioInputController::DoCreate, 58 NewRunnableMethod(controller.get(), &AudioInputController::DoCreate,
51 format, channels, sample_rate, bits_per_sample, 59 format, channels, sample_rate, bits_per_sample,
52 samples_per_packet)); 60 samples_per_packet));
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 } 157 }
150 158
151 void AudioInputController::OnError(AudioInputStream* stream, int code) { 159 void AudioInputController::OnError(AudioInputStream* stream, int code) {
152 // Handle error on the audio controller thread. 160 // Handle error on the audio controller thread.
153 thread_.message_loop()->PostTask( 161 thread_.message_loop()->PostTask(
154 FROM_HERE, 162 FROM_HERE,
155 NewRunnableMethod(this, &AudioInputController::DoReportError, code)); 163 NewRunnableMethod(this, &AudioInputController::DoReportError, code));
156 } 164 }
157 165
158 } // namespace media 166 } // namespace media
OLDNEW
« no previous file with comments | « media/audio/audio_input_controller.h ('k') | media/audio/test_audio_input_controller_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698