Struct EvdevHandle

Source
pub struct EvdevHandle<F>(/* private fields */);
Expand description

A handle to an input device allowing the use of ioctls

Implementations§

Source§

impl<F> EvdevHandle<F>

Source

pub const fn new(fd: F) -> Self

Create a new handle using an existing open file object.

Source

pub fn into_inner(self) -> F

Extracts the contained handle.

Source

pub const fn as_inner(&self) -> &F

A reference to the contained handle.

Source

pub fn as_inner_mut(&mut self) -> &mut F

A mutable reference to the contained handle.

Source§

impl EvdevHandle<OwnedFd>

Source

pub unsafe fn from_fd(fd: RawFd) -> Self

Create a new handle from a raw file descriptor.

Source§

impl<F: AsRawFd> EvdevHandle<F>

Source

pub fn read(&self, events: &mut [input_event]) -> Result<usize>

Read events from the input device

Source

pub fn read_input_events<'e>( &self, events: &'e mut [MaybeUninit<InputEvent>], ) -> Result<&'e mut [InputEvent]>

Read events from the input device

Source

pub fn read_input_event(&self) -> Result<InputEvent>

Read a single event from the input device

Source

pub fn read_event(&self) -> Result<Event>

Read a single event from the input device

Source

pub fn write(&self, events: &[input_event]) -> Result<usize>

Write events to the input device

Source

pub fn driver_version(&self) -> Result<i32>

EVIOCGVERSION

Source

pub fn device_id(&self) -> Result<InputId>

EVIOCGID

Source

pub fn repeat_settings(&self) -> Result<repeat_settings>

EVIOGREP

Source

pub fn set_repeat_settings(&self, value: &repeat_settings) -> Result<()>

EVIOSREP

Source

pub fn keycode_legacy(&self) -> Result<[u32; 2]>

EVIOCGKEYCODE

Source

pub fn keycode(&self) -> Result<input_keymap_entry>

EVIOCGKEYCODE_V2

Source

pub fn set_keycode_legacy(&self, value: &[u32; 2]) -> Result<()>

EVIOCSKEYCODE

Source

pub fn set_keycode(&self, value: &input_keymap_entry) -> Result<()>

EVIOCSKEYCODE_V2

Source

pub fn device_name_buf(&self, buffer: &mut [u8]) -> Result<usize>

EVIOCGNAME

Source

pub fn device_name(&self) -> Result<Vec<u8>>

EVIOCGNAME

Source

pub fn physical_location_buf(&self, buffer: &mut [u8]) -> Result<usize>

EVIOCGPHYS

Source

pub fn physical_location(&self) -> Result<Vec<u8>>

EVIOCGPHYS

Source

pub fn unique_id_buf(&self, buffer: &mut [u8]) -> Result<usize>

EVIOCGUNIQ

Source

pub fn unique_id(&self) -> Result<Vec<u8>>

EVIOCGUNIQ

Source

pub fn device_properties_raw(&self, buffer: &mut [u8]) -> Result<usize>

EVIOCGPROP

Source

pub fn key_state(&self, buffer: &mut [u8]) -> Result<usize>

EVIOCGKEY

Source

pub fn led_state(&self, buffer: &mut [u8]) -> Result<usize>

EVIOCGLED

Source

pub fn sounds_state(&self, buffer: &mut [u8]) -> Result<usize>

EVIOCGSND

Source

pub fn switch_state(&self, buffer: &mut [u8]) -> Result<usize>

EVIOCGSW

Source

pub fn send_force_feedback(&self, value: &mut ff_effect) -> Result<()>

EVIOCSFF

Source

pub fn erase_force_feedback(&self, value: i16) -> Result<()>

EVIOCRMFF

Source

pub fn effects_count(&self) -> Result<i32>

EVIOCGEFFECTS

Source

pub fn device_properties(&self) -> Result<Bitmask<InputProperty>>

EVIOCGPROP

Source

pub fn multi_touch_slots( &self, code: AbsoluteAxis, values: &mut [i32], ) -> Result<()>

EVIOCGMTSLOTS

Warning: the current implementation can leak uninitialized heap memory into values

Source

pub fn event_mask_events(&self) -> Result<Bitmask<EventKind>>

EVIOCGMASK

Source

pub fn set_event_mask_events(&self, bitmask: &Bitmask<EventKind>) -> Result<()>

EVIOCSMASK

Source

pub fn event_bits(&self) -> Result<Bitmask<EventKind>>

EVIOCGBIT

Source

pub fn key_mask(&self) -> Result<Bitmask<Key>>

EVIOCGMASK

Source

pub fn set_key_mask(&self, bitmask: &Bitmask<Key>) -> Result<()>

EVIOCSMASK

Source

pub fn key_bits(&self) -> Result<Bitmask<Key>>

EVIOCGBIT

Source

pub fn relative_mask(&self) -> Result<Bitmask<RelativeAxis>>

EVIOCGMASK

Source

pub fn set_relative_mask(&self, bitmask: &Bitmask<RelativeAxis>) -> Result<()>

EVIOCSMASK

Source

pub fn relative_bits(&self) -> Result<Bitmask<RelativeAxis>>

EVIOCGBIT

Source

pub fn absolute_mask(&self) -> Result<Bitmask<AbsoluteAxis>>

EVIOCGMASK

Source

