• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *  Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
3  *
4  *  Use of this source code is governed by a BSD-style license
5  *  that can be found in the LICENSE file in the root of the source
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10 
11 #ifndef WEBRTC_MODULES_DESKTOP_CAPTURE_WINDOW_CAPTURER_H_
12 #define WEBRTC_MODULES_DESKTOP_CAPTURE_WINDOW_CAPTURER_H_
13 
14 #include <string>
15 #include <vector>
16 
17 #include "webrtc/base/constructormagic.h"
18 #include "webrtc/modules/desktop_capture/desktop_capture_types.h"
19 #include "webrtc/modules/desktop_capture/desktop_capturer.h"
20 #include "webrtc/typedefs.h"
21 
22 namespace webrtc {
23 
24 class DesktopCaptureOptions;
25 
26 class WindowCapturer : public DesktopCapturer {
27  public:
28   typedef webrtc::WindowId WindowId;
29 
30   struct Window {
31     WindowId id;
32 
33     // Title of the window in UTF-8 encoding.
34     std::string title;
35   };
36 
37   typedef std::vector<Window> WindowList;
38 
39   static WindowCapturer* Create(const DesktopCaptureOptions& options);
40 
41   // TODO(sergeyu): Remove this method. crbug.com/172183
42   static WindowCapturer* Create();
43 
~WindowCapturer()44   virtual ~WindowCapturer() {}
45 
46   // Get list of windows. Returns false in case of a failure.
47   virtual bool GetWindowList(WindowList* windows) = 0;
48 
49   // Select window to be captured. Returns false in case of a failure (e.g. if
50   // there is no window with the specified id).
51   virtual bool SelectWindow(WindowId id) = 0;
52 
53   // Bring the selected window to the front. Returns false in case of a
54   // failure or no window selected.
55   virtual bool BringSelectedWindowToFront() = 0;
56 };
57 
58 }  // namespace webrtc
59 
60 #endif  // WEBRTC_MODULES_DESKTOP_CAPTURE_WINDOW_CAPTURER_H_
61 
62