diff --git a/src/device/device.rs b/src/device/device.rs index bdd4b72..a6ce048 100644 --- a/src/device/device.rs +++ b/src/device/device.rs @@ -4,6 +4,7 @@ use libc::{timeval, gettimeofday}; use nix::unistd; use ffi::*; use {Result as Res, event}; +use event::{Kind, Code}; /// The virtual device. pub struct Device { @@ -44,6 +45,12 @@ impl Device { self.write(EV_SYN, SYN_REPORT, 0) } + /// Send an event. + pub fn send>(&mut self, event: T, value: i32) -> Res<()> { + let event = event.into(); + self.write(event.kind(), event.code(), value) + } + /// Send a press event. pub fn press(&mut self, event: &T) -> Res<()> { self.write(event.kind(), event.code(), 1)