Index: media/audio/virtual_audio_output_stream.h |
diff --git a/media/audio/virtual_audio_output_stream.h b/media/audio/virtual_audio_output_stream.h |
index 0c2969da3cf6ad6db808a1846c9c90ef87db8dee..6f9c14d74a0118db0cf7f958a2da63f0e25a4dce 100644 |
--- a/media/audio/virtual_audio_output_stream.h |
+++ b/media/audio/virtual_audio_output_stream.h |
@@ -5,11 +5,15 @@ |
#ifndef MEDIA_AUDIO_VIRTUAL_AUDIO_OUTPUT_STREAM_H_ |
#define MEDIA_AUDIO_VIRTUAL_AUDIO_OUTPUT_STREAM_H_ |
-#include "base/message_loop_proxy.h" |
+#include "base/callback.h" |
#include "media/audio/audio_io.h" |
#include "media/audio/audio_parameters.h" |
#include "media/base/audio_converter.h" |
+namespace base { |
+class MessageLoopProxy; |
+} |
+ |
namespace media { |
class AudioManagerBase; |
@@ -24,11 +28,16 @@ class MEDIA_EXPORT VirtualAudioOutputStream |
: public AudioOutputStream, |
public AudioConverter::InputCallback { |
public: |
- static VirtualAudioOutputStream* MakeStream( |
- AudioManagerBase* manager, |
- const AudioParameters& params, |
- base::MessageLoopProxy* message_loop, |
- VirtualAudioInputStream* target); |
+ // Callback invoked just after VirtualAudioOutputStream is closed. |
+ typedef base::Callback<void(VirtualAudioOutputStream* vaos)> |
+ AfterCloseCallback; |
+ |
+ // Construct an audio loopback pathway to the given |target| (not owned). |
+ // |target| must outlive this instance. |
+ VirtualAudioOutputStream(const AudioParameters& params, |
+ base::MessageLoopProxy* message_loop, |
+ VirtualAudioInputStream* target, |
+ const AfterCloseCallback& after_close_cb); |
virtual ~VirtualAudioOutputStream(); |
@@ -40,28 +49,22 @@ class MEDIA_EXPORT VirtualAudioOutputStream |
virtual void GetVolume(double* volume) OVERRIDE; |
virtual void Close() OVERRIDE; |
- protected: |
- VirtualAudioOutputStream(AudioManagerBase* manager, |
- const AudioParameters& params, |
- base::MessageLoopProxy* message_loop, |
- VirtualAudioInputStream* target); |
- |
private: |
// AudioConverter::InputCallback: |
virtual double ProvideInput(AudioBus* audio_bus, |
base::TimeDelta buffer_delay) OVERRIDE; |
- AudioManagerBase* audio_manager_; |
- base::MessageLoopProxy* message_loop_; |
- AudioSourceCallback* callback_; |
- AudioParameters params_; |
- |
+ const AudioParameters params_; |
+ base::MessageLoopProxy* const message_loop_; |
// Pointer to the VirtualAudioInputStream to attach to when Start() is called. |
// This pointer should always be valid because VirtualAudioInputStream should |
// outlive this class. |
- VirtualAudioInputStream* target_input_stream_; |
+ VirtualAudioInputStream* const target_input_stream_; |
+ |
+ AfterCloseCallback after_close_cb_; |
+ |
+ AudioSourceCallback* callback_; |
double volume_; |
- bool attached_; |
DISALLOW_COPY_AND_ASSIGN(VirtualAudioOutputStream); |
}; |