pub struct KeyboardHotPlugMonitor { /* private fields */ }Available on crate feature
alloc only.Expand description
input event notification wrapper
Implementations§
Source§impl KeyboardHotPlugMonitor
Warn: Unpredictable! Unsafe!
This may cause the program to hang.
impl KeyboardHotPlugMonitor
Warn: Unpredictable! Unsafe! This may cause the program to hang.
Sourcepub unsafe fn new(dirty_flag_ptr: NonNull<bool>) -> Result<Self>
pub unsafe fn new(dirty_flag_ptr: NonNull<bool>) -> Result<Self>
enable global keyboard hotplug listener dirty_flag_ptr: recommend static bool pointer
Sourcepub unsafe fn notify_mode_loop<Init, Update, Loop, Res>(
init: Init,
update: Update,
tick: Loop,
) -> Result<Res>where
Init: FnMut(usize, &mut ScopedProtocol<Input>) -> Result<Res>,
Update: FnMut(usize, &mut ScopedProtocol<Input>) -> Result<Res>,
Loop: FnMut(usize, &mut ScopedProtocol<Input>) -> Result<Res>,
pub unsafe fn notify_mode_loop<Init, Update, Loop, Res>(
init: Init,
update: Update,
tick: Loop,
) -> Result<Res>where
Init: FnMut(usize, &mut ScopedProtocol<Input>) -> Result<Res>,
Update: FnMut(usize, &mut ScopedProtocol<Input>) -> Result<Res>,
Loop: FnMut(usize, &mut ScopedProtocol<Input>) -> Result<Res>,
support keyboard hotplug (notify + polling flag mode)
§param
init: start register input callback functionupdate: update keyboard callback functiontick: main loop callback function
§Usage
fn f(index: usize, input: &mut ScopedProtocol<Input>) -> Result { Ok(()) }
KeyboardHotPlugMonitor::notify_mode_loop(f, f, f)?;More see examples/test_input_hotplug.rs
Sourcepub unsafe fn polling_mode_loop<Init, Update, Loop, Res>(
init: Init,
update: Update,
tick: Loop,
) -> Result<Res>where
Init: FnMut(usize, &mut ScopedProtocol<Input>) -> Result<Res>,
Update: FnMut(usize, &mut ScopedProtocol<Input>) -> Result<Res>,
Loop: FnMut(usize, &mut ScopedProtocol<Input>) -> Result<Res>,
pub unsafe fn polling_mode_loop<Init, Update, Loop, Res>(
init: Init,
update: Update,
tick: Loop,
) -> Result<Res>where
Init: FnMut(usize, &mut ScopedProtocol<Input>) -> Result<Res>,
Update: FnMut(usize, &mut ScopedProtocol<Input>) -> Result<Res>,
Loop: FnMut(usize, &mut ScopedProtocol<Input>) -> Result<Res>,
support keyboard hotplug (pure polling mode)
warn: Poor performance! frequent opening and closing of protocols.
§param
init: start register input callback functionupdate: update keyboard callback functiontick: main loop callback function
§Usage
fn f(index: usize, input: &mut ScopedProtocol<Input>) -> Result { Ok(()) }
KeyboardHotPlugMonitor::polling_mode_loop(f, f, f)?;More see examples/test_polling_hotplug.rs
§config
REFRESH_POSITIVE_INPUT_DEVICE_TIME::set configuration can be modified
before this KeyboardHotPlugMonitor::polling_mode_loop is used.
Auto Trait Implementations§
impl Freeze for KeyboardHotPlugMonitor
impl RefUnwindSafe for KeyboardHotPlugMonitor
impl !Send for KeyboardHotPlugMonitor
impl !Sync for KeyboardHotPlugMonitor
impl Unpin for KeyboardHotPlugMonitor
impl UnwindSafe for KeyboardHotPlugMonitor
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more