- add sources.
[platform/framework/web/crosswalk.git] / src / content / renderer / media / media_stream_audio_renderer.h
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CONTENT_RENDERER_MEDIA_MEDIA_STREAM_AUDIO_RENDERER_H_
6 #define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_AUDIO_RENDERER_H_
7
8 #include "base/memory/ref_counted.h"
9 #include "base/time/time.h"
10
11 namespace content {
12
13 class MediaStreamAudioRenderer
14     : public base::RefCountedThreadSafe<MediaStreamAudioRenderer> {
15  public:
16   // Starts rendering audio.
17   virtual void Start() = 0;
18
19   // Stops rendering audio.
20   virtual void Stop() = 0;
21
22   // Resumes rendering audio after being paused.
23   virtual void Play() = 0;
24
25   // Temporarily suspends rendering audio. The audio stream might still be
26   // active but new audio data is not provided to the consumer.
27   virtual void Pause() = 0;
28
29   // Sets the output volume.
30   virtual void SetVolume(float volume) = 0;
31
32   // Time stamp that reflects the current render time. Should not be updated
33   // when paused.
34   virtual base::TimeDelta GetCurrentRenderTime() const = 0;
35
36   // Returns true if the implementation is a local renderer and false
37   // otherwise.
38   virtual bool IsLocalRenderer() const = 0;
39
40  protected:
41   friend class base::RefCountedThreadSafe<MediaStreamAudioRenderer>;
42
43   MediaStreamAudioRenderer();
44   virtual ~MediaStreamAudioRenderer();
45
46  private:
47   DISALLOW_COPY_AND_ASSIGN(MediaStreamAudioRenderer);
48 };
49
50 }  // namespace content
51
52 #endif  // CONTENT_RENDERER_MEDIA_MEDIA_STREAM_AUDIO_RENDERER_H_