Home | History | Annotate | Download | only in media
      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