16b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org/*
26b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org *  Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
36b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org *
46b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org *  Use of this source code is governed by a BSD-style license
56b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org *  that can be found in the LICENSE file in the root of the source
66b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org *  tree. An additional intellectual property rights grant can be found
76b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org *  in the file PATENTS.  All contributing project authors may
86b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org *  be found in the AUTHORS file in the root of the source tree.
96b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org */
106b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org
116b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org#ifndef WEBRTC_MODULES_DESKTOP_CAPTURE_WIN_SCREEN_CAPTURE_UTILS_H_
126b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org#define WEBRTC_MODULES_DESKTOP_CAPTURE_WIN_SCREEN_CAPTURE_UTILS_H_
136b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org
146b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org#include "webrtc/modules/desktop_capture/screen_capturer.h"
156b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org
166b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.orgnamespace webrtc {
176b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org
186b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org// Output the list of active screens into |screens|. Returns true if succeeded,
196b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org// or false if it fails to enumerate the display devices.
206b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.orgbool GetScreenList(ScreenCapturer::ScreenList* screens);
216b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org
226b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org// Returns true if |screen| is a valid screen. The screen device key is
236b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org// returned through |device_key| if the screen is valid. The device key can be
246b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org// used in GetScreenRect to verify the screen matches the previously obtained
256b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org// id.
266b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.orgbool IsScreenValid(ScreenId screen, std::wstring* device_key);
276b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org
286b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org// Get the rect of the screen identified by |screen|, relative to the primary
296b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org// display's top-left. If the screen device key does not match |device_key|, or
306b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org// the screen does not exist, or any error happens, an empty rect is returned.
316b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.orgDesktopRect GetScreenRect(ScreenId screen, const std::wstring& device_key);
326b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org
336b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org}  // namespace webrtc
346b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org
356b6e3eacfd0ba5d01fb391e72ff2bbf630f231e2jiayl@webrtc.org#endif  // WEBRTC_MODULES_DESKTOP_CAPTURE_WIN_SCREEN_CAPTURE_UTILS_H_
36