dxd - dynax driver framework 2.5.0d148
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::stream::device< super_device_t, _desc_t, preference_t, stream_t > Class Template Reference

#include <dx_stream_device.h>

+ Inheritance diagram for dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >:
+ Collaboration diagram for dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >:

Classes

class  monitor
 
struct  property
 

Public Types

typedef _desc_t desc_t
 

Public Member Functions

template<typename driver_t >
 device (driver_t &driver, const decltype(super::id)&id, const desc_t &desc={})
 
template<typename driver_t >
 device (driver_t &driver, const decltype(super::id)&id, preference_t &&preference, const desc_t &desc={})
 
virtual void hw_clock (dx::event< user > &hw_clock)
 
void info (std::ostream &os) noexcept override try
 

Public Attributes

promoted< uint32_t >::preference< preference_t > clocksource
 
struct { 
 
   dx::event< user > *   clock 
 
   std::atomic< size_t >   counter 
 
   uint32_t   iosize 
 
hw 
 
promoted< uint32_t >::preference< preference_t > iosize
 
dx::stream::device::monitor monitor
 
preference_t preference
 
promoted< uint32_t >::preference< preference_t > safety_offset [direction::directions]
 
promoted< uint32_t >::preference< preference_t > samplerate
 
std::map< decltype(_desc_t::stream::target.idx()), std::weak_ptr< stream_t > > streams
 
promoted< uint32_t >::preference< preference_t > sync_cycle_ticks
 
promoted< uint32_t >::preference< preference_t > sync_reference
 
dx::stream::device::monitor version
 

Member Typedef Documentation

◆ desc_t

template<typename super_device_t , typename _desc_t , typename preference_t , typename stream_t >
typedef _desc_t dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >::desc_t

Constructor & Destructor Documentation

◆ device() [1/2]

template<typename super_device_t , typename _desc_t , typename preference_t , typename stream_t >
template<typename driver_t >
dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >::device ( driver_t & driver,
const decltype(super::id)& id,
const desc_t & desc = {} )
inline

◆ device() [2/2]

template<typename super_device_t , typename _desc_t , typename preference_t , typename stream_t >
template<typename driver_t >
dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >::device ( driver_t & driver,
const decltype(super::id)& id,
preference_t && preference,
const desc_t & desc = {} )
inline

Member Function Documentation

◆ hw_clock()

template<typename super_device_t , typename _desc_t , typename preference_t , typename stream_t >
virtual void dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >::hw_clock ( dx::event< user > & hw_clock)
inlinevirtual

◆ info()

template<typename super_device_t , typename _desc_t , typename preference_t , typename stream_t >
void dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >::info ( std::ostream & os)
inlineoverridenoexcept

Member Data Documentation

◆ clock

template<typename super_device_t , typename _desc_t , typename preference_t , typename stream_t >
dx::event<user>* dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >::clock

◆ clocksource

template<typename super_device_t , typename _desc_t , typename preference_t , typename stream_t >
promoted<uint32_t>::preference<preference_t> dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >::clocksource
Initial value:
[this]() {return this->clock[0].defaults.clocksource;},
[this](uint32_t value) {return std::min(value, this->clock[0].settings);}}
preference_t preference
Definition dx_stream_device.h:51
dx::event< user > * clock
Definition dx_stream_device.h:57
unsigned int uint32_t
Definition dxd_base.h:110
select/get stream sample rate/iosize
Definition dx_stream.h:134
static constexpr auto clocksource
Definition dx_stream_device.h:79

◆ counter

template<typename super_device_t , typename _desc_t , typename preference_t , typename stream_t >
std::atomic<size_t> dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >::counter

◆ [struct]

struct { ... } dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >::hw

◆ iosize [1/2]

template<typename super_device_t , typename _desc_t , typename preference_t , typename stream_t >
uint32_t dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >::iosize

◆ iosize [2/2]

template<typename super_device_t , typename _desc_t , typename preference_t , typename stream_t >
promoted<uint32_t>::preference<preference_t> dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >::iosize
Initial value:
[this]() {return this->clock[0].defaults.iosize.hw_ticks* this->clock[0].interval(samplerate, this->stream[sync_reference].config[0].transaction.granularity);},
[this](uint32_t value) {return hw.iosize= this->clock[0].defaults.iosize.align(value, this->clock[0].interval(samplerate, this->stream[sync_reference].config[0].transaction.granularity));}}
promoted< uint32_t >::preference< preference_t > samplerate
Definition dx_stream_device.h:99
struct dx::stream::device::@16 hw
promoted< uint32_t >::preference< preference_t > sync_reference
Definition dx_stream_device.h:95
Definition dx_stream_stream.h:50
uint32_t granularity
Definition dx_stream_stream.h:91
static uint32_t align(bitmap bitmap, uint32_t samplerate)
Definition dx_stream.h:175
static constexpr auto iosize
Definition dx_stream_device.h:80

◆ monitor

template<typename super_device_t , typename _desc_t , typename preference_t , typename stream_t >
dx::stream::device::monitor dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >::monitor

◆ preference

template<typename super_device_t , typename _desc_t , typename preference_t , typename stream_t >
preference_t dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >::preference

◆ safety_offset

template<typename super_device_t , typename _desc_t , typename preference_t , typename stream_t >
promoted<uint32_t>::preference<preference_t> dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >::safety_offset[direction::directions]
Initial value:
{
{preference[property::safety_offset[direction::out]], [this]() {return this->clock[0].defaults.safety_offset[direction::out];}},
{preference[property::safety_offset[direction::in]], [this]() {return this->clock[0].defaults.safety_offset[direction::in];}},
}
@ in
Definition dx_stream.h:273
@ out
Definition dx_stream.h:273
static constexpr const char * safety_offset[]
Definition dx_stream_device.h:81

◆ samplerate

template<typename super_device_t , typename _desc_t , typename preference_t , typename stream_t >
promoted<uint32_t>::preference<preference_t> dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >::samplerate
Initial value:
[this]() {return this->clock[0].defaults.samplerate;},
[this](uint32_t value) {return (samplerate.initialized && this->clock[0].settings && this->clock[0].setting[clocksource].external.locked)?
static_cast<preference_t>(samplerate)(samplerate.dflt()): this->clock[0].align(value);}}
bool initialized
Definition dx_value.h:69
promoted< uint32_t >::preference< preference_t > clocksource
Definition dx_stream_device.h:91
static constexpr auto samplerate
Definition dx_stream_device.h:82

◆ streams

template<typename super_device_t , typename _desc_t , typename preference_t , typename stream_t >
std::map<decltype(_desc_t::stream::target.idx()), std::weak_ptr<stream_t> > dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >::streams

◆ sync_cycle_ticks

template<typename super_device_t , typename _desc_t , typename preference_t , typename stream_t >
promoted<uint32_t>::preference<preference_t> dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >::sync_cycle_ticks
Initial value:
[this]() {return this->clock[0].defaults.sync.cycle.hw_min_ticks;},
[](uint32_t value) {return std::max(value, 2u);}}
static constexpr auto ticks
Definition dx_stream_device.h:85

◆ sync_reference

template<typename super_device_t , typename _desc_t , typename preference_t , typename stream_t >
promoted<uint32_t>::preference<preference_t> dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >::sync_reference
Initial value:
[this]() {return this->clock[0].defaults.sync.reference;},
[this](uint32_t value) {return value; }}
static constexpr auto reference
Definition dx_stream_device.h:87

◆ version

template<typename super_device_t , typename _desc_t , typename preference_t , typename stream_t >
dx::stream::device::monitor dx::stream::device< super_device_t, _desc_t, preference_t, stream_t >::version

The documentation for this class was generated from the following file:

(c) copyright 2009 dynamic acoustics e.U. generated on Fri Aug 22 2025

a closed source license may be obtained by requesting a written permission from dynamic acoustics e.U.
however - governmental use generally and military use especially is strictly prohibited though.