X11ScreenCaptureImageProvider.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <opencv2/opencv.hpp>
4 
6 
8 
9 // Include X last.
10 #include <X11/Xlib.h>
11 #include <X11/Xutil.h>
12 
13 namespace visionx
14 {
15 
17  {
18  public:
20 
21  // ManagedIceObject interface
22  protected:
23  std::string getDefaultName() const override;
24  static std::string GetDefaultName();
25 
26  // CapturingImageProviderInterface interface
27  public:
28  // CapturingImageProvider interface
29  protected:
30  void onInitCapturingImageProvider() override;
31  void onExitCapturingImageProvider() override;
32  bool capture(void** ppImageBuffers) override;
33 
34  // CapturingImageProvider interface
35  protected:
36  void onStartCapture(float framesPerSecond) override;
37  void onStopCapture() override;
38 
39  // PropertyUser interface
40  public:
42 
43  std::vector<imrec::ChannelPreferences>
44  getImageRecordingChannelPreferences(const Ice::Current&) override;
45 
46  private:
47  static const std::string defaultName;
48 
49  struct Properties
50  {
51  int screenNumber = 0;
52  int x = 0;
53  int y = 0;
54  int width = 1920;
55  int height = 1080;
56  int fps = 30;
57  } properties;
58 
59  armarx::Clock clock;
60 
61  Window window;
62  Display* display;
63  XImage* ximg = nullptr;
64  cv::Mat ximg_cv;
65  cv::Mat out;
66  };
67 
68 } // namespace visionx
visionx::X11ScreenCaptureImageProvider::onInitCapturingImageProvider
void onInitCapturingImageProvider() override
This is called when the Component::onInitComponent() is called.
Definition: X11ScreenCaptureImageProvider.cpp:30
visionx::Display
Definition: Display.h:36
visionx::X11ScreenCaptureImageProvider
Definition: X11ScreenCaptureImageProvider.h:16
visionx
ArmarX headers.
Definition: OpenPoseStressTest.h:38
visionx::X11ScreenCaptureImageProvider::onStartCapture
void onStartCapture(float framesPerSecond) override
This is called when the image provider capturing has been started.
Definition: X11ScreenCaptureImageProvider.cpp:98
visionx::X11ScreenCaptureImageProvider::getImageRecordingChannelPreferences
std::vector< imrec::ChannelPreferences > getImageRecordingChannelPreferences(const Ice::Current &) override
Definition: X11ScreenCaptureImageProvider.cpp:130
armarx::core::time::Clock
Clock to get date/time from a specific clock type or wait for certain durations or until certain date...
Definition: Clock.h:25
Clock.h
visionx::X11ScreenCaptureImageProvider::onExitCapturingImageProvider
void onExitCapturingImageProvider() override
This is called when the Component::onExitComponent() setup is called.
Definition: X11ScreenCaptureImageProvider.cpp:55
visionx::X11ScreenCaptureImageProvider::getDefaultName
std::string getDefaultName() const override
Retrieve default name of component.
Definition: X11ScreenCaptureImageProvider.cpp:18
visionx::CapturingImageProvider::capture
virtual void capture()
Definition: CapturingImageProvider.cpp:109
visionx::CapturingImageProvider
The CapturingImageProvider provides a callback function to trigger the capturing of images with diffe...
Definition: CapturingImageProvider.h:52
visionx::X11ScreenCaptureImageProvider::onStopCapture
void onStopCapture() override
This is called when the image provider capturing has been stopped.
Definition: X11ScreenCaptureImageProvider.cpp:104
visionx::X11ScreenCaptureImageProvider::X11ScreenCaptureImageProvider
X11ScreenCaptureImageProvider()
Definition: X11ScreenCaptureImageProvider.cpp:12
visionx::X11ScreenCaptureImageProvider::createPropertyDefinitions
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
Definition: X11ScreenCaptureImageProvider.cpp:110
CapturingImageProvider.h
IceUtil::Handle< class PropertyDefinitionContainer >
visionx::X11ScreenCaptureImageProvider::GetDefaultName
static std::string GetDefaultName()
Definition: X11ScreenCaptureImageProvider.cpp:24