19 #ifndef MIR_INPUT_EVDEV_PLATFORM_H_
20 #define MIR_INPUT_EVDEV_PLATFORM_H_
29 struct libinput_device_group;
41 class MultiplexingDispatchable;
46 class InputDeviceRegistry;
50 struct MonitorDispatchable;
56 Platform(std::shared_ptr<InputDeviceRegistry>
const& registry,
57 std::shared_ptr<InputReport>
const& report,
58 std::unique_ptr<udev::Context>&& udev_context,
59 std::unique_ptr<udev::Monitor>&& monitor);
60 std::shared_ptr<mir::dispatch::Dispatchable>
dispatchable()
override;
61 void start()
override;
65 void scan_for_devices();
66 void process_changes();
70 void process_input_events();
72 std::shared_ptr<LibInputDevice> create_device(
udev::Device const& dev)
const;
74 std::shared_ptr<InputReport>
const report;
75 std::shared_ptr<udev::Context>
const udev_context;
76 std::unique_ptr<udev::Monitor>
const monitor;
77 std::shared_ptr<InputDeviceRegistry>
const input_device_registry;
78 std::shared_ptr<dispatch::MultiplexingDispatchable>
const platform_dispatchable;
79 std::shared_ptr<dispatch::ReadableFd>
const monitor_dispatchable;
80 std::shared_ptr<::libinput>
const lib;
81 std::shared_ptr<dispatch::ReadableFd>
const libinput_dispatchable;
83 std::vector<std::shared_ptr<LibInputDevice>> devices;
84 auto find_device(
char const* devnode) -> decltype(devices)::iterator;
85 auto find_device(libinput_device *) -> decltype(devices)::iterator;
86 auto find_device(libinput_device_group
const* group) -> decltype(devices)::iterator;
All things Mir.
Definition: atomic_callback.h:25