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

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

Issue 2885173002: Make AudioDebugFileWriter create its own file worker thread. (Closed)
Patch Set: Remove useless include Created 3 years, 7 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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 #ifndef MEDIA_AUDIO_AUDIO_INPUT_CONTROLLER_H_ 5 #ifndef MEDIA_AUDIO_AUDIO_INPUT_CONTROLLER_H_
6 #define MEDIA_AUDIO_AUDIO_INPUT_CONTROLLER_H_ 6 #define MEDIA_AUDIO_AUDIO_INPUT_CONTROLLER_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 156
157 // Sets the factory used by the static method Create(). AudioInputController 157 // Sets the factory used by the static method Create(). AudioInputController
158 // does not take ownership of |factory|. A value of NULL results in an 158 // does not take ownership of |factory|. A value of NULL results in an
159 // AudioInputController being created directly. 159 // AudioInputController being created directly.
160 static void set_factory_for_testing(Factory* factory) { factory_ = factory; } 160 static void set_factory_for_testing(Factory* factory) { factory_ = factory; }
161 AudioInputStream* stream_for_testing() { return stream_; } 161 AudioInputStream* stream_for_testing() { return stream_; }
162 162
163 // The audio device will be created on the audio thread, and when that is 163 // The audio device will be created on the audio thread, and when that is
164 // done, the event handler will receive an OnCreated() call from that same 164 // done, the event handler will receive an OnCreated() call from that same
165 // thread. |user_input_monitor| is used for typing detection and can be NULL. 165 // thread. |user_input_monitor| is used for typing detection and can be NULL.
166 // |file_task_runner| is used for debug recordings.
167 // TODO(grunell): Move handling of debug recording to AudioManager. 166 // TODO(grunell): Move handling of debug recording to AudioManager.
168 static scoped_refptr<AudioInputController> Create( 167 static scoped_refptr<AudioInputController> Create(
169 AudioManager* audio_manager, 168 AudioManager* audio_manager,
170 EventHandler* event_handler, 169 EventHandler* event_handler,
171 SyncWriter* sync_writer, 170 SyncWriter* sync_writer,
172 UserInputMonitor* user_input_monitor, 171 UserInputMonitor* user_input_monitor,
173 const AudioParameters& params, 172 const AudioParameters& params,
174 const std::string& device_id, 173 const std::string& device_id,
175 // External synchronous writer for audio controller. 174 // External synchronous writer for audio controller.
176 bool agc_is_enabled, 175 bool agc_is_enabled);
177 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner);
178 176
179 // Factory method for creating an AudioInputController with an existing 177 // Factory method for creating an AudioInputController with an existing
180 // |stream|. The stream will be opened on the audio thread, and when that is 178 // |stream|. The stream will be opened on the audio thread, and when that is
181 // done, the event handler will receive an OnCreated() call from that same 179 // done, the event handler will receive an OnCreated() call from that same
182 // thread. |user_input_monitor| is used for typing detection and can be NULL. 180 // thread. |user_input_monitor| is used for typing detection and can be NULL.
183 // |file_task_runner| and |params| are used for debug recordings. 181 // |params| is used for debug recordings.
184 static scoped_refptr<AudioInputController> CreateForStream( 182 static scoped_refptr<AudioInputController> CreateForStream(
185 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, 183 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
186 EventHandler* event_handler, 184 EventHandler* event_handler,
187 AudioInputStream* stream, 185 AudioInputStream* stream,
188 // External synchronous writer for audio controller. 186 // External synchronous writer for audio controller.
189 SyncWriter* sync_writer, 187 SyncWriter* sync_writer,
190 UserInputMonitor* user_input_monitor, 188 UserInputMonitor* user_input_monitor,
191 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner,
192 const AudioParameters& params); 189 const AudioParameters& params);
193 190
194 // Starts recording using the created audio input stream. 191 // Starts recording using the created audio input stream.
195 // This method is called on the creator thread. 192 // This method is called on the creator thread.
196 virtual void Record(); 193 virtual void Record();
197 194
198 // Closes the audio input stream. The state is changed and the resources 195 // Closes the audio input stream. The state is changed and the resources
199 // are freed on the audio thread. |closed_task| is then executed on the thread 196 // are freed on the audio thread. |closed_task| is then executed on the thread
200 // that called Close(). 197 // that called Close().
201 // Callbacks (EventHandler and SyncWriter) must exist until |closed_task| 198 // Callbacks (EventHandler and SyncWriter) must exist until |closed_task|
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 // SILENCE_STATE_NO_MEASUREMENT 248 // SILENCE_STATE_NO_MEASUREMENT
252 enum SilenceState { 249 enum SilenceState {
253 SILENCE_STATE_NO_MEASUREMENT = 0, 250 SILENCE_STATE_NO_MEASUREMENT = 0,
254 SILENCE_STATE_ONLY_AUDIO = 1, 251 SILENCE_STATE_ONLY_AUDIO = 1,
255 SILENCE_STATE_ONLY_SILENCE = 2, 252 SILENCE_STATE_ONLY_SILENCE = 2,
256 SILENCE_STATE_AUDIO_AND_SILENCE = 3, 253 SILENCE_STATE_AUDIO_AND_SILENCE = 3,
257 SILENCE_STATE_MAX = SILENCE_STATE_AUDIO_AND_SILENCE 254 SILENCE_STATE_MAX = SILENCE_STATE_AUDIO_AND_SILENCE
258 }; 255 };
259 #endif 256 #endif
260 257
261 AudioInputController( 258 AudioInputController(scoped_refptr<base::SingleThreadTaskRunner> task_runner,
262 scoped_refptr<base::SingleThreadTaskRunner> task_runner, 259 EventHandler* handler,
263 EventHandler* handler, 260 SyncWriter* sync_writer,
264 SyncWriter* sync_writer, 261 UserInputMonitor* user_input_monitor,
265 UserInputMonitor* user_input_monitor, 262 const AudioParameters& params,
266 const AudioParameters& params, 263 StreamType type);
267 StreamType type,
268 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner);
269 virtual ~AudioInputController(); 264 virtual ~AudioInputController();
270 265
271 const scoped_refptr<base::SingleThreadTaskRunner>& GetTaskRunnerForTesting() 266 const scoped_refptr<base::SingleThreadTaskRunner>& GetTaskRunnerForTesting()
272 const { 267 const {
273 return task_runner_; 268 return task_runner_;
274 } 269 }
275 270
276 EventHandler* GetHandlerForTesting() const { return handler_; } 271 EventHandler* GetHandlerForTesting() const { return handler_; }
277 272
278 private: 273 private:
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 // The weak_ptr_factory_ and all outstanding weak pointers, are invalidated 394 // The weak_ptr_factory_ and all outstanding weak pointers, are invalidated
400 // at the end of DoClose. 395 // at the end of DoClose.
401 base::WeakPtrFactory<AudioInputController> weak_ptr_factory_; 396 base::WeakPtrFactory<AudioInputController> weak_ptr_factory_;
402 397
403 DISALLOW_COPY_AND_ASSIGN(AudioInputController); 398 DISALLOW_COPY_AND_ASSIGN(AudioInputController);
404 }; 399 };
405 400
406 } // namespace media 401 } // namespace media
407 402
408 #endif // MEDIA_AUDIO_AUDIO_INPUT_CONTROLLER_H_ 403 #endif // MEDIA_AUDIO_AUDIO_INPUT_CONTROLLER_H_
OLDNEW
« no previous file with comments | « media/audio/audio_debug_recording_manager_unittest.cc ('k') | media/audio/audio_input_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698