use super::{phys_input::*, phys_output::*, port_conf::*, *};
#[derive(Default, Debug)]
pub struct Audiofire12FormerProtocol;
impl EfwHardwareSpecification for Audiofire12FormerProtocol {
const SUPPORTED_SAMPLING_RATES: &'static [u32] =
&[32000, 44100, 48000, 88200, 96000, 176400, 192000];
const SUPPORTED_SAMPLING_CLOCKS: &'static [ClkSrc] =
&[ClkSrc::Internal, ClkSrc::WordClock, ClkSrc::Spdif];
const CAPABILITIES: &'static [HwCap] = &[
HwCap::ChangeableRespAddr,
HwCap::Dsp,
HwCap::NominalInput,
HwCap::NominalOutput,
];
const TX_CHANNEL_COUNTS: [usize; 3] = [12, 12, 12];
const RX_CHANNEL_COUNTS: [usize; 3] = [12, 12, 12];
const MONITOR_SOURCE_COUNT: usize = 12;
const MONITOR_DESTINATION_COUNT: usize = 12;
const MIDI_INPUT_COUNT: usize = 1;
const MIDI_OUTPUT_COUNT: usize = 1;
const PHYS_INPUT_GROUPS: &'static [(PhysGroupType, usize)] = &[(PhysGroupType::Analog, 12)];
const PHYS_OUTPUT_GROUPS: &'static [(PhysGroupType, usize)] = &[(PhysGroupType::Analog, 12)];
}
impl EfwPhysInputSpecification for Audiofire12FormerProtocol {}
impl EfwPhysOutputSpecification for Audiofire12FormerProtocol {}
impl EfwPlaybackSoloSpecification for Audiofire12FormerProtocol {}
#[derive(Default, Debug)]
pub struct Audiofire12LaterProtocol;
impl EfwHardwareSpecification for Audiofire12LaterProtocol {
const SUPPORTED_SAMPLING_RATES: &'static [u32] =
&[32000, 44100, 48000, 88200, 96000, 176400, 192000];
const SUPPORTED_SAMPLING_CLOCKS: &'static [ClkSrc] =
&[ClkSrc::Internal, ClkSrc::WordClock, ClkSrc::Spdif];
const CAPABILITIES: &'static [HwCap] = &[
HwCap::ChangeableRespAddr,
HwCap::Dsp,
HwCap::InputGain,
HwCap::NominalInput,
HwCap::NominalOutput,
];
const TX_CHANNEL_COUNTS: [usize; 3] = [12, 12, 12];
const RX_CHANNEL_COUNTS: [usize; 3] = [12, 12, 12];
const MONITOR_SOURCE_COUNT: usize = 12;
const MONITOR_DESTINATION_COUNT: usize = 12;
const MIDI_INPUT_COUNT: usize = 1;
const MIDI_OUTPUT_COUNT: usize = 1;
const PHYS_INPUT_GROUPS: &'static [(PhysGroupType, usize)] = &[(PhysGroupType::Analog, 12)];
const PHYS_OUTPUT_GROUPS: &'static [(PhysGroupType, usize)] = &[(PhysGroupType::Analog, 12)];
}
impl EfwPhysInputSpecification for Audiofire12LaterProtocol {}
impl EfwPhysOutputSpecification for Audiofire12LaterProtocol {}
impl EfwPlaybackSoloSpecification for Audiofire12LaterProtocol {}
#[derive(Default, Debug)]
pub struct Audiofire8Protocol;
impl EfwHardwareSpecification for Audiofire8Protocol {
const SUPPORTED_SAMPLING_RATES: &'static [u32] = &[32000, 44100, 48000, 88200, 96000];
const SUPPORTED_SAMPLING_CLOCKS: &'static [ClkSrc] =
&[ClkSrc::Internal, ClkSrc::WordClock, ClkSrc::Spdif];
const CAPABILITIES: &'static [HwCap] = &[
HwCap::ChangeableRespAddr,
HwCap::Dsp,
HwCap::NominalInput,
HwCap::NominalOutput,
];
const TX_CHANNEL_COUNTS: [usize; 3] = [10, 10, 10];
const RX_CHANNEL_COUNTS: [usize; 3] = [10, 10, 10];
const MONITOR_SOURCE_COUNT: usize = 10;
const MONITOR_DESTINATION_COUNT: usize = 10;
const MIDI_INPUT_COUNT: usize = 1;
const MIDI_OUTPUT_COUNT: usize = 1;
const PHYS_INPUT_GROUPS: &'static [(PhysGroupType, usize)] =
&[(PhysGroupType::Analog, 8), (PhysGroupType::Spdif, 2)];
const PHYS_OUTPUT_GROUPS: &'static [(PhysGroupType, usize)] =
&[(PhysGroupType::Analog, 8), (PhysGroupType::Spdif, 2)];
}
impl EfwPhysInputSpecification for Audiofire8Protocol {}
impl EfwPhysOutputSpecification for Audiofire8Protocol {}
impl EfwPlaybackSoloSpecification for Audiofire8Protocol {}
#[derive(Default, Debug)]
pub struct Audiofire9Protocol;
impl EfwHardwareSpecification for Audiofire9Protocol {
const SUPPORTED_SAMPLING_RATES: &'static [u32] = &[32000, 44100, 48000, 88200, 96000];
const SUPPORTED_SAMPLING_CLOCKS: &'static [ClkSrc] = &[
ClkSrc::Internal,
ClkSrc::WordClock,
ClkSrc::Spdif,
ClkSrc::Adat,
];
const CAPABILITIES: &'static [HwCap] = &[
HwCap::ChangeableRespAddr,
HwCap::OptionalSpdifCoax,
HwCap::Fpga,
HwCap::OptionalSpdifOpt,
HwCap::OptionalAdatOpt,
HwCap::NominalInput,
HwCap::NominalOutput,
];
const TX_CHANNEL_COUNTS: [usize; 3] = [16, 12, 10];
const RX_CHANNEL_COUNTS: [usize; 3] = [16, 12, 10];
const MONITOR_SOURCE_COUNT: usize = 16;
const MONITOR_DESTINATION_COUNT: usize = 16;
const MIDI_INPUT_COUNT: usize = 1;
const MIDI_OUTPUT_COUNT: usize = 1;
const PHYS_INPUT_GROUPS: &'static [(PhysGroupType, usize)] =
&[(PhysGroupType::Analog, 8), (PhysGroupType::SpdifOrAdat, 8)];
const PHYS_OUTPUT_GROUPS: &'static [(PhysGroupType, usize)] =
&[(PhysGroupType::Analog, 8), (PhysGroupType::SpdifOrAdat, 8)];
}
impl EfwDigitalModeSpecification for Audiofire9Protocol {}
impl EfwPhysInputSpecification for Audiofire9Protocol {}
impl EfwPhysOutputSpecification for Audiofire9Protocol {}
impl EfwPlaybackSoloSpecification for Audiofire9Protocol {}
#[derive(Default, Debug)]
pub struct Audiofire4Protocol;
impl EfwHardwareSpecification for Audiofire4Protocol {
const SUPPORTED_SAMPLING_RATES: &'static [u32] = &[32000, 44100, 48000, 88200, 96000];
const SUPPORTED_SAMPLING_CLOCKS: &'static [ClkSrc] = &[ClkSrc::Internal, ClkSrc::Spdif];
const CAPABILITIES: &'static [HwCap] = &[
HwCap::ChangeableRespAddr,
HwCap::PhantomPowering,
HwCap::OutputMapping,
HwCap::NominalInput,
HwCap::NominalOutput,
];
const TX_CHANNEL_COUNTS: [usize; 3] = [6, 6, 6];
const RX_CHANNEL_COUNTS: [usize; 3] = [6, 6, 6];
const MONITOR_SOURCE_COUNT: usize = 6;
const MONITOR_DESTINATION_COUNT: usize = 6;
const MIDI_INPUT_COUNT: usize = 1;
const MIDI_OUTPUT_COUNT: usize = 1;
const PHYS_INPUT_GROUPS: &'static [(PhysGroupType, usize)] =
&[(PhysGroupType::Analog, 4), (PhysGroupType::Spdif, 2)];
const PHYS_OUTPUT_GROUPS: &'static [(PhysGroupType, usize)] =
&[(PhysGroupType::Analog, 4), (PhysGroupType::Spdif, 2)];
}
impl EfwPhantomPoweringSpecification for Audiofire4Protocol {}
impl EfwRxStreamMapsSpecification for Audiofire4Protocol {}
impl EfwPhysInputSpecification for Audiofire4Protocol {}
impl EfwPhysOutputSpecification for Audiofire4Protocol {}
impl EfwPlaybackSoloSpecification for Audiofire4Protocol {}
#[derive(Default, Debug)]
pub struct Audiofire2Protocol;
impl EfwHardwareSpecification for Audiofire2Protocol {
const SUPPORTED_SAMPLING_RATES: &'static [u32] = &[32000, 44100, 48000, 88200, 96000];
const SUPPORTED_SAMPLING_CLOCKS: &'static [ClkSrc] = &[ClkSrc::Internal, ClkSrc::Spdif];
const CAPABILITIES: &'static [HwCap] = &[
HwCap::ChangeableRespAddr,
HwCap::Fpga,
HwCap::PhantomPowering,
HwCap::OutputMapping,
HwCap::NominalInput,
HwCap::NominalOutput,
];
const TX_CHANNEL_COUNTS: [usize; 3] = [4, 4, 4];
const RX_CHANNEL_COUNTS: [usize; 3] = [6, 6, 6];
const MONITOR_SOURCE_COUNT: usize = 4;
const MONITOR_DESTINATION_COUNT: usize = 6;
const MIDI_INPUT_COUNT: usize = 1;
const MIDI_OUTPUT_COUNT: usize = 1;
const PHYS_INPUT_GROUPS: &'static [(PhysGroupType, usize)] =
&[(PhysGroupType::Analog, 2), (PhysGroupType::Spdif, 2)];
const PHYS_OUTPUT_GROUPS: &'static [(PhysGroupType, usize)] = &[
(PhysGroupType::Analog, 2),
(PhysGroupType::Headphones, 2),
(PhysGroupType::Spdif, 2),
];
}
impl EfwRxStreamMapsSpecification for Audiofire2Protocol {}
impl EfwPhysInputSpecification for Audiofire2Protocol {}
impl EfwPhysOutputSpecification for Audiofire2Protocol {}
impl EfwPlaybackSoloSpecification for Audiofire2Protocol {}