the puppet endpoint's client device: it announces its own session to the counterpart, whose streaming is what animates it
More...
|
| struct stream * | align (struct stream *sync_reference) |
| | the given stream where it may be the sync reference, else the first one that may - what a stored reference is aligned to when the desc changed under it
|
| uint32_t | align (uint32_t sync_reference) const |
| void | attach (channel_t **io[dx::stream::direction::directions][2], const std::vector< bool >(&channel_map)[2]) |
| void | conclude () noexcept override |
| | ends every group's session before the device's resources go; the start counts stay with their holders
|
| | device (decltype(super::driver)&driver, decltype(super::id)&id) |
| uint32_t | enumerate (const format &format=any) const |
| | enumerate typified pins
|
| uint32_t | enumerate (const format &format=any) const |
| | enumerate typified pins
|
| void | exception (const dx::exception &exception, bool filtered=false) const noexcept override |
| | notification exception handler
|
| struct stream * | find (const decltype(stream::target.idx())&target) |
| struct stream * | find (const format &format=any, enum direction::direction direction=direction::any) |
| struct stream * | find (const target &target) |
| struct stream * | find (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
|
| struct stream * | find (const format &format=any, enum direction::direction direction=direction::any) |
| struct stream * | find (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 |
| virtual bool | hw_clock () const noexcept |
| void | hw_clock (abstract::event *hw_clock, uint32_t iosize) override |
| | registers a consumer with the device's clock: it is signalled every iosize samples of the clock's own advance. A bus whose driver owns the clock hands the registration on instead
|
| void | info (std::ostream &os) noexcept override |
| | log object class information
|
| std::shared_ptr< stream > | open (const typename dx::virtuel::stream::desc::stream::desc &desc) |
| | the desc's stream: the registered one, else created, registered and launched
|
| bool | operator== (const desc &desc) const |
| bool | operator== (const desc &desc) const |
| virtual device & | operator>> (std::ostream &) const |
| | the device's own diagnostics, beyond dx::object::info
|
| group & | operator[] (const typename dx::virtuel::stream::desc::stream::desc &stream) |
| | the stream's group, created on first use
|
| virtual _device & | reset () |
| virtual void | sleep () |
| | notify system will sleep stub
|
| virtual std::pair< source_t &, bool > | source (const struct dx::virtuel::stream::desc::stream &stream) |
| | the stream's source selector, created on first use: the preference by stream target, the value an index into the stream's sources
|
| std::string | string (uint8_t idx) |
| uint32_t | sync_reference (struct stream *sync_reference) |
| struct stream * | sync_reference (uint32_t sync_reference) |
| | the n-th stream qualifying as sync reference, and the twin below the index of a given one - the two directions of the preference's value
|
| bool | try_conclude () noexcept |
| | atomically conclude()s if currently launched; returns whether this call did it
|
| bool | try_launch () |
| | atomically launch()es if not already launched; returns whether this call did it. A launch() that throws is concluded before the exception leaves: the object never claims a launch it did not finish
|
| void | wake () override |
|
| dx::stream::bus::bus | bus |
| | the bus this device hangs on
|
| promoted::property< typename super::client_map, typename super::client_map::value_t, false > | clients |
| dx::shared::lockfree::list< registration > | clock |
| | the tick walks it without a lock
|
| uint32_t | clocks |
| promoted< uint32_t >::preference< decltype(super::preference)> | clocksource |
| dx::stream::clock::consumer | consumer |
| promoted::property< desc_t, ::CFDictionaryRef > | desc |
| bool | dflt |
| | can be selected as default (OS audio) device
|
| dx::driver< decltype(id), cf::preference > & | driver |
| bool | editable |
| | can be edited
|
| abstract::event * | event |
| struct dx::stream::desc::firmware | firmware |
| std::map< decltype(dx::virtuel::stream::desc::stream::group), group > | group |
| | streaming groups by desc::stream::group id: every stream of this device is registered with its group - behind the settings its groups listen to, so they go first
|
| bool | hidden |
| | hide device
|
| struct { | |
| struct registration { | |
| dx::stream::clock::consumer consumer | |
| abstract::event * event | |
| volatile bool reset {} | |
| } | |
| dx::shared::lockfree::list< registration > clock | |
| | the tick walks it without a lock More...
|
| uint32_t iosize | |
| | staging value for registration paths without their own iosize argument (macOS CF property bridge) More...
|
| std::mutex mutex | |
| | the registrations' writers More...
|
| std::map< abstract::event *, std::unique_ptr< registration > > registrations | |
| } | hw |
| promoted::property< icon, ::CFURLRef, false > | icon |
| dx::coreaudio::_device::clocksource | id |
| uint32_t | iosize |
| | staging value for registration paths without their own iosize argument (macOS CF property bridge)
|
| std::atomic< bool > | launched |
| struct dx::stream::desc::name_id | model |
| dx::stream::device::monitor | monitor |
| std::mutex | mutex |
| | the registrations' writers
|
| bool | persistence |
| | device has capability to store persistent settings (i.e. sample rate; clock source; etc.)
|
| cf::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)
|
| std::map< abstract::event *, std::unique_ptr< registration > > | registrations |
| promoted::property<::Float64 > | samplerate |
| std::map< decltype(dx::virtuel::stream::desc::stream::target.idx()), source_t > | sources |
| direction::direction | start_stop_order |
| struct dx::stream::desc::stream | stream [max_streams] |
| uint32_t | streams |
| | number of streams
|
| promoted< structdesc_t::stream * >::template preference< decltype(super::preference), uint32_t > | sync_reference |
| struct dx::stream::desc::name_id | vendor |
| dx::stream::device::monitor | version |
|
| virtual void | grouped (group< device< dx::virtuel::stream::desc, cf::preference, stream, group, _hosted > > &) |
| | operator[](): a group just came into existence, a host wires its per-group transports here
|
| virtual void | grouped (group &) |
| | operator[](): a group just came into existence, a host wires its per-group transports here
|
| virtual void | grouped (group_t &) |
| | operator[](): a group just came into existence, a host wires its per-group transports here
|
| virtual void | launch () |
| | launch notification: object mounted and ready to use. Called only through try_launch() - never call this directly from outside the class hierarchy.
|
| virtual void | process (const ::AudioTimeStamp *, const ::AudioBufferList *, const ::AudioTimeStamp *, ::AudioBufferList *, const ::AudioTimeStamp *) |
template<typename
desc_t = dx::virtuel::stream::desc, typename preference_t = cf::preference, template< typename ... > typename stream_t = stream, template< typename ... > typename group_t = group>
class dx::coreaudio::pod::device< desc_t, preference_t, stream_t, group_t >
the puppet endpoint's client device: it announces its own session to the counterpart, whose streaming is what animates it
< the app's consumer group (dx::stream::engine::group) wraps this bus's own