diff options
author | dalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-23 02:04:46 +0000 |
---|---|---|
committer | dalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-23 02:04:46 +0000 |
commit | 478b24407f0782b475033ac0e3e28f697a5c4fa1 (patch) | |
tree | 038a393df6e19076fbeb40826e1ddb6777b464e5 /media/audio/audio_manager.h | |
parent | a43c3b27bc86bd9611fcfefa95b37843f8608f89 (diff) | |
download | chromium_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.h | 12 |
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(); |