• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:
~MediaObserver()51   virtual ~MediaObserver() {}
52 };
53 
54 }  // namespace content
55 
56 #endif  // CONTENT_PUBLIC_BROWSER_MEDIA_OBSERVER_H_
57