summaryrefslogtreecommitdiffstats
path: root/media/audio/audio_manager.h
diff options
context:
space:
mode:
authordalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-23 02:04:46 +0000
committerdalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-23 02:04:46 +0000
commit478b24407f0782b475033ac0e3e28f697a5c4fa1 (patch)
tree038a393df6e19076fbeb40826e1ddb6777b464e5 /media/audio/audio_manager.h
parenta43c3b27bc86bd9611fcfefa95b37843f8608f89 (diff)
downloadchromium_src-478b24407f0782b475033ac0e3e28f697a5c4fa1.zip
chromium_src-478b24407f0782b475033ac0e3e28f697a5c4fa1.tar.gz
chromium_src-478b24407f0782b475033ac0e3e28f697a5c4fa1.tar.bz2
Introduce AudioStateNotifier.
- Handles device state change notifications. - Allows AudioOutputController to restart its underlying stream when necessary. BUG=153056 TEST=new unittest. Review URL: https://chromiumcodereview.appspot.com/11193029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163478 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/audio/audio_manager.h')
-rw-r--r--media/audio/audio_manager.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/media/audio/audio_manager.h b/media/audio/audio_manager.h
index a34027f..3b61bde 100644
--- a/media/audio/audio_manager.h
+++ b/media/audio/audio_manager.h
@@ -112,6 +112,18 @@ class MEDIA_EXPORT AudioManager {
// Returns message loop used for audio IO.
virtual scoped_refptr<base::MessageLoopProxy> GetMessageLoop() = 0;
+ // Allows clients to listen for device state changes; e.g. preferred sample
+ // rate or channel layout changes. The typical response to receiving this
+ // callback is to recreate the stream.
+ class AudioDeviceListener {
+ public:
+ virtual void OnDeviceChange() = 0;
+ };
+
+ virtual void AddOutputDeviceChangeListener(AudioDeviceListener* listener) = 0;
+ virtual void RemoveOutputDeviceChangeListener(
+ AudioDeviceListener* listener) = 0;
+
protected:
AudioManager();