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

Unified Diff: media/audio/win/audio_manager_win.h

Issue 11233023: Handle audio device changes on Windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments! Unit tests! 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
Index: media/audio/win/audio_manager_win.h
diff --git a/media/audio/win/audio_manager_win.h b/media/audio/win/audio_manager_win.h
index 6a4efcbafbd91b11c3773b3fe3786570904e3f81..ab1aa5851f442a95c92700a0ddf0368116d049db 100644
--- a/media/audio/win/audio_manager_win.h
+++ b/media/audio/win/audio_manager_win.h
@@ -12,15 +12,19 @@
#include "base/compiler_specific.h"
#include "base/gtest_prod_util.h"
#include "media/audio/audio_manager_base.h"
+#include "media/audio/win/audio_device_listener_win.h"
namespace media {
// Windows implementation of the AudioManager singleton. This class is internal
// to the audio output and only internal users can call methods not exposed by
// the AudioManager class.
-class MEDIA_EXPORT AudioManagerWin : public AudioManagerBase {
+class MEDIA_EXPORT AudioManagerWin
+ : public AudioManagerBase,
+ NON_EXPORTED_BASE(public AudioManager::AudioDeviceListener) {
scherkus (not reviewing) 2012/10/24 04:27:09 I still don't see a reason to use multiple inherit
DaleCurtis 2012/10/24 04:52:47 Hmm, I kept it this way because the unit test was
scherkus (not reviewing) 2012/10/24 16:52:11 Those darn unit tests! OK what about using a call
DaleCurtis 2012/10/24 19:27:29 Done.
public:
AudioManagerWin();
+
// Implementation of AudioManager.
virtual bool HasAudioOutputDevices() OVERRIDE;
virtual bool HasAudioInputDevices() OVERRIDE;
@@ -42,9 +46,15 @@ class MEDIA_EXPORT AudioManagerWin : public AudioManagerBase {
virtual AudioParameters GetPreferredLowLatencyOutputStreamParameters(
const AudioParameters& input_params) OVERRIDE;
+ // AudioDeviceListener implementation.
+ virtual void OnDeviceChange() OVERRIDE;
+
protected:
virtual ~AudioManagerWin();
+ // Implementation of AudioManager.
+ virtual void InitializeOnAudioThread() OVERRIDE;
+
private:
enum EnumerationType {
kUninitializedEnumeration = 0,
@@ -70,6 +80,9 @@ class MEDIA_EXPORT AudioManagerWin : public AudioManagerBase {
const AudioParameters& params,
const std::string& device_id);
+ // Listen for output device changes.
+ scoped_ptr<AudioDeviceListenerWin> output_device_listener_;
+
DISALLOW_COPY_AND_ASSIGN(AudioManagerWin);
};

Powered by Google App Engine
This is Rietveld 408576698