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

#include <dx_proxy_stream_device.h>

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

Classes

class  promoted
 dx::proxy::stream::device::promoted with device::preference More...

Public Types

typedef desc_t desc_t
typedef event< kernelevent
typedef stream_t stream_t

Public Member Functions

 _device (decltype(super::driver)&driver, decltype(super::id)&id)
 catch (...)
 catch (...)
 catch (...)
DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN catch (const dx::exception &__dx_exception)
DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN catch (const dx::exception &__dx_exception)
DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN catch (const dx::exception &__dx_exception)
 catch (const std::exception &__std_exception)
 catch (const std::exception &__std_exception)
 catch (const std::exception &__std_exception)
void conclude () noexcept override
DX_PRAGMA_IGNORE_RETURN_VALUE_END unsigned char configuration () const try
unsigned char configuration (unsigned char configuration) try
DX_PRAGMA_IGNORE_RETURN_VALUE_END unsigned char configurations () const try
 dx_catchall_handler (this,) void conclude() noexcept override
 dx_catchall_handler_or_rethrow (this, exception.error==not_implemented, return 0;) bool start(uint64_t frame=0
DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN virtual DX_PRAGMA_IGNORE_RETURN_VALUE_END uint64_t frame () const try
virtual bool hw_clock () const noexcept
virtual void hw_clock (abstract::event *hw_clock)
void info (std::ostream &os) noexcept override
virtual void operator= (const desc_t &desc)
_devicereset ()
virtual bool start (uint64_t=0, unsigned int starting=1)
virtual unsigned int stop (bool force=false) noexcept
virtual DX_PRAGMA_IGNORE_RETURN_VALUE_END std::string string (uint8_t) const
void wake () override
 ~_device () override

Public Attributes

promoted< typename super::client_map, typename super::client_map::value_t > clients {*this, ioctl::stream::desc}
abstract::eventclock
promoted< uint32_t >::preference< decltype(dx::stream::control< dx::proxy::device< preference_t > >::preference)> clocksource
std::atomic< size_t > counter
promoted< desc_t, typename desc_t::value_t > desc {*this, ioctl::stream::desc}
struct { 
   abstract::event *   clock 
   std::atomic< size_t >   counter 
   uint32_t   iosize 
hw
promoted< std::string > icon {*this, ioctl::device::icon}
promoted< uint32_tiosize {*this, super::iosize, ioctl::stream::clock::iosize}
dx::stream::device::monitor monitor
std::deque< std::function< void(control &)> > notify
promoted< uint32_tsafety_offset [dx::stream::direction::directions]
dx::promoted< uint32_tsamplerate
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< dx::proxy::device< preference_t > >::preference)> sync_cycle_ticks
promoted< structdesc_t::stream * >::template preference< decltype(dx::stream::control< dx::proxy::device< preference_t > >::preference), uint32_tsync_reference
dx::stream::device::monitor version

Protected Member Functions

virtual void flush ()
void halt () noexcept override

Protected Attributes

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< dx::proxy::device< preference_t > >, desc_t, stream_t >::desc_t
inherited

◆ event

template<typename desc_t, typename preference_t, typename stream_t>
typedef event<kernel> dx::proxy::stream::_device< desc_t, preference_t, stream_t >::event

◆ stream_t

typedef stream_t dx::stream::device< dx::stream::control< dx::proxy::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::proxy::stream::_device< desc_t, preference_t, stream_t >::_device ( decltype(super::driver)& driver,
decltype(super::id)& id )
inline
Here is the caller graph for this function:

◆ ~_device()

template<typename desc_t, typename preference_t, typename stream_t>
dx::proxy::stream::_device< desc_t, preference_t, stream_t >::~_device ( )
inlineoverride

Member Function Documentation

◆ catch() [1/9]

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

◆ catch() [2/9]

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

◆ catch() [3/9]

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

◆ catch() [4/9]

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

◆ catch() [5/9]

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

◆ catch() [6/9]

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

◆ catch() [7/9]

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

◆ catch() [8/9]

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

◆ catch() [9/9]

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

◆ conclude()

template<typename desc_t, typename preference_t, typename stream_t>
void dx::proxy::stream::_device< desc_t, preference_t, stream_t >::conclude ( )
inlineoverridenoexcept

◆ configuration() [1/2]

template<typename desc_t, typename preference_t, typename stream_t>
DX_PRAGMA_IGNORE_RETURN_VALUE_END unsigned char dx::proxy::stream::_device< desc_t, preference_t, stream_t >::configuration ( ) const
inline

◆ configuration() [2/2]

template<typename desc_t, typename preference_t, typename stream_t>
unsigned char dx::proxy::stream::_device< desc_t, preference_t, stream_t >::configuration ( unsigned char configuration)
inline

◆ configurations()

template<typename desc_t, typename preference_t, typename stream_t>
DX_PRAGMA_IGNORE_RETURN_VALUE_END unsigned char dx::proxy::stream::_device< desc_t, preference_t, stream_t >::configurations ( ) const
inline

◆ dx_catchall_handler()

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

◆ dx_catchall_handler_or_rethrow()

template<typename desc_t, typename preference_t, typename stream_t>
dx::proxy::stream::_device< desc_t, preference_t, stream_t >::dx_catchall_handler_or_rethrow ( this ,
exception. error = not_implemented,
return 0;  )
pure virtual

◆ flush()

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

◆ frame()

template<typename desc_t, typename preference_t, typename stream_t>
DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN virtual DX_PRAGMA_IGNORE_RETURN_VALUE_END uint64_t dx::proxy::stream::_device< desc_t, preference_t, stream_t >::frame ( ) const
inlinevirtual

◆ halt()

template<typename desc_t, typename preference_t, typename stream_t>
void dx::proxy::stream::_device< desc_t, preference_t, stream_t >::halt ( )
inlineoverrideprotectedvirtualnoexcept

Reimplemented from dx::stream::control< object_t >.

◆ hw_clock() [1/2]

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

◆ hw_clock() [2/2]

virtual void dx::stream::device< dx::stream::control< dx::proxy::device< preference_t > >, desc_t, stream_t >::hw_clock ( abstract::event * hw_clock)
inlinevirtualinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ info()

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

◆ operator=()

template<typename desc_t, typename preference_t, typename stream_t>
virtual void dx::proxy::stream::_device< desc_t, preference_t, stream_t >::operator= ( const desc_t & desc)
inlinevirtual

◆ reset()

template<typename desc_t, typename preference_t, typename stream_t>
_device & dx::proxy::stream::_device< desc_t, preference_t, stream_t >::reset ( )
inline

◆ 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

◆ string()

template<typename desc_t, typename preference_t, typename stream_t>
virtual DX_PRAGMA_IGNORE_RETURN_VALUE_END std::string dx::proxy::stream::_device< desc_t, preference_t, stream_t >::string ( uint8_t ) const
inlinevirtual

◆ wake()

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

Member Data Documentation

◆ clients

template<typename desc_t, typename preference_t, typename stream_t>
promoted<typename super::client_map, typename super::client_map::value_t> dx::proxy::stream::_device< desc_t, preference_t, stream_t >::clients {*this, ioctl::stream::desc}

◆ clock

◆ clocksource

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

◆ counter

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

◆ desc

template<typename desc_t, typename preference_t, typename stream_t>
promoted<desc_t, typename desc_t::value_t> dx::proxy::stream::_device< desc_t, preference_t, stream_t >::desc {*this, ioctl::stream::desc}

◆ [struct]

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

◆ icon

template<typename desc_t, typename preference_t, typename stream_t>
promoted<std::string> dx::proxy::stream::_device< desc_t, preference_t, stream_t >::icon {*this, ioctl::device::icon}

◆ iosize

template<typename desc_t, typename preference_t, typename stream_t>
promoted<uint32_t> dx::proxy::stream::_device< desc_t, preference_t, stream_t >::iosize {*this, super::iosize, ioctl::stream::clock::iosize}

◆ monitor

◆ notify

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

◆ safety_offset

template<typename desc_t, typename preference_t, typename stream_t>
promoted<uint32_t> dx::proxy::stream::_device< desc_t, preference_t, stream_t >::safety_offset[dx::stream::direction::directions]
Initial value:
{
promoted< uint32_t >::preference< decltype(dx::stream::control< dx::proxy::device< preference_t > >::preference)> safety_offset[direction::directions]
Definition dx_stream_device.h:120
@ rx
set/get RX stream safety_offset
Definition macOS/dx_platform.h:144
@ tx
set/get TX stream safety_offset
Definition macOS/dx_platform.h:143
@ in
Definition dx_stream.h:271
@ out
Definition dx_stream.h:271

◆ samplerate

template<typename desc_t, typename preference_t, typename stream_t>
dx::promoted<uint32_t> dx::proxy::stream::_device< desc_t, preference_t, stream_t >::samplerate
Initial value:
{
dx::promoted<uint32_t>::lock_t tmp(std::move(lock));
if(samplerate.initialized){
if(this->clock[0].settings){
uint32_t clocksource= this->clocksource;
dx_pass(this->clock[0].setting[clocksource].external.locked?
not_permitted: ok, "clocksource:%d", clocksource);
}
samplerate.commit(std::move(tmp),
this->stream[0].config[0].clock.domain,
this->clock[0].align(value)}));
}else
samplerate.commit(std::move(tmp), this->persistence?
this->template ioctl<uint32_t>(
ioctl::stream::clock::samplerate, this->sync_reference->config[0].clock.domain):
static_cast<uint32_t>(super::samplerate));
},
[this](const uint32_t& value){if(!this->persistence) super::samplerate= value;}}
std::unique_lock< mutex_t > lock_t
Definition dx_value.h:71
void commit(lock_t &&lock, const value_t &value) try
Definition dx_value.h:170
dx::promoted< uint32_t > samplerate
Definition dx_proxy_stream_device.h:152
Definition dx_proxy_stream_device.h:44
promoted< uint32_t >::preference< decltype(dx::stream::control< dx::proxy::device< preference_t > >::preference)> samplerate
Definition dx_stream_device.h:100
promoted< uint32_t >::preference< decltype(dx::stream::control< dx::proxy::device< preference_t > >::preference)> clocksource
Definition dx_stream_device.h:90
promoted< structdesc_t::stream * >::template preference< decltype(dx::stream::control< dx::proxy::device< preference_t > >::preference), uint32_t > sync_reference
Definition dx_stream_device.h:94
#define dx_pass(test,...)
Definition dx_exception.h:54
@ samplerate
set/get sample rate
Definition macOS/dx_platform.h:151
IOCTLs namespace.
Definition macOS/dx_platform.h:117
@ ok
Definition macOS/dx_platform.h:175
@ not_permitted
Definition macOS/dx_platform.h:191
unsigned int uint32_t
Definition wdk/dxd_platform.h:111

◆ 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 desc_t, typename preference_t, typename stream_t>
unsigned int dx::proxy::stream::_device< desc_t, preference_t, stream_t >::started

◆ streams

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

◆ sync_cycle_ticks

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

◆ sync_reference

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

◆ 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.