dxd - dynax driver framework 2.6.0d205
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::usb::stream::_device< desc_t, preference_t, stream_t > Class Template Reference

#include <dx_usb_stream_device.h>

Inheritance diagram for dx::usb::stream::_device< desc_t, preference_t, stream_t >:
Collaboration diagram for dx::usb::stream::_device< desc_t, preference_t, stream_t >:

Public Types

typedef desc_t desc_t
typedef stream_t stream_t

Public Member Functions

 _device (decltype(super::driver)&driver, decltype(super::id)&id, const desc_t &desc={})
 catch (...)
DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN catch (const dx::exception &__dx_exception)
 catch (const std::exception &__std_exception)
DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN virtual DX_PRAGMA_IGNORE_RETURN_VALUE_END void configure ()
 dx_catchall_handler (this,) void conclude() noexcept override
virtual bool hw_clock () const noexcept
virtual void hw_clock (abstract::event *hw_clock)
DX_PRAGMA_IGNORE_RETURN_VALUE_END void info (std::ostream &os) noexcept override
void launch () override try
virtual bool start (uint64_t=0, unsigned int starting=1)
virtual unsigned int stop (bool force=false) noexcept
void wake () override

Public Attributes

union { 
   struct { 
      struct { 
         struct { 
            uint8_t   id 
         }   selector
         struct { 
            uint8_t   id 
         }   source
      }   clock
   }   v2
adc
uint16_t bcdADC = 0
promoted< uint32_t >::preference< decltype(dx::stream::control< usb::device< preference_t > >::preference)> clocksource
std::atomic< size_t > counter
struct { 
   abstract::event *   clock 
   std::atomic< size_t >   counter 
   uint32_t   iosize 
hw
promoted< std::string >::preference< decltype(dx::stream::control< usb::device< preference_t > >::preference)> icon
std::weak_ptr< dx::circularimplicit_feedback
promoted< uint32_t >::preference< decltype(dx::stream::control< usb::device< preference_t > >::preference)> iosize
uint32_t iosize
dx::stream::device::monitor monitor
std::deque< std::function< void(control &)> > notify
promoted< uint32_t >::preference< decltype(dx::stream::control< usb::device< preference_t > >::preference)> safety_offset [direction::directions]
promoted< uint32_t >::preference< decltype(dx::stream::control< usb::device< preference_t > >::preference)> samplerate
std::atomic< unsigned int > started {}
std::map< decltype(desc_t::stream::target.idx()), std::weak_ptr< stream_t > > streams
promoted< uint32_t >::preference< decltype(dx::stream::control< usb::device< preference_t > >::preference)> sync_cycle_ticks
promoted< structdesc_t::stream * >::template preference< decltype(dx::stream::control< usb::device< preference_t > >::preference), uint32_tsync_reference
dx::stream::device::monitor version

Protected Member Functions

virtual void flush ()
virtual void halt ()

Protected Attributes

decltype(super::samplerate) ::chain samplerate_server
std::recursive_mutex start_stop_in_progress
 start/stop operation in progress

Member Typedef Documentation

◆ desc_t

typedef desc_t dx::stream::device< dx::stream::control< usb::device< preference_t > >, desc_t, stream_t >::desc_t
inherited

◆ stream_t

typedef stream_t dx::stream::device< dx::stream::control< usb::device< preference_t > >, desc_t, stream_t >::stream_t
inherited

Constructor & Destructor Documentation

◆ _device()

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

Member Function Documentation

◆ catch() [1/3]

template<typename desc_t, typename preference_t, typename stream_t>
dx::usb::stream::_device< desc_t, preference_t, stream_t >::catch ( ...)
inline

◆ catch() [2/3]

template<typename desc_t, typename preference_t, typename stream_t>
DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN dx::usb::stream::_device< desc_t, preference_t, stream_t >::catch ( const dx::exception & __dx_exception)
inline

◆ catch() [3/3]

template<typename desc_t, typename preference_t, typename stream_t>
dx::usb::stream::_device< desc_t, preference_t, stream_t >::catch ( const std::exception & __std_exception)
inline

◆ configure()

template<typename desc_t, typename preference_t, typename stream_t>
DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN virtual DX_PRAGMA_IGNORE_RETURN_VALUE_END void dx::usb::stream::_device< desc_t, preference_t, stream_t >::configure ( )
inlinevirtual
Todo
usb::stream::device::configure(): support odd sample rate ranges

◆ dx_catchall_handler()

template<typename object_t>
dx::stream::control< object_t >::dx_catchall_handler ( this )
inlineoverridenoexceptinherited

◆ flush()

template<typename object_t>
virtual void dx::stream::control< object_t >::flush ( )
inlineprotectedvirtualinherited

◆ halt()

◆ hw_clock() [1/2]

virtual bool dx::stream::device< dx::stream::control< usb::device< preference_t > >, desc_t, stream_t >::hw_clock ( ) const
inlinevirtualnoexceptinherited

◆ hw_clock() [2/2]

virtual void dx::stream::device< dx::stream::control< usb::device< preference_t > >, desc_t, stream_t >::hw_clock ( abstract::event * hw_clock)
inlinevirtualinherited

◆ info()

template<typename desc_t, typename preference_t, typename stream_t>
DX_PRAGMA_IGNORE_RETURN_VALUE_END void dx::usb::stream::_device< desc_t, preference_t, stream_t >::info ( std::ostream & os)
inlineoverridenoexcept

◆ launch()

template<typename desc_t, typename preference_t, typename stream_t>
void dx::usb::stream::_device< desc_t, preference_t, stream_t >::launch ( )
inlineoverride

◆ start()

◆ stop()

template<typename object_t>
virtual unsigned int dx::stream::control< object_t >::stop ( bool force = false)
inlinevirtualnoexceptinherited

result indicates the amount of stopped start references

◆ wake()

void dx::stream::device< dx::stream::control< usb::device< preference_t > >, desc_t, stream_t >::wake ( )
inlineoverrideinherited

Member Data Documentation

◆ [union]

union { ... } dx::usb::stream::_device< desc_t, preference_t, stream_t >::adc

◆ bcdADC

template<typename desc_t, typename preference_t, typename stream_t>
uint16_t dx::usb::stream::_device< desc_t, preference_t, stream_t >::bcdADC = 0

◆ [struct]

struct { ... } dx::usb::stream::_device< desc_t, preference_t, stream_t >::clock

◆ clocksource

promoted<uint32_t>::preference<decltype(dx::stream::control< usb::device< preference_t > >::preference)> dx::stream::device< dx::stream::control< usb::device< preference_t > >, desc_t, stream_t >::clocksource
inherited

◆ counter

std::atomic<size_t> dx::stream::device< dx::stream::control< usb::device< preference_t > >, desc_t, stream_t >::counter
inherited

◆ [struct]

struct { ... } dx::stream::device< dx::stream::control< usb::device< preference_t > >, desc_t, stream_t >::hw

◆ icon

promoted<std::string>::preference<decltype(dx::stream::control< usb::device< preference_t > >::preference)> dx::stream::device< dx::stream::control< usb::device< preference_t > >, desc_t, stream_t >::icon
inherited

◆ id

template<typename desc_t, typename preference_t, typename stream_t>
uint8_t dx::usb::stream::_device< desc_t, preference_t, stream_t >::id

◆ implicit_feedback

template<typename desc_t, typename preference_t, typename stream_t>
std::weak_ptr<dx::circular> dx::usb::stream::_device< desc_t, preference_t, stream_t >::implicit_feedback

◆ iosize [1/2]

promoted<uint32_t>::preference<decltype(dx::stream::control< usb::device< preference_t > >::preference)> dx::stream::device< dx::stream::control< usb::device< preference_t > >, desc_t, stream_t >::iosize
inherited

◆ iosize [2/2]

uint32_t dx::stream::device< dx::stream::control< usb::device< preference_t > >, desc_t, stream_t >::iosize
inherited

◆ monitor

◆ notify

template<typename object_t>
std::deque<std::function<void(control&)> > dx::stream::control< object_t >::notify
inherited

◆ safety_offset

promoted<uint32_t>::preference<decltype(dx::stream::control< usb::device< preference_t > >::preference)> dx::stream::device< dx::stream::control< usb::device< preference_t > >, desc_t, stream_t >::safety_offset[direction::directions]
inherited

◆ samplerate

promoted<uint32_t>::preference<decltype(dx::stream::control< usb::device< preference_t > >::preference)> dx::stream::device< dx::stream::control< usb::device< preference_t > >, desc_t, stream_t >::samplerate
inherited

◆ samplerate_server

template<typename desc_t, typename preference_t, typename stream_t>
decltype(super::samplerate) ::chain dx::usb::stream::_device< desc_t, preference_t, stream_t >::samplerate_server
protected

◆ [struct]

struct { ... } dx::usb::stream::_device< desc_t, preference_t, stream_t >::selector

◆ [struct]

struct { ... } dx::usb::stream::_device< desc_t, preference_t, stream_t >::source

◆ start_stop_in_progress

template<typename object_t>
std::recursive_mutex dx::stream::control< object_t >::start_stop_in_progress
protectedinherited

start/stop operation in progress

◆ started

template<typename object_t>
std::atomic<unsigned int> dx::stream::control< object_t >::started {}
inherited

◆ streams

std::map<decltype(desc_t::stream::target.idx()), std::weak_ptr<stream_t> > dx::stream::device< dx::stream::control< usb::device< preference_t > >, desc_t, stream_t >::streams
inherited

◆ sync_cycle_ticks

promoted<uint32_t>::preference<decltype(dx::stream::control< usb::device< preference_t > >::preference)> dx::stream::device< dx::stream::control< usb::device< preference_t > >, desc_t, stream_t >::sync_cycle_ticks
inherited

◆ sync_reference

promoted<structdesc_t::stream*>::template preference<decltype(dx::stream::control< usb::device< preference_t > >::preference), uint32_t> dx::stream::device< dx::stream::control< usb::device< preference_t > >, desc_t, stream_t >::sync_reference
inherited

◆ [struct]

struct { ... } dx::usb::stream::_device< desc_t, preference_t, stream_t >::v2

◆ version


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

(c) copyright 2009 dynamic acoustics e.U. generated on

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.