[wdmaudiodev] Re: KSPROPERTY_JACK_DESCRIPTION

  • From: "Cheng-mean Liu (SOCCER)" <soccerl@xxxxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Thu, 22 Feb 2007 10:57:31 -0800

I would try to replace KSPROPSETID_Audio with KSPROPSETID_Jack in your 
PCPROPERTY_ITEM structure for the topology filter
  {
    &KSPROPSETID_Jack,  //<---------------------------like this line
    KSPROPERTY_JACK_DESCRIPTION,
    KSPROPERTY_TYPE_GET |  KSPROPERTY_TYPE_BASICSUPPORT,
    PropertyHandler_Topology
  },

Thanks.

Cheng-mean Liu
Microsoft Corporation
This posting is provided "AS IS" with no warranties, and confers no rights.

-----Original Message-----
From: wdmaudiodev-bounce@xxxxxxxxxxxxx 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Nikolay V. Pyatkov
Sent: Thursday, February 22, 2007 7:07 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] KSPROPERTY_JACK_DESCRIPTION

I need to  display speaker connection status in a portcls audio driver. To
begin I have modified audio/msvad/simple code in the DDK 6000. But the jack
is not displayed on the audio panel and the KsStudio does not show the
KSPROPERTY_JACK_DESCRIPTION when the driver is instantiated. The code is
below.

Any help or code sample would be appreciated.

Thanks,
Nikolay


static PCPROPERTY_ITEM PropertiesJack[] =
{
  {
    &KSPROPSETID_Audio,
    KSPROPERTY_JACK_DESCRIPTION,
    KSPROPERTY_TYPE_GET |  KSPROPERTY_TYPE_BASICSUPPORT,
    PropertyHandler_Topology
  },
  {
    &KSPROPSETID_Audio,
    KSPROPERTY_AUDIO_CPU_RESOURCES,
    KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT,
    PropertyHandler_Topology
  }
};

DEFINE_PCAUTOMATION_TABLE_PROP(AutomationJack, PropertiesJack);




// KSPIN_TOPO_LINEOUT_DEST (output jack)
  {
    0,
    0,
    0,                                              // InstanceCount
    &AutomationJack,                                // AutomationTable
    {                                               // KsPinDescriptor
      0,                                            // InterfacesCount
      NULL,                                         // Interfaces
      0,                                            // MediumsCount
      NULL,                                         // Mediums
      SIZEOF_ARRAY(PinDataRangePointersBridge),     // DataRangesCount
      PinDataRangePointersBridge,                   // DataRanges
      KSPIN_DATAFLOW_OUT,                           // DataFlow
      KSPIN_COMMUNICATION_NONE,                     // Communication
      &KSNODETYPE_SPEAKER,                          // Category
      NULL,                                         // Name
      0                                             // Reserved
    }
  },



// KSPROPERTY_JACK_DESCRIPTION handler
NTSTATUS CMiniportTopologyMSVAD::PropertyHandlerJack
(
    IN  PPCPROPERTY_REQUEST     PropertyRequest
)
{
    NTSTATUS ntStatus = STATUS_INVALID_DEVICE_REQUEST;


    typedef struct
    {
        KSMULTIPLE_ITEM    mult_item;
        KSJACK_DESCRIPTION dsc;
    }  tJackProperty;

    tJackProperty * pJackProperty;


    if (PropertyRequest->Verb & KSPROPERTY_TYPE_GET)
    {
        ntStatus = ValidatePropertyParams(PropertyRequest,
sizeof(tJackProperty));
        if (NT_SUCCESS(ntStatus))
        {
            pJackProperty = (tJackProperty *)PropertyRequest->Value;
            pJackProperty->mult_item.Size  =  sizeof(tJackProperty);
            pJackProperty->mult_item.Count = 1;
            pJackProperty->dsc.ChannelMapping = 1; //ePcxChanMap_Unknown;
            pJackProperty->dsc.Color          = 0x808080; // Grey?
            pJackProperty->dsc.ConnectionType = eConnTypeUnknown;
            pJackProperty->dsc.GeoLocation    = eGeoLocFront;
            pJackProperty->dsc.GenLocation    = eGenLocOther;
            pJackProperty->dsc.PortConnection = ePortConnUnknown;
            pJackProperty->dsc.IsConnected    = getSpeakerConnectionStatus();
        }
    }
    else if (PropertyRequest->Verb & KSPROPERTY_TYPE_BASICSUPPORT)
    {
        ntStatus =
            PropertyHandler_BasicSupport
            (
                PropertyRequest,
                KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT,
                VT_ILLEGAL
            );
    }

    return ntStatus;
}
******************

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/

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

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: