|
dxd - dynax driver framework 3.0.1d223
cross platform open source driver development framework
|
WASAPI client test device: the generic test device plus the endpoint share mode. More...
#include <dx_test_wasapi.h>
Public Types | |
| typedef std::deque< std::string > | args |
| typedef typename super_device_t::group_t | engine_t |
Public Member Functions | |
| void | conclude () noexcept override |
| the pins go while their device still stands: their streams reach its pipe on the way out | |
| template<typename ... initializer_t> | |
| device (decltype(super::driver)&driver, const decltype(super::id)&id, initializer_t... initializer) | |
| void | halt () noexcept |
| void | launch () override |
| the audio pins go into their group, which from then on is this device's streaming engine | |
| virtual void | operator<< (argsargs &argsargs) |
| virtual void | operator<< (const argsargs &argsargs) |
| virtual void | quiet (const args &={}) noexcept |
| void | run () |
| starting/stopping the engine's pins is what starts/stops their group's streaming session | |
Public Attributes | |
| uint32_t | dropout |
| engine_t * | engine |
| this device's streaming engine, the harness's tests run under | |
| uint64_t | tick |
Protected Types | |
| typedef engine_t::io_t | io_t |
Protected Member Functions | |
| void | _clocksource (const argsargs &argsargs={}) |
| void | _generator (argsargs &argsargs) |
| void | _impulse (args &) |
| void | _info (const args &) |
| list device information | |
| void | _iosize (const argsargs &argsargs) |
| set/get I/O streaming block size | |
| void | _license (const argsargs &argsargs) |
| void | _monitor (const argsargs &argsargs) |
| void | _reset (const args &={}) |
| void | _safety_offset (argsargs &argsargs, stream::role::role choice_role) |
| set/get the streaming group's safety offset of its transport (default: the lead the tick keeps to the device, kept per wait strategy) or of its clients (the ring margin), in clock ticks, per direction | |
| void | _samplerate (const argsargs &argsargs={}) |
| void | _source (const argsargs &argsargs={}) |
| void | _strategy (argsargs &argsargs) |
| set/get the wait strategies of the streaming group's transport and clients, both unless one is named | |
| void | _streaming_reset (const args &={}) |
| void | _string (const argsargs &argsargs={}) |
| void | _sync_reference (const argsargs &argsargs) |
| set/get I/O streaming block size | |
| void | clock_monitor (std::chrono::high_resolution_clock::duration duration) |
| virtual bool | head () const noexcept |
| virtual void | help (argsargs &argsargs) |
| virtual void | help_head () const noexcept |
| virtual void | indent (argsargs &argsargs) |
| virtual void | no_args (const argsargs &argsargs) |
| void | notify () noexcept |
| void | process (int64_t) noexcept |
| auto | select (const std::string &id) |
| void | sweep_write (stream::direction::direction direction, uint32_t value) |
| writes the swept value to the engine's client safety_offset, or - if sweep_transport - the streaming group's transport lead | |
| virtual void | version (const argsargs &argsargs={}) |
Protected Attributes | |
| std::optional< engine_t > | consumer |
| the engine where it is not this device's group_t slot | |
| std::map< std::deque< std::string >, dispatch > | dictionary |
| std::deque< sine > | generator |
| std::deque< struct impulse > | impulse |
| std::chrono::seconds | load_duration |
| std::deque< mask > | loopback |
| const char * | name |
| struct dx::parser:: { ... } | parameter |
| std::deque< mask > | pattern |
| std::deque< std::string > | scenarios |
| load: the scenarios the monitor runs its session under in turn, each for load_duration and closed by its own lead probe | |
| uint32_t | sweep |
| safety_offset ratchet: current in/out offset, raised on every pattern-test dropout for whichever direction's isr overload counted it; 0: off | |
| stream::direction::direction | sweep_direction |
| sweep scope: any= both directions seeded/ratcheted, out/in= only that one, the other stays at its own current (manually set) value | |
| bool | sweep_transport |
| sweep target: the transport's lead (kept per wait strategy) if set, else the client's margin | |
| struct dx::test::device:: { ... } | tmp |
WASAPI client test device: the generic test device plus the endpoint share mode.
|
inherited |
|
inherited |
|
protectedinherited |
|
inline |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
< one sample's turn of the sine, none without
|
inlineprotectedinherited |
list device information
|
inlineprotectedinherited |
set/get I/O streaming block size
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
set/get the streaming group's safety offset of its transport (default: the lead the tick keeps to the device, kept per wait strategy) or of its clients (the ring margin), in clock ticks, per direction
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
set/get the wait strategies of the streaming group's transport and clients, both unless one is named
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
set/get I/O streaming block size
|
inlineprotectedinherited |
< sweep: a pattern lock survived the monitor clear settle - dropouts only count while armed
< sweep: isr[tx]/isr[rx] overload snapshot at arming, to attribute the next dropout to a direction
< sweep: time of the last (re)start at the current value - never locking within a timeout escalates too (the never-lock trap: a start below the floor never arms, so the dropout ratchet alone would hang forever)
< samples per tick: the client margins' unit
the least reserve each lead kept: host out/in from their own cells (frames), local out/in from the ring distances at the pipe's fill/take (bytes -> ticks)
< load: the most each lead needed over the scenarios, by its cell
the lead each side needs: what it had, less the least it kept since the last clear, plus a tick - under whatever load the run saw
< load: the running scenario's threads
|
inlineoverridenoexceptinherited |
the pins go while their device still stands: their streams reach its pipe on the way out
|
inlinenoexceptinherited |
|
inlineprotectedvirtualnoexceptinherited |
|
inlineprotectedvirtualinherited |
|
inlineprotectedvirtualnoexceptinherited |
|
inlineprotectedvirtualinherited |
|
inlineoverrideinherited |
the audio pins go into their group, which from then on is this device's streaming engine
|
inlineprotectedvirtualinherited |
|
inlineprotectednoexceptinherited |
|
inlinevirtualinherited |
|
inlinevirtualinherited |
|
inlineprotectednoexceptinherited |
|
inlinevirtualnoexceptinherited |
|
inlineinherited |
starting/stopping the engine's pins is what starts/stops their group's streaming session
|
inlineprotectedinherited |
|
inlineprotectedinherited |
writes the swept value to the engine's client safety_offset, or - if sweep_transport - the streaming group's transport lead
|
inlineprotectedvirtualinherited |
|
protectedinherited |
the engine where it is not this device's group_t slot
|
protectedinherited |
|
inherited |
|
inherited |
this device's streaming engine, the harness's tests run under
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
| struct { ... } dx::parser::parameter |
|
protectedinherited |
|
protectedinherited |
load: the scenarios the monitor runs its session under in turn, each for load_duration and closed by its own lead probe
|
protectedinherited |
safety_offset ratchet: current in/out offset, raised on every pattern-test dropout for whichever direction's isr overload counted it; 0: off
|
protectedinherited |
sweep scope: any= both directions seeded/ratcheted, out/in= only that one, the other stays at its own current (manually set) value
|
protectedinherited |
sweep target: the transport's lead (kept per wait strategy) if set, else the client's margin
|
inherited |
| struct { ... } dx::test::device< super_device_t, typename super_device_t::group_t >::tmp |
| (c) copyright 2009 dynamic acoustics e.U. | generated on |