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

  • From: "Frank Yerrace" <Frank.Yerrace@xxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Fri, 10 Mar 2006 08:36:46 -0800

As you know, for non-PCM formats over a SPDIF output there's not much
the PC can do to control volume.

I assume your mechanism to set the non-audio bit in the channel status
from an application is a private interface. And I assume that this,
combined with your button to set all hardware faders to unity, is how
you try to ensure that the bits (which the rest of the system thinks are
PCM) are not manipulated by volume controls.

You can see how this is fragile and, with Vista's per-app volume
feature, has even more chance of not working as you hope. If the per-app
volume for the app is not unity then the "PCM" bits (which would really
be non-PCM in your scenario) will be changed.

That said, for special hardware controls we prefer you to create audio
control panel (mmsys.cpl) extensions for Vista. These extensions can
access the internal KS topology of your hardware driver to expose custom
features like a "Set all faders to unity" button. Note that if you
expose such a feature, the affect volume control nodes should support
the appropriate KS event so that the rest of the system software is
aware of the volume level change, and the standard Windows volume
control UI can update.

Frank Yerrace
Technical Lead
Microsoft Corporation

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


-----Original Message-----
From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Daniel E. Germann
Sent: Friday, March 10, 2006 5:42 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: waveOutSetVolume() under Vista returns
MMSYSERR_NOTSUPPORTED

On Thu, 9 Mar 2006 05:10:31 -0800, Frank Yerrace wrote...
> 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.

Hmmm.  I can see your point, and I certainly see the utility of the 
per-application volume settings for consumers.

What happens in AC3 or WMA over S/PDIF mode?  Is the main volume level 
automatically forced to unity gain for these audio formats?

Our drivers allow the user to manually set the "non-audio" bit in the 
channel status data to allow playback of DTS/AC3/WMA streams from any 
application.  We also have a "Set all faders to unity" button in one of
our 
device property pages to give the user an easy way to make sure the
audio is 
going through the entire system unaltered.  Will there be a way to 
manipulate the main volume slider so we can continue to provide this 
functionality?

-Dan
--
Dan Germann
Digital Audio Labs


----- Original Message ----- 
> Subject: [wdmaudiodev] Re: waveOutSetVolume() under Vista returns 
> MMSYSERR_NOTS
> Date: Thu, 9 Mar 2006 05:10:31 -0800
> From: "Frank Yerrace" <Frank.Yerrace@xxxxxxxxxxxxx>
>
> 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.

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

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

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

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

Other related posts: