|
dxd - dynax driver framework 2.7.0d222
cross platform open source driver development framework
|
CoreAudio server streaming device. More...
#include <dx_coreaudio_server_device.h>
Public Member Functions | |
| 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 () virtual void add_client(const | |
| recompute sync.offset/sync.seed/per-pin cache.sync.offset from an already-valid (count, reference) cycle snapshot. Never waits: the caller (io_start(), or io_timestamp() on the RT thread) must supply a snapshot it already knows to be valid. | |
| dx_catchall_rethrow () virtual void create_pins() try | |
| dx_catchall_rethrow () void launch() override try | |
| void | io_timestamp (::Float64 &sampletime, ::UInt64 &host_time, ::UInt64 &seed) try |
| client & | operator[] (::UInt32 client) try |
| pin_t & | pin (::AudioObjectID id) |
| pin_t & | pin (target target) |
| void | resync_reference () try |
Public Attributes | |
| dx_catchall_rethrow() virtual uint32_t property(std::map<::pid_t, client > | clients |
| generic device property handler | |
| uint8_t | idx = 0 |
| std::deque< pin_t > | pins |
| cf::string | uid |
Protected Member Functions | |
| virtual event & | initialize (bool signalled=false) |
| super & | initialize (const std::string &name, bool signalled=false) override try |
| virtual event & | reset (uint64_t count=0)=0 |
| virtual event & | signal (uint64_t count=1)=0 |
| virtual event & | wait (bool reset=false)=0 |
Protected Attributes | |
| std::atomic< int > | io_started |
| const ::AudioServerPlugInHostInterface * | plugin |
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.
|
inline |
|
inline |
|
inline |
recompute sync.offset/sync.seed/per-pin cache.sync.offset from an already-valid (count, reference) cycle snapshot. Never waits: the caller (io_start(), or io_timestamp() on the RT thread) must supply a snapshot it already knows to be valid.
|
inline |
creates pins from dx::device description and adds it as CoreAudio entity to the CoreAudio device
register all audio pins across all streams
|
inlineoverride |
remove clocksource pre-initialization hack to avoid hang at pin::property() kAudioStreamPropertyAvailablePhysicalFormats request
|
inlinevirtualinherited |
|
inlineoverridevirtualinherited |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
(re)computes sync.reference/cycle.lines/linesize/safety_offset from the current pins; callable as soon as pins exist (create_pins()), not just at io_start(), so kAudioDevicePropertyZeroTimeStampPeriod is answerable before the first StartIO
|
pure virtualinherited |
| pin_t::circular_t* dx::coreaudio::server::device< pin_t >::circular |
| dx_catchall_rethrow () virtual uint32_t property( std::map<::pid_t, client> dx::coreaudio::server::device< pin_t >::clients |
generic device property handler
configure: handle device configuration change requests configure will only receive requests targetted to the device
| uint64_t dx::coreaudio::server::device< pin_t >::count |
cached sync cycle count to evaluate timesamp generation
| struct { ... } dx::coreaudio::server::device< pin_t >::cycle |
| dx::stream::direction::direction dx::coreaudio::server::device< pin_t >::direction |
| int64_t dx::coreaudio::server::device< pin_t >::epoch |
host ticks at cycle.reference==0, cached once at io_start() (software-clocked devices only)
| uint8_t dx::coreaudio::server::device< pin_t >::idx = 0 |
|
protected |
| uint32_t dx::coreaudio::server::device< pin_t >::lines |
sample lines per sync cycle (per timestamp generation)
| uint32_t dx::coreaudio::server::device< pin_t >::linesize |
size of all channels in bytes per sample
| uint32_t dx::coreaudio::server::device< pin_t >::offset |
timestamp generation offset to zero reference on seed change
| std::deque<pin_t> dx::coreaudio::server::device< pin_t >::pins |
|
protectedinherited |
| struct { ... } dx::coreaudio::server::device< pin_t >::reference |
| uint32_t dx::coreaudio::server::device< pin_t >::safety_offset[2] |
RX/TX safety offsets;.
| uint32_t dx::coreaudio::server::device< pin_t >::samplerate |
cached from the promoted<>::preference this->samplerate at resync_reference() time
| uint64_t dx::coreaudio::server::device< pin_t >::seed |
| int64_t dx::coreaudio::server::device< pin_t >::ticks_per_cycle |
host ticks per sync.cycle.lines samples, cached at resync_reference() (software-clocked devices only)
| cf::string dx::coreaudio::server::device< pin_t >::uid |
| (c) copyright 2009 dynamic acoustics e.U. | generated on |