forked from AbleOS/ableos
65 lines
1.2 KiB
Rust
65 lines
1.2 KiB
Rust
use alloc::vec::Vec;
|
|
|
|
/// Placeholder to be replaced with a proper FileReference when such a thing exists
|
|
pub type FileID = u8;
|
|
pub type SoundCardID = u8;
|
|
pub type DeviceID = u8;
|
|
pub type ControllerID = u8;
|
|
|
|
#[derive(Clone, Debug)]
|
|
pub enum FileAccess {
|
|
All,
|
|
Some(Vec<FileID>),
|
|
None,
|
|
}
|
|
|
|
#[derive(Clone, Debug)]
|
|
pub enum ControllerAccess {
|
|
All,
|
|
Some(Vec<ControllerID>),
|
|
None,
|
|
}
|
|
|
|
#[derive(Clone, Debug)]
|
|
pub enum SoundCardAccess {
|
|
All,
|
|
Some(Vec<SoundCardID>),
|
|
None,
|
|
}
|
|
|
|
#[derive(Clone, Debug)]
|
|
pub enum MouseAccess {
|
|
Yes,
|
|
No,
|
|
}
|
|
|
|
#[derive(Clone, Debug)]
|
|
pub enum KeyboardAccess {
|
|
Yes,
|
|
No,
|
|
}
|
|
|
|
#[derive(Clone, Debug)]
|
|
pub struct Capabilities {
|
|
files: FileAccess,
|
|
mouse: MouseAccess,
|
|
keyboard: KeyboardAccess,
|
|
controllers: ControllerAccess,
|
|
sound_cards: SoundCardAccess,
|
|
}
|
|
|
|
impl Capabilities {
|
|
/// Generate a set of empty capabilities
|
|
pub fn empty() -> Self {
|
|
Self {
|
|
files: FileAccess::None,
|
|
mouse: MouseAccess::No,
|
|
keyboard: KeyboardAccess::No,
|
|
controllers: ControllerAccess::None,
|
|
sound_cards: SoundCardAccess::None,
|
|
}
|
|
}
|
|
}
|
|
|
|
|