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