pub fn set_absolute_mask(&self, bitmask: &Bitmask<AbsoluteAxis>) -> Result<()>

EVIOCSMASK

Source

pub fn absolute_bits(&self) -> Result<Bitmask<AbsoluteAxis>>

EVIOCGBIT

Source

pub fn misc_mask(&self) -> Result<Bitmask<MiscKind>>

EVIOCGMASK

Source

pub fn set_misc_mask(&self, bitmask: &Bitmask<MiscKind>) -> Result<()>

EVIOCSMASK

Source

pub fn misc_bits(&self) -> Result<Bitmask<MiscKind>>

EVIOCGBIT

Source

pub fn switch_mask(&self) -> Result<Bitmask<SwitchKind>>

EVIOCGMASK

Source

pub fn set_switch_mask(&self, bitmask: &Bitmask<SwitchKind>) -> Result<()>

EVIOCSMASK

Source

pub fn switch_bits(&self) -> Result<Bitmask<SwitchKind>>

EVIOCGBIT

Source

pub fn led_mask(&self) -> Result<Bitmask<LedKind>>

EVIOCGMASK

Source

pub fn set_led_mask(&self, bitmask: &Bitmask<LedKind>) -> Result<()>

EVIOCSMASK

Source

pub fn led_bits(&self) -> Result<Bitmask<LedKind>>

EVIOCGBIT

Source

pub fn sound_mask(&self) -> Result<Bitmask<SoundKind>>

EVIOCGMASK

Source

pub fn set_sound_mask(&self, bitmask: &Bitmask<SoundKind>) -> Result<()>

EVIOCSMASK

Source

pub fn sound_bits(&self) -> Result<Bitmask<SoundKind>>

EVIOCGBIT

Source

pub fn autorepeat_mask(&self) -> Result<Bitmask<AutorepeatKind>>

EVIOCGMASK

Source

pub fn set_autorepeat_mask( &self, bitmask: &Bitmask<AutorepeatKind>, ) -> Result<()>

EVIOCSMASK

Source

pub fn autorepeat_bits(&self) -> Result<Bitmask<AutorepeatKind>>

EVIOCGBIT

Source

pub fn force_feedback_mask(&self) -> Result<Bitmask<ForceFeedbackKind>>

EVIOCGMASK

Source

pub fn set_force_feedback_mask( &self, bitmask: &Bitmask<ForceFeedbackKind>, ) -> Result<()>

EVIOCSMASK

Source

pub fn force_feedback_bits(&self) -> Result<Bitmask<ForceFeedbackKind>>

EVIOCGBIT

Source

pub fn force_feedback_status_mask( &self, ) -> Result<Bitmask<ForceFeedbackStatusKind>>

EVIOCGMASK

Source

pub fn set_force_feedback_status_mask( &self, bitmask: &Bitmask<ForceFeedbackStatusKind>, ) -> Result<()>

EVIOCSMASK

Source

pub fn force_feedback_status_bits( &self, ) -> Result<Bitmask<ForceFeedbackStatusKind>>

EVIOCGBIT

Source

pub fn event_mask_raw(&self, kind: EventKind, buffer: &mut [u8]) -> Result<()>

EVIOCGMASK

Source

pub fn set_event_mask_raw(&self, kind: EventKind, buffer: &[u8]) -> Result<()>

EVIOCSMASK

Source

pub fn event_bits_raw( &self, kind: EventKind, buffer: &mut [u8], ) -> Result<usize>

EVIOCGBIT

Source

pub fn absolute_info(&self, abs: AbsoluteAxis) -> Result<AbsoluteInfo>

EVIOCGABS

Source

pub fn set_absolute_info( &self, abs: AbsoluteAxis, info: &AbsoluteInfo, ) -> Result<()>

EVIOCSABS

Source

pub fn grab(&self, grab: bool) -> Result<()>

EVIOCGRAB

Source

pub fn revoke(&self) -> Result<()>

EVIOCREVOKE

Source

pub fn set_clock_id(&self, value: i32) -> Result<()>

EVIOCSCLOCKID

Trait Implementations§

Source§

impl<F: AsRawFd> AsFd for EvdevHandle<F>

Source§

fn as_fd<'a>(&'a self) -> BorrowedFd<'a>

Borrows the file descriptor. Read more
Source§

impl<F: AsRawFd> AsRawFd for EvdevHandle<F>

Source§

fn as_raw_fd(&self) -> RawFd

Extracts the raw file descriptor. Read more
Source§

impl<F: FromRawFd> FromRawFd for EvdevHandle<F>

Source§

unsafe fn from_raw_fd(fd: RawFd) -> Self

Constructs a new instance of Self from the given raw file descriptor. Read more
Source§

impl<F: IntoRawFd> IntoRawFd for EvdevHandle<F>

Source§

fn into_raw_fd(self) -> RawFd

Consumes this object, returning the raw underlying file descriptor. Read more

Auto Trait Implementations§

§

impl<F> Freeze for EvdevHandle<F>
where F: Freeze,

§

impl<F> RefUnwindSafe for EvdevHandle<F>
where F: RefUnwindSafe,

§

impl<F> Send for EvdevHandle<F>
where F: Send,

§

impl<F> Sync for EvdevHandle<F>
where F: Sync,

§

impl<F> Unpin for EvdevHandle<F>
where F: Unpin,

§

impl<F> UnwindSafe for EvdevHandle<F>
where F: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.