dxd - dynax driver framework 3.0.0d222
cross platform open source driver development framework
Loading...
Searching...
No Matches
dxd::dmus::stream< backend_t > Class Template Reference

dmus::stream: a DirectMusic pin stream over its device's MIDI ring More...

#include <dxd_portcls_audio.h>

Inheritance diagram for dxd::dmus::stream< backend_t >:
Collaboration diagram for dxd::dmus::stream< backend_t >:

Public Types

typedef backend_t backend
typedef decltype(backend_t::desc) desc_t
typedef struct desc_t::stream stream_desc

Public Member Functions

 stream (::IUnknown *unknown, ::IAllocatorMXF *allocator, ::IMasterClock *master_clock, backend &device, unsigned int idx, uint8_t cable)
 ~stream ()

Public Attributes

os_result status = not_initialized

Protected Types

enum class  priority { low = LOW_PRIORITY , realtime = LOW_REALTIME_PRIORITY , high = HIGH_PRIORITY }

Protected Member Functions

::NTSTATUS __stdcall ConnectOutput (::IMXF *sink) override final
::NTSTATUS __stdcall DisconnectOutput (::IMXF *sink) override final
void join ()
 the completion event is signalled on launch()'s way out, the thread object only once the thread left the image; the thread itself never joins
os_result prio (priority priority)
os_result run ()
 IOKit process thread start.
os_result run ()
::NTSTATUS __stdcall SetState (::KSSTATE) override final

Static Protected Member Functions

static unsigned int prio ()
static unsigned int prio ()

Detailed Description

template<typename backend_t>
class dxd::dmus::stream< backend_t >

dmus::stream: a DirectMusic pin stream over its device's MIDI ring

Capture: a thread woken by the ring's broadcast decodes the USB MIDI packets of this pin's cable into DirectMusic events. Render: the events are encoded into the ring, the bus's tick sends them.

Member Typedef Documentation

◆ backend

template<typename backend_t>
typedef backend_t dxd::dmus::stream< backend_t >::backend

◆ desc_t

template<typename backend_t>
typedef decltype(backend_t::desc) dxd::dmus::stream< backend_t >::desc_t

◆ stream_desc

template<typename backend_t>
typedef struct desc_t::stream dxd::dmus::stream< backend_t >::stream_desc

Member Enumeration Documentation

◆ priority

enum class dxd::process::priority
stronginherited
Enumerator
low 

Lowest thread priority level.

realtime 

Lowest realtime priority level.

high 

Highest thread priority level.

Constructor & Destructor Documentation

◆ stream()

template<typename backend_t>
dxd::dmus::stream< backend_t >::stream ( ::IUnknown * unknown,
::IAllocatorMXF * allocator,
::IMasterClock * master_clock,
backend & device,
unsigned int idx,
uint8_t cable )
inline

◆ ~stream()

template<typename backend_t>
dxd::dmus::stream< backend_t >::~stream ( )
inline
Here is the call graph for this function:

Member Function Documentation

◆ ConnectOutput()

template<typename backend_t>
::NTSTATUS __stdcall dxd::dmus::stream< backend_t >::ConnectOutput ( ::IMXF * sink)
inlinefinaloverrideprotected
Here is the call graph for this function:

◆ DisconnectOutput()

template<typename backend_t>
::NTSTATUS __stdcall dxd::dmus::stream< backend_t >::DisconnectOutput ( ::IMXF * sink)
inlinefinaloverrideprotected
Here is the call graph for this function:

◆ join()

void dxd::process::join ( )
inlineprotectedinherited

the completion event is signalled on launch()'s way out, the thread object only once the thread left the image; the thread itself never joins

Here is the caller graph for this function:

◆ prio() [1/3]

unsigned int dxd::process::prio ( )
inlinestaticinherited

◆ prio() [2/3]

unsigned int dxd::process::prio ( )
inlinestaticinherited

◆ prio() [3/3]

os_result dxd::process::prio ( priority priority)
inlineinherited

◆ run() [1/2]

os_result dxd::process::run ( )
inlineinherited

IOKit process thread start.

run() starts this process. The internal mechanism blocks object termination until thread start() returns.

Here is the caller graph for this function:

◆ run() [2/2]

os_result dxd::process::run ( )
inlineinherited

<no thread will: keeps ~process() from waiting forever

Here is the call graph for this function:

◆ SetState()

template<typename backend_t>
::NTSTATUS __stdcall dxd::dmus::stream< backend_t >::SetState ( ::KSSTATE )
inlinefinaloverrideprotected

Member Data Documentation

◆ status

template<typename backend_t>
os_result dxd::dmus::stream< backend_t >::status = not_initialized

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.