[wdmaudiodev] Vista Sample Rate Changes

  • From: "Neetu Sand" <neetu.freelist@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Fri, 5 Dec 2008 12:20:07 +0530

Hi,

We are running into some problems with the way Vista controls sample rate
changes from "sound and audio" control panel. Here is what we want to
implement:

- Just show current sample rate (used by device) in Sound and Audio Control
Panel->Properties->Advance Tab.

Now in order to do that I am rejecting all other sample rate (except current
sample rate)  requests in SRB_GET_DATA_INTERSECTION handler as well in
SRB_OPEN_STREAM Handler. I return STATUS_NO_MATCH from
SRB_GET_DATA_INTERSECTION and STATUS_NOT_SUPPORTED from SRB_OPEN_STREAM. As
a result Vista does not enumerate other sample rates and "Advance tab" is
not shown. As well as any test tone is not played because Vista is trying to
play audio using "default" sample rate chosen on "Advance" tab.

On XP things work just fine because if driver rejects one sample rate XP
tries another sample rate.

I read a couple of threads on issues related sample rate changes on Vista.
There was one solution proposed to fix this problem : create multiple sub -
devices, one for each sample rate supported by the device. However we don't
want to go that way as it would mean major changes in our driver
architecture, also our device support all sample rates 32-192 kHz.

I also tried to find out if there is a Microsoft suggested way (some API) to
change the default sample rate used by Vista but couldn't find any!

Something related to this : It looks like that 88.2 kHz and 176.4 kHz is not
enumerated when SRB_GET_DATA_INTERSECTION is sent. Is that true?

So now my question is : Is there any other way to get things done so that
only current sample rate used by device is shown on Advance tab?

Thanks, Neetu.

Other related posts: