| Index: media/audio/audio_source_diverter.h
|
| diff --git a/media/audio/audio_source_diverter.h b/media/audio/audio_source_diverter.h
|
| index 787ddec7867dfd693ce04623ca1bb23d4ca2c949..6ac55a65f25b5c1bd3c822e57d43b26a17c65dd4 100644
|
| --- a/media/audio/audio_source_diverter.h
|
| +++ b/media/audio/audio_source_diverter.h
|
| @@ -5,6 +5,8 @@
|
| #ifndef MEDIA_AUDIO_AUDIO_SOURCE_DIVERTER_H_
|
| #define MEDIA_AUDIO_AUDIO_SOURCE_DIVERTER_H_
|
|
|
| +#include "base/time/time.h"
|
| +#include "media/base/audio_bus.h"
|
| #include "media/base/media_export.h"
|
|
|
| // Audio sources may optionally implement AudioSourceDiverter to temporarily
|
| @@ -17,6 +19,17 @@ namespace media {
|
| class AudioOutputStream;
|
| class AudioParameters;
|
|
|
| +class MEDIA_EXPORT AudioPushSink {
|
| + public:
|
| + // Call this function to push audio data into the sink.
|
| + virtual void OnData(std::unique_ptr<AudioBus> source,
|
| + base::TimeTicks reference_time) = 0;
|
| +
|
| + // Close the stream.
|
| + // After calling this method, the object should not be used anymore.
|
| + virtual void Close() = 0;
|
| +};
|
| +
|
| class MEDIA_EXPORT AudioSourceDiverter {
|
| public:
|
| // Returns the audio parameters of the divertable audio data.
|
| @@ -31,7 +44,15 @@ public:
|
| // responsible for making sure the stream is closed, perhaps asynchronously.
|
| virtual void StopDiverting() = 0;
|
|
|
| -protected:
|
| + // Start duplicating the current audio stream, and push the copied data into
|
| + // |sink|.
|
| + virtual void StartDuplicating(AudioPushSink* sink) = 0;
|
| +
|
| + // Stop duplicating for the specified |sink|. The AudioSourceDiverter is
|
| + // responsible for making sure the sink is closed, perhaps asynchronously.
|
| + virtual void StopDuplicating(AudioPushSink* sink) = 0;
|
| +
|
| + protected:
|
| virtual ~AudioSourceDiverter() {}
|
| };
|
|
|
|
|