[wdmaudiodev] MultiChannel Volume Control

  • From: "Mathieu Routhier" <mrouthier@xxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Thu, 3 Jun 2004 16:10:55 -0400

Hi guys,

I would like to activate the multi-channel volume control (As described
in the DDK article "Exposing Multichannel Nodes"). Unfortunately, I was
not yet been able to do it, even though I have followed the instructions
as much as I could.  Hopefully, someone here has done it before.

The article describes a way to report the number of channels through a
BASICSUPPORT query on a given node.  In AVStream drivers, the system
takes care of reporting this information based on some static data
structures, so AVStream drivers do not need to actively report
BASICSUPPORT queries.

So I have included the following structures to my driver (see code at
the bottom).  However, even though I have specified 4 channels in the
structure, the volume control still only has 2 channels.

I have also tried specifying Stepping Ranges like the example does, but
it did not make a difference.  I'm pretty sure one of you has done this
kind of thing before.  What am I doing wrong?  Anything specific to
AVStream?  Any reply would be appreciated, even if it's short.

Mathieu Routhier

//-----------------------------

static const KSPROPERTY_MEMBERSLIST ksPlaybackVolumeNodeMembersList[]=
{
        {//KSPROPERTY_MEMBERSLIST
                {//KSPROPERTY_MEMBERSHEADER MembersHeader;
                0,//ULONG MembersFlags;
                0,//ULONG MembersSize;
                4,//ULONG MembersCount;
                KSPROPERTY_MEMBER_FLAG_BASICSUPPORT_MULTICHANNEL //ULONG
Flags;
                },
                NULL //const VOID* Members;
        }
};

static KSPROPERTY_VALUES ksPlaybackVolumeNodeValues=
{
        {//KSIDENTIFIER PropTypeSet;
        STATICGUIDOF(KSPROPSETID_Audio),//      GUID    Set;
      KSPROPERTY_AUDIO_VOLUMELEVEL,   //  ULONG   Id;
      0                               //  ULONG   Flags;
        },
        SIZEOF_ARRAY(ksPlaybackVolumeNodeMembersList), //ULONG
MembersListCount;
        ksPlaybackVolumeNodeMembersList //const KSPROPERTY_MEMBERSLIST*
MembersList;
};

static KSPROPERTY_ITEM ksVolumeNodeAudioPropertyItems[]=
{
        {//KSPROPERTY_ITEM
        KSPROPERTY_AUDIO_VOLUMELEVEL,   //ULONG PropertyId;
        GetPlaybackVolume,  //PFNKSHANDLER
GetPropertyHandler;
        sizeof(KSNODEPROPERTY_AUDIO_CHANNEL), //ULONG MinProperty;
        sizeof(LONG),   //ULONG MinData;
        SetPlaybackVolume,//PFNKSHANDLER            SetPropertyHandler;
        &ksPlaybackVolumeNodeValues,    //const
KSPROPERTY_VALUES*Values;
        0,                      //ULONG
RelationsCount;
        0,                      //const KSPROPERTY*       Relations;
        MySupportHandler,       //PFNKSHANDLER
SupportHandler;
        sizeof(LONG)    //ULONG                   SerializedSize;
        }
};

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

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.de/

Other related posts:

  • » [wdmaudiodev] MultiChannel Volume Control