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

  • From: wdmaudiodev@xxxxxxxxxxxxxxxxxx
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Wed, 6 Dec 2006 00:00:48 -0600 (CST)

Yes, I use DeviceTopology APIs. Of course, I don't know which APIs
uses Sndvol.exe but I meant the following:

When I set volume (especially high level, e.g. 95) for example in
'Playback Devices'->'Speakers'->'Levels' and then reopen this window,
the value will be different from what I entered before (tested in
practice) for those sound drivers which have the issue mentioned below.

The difference may be big because in 'Levels' window volume changes
linearly (this is my exploration) unlike the master volume level in
the volume pop-up panel. I believe this is not good for end users,
who don't know why this happens.

This issue has appeared only in Vista, there are no such problems in
XP and early Windows versions.

Sincerely,
Andrew

Original Message Follows:
------------------------
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/

Other related posts:

  • » [wdmaudiodev] Re[3]: Few questions about core Audio APIs in Vista