Index: media/audio/audio_output_controller.h |
diff --git a/media/audio/audio_output_controller.h b/media/audio/audio_output_controller.h |
index 856716f7774f943f9342b1c951d53eef6fce6091..de4bb0fe5ed33051349e42db25a399f138f20acf 100644 |
--- a/media/audio/audio_output_controller.h |
+++ b/media/audio/audio_output_controller.h |
@@ -71,10 +71,10 @@ class MEDIA_EXPORT AudioOutputController |
// following methods are called on the audio manager thread. |
class MEDIA_EXPORT EventHandler { |
public: |
- virtual void OnCreated() = 0; |
- virtual void OnPlaying() = 0; |
- virtual void OnPaused() = 0; |
- virtual void OnError() = 0; |
+ virtual void OnControllerCreated() = 0; |
+ virtual void OnControllerPlaying() = 0; |
+ virtual void OnControllerPaused() = 0; |
+ virtual void OnControllerError() = 0; |
protected: |
virtual ~EventHandler() {} |
@@ -108,14 +108,16 @@ class MEDIA_EXPORT AudioOutputController |
// Factory method for creating an AudioOutputController. |
// This also creates and opens an AudioOutputStream on the audio manager |
// thread, and if this is successful, the |event_handler| will receive an |
- // OnCreated() call from the same audio manager thread. |audio_manager| must |
- // outlive AudioOutputController. |
+ // OnControllerCreated() call from the same audio manager thread. |
+ // |audio_manager| must outlive AudioOutputController. |
// The |output_device_id| can be either empty (default device) or specify a |
// specific hardware device for audio output. |
static scoped_refptr<AudioOutputController> Create( |
- AudioManager* audio_manager, EventHandler* event_handler, |
- const AudioParameters& params, const std::string& output_device_id, |
- SyncReader* sync_reader); |
+ AudioManager* audio_manager, |
+ EventHandler* event_handler, |
+ const AudioParameters& params, |
+ const std::string& output_device_id, |
+ std::unique_ptr<SyncReader> sync_reader); |
// Indicates whether audio power level analysis will be performed. If false, |
// ReadCurrentPowerAndClip() can not be called. |
@@ -188,6 +190,9 @@ class MEDIA_EXPORT AudioOutputController |
// audio_power_monitor.h for usage. This may be called on any thread. |
std::pair<float, bool> ReadCurrentPowerAndClip(); |
+ // Accessor for enabling communication to the reader. |
+ SyncReader* reader() { return sync_reader_.get(); } |
+ |
protected: |
// Internal state of the source. |
enum State { |
@@ -207,10 +212,11 @@ class MEDIA_EXPORT AudioOutputController |
~AudioOutputController() override; |
private: |
- AudioOutputController(AudioManager* audio_manager, EventHandler* handler, |
+ AudioOutputController(AudioManager* audio_manager, |
+ EventHandler* handler, |
const AudioParameters& params, |
const std::string& output_device_id, |
- SyncReader* sync_reader); |
+ std::unique_ptr<SyncReader> sync_reader); |
// The following methods are executed on the audio manager thread. |
void DoCreate(bool is_for_device_change); |
@@ -263,7 +269,7 @@ class MEDIA_EXPORT AudioOutputController |
State state_; |
// SyncReader is used only in low latency mode for synchronous reading. |
- SyncReader* const sync_reader_; |
+ const std::unique_ptr<SyncReader> sync_reader_; |
// The message loop of audio manager thread that this object runs on. |
const scoped_refptr<base::SingleThreadTaskRunner> message_loop_; |