use crate::track::MainTrackBuilder;
use crate::backend::Backend;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct Capacities {
pub sub_track_capacity: usize,
pub send_track_capacity: usize,
pub clock_capacity: usize,
pub modulator_capacity: usize,
pub listener_capacity: usize,
}
impl Default for Capacities {
fn default() -> Self {
Self {
sub_track_capacity: 128,
send_track_capacity: 16,
clock_capacity: 8,
modulator_capacity: 16,
listener_capacity: 8,
}
}
}
pub struct AudioManagerSettings<B: Backend> {
pub capacities: Capacities,
pub main_track_builder: MainTrackBuilder,
pub internal_buffer_size: usize,
pub backend_settings: B::Settings,
}
impl<B: Backend> Default for AudioManagerSettings<B>
where
B::Settings: Default,
{
fn default() -> Self {
Self {
capacities: Capacities::default(),
main_track_builder: MainTrackBuilder::default(),
internal_buffer_size: 128,
backend_settings: B::Settings::default(),
}
}
}