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

#include <dx_virtual_stream_device.h>

Inheritance diagram for dx::virtuel::stream::device< desc_t, preference_t, stream_t >:
Collaboration diagram for dx::virtuel::stream::device< desc_t, preference_t, stream_t >:

Public Types

enum class  bus { usb = 'usb ' , pci = 'pci ' , vm = 'virt' }
typedef desc desc_t
typedef shared::event event
typedef dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > stream_t
typedef desc value_t

Public Member Functions

struct streamalign (struct stream *sync_reference)
uint32_t align (uint32_t sync_reference) const
DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN catch (const dx::exception &__dx_exception)
void conclude () noexcept override
 dx_catchall_handler (this,) void conclude() noexcept override
uint32_t enumerate (const format &format=any) const
 enumerate typified pins
void exception (const dx::exception &exception, bool filtered=false) const noexcept override
struct streamfind (const decltype(stream::target.idx())&target)
struct streamfind (const format &format=any, enum direction::direction direction=direction::any)
struct streamfind (const target_t &target)
struct streamfind (uint32_t &pin, const format &format=any, enum direction::direction direction=direction::any)
 finds and returns the stream description and pin idx into this stream
virtual uint64_t frame () const
void hw_clock (abstract::event *) override try
DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN DX_PRAGMA_IGNORE_RETURN_VALUE_END void info (std::ostream &os) noexcept override
virtual void launch ()
 launch notification: object mounted and ready to use
bool operator== (const desc &desc) const
virtual deviceoperator>> (std::ostream &) const
_devicereset ()
virtual void sleep ()
 notify system will sleep stub
virtual bool start (uint64_t=0, unsigned int starting=1)
virtual unsigned int stop (bool force=false) noexcept
virtual std::string string (uint8_t) const
uint32_t sync_reference (struct stream *sync_reference)
struct streamsync_reference (uint32_t sync_reference)
void wake () override

Public Attributes

enum dx::stream::desc::bus bus
promoted< typename super::client_map > clients
abstract::eventclock
uint32_t clocks
 number of independent clocks [currenlty only single clock support]
promoted< uint32_t >::preference< decltype(dx::stream::control< dx::device< std::string, dx::preference > >::preference)> clocksource
std::atomic< size_t > counter
promoted< desc >::template preference< dx::preference, typename desc::value_tdesc
bool dflt
 can be selected as default (OS audio) device
dx::driver< decltype(id), dx::preference > & driver
bool editable
 can be edited
bool hidden
 hide device
struct { 
   abstract::event *   clock 
   std::atomic< size_t >   counter 
   uint32_t   iosize 
hw
promoted< std::string >::preference< decltype(dx::stream::control< dx::device< std::string, dx::preference > >::preference)> icon
const std::string id
promoted< uint32_t >::preference< decltype(dx::stream::control< dx::device< std::string, dx::preference > >::preference)> iosize
uint32_t iosize
bool launched
struct dx::stream::desc::name_id model
dx::stream::device::monitor monitor
std::deque< std::function< void(control &)> > notify
bool persistence
 device has capability to store persistent settings (i.e. sample rate; clock source; etc.)
dx::preference preference
std::string puid
 persistent UID - system unique - could change with location
std::string puuid
 persistent universal UID - universally unique ID (i.e. serial number)
promoted< uint32_t >::preference< decltype(dx::stream::control< dx::device< std::string, dx::preference > >::preference)> safety_offset [direction::directions]
promoted< uint32_t >::preference< decltype(dx::stream::control< dx::device< std::string, dx::preference > >::preference)> samplerate
direction::direction start_stop_order = direction::any
std::atomic< unsigned int > started
struct dx::stream::desc::stream stream [max_streams]
std::map< decltype(desc::stream::target.idx()), std::weak_ptr< dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > > > streams
promoted< uint32_t >::preference< decltype(dx::stream::control< dx::device< std::string, dx::preference > >::preference)> sync_cycle_ticks
promoted< structdesc_t::stream * >::template preference< decltype(dx::stream::control< dx::device< std::string, dx::preference > >::preference), uint32_tsync_reference
struct dx::stream::desc::name_id vendor
dx::stream::device::monitor version

Protected Member Functions

virtual void flush ()
virtual void halt ()

Protected Attributes

std::recursive_mutex start_stop_in_progress
 start/stop operation in progress

Member Typedef Documentation

◆ desc_t

typedef desc dx::stream::device< dx::stream::control< dx::device< std::string, dx::preference > >, desc, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::desc
inherited

◆ event

typedef shared::event dx::virtuel::stream::_device< desc, dx::preference, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::event
inherited

◆ stream_t

◆ value_t

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
typedef desc dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::value_t
inherited

Member Enumeration Documentation

◆ bus

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
enum class dx::stream::desc::bus
stronginherited
Enumerator
usb 
pci 
vm 

Member Function Documentation

◆ align() [1/2]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
struct stream * dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::align ( struct stream * sync_reference)
inlineinherited

◆ align() [2/2]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
uint32_t dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::align ( uint32_t sync_reference) const
inlineinherited

◆ catch()

DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN dx::virtuel::stream::_device< desc, dx::preference, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::catch ( const dx::exception & __dx_exception)
inlineinherited

◆ conclude()

void dx::virtuel::stream::_device< desc, dx::preference, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::conclude ( )
inlineoverridevirtualnoexceptinherited

Reimplemented from dx::object.

◆ dx_catchall_handler()

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

◆ enumerate()

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
uint32_t dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::enumerate ( const format & format = any) const
inlineinherited

enumerate typified pins

◆ exception()

void dx::virtuel::stream::_device< desc, dx::preference, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::exception ( const dx::exception & exception,
bool filtered = false ) const
inlineoverridevirtualnoexceptinherited

◆ find() [1/4]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
struct stream * dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::find ( const decltype(stream::target.idx())& target)
inlineinherited

◆ find() [2/4]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
struct stream * dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::find ( const format & format = any,
enum direction::direction direction = direction::any )
inlineinherited
Parameters
formatsearch stream format filter
directionsearch stream direction filter

◆ find() [3/4]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
struct stream * dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::find ( const target_t & target)
inlineinherited

◆ find() [4/4]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
struct stream * dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::find ( uint32_t & pin,
const format & format = any,
enum direction::direction direction = direction::any )
inlineinherited

finds and returns the stream description and pin idx into this stream

Returns
stream description of indexed pin, pin idx will be altered on return!
Parameters
pinin: global pin index, out: pin index into returned stream description
formatsearch stream format filter
directionsearch stream direction filter
Here is the caller graph for this function:

◆ flush()

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

◆ frame()

virtual uint64_t dx::virtuel::stream::_device< desc, dx::preference, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::frame ( ) const
inlinevirtualinherited

◆ halt()

virtual void dx::stream::control< object_t >::halt ( )
inlineprotectedvirtualinherited

◆ hw_clock()

◆ info()

DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN DX_PRAGMA_IGNORE_RETURN_VALUE_END void dx::virtuel::stream::_device< desc, dx::preference, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::info ( std::ostream & os)
inlineoverridevirtualnoexceptinherited

◆ launch()

virtual void dx::object::launch ( )
inlinevirtualinherited

launch notification: object mounted and ready to use

◆ operator==()

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
bool dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::operator== ( const desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations > & desc) const
inlineinherited

◆ operator>>()

virtual device & dx::device< std::string, dx::preference >::operator>> ( std::ostream & ) const
inlinevirtualinherited

◆ reset()

_device & dx::virtuel::stream::_device< desc, dx::preference, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::reset ( )
inlineinherited

◆ sleep()

virtual void dx::device< std::string, dx::preference >::sleep ( )
inlinevirtualinherited

notify system will sleep stub

◆ start()

virtual bool dx::stream::control< object_t >::start ( uint64_t = 0,
unsigned int starting = 1 )
inlinevirtualinherited

result indicates if start changed the state.

◆ stop()

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

result indicates the amount of stopped start references

◆ string()

virtual std::string dx::virtuel::stream::_device< desc, dx::preference, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::string ( uint8_t ) const
inlinevirtualinherited

◆ sync_reference() [1/2]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
uint32_t dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::sync_reference ( struct stream * sync_reference)
inlineinherited

◆ sync_reference() [2/2]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
struct stream * dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::sync_reference ( uint32_t sync_reference)
inlineinherited

◆ wake()

void dx::stream::device< dx::stream::control< dx::device< std::string, dx::preference > >, desc, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::wake ( )
inlineoverrideinherited

Member Data Documentation

◆ bus

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
enum dx::stream::desc::bus dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::bus
inherited

◆ clients

promoted<typename super::client_map> dx::virtuel::stream::_device< desc, dx::preference, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::clients
inherited

◆ clock

◆ clocks

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
uint32_t dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::clocks
inherited

number of independent clocks [currenlty only single clock support]

◆ clocksource

promoted<uint32_t>::preference<decltype(dx::stream::control< dx::device< std::string, dx::preference > >::preference)> dx::stream::device< dx::stream::control< dx::device< std::string, dx::preference > >, desc, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::clocksource
inherited

◆ counter

std::atomic<size_t> dx::stream::device< dx::stream::control< dx::device< std::string, dx::preference > >, desc, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::counter
inherited

◆ desc

promoted<desc>::template preference<dx::preference, typename desc::value_t> dx::virtuel::stream::_device< desc, dx::preference, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::desc
inherited

◆ dflt

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
bool dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::dflt
inherited

can be selected as default (OS audio) device

◆ driver

dx::driver<decltype(id), dx::preference>& dx::device< std::string, dx::preference >::driver
inherited

◆ editable

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
bool dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::editable
inherited

can be edited

◆ hidden

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
bool dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::hidden
inherited

hide device

◆ [struct]

struct { ... } dx::stream::device< dx::stream::control< dx::device< std::string, dx::preference > >, desc, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::hw

◆ icon

promoted<std::string>::preference<decltype(dx::stream::control< dx::device< std::string, dx::preference > >::preference)> dx::stream::device< dx::stream::control< dx::device< std::string, dx::preference > >, desc, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::icon
inherited

◆ id

const std::string dx::device< std::string, dx::preference >::id
inherited

◆ iosize [1/2]

promoted<uint32_t>::preference<decltype(dx::stream::control< dx::device< std::string, dx::preference > >::preference)> dx::stream::device< dx::stream::control< dx::device< std::string, dx::preference > >, desc, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::iosize
inherited

◆ iosize [2/2]

uint32_t dx::stream::device< dx::stream::control< dx::device< std::string, dx::preference > >, desc, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::iosize
inherited

◆ launched

bool dx::object::launched
inherited

◆ model

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
struct dx::stream::desc::name_id dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::model
inherited

◆ monitor

◆ notify

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

◆ persistence

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
bool dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::persistence
inherited

device has capability to store persistent settings (i.e. sample rate; clock source; etc.)

◆ preference

dx::preference dx::device< std::string, dx::preference >::preference
inherited

◆ puid

std::string dx::device< std::string, dx::preference >::puid
inherited

persistent UID - system unique - could change with location

◆ puuid

std::string dx::device< std::string, dx::preference >::puuid
inherited

persistent universal UID - universally unique ID (i.e. serial number)

◆ safety_offset

promoted<uint32_t>::preference<decltype(dx::stream::control< dx::device< std::string, dx::preference > >::preference)> dx::stream::device< dx::stream::control< dx::device< std::string, dx::preference > >, desc, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::safety_offset[direction::directions]
inherited

◆ samplerate

promoted<uint32_t>::preference<decltype(dx::stream::control< dx::device< std::string, dx::preference > >::preference)> dx::stream::device< dx::stream::control< dx::device< std::string, dx::preference > >, desc, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::samplerate
inherited

◆ start_stop_in_progress

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

start/stop operation in progress

◆ start_stop_order

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
direction::direction dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::start_stop_order = direction::any
inherited

◆ started

std::atomic<unsigned int> dx::stream::control< object_t >::started
inherited

◆ stream

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
struct dx::stream::desc::stream dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::stream[max_streams]
inherited

◆ streams

std::map<decltype(desc::stream::target.idx()), std::weak_ptr<dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > >> > dx::stream::device< dx::stream::control< dx::device< std::string, dx::preference > >, desc, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::streams
inherited

◆ sync_cycle_ticks

promoted<uint32_t>::preference<decltype(dx::stream::control< dx::device< std::string, dx::preference > >::preference)> dx::stream::device< dx::stream::control< dx::device< std::string, dx::preference > >, desc, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::sync_cycle_ticks
inherited

◆ sync_reference

promoted<structdesc_t::stream*>::template preference<decltype(dx::stream::control< dx::device< std::string, dx::preference > >::preference), uint32_t> dx::stream::device< dx::stream::control< dx::device< std::string, dx::preference > >, desc, dx::stream::shared::stream< device< desc, dx::preference, dx::stream::shared::stream > > >::sync_reference
inherited

◆ vendor

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1>
struct dx::stream::desc::name_id dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::vendor
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.