dxd - dynax driver framework 2.2.0d91
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::stream::pin< device_t, _circular_t > Class Template Reference

#include <dx_stream_pin.h>

+ Inheritance diagram for dx::stream::pin< device_t, _circular_t >:
+ Collaboration diagram for dx::stream::pin< device_t, _circular_t >:

Public Types

typedef _circular_t circular_t
 
typedef device_t device_t
 

Public Member Functions

template<unsigned int channels, typename channel_t >
pinattach (channel_t **io[2], uint64_t channel_map[(channels+63)/64]) try
 
 catch (...)
 
 catch (...)
 
 catch (const dx::exception &__dx_exception)
 
 catch (const dx::exception &__dx_exception)
 
 catch (const std::exception &__std_exception)
 
 catch (const std::exception &__std_exception)
 
virtual void conclude () noexcept
 conclude notification: object will be removed. If you overwrite conclude() you also need to overwrite destructor and check if its needed to be called from there.
 
 dx_catchall_handler (this,) ~pin() noexcept override
 
virtual float encoder (dx::stream::encoder::index::type type, int index) const
 
virtual bool encoder (dx::stream::encoder::index::type type, int index, float value)
 
void exception (const dx::exception &exception, bool filtered=false) const noexcept override
 notification exception handler
 
void info (std::ostream &os) noexcept override try
 log object class information
 
virtual operator circular_t * () const noexcept
 
virtual circular_toperator-> () const noexcept
 
 pin (device_t &device, const typename device_t::desc::stream::desc &stream_desc, const typename device_t::desc::stream::pin::desc &pin_desc)
 
 pin (device_t &device, unsigned int stream_idx=0, unsigned int pin_idx=0)
 
virtual uint32_t samplerate () const
 
virtual uint32_t samplerate (uint32_t samplerate)
 
virtual pinsignal ()
 
bool start (uint64_t frame=0, unsigned int starting=1) override try
 
virtual unsigned int stop (bool force=false) noexcept
 
virtual pinwait ()
 

Public Attributes

dx::stream::channel::controlcontrol = nullptr
 
bool launched {}
 
std::deque< std::function< void(control &)> notify )
 
std::atomic< unsigned int > started
 
stream_t & stream
 

Protected Member Functions

void halt () noexcept override
 

Protected Attributes

device_tdevice
 
std::recursive_mutex start_stop_in_progress
 start/stop operation in progress
 

Member Typedef Documentation

◆ circular_t

template<typename device_t , typename _circular_t = dx::circular>
typedef _circular_t dx::stream::pin< device_t, _circular_t >::circular_t

◆ device_t

typedef device_t dx::stream::object< device_t >::device_t
inherited

Constructor & Destructor Documentation

◆ pin() [1/2]

template<typename device_t , typename _circular_t = dx::circular>
dx::stream::pin< device_t, _circular_t >::pin ( device_t & device,
const typename device_t::desc::stream::desc & stream_desc,
const typename device_t::desc::stream::pin< device_t, _circular_t >::desc & pin_desc )
inline
Todo
pin::control: find descriptive, scoping name; evaluate presence in non-kernel interface

◆ pin() [2/2]

template<typename device_t , typename _circular_t = dx::circular>
dx::stream::pin< device_t, _circular_t >::pin ( device_t & device,
unsigned int stream_idx = 0,
unsigned int pin_idx = 0 )
inline

Member Function Documentation

◆ attach()

template<typename device_t , typename _circular_t = dx::circular>
template<unsigned int channels, typename channel_t >
pin & dx::stream::pin< device_t, _circular_t >::attach ( channel_t ** io[2],
uint64_t channel_map[(channels+63)/64] )
inline

◆ catch() [1/6]

template<typename device_t , typename _circular_t = dx::circular>
dx::stream::pin< device_t, _circular_t >::catch ( ...)
inline

◆ catch() [2/6]

template<typename device_t , typename _circular_t = dx::circular>
dx::stream::pin< device_t, _circular_t >::catch ( ...)
inline

◆ catch() [3/6]

template<typename device_t , typename _circular_t = dx::circular>
dx::stream::pin< device_t, _circular_t >::catch ( const dx::exception & __dx_exception)
inline

◆ catch() [4/6]

template<typename device_t , typename _circular_t = dx::circular>
dx::stream::pin< device_t, _circular_t >::catch ( const dx::exception & __dx_exception)
inline

◆ catch() [5/6]

template<typename device_t , typename _circular_t = dx::circular>
dx::stream::pin< device_t, _circular_t >::catch ( const std::exception & __std_exception)
inline

◆ catch() [6/6]

