| Index: media/filters/audio_renderer_sink.h
|
| ===================================================================
|
| --- media/filters/audio_renderer_sink.h (revision 0)
|
| +++ media/filters/audio_renderer_sink.h (revision 0)
|
| @@ -0,0 +1,48 @@
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef MEDIA_FILTERS_AUDIO_RENDERER_SINK_H_
|
| +#define MEDIA_FILTERS_AUDIO_RENDERER_SINK_H_
|
| +
|
| +#include "base/basictypes.h"
|
| +#include "base/memory/ref_counted.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| +
|
| +namespace media {
|
| +
|
| +// AudioRendererSink is an abstract base class representing the end-point for
|
| +// rendered audio in the renderer process. An implementation is expected to
|
| +// periodically call Render() on a callback object. A typical implementation
|
| +// will talk with the browser process to get a rendered audio stream to the
|
| +// audio hardware.
|
| +
|
| +class AudioRendererSink
|
| + : public base::RefCountedThreadSafe<media::AudioRendererSink> {
|
| + public:
|
| + class RenderCallback {
|
| + public:
|
| + virtual void Render(const std::vector<float*>& audio_data,
|
| + size_t number_of_frames,
|
| + size_t audio_delay_milliseconds) = 0;
|
| +
|
| + virtual void SetAudioRendererSink(media::AudioRendererSink* audio_sink) { }
|
| +
|
| + protected:
|
| + virtual ~RenderCallback() { }
|
| + };
|
| +
|
| + // Starts audio playback. Returns |true| on success.
|
| + virtual bool Start() = 0;
|
| +
|
| + // Stops audio playback. Returns |true| on success.
|
| + virtual bool Stop() = 0;
|
| +
|
| + // Sets the playback volume, with range [0.0, 1.0] inclusive.
|
| + // Returns |true| on success.
|
| + virtual bool SetVolume(double volume) = 0;
|
| +};
|
| +
|
| +} // namespace media
|
| +
|
| +#endif // MEDIA_FILTERS_AUDIO_RENDERER_SINK_H_
|
|
|