[wdmaudiodev] Re: Re[2]: Few questions about core Audio APIs in Vista

  • From: Frank Yerrace <Frank.Yerrace@xxxxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Tue, 5 Dec 2006 11:38:25 -0800

Sndvol.exe does not use the DeviceTopology APIs (which I assume you are 
referring to since you mentioned IAudioVolumeLevel). For device volume, it uses 
the EndpointVolume APIs. If I recall correctly, the EndpointVolume APIs return 
the last set value rather than "snapping" to the closest hardware supported 
value.

Frank Yerrace
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 
wdmaudiodev@xxxxxxxxxxxxxxxxxx
Sent: Monday, December 04, 2006 9:50 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re[2]: Few questions about core Audio APIs in Vista

Mitch,

Thank you for the explanation.

A1. Do you plan to add this method in the future? We have some interesting 
ideas, but
can't implement because there is no way...

A2. I've supposed that. However, I think this is not best practice when users 
set one
volume level in Sndvol.exe but when they reopen it the value is different. 
Furthermore,
a difference may be big with linear volume setup (e.g. they set 80 but returned 
90 and
so on), so the users will be confused. My opinion is the driver must always 
return
original value set even if it support only the levels of multiple of 
*pfStepping.

Sincerely,
Andrew

Original Message Follows:
------------------------

A1.  Sorry, but there is no public method for enumerating all of the audio 
sessions.

A2.  Most hardware volume controls have .5, 1 or 1.5dB steps.  Whether the 
hardware
returns the actual volume level (e.g. -5dB) or the last value set (e.g. -5.02dB)
depends on the driver, but in general you should expect that the level will be a
multiple of *pfStepping.

Regards,
Mitch Rundle
Microsoft

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 Andrew Mindrin
Sent: Thursday, November 30, 2006 11:09 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Few questions about core Audio APIs in Vista

Hi,

The questions are:

Q1. Enumerating all audio sessions
----------------------------------
I need to enumerate all audio sessions in Vista to take control over
them like Sndvol.exe. Is there a way? I need that to create custom
volume control software.

I've tried to play with WASAPI, but it is possible only to create new
session or to open a sessions of current process created by high-level
API.

Q2. Volume levels in Vista
--------------------------
I've noticed that some sound drivers for Vista doesn't support precise
volume setup. E.g. with the latest driver from Creative (2.11.0000) when
I set volume by using IAudioVolumeLevel::SetLevel to e.g. -5.02 dB and
then has read it by using IAudioVolumeLevel::GetLevel, the result is -5
dB instead of -5.02 dB. Is this driver bug or volume level in Vista can
be set\read only with a step returned by GetLevelRange method (pfStepping
parameter)? If this is not a bug, how to set\read precise levels?

Many thanks,
Andrew
******************

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: