usbd_audio/
terminal_type.rs

1//! USB Audio Terminal Types from Universal Serial Bus Device Class Definition
2//! for Terminal Types, Release 1.0
3//!
4
5/// USB Audio Terminal Types from "Universal Serial Bus Device Class Definition
6/// for Terminal Types, Release 1.0"
7#[rustfmt::skip]
8#[repr(u16)]
9#[non_exhaustive]
10#[derive(Copy, Clone, Eq, PartialEq, Debug)]
11pub enum TerminalType {
12
13    // USB Terminal Types
14    UsbUndefined                    = 0x0100,
15    UsbStreaming                    = 0x0101,
16    UsbVendor                       = 0x01ff,
17
18    // Input Terminal Types
19    InUndefined                     = 0x0200,
20    InMicrophone                    = 0x0201,
21    InDesktopMicrophone             = 0x0202,
22    InPersonalMicrophone            = 0x0203,
23    InOmniDirectionalMicrophone     = 0x0204,
24    InMicrophoneArray               = 0x0205,
25    InProcessingMicrophoneArray     = 0x0206,
26
27    // Output Terminal Types
28    OutUndefined                    = 0x0300,
29    OutSpeaker                      = 0x0301,
30    OutHeadphones                   = 0x0302,
31    OutHeadMountedDisplayAudio      = 0x0303,
32    OutDesktopSpeaker               = 0x0304,
33    OutRoomSpeaker                  = 0x0305,
34    OutCommunicationSpeaker         = 0x0306,
35    OutLowFrequencyEffectsSpeaker   = 0x0307,
36
37    // External Terminal Types
38    ExtUndefined                    = 0x0600,
39    ExtAnalogConnector              = 0x0601,
40    ExtDigitalAudioInterface        = 0x0602,
41    ExtLineConnector                = 0x0603,
42    ExtLegacyAudioConnector         = 0x0604,
43    ExtSpdifConnector               = 0x0605,
44    Ext1394DaStream                 = 0x0606,
45    Ext1394DvStreamSoundtrack       = 0x0607,
46}
47
48impl From<TerminalType> for u16 {
49    fn from(t: TerminalType) -> u16 {
50        t as u16
51    }
52}