| 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
 | 
| 
 |