template<typename device_t , typename _circular_t = dx::circular>
dx::stream::pin< device_t, _circular_t >::catch ( const std::exception & __std_exception)
inline

◆ conclude()

virtual void dx::object::conclude ( )
inlinevirtualnoexceptinherited

conclude notification: object will be removed. If you overwrite conclude() you also need to overwrite destructor and check if its needed to be called from there.

Reimplemented in dx::proxy::stream::_device< desc_t, stream_t >, dx::usb::pipe< device_t >, dx::usb::pipe< device_t >, dx::proxy::device, dx::proxy::device, dx::map::driver< device >, and dx::map::driver< device_t >.

+ Here is the caller graph for this function:

◆ dx_catchall_handler()

template<typename device_t , typename _circular_t = dx::circular>
dx::stream::pin< device_t, _circular_t >::dx_catchall_handler ( this )
inlineoverridenoexcept

◆ encoder() [1/2]

template<typename device_t , typename _circular_t = dx::circular>
virtual float dx::stream::pin< device_t, _circular_t >::encoder ( dx::stream::encoder::index::type type,
int index ) const
inlinevirtual
+ Here is the call graph for this function:

◆ encoder() [2/2]

template<typename device_t , typename _circular_t = dx::circular>
virtual bool dx::stream::pin< device_t, _circular_t >::encoder ( dx::stream::encoder::index::type type,
int index,
float value )
inlinevirtual
+ Here is the call graph for this function:

◆ exception()

template<typename device_t , typename _circular_t = dx::circular>
void dx::stream::pin< device_t, _circular_t >::exception ( const dx::exception & exception,
bool filtered = false ) const
inlineoverridevirtualnoexcept

notification exception handler

Implements dx::object.

+ Here is the call graph for this function:

◆ halt()

template<typename device_t , typename _circular_t = dx::circular>
void dx::stream::pin< device_t, _circular_t >::halt ( )
inlineoverrideprotectedvirtualnoexcept

◆ info()

template<typename device_t , typename _circular_t = dx::circular>
void dx::stream::pin< device_t, _circular_t >::info ( std::ostream & os)
inlineoverridevirtualnoexcept

log object class information

Reimplemented from dx::stream::control< object< device_t > >.

◆ operator circular_t *()

template<typename device_t , typename _circular_t = dx::circular>
virtual dx::stream::pin< device_t, _circular_t >::operator circular_t * ( ) const
inlinevirtualnoexcept

◆ operator->()

template<typename device_t , typename _circular_t = dx::circular>
virtual circular_t * dx::stream::pin< device_t, _circular_t >::operator-> ( ) const
inlinevirtualnoexcept

◆ samplerate() [1/2]

template<typename device_t , typename _circular_t = dx::circular>
virtual uint32_t dx::stream::pin< device_t, _circular_t >::samplerate ( ) const
inlinevirtual
+ Here is the caller graph for this function:

◆ samplerate() [2/2]

template<typename device_t , typename _circular_t = dx::circular>
virtual uint32_t dx::stream::pin< device_t, _circular_t >::samplerate ( uint32_t samplerate)
inlinevirtual

◆ signal()

template<typename device_t , typename _circular_t = dx::circular>
virtual pin & dx::stream::pin< device_t, _circular_t >::signal ( )
inlinevirtual

◆ start()

template<typename device_t , typename _circular_t = dx::circular>
bool dx::stream::pin< device_t, _circular_t >::start ( uint64_t = 0,
unsigned int starting = 1 )
inlineoverridevirtual

result indicates if start changed the state.

Reimplemented from dx::stream::control< object< device_t > >.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ stop()

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

result indicates the amount of stopped start references

◆ wait()

template<typename device_t , typename _circular_t = dx::circular>
virtual pin & dx::stream::pin< device_t, _circular_t >::wait ( )
inlinevirtual

Member Data Documentation

◆ control

template<typename device_t , typename _circular_t = dx::circular>
dx::stream::channel::control* dx::stream::pin< device_t, _circular_t >::control = nullptr
Todo
stream::pin::launch: for multi pin support launch needs to be moved to stream holder (stream::device::weak_ptr)

◆ device

device_t & dx::stream::object< device_t >::device
protectedinherited

◆ launched

bool dx::object::launched {}
inherited

◆ notify

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

◆ start_stop_in_progress

std::recursive_mutex dx::stream::control< object< device_t > >::start_stop_in_progress
protectedinherited

start/stop operation in progress

◆ started

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

◆ stream

template<typename device_t , typename _circular_t = dx::circular>
stream_t& dx::stream::pin< device_t, _circular_t >::stream

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

(c) copyright 2009 dynamic acoustics e.U. generated on Tue Mar 11 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.