Crate evdev_rs[][src]

Rust bindings to libevdev, an wrapper for evdev devices.

This library intends to provide a safe interface to the libevdev library. It will look for the library on the local system, and link to the installed copy.

Examples

Intializing a evdev device

use evdev_rs::Device;
use std::fs::File;

let f = File::open("/dev/input/event0").unwrap();

let mut d = Device::new().unwrap();
d.set_fd(f).unwrap();

Getting the next event

use evdev_rs::Device;
use std::fs::File;

let f = File::open("/dev/input/event0").unwrap();

let mut d = Device::new().unwrap();
d.set_fd(f).unwrap();

loop {
    let a = d.next_event(evdev_rs::ReadFlag::NORMAL | evdev_rs::ReadFlag::BLOCKING);
    match a {
        Ok(k) => println!("Event: time {}.{}, ++++++++++++++++++++ {} +++++++++++++++",
			              k.1.time.tv_sec,
			              k.1.time.tv_usec,
			              k.1.event_type),
        Err(e) => (),
    }
}

Modules

device
enums
logging
uinput
util

Structs

AbsInfo

used by EVIOCGABS/EVIOCSABS ioctls

Device

Opaque struct representing an evdev device

DeviceId
InputEvent

The event structure itself

ReadFlag
TimeVal
UInputDevice

Opaque struct representing an evdev uinput device

Enums

GrabMode
LedState
ReadStatus