summaryrefslogtreecommitdiffstats
path: root/media/audio/audio_output.h
diff options
context:
space:
mode:
Diffstat (limited to 'media/audio/audio_output.h')
-rw-r--r--media/audio/audio_output.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/media/audio/audio_output.h b/media/audio/audio_output.h
index 0cfca08..289b2af 100644
--- a/media/audio/audio_output.h
+++ b/media/audio/audio_output.h
@@ -42,8 +42,11 @@
class AudioOutputStream {
public:
enum State {
- STATE_STARTED = 0, // The output stream is started.
+ STATE_CREATED = 0, // The output stream is created.
+ STATE_STARTED, // The output stream is started.
STATE_PAUSED, // The output stream is paused.
+ STATE_STOPPED, // The output stream is stopped.
+ STATE_CLOSED, // The output stream is closed.
STATE_ERROR, // The output stream is in error state.
};
@@ -82,6 +85,10 @@ class AudioOutputStream {
virtual bool Open(size_t packet_size) = 0;
// Starts playing audio and generating AudioSourceCallback::OnMoreData().
+ // Since implementor of AudioOutputStream may have internal buffers, right
+ // after calling this method initial buffers are fetched. User of this
+ // object should prepare |AudioOutputStream::GetNumBuffers()| before calling
+ // AudioOutputStream::Start().
virtual void Start(AudioSourceCallback* callback) = 0;
// Stops playing audio. Effect might no be instantaneous as the hardware
@@ -100,6 +107,11 @@ class AudioOutputStream {
// After calling this method, the object should not be used anymore.
virtual void Close() = 0;
+ // Gets the number of internal buffers used in this output stream. This
+ // method is useful for providing information about how user of this object
+ // should prepare initial buffers before calling AudioOutputStream::Start().
+ virtual size_t GetNumBuffers() = 0;
+
protected:
virtual ~AudioOutputStream() {}
};