From 478b24407f0782b475033ac0e3e28f697a5c4fa1 Mon Sep 17 00:00:00 2001 From: "dalecurtis@chromium.org" Date: Tue, 23 Oct 2012 02:04:46 +0000 Subject: 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 --- media/audio/audio_manager.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'media/audio/audio_manager.h') 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 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(); -- cgit v1.1