44 */
55
66// standard includes
7+ #include < memory>
78#include < utility>
89
910// platform includes
1718using namespace std ::literals;
1819
1920namespace platf {
20- namespace {
21+ /* *
22+ * @brief Global libvirtualhid devices shared by clients.
23+ */
24+ struct input_raw_t {
25+ virtualhid::input_context_t virtualhid; // /< libvirtualhid input context.
26+ };
2127
22- /* *
23- * @brief Global libvirtualhid devices shared by clients.
24- */
25- struct input_raw_t {
26- virtualhid::input_context_t virtualhid; // /< libvirtualhid input context.
27- };
28+ namespace {
2829
2930 /* *
3031 * @brief Per-client libvirtualhid devices.
@@ -36,7 +37,7 @@ namespace platf {
3637 * @param input Platform input backend that receives the event.
3738 */
3839 explicit client_input_raw_t (input_t &input):
39- virtualhid {(( input_raw_t *) input. get ()) ->virtualhid } {}
40+ virtualhid {input->virtualhid } {}
4041
4142 virtualhid::client_context_t virtualhid; // /< libvirtualhid client context.
4243 };
@@ -51,77 +52,16 @@ namespace platf {
5152 return std::make_unique<client_input_raw_t >(input);
5253 }
5354
54- void freeInput (void *p) {
55- auto *input = (input_raw_t *) p;
56- delete input;
57- }
58-
59- void move_mouse (input_t &input, int deltaX, int deltaY) {
60- virtualhid::move_mouse (((input_raw_t *) input.get ())->virtualhid , deltaX, deltaY);
61- }
62-
63- void abs_mouse (input_t &input, const touch_port_t &touch_port, float x, float y) {
64- virtualhid::abs_mouse (((input_raw_t *) input.get ())->virtualhid , touch_port, x, y);
65- }
66-
67- void button_mouse (input_t &input, int button, bool release) {
68- virtualhid::button_mouse (((input_raw_t *) input.get ())->virtualhid , button, release);
69- }
70-
71- void scroll (input_t &input, int high_res_distance) {
72- virtualhid::scroll (((input_raw_t *) input.get ())->virtualhid , high_res_distance);
73- }
74-
75- void hscroll (input_t &input, int high_res_distance) {
76- virtualhid::hscroll (((input_raw_t *) input.get ())->virtualhid , high_res_distance);
77- }
78-
79- /* *
80- * @brief Press or release a virtual keyboard key.
81- *
82- * @param input Platform input backend that receives the event.
83- * @param modcode Modifier key code to update.
84- * @param release Whether the key or button event is a release.
85- * @param flags Bit flags that modify the requested operation; ignored by this backend.
86- */
87- void keyboard_update (input_t &input, std::uint16_t modcode, bool release, std::uint8_t flags) {
88- virtualhid::keyboard_update (((input_raw_t *) input.get ())->virtualhid , modcode, release, flags);
89- }
90-
91- void unicode (input_t &input, char *utf8, int size) {
92- virtualhid::unicode (((input_raw_t *) input.get ())->virtualhid , utf8, size);
93- }
94-
95- void touch_update (client_input_t *input, const touch_port_t &touch_port, const touch_input_t &touch) {
96- virtualhid::touch_update (((client_input_raw_t *) input)->virtualhid , touch_port, touch);
97- }
98-
99- void pen_update (client_input_t *input, const touch_port_t &touch_port, const pen_input_t &pen) {
100- virtualhid::pen_update (((client_input_raw_t *) input)->virtualhid , touch_port, pen);
101- }
102-
103- int alloc_gamepad (input_t &input, const gamepad_id_t &id, const gamepad_arrival_t &metadata, feedback_queue_t feedback_queue) {
104- return virtualhid::alloc_gamepad (((input_raw_t *) input.get ())->virtualhid , id, metadata, std::move (feedback_queue));
105- }
106-
107- void free_gamepad (input_t &input, int nr) {
108- virtualhid::free_gamepad (((input_raw_t *) input.get ())->virtualhid , nr);
109- }
110-
111- void gamepad_update (input_t &input, int nr, const gamepad_state_t &gamepad_state) {
112- virtualhid::gamepad_update (((input_raw_t *) input.get ())->virtualhid , nr, gamepad_state);
113- }
114-
115- void gamepad_touch (input_t &input, const gamepad_touch_t &touch) {
116- virtualhid::gamepad_touch (((input_raw_t *) input.get ())->virtualhid , touch);
55+ void freeInput (input_raw_t *input) {
56+ std::default_delete<input_raw_t > {}(input);
11757 }
11858
119- void gamepad_motion (input_t &input, const gamepad_motion_t &motion ) {
120- virtualhid::gamepad_motion ((( input_raw_t *) input. get ()) ->virtualhid , motion) ;
59+ virtualhid:: input_context_t & virtualhid::get_input_context (input_t &input) {
60+ return input->virtualhid ;
12161 }
12262
123- void gamepad_battery ( input_t & input, const gamepad_battery_t &battery ) {
124- virtualhid::gamepad_battery ((( input_raw_t *) input. get ()) ->virtualhid , battery) ;
63+ virtualhid:: client_context_t & virtualhid::get_client_context ( client_input_t * input) {
64+ return static_cast < client_input_raw_t *>(input) ->virtualhid ;
12565 }
12666
12767 platform_caps::caps_t get_capabilities () {
@@ -131,8 +71,7 @@ namespace platf {
13171 return caps;
13272 }
13373
134- const auto &capabilities = runtime->capabilities ();
135- if (config::input.native_pen_touch && (capabilities.supports_touchscreen || capabilities.supports_pen_tablet )) {
74+ if (const auto &capabilities = runtime->capabilities (); config::input.native_pen_touch && (capabilities.supports_touchscreen || capabilities.supports_pen_tablet )) {
13675 caps |= platform_caps::pen_touch;
13776 }
13877 if (virtualhid::configured_gamepad_supports_touchpad ()) {
0 commit comments