| Index: media/audio/mac/audio_manager_mac.cc
|
| diff --git a/media/audio/mac/audio_manager_mac.cc b/media/audio/mac/audio_manager_mac.cc
|
| index a0562837d43ec7fbb82a408e7e5826b5e675505b..ca9485503e44d61a47dd8f535689d9460251d412 100644
|
| --- a/media/audio/mac/audio_manager_mac.cc
|
| +++ b/media/audio/mac/audio_manager_mac.cc
|
| @@ -6,10 +6,12 @@
|
|
|
| #include <string>
|
|
|
| +#include "base/bind.h"
|
| #include "base/command_line.h"
|
| #include "base/mac/mac_logging.h"
|
| #include "base/mac/scoped_cftyperef.h"
|
| #include "base/sys_string_conversions.h"
|
| +#include "media/audio/mac/audio_device_listener_mac.h"
|
| #include "media/audio/mac/audio_input_mac.h"
|
| #include "media/audio/mac/audio_low_latency_input_mac.h"
|
| #include "media/audio/mac/audio_low_latency_output_mac.h"
|
| @@ -17,6 +19,7 @@
|
| #include "media/audio/mac/audio_output_mac.h"
|
| #include "media/audio/mac/audio_synchronized_mac.h"
|
| #include "media/audio/mac/audio_unified_mac.h"
|
| +#include "media/base/bind_to_loop.h"
|
| #include "media/base/limits.h"
|
| #include "media/base/media_switches.h"
|
|
|
| @@ -235,6 +238,10 @@ AudioManagerMac::AudioManagerMac() {
|
| }
|
|
|
| AudioManagerMac::~AudioManagerMac() {
|
| + // It's safe to post a task here since Shutdown() will wait for all tasks to
|
| + // complete before returning.
|
| + GetMessageLoop()->PostTask(FROM_HERE, base::Bind(
|
| + &AudioManagerMac::DestructOnAudioThread, base::Unretained(this)));
|
| Shutdown();
|
| }
|
|
|
| @@ -305,6 +312,17 @@ AudioInputStream* AudioManagerMac::MakeLowLatencyInputStream(
|
| return stream;
|
| }
|
|
|
| +void AudioManagerMac::InitializeOnAudioThread() {
|
| + output_device_listener_.reset(new AudioDeviceListenerMac(BindToLoop(
|
| + GetMessageLoop(),
|
| + base::Bind(&AudioManagerMac::NotifyAllOutputDeviceChangeListeners,
|
| + base::Unretained(this)))));
|
| +}
|
| +
|
| +void AudioManagerMac::DestructOnAudioThread() {
|
| + output_device_listener_.reset();
|
| +}
|
| +
|
| AudioManager* CreateAudioManager() {
|
| return new AudioManagerMac();
|
| }
|
|
|