39 lines
946 B
Rust
39 lines
946 B
Rust
//! Simple Text Input Protocol
|
|
//!
|
|
//! The simple-text-input protocol defines how to read basic key-strokes. It is limited to
|
|
//! non-modifiers and lacks any detailed reporting. It is mostly useful for debugging and admin
|
|
//! interaction.
|
|
|
|
pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
|
|
0x387477c1,
|
|
0x69c7,
|
|
0x11d2,
|
|
0x8e,
|
|
0x39,
|
|
&[0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b],
|
|
);
|
|
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy, Debug, Default)]
|
|
pub struct InputKey {
|
|
pub scan_code: u16,
|
|
pub unicode_char: crate::base::Char16,
|
|
}
|
|
|
|
pub type ProtocolReset = eficall! {fn(
|
|
*mut Protocol,
|
|
crate::base::Boolean,
|
|
) -> crate::base::Status};
|
|
|
|
pub type ProtocolReadKeyStroke = eficall! {fn(
|
|
*mut Protocol,
|
|
*mut InputKey,
|
|
) -> crate::base::Status};
|
|
|
|
#[repr(C)]
|
|
pub struct Protocol {
|
|
pub reset: ProtocolReset,
|
|
pub read_key_stroke: ProtocolReadKeyStroke,
|
|
pub wait_for_key: crate::base::Event,
|
|
}
|