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

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

Issue 2582703003: Audio output debug recording. (Closed)
Patch Set: Using callbacks instead. Created 3 years, 10 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 #include "media/audio/audio_manager.h" 5 #include "media/audio/audio_manager.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
11 #include "base/command_line.h" 11 #include "base/command_line.h"
12 #include "base/debug/alias.h" 12 #include "base/debug/alias.h"
13 #include "base/debug/crash_logging.h" 13 #include "base/debug/crash_logging.h"
14 #include "base/debug/dump_without_crashing.h" 14 #include "base/debug/dump_without_crashing.h"
15 #include "base/lazy_instance.h" 15 #include "base/lazy_instance.h"
16 #include "base/logging.h" 16 #include "base/logging.h"
17 #include "base/macros.h" 17 #include "base/macros.h"
18 #include "base/message_loop/message_loop.h" 18 #include "base/message_loop/message_loop.h"
19 #include "base/metrics/histogram_macros.h" 19 #include "base/metrics/histogram_macros.h"
20 #include "base/power_monitor/power_monitor.h" 20 #include "base/power_monitor/power_monitor.h"
21 #include "base/strings/stringprintf.h" 21 #include "base/strings/stringprintf.h"
22 #include "build/build_config.h" 22 #include "build/build_config.h"
23 #include "media/audio/fake_audio_file_writer.h"
23 #include "media/audio/fake_audio_log_factory.h" 24 #include "media/audio/fake_audio_log_factory.h"
24 #include "media/base/media_switches.h" 25 #include "media/base/media_switches.h"
25 26
26 #if defined(OS_MACOSX) 27 #if defined(OS_MACOSX)
27 #include "media/audio/mac/audio_manager_mac.h" 28 #include "media/audio/mac/audio_manager_mac.h"
28 #endif 29 #endif
29 30
30 #if defined(OS_WIN) 31 #if defined(OS_WIN)
31 #include "base/win/scoped_com_initializer.h" 32 #include "base/win/scoped_com_initializer.h"
32 #include "media/audio/win/core_audio_util_win.h" 33 #include "media/audio/win/core_audio_util_win.h"
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 if (!instance->GetTaskRunner()->DeleteSoon(FROM_HERE, instance)) { 295 if (!instance->GetTaskRunner()->DeleteSoon(FROM_HERE, instance)) {
295 LOG(WARNING) << "Failed to delete AudioManager instance."; 296 LOG(WARNING) << "Failed to delete AudioManager instance.";
296 } 297 }
297 #endif 298 #endif
298 } 299 }
299 300
300 // Forward declaration of the platform specific AudioManager factory function. 301 // Forward declaration of the platform specific AudioManager factory function.
301 ScopedAudioManagerPtr CreateAudioManager( 302 ScopedAudioManagerPtr CreateAudioManager(
302 scoped_refptr<base::SingleThreadTaskRunner> task_runner, 303 scoped_refptr<base::SingleThreadTaskRunner> task_runner,
303 scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner, 304 scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner,
304 AudioLogFactory* audio_log_factory); 305 AudioLogFactory* audio_log_factory,
306 CreateAudioFileWriterCallback create_audio_file_writer_callback);
305 307
306 void AudioManager::SetMaxStreamCountForTesting(int max_input, int max_output) { 308 void AudioManager::SetMaxStreamCountForTesting(int max_input, int max_output) {
307 NOTREACHED(); 309 NOTREACHED();
308 } 310 }
309 311
310 AudioManager::AudioManager( 312 AudioManager::AudioManager(
311 scoped_refptr<base::SingleThreadTaskRunner> task_runner, 313 scoped_refptr<base::SingleThreadTaskRunner> task_runner,
312 scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner) 314 scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner)
313 : task_runner_(std::move(task_runner)), 315 : task_runner_(std::move(task_runner)),
314 worker_task_runner_(std::move(worker_task_runner)) { 316 worker_task_runner_(std::move(worker_task_runner)) {
(...skipping 11 matching lines...) Expand all
326 } 328 }
327 329
328 AudioManager::~AudioManager() { 330 AudioManager::~AudioManager() {
329 DCHECK(task_runner_->BelongsToCurrentThread()); 331 DCHECK(task_runner_->BelongsToCurrentThread());
330 } 332 }
331 333
332 // static 334 // static
333 ScopedAudioManagerPtr AudioManager::Create( 335 ScopedAudioManagerPtr AudioManager::Create(
334 scoped_refptr<base::SingleThreadTaskRunner> task_runner, 336 scoped_refptr<base::SingleThreadTaskRunner> task_runner,
335 scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner, 337 scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner,
336 AudioLogFactory* audio_log_factory) { 338 AudioLogFactory* audio_log_factory,
339 CreateAudioFileWriterCallback create_audio_file_writer_callback) {
337 DCHECK(task_runner); 340 DCHECK(task_runner);
338 DCHECK(worker_task_runner); 341 DCHECK(worker_task_runner);
339 return CreateAudioManager(std::move(task_runner), 342 return CreateAudioManager(std::move(task_runner),
340 std::move(worker_task_runner), audio_log_factory); 343 std::move(worker_task_runner), audio_log_factory,
344 std::move(create_audio_file_writer_callback));
341 } 345 }
342 346
343 // static 347 // static
344 ScopedAudioManagerPtr AudioManager::CreateForTesting( 348 ScopedAudioManagerPtr AudioManager::CreateForTesting(
345 scoped_refptr<base::SingleThreadTaskRunner> task_runner) { 349 scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
346 #if defined(OS_WIN) 350 #if defined(OS_WIN)
347 g_helper.Pointer()->InitializeCOMForTesting(); 351 g_helper.Pointer()->InitializeCOMForTesting();
348 #endif 352 #endif
349 return Create(task_runner, task_runner, 353 return Create(task_runner, task_runner,
350 g_helper.Pointer()->fake_log_factory()); 354 g_helper.Pointer()->fake_log_factory(),
355 base::Bind(&FakeAudioFileWriter::Create));
351 } 356 }
352 357
353 // static 358 // static
354 void AudioManager::StartHangMonitorIfNeeded( 359 void AudioManager::StartHangMonitorIfNeeded(
355 scoped_refptr<base::SingleThreadTaskRunner> task_runner) { 360 scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
356 if (g_helper.Pointer()->monitor_task_runner()) 361 if (g_helper.Pointer()->monitor_task_runner())
357 return; 362 return;
358 363
359 DCHECK(AudioManager::Get()); 364 DCHECK(AudioManager::Get());
360 DCHECK(task_runner); 365 DCHECK(task_runner);
(...skipping 19 matching lines...) Expand all
380 return g_helper.Pointer()->app_name(); 385 return g_helper.Pointer()->app_name();
381 } 386 }
382 #endif 387 #endif
383 388
384 // static 389 // static
385 AudioManager* AudioManager::Get() { 390 AudioManager* AudioManager::Get() {
386 return g_last_created; 391 return g_last_created;
387 } 392 }
388 393
389 } // namespace media 394 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698