[wdmaudiodev] Re: USB Audio class device

  • From: "Brian Toba" <briantoba@xxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Mon, 10 Mar 2003 17:05:38 -0400

Thanks a lot DJ, i'll be waiting your private email...

But, why, if windows uses the strings in the sound control panel, it doesn't
use it in the device manager? it'll get a little messy if you have 5 mics
(one for each position in the room) and 5 speakers... they will be 10 USB
audio devices :S

Changing the subject,

Today, i'm working with a speaker layout: USB-Streaming -> IT -> OT ->
Speaker
when i compile a wav array in MATLAB of a perfect sawtooth, and in the
device i receive a sawtooth with scratchs, may be windows it's sending me
another thing that just sample's high byte and low byte? It's a mono system.

Brian

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


>
> 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/
>


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

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: