|
dxd - dynax driver framework 3.0.1d223
cross platform open source driver development framework
|
the bus's device as a product composes it: the endpoints of one Windows audio device, driven as any WASAPI application drives them More...
#include <dx_wasapi_client_device.h>
Public Types | |
| typedef desc | desc_t |
| typedef event | event_t |
| typedef std::conditional_t< std::is_void_v< group< device< desc, preference, stream, group > > >, dx::stream::group< device >, group< device< desc, preference, stream, group > > > | group_t |
| bus devices driving their groups' tick pass their own group type | |
| typedef promoted< uint32_t >::template preference< decltype(dx::stream::control< dx::device< std::string, preference > >::preference)> | source_t |
| typedef desc | value_t |
Public Member Functions | |
| 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 | |
| uint32_t | enumerate (const format &format=any) const |
| enumerate typified pins | |
| void | exception (const dx::exception &exception, bool filtered=false) const noexcept override |
| 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_t &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 | |
| virtual uint64_t | frame () const |
| virtual bool | hw_clock () const noexcept |
| virtual void | hw_clock (abstract::event *hw_clock, uint32_t iosize) |
| 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 |
| std::shared_ptr< stream_t > | open (const typename desc::stream::desc &descdesc) |
| the desc's stream: the registered one, else created, registered and launched | |
| std::shared_ptr< stream< device< desc, preference, stream, group > > > | open (const typename desc::stream::desc &descdesc) |
| the desc's stream: the registered one, else created, registered and launched | |
| bool | operator== (const descdesc &descdesc) const |
| virtual device & | operator>> (std::ostream &) const |
| the device's own diagnostics, beyond dx::object::info | |
| group_t & | operator[] (const typename desc::stream::desc &stream) |
| the stream's group, created on first use | |
| group< device< desc, preference, stream, group > > & | operator[] (const typename desc::stream::desc &stream) |
| the stream's group, created on first use | |
| _device & | reset () |
| virtual void | sleep () |
| notify system will sleep stub | |
| virtual std::pair< source_t &, bool > | source (const struct 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 | |
| virtual std::pair< source_t &, bool > | source (const struct 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) |
| 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 |
Public Attributes | |
| dx::stream::bus::bus | bus {} |
| the bus this device hangs on | |
| struct dx::stream::desc::clock | clock [max_clocks] |
| uint32_t | clocks {} |
| promoted< uint32_t >::preference< decltype(super::preference)> | clocksource |
| bool | dflt {} |
| can be selected as default (OS audio) device | |
| dx::driver< decltype(id), preference > & | driver |
| bool | editable {} |
| can be edited | |
| struct dx::stream::desc::firmware | firmware |
| std::map< decltype(desc::stream::group), group< device< desc, preference, stream, 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 dx::stream::device:: { ... } | hw |
| promoted< std::string >::preference< decltype(super::preference)> | icon |
| const std::string | id |
| promoted< uint32_t >::preference< decltype(super::preference)> | iosize |
| std::atomic< bool > | launched |
| struct dx::stream::desc::name_id | model |
| dx::stream::device::monitor | monitor |
| bool | persistence {} |
| device has capability to store persistent settings (i.e. sample rate; clock source; etc.) | |
| 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) | |
| promoted< uint32_t >::preference< decltype(super::preference)> | samplerate |
| std::map< decltype(desc::stream::target.idx()), source_t > | sources |
| promoted< uint32_t > | start |
| direction::direction | start_stop_order {direction::any} |
| promoted< bool > | started |
| struct dx::stream::desc::stream | stream [max_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 |
Static Public Attributes | |
| static constexpr bool | hosted |
| the transport's settings belong to another process' device: a hosted device mirrors them through its chains, it keeps no store of them | |
Protected Member Functions | |
| virtual void | grouped (group_t &) |
| operator[](): a group just came into existence, a host wires its per-group transports here | |
| virtual void | grouped (group< device< desc, preference, stream, group > > &) |
| 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. | |
Protected Attributes | |
| std::function< void()> | flush_hook |
| std::function< void()> | halt_hook |
| std::function< void()> | run_hook |
| decltype(super::samplerate) ::chain | samplerate_server |
| exclusive: every stream's client is recreated at the aligned rate, paused across it; shared: the engine's mix format rate is the only one | |
the bus's device as a product composes it: the endpoints of one Windows audio device, driven as any WASAPI application drives them
|
inherited |
|
inherited |
|
inherited |
bus devices driving their groups' tick pass their own group type
|
inherited |
|
inherited |
|
inlineinherited |
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
|
inlineinherited |
|
inlineinherited |
|
inlineoverridenoexceptinherited |
ends every group's session before the device's resources go; the start counts stay with their holders
|
inlineinherited |
enumerate typified pins
|
inlineoverridevirtualnoexceptinherited |
Reimplemented from dx::device< std::string, preference >.
|
inlineinherited |
|
inlineinherited |
| format | search stream format filter |
| direction | search stream direction filter |
|
inlineinherited |
|
inlineinherited |
finds and returns the stream description and pin idx into this stream
| pin | in: global pin index, out: pin index into returned stream description |
| format | search stream format filter |
| direction | search stream direction filter |
|
inlinevirtualinherited |
|
inlineprotectedvirtualinherited |
operator[](): a group just came into existence, a host wires its per-group transports here
|
inlineprotectedvirtualinherited |
operator[](): a group just came into existence, a host wires its per-group transports here
|
inlinevirtualnoexceptinherited |
|
inlinevirtualinherited |
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
|
inlineoverridevirtualnoexceptinherited |
|
inlineprotectedvirtualinherited |
launch notification: object mounted and ready to use. Called only through try_launch() - never call this directly from outside the class hierarchy.
|
inlineinherited |
the desc's stream: the registered one, else created, registered and launched
|
inlineinherited |
the desc's stream: the registered one, else created, registered and launched
|
inlineinherited |
|
inlinevirtualinherited |
the device's own diagnostics, beyond dx::object::info
|
inlineinherited |
the stream's group, created on first use
|
inlineinherited |
the stream's group, created on first use
|
inlineinherited |
|
inlinevirtualinherited |
notify system will sleep stub
|
inlinevirtualinherited |
the stream's source selector, created on first use: the preference by stream target, the value an index into the stream's sources
|
inlinevirtualinherited |
the stream's source selector, created on first use: the preference by stream target, the value an index into the stream's sources
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
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
|
inlinenoexceptinherited |
atomically conclude()s if currently launched; returns whether this call did it
|
inlineinherited |
|
inlineoverrideinherited |
|
inherited |
the bus this device hangs on
|
inherited |
|
inherited |
number of independent clocks [currenlty only single clock support]
|
inherited |
|
inherited |
can be selected as default (OS audio) device
|
inherited |
|
inherited |
can be edited
|
inherited |
|
protectedinherited |
|
inherited |
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
|
protectedinherited |
|
inherited |
hide device
|
staticconstexprinherited |
the transport's settings belong to another process' device: a hosted device mirrors them through its chains, it keeps no store of them
| struct { ... } dx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream, group > >, group< device< desc, preference, stream, group > > >::hw |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
device has capability to store persistent settings (i.e. sample rate; clock source; etc.)
|
inherited |
|
inherited |
persistent UID - system unique - could change with location
|
inherited |
persistent universal UID - universally unique ID (i.e. serial number)
|
protectedinherited |
|
inherited |
|
protectedinherited |
exclusive: every stream's client is recreated at the aligned rate, paused across it; shared: the engine's mix format rate is the only one
|
inherited |
source selectors by stream target: a stream with sources gets its own on first use
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
| (c) copyright 2009 dynamic acoustics e.U. | generated on |