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

Unified Diff: media/audio/mac/audio_manager_mac.cc

Issue 11344005: Handle audio device changes on Mac (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: " Created 8 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/audio/mac/audio_manager_mac.h ('k') | media/media.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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();
}
« no previous file with comments | « media/audio/mac/audio_manager_mac.h ('k') | media/media.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698