22 static constexpr size_t MaxSlots = 64;
23 static constexpr uint32_t AbsoluteMaximum = 0x7fff;
25 enum DeviceType {
Keyboard, Mouse, Tablet };
32 static_assert(
sizeof(
Event) == 8,
"unexpected virtio input event size");
36 physical_uintptr_t physical;
39 bool supportsEvent(uint8_t type, uint16_t code,
bool& supported);
40 bool readAxis(uint8_t axis, int32_t& minimum, int32_t& maximum);
41 bool postReceive(
Slot& slot);
42 void handle(
const Event& event);
44 uint32_t scaleAxis(int32_t value,
unsigned axis)
const;
52 Slot m_Slots[MaxSlots];
56 int32_t m_AbsMinimum[2];
57 int32_t m_AbsMaximum[2];
58 uint32_t m_AbsPosition[2];
59 ssize_t m_Relative[3];
62 bool m_PointerChanged;