dxd - dynax driver framework 2.7.0d222
cross platform open source driver development framework
Loading...
Searching...
No Matches
dxd::portcls::wave< stream_desc_t > Class Template Reference

wave filter description shared by the wave port models More...

#include <dxd_portcls_audio.h>

Inheritance diagram for dxd::portcls::wave< stream_desc_t >:
Collaboration diagram for dxd::portcls::wave< stream_desc_t >:

Public Attributes

os_result status =not_initialized

Protected Member Functions

::NTSTATUS DataRangeIntersection (unsigned long pin, ::KSDATARANGE *client, ::KSDATARANGE *test, unsigned long size, void *format, unsigned long *resulting_size)
 http://msdn.microsoft.com/en-us/library/windows/hardware/ff536764(v=vs.85).aspx
::NTSTATUS GetDescription (::PCFILTER_DESCRIPTOR **out_filter)
os_result validate (const ::KSDATARANGE *range, const ::KSDATARANGE *test) const
 validate KSDATARANGE against streams KSDATARANGE_AUDIO supported collation
 wave (const wchar_t *portname, const::DEVICE_OBJECT *wdm_bus, const::DEVICE_OBJECT *wdm_pdo, const stream_desc_t &stream_desc, unsigned int idx, dx::stream::clock::bitmap bitmap)

Static Protected Member Functions

static const ::WAVEFORMATEXTENSIBLE * waveformat (const ::KSDATAFORMAT *format)
 WAVEFORMATEXTENSIBLE of a validated pin format.

Protected Attributes

::GUID category [3] {KSCATEGORY_AUDIO, {}, KSCATEGORY_REALTIME}
 filter
const unsigned int idx = 0
::PCNODE_DESCRIPTOR node [1]
::PCPIN_DESCRIPTOR pin [2]
::KSDATARANGE * streams [static_cast< int >(dx::stream::clock::rates)+4]
const::DEVICE_OBJECT * wdm_bus

Detailed Description

template<typename stream_desc_t>
class dxd::portcls::wave< stream_desc_t >

wave filter description shared by the wave port models

Pin 0 faces the OS with one KSDATARANGE_AUDIO per supported rate, pin 1 bridges to the DAC/ADC node; the filter is KSCATEGORY_AUDIO, CAPTURE/RENDER and REALTIME.

Constructor & Destructor Documentation

◆ wave()

template<typename stream_desc_t>
dxd::portcls::wave< stream_desc_t >::wave ( const wchar_t * portname,
const::DEVICE_OBJECT * wdm_bus,
const::DEVICE_OBJECT * wdm_pdo,
const stream_desc_t & stream_desc,
unsigned int idx,
dx::stream::clock::bitmap bitmap )
inlineprotected

Member Function Documentation

◆ DataRangeIntersection()

template<typename stream_desc_t>
::NTSTATUS dxd::portcls::wave< stream_desc_t >::DataRangeIntersection ( unsigned long pin,
::KSDATARANGE * client,
::KSDATARANGE * test,
unsigned long size,
void * format,
unsigned long * resulting_size )
inlineprotected

http://msdn.microsoft.com/en-us/library/windows/hardware/ff536764(v=vs.85).aspx

validates and computes resulting size,

validates and checks client data range against pin collation

validates format return buffer size,

if passed validation test is KSDATARANGE_AUDIO

composes extra DSound specifier,

◆ GetDescription()

template<typename stream_desc_t>
::NTSTATUS dxd::portcls::wave< stream_desc_t >::GetDescription ( ::PCFILTER_DESCRIPTOR ** out_filter)
inlineprotected

◆ validate()

template<typename stream_desc_t>
os_result dxd::portcls::wave< stream_desc_t >::validate ( const ::KSDATARANGE * range,
const ::KSDATARANGE * test ) const
inlineprotected

validate KSDATARANGE against streams KSDATARANGE_AUDIO supported collation

Returns
STATUS_NO_MATCH if not supported or STATUS_NOT_IMPLEMENTED if handled by port class

◆ waveformat()

template<typename stream_desc_t>
const ::WAVEFORMATEXTENSIBLE * dxd::portcls::wave< stream_desc_t >::waveformat ( const ::KSDATAFORMAT * format)
inlinestaticprotected

WAVEFORMATEXTENSIBLE of a validated pin format.

Member Data Documentation

◆ category

template<typename stream_desc_t>
::GUID dxd::portcls::wave< stream_desc_t >::category[3] {KSCATEGORY_AUDIO, {}, KSCATEGORY_REALTIME}
protected

◆ filter

template<typename stream_desc_t>
dxd::portcls::wave< stream_desc_t >::filter
protected

◆ idx

template<typename stream_desc_t>
const unsigned int dxd::portcls::miniport< stream_desc_t >::idx = 0
protectedinherited

◆ node

template<typename stream_desc_t>
::PCNODE_DESCRIPTOR dxd::portcls::wave< stream_desc_t >::node[1]
protected

◆ pin

template<typename stream_desc_t>
::PCPIN_DESCRIPTOR dxd::portcls::wave< stream_desc_t >::pin[2]
protected

◆ status

template<typename stream_desc_t>
os_result dxd::portcls::miniport< stream_desc_t >::status =not_initialized
inherited

◆ streams

template<typename stream_desc_t>
::KSDATARANGE* dxd::portcls::wave< stream_desc_t >::streams[static_cast< int >(dx::stream::clock::rates)+4]
protected

◆ wdm_bus

template<typename stream_desc_t>
const::DEVICE_OBJECT* dxd::portcls::miniport< stream_desc_t >::wdm_bus
protectedinherited

The documentation for this class was generated from the following file:

(c) copyright 2009 dynamic acoustics e.U. generated on

a closed source license may be obtained by requesting a written permission from dynamic acoustics e.U.
however - governmental use generally and military use especially is strictly prohibited though.