[wdmaudiodev] Re: Understanding USB Feature Unit Descriptors

Hi Ryan,

So are you saying that you really have a device that has a 255 dB range that 
steps 16dB at a time? This is a most unusual device then.

XP would generally take any range and map it to the slider, but Win7 is a 
little more particular/realistic about these things. Most devices will report a 
range of Max: 0db to Min: -64db or so (though there definitely are exceptions). 
If your device is still in development I would suggest that you map your volume 
range similarly if possible. This should give you the XP/Win7 parity you seek.

Cheers,
DJ

From: wdmaudiodev-bounce@xxxxxxxxxxxxx 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of RYAN ALLAN
Sent: Friday, January 14, 2011 2:32 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Understanding USB Feature Unit Descriptors


I am developing a USB-to-analog audio device, and am seeing strange volume 
scaling behavior from Windows 7/Vista machines. The problem is not apparent 
with XP machines.

I am using the following Feature Unit Descriptors.
Get_Min: 0x01, 0x80
Get_Max: 0xFF, 0x7F
Get_Res: 0x00, 0x10

This tells me that the volume will be in the range from Min:0x8001 to 
Max:0x7FFFF, and each step (each time the volume is incremented via volume+ 
button on a multimedia keyboard) will be of size Res:0x1000. Is this correct?

When I move the volume slider in a Windows 7/Vista machine, the volume (I am 
looking at Set_Cur packets) moves in a range from 0x7FFFF to 0x3900 with step 
sizes of 0x0100. The same experiment on a XP machine sees the volume move in a 
range from 0x7FFF to 0x8001 with step sizes of 0x1000. Why do the two OS's have 
different behavior?

I would like volume to be in the range from -127db - +127db (as per USB spec), 
and I would like step sizes of 0x1000. Basically, I would like the Windows 7 
machine to behave like the XP machine.
Thanks!

--
Ryan

Other related posts: