[wdmaudiodev] Re: waveInGetPosition support in driver

  • From: Hugo Villeneuve <hvilleneuve@xxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Wed, 26 Jan 2005 11:03:03 -0500

Matt Gonzalez <matt@xxxxxxxxxxxxx> wrote:

> Sounds like you need to add support for KSPROPERTY_AUDIO_POSITION on 
> your pin.
> 
> Matt
> 
> Hugo Villeneuve wrote:
> 
> >Hi,
> >
> >     I'm totally new to WDM driver developement. I have a fully functional 
> > AVStream driver for our hardware that was developped for us, and we access 
> > it through the waveform API. The only thing missing is support for the 
> > function waveInGetPosition(). How do I register/add this functionality in 
> > my driver?
> >
> >     Hugo Villeneuve

        
        Thank-you, I added the KSPROPERTY_AUDIO_POSITION to the sink pin of my 
capture driver and it works fine!

        Here is how I did it for reference:

---------------------------------------------------------------------------------------------------------------------------

// ******************************
// * AUDIO_POSITION pin property
// ******************************
#define DEFINE_KSPROPERTY_CLFW_AUDIO_POSITION( GetHandler, SetHandler )\
    DEFINE_KSPROPERTY_ITEM(\
        KSPROPERTY_AUDIO_POSITION,\
        (GetHandler),\
        sizeof( KSPROPERTY ),\
        sizeof( ULONG ),\
        (SetHandler),\
        NULL,\
        0,\
        NULL,\
        NULL,\
        0 )

DEFINE_KSPROPERTY_TABLE( ksCapturePositionAudioPropertyItems )
{
    // GetCapturePosition is the callback function for GET
    DEFINE_KSPROPERTY_CLFW_AUDIO_POSITION( GetCapturePosition, NULL )
};

DEFINE_KSPROPERTY_SET_TABLE( ksCapturePosition_psTable )
{
    DEFINE_KSPROPERTY_SET(
        &KSPROPSETID_Audio,
        SIZEOF_ARRAY( ksCapturePositionAudioPropertyItems ),
        const_cast< PKSPROPERTY_ITEM >(ksCapturePositionAudioPropertyItems ),
        0,
        NULL )
};

DEFINE_KSAUTOMATION_TABLE( ksCapturePosition_autTable )
{
    DEFINE_KSAUTOMATION_PROPERTIES( ksCapturePosition_psTable ),
    DEFINE_KSAUTOMATION_METHODS_NULL,
    DEFINE_KSAUTOMATION_EVENTS_NULL
};


// *********************************
// * Filter Pins Descriptor
// *********************************

KSPIN_DESCRIPTOR_EX ksMergedPinDescriptors[4] =
{
    //-----------------------PLAYBACK PINS------------------------
    {
       ... Descriptor for playback sink pin ...
    },
    {
       ... Descriptor for playback output pin ...
    },

    //---------------CAPTURE PINS----------------------
    // Descriptor for capture sink pin.
    {
        &ksCapturePinDispatch,
        &ksCapturePosition_autTable,
        {
            0,
            NULL,
            0,
            NULL,
            SIZEOF_ARRAY(ksCaptureDataRanges),
            ksCaptureDataRanges,
            KSPIN_DATAFLOW_OUT,
            KSPIN_COMMUNICATION_SINK,
            &KSCATEGORY_AUDIO,
            NULL,
            0
        },
        KSPIN_FLAG_DO_NOT_INITIATE_PROCESSING,
        1,
        0,
        NULL,
        CapturePinDataIntersectionHandler
    },
    {
       ... Descriptor for capture bridge pin ...
    }
};


-- 
------------------------------------
 Hugo Villeneuve
 Concepteur de produits, matériel /
 Product developer, hardware

 CVDS Inc.
 (514) 426-7879 ext.242
 hvilleneuve@xxxxxxxx
 www.cvds.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.de/

Other related posts: