19 #ifndef MIR_INPUT_EVDEV_LIBINPUT_DEVICE_H_ 20 #define MIR_INPUT_EVDEV_LIBINPUT_DEVICE_H_ 33 struct libinput_event;
34 struct libinput_event_keyboard;
35 struct libinput_event_touch;
36 struct libinput_event_pointer;
37 struct libinput_device_group;
63 ::libinput_device*
device()
const;
64 ::libinput_device_group*
group();
69 EventUPtr convert_motion_event(libinput_event_pointer* pointer);
70 EventUPtr convert_absolute_motion_event(libinput_event_pointer* pointer);
71 EventUPtr convert_axis_event(libinput_event_pointer* pointer);
72 EventUPtr convert_touch_frame(libinput_event_touch* touch);
73 void handle_touch_down(libinput_event_touch* touch);
74 void handle_touch_up(libinput_event_touch* touch);
75 void handle_touch_motion(libinput_event_touch* touch);
76 void update_device_info();
78 std::shared_ptr<InputReport> report;
79 std::shared_ptr<::libinput> lib;
80 std::vector<LibInputDevicePtr> devices;
81 std::shared_ptr<dispatch::Dispatchable> dispatchable_fd;
89 double vertical_scroll_scale{1.0};
90 double horizontal_scroll_scale{1.0};
96 float x{0}, y{0}, major{0}, minor{0}, pressure{0};
98 std::map<MirTouchId,ContactData> last_seen_properties;
100 void update_contact_data(ContactData &data,
MirTouchAction action, libinput_event_touch* touch);
All things Mir.
Definition: atomic_callback.h:25
std::unique_ptr< MirEvent, void(*)(MirEvent *)> EventUPtr
Definition: event_builders.h:35
Definition: optional_value.h:28