Home | History | Annotate | Download | only in tabs
      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 #include "chrome/browser/ui/tabs/tab_utils.h"
      6 
      7 #include "chrome/browser/media/audio_stream_indicator.h"
      8 #include "chrome/browser/media/media_capture_devices_dispatcher.h"
      9 #include "chrome/browser/media/media_stream_capture_indicator.h"
     10 #include "content/public/browser/render_process_host.h"
     11 #include "content/public/browser/render_view_host.h"
     12 #include "content/public/browser/web_contents.h"
     13 
     14 namespace chrome {
     15 
     16 bool ShouldShowProjectingIndicator(content::WebContents* contents) {
     17   scoped_refptr<MediaStreamCaptureIndicator> indicator =
     18       MediaCaptureDevicesDispatcher::GetInstance()->
     19           GetMediaStreamCaptureIndicator();
     20   return indicator->IsBeingMirrored(contents);
     21 }
     22 
     23 bool ShouldShowRecordingIndicator(content::WebContents* contents) {
     24   scoped_refptr<MediaStreamCaptureIndicator> indicator =
     25       MediaCaptureDevicesDispatcher::GetInstance()->
     26           GetMediaStreamCaptureIndicator();
     27   // The projecting indicator takes precedence over the recording indicator, but
     28   // if we are projecting and we don't handle the projecting case we want to
     29   // still show the recording indicator.
     30   return indicator->IsCapturingUserMedia(contents) ||
     31          indicator->IsBeingMirrored(contents);
     32 }
     33 
     34 bool IsPlayingAudio(content::WebContents* contents) {
     35   AudioStreamIndicator* audio_indicator =
     36       MediaCaptureDevicesDispatcher::GetInstance()->GetAudioStreamIndicator()
     37           .get();
     38   return audio_indicator->IsPlayingAudio(contents);
     39 }
     40 
     41 bool IsCapturingVideo(content::WebContents* contents) {
     42   scoped_refptr<MediaStreamCaptureIndicator> indicator =
     43       MediaCaptureDevicesDispatcher::GetInstance()->
     44           GetMediaStreamCaptureIndicator();
     45   return indicator->IsCapturingVideo(contents);
     46 }
     47 
     48 bool IsCapturingAudio(content::WebContents* contents) {
     49   scoped_refptr<MediaStreamCaptureIndicator> indicator =
     50       MediaCaptureDevicesDispatcher::GetInstance()->
     51           GetMediaStreamCaptureIndicator();
     52   return indicator->IsCapturingAudio(contents);
     53 }
     54 
     55 }  // namespace chrome
     56