• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_
53