[wdmaudiodev] Re: VAD woes on Win 10

  • From: Robert Bielik <Robert.Bielik@xxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Fri, 12 May 2017 13:22:18 +0000

Hi Matthew,

Then I probably am using it incorrectly. Are there any example sources using 
KSEVENTSETID_PinCapsChange/ KSEVENT_PINCAPS_FORMATCHANGE ? The sysvad example 
uses only KSEVENT_PINCAPS_JACKINFOCHANGE.

Regards
/R

-----Original Message-----
From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-
bounce@xxxxxxxxxxxxx] On Behalf Of Matthew van Eerde
Sent: den 12 maj 2017 15:19
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: VAD woes on Win 10

KSEVENTSETID_PinCapsChange should work. If it doesn't, please file a
problem report in the Feedback Hub and share a direct link.



https://blogs.msdn.microsoft.com/matthew_van_eerde/2016/09/26/report
-problems-with-logs-and-suggest-features-with-the-feedback-hub/



From: Robert Bielik <mailto:Robert.Bielik@xxxxxxxxx>
Sent: Friday, May 12, 2017 6:16 AM
To: wdmaudiodev@xxxxxxxxxxxxx <mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] FW: VAD woes on Win 10



Hi all,

I'm trying to get my VAD to work on Win 10, it is based on the old msvad
WaveCyclic example (using Portcls).

In essence the problem is that the device, named "Wave", can change its
capabilities (#channels, samplerates aso) through a control interface. But
with the new and fancy caching of capabilities in Windows 10 (which I have
no clue what the use is for), whenever I change the caps from the first
registered caps, Sound control panel will not display the "Advanced" tab for
the device (where samplerates are selected), thereby rendering it useless.

One way to tell Windows that the caps has changed, is through the
KSEVENTSETID_PinCapsChange event. I post this whenever I bring up the
device, but alas, Windows does not seem to requery the capabilities. There
seems to be a bug in this mechanism acc. to these sources
(https://github.com/eiz/SynchronousAudioRouter/blob/master/Synchronou
sAudioRouter/control.cpp#L702) anyway.

So, the workaround seems to be to change the "Wave" name whenever the
caps change. So, I thought I'd make a naming scheme "Wave_XXXX" where
XXXX is a hash combination of #channels + all supported samplerates. But if I
do this, Sound control panel doesn't show my device at all, probably because
the "Wave" name that is also specified in the .inf file:
[Strings]
...
KSNAME_Wave="Wave"
KSNAME_Topology="Topology"

[DevInst.<arch>.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,DevInst.I.To
pology
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,DevInst.I.Wave

is not matched in the driver. So, the question is, how do I programmatically
do an "AddInterface" with the "Wave_XXXX" name so it can popup in the
Sound control panel ? Or is it possible to have AddInterface in the .inf file
with a wildcard ?

Regards
/Robert

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

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
<mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe>
Unsubscribe:  mailto:wdmaudiodev-
request@xxxxxxxxxxxxx?subject=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: