[wdmaudiodev] Re: USB Audio class device

  • From: "DJ Sisolak" <dsisolak@xxxxxxxxxxxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Mon, 10 Mar 2003 11:48:53 -0800

Hello Brian,

The strings in the descriptor are taken into account after the device =
has been enumerated into the system. Therein lays the problem. Before =
the descriptors can be read, the device has to be discovered. Therefore =
the name in the INF is used in device manager, but the descriptor =
strings ARE used in the control panel apps since they can be read once =
the device is started by the driver.

The driver issues GET_CUR/SET_CUR, GET_MIN, GET_MAX, and GET_RES =
attribute requests to units which support ranges for the controls (ie =
Volume Control). It will only issue GET_CUR/SET_CUR to units which are =
Boolean in nature (ie Mute).=20

I will review your descriptors and get back to you on a private thread.

Thanks,
DJ

This posting is provided "AS IS" with no warranties, and confers no =
rights.

-----Original Message-----
From: Brian Toba [mailto:briantoba@xxxxxxxxx]=20
Sent: Monday, March 10, 2003 5:45 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: USB Audio class device


Hi DJ Sisolak, i'll attach at the end of this email my descriptor file.

Thanks for your answer.

Woah! I can't believe it! so the strings in the descriptors doesn't work =
at
all? What do i have to do, to make Microsoft add my device in that file?
does it'll be updated thru Windows Update? Why don't they just use the
strings suplied by the device?

Other thing, wich messages, like GET_CUR, issues the OS to audio =
devices?

Thanks a lot.

Brian.

*** THIS IS MY DESCRIPTOR FILE ****
*** STRINGS ARE NOT HERE ***
*** Some comments are in spanish, sorry for that ***
DeviceDscr: db DeviceDscrEnd-DeviceDscr  ;; Descriptor length
  db DSCR_DEVICE ;; Decriptor type
  dw 0001H  ;; Specification Version (BCD)
  db 00H    ;; Device class
  db 00H  ;; Device sub-class
  db 00H  ;; Device sub-sub-class
  db 64  ;; Maximum packet size
  dw 3412H  ;; Vendor ID Cypress 4705H
  dw 0500H  ;; Product ID
  dw 0100H  ;; Product version ID
  db 1  ;; Manufacturer string index
  db 2  ;; Product string index
  db 3  ;; Serial number string index
  db 1  ;; Numder of configurations
DeviceDscrEnd:

ConfigDscr: db ConfigDscrEnd-ConfigDscr  ;; Descriptor length
  db DSCR_CONFIG ;; Descriptor type
  db 109  ;; Configuration + End Points length (LSB)
  db 00  ;; Configuration length (MSB)
  db 2  ;; Number of interfaces
  db 1  ;; Interface number
  db 4  ;; Configuration string
  db 10000000b ;; Attributes (b7 - buspwr, b6 - selfpwr, b5 - rwu)
  db 50  ;; Power requirement (div 2 ma)
ConfigDscrEnd:

Intrfc0Dscr:
  db Intrfc0DscrEnd-Intrfc0Dscr  ;; Descriptor length
  db DSCR_INTRFC ;; Descriptor type
  db 0  ;; Zero-based index of this interface
  db 0  ;; Alternate setting
  db 0  ;; Number of end points
  db C_AUDIO  ;; Interface class: AUDIO
  db SC_AUDIO_CONTROL;; Interface sub class: AUDIO_CONTROL
  db 00H  ;; Interface sub sub class
  db 5  ;; Interface descriptor string index
Intrfc0DscrEnd:

ClassSpecificIntrfc0Dscr:
  db ClassSpecificIntrfc0DscrEnd-ClassSpecificIntrfc0Dscr  ;; Descriptor
length
  db CS_INTERFACE ;; Descriptor type
  db HEADER  ;; Descriptor sub-type
  dw 0001H  ;; Rev. de la clase de audio 1.0
  db 39  ;; Tama=F1o total de los Class-specific Descriptor (LSB)
  db 00  ;; Tama=F1o total de los Class-specific Descriptor (MSB)
  db 1  ;; N=FAmero de interfaces de audio (streaming)
  db 1  ;; Lista de interfaces de audio (como solo hay una...)
ClassSpecificIntrfc0DscrEnd:

IT0Dscr:
  db IT0DscrEnd-IT0Dscr  ;; Descriptor length
  db CS_INTERFACE ;; Descriptor type
  db INPUT_TERMINAL ;; Descriptor sub-type
  db 1  ;; Identificador del Terminal
  dw 0502H  ;; Tipo de terminal: Micr=F3fono de escritorio
  db 0  ;; Asociacion
  db 1  ;; N=FAmero de canales
  dw 0000H  ;; que canales?
  db 8  ;; Nombre del primer canal
  db 7  ;; Nombre del Terminal
IT0DscrEnd:

FTDscr:
  db FTDscrEnd-FTDscr  ;; Descriptor length
  db CS_INTERFACE ;; Descriptor type
  db FEATURE_UNIT ;; Descriptor sub-type
  db 2  ;; Identificador del Feature Unit
  db 1  ;; ID de la Fuente de se=F1al
  db 1  ;; Control Size
  db 03H  ;; Controles Master ch: Mute y Volumen
  db 00H  ;; Controles ch 1: Ninguno
  db 0  ;; Nombre de la Feature
FTDscrEnd:

OT0Dscr:
  db OT0DscrEnd-OT0Dscr  ;; Descriptor length
  db CS_INTERFACE ;; Descriptor type
  db OUTPUT_TERMINAL ;; Descriptor sub-type
  db 3  ;; Identificador del Terminal
  dw 0101H  ;; Tipo de terminal: USB Streaming
  db 0  ;; Asociacion
  db 2  ;; ID de la fuente
  db 8  ;; Nombre del Terminal
OT0DscrEnd:

Intrfc1AS0Dscr:
  db Intrfc1AS0DscrEnd-Intrfc1AS0Dscr  ;; Descriptor length
  db DSCR_INTRFC ;; Descriptor type
  db 1  ;; Zero-based index of this interface
  db 0  ;; Alternate setting
  db 0  ;; Number of end points
  db C_AUDIO  ;; Interface class: AUDIO
  db SC_AUDIO_STREAMING ;; Interface sub class: AUDIO STREAMING
  db 00H  ;; Interface sub sub class
  db 9  ;; Interface descriptor string index
Intrfc1AS0DscrEnd:

Intrfc1AS1Dscr:
  db Intrfc1AS1DscrEnd-Intrfc1AS1Dscr  ;; Descriptor length
  db DSCR_INTRFC ;; Descriptor type
  db 1  ;; Zero-based index of this interface
  db 1  ;; Alternate setting
  db 1  ;; Number of end points
  db C_AUDIO  ;; Interface class: AUDIO
  db SC_AUDIO_STREAMING ;; Interface sub class: AUDIO STREAMING
  db 00H  ;; Interface sub sub class
  db 10  ;; Interface descriptor string index
Intrfc1AS1DscrEnd:

ClassSpecificIntrfc1Dscr:
  db ClassSpecificIntrfc1DscrEnd-ClassSpecificIntrfc1Dscr  ;; Descriptor
length
  db CS_INTERFACE ;; Descriptor type
  db GENERAL  ;; Descriptor sub-type
  db 3  ;; OT al que est=E1 conectado
  db 01H  ;; Retraso de la interfaz
  dw 0100H  ;; Formato: PCM
ClassSpecificIntrfc1DscrEnd:

FormatDscr:
  db FormatDscrEnd-FormatDscr  ;; Descriptor length
  db CS_INTERFACE ;; Descriptor type
  db FORMAT_TYPE ;; Descriptor sub-type
  db FORMAT_TYPE_I ;; Tipo de formato
  db 1  ;; N=FAmero de canales
  db 2  ;; Bytes por sub frame
  db 16  ;; Bits por muestra
  db 1  ;; Frecuencias soportadas
  db 40H  ;; Frecuencia en Hz (LSB)
  db 1FH  ;; Frecuencia en Hz (CSB)
  db 00H  ;; Frecuencia en Hz (MSB)
FormatDscrEnd:

EpI1Dscr:
  db EpI1DscrEnd-EpI1Dscr  ;; Descriptor length
  db DSCR_ENDPNT ;; Descriptor type
  db 88H  ;; Endpoint number, and direction
  db ET_ISO  ;; Endpoint type
  db 10H  ;; Maximun packet size (LSB)
  db 00H  ;; Maximun packet size (MSB)
  db 1  ;; Packet per frame
  db 0  ;; Refresh (0 por definici=F3n)
  db 0  ;; SyncAddress (0 por definici=F3n)
EpI1DscrEnd:

CSEpI1Dscr:
  db CSEpI1DscrEnd-CSEpI1Dscr  ;; Descriptor length
  db CS_ENDPOINT ;; Descriptor type
  db GENERAL  ;; Descriptor sub-type
  db 00H  ;; Atributos
  db 00H  ;; Lock delay bits
  dw 0000H  ;; Lock delay
CSEpI1DscrEnd:

StringDscr:
StringDscr0:
  db StringDscr0End-StringDscr0  ;; String descriptor length
  db DSCR_STRING
  db 09H,04H
StringDscr0End:

----- Original Message -----
From: "DJ Sisolak" <dsisolak@xxxxxxxxxxxxxxxxxxxxxx>
To: <wdmaudiodev@xxxxxxxxxxxxx>
Sent: Monday, March 10, 2003 3:37 AM
Subject: [wdmaudiodev] Re: USB Audio class device


>
> Hello Brian,
>
> I can answer the second part of your message at least. The device =
shows
> up in device manager as "USB Audio Device" in device manager because =
it
> enumerates through the class identifiers in the wdma_usb.inf file. =
Only
> devices which are explicitly called out by this file will show up
> otherwise.
>
> As to why the device does not show the proper controls, I cannot be
> certain without the device in hand. Perhaps if you sent me a listing =
of
> your descriptors I could better understand.
>
> Thanks,
> DJ Sisolak
> Microsoft Corp.
>
> This posting is provided "AS IS" with no warranties, and confers no
> rights.
>
> -----Original Message-----
> From: Brian Toba [mailto:briantoba@xxxxxxxxx]=3D20
> Sent: Sunday, March 09, 2003 10:47 AM
> To: wdmaudiodev@xxxxxxxxxxxxx
> Subject: [wdmaudiodev] USB Audio class device
>
> Hi,
>
> I've developed a usb audio class device, it's a microphone. An IT, a
> feature
> unit and an OT, it works fine in Windows XP, i mean i can record audio
> in
> the Sound Recorder. The detail is, that i can't find to make windows
> detect
> the feature unit, because when y select my device in Control Pane->
> Sound
> the Volume button is disabled. I've have programmed the device to =
answer
> to
> GET and SET CUR, MAX, MIN and RES and tested them with Jungo's =
WinDriver
> Wizard. So, wich could be the issue?
>
> Another thing is that when i plug my device, and the balloon pops up, =
it
> says: "Microphone" (My product name) then USB Composite Device (As =
it's
> get
> registered in the Device manager list under USB controllers, then it
> detect
> the "Interface 0" and then USB Class Audio. So far it's nice, but why
> does
> the interface get listed in the Device Manager under Sound, video and
> game
> controller as "USB Class Audio" rather than "Interface 0". Notice that
> in
> Control Pane-> Sound in the dropdown box i have "Interface 0" as the
> device
> name.
>
> Thanks a lot
>
> Afro.
>
>
> ******************
>
> WDMAUDIODEV addresses:
> Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
> Subscribe:    =3D
> mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=3D3Dsubscribe
> Unsubscribe:
> mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=3D3Dunsubscribe
> Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx
>
> URL to WDMAUDIODEV page:
> http://www.wdmaudiodev.de/
>
> ******************
>
> WDMAUDIODEV addresses:
> Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
> Subscribe:    =
mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=3Dsubscribe
> Unsubscribe:  =
mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=3Dunsubscribe
> Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx
>
> URL to WDMAUDIODEV page:
> http://www.wdmaudiodev.de/
>


******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    =
mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=3Dsubscribe
Unsubscribe:  =
mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=3Dunsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.de/

******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.de/

Other related posts: