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

CoreAudio client device. More...

#include <dx_coreaudio_device.h>

+ Inheritance diagram for dx::coreaudio::device< desc_t, preference_t, stream_t >:
+ Collaboration diagram for dx::coreaudio::device< desc_t, preference_t, stream_t >:

Public Types

typedef desc_t desc_t
 

Public Member Functions

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,) void conclude() noexcept override
 
void exception (const dx::exception &exception, bool filtered=false) const noexcept override
 notification exception handler
 
virtual uint64_t frame () const
 
void hw_clock (dx::event< user > &hw_clock) override
 
void info (std::ostream &os) noexcept override
 log object class information
 
virtual void launch ()
 launch notification: object mounted and ready to use
 
virtual _devicereset ()
 
virtual bool start (uint64_t=0, unsigned int starting=1)
 
virtual unsigned int stop (bool force=false) noexcept
 

Public Attributes

promoted::property< typename super::client_map, typename super::client_map::value_t, false > clients {this->id, {.mSelector= property::device::clients}}
 
dx::event< user > * clock
 
promoted< uint32_t >::preference< preference_t > clocksource
 
std::atomic< size_t > counter
 
dx::driver< decltype(id)> & driver
 
struct { 
 
   dx::event< user > *   clock 
 
   std::atomic< size_t >   counter 
 
   uint32_t   iosize 
 
hw 
 
dx::coreaudio::_device::clocksource id
 
promoted::property< uint32_tiosize {this->id, {.mSelector= ::kAudioDevicePropertyBufferFrameSize}, [this](const uint32_t& value){this->hw.iosize= value;}}
 
bool launched {}
 
dx::stream::device::monitor monitor
 
std::deque< std::function< void(control &)> notify )
 
preference_t 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< preference_t > safety_offset [direction::directions]
 
promoted::property<::Float64 > samplerate {this->id, {.mSelector= ::kAudioDevicePropertyNominalSampleRate}}
 
std::atomic< unsigned int > started
 
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
 

Protected Member Functions

virtual void flush ()
 
virtual void halt ()
 

Protected Attributes

std::recursive_mutex start_stop_in_progress
 start/stop operation in progress
 

Detailed Description

template<typename desc_t = dx::virtuel::stream::desc, typename preference_t = cf::preference, template< typename ... > typename stream_t = dx::stream::stream>
class dx::coreaudio::device< desc_t, preference_t, stream_t >

CoreAudio client device.

Member Typedef Documentation

◆ desc_t

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

Member Function Documentation

◆ 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, preference_t, stream_t >, dx::usb::pipe< device_t >, dx::usb::pipe< device_t >, dx::virtuel::stream::_device< desc_t, preference_t, stream_t >, dx::proxy::device, dx::map::driver< device >, and dx::map::driver< device_t >.

+ Here is the caller graph for this function:

◆ dx_catchall_handler()

dx::stream::control< dx::device<::AudioObjectID > >::dx_catchall_handler ( this )
inlineoverridenoexceptinherited

◆ exception()

void dx::device< ::AudioObjectID >::exception ( const dx::exception & exception,
bool filtered = false ) const
inlineoverridevirtualnoexceptinherited

notification exception handler

Implements dx::object.

◆ flush()

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

◆ frame()

template<typename desc_t , typename preference_t , typename stream_t >
virtual uint64_t dx::coreaudio::_device< desc_t, preference_t, stream_t >::frame ( ) const
inlinevirtualinherited
+ Here is the call graph for this function:

◆ halt()

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

◆ hw_clock()

template<typename desc_t , typename preference_t , typename stream_t >
void dx::coreaudio::_device< desc_t, preference_t, stream_t >::hw_clock ( dx::event< user > & hw_clock)
inlineoverridevirtualinherited

Reimplemented from dx::stream::device< dx::stream::control< dx::device<::AudioObjectID > >, desc_t, preference_t, stream_t >.

+ 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::coreaudio::_device< desc_t, preference_t, stream_t >::info ( std::ostream & os)
inlineoverridevirtualnoexceptinherited

log object class information

Reimplemented from dx::stream::device< dx::stream::control< dx::device<::AudioObjectID > >, desc_t, preference_t, stream_t >.

Reimplemented in dx::coreaudio::pod::device< desc_t, preference_t, stream_t >.

+ Here is the call graph for this function:

◆ launch()

◆ reset()

template<typename desc_t , typename preference_t , typename stream_t >
virtual _device & dx::coreaudio::_device< desc_t, preference_t, stream_t >::reset ( )
inlinevirtualinherited

◆ start()

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

result indicates if start changed the state.

Reimplemented in dx::coreaudio::stream::device< desc_t, preference_t, stream_t >.

◆ stop()

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

result indicates the amount of stopped start references

Member Data Documentation

◆ clients

template<typename desc_t , typename preference_t , typename stream_t >
promoted::property<typename super::client_map, typename super::client_map::value_t, false> dx::coreaudio::_device< desc_t, preference_t, stream_t >::clients {this->id, {.mSelector= property::device::clients}}
inherited

◆ clock

dx::event<user>* dx::stream::device< dx::stream::control< dx::device<::AudioObjectID > > , desc_t , preference_t, stream_t >::clock
inherited

◆ clocksource

promoted<uint32_t>::preference<preference_t> dx::stream::device< dx::stream::control< dx::device<::AudioObjectID > > , desc_t , preference_t, stream_t >::clocksource
inherited

◆ counter

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

◆ driver

dx::driver<decltype(id)>& dx::device< ::AudioObjectID >::driver
inherited

◆ [struct]

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

◆ id

template<typename desc_t , typename preference_t , typename stream_t >
dx::coreaudio::_device::clocksource dx::coreaudio::_device< desc_t, preference_t, stream_t >::id
inherited

◆ iosize

template<typename desc_t , typename preference_t , typename stream_t >
promoted::property<uint32_t> dx::coreaudio::_device< desc_t, preference_t, stream_t >::iosize {this->id, {.mSelector= ::kAudioDevicePropertyBufferFrameSize}, [this](const uint32_t& value){this->hw.iosize= value;}}
inherited

◆ launched

bool dx::object::launched {}
inherited

◆ monitor

dx::stream::device::monitor dx::stream::device< dx::stream::control< dx::device<::AudioObjectID > > , desc_t , preference_t, stream_t >::monitor
inherited

◆ notify

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

◆ preference

preference_t dx::stream::device< dx::stream::control< dx::device<::AudioObjectID > > , desc_t , preference_t, stream_t >::preference
inherited

◆ puid

std::string dx::device< ::AudioObjectID >::puid
inherited

persistent UID - system unique - could change with location

◆ puuid

std::string dx::device< ::AudioObjectID >::puuid
inherited

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

◆ safety_offset

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

◆ samplerate

template<typename desc_t , typename preference_t , typename stream_t >
promoted::property<::Float64> dx::coreaudio::_device< desc_t, preference_t, stream_t >::samplerate {this->id, {.mSelector= ::kAudioDevicePropertyNominalSampleRate}}
inherited

◆ start_stop_in_progress

std::recursive_mutex dx::stream::control< dx::device<::AudioObjectID > >::start_stop_in_progress
protectedinherited

start/stop operation in progress

◆ started

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

◆ streams

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

◆ sync_cycle_ticks

promoted<uint32_t>::preference<preference_t> dx::stream::device< dx::stream::control< dx::device<::AudioObjectID > > , desc_t , preference_t, stream_t >::sync_cycle_ticks
inherited

◆ sync_reference

promoted<uint32_t>::preference<preference_t> dx::stream::device< dx::stream::control< dx::device<::AudioObjectID > > , desc_t , preference_t, stream_t >::sync_reference
inherited

◆ version

dx::stream::device::monitor dx::stream::device< dx::stream::control< dx::device<::AudioObjectID > > , desc_t , preference_t, stream_t >::version
inherited

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.