| Index: media/audio/simple_sources.h
|
| diff --git a/media/audio/simple_sources.h b/media/audio/simple_sources.h
|
| index f68c2bec4e9f7cfbb33b3fc4e7f840835fff7c10..5fbcded9ff39986df2d8e753cc12305b749ee223 100644
|
| --- a/media/audio/simple_sources.h
|
| +++ b/media/audio/simple_sources.h
|
| @@ -5,8 +5,7 @@
|
| #ifndef MEDIA_AUDIO_SIMPLE_SOURCES_H_
|
| #define MEDIA_AUDIO_SIMPLE_SOURCES_H_
|
|
|
| -#include <list>
|
| -
|
| +#include "base/synchronization/lock.h"
|
| #include "media/audio/audio_io.h"
|
| #include "media/base/seekable_buffer.h"
|
|
|
| @@ -16,73 +15,28 @@ namespace media {
|
| class MEDIA_EXPORT SineWaveAudioSource
|
| : public AudioOutputStream::AudioSourceCallback {
|
| public:
|
| - enum Format {
|
| - FORMAT_8BIT_LINEAR_PCM,
|
| - FORMAT_16BIT_LINEAR_PCM,
|
| - };
|
| // |channels| is the number of audio channels, |freq| is the frequency in
|
| // hertz and it has to be less than half of the sampling frequency
|
| // |sample_freq| or else you will get aliasing.
|
| - SineWaveAudioSource(Format format, int channels,
|
| - double freq, double sample_freq);
|
| + SineWaveAudioSource(int channels, double freq, double sample_freq);
|
| virtual ~SineWaveAudioSource() {}
|
|
|
| + // Return up to |cap| samples of data via OnMoreData(). Use Reset() to
|
| + // allow more data to be served.
|
| + void CapSamples(int cap);
|
| + void Reset();
|
| +
|
| // Implementation of AudioSourceCallback.
|
| - virtual uint32 OnMoreData(
|
| - uint8* dest, uint32 max_size, AudioBuffersState audio_buffers) OVERRIDE;
|
| + virtual int OnMoreData(AudioBus* audio_bus,
|
| + AudioBuffersState audio_buffers) OVERRIDE;
|
| virtual void OnError(AudioOutputStream* stream, int code) OVERRIDE;
|
|
|
| protected:
|
| - Format format_;
|
| int channels_;
|
| - double freq_;
|
| - double sample_freq_;
|
| + double f_;
|
| int time_state_;
|
| -};
|
| -
|
| -// Defines an interface for pushing audio output. In contrast, the interfaces
|
| -// defined by AudioSourceCallback are pull model only.
|
| -class MEDIA_EXPORT PushAudioOutput {
|
| - public:
|
| - virtual ~PushAudioOutput() {}
|
| -
|
| - // Write audio data to the audio device. It will be played eventually.
|
| - // Returns false on failure.
|
| - virtual bool Write(const void* data, uint32 len) = 0;
|
| -
|
| - // Returns the number of bytes that have been buffered but not yet given
|
| - // to the audio device.
|
| - virtual uint32 UnProcessedBytes() = 0;
|
| -};
|
| -
|
| -// A fairly basic class to connect a push model provider PushAudioOutput to
|
| -// a pull model provider AudioSourceCallback. Fundamentally it manages a series
|
| -// of audio buffers and is unaware of the actual audio format.
|
| -// Note that the PushSource is not thread safe and user need to provide locking.
|
| -class MEDIA_EXPORT PushSource
|
| - : public AudioOutputStream::AudioSourceCallback,
|
| - public PushAudioOutput {
|
| - public:
|
| - PushSource();
|
| - virtual ~PushSource();
|
| -
|
| - // Write one buffer.
|
| - virtual bool Write(const void* data, uint32 len) OVERRIDE;
|
| -
|
| - // Return the total number of bytes not given to the audio device yet.
|
| - virtual uint32 UnProcessedBytes() OVERRIDE;
|
| -
|
| - // Implementation of AudioSourceCallback.
|
| - virtual uint32 OnMoreData(uint8* dest,
|
| - uint32 max_size,
|
| - AudioBuffersState buffers_state) OVERRIDE;
|
| - virtual void OnError(AudioOutputStream* stream, int code) OVERRIDE;
|
| -
|
| - private:
|
| - // Free acquired resources.
|
| - void CleanUp();
|
| -
|
| - media::SeekableBuffer buffer_;
|
| + int cap_;
|
| + base::Lock time_lock_;
|
| };
|
|
|
| } // namespace media
|
|
|