Home | History | Annotate | Download | only in browser
      1 // Copyright (c) 2012 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_PUBLIC_BROWSER_MEDIA_OBSERVER_H_
      6 #define CONTENT_PUBLIC_BROWSER_MEDIA_OBSERVER_H_
      7 
      8 #include "content/public/browser/media_request_state.h"
      9 #include "content/public/common/media_stream_request.h"
     10 
     11 namespace content {
     12 
     13 // An embedder may implement MediaObserver and return it from
     14 // ContentBrowserClient to receive callbacks as media events occur.
     15 class MediaObserver {
     16  public:
     17   // Called when a audio capture device is plugged in or unplugged.
     18   virtual void OnAudioCaptureDevicesChanged(
     19       const MediaStreamDevices& devices) = 0;
     20 
     21   // Called when a video capture device is plugged in or unplugged.
     22   virtual void OnVideoCaptureDevicesChanged(
     23       const MediaStreamDevices& devices) = 0;
     24 
     25   // Called when a media request changes state.
     26   virtual void OnMediaRequestStateChanged(
     27       int render_process_id,
     28       int render_view_id,
     29       int page_request_id,
     30       const MediaStreamDevice& device,
     31       MediaRequestState state) = 0;
     32 
     33   // Called when an audio stream transitions into a playing or paused state, and
     34   // also at regular intervals to report the current power level of the audio
     35   // signal in dBFS (decibels relative to full-scale) units.  |clipped| is true
     36   // if any part of the audio signal has been clipped since the last call.  See
     37   // media/audio/audio_power_monitor.h for more info.
     38   virtual void OnAudioStreamPlayingChanged(
     39       int render_process_id,
     40       int render_view_id,
     41       int stream_id,
     42       bool is_playing,
     43       float power_dbfs,
     44       bool clipped) = 0;
     45 
     46   // Called when the audio stream is being created.
     47   virtual void OnCreatingAudioStream(int render_process_id,
     48                                      int render_view_id) = 0;
     49 
     50  protected:
     51   virtual ~MediaObserver() {}
     52 };
     53 
     54 }  // namespace content
     55 
     56 #endif  // CONTENT_PUBLIC_BROWSER_MEDIA_OBSERVER_H_
     57