use std::ffi::CString;
use enum_primitive_derive::Primitive;
#[derive(Debug, Copy, Clone, PartialEq, Eq, Primitive)]
#[repr(u8)]
pub enum PortDirection {
Input = 1,
Output = 2,
}
#[derive(Default, Debug, Copy, Clone, Eq, PartialEq, Primitive)]
pub enum PortAvailable {
#[default]
Unknown = 0,
No = 1,
Yes = 2,
}
#[derive(Default, Debug, Copy, Clone, PartialEq, Eq, Primitive)]
#[allow(missing_docs)]
pub enum PortType {
#[default]
Unknown = 0,
Aux = 1,
Speaker = 2,
Headphones = 3,
Line = 4,
Mic = 5,
Headset = 6,
Handset = 7,
Earpiece = 8,
Spdif = 9,
Hdmi = 10,
Tv = 11,
Radio = 12,
Video = 13,
Usb = 14,
Bluetooth = 15,
Portable = 16,
Handsfree = 17,
Car = 18,
Hifi = 19,
Phone = 20,
Network = 21,
Analog = 22,
}
#[derive(Debug, Clone, Eq, PartialEq)]
pub struct PortInfo {
pub name: CString,
pub port_type: PortType,
pub description: Option<CString>,
pub dir: PortDirection,
pub priority: u32,
pub available: PortAvailable,
pub availability_group: Option<CString>,
}