firewire_bebob_protocols/terratec/
aureon.rs1use super::*;
31
32#[derive(Default, Debug)]
34pub struct AureonClkProtocol;
35
36impl MediaClockFrequencyOperation for AureonClkProtocol {
37 const FREQ_LIST: &'static [u32] = &[32000, 44100, 48000, 88200, 96000, 192000];
38}
39
40impl SamplingClockSourceOperation for AureonClkProtocol {
41 const DST: SignalAddr = SignalAddr::Subunit(SignalSubunitAddr {
42 subunit: MUSIC_SUBUNIT_0,
43 plug_id: 0x03,
44 });
45
46 const SRC_LIST: &'static [SignalAddr] = &[
47 SignalAddr::Subunit(SignalSubunitAddr {
49 subunit: MUSIC_SUBUNIT_0,
50 plug_id: 0x03,
51 }),
52 ];
53}
54
55#[derive(Default, Debug)]
57pub struct AureonMixerOutputProtocol;
58
59impl AvcAudioFeatureSpecification for AureonMixerOutputProtocol {
60 const ENTRIES: &'static [(u8, AudioCh)] = &[
61 (0x01, AudioCh::Each(0)), (0x01, AudioCh::Each(1)), (0x01, AudioCh::Each(2)), (0x01, AudioCh::Each(3)), (0x01, AudioCh::Each(4)), (0x01, AudioCh::Each(5)), (0x01, AudioCh::Each(6)), (0x01, AudioCh::Each(7)), ];
70}
71
72impl AvcLevelOperation for AureonMixerOutputProtocol {}
73
74impl AvcMuteOperation for AureonMixerOutputProtocol {}
75
76#[derive(Default, Debug)]
78pub struct AureonPhysInputProtocol;
79
80impl AvcAudioFeatureSpecification for AureonPhysInputProtocol {
81 const ENTRIES: &'static [(u8, AudioCh)] = &[
82 (0x02, AudioCh::Master), (0x03, AudioCh::Master), ];
85}
86
87impl AvcLevelOperation for AureonPhysInputProtocol {}
88
89#[derive(Default, Debug)]
91pub struct AureonMonitorSourceProtocol;
92
93impl AvcSelectorOperation for AureonMonitorSourceProtocol {
94 const FUNC_BLOCK_ID_LIST: &'static [u8] = &[0x01];
95 const INPUT_PLUG_ID_LIST: &'static [u8] = &[0x00, 0x01, 0x02, 0x03];
97}
98
99#[derive(Default, Debug)]
101pub struct AureonMonitorOutputProtocol;
102
103impl AvcAudioFeatureSpecification for AureonMonitorOutputProtocol {
104 const ENTRIES: &'static [(u8, AudioCh)] = &[
105 (0x04, AudioCh::Master), ];
107}
108
109impl AvcLevelOperation for AureonMonitorOutputProtocol {}
110
111impl AvcMuteOperation for AureonMonitorOutputProtocol {}
112
113#[derive(Default, Debug)]
115pub struct AureonSpdifOutputProtocol;
116
117impl AvcSelectorOperation for AureonSpdifOutputProtocol {
118 const FUNC_BLOCK_ID_LIST: &'static [u8] = &[0x02];
119 const INPUT_PLUG_ID_LIST: &'static [u8] = &[0x00, 0x01];
121}