dxd - dynax driver framework 2.1.0d58
cross platform open source driver development framework
Loading...
Searching...
No Matches
dxd::dmus::miniport< stream_t > Class Template Reference

dmus::miniport More...

#include <dxd_portcls_audio.h>

+ Inheritance diagram for dxd::dmus::miniport< stream_t >:
+ Collaboration diagram for dxd::dmus::miniport< stream_t >:

Public Member Functions

 miniport (const wchar_t *portname, const::DEVICE_OBJECT *wdm_bus, const::DEVICE_OBJECT *wdm_pdo, const typename stream_t::stream_desc &stream_desc, unsigned int idx)
 

Public Attributes

os_result status = not_initialized
 

Protected Member Functions

::IMXF * create_stream (::IUnknown *unknown, ::IAllocatorMXF *allocator, ::IMasterClock *master_clock)
 
::NTSTATUS __stdcall DataRangeIntersection (unsigned long,::KSDATARANGE *,::KSDATARANGE *, unsigned long, void *, unsigned long *)
 
::NTSTATUS __stdcall GetDescription (::PCFILTER_DESCRIPTOR **out_filter) override
 
::NTSTATUS __stdcall Init (::IUnknown *adapter, ::IResourceList *, ::IPortDMus *port, ::IServiceGroup **service_group) override final
 
::NTSTATUS __stdcall NewStream (::IMXF **stream, ::IUnknown *unknown, ::POOL_TYPE, unsigned long, ::DMUS_STREAM_TYPE stream_type, ::KSDATAFORMAT *format, ::IServiceGroup **service_group, ::IAllocatorMXF *allocator, ::IMasterClock *master_clock, unsigned long long *schedule_prefetch) override final
 
void __stdcall Service () override final
 

Detailed Description

template<typename stream_t>
class dxd::dmus::miniport< stream_t >

dmus::miniport

Constructor & Destructor Documentation

◆ miniport()

template<typename stream_t >
dxd::dmus::miniport< stream_t >::miniport ( const wchar_t * portname,
const::DEVICE_OBJECT * wdm_bus,
const::DEVICE_OBJECT * wdm_pdo,
const typename stream_t::stream_desc & stream_desc,
unsigned int idx )
inline

Member Function Documentation

◆ create_stream()

template<typename stream_t >
::IMXF * dxd::dmus::miniport< stream_t >::create_stream ( ::IUnknown * unknown,
::IAllocatorMXF * allocator,
::IMasterClock * master_clock )
inlineprotected
+ Here is the caller graph for this function:

◆ DataRangeIntersection()

template<typename stream_t >
::NTSTATUS __stdcall dxd::dmus::miniport< stream_t >::DataRangeIntersection ( unsigned long ,
::KSDATARANGE * ,
::KSDATARANGE * ,
unsigned long ,
void * ,
unsigned long *  )
inlineprotected

◆ GetDescription()

template<typename stream_t >
::NTSTATUS __stdcall dxd::dmus::miniport< stream_t >::GetDescription ( ::PCFILTER_DESCRIPTOR ** out_filter)
inlineoverrideprotected

IMiniport

Todo
in(): compile only: statics can't be conditionally initialized. move to be a member!

◆ Init()

template<typename stream_t >
::NTSTATUS __stdcall dxd::dmus::miniport< stream_t >::Init ( ::IUnknown * adapter,
::IResourceList * ,
::IPortDMus * port,
::IServiceGroup ** service_group )
inlinefinaloverrideprotected

IMiniportDMus

reference IPortDMus,

create obligatory IServiceGroup and reference it

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

◆ NewStream()

template<typename stream_t >
::NTSTATUS __stdcall dxd::dmus::miniport< stream_t >::NewStream ( ::IMXF ** stream,
::IUnknown * unknown,
::POOL_TYPE ,
unsigned long ,
::DMUS_STREAM_TYPE stream_type,
::KSDATAFORMAT * format,
::IServiceGroup ** service_group,
::IAllocatorMXF * allocator,
::IMasterClock * master_clock,
unsigned long long * schedule_prefetch )
inlinefinaloverrideprotected

Thats the only place the midiport needs the dummy IServiceGroup member for. The DMUS_STREAM_MIDI_CAPTURE stream will removed again when not providing an IServiceGroup.

+ Here is the call graph for this function:

◆ Service()

template<typename stream_t >
void __stdcall dxd::dmus::miniport< stream_t >::Service ( )
inlinefinaloverrideprotected

Member Data Documentation

◆ status

template<typename stream_t >
os_result dxd::dmus::miniport< stream_t >::status = not_initialized

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

(c) copyright 2009 dynamic acoustics e.U. generated on Wed Apr 24 2024

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.