Struct evdev_rs::UInputDevice
source · pub struct UInputDevice { /* private fields */ }
Expand description
Opaque struct representing an evdev uinput device
Implementations§
source§impl UInputDevice
impl UInputDevice
sourcepub fn create_from_device<T: DeviceWrapper>(device: &T) -> Result<UInputDevice>
pub fn create_from_device<T: DeviceWrapper>(device: &T) -> Result<UInputDevice>
Create a uinput device based on the given libevdev device.
The uinput device will be an exact copy of the libevdev device, minus the bits that uinput doesn’t allow to be set.
sourcepub fn devnode(&self) -> Option<&str>
pub fn devnode(&self) -> Option<&str>
Return the device node representing this uinput device.
This relies on libevdev_uinput_get_syspath()
to provide a valid syspath.
sourcepub fn syspath(&self) -> Option<&str>
pub fn syspath(&self) -> Option<&str>
Return the syspath representing this uinput device.
If the UI_GET_SYSNAME ioctl not available, libevdev makes an educated guess. The UI_GET_SYSNAME ioctl is available since Linux 3.15.
The syspath returned is the one of the input node itself (e.g. /sys/devices/virtual/input/input123), not the syspath of the device node returned with libevdev_uinput_get_devnode().
sourcepub fn as_fd(&self) -> Option<RawFd>
pub fn as_fd(&self) -> Option<RawFd>
Return the file descriptor used to create this uinput device.
This is the fd pointing to /dev/uinput. This file descriptor may be used to write events that are emitted by the uinput device. Closing this file descriptor will destroy the uinput device.
pub fn fd(&self) -> Option<RawFd>
as_fd
. Some function names were changed so they
more closely match their type signature. See issue 42 for discussion
https://github.com/ndesh26/evdev-rs/issues/42sourcepub fn write_event(&self, event: &InputEvent) -> Result<()>
pub fn write_event(&self, event: &InputEvent) -> Result<()>
Post an event through the uinput device.
It is the caller’s responsibility that any event sequence is terminated with an EV_SYN/SYN_REPORT/0 event. Otherwise, listeners on the device node will not see the events until the next EV_SYN event is posted.