[wdmaudiodev] Re: KSPROPERTY_STEPPING_LONG problem!

  • From: Tim Roberts <timr@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Wed, 31 Mar 2010 09:45:06 -0700

eric wrote:
> After a quick experiment, using KSPROPERTY_MEMBER_RANGES makes the
> volume control disabled. I found Mark ran into the same problem before:
> //www.freelists.org/post/wdmaudiodev/Setting-upper-and-lower-volume-bounds,
>  and
> what Michail said seems to refer to the same scenario. Nevertheless, I
> still believe there is an answer in front of us, if any body had this
> issue solved or just had a normal behavior luckily in avstream
> architecture and under XP sp2, please leave a messge to us~

Allow me to make a suggestion.  The numbers in the volume control are
supposed to be physical units, in decibels/65536.  You are specifying
very, very tiny amounts, and all on the amplification side, not the
attenuation side.  Most volume controls are just attenuation, so that
their controls have a range that is entirely on the negative side, and
perhaps some part of the XP audio stack makes that assumption.

Try this.  Pretend that your range is actually -40 dB to +9 dB.  So,
make the minimum 0xFFC80000, the maximum 0x00090000, and the step
0x00010000.  Then, in your volume set handler, convert that to your
numbers by doing:
    iOrdinal = ((int)iPropValue >> 16) + 40;
and in your volume "get" handler, convert like this:
    iPropValue = (iOrdinal - 40) << 16;

Tim Roberts, timr@xxxxxxxxx
Providenza & Boekelheide, Inc.


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


Other related posts: