[wdmaudiodev] System volume slider sends only 0/1 channel volume/mute requests

  • From: Eugene Muzychenko <eugene@xxxxxxxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Thu, 29 May 2014 01:42:49 +0700

Hello!

I'm testing multichannel playback via my PortCls miniport under
Windows 7 SP1. Initially, I set an appropriate (6- or 8-channel)
shared format for the playback endpoint. After starting 5.1 or 7.1
playback stream (using Foobar2000/WASAPI), I open Windows volume
slider by single left-clicking the speaker icon and move the slider
related to my driver's endpoint. Stream playback is normal (all
channels are played as expected) but Windows mixer sends
KSPROPERTY_AUDIO_VOLUMELEVEL requests only for 0/1 channels.

If I click the mute icon, KSPROPERTY_AUDIO_MUTE requests are sent only
to 0/1 channels too.

If I open Windows property applet for the endpoint and switch to
Levels tab, I see two sliders: "Line" (name of the corresponding
topology filter pin) and "Main volume" (name of the corresponding wave
filter pin).

If I move the first slider, volume level property requests only for
channels 0/1 are sent to my driver (clicking the "Balance" button, I
see only two sliders).

If I move the second slider on the Levels tab, all 6 or 8 channel
volume level requests are sent to my driver. Clicking the "Balance"
button, I see 6 or 8 sliders for individual channels, each of them
work properly.

Opening my topology and wave filters in KS Studio (either from 7.1 or
8.1 WDKs), I see only 0 and 1 channels for
KSPROPERTY_AUDIO_VOLUMELEVEL. Descriptor sizes are 152 and 184 for 6
and 8 channels, respectively, but KS Studio does not show remaining
channels.

My driver exposes multichannel nodes as described here:

http://msdn.microsoft.com/en-us/library/windows/hardware/ff536380(v=vs.85).aspx

My property handler always sets MembersCount field to the appropriate
number of channels, fills the appropriate number of
KSPROPERTY_STEPPING_LONG/KSPROPERTY_BOUNDS_LONG descriptors and
returns descriptor size 152 for 6 channels or 184 for 8 channels.

Why topology nodes are not queried for channels other than 0/1 and
system volume slider does not send volume/mute requests for them?

Regards,
Eugene

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

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: