[wdmaudiodev] Re: Mixer API support on Vista?

  • From: Larry Osterman <Larry.Osterman@xxxxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Fri, 11 Aug 2006 20:54:13 -0700

How did you set the volume?   Did you use mixerSetControlDetails?  On which 
destination did you do the set/get?

From: wdmaudiodev-bounce@xxxxxxxxxxxxx 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Mike Dey
Sent: Friday, August 11, 2006 5:10 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: Mixer API support on Vista?

Hi Larry,

In my app, I tried changing the volume to 32767 on my USB audio device but 
still got 65536 when I read it back. I am still not quite clear about the 
"per-app" state of volume control concept? Does it really change the volume on 
my hardware?
My company is doing USB VOIP hardware. Our customers like to directly adjust 
the volume in the phone application while a call is connected.
Thanks!

Mike

----- Original Message -----
From: Larry Osterman<mailto:Larry.Osterman@xxxxxxxxxxxxx>
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Sent: Wednesday, August 09, 2006 1:49 PM
Subject: [wdmaudiodev] Re: Mixer API support on Vista?

In Vista, the old hardware mixer is gone (ok, it's not gone, it's just really 
well hidden), and has been replaced with a "virtual" mixer that reflects the 
per-app state of the volume controls.  In your case, the reason you're always 
seeing max volume is that nothing in your app has changed the volume from its 
default.

For Vista, you have two options.  The first is that you can apply one of the 
legacy appcompat layers to your application (note: this doesn't work in current 
Vista bits), which will tell Vista "my application is a control panel 
replacement and should be allowed to see the actual hardware values".  The 
second option is to use the new 
IAudioEndpointVolume<http://windowssdk.msdn.microsoft.com/en-us/library/ms678753.aspx>
 interface to control the volume of the speakers.

If you chose to go the former route, it's important to understand that the 
Vista mixer no longer lies about the topology of the audio solution on the 
machine - if the audio solution doesn't have a hardware volume control, then 
the mixer APIs won't return a hardware volume control.  The 
IAudioEndpointVolume interface will correctly handle audio solutions without 
hardware volume controls though.

Larry Osterman

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


From: wdmaudiodev-bounce@xxxxxxxxxxxxx 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Mike Dey
Sent: Wednesday, August 09, 2006 1:29 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Mixer API support on Vista?

Does Vista still support mixer APIs? I have a volume control application using 
mixer APIs (such as mixerOpen, mixerGetDevCaps, mixerGetLineControls...). It 
works well on 2K/XP. However, on Vista build 5472 the volume I got from 
mixerGetControlDetails API is always 65535. Anyone know what's the problem? 
Thanks!

Mike

Other related posts: