use super::*;
#[derive(Default, Debug)]
pub struct FirexonClkProtocol;
impl MediaClockFrequencyOperation for FirexonClkProtocol {
const FREQ_LIST: &'static [u32] = &[44100, 48000, 88200, 96000, 176400, 192000];
}
impl SamplingClockSourceOperation for FirexonClkProtocol {
const DST: SignalAddr = SignalAddr::Subunit(SignalSubunitAddr {
subunit: MUSIC_SUBUNIT_0,
plug_id: 0x05,
});
const SRC_LIST: &'static [SignalAddr] = &[
SignalAddr::Subunit(SignalSubunitAddr {
subunit: MUSIC_SUBUNIT_0,
plug_id: 0x05,
}),
SignalAddr::Unit(SignalUnitAddr::Ext(0x03)),
];
}
#[derive(Default, Debug)]
pub struct FirexonPhysOutputProtocol;
impl AvcAudioFeatureSpecification for FirexonPhysOutputProtocol {
const ENTRIES: &'static [(u8, AudioCh)] = &[
(0x06, AudioCh::Each(0)), (0x06, AudioCh::Each(1)), (0x07, AudioCh::Each(0)), (0x07, AudioCh::Each(1)), ];
}
impl AvcLevelOperation for FirexonPhysOutputProtocol {}
impl AvcLrBalanceOperation for FirexonPhysOutputProtocol {}
impl AvcMuteOperation for FirexonPhysOutputProtocol {}
impl AvcSelectorOperation for FirexonPhysOutputProtocol {
const FUNC_BLOCK_ID_LIST: &'static [u8] = &[0x01];
const INPUT_PLUG_ID_LIST: &'static [u8] = &[0x00, 0x01, 0x02];
}
#[derive(Default, Debug)]
pub struct FirexonMonitorSourceProtocol;
impl AvcAudioFeatureSpecification for FirexonMonitorSourceProtocol {
const ENTRIES: &'static [(u8, AudioCh)] = &[
(0x01, AudioCh::Each(0)), (0x01, AudioCh::Each(1)), (0x02, AudioCh::Each(0)), (0x02, AudioCh::Each(1)), (0x03, AudioCh::Each(0)), (0x03, AudioCh::Each(1)), ];
}
impl AvcLevelOperation for FirexonMonitorSourceProtocol {}
impl AvcLrBalanceOperation for FirexonMonitorSourceProtocol {}
impl AvcMuteOperation for FirexonMonitorSourceProtocol {}
#[derive(Default, Debug)]
pub struct FirexonMixerSourceProtocol;
impl AvcAudioFeatureSpecification for FirexonMixerSourceProtocol {
const ENTRIES: &'static [(u8, AudioCh)] = &[
(0x04, AudioCh::Master), (0x05, AudioCh::Master), ];
}
impl AvcLevelOperation for FirexonMixerSourceProtocol {}