[wdmaudiodev] Re: waveOutSetVolume() under Vista returns MMSYSERR_NOTSUPPORTED

  • From: "Frank Yerrace" <Frank.Yerrace@xxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Thu, 9 Mar 2006 05:10:31 -0800

I'm sorry it's still not entirely clear to me what your scenario is.
Does your solution have some physical buttons, and are you trying to
write a sort-of daemon that responds to those buttons by changing the
main volume level? Are you writing a program that has a GUI with a
volume slider, and you want that slider to affect the main volume level?
Are you writing a control panel extension for Vista's Audio control
panel?

 

As Larry said, the wave and mixer APIs on Vista now affect only the
calling application rather than the main volume level. In general we
feel that there is rarely a need for software to affect the main volume
level. Instead, it is directly an end user function. If we can
understand your larger scenario hopefully we can give you better
guidance on how to achieve what you want to do.

 

Thanks!

 

Frank Yerrace

Technical Lead

Microsoft Corporation

 

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

 

________________________________

From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Sam Tertzakian
Sent: Wednesday, March 08, 2006 9:10 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: waveOutSetVolume() under Vista returns
MMSYSERR_NOTSUPPORTED

 

Yes, the main volume UI to uses the Hardware Volume Control (we don't
see a problem there). 

 

For this reason, we are trying to access the Hardware Volume Control.
That is why we are trying use either Wave or Mixer APIs to access the
Hardware Volume Control. But, it seems that we cannot access that
control under Vista (only XP) using Mixer or Wave APIs.

 

________________________________

From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Frank Yerrace
Sent: Wednesday, March 08, 2006 6:27 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: waveOutSetVolume() under Vista returns
MMSYSERR_NOTSUPPORTED

 

Which user control are you talking about? The main volume UI in Vista
will already use your hardware volume control (unless there's a bug in
the way somewhere).

 

Frank Yerrace

Technical Lead

Microsoft Corporation

 

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

 

________________________________

From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Sam Tertzakian
Sent: Wednesday, March 08, 2006 6:24 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: waveOutSetVolume() under Vista returns
MMSYSERR_NOTSUPPORTED

 

My device has a volume control on it. When the user moves the control up
and down, we need the volume slider on the "Master Volume" to move up
and down.

 

How do you think I should do this?

 

I have not tried the Mixer API on the Feb CTP, so I don't' know if it
works...but, I did try waveOutSetVolume()...and for my driver (and for
the on-board audio device for which I did not write a driver) it seems
to not work. (But it does work under XP.)

 

 

________________________________

From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Larry Osterman
Sent: Wednesday, March 08, 2006 5:57 PM
To: 'wdmaudiodev@xxxxxxxxxxxxx'
Subject: [wdmaudiodev] Re: waveOutSetVolume() under Vista returns
MMSYSERR_NOTSUPPORTED

 

Both waveOutSetVolume and the mixer APIs should be working on any recent
builds (with the caveat that Frank mentioned below: waveOutSetVolume
using IDs didn't work in all cases until recently).

 

If you attempt to set the capture volume using the mixer APIs, it won't
work (the API call should succeed, but the call will be ignored), the
bug fix for this didn't make the Feb CTP.

 

Please note that the wave and mixer volumes are plumbed to the
per-stream volume for render endpoints.

 

 

Larry Osterman 

________________________________

From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Sam Tertzakian
Sent: Wednesday, March 08, 2006 5:42 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: waveOutSetVolume() under Vista returns
MMSYSERR_NOTSUPPORTED

 

I have tried both handles and ids....But, I just realized that I am
testing the Mixer API implementation on  build 5270 and not the latest
build. I know that both wave handles and device ids fail under the later
version of Vista. 

 

But, I am not sure about the mixer api under the lastest version of
Vista. I'll try it.

 

________________________________

From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Frank Yerrace
Sent: Wednesday, March 08, 2006 5:33 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: waveOutSetVolume() under Vista returns
MMSYSERR_NOTSUPPORTED

 

Are you using wave handles or wave IDs? Both will eventually work, but
wave IDs were not working until recent builds of Vista. You might not
have a build with this correction. I don't have the information at my
fingertips regarding when this was corrected.

 

Frank Yerrace

Technical Lead

Microsoft Corporation

 

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

 

 

________________________________

From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Sam Tertzakian
Sent: Wednesday, March 08, 2006 5:08 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: waveOutSetVolume() under Vista returns
MMSYSERR_NOTSUPPORTED

 

Hi,

 

I wrote a bunch of code to set/get the volume using the Mixer API and it
works under XP with my driver...but the same code with same driver does
not work under Vista.

 

So, I cannot set the volume using the Wave API or the Mixer API under
Vista. Yet, when I change the volume using the control panel under
Vista, the messages do get to my driver.

 

________________________________

From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Sam Tertzakian
Sent: Wednesday, March 08, 2006 3:00 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: waveOutSetVolume() under Vista returns
MMSYSERR_NOTSUPPORTED

 

Hi, 

 

I wrote an audio driver that works under XP and Vista. It passes XP
WHQL. Under XP, when I call waveOutSetVolume() and waveOutGetVolume()
everything works. But, under Vista both those functions return
MMSYSERR_NOT_SUPPORTED.

 

Does anybody know why this would be? Is that API not supported anymore?
Do I have to do something different in my driver under Vista to make
this call work?

 

Under Vista the driver works very well...for example, when I change the
volume using MSN messenger that works. It is just the waveXxxGetVolume
and waveXxxSetVolume calls that fail.

 

________________________________

From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Sam Tertzakian
Sent: Tuesday, March 07, 2006 9:37 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] waveOutSetVolume() under Vista returns
MMSYSERR_NOTSUPPORTED

 

Hi,

I am receving MMSYSERR_NOTSUPPORTED when I call waveOutSetVolume() under
Vista (latest CTP version). Under XP, the same code returns no error.

Is this API no longer supported under Vista?

Is there a new API for controlling the volume, or do we have to use the
MixerAPI?

Thank you

 

Other related posts: