[pulseaudio-discuss] dynamic loading for ALSA devices
Vasili Sviridov
vsviridov at exceede.com
Thu Jul 12 16:34:51 PDT 2007
Jon Smirl wrote:
I have the Logitech USB headphones and they also show "noserial"
designation. It's just the way hal module labels the sinks (based on
hardware capabilities, if you go to /proc/asound/<card>/ and look around
in the files - you'll see where all those extra bits come from).
As a side-note - it would be nice to do it like hotplug does it -
meaning - maintain a mapping between ugly sink names and nice and
legible sink names. (or maybe renaming sinks in runtime and maintaining
that as well, so it works after plug/unplug).
If you plug several devices their card numbers will be different, so you
can expect something like
alsa_output.usb_device_471_155_noserial_if0_alsa_playback_0
alsa_output.usb_device_471_155_noserial_if1_alsa_playback_1
alsa_output.usb_device_471_155_noserial_if2_alsa_playback_2
or something like that.
V.
> I see the devices are using the PCI / USB ID for their name.
>
> alsa_output.usb_device_471_155_noserial_if0_alsa_playback_0
> alsa_output.pci_device_8086_24d6_alsa_playback_0
>
> Normal display includes the leading zeros
> jonsmirl at jonsmirl:~$ lsusb
> Bus 002 Device 002: ID 0471:0155 Philips
>
> What does the noserial indicate?
> What do the names look like if I plug in several identical devices?
>
> The Philips device has a complex interface....
>
> Bus 002 Device 002: ID 0471:0155 Philips
> Device Descriptor:
> bLength 18
> bDescriptorType 1
> bcdUSB 1.10
> bDeviceClass 0 (Defined at Interface level)
> bDeviceSubClass 0
> bDeviceProtocol 0
> bMaxPacketSize0 8
> idVendor 0x0471 Philips
> idProduct 0x0155
> bcdDevice 4.14
> iManufacturer 1 Philips Electronics
> iProduct 2 Philips PSC805
> iSerial 0
> bNumConfigurations 1
> Configuration Descriptor:
> bLength 9
> bDescriptorType 2
> wTotalLength 235
> bNumInterfaces 4
> bConfigurationValue 1
> iConfiguration 0
> bmAttributes 0x80
> (Bus Powered)
> MaxPower 500mA
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 0
> bAlternateSetting 0
> bNumEndpoints 0
> bInterfaceClass 1 Audio
> bInterfaceSubClass 1 Control Device
> bInterfaceProtocol 0
> iInterface 0
> AudioControl Interface Descriptor:
> bLength 10
> bDescriptorType 36
> bDescriptorSubtype 1 (HEADER)
> bcdADC 1.00
> wTotalLength 88
> bInCollection 2
> baInterfaceNr( 0) 1
> baInterfaceNr( 1) 2
> AudioControl Interface Descriptor:
> bLength 12
> bDescriptorType 36
> bDescriptorSubtype 2 (INPUT_TERMINAL)
> bTerminalID 1
> wTerminalType 0x0101 USB Streaming
> bAssocTerminal 0
> bNrChannels 6
> wChannelConfig 0x003f
> Left Front (L)
> Right Front (R)
> Center Front (C)
> Low Freqency Enhancement (LFE)
> Left Surround (LS)
> Right Surround (RS)
> iChannelNames 0
> iTerminal 0
> AudioControl Interface Descriptor:
> bLength 14
> bDescriptorType 36
> bDescriptorSubtype 6 (FEATURE_UNIT)
> bUnitID 2
> bSourceID 1
> bControlSize 1
> bmaControls( 0) 0x01
> Mute
> bmaControls( 1) 0x02
> Volume
> bmaControls( 2) 0x02
> Volume
> bmaControls( 3) 0x02
> Volume
> bmaControls( 4) 0x02
> Volume
> bmaControls( 5) 0x02
> Volume
> bmaControls( 6) 0x02
> Volume
> iFeature 0
> AudioControl Interface Descriptor:
> bLength 9
> bDescriptorType 36
> bDescriptorSubtype 3 (OUTPUT_TERMINAL)
> bTerminalID 3
> wTerminalType 0x0301 Speaker
> bAssocTerminal 0
> bSourceID 2
> iTerminal 0
> AudioControl Interface Descriptor:
> bLength 12
> bDescriptorType 36
> bDescriptorSubtype 2 (INPUT_TERMINAL)
> bTerminalID 4
> wTerminalType 0x0603 Line Connector
> bAssocTerminal 0
> bNrChannels 2
> wChannelConfig 0x0003
> Left Front (L)
> Right Front (R)
> iChannelNames 0
> iTerminal 0
> AudioControl Interface Descriptor:
> bLength 10
> bDescriptorType 36
> bDescriptorSubtype 6 (FEATURE_UNIT)
> bUnitID 5
> bSourceID 4
> bControlSize 1
> bmaControls( 0) 0x01
> Mute
> bmaControls( 1) 0x02
> Volume
> bmaControls( 2) 0x02
> Volume
> iFeature 0
> AudioControl Interface Descriptor:
> bLength 12
> bDescriptorType 36
> bDescriptorSubtype 4 (MIXER_UNIT)
> bUnitID 6
> bNrInPins 1
> baSourceID( 0) 5
> bNrChannels 2
> wChannelConfig 0x0003
> Left Front (L)
> Right Front (R)
> iChannelNames 0
> bmControls 0x00
> iMixer 0
> AudioControl Interface Descriptor:
> bLength 9
> bDescriptorType 36
> bDescriptorSubtype 3 (OUTPUT_TERMINAL)
> bTerminalID 7
> wTerminalType 0x0101 USB Streaming
> bAssocTerminal 0
> bSourceID 6
> iTerminal 0
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 1
> bAlternateSetting 0
> bNumEndpoints 0
> bInterfaceClass 1 Audio
> bInterfaceSubClass 2 Streaming
> bInterfaceProtocol 0
> iInterface 0
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 1
> bAlternateSetting 1
> bNumEndpoints 1
> bInterfaceClass 1 Audio
> bInterfaceSubClass 2 Streaming
> bInterfaceProtocol 0
> iInterface 0
> AudioStreaming Interface Descriptor:
> bLength 7
> bDescriptorType 36
> bDescriptorSubtype 1 (AS_GENERAL)
> bTerminalLink 1
> bDelay 1 frames
> wFormatTag 1 PCM
> AudioStreaming Interface Descriptor:
> bLength 11
> bDescriptorType 36
> bDescriptorSubtype 2 (FORMAT_TYPE)
> bFormatType 1 (FORMAT_TYPE_I)
> bNrChannels 6
> bSubframeSize 2
> bBitResolution 16
> bSamFreqType 1 Discrete
> tSamFreq[ 0] 48000
> Endpoint Descriptor:
> bLength 9
> bDescriptorType 5
> bEndpointAddress 0x01 EP 1 OUT
> bmAttributes 9
> Transfer Type Isochronous
> Synch Type Adaptive
> Usage Type Data
> wMaxPacketSize 0x0240 1x 576 bytes
> bInterval 1
> bRefresh 0
> bSynchAddress 0
> AudioControl Endpoint Descriptor:
> bLength 7
> bDescriptorType 37
> bDescriptorSubtype 1 (EP_GENERAL)
> bmAttributes 0x01
> Sampling Frequency
> bLockDelayUnits 0 Undefined
> wLockDelay 0 Undefined
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 2
> bAlternateSetting 0
> bNumEndpoints 0
> bInterfaceClass 1 Audio
> bInterfaceSubClass 2 Streaming
> bInterfaceProtocol 0
> iInterface 0
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 2
> bAlternateSetting 1
> bNumEndpoints 1
> bInterfaceClass 1 Audio
> bInterfaceSubClass 2 Streaming
> bInterfaceProtocol 0
> iInterface 0
> AudioStreaming Interface Descriptor:
> bLength 7
> bDescriptorType 36
> bDescriptorSubtype 1 (AS_GENERAL)
> bTerminalLink 7
> bDelay 1 frames
> wFormatTag 1 PCM
> AudioStreaming Interface Descriptor:
> bLength 11
> bDescriptorType 36
> bDescriptorSubtype 2 (FORMAT_TYPE)
> bFormatType 1 (FORMAT_TYPE_I)
> bNrChannels 2
> bSubframeSize 2
> bBitResolution 16
> bSamFreqType 1 Discrete
> tSamFreq[ 0] 48000
> Endpoint Descriptor:
> bLength 9
> bDescriptorType 5
> bEndpointAddress 0x82 EP 2 IN
> bmAttributes 13
> Transfer Type Isochronous
> Synch Type Synchronous
> Usage Type Data
> wMaxPacketSize 0x00c0 1x 192 bytes
> bInterval 1
> bRefresh 0
> bSynchAddress 0
> AudioControl Endpoint Descriptor:
> bLength 7
> bDescriptorType 37
> bDescriptorSubtype 1 (EP_GENERAL)
> bmAttributes 0x01
> Sampling Frequency
> bLockDelayUnits 0 Undefined
> wLockDelay 0 Undefined
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 3
> bAlternateSetting 0
> bNumEndpoints 1
> bInterfaceClass 3 Human Interface Devices
> bInterfaceSubClass 0 No Subclass
> bInterfaceProtocol 0 None
> iInterface 0
> HID Device Descriptor:
> bLength 9
> bDescriptorType 33
> bcdHID 1.00
> bCountryCode 0 Not supported
> bNumDescriptors 1
> bDescriptorType 34 Report
> wDescriptorLength 128
> Report Descriptors:
> ** UNAVAILABLE **
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x83 EP 3 IN
> bmAttributes 3
> Transfer Type Interrupt
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0003 1x 3 bytes
> bInterval 10
> Device Status: 0x0000
> (Bus Powered)
>
> Bus 002 Device 001: ID 0000:0000
> Device Descriptor:
> bLength 18
> bDescriptorType 1
> bcdUSB 1.10
> bDeviceClass 9 Hub
> bDeviceSubClass 0 Unused
> bDeviceProtocol 0 Full speed hub
> bMaxPacketSize0 64
> idVendor 0x0000
> idProduct 0x0000
> bcdDevice 2.06
> iManufacturer 3 Linux 2.6.22-rc7-jds uhci_hcd
> iProduct 2 UHCI Host Controller
> iSerial 1 0000:00:1d.1
> bNumConfigurations 1
> Configuration Descriptor:
> bLength 9
> bDescriptorType 2
> wTotalLength 25
> bNumInterfaces 1
> bConfigurationValue 1
> iConfiguration 0
> bmAttributes 0xe0
> Self Powered
> Remote Wakeup
> MaxPower 0mA
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 0
> bAlternateSetting 0
> bNumEndpoints 1
> bInterfaceClass 9 Hub
> bInterfaceSubClass 0 Unused
> bInterfaceProtocol 0 Full speed hub
> iInterface 0
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x81 EP 1 IN
> bmAttributes 3
> Transfer Type Interrupt
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0002 1x 2 bytes
> bInterval 255
> Hub Descriptor:
> bLength 9
> bDescriptorType 41
> nNbrPorts 2
> wHubCharacteristic 0x000a
> No power switching (usb 1.0)
> Per-port overcurrent protection
> bPwrOn2PwrGood 1 * 2 milli seconds
> bHubContrCurrent 0 milli Ampere
> DeviceRemovable 0x00
> PortPwrCtrlMask 0xff
> Hub Port Status:
> Port 1: 0000.0103 power enable connect
> Port 2: 0000.0100 power
> Device Status: 0x0003
> Self Powered
> Remote Wakeup Enabled
More information about the pulseaudio-discuss
mailing list