|
dxd - dynax driver framework 3.0.1d223
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 _clock_t | clock_t |
| typedef _event_t | event_t |
Public Member Functions | |
| os_result | readout (uint64_t &frame, int64_t ×tamp) noexcept |
| the correlation's source: the bus frame counter with its timestamp, the timestamp clock | |
| source (device_t &device, typename dx::stream::settings< device_t >::transport &transport) | |
| virtual void | sync (const typename frame::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 |
Static Public Member Functions | |
| static int64_t | now () |
Public Attributes | |
| std::atomic< dx::stream::clock::strategy > | strategy |
| switchable at runtime: the poll modes run only what the timer left | |
| listener< dx::listen< std::function< void(const uint32_t &)> > > | strategy_listener |
Protected Member Functions | |
| void | wait (int64_t remaining) |
| the timer covers the remaining ns up to the strategy's lead, the strategy polls the rest toward the objective | |
Protected Attributes | |
| std::condition_variable | condition_variable |
| frame::duration | duration |
| _event_t | event |
| std::mutex | mutex |
| _clock_t::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 |
|
inherited |
|
inline |
|
inlinestatic |
|
inlinenoexcept |
the correlation's source: the bus frame counter with its timestamp, the timestamp clock
|
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
the timer covers the remaining ns up to the strategy's lead, the strategy polls the rest toward the objective
|
inlineoverridevirtual |
Reimplemented from dx::timer< dx::event< kernel >, frame >.
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
inherited |
switchable at runtime: the poll modes run only what the timer left
| 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 |