Struct gpu_display::event_device::EventDevice
source · pub struct EventDevice {
kind: EventDeviceKind,
event_buffer: VecDeque<u8>,
event_socket: StreamChannel,
}
Expand description
Encapsulates a virtual event device, such as a mouse or keyboard
Fields§
§kind: EventDeviceKind
§event_buffer: VecDeque<u8>
§event_socket: StreamChannel
Implementations§
source§impl EventDevice
impl EventDevice
pub fn new(kind: EventDeviceKind, event_socket: StreamChannel) -> EventDevice
pub fn mouse(event_socket: StreamChannel) -> EventDevice
pub fn touchscreen(event_socket: StreamChannel) -> EventDevice
pub fn keyboard(event_socket: StreamChannel) -> EventDevice
pub fn kind(&self) -> EventDeviceKind
sourcepub fn flush_buffered_events(&mut self) -> Result<bool>
pub fn flush_buffered_events(&mut self) -> Result<bool>
Flushes the buffered events that did not fit into the underlying transport, if any.
Returns Ok(true)
if, after this function returns, there all the buffer of events is
empty.
pub fn is_buffered_events_empty(&self) -> bool
sourcefn can_buffer_events(&self, num_events: usize) -> bool
fn can_buffer_events(&self, num_events: usize) -> bool
Determines if there is space in the event buffer for the given number
of events. The buffer is capped at EVENT_BUFFER_LEN_MAX
.
pub fn send_report<E: IntoIterator<Item = virtio_input_event>>(
&mut self,
events: E
) -> Result<bool>where
E::IntoIter: ExactSizeIterator,
sourcepub fn send_event_encoded(&mut self, event: virtio_input_event) -> Result<bool>
pub fn send_event_encoded(&mut self, event: virtio_input_event) -> Result<bool>
Sends the given event
, returning Ok(true)
if, after this function returns, there are no
buffered events remaining.
pub fn recv_event_encoded(&self) -> Result<virtio_input_event>
Trait Implementations§
source§impl AsRawDescriptor for EventDevice
impl AsRawDescriptor for EventDevice
source§fn as_raw_descriptor(&self) -> RawDescriptor
fn as_raw_descriptor(&self) -> RawDescriptor
Returns the underlying raw descriptor. Read more
source§impl Debug for EventDevice
impl Debug for EventDevice
source§impl<'de> Deserialize<'de> for EventDevice
impl<'de> Deserialize<'de> for EventDevice
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl ReadNotifier for EventDevice
impl ReadNotifier for EventDevice
source§fn get_read_notifier(&self) -> &dyn AsRawDescriptor
fn get_read_notifier(&self) -> &dyn AsRawDescriptor
Gets a descriptor that can be used in EventContext to wait for events to be available (e.g.
to avoid receive_events blocking).
Auto Trait Implementations§
impl RefUnwindSafe for EventDevice
impl Send for EventDevice
impl Sync for EventDevice
impl Unpin for EventDevice
impl UnwindSafe for EventDevice
Blanket Implementations§
§impl<T> AsRawDescriptors for Twhere
T: AsRawDescriptor,
impl<T> AsRawDescriptors for Twhere
T: AsRawDescriptor,
§fn as_raw_descriptors(&self) -> Vec<i32>
fn as_raw_descriptors(&self) -> Vec<i32>
Returns the underlying raw descriptors. Read more
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.