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::NORMAL | evdev_rs::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

enums
logging
util

Structs

AbsInfo

used by EVIOCGABS/EVIOCSABS ioctls

Device

Opaque struct representing an evdev device

DeviceId
InputEvent

The event structure itself

ReadFlag
TimeVal

Enums

GrabMode
LedState
ReadStatus

Constants

BLOCKING

The fd is not in O_NONBLOCK and a read may block

FORCE_SYNC

Pretend the next event is a SYN_DROPPED and require the caller to sync

NORMAL

Process data in normal mode

SYNC

Process data in sync mode