|
dxd - dynax driver framework 3.0.0d222
cross platform open source driver development framework
|
USB bus frame clock source: one tick per bus frame - a high resolution OS timer wait toward the frame objective, optionally handing over to yield/spin polling covering user mode jitter for low latency sessions. More...
#include <dx_usb_clock.h>
Public Types | |
| typedef frame | clock_t |
| typedef dx::event< kernel > | event_t |
Public Member Functions | |
| catch (...) | |
| DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN | catch (const dx::exception &__dx_exception) |
| catch (const std::exception &__std_exception) | |
| dx_catchall_rethrow () virtual ~source()=default | |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END | source (device_t &device, typename dx::stream::settings< device_t >::transport &transport) |
| virtual void | sync (const typename clock_t::time_point &now) |
| void | sync (const clock_t::time_point &) override |
| aligns the next tick and the frame↔timestamp correlation to the bus frame counter: one tick per frame - a tick behind by less than a round (the slot array's depth) gets every missed frame ticked in turn, one behind by a round or ahead is resynced | |
| super & | wait (bool=false) override try |
Public Attributes | |
| std::atomic< dx::stream::clock::strategy > | strategy {static_cast<dx::stream::clock::strategy>(static_cast<uint32_t>(transport.sync_strategy))} |
| runtime switchable wait mode: the poll modes run only while a low latency session needs them - they occupy a core per group | |
| listener< dx::listen< std::function< void(const uint32_t &)> > > | strategy_listener |
Protected Attributes | |
| std::condition_variable | condition_variable |
| dx::event< kernel > | event |
| std::mutex | mutex |
| frame::time_point | objective |
| std::atomic< bool > | running |
| os_result | status |
USB bus frame clock source: one tick per bus frame - a high resolution OS timer wait toward the frame objective, optionally handing over to yield/spin polling covering user mode jitter for low latency sessions.
|
inherited |
|
inline |
|
inline |
|
inline |
|
inline |
|
defaultinherited |
|
inlinevirtualinherited |
|
inlineoverride |
aligns the next tick and the frame↔timestamp correlation to the bus frame counter: one tick per frame - a tick behind by less than a round (the slot array's depth) gets every missed frame ticked in turn, one behind by a round or ahead is resynced
|
inlineoverridevirtual |
Reimplemented from dx::source< dx::event< kernel >, frame >.
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
| std::atomic<dx::stream::clock::strategy> dx::usb::clock::source< device_t >::strategy {static_cast<dx::stream::clock::strategy>(static_cast<uint32_t>(transport.sync_strategy))} |
runtime switchable wait mode: the poll modes run only while a low latency session needs them - they occupy a core per group
| listener<dx::listen<std::function<void(const uint32_t&)> > > dx::usb::clock::source< device_t >::strategy_listener |
| (c) copyright 2009 dynamic acoustics e.U. | generated on |