dxd - dynax driver framework 2.6.0d183
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::coreaudio::server::device< pin_t > Class Template Referenceabstract

CoreAudio server streaming device. More...

#include <dx_coreaudio_server_device.h>

+ Inheritance diagram for dx::coreaudio::server::device< pin_t >:
+ Collaboration diagram for dx::coreaudio::server::device< pin_t >:

Public Member Functions

virtual void create_pins () try
 
 device (decltype(super::driver)&driver, decltype(super::id)&id)
 
 device (decltype(super::driver)&driver, decltype(super::id)&id, const typename super::desc_t &desc)
 
 dx_catchall_rethrow () void launch() override try
 
clientoperator[] (::UInt32 client) try
 
pin_t & pin (::AudioObjectID id)
 
pin_t & pin (target target)
 

Public Attributes

dx_catchall_rethrow() virtual uint32_t property(std::map<::pid_t, clientclients
 generic device property handler
 
uint8_t idx = 0
 
std::deque< pin_t > pins
 

Protected Member Functions

void initialize (const std::string &name) try
 
virtual eventreset (uint64_t count=0)=0
 
virtual eventsignal (uint64_t count=1)=0
 
virtual eventwait (bool reset=false)=0
 

Protected Attributes

std::atomic< int > io_started
 

Detailed Description

template<typename pin_t>
class dx::coreaudio::server::device< pin_t >

CoreAudio server streaming device.

In contrast to the hierarchical dx device tree design the device keeps a list of all pins and all streams to better reflect the CoreAudio architecture.

Constructor & Destructor Documentation

◆ device() [1/2]

template<typename pin_t >
dx::coreaudio::server::device< pin_t >::device ( decltype(super::driver)& driver,
decltype(super::id)& id )
inline
+ Here is the caller graph for this function:

◆ device() [2/2]

template<typename pin_t >
dx::coreaudio::server::device< pin_t >::device ( decltype(super::driver)& driver,
decltype(super::id)& id,
const typename super::desc_t & desc )
inline

Member Function Documentation

◆ create_pins()

template<typename pin_t >
virtual void dx::coreaudio::server::device< pin_t >::create_pins ( )
inlinevirtual

creates pins from dx::device description and adds it as CoreAudio entity to the CoreAudio device

register all audio pins across all streams

+ Here is the call graph for this function:

◆ dx_catchall_rethrow()

template<typename pin_t >
dx::coreaudio::server::device< pin_t >::dx_catchall_rethrow ( )
inlineoverride
Todo
coreaudio::server::device::launch(): remove clocksource pre-initialization hack to avoid hang at pin::property() kAudioStreamPropertyAvailablePhysicalFormats request

◆ initialize()

void dx::shared::event::initialize ( const std::string & name)
inlineinherited
+ Here is the call graph for this function:

◆ operator[]()

template<typename pin_t >
client & dx::coreaudio::server::device< pin_t >::operator[] ( ::UInt32 client)
inline

◆ pin() [1/2]

template<typename pin_t >
pin_t & dx::coreaudio::server::device< pin_t >::pin ( ::AudioObjectID id)
inline
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ pin() [2/2]

template<typename pin_t >
pin_t & dx::coreaudio::server::device< pin_t >::pin ( target target)
inline
+ Here is the call graph for this function:

◆ reset()

virtual event & dx::abstract::event::reset ( uint64_t count = 0)
pure virtualinherited

Implemented in dx::event< user >.

◆ signal()

virtual event & dx::abstract::event::signal ( uint64_t count = 1)
pure virtualinherited

Implemented in dx::event< user >.

◆ wait()

virtual event & dx::abstract::event::wait ( bool reset = false)
pure virtualinherited

Implemented in dx::event< user >.

Member Data Documentation

◆ circular

template<typename pin_t >
pin_t::circular_t* dx::coreaudio::server::device< pin_t >::circular

◆ clients

template<typename pin_t >
dx_catchall_rethrow () virtual uint32_t property( std::map<::pid_t, client> dx::coreaudio::server::device< pin_t >::clients

generic device property handler

  • has property (property= null)
  • get property
  • get property size (property= null)
  • set property (set= true)
  • is property settable (property= null, set= true)

configure: handle device configuration change requests configure will only receive requests targetted to the device

◆ count

template<typename pin_t >
uint64_t dx::coreaudio::server::device< pin_t >::count

cached sync cycle count to evaluate timesamp generation

◆ [struct]

struct { ... } dx::coreaudio::server::device< pin_t >::cycle

◆ direction

◆ idx

template<typename pin_t >
uint8_t dx::coreaudio::server::device< pin_t >::idx = 0

◆ io_started

template<typename pin_t >
std::atomic<int> dx::coreaudio::server::device< pin_t >::io_started
protected

◆ lines

template<typename pin_t >
uint32_t dx::coreaudio::server::device< pin_t >::lines

sample lines per sync cycle (per timestamp generation)

◆ linesize

template<typename pin_t >
uint32_t dx::coreaudio::server::device< pin_t >::linesize

size of all channels in bytes per sample

◆ offset

template<typename pin_t >
uint32_t dx::coreaudio::server::device< pin_t >::offset

timestamp generation offset to zero reference on seed change

◆ pins

template<typename pin_t >
std::deque<pin_t> dx::coreaudio::server::device< pin_t >::pins

◆ [struct]

struct { ... } dx::coreaudio::server::device< pin_t >::reference

◆ safety_offset

template<typename pin_t >
uint32_t dx::coreaudio::server::device< pin_t >::safety_offset[2]

RX/TX safety offsets;.

◆ seed

template<typename pin_t >
uint64_t dx::coreaudio::server::device< pin_t >::seed

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

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