use sim_kernel::Symbol;
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
pub struct AudioSiteKey(pub Symbol);
impl AudioSiteKey {
pub fn new(name: &str) -> Self {
Self(Symbol::new(name))
}
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct AudioDeviceCard {
pub key: AudioSiteKey,
pub display_name: String,
pub channels_out: u16,
pub channels_in: u16,
pub sample_rates: Vec<u32>,
pub hardware_required: bool,
}
impl AudioDeviceCard {
pub fn modeled(key: AudioSiteKey, name: impl Into<String>) -> Self {
Self {
key,
display_name: name.into(),
channels_out: 2,
channels_in: 2,
sample_rates: vec![44_100, 48_000],
hardware_required: false,
}
}
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct AudioPlacementRequest {
pub site_key: AudioSiteKey,
pub stream_request: crate::HostStreamConfigRequest,
}