|
dxd - dynax driver framework 2.7.0d222
cross platform open source driver development framework
|
wavert::stream: cyclic WaveRT buffer with client notifications More...
#include <dxd_portcls_audio.h>
Public Types | |
| typedef stream_desc_t | stream_desc |
Public Member Functions | |
| void | advance (unsigned int frames) |
| backend clock: frames elapsed; signals every crossed notification boundary | |
| stream (::IPortWaveRTStream *port, const stream_desc_t &stream_desc, unsigned int idx, const ::WAVEFORMATEXTENSIBLE &wave) | |
| virtual | ~stream () |
| the derived stream stops itself before the buffer goes | |
Public Attributes | |
| os_result | status = not_initialized |
Protected Member Functions | |
| ::NTSTATUS __stdcall | AllocateAudioBuffer (unsigned long requested, ::MDL **mdl, unsigned long *actual, unsigned long *offset, ::MEMORY_CACHING_TYPE *cache) override final |
| ::NTSTATUS __stdcall | AllocateBufferWithNotification (unsigned long notifications, unsigned long requested, ::MDL **mdl, unsigned long *actual, unsigned long *offset, ::MEMORY_CACHING_TYPE *cache) override final |
| void __stdcall | FreeAudioBuffer (::MDL *mdl, unsigned long size) override final |
| void __stdcall | FreeBufferWithNotification (::MDL *, unsigned long) override final |
| ::NTSTATUS __stdcall | GetClockRegister (::KSRTAUDIO_HWREGISTER *) override final |
| void __stdcall | GetHWLatency (::KSRTAUDIO_HWLATENCY *latency) override final |
| ::NTSTATUS __stdcall | GetPosition (::KSAUDIO_POSITION *position) override final |
| ::NTSTATUS __stdcall | GetPositionRegister (::KSRTAUDIO_HWREGISTER *) override final |
| ::NTSTATUS __stdcall | RegisterNotificationEvent (::KEVENT *event) override final |
| ::NTSTATUS __stdcall | SetFormat (::KSDATAFORMAT *) override final |
| ::NTSTATUS __stdcall | SetState (::KSSTATE state) override final |
| virtual os_result | start ()=0 |
| virtual void | stop ()=0 |
| ::NTSTATUS __stdcall | UnregisterNotificationEvent (::KEVENT *event) override final |
Protected Attributes | |
| const unsigned int | channels |
| const unsigned int | idx |
| const unsigned int | linesize |
| const unsigned int | samplerate |
| bool | started = false |
wavert::stream: cyclic WaveRT buffer with client notifications
The buffer is port-allocated and kernel-mapped; the byte position advances through advance(), driven by the backend's clock, signalling every registered notification event at each notification boundary. start()/stop() bind the stream to its backend.
| typedef stream_desc_t dxd::wavert::stream< stream_desc_t >::stream_desc |
|
inline |
|
inlinevirtual |
the derived stream stops itself before the buffer goes
|
inline |
backend clock: frames elapsed; signals every crossed notification boundary
|
inlinefinaloverrideprotected |
|
inlinefinaloverrideprotected |
IMiniportWaveRTStreamNotification
|
inlinefinaloverrideprotected |
|
inlinefinaloverrideprotected |
|
inlinefinaloverrideprotected |
|
inlinefinaloverrideprotected |
|
inlinefinaloverrideprotected |
|
inlinefinaloverrideprotected |
|
inlinefinaloverrideprotected |
|
inlinefinaloverrideprotected |
IMiniportWaveRTStream
|
inlinefinaloverrideprotected |
|
protectedpure virtual |
|
protectedpure virtual |
|
inlinefinaloverrideprotected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
| os_result dxd::wavert::stream< stream_desc_t >::status = not_initialized |
| (c) copyright 2009 dynamic acoustics e.U. | generated on |