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