RADLib
RADical C++ application framework

RADInput discovers Linux evdev devices from /dev/input and /sys/class/input. InputManager can read raw input events on a background thread and emit them through RADCore events, optionally posted back to a target RADCore::EventLoop.

Use Calibration to map raw touch/pointer coordinates into display-space coordinates. Tests and embedded products can pass InputPaths to point the API at a fixture tree or alternate device root.