use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum ConnectionType {
Usb,
Ble,
}
impl std::fmt::Display for ConnectionType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::Usb => write!(f, "usb"),
Self::Ble => write!(f, "ble"),
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub struct SleepTimeout {
pub disconnected: u16,
pub connected: u16,
}
impl SleepTimeout {
pub const fn new(disconnected: u16, connected: u16) -> Self {
Self {
disconnected,
connected,
}
}
}
const USB_AUDIO_KEYWORDS: &[&str] = &["audio-hid", "reai", "vibe", "ai vibe"];
pub fn is_usb_audio_device_name(name: &str) -> bool {
let name_lower = name.to_lowercase();
USB_AUDIO_KEYWORDS.iter().any(|kw| name_lower.contains(kw))
}