sergeyu@chromium.org 2767b53f66 Add MouseCursorCapturer interface with implementation for X11.
The new interface will be used to capture cursor shape and position and
blend it into the image captured with desktop capturers.

BUG=crbug.com/173265
R=wez@chromium.org
TBR=andrew@webrtc.org (modules.gyp)

Review URL: https://webrtc-codereview.appspot.com/2386005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4967 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-16 02:42:38 +00:00

58 lines
1.6 KiB
C++

/*
* Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef WEBRTC_MODULES_DESKTOP_CAPTURE_WINDOW_CAPTURER_H_
#define WEBRTC_MODULES_DESKTOP_CAPTURE_WINDOW_CAPTURER_H_
#include <vector>
#include <string>
#include "webrtc/modules/desktop_capture/desktop_capture_types.h"
#include "webrtc/modules/desktop_capture/desktop_capturer.h"
#include "webrtc/system_wrappers/interface/constructor_magic.h"
#include "webrtc/typedefs.h"
namespace webrtc {
class DesktopCaptureOptions;
class WindowCapturer : public DesktopCapturer {
public:
typedef webrtc::WindowId WindowId;
struct Window {
WindowId id;
// Title of the window in UTF-8 encoding.
std::string title;
};
typedef std::vector<Window> WindowList;
static WindowCapturer* Create(const DesktopCaptureOptions& options);
// TODO(sergeyu): Remove this method. crbug.com/172183
static WindowCapturer* Create();
virtual ~WindowCapturer() {}
// Get list of windows. Returns false in case of a failure.
virtual bool GetWindowList(WindowList* windows) = 0;
// Select window to be captured. Returns false in case of a failure (e.g. if
// there is no window with the specified id).
virtual bool SelectWindow(WindowId id) = 0;
};
} // namespace webrtc
#endif // WEBRTC_MODULES_DESKTOP_CAPTURE_WINDOW_CAPTURER_H_