46 lines
		
	
	
	
		
			1.4 KiB
			
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
	
		
			1.4 KiB
			
		
	
	
	
		
			C++
		
	
	
	
	
	
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
 | 
						|
// Use of this source code is governed by a BSD-style license that can be
 | 
						|
// found in the LICENSE-CHROMIUM file.
 | 
						|
 | 
						|
#ifndef SHELL_BROWSER_MEDIA_MEDIA_STREAM_DEVICES_CONTROLLER_H_
 | 
						|
#define SHELL_BROWSER_MEDIA_MEDIA_STREAM_DEVICES_CONTROLLER_H_
 | 
						|
 | 
						|
#include "content/public/browser/web_contents_delegate.h"
 | 
						|
#include "third_party/blink/public/common/mediastream/media_stream_request.h"
 | 
						|
 | 
						|
namespace electron {
 | 
						|
 | 
						|
class MediaStreamDevicesController {
 | 
						|
 public:
 | 
						|
  MediaStreamDevicesController(const content::MediaStreamRequest& request,
 | 
						|
                               content::MediaResponseCallback callback);
 | 
						|
 | 
						|
  virtual ~MediaStreamDevicesController();
 | 
						|
 | 
						|
  // Accept or deny the request based on the default policy.
 | 
						|
  bool TakeAction();
 | 
						|
 | 
						|
  // Explicitly accept or deny the request.
 | 
						|
  void Accept();
 | 
						|
  void Deny(blink::mojom::MediaStreamRequestResult result);
 | 
						|
 | 
						|
 private:
 | 
						|
  // Handle the request of desktop or tab screen cast.
 | 
						|
  void HandleUserMediaRequest();
 | 
						|
 | 
						|
  // The original request for access to devices.
 | 
						|
  const content::MediaStreamRequest request_;
 | 
						|
 | 
						|
  // The callback that needs to be Run to notify WebRTC of whether access to
 | 
						|
  // audio/video devices was granted or not.
 | 
						|
  content::MediaResponseCallback callback_;
 | 
						|
 | 
						|
  bool microphone_requested_;
 | 
						|
  bool webcam_requested_;
 | 
						|
 | 
						|
  DISALLOW_COPY_AND_ASSIGN(MediaStreamDevicesController);
 | 
						|
};
 | 
						|
 | 
						|
}  // namespace electron
 | 
						|
 | 
						|
#endif  // SHELL_BROWSER_MEDIA_MEDIA_STREAM_DEVICES_CONTROLLER_H_
 |