RawDevice: introduce system_path() method

This commit is contained in:
Wayne Warren 2022-01-15 17:58:52 -07:00
parent 099b6e9a1d
commit 3a425349ec

View file

@ -2,7 +2,7 @@ use std::fs::{File, OpenOptions};
use std::io::Write; use std::io::Write;
use std::mem::MaybeUninit; use std::mem::MaybeUninit;
use std::os::unix::io::{AsRawFd, RawFd}; use std::os::unix::io::{AsRawFd, RawFd};
use std::path::Path; use std::path::{Path, PathBuf};
use std::{io, mem}; use std::{io, mem};
use crate::constants::*; use crate::constants::*;
@ -68,6 +68,7 @@ pub struct RawDevice {
supported_snd: Option<AttributeSet<SoundType>>, supported_snd: Option<AttributeSet<SoundType>>,
pub(crate) event_buf: Vec<libc::input_event>, pub(crate) event_buf: Vec<libc::input_event>,
grabbed: bool, grabbed: bool,
system_path: PathBuf,
} }
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
@ -225,6 +226,7 @@ impl RawDevice {
auto_repeat, auto_repeat,
event_buf: Vec::new(), event_buf: Vec::new(),
grabbed: false, grabbed: false,
system_path: path.to_path_buf(),
}) })
} }
@ -383,6 +385,11 @@ impl RawDevice {
self.supported_snd.as_deref() self.supported_snd.as_deref()
} }
/// Returns the system path used to open the device.
pub fn system_path(&self) -> &Path {
self.system_path.as_ref()
}
/// Read a maximum of `num` events into the internal buffer. If the underlying fd is not /// Read a maximum of `num` events into the internal buffer. If the underlying fd is not
/// O_NONBLOCK, this will block. /// O_NONBLOCK, this will block.
/// ///