dmus::stream
More...
#include <dxd_portcls_audio.h>
|
bool | cancel () |
|
virtual void | completion (os_result) |
|
::NTSTATUS __stdcall | ConnectOutput (::IMXF *sink) override final |
|
os_result | ctl (unsigned int ioctl, bool internal=false) |
|
::NTSTATUS __stdcall | DisconnectOutput (::IMXF *sink) override final |
|
template<class receipt_t > |
os_result | ictl (unsigned int ioctl, receipt_t &receipt, bool internal=false) |
|
template<class post_t , class receipt_t > |
os_result | ioctl (const post_t &post, unsigned int ioctl, receipt_t &receipt, bool internal=false) |
|
os_result | ioctl (const void *post, size_t post_size, unsigned int ioctl, void *receipt, size_t receipt_size, bool internal=false) |
| IOCTL IRP http://msdn.microsoft.com/en-us/library/windows/hardware/ff540663(v=vs.85).aspx.
|
|
template<class post_t > |
os_result | octl (const post_t &post, unsigned int ioctl, bool internal=false) |
|
os_result | octl (unsigned int post, unsigned int ioctl, bool internal=false) |
|
os_result | prio (priority priority) |
|
os_result | run () |
| IOKit process thread start.
|
|
os_result | run () |
|
::NTSTATUS __stdcall | SetState (::KSSTATE state) override final |
| Sets the state of the channel.
|
|
os_result | submit (unsigned int ioctl, void *others) |
| submit other IRP
|
|
template<
typename circular_t,
typename bus_t,
typename stream_desc_t>
class dxd::dmus::stream< circular_t, bus_t, stream_desc_t >
dmus::stream
◆ bus
◆ stream_desc
◆ priority
Enumerator |
---|
low | Lowest thread priority level.
|
realtime | Lowest realtime priority level.
|
high | Highest thread priority level.
|
◆ stream()
dxd::dmus::stream< circular_t, bus_t, stream_desc_t >::stream |
( |
::IUnknown * | unknown, |
|
|
::IAllocatorMXF * | allocator, |
|
|
::IMasterClock * | master_clock, |
|
|
const::DEVICE_OBJECT * | wdm_bus, |
|
|
const dx::stream< circular_t, bus_t, stream_desc_t >::open< bus_t > & | open, |
|
|
const stream_desc_t & | stream_desc, |
|
|
unsigned char | cable ) |
|
inline |
MIDI stream constructor.
starts base driver streaming
◆ ~stream()
portcls::stream destructor
stop streaming
Following sequence is only needed if stream was not disconnected: stops the streaming-from-device thread,
and waits for its termination while deconstruction.
If destructor waits here, it must reset the event! otherwise the stream process destructor will stall.
closes the endpoint,
stops streaming,
and closes the stream
Reimplemented from dxd::portcls::stream< circular_t, bus_t, stream_desc_t >.
◆ cancel()
template<
synchrony synchrony_t = synchrony::sync>
◆ completion()
template<
synchrony synchrony_t = synchrony::sync>
|
inlineprotectedvirtualinherited |
◆ ConnectOutput()
|
inlinefinaloverrideprotected |
Checks if this stream is not already connected,
checks if sink is valid,
this is a from-device-to-applicatopn stream: start device reader thread
◆ ctl()
template<
synchrony synchrony_t = synchrony::sync>
◆ DisconnectOutput()
|
inlinefinaloverrideprotected |
stops the streaming-from-device thread
and waits for its termination to ensure the stream is still connected.
If DisconnectOutput() waits here, it must reset the event! otherwise the stream cannot be deleted.
◆ ictl()
template<
synchrony synchrony_t = synchrony::sync>
template<
class receipt_t >
os_result dxd::wdm::irp< synchrony_t >::ictl |
( |
unsigned int | ioctl, |
|
|
receipt_t & | receipt, |
|
|
bool | internal = false ) |
|
inlineinherited |
◆ ioctl() [1/2]
template<
synchrony synchrony_t = synchrony::sync>
◆ ioctl() [2/2]
template<
synchrony synchrony_t = synchrony::sync>
◆ octl() [1/2]
template<
synchrony synchrony_t = synchrony::sync>
◆ octl() [2/2]
template<
synchrony synchrony_t = synchrony::sync>
◆ prio() [1/3]
◆ prio() [2/3]
◆ prio() [3/3]
◆ run() [1/2]
IOKit process thread start.
run() starts this process. The internal mechanism blocks object termination until thread start() returns.
◆ run() [2/2]
◆ SetState()
|
inlinefinaloverrideprotected |
Sets the state of the channel.
◆ start()
starts base driver streaming
◆ stop()
stops the underlaying base driver streaming
◆ submit()
template<
synchrony synchrony_t = synchrony::sync>
◆ data
◆ gap
◆ io
define the I/O class for shared memory
◆ rx
◆ started
◆ status
The documentation for this class was generated from the following file: