|
dxd - dynax driver framework 3.0.1d223
cross platform open source driver development framework
|
WaveRT pin stream: exchanges the frames its device's tick hands it with its stream's ring. More...
#include <dxd_portcls_audio.h>
Public Types | |
| typedef class device | backend |
| typedef struct desc_t::stream | stream_desc |
Public Member Functions | |
| void | advance (unsigned int frames) |
| backend clock: frames elapsed; signals every crossed notification boundary | |
| bool | exchange (dx::circular &circular, unsigned int frames, transfer transfer, volatile uint64_t &at) |
| moves the frames elapsing with this tick between the WaveRT buffer and a ring | |
| stream (::IPortWaveRTStream *port, backend &device, const struct desc_t::stream &desc, unsigned int idx, const ::WAVEFORMATEXTENSIBLE &wave) | |
| the first endpoint to open binds the clock domain's rate: the engine opens its pins before it runs either | |
| void | tick (unsigned int frames) |
| one tick: the elapsing frames move between this endpoint and its stream's ring - at the transport's index, or at this endpoint's anchor where it is a client, a capture endpoint taking silence without one | |
| ~stream () override | |
| the derived stream stops itself before the buffer goes | |
Public Attributes | |
| os_result | status |
Protected Member Functions | |
| os_result | adopt (const dx::stream::format &ring) |
| pairs this endpoint's format with the ring's; called once the endpoint proposed its own and the ring answered | |
| ::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 |
| ::NTSTATUS __stdcall | UnregisterNotificationEvent (::KEVENT *event) override final |
Protected Attributes | |
| const unsigned int | channels |
| converter | conversion |
| dx::stream::cursor | cursor |
| this endpoint's anchor in its ring as a client | |
| const dx::stream::format | format |
| what Windows negotiated for this endpoint | |
| const unsigned int | idx |
| const unsigned int | linesize |
| const unsigned int | samplerate |
| bool | started |
| bool | transport |
| this endpoint is its ring's transport | |
Friends | |
| class | device |
WaveRT pin stream: exchanges the frames its device's tick hands it with its stream's ring.
| typedef class device dxd::portcls::device< streaming_device_t >::stream::backend |
|
inherited |
|
inline |
the first endpoint to open binds the clock domain's rate: the engine opens its pins before it runs either
|
inlineoverridevirtual |
the derived stream stops itself before the buffer goes
Reimplemented from dxd::wavert::stream< struct desc_t::stream >.
|
inlineprotectedinherited |
pairs this endpoint's format with the ring's; called once the endpoint proposed its own and the ring answered
|
inlineinherited |
backend clock: frames elapsed; signals every crossed notification boundary
|
inlinefinaloverrideprotectedinherited |
|
inlinefinaloverrideprotectedinherited |
IMiniportWaveRTStreamNotification
|
inlineinherited |
moves the frames elapsing with this tick between the WaveRT buffer and a ring
A render endpoint's buffer feeds the ring, a capture endpoint's is fed from it, each wrapped at its own end, at the ring position given: the transport's index or this endpoint's own anchor. Without a transfer the buffer takes silence.
|
inlinefinaloverrideprotectedinherited |
|
inlinefinaloverrideprotectedinherited |
|
inlinefinaloverrideprotectedinherited |
|
inlinefinaloverrideprotectedinherited |
|
inlinefinaloverrideprotectedinherited |
|
inlinefinaloverrideprotectedinherited |
|
inlinefinaloverrideprotectedinherited |
|
inlinefinaloverrideprotectedinherited |
IMiniportWaveRTStream
|
inlinefinaloverrideprotectedinherited |
|
inline |
one tick: the elapsing frames move between this endpoint and its stream's ring - at the transport's index, or at this endpoint's anchor where it is a client, a capture endpoint taking silence without one
|
inlinefinaloverrideprotectedinherited |
|
friend |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
this endpoint's anchor in its ring as a client
|
protectedinherited |
what Windows negotiated for this endpoint
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
inherited |
|
protectedinherited |
this endpoint is its ring's transport
| (c) copyright 2009 dynamic acoustics e.U. | generated on |