blob: a3c6128a10415f52dc7b9bf330f133166acd4fba [file] [log] [blame]
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_MEDIA_WEBRTC_DESKTOP_CAPTURE_DEVICES_UTIL_H_
#define CHROME_BROWSER_MEDIA_WEBRTC_DESKTOP_CAPTURE_DEVICES_UTIL_H_
#include <memory>
#include "content/public/browser/desktop_media_id.h"
#include "content/public/browser/media_stream_request.h"
#include "content/public/browser/web_contents.h"
#include "third_party/blink/public/common/mediastream/media_stream_request.h"
#include "third_party/blink/public/mojom/mediastream/media_stream.mojom.h"
// Helper to get the list of media stream devices for desktop capture and store
// them in |out_devices|. Registers to display notification if
// |display_notification| is true. Returns an instance of MediaStreamUI to be
// passed to content layer via
// `on_media_stream_capture_indicator_ui_created_callback`.
void GetDevicesForDesktopCapture(
content::WebContents* web_contents,
const content::DesktopMediaID& media_id,
const blink::mojom::MediaStreamType video_type,
const blink::mojom::MediaStreamType audio_type,
const GURL& security_origin,
bool capture_audio,
bool disable_local_echo,
bool suppress_local_audio_playback,
bool restrict_own_audio,
bool display_notification,
const std::u16string& application_title,
bool captured_surface_control_active,
base::OnceCallback<void(blink::mojom::StreamDevices,
std::unique_ptr<content::MediaStreamUI>)>
on_media_stream_capture_indicator_ui_created_callback);
#endif // CHROME_BROWSER_MEDIA_WEBRTC_DESKTOP_CAPTURE_DEVICES_UTIL_H_