Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / content / public / browser / media_observer.h
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 "base/callback_forward.h"
9 #include "content/public/browser/media_request_state.h"
10 #include "content/public/common/media_stream_request.h"
11
12 namespace content {
13
14 // An embedder may implement MediaObserver and return it from
15 // ContentBrowserClient to receive callbacks as media events occur.
16 class MediaObserver {
17  public:
18   // Called when a audio capture device is plugged in or unplugged.
19   virtual void OnAudioCaptureDevicesChanged() = 0;
20
21   // Called when a video capture device is plugged in or unplugged.
22   virtual void OnVideoCaptureDevicesChanged() = 0;
23
24   // Called when a media request changes state.
25   virtual void OnMediaRequestStateChanged(
26       int render_process_id,
27       int render_frame_id,
28       int page_request_id,
29       const GURL& security_origin,
30       MediaStreamType stream_type,
31       MediaRequestState state) = 0;
32
33   // Called when an audio stream is being created.
34   virtual void OnCreatingAudioStream(int render_process_id,
35                                      int render_frame_id) = 0;
36
37   // Called when an audio stream transitions into a playing state.
38   // |power_read_callback| is a thread-safe callback, provided for polling the
39   // current audio signal power level, and any copies/references to it must be
40   // destroyed when OnAudioStreamStopped() is called.
41   //
42   // The callback returns the current power level (in dBFS units) and the clip
43   // status (true if any part of the audio signal has clipped since the last
44   // callback run).  See media/audio/audio_power_monitor.h for more info.
45   typedef base::Callback<std::pair<float, bool>()> ReadPowerAndClipCallback;
46   virtual void OnAudioStreamPlaying(
47       int render_process_id,
48       int render_frame_id,
49       int stream_id,
50       const ReadPowerAndClipCallback& power_read_callback) = 0;
51
52   // Called when an audio stream has stopped.
53   virtual void OnAudioStreamStopped(
54       int render_process_id,
55       int render_frame_id,
56       int stream_id) = 0;
57
58  protected:
59   virtual ~MediaObserver() {}
60 };
61
62 }  // namespace content
63
64 #endif  // CONTENT_PUBLIC_BROWSER_MEDIA_OBSERVER_H_