dxd - dynax driver framework 3.0.0d222
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::midi::services::device< desc_t, preference_t, stream_t > Class Template Reference

Windows MIDI Services client device. More...

#include <dx_midi_services_device.h>

Inheritance diagram for dx::midi::services::device< desc_t, preference_t, stream_t >:
Collaboration diagram for dx::midi::services::device< desc_t, preference_t, stream_t >:

Public Types

typedef desc desc_t
typedef event event_t
typedef std::conditional_t< std::is_void_v< void >, dx::stream::group< device >, void > 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

 __dx_catchall (std::cerr<< dx::exception(&exception, exception.error, __PRETTY_FUNCTION__, __FILE__, __LINE__)<< std::endl;,) void conclude() noexcept
struct streamalign (struct stream *sync_reference)
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)
 the desc is the driver's template: the driver that makes a device is this bus's
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 streamfind (const decltype(stream::target.idx())&target)
struct streamfind (const format &format=any, enum direction::direction direction=direction::any)
struct streamfind (const target_t &target)
struct streamfind (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 bool hw_clock () const noexcept
virtual void hw_clock (abstract::event *hw_clock, uint32_t iosize)
bool operator== (const desc &desc) const
virtual deviceoperator>> (std::ostream &) const
group_toperator[] (const typename desc::stream::desc &stream)
 the stream's group, created on first use
group_toperator[] (const typename desc::stream::desc &stream)
 the stream's group, created on first use
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
uint32_t sync_reference (struct stream *sync_reference)
struct streamsync_reference (uint32_t sync_reference)
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
void wake () override

Public Attributes

dx::stream::bus::bus bus {}
 the bus this device hangs on
dx::shared::guard< std::map< abstract::event *, dx::stream::clock::consumer > > clock
 event -> its own iosize and sample counter
uint32_t clocks {}
 number of independent clocks [currenlty only single clock support]
promoted< uint32_t >::preference< decltype(dx::stream::control< dx::device< std::string, preference > >::preference)> clocksource
bool dflt {}
 can be selected as default (OS audio) device
dx::driver< decltype(id), preference > & driver
bool editable {}
 can be edited
std::map< decltype(desc::stream::group), group_tgroup
bool hidden {}
 hide device
struct { 
   dx::shared::guard< std::map< abstract::event *, dx::stream::clock::consumer > >   clock 
 event -> its own iosize and sample counter More...
   uint32_t   iosize 
 staging value for registration paths without their own iosize argument (macOS CF property bridge) More...
hw
promoted< std::string >::preference< decltype(dx::stream::control< dx::device< std::string, preference > >::preference)> icon
const std::string id
promoted< uint32_t >::preference< decltype(dx::stream::control< dx::device< std::string, preference > >::preference)> iosize
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
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(dx::stream::control< dx::device< std::string, preference > >::preference)> samplerate
std::map< decltype(desc::stream::target.idx()), source_tsources
promoted< uint32_tstart
direction::direction start_stop_order = direction::any
promoted< bool > started
struct dx::stream::desc::stream stream [max_streams]
uint32_t streams {}
 number of streams
promoted< structdesc_t::stream * >::template preference< decltype(dx::stream::control< dx::device< std::string, preference > >::preference), uint32_tsync_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

void connect (stream< device< desc, preference, stream > > &stream) try
 the session and the connection made by the first stream to run, the callback set ahead of Open()
 dx_catchall_handler (this,) void send(int64_t timestamp
 whole packets to the endpoint, at the moment given - the service schedules them - or at once for 0
 dx_catchall_rethrow () void disconnect(stream< device< desc, preference, stream > > &stream) noexcept
 the last stream to halt closes the connection
 dx_pass (raw->SendMidiMessagesRaw(timestamp? static_cast< uint64_t >(dx::qpc(timestamp).QuadPart):api::MidiClock::TimestampConstantSendImmediately(), count, words))
void info (std::ostream &os) noexcept override try
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.
void release () noexcept try
void updated (const enumeration::MidiEndpointDeviceInformationUpdatedEventArgs &args) try
 what the watcher says changed at the endpoint: logged

Protected Attributes

uint32_t count
std::function< void()> flush_hook
std::function< void()> halt_hook
uint32_t maximum
 words a transmission takes, read when the connection opens
std::function< void()> run_hook
uint32_t const uint32_t *words try

Detailed Description

template<typename desc_t = desc, typename preference_t = preference, template< typename ... > typename stream_t = stream>
class dx::midi::services::device< desc_t, preference_t, stream_t >

Windows MIDI Services client device.

Member Typedef Documentation

◆ desc_t

◆ event_t

typedef event dx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > >, void >::event_t
inherited

◆ group_t

typedef std::conditional_t<std::is_void_v<void>, dx::stream::group<device>, void> dx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > >, void >::group_t
inherited

bus devices driving their groups' tick pass their own group type

◆ source_t

typedef promoted<uint32_t>::template preference<decltype(dx::stream::control< dx::device< std::string, preference > >::preference)> dx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > >, void >::source_t
inherited

◆ value_t

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
typedef desc dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::value_t
inherited

Constructor & Destructor Documentation

◆ device()

template<typename desc_t = desc, typename preference_t = preference, template< typename ... > typename stream_t = stream>
dx::midi::services::device< desc_t, preference_t, stream_t >::device ( decltype(super::driver)& driver,
decltype(super::id)& id )
inline

the desc is the driver's template: the driver that makes a device is this bus's

Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ __dx_catchall()

dx::stream::control< object_t >::__dx_catchall ( std::cerr<< dx::exception &,.,,, __LINE__<< std::endl; )
inlinenoexceptinherited

◆ align() [1/2]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
struct stream * dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::align ( struct stream * sync_reference)
inlineinherited

◆ align() [2/2]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
uint32_t dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::align ( uint32_t sync_reference) const
inlineinherited

◆ attach()

void dx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > >, void >::attach ( channel_t ** io[dx::stream::direction::directions][2],
const std::vector< bool >(&) channel_map[2] )
inlineinherited

◆ conclude()

void dx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > >, void >::conclude ( )
inlineoverridenoexceptinherited

ends every group's session before the device's resources go; the start counts stay with their holders

◆ connect()

void dx::midi::services::_device< desc, preference, stream< device< desc, preference, stream > > >::connect ( stream< device< desc, preference, stream > > & stream)
inlineprotectedinherited

the session and the connection made by the first stream to run, the callback set ahead of Open()

◆ dx_catchall_handler()

dx::midi::services::_device< desc, preference, stream< device< desc, preference, stream > > >::dx_catchall_handler ( this )
protectedinherited

whole packets to the endpoint, at the moment given - the service schedules them - or at once for 0

◆ dx_catchall_rethrow()

dx::midi::services::_device< desc, preference, stream< device< desc, preference, stream > > >::dx_catchall_rethrow ( ) &
inlineprotectednoexceptinherited

the last stream to halt closes the connection

◆ dx_pass()

dx::midi::services::_device< desc, preference, stream< device< desc, preference, stream > > >::dx_pass ( raw-> SendMidiMessagesRawtimestamp? static_cast< uint64_t >(dx::qpc(timestamp).QuadPart):api::MidiClock::TimestampConstantSendImmediately(), count, words)
protectedinherited

◆ enumerate()

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
uint32_t dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::enumerate ( const format & format = any) const
inlineinherited

enumerate typified pins

Here is the caller graph for this function:

◆ exception()

◆ find() [1/4]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
struct stream * dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::find ( const decltype(stream::target.idx())& target)
inlineinherited

◆ find() [2/4]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
struct stream * dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::find ( const format & format = any,
enum direction::direction direction = direction::any )
inlineinherited
Parameters
formatsearch stream format filter
directionsearch stream direction filter

◆ find() [3/4]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
struct stream * dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::find ( const target_t & target)
inlineinherited

◆ find() [4/4]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
struct stream * dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::find ( uint32_t & pin,
const format & format = any,
enum direction::direction direction = direction::any )
inlineinherited

finds and returns the stream description and pin idx into this stream

Returns
stream description of indexed pin, pin idx will be altered on return!
Parameters
pinin: global pin index, out: pin index into returned stream description
formatsearch stream format filter
directionsearch stream direction filter
Here is the caller graph for this function:

◆ hw_clock() [1/2]

virtual bool dx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > >, void >::hw_clock ( ) const
inlinevirtualnoexceptinherited

◆ hw_clock() [2/2]

virtual void dx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > >, void >::hw_clock ( abstract::event * hw_clock,
uint32_t iosize )
inlinevirtualinherited

◆ info()

void dx::midi::services::_device< desc, preference, stream< device< desc, preference, stream > > >::info ( std::ostream & os)
inlineoverrideprotectedvirtualnoexceptinherited

◆ launch()

virtual void dx::object::launch ( )
inlineprotectedvirtualinherited

launch notification: object mounted and ready to use. Called only through try_launch() - never call this directly from outside the class hierarchy.

◆ operator==()

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
bool dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::operator== ( const desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources > & desc) const
inlineinherited

◆ operator>>()

virtual device & dx::device< std::string, preference >::operator>> ( std::ostream & ) const
inlinevirtualinherited

◆ operator[]() [1/2]

group_t & dx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > >, void >::operator[] ( const typename desc::stream::desc & stream)
inlineinherited

the stream's group, created on first use

◆ operator[]() [2/2]

group_t & dx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > >, void >::operator[] ( const typename desc::stream::desc & stream)
inlineinherited

the stream's group, created on first use

◆ release()

void dx::midi::services::_device< desc, preference, stream< device< desc, preference, stream > > >::release ( )
inlineprotectednoexceptinherited

◆ sleep()

virtual void dx::device< std::string, preference >::sleep ( )
inlinevirtualinherited

notify system will sleep stub

◆ source() [1/2]

virtual std::pair< source_t &, bool > dx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > >, void >::source ( const struct desc::stream & stream)
inlinevirtualinherited

the stream's source selector, created on first use: the preference by stream target, the value an index into the stream's sources

◆ source() [2/2]

virtual std::pair< source_t &, bool > dx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > >, void >::source ( const struct desc::stream & stream)
inlinevirtualinherited

the stream's source selector, created on first use: the preference by stream target, the value an index into the stream's sources

◆ sync_reference() [1/2]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
uint32_t dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::sync_reference ( struct stream * sync_reference)
inlineinherited

◆ sync_reference() [2/2]

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
struct stream * dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::sync_reference ( uint32_t sync_reference)
inlineinherited

◆ try_conclude()

bool dx::object::try_conclude ( )
inlinenoexceptinherited

atomically conclude()s if currently launched; returns whether this call did it

◆ try_launch()

bool dx::object::try_launch ( )
inlineinherited

atomically launch()es if not already launched; returns whether this call did it

◆ updated()

void dx::midi::services::_device< desc, preference, stream< device< desc, preference, stream > > >::updated ( const enumeration::MidiEndpointDeviceInformationUpdatedEventArgs & args)
inlineprotectedinherited

what the watcher says changed at the endpoint: logged

◆ wake()

void dx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > >, void >::wake ( )
inlineoverrideinherited

Member Data Documentation

◆ bus

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
dx::stream::bus::bus dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::bus {}
inherited

the bus this device hangs on

◆ clock

event -> its own iosize and sample counter

◆ clocks

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
uint32_t dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::clocks {}
inherited

number of independent clocks [currenlty only single clock support]

◆ clocksource

◆ count

◆ dflt

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
bool dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::dflt {}
inherited

can be selected as default (OS audio) device

◆ driver

dx::driver<decltype(id), preference>& dx::device< std::string, preference >::driver
inherited

◆ editable

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
bool dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::editable {}
inherited

can be edited

◆ flush_hook

std::function<void()> dx::stream::control< object_t >::flush_hook
protectedinherited

◆ group

std::map<decltype(desc::stream::group), group_t> dx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > >, void >::group
inherited

streaming groups by desc::stream::group id: every stream of this device is registered with its group

◆ halt_hook

std::function<void()> dx::stream::control< object_t >::halt_hook
protectedinherited

◆ hidden

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
bool dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::hidden {}
inherited

hide device

◆ hosted

bool dx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > >, void >::hosted
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]

struct { ... } dx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > >, void >::hw
Todo
migrate hw clock generation/distribution into a dedicated clock class

◆ icon

promoted<std::string>::preference<decltype(dx::stream::control< dx::device< std::string, preference > >::preference)> dx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > >, void >::icon
inherited

◆ id

const std::string dx::device< std::string, preference >::id
inherited

◆ iosize [1/2]

◆ iosize [2/2]

uint32_t dx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > >, void >::iosize
inherited

staging value for registration paths without their own iosize argument (macOS CF property bridge)

◆ launched

std::atomic<bool> dx::object::launched
inherited

◆ maximum

words a transmission takes, read when the connection opens

◆ model

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
struct dx::stream::desc::name_id dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::model
inherited

◆ monitor

◆ persistence

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
bool dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::persistence {}
inherited

device has capability to store persistent settings (i.e. sample rate; clock source; etc.)

◆ preference

preference dx::device< std::string, preference >::preference
inherited

◆ puid

std::string dx::device< std::string, preference >::puid
inherited

persistent UID - system unique - could change with location

◆ puuid

std::string dx::device< std::string, preference >::puuid
inherited

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

◆ run_hook

std::function<void()> dx::stream::control< object_t >::run_hook
protectedinherited

◆ samplerate

◆ sources

std::map<decltype(desc::stream::target.idx()), source_t> dx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > >, void >::sources
inherited

source selectors by stream target: a stream with sources gets its own on first use

◆ start

promoted<uint32_t> dx::stream::control< object_t >::start
inherited

◆ start_stop_order

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
direction::direction dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::start_stop_order = direction::any
inherited

◆ started

promoted<bool> dx::stream::control< object_t >::started
inherited

◆ stream

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
struct dx::stream::desc::stream dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::stream[max_streams]
inherited

◆ streams

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
uint32_t dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::streams {}
inherited

number of streams

◆ sync_reference

promoted<structdesc_t::stream*>::template preference<decltype(dx::stream::control< dx::device< std::string, preference > >::preference), uint32_t> dx::stream::device< dx::stream::control< dx::device< std::string, preference > >, desc, stream< device< desc, preference, stream > >, void >::sync_reference
inherited

◆ try

uint32_t const uint32_t* words dx::midi::services::_device< desc, preference, stream< device< desc, preference, stream > > >::try
protectedinherited

◆ vendor

template<typename target_t = void_struct, int max_streams = 2, int max_pins = 1, int max_clock_settings = 1, int max_clocks = 1, int max_configurations = 1, int max_sources = 1>
struct dx::stream::desc::name_id dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations, max_sources >::vendor
inherited

◆ version


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

(c) copyright 2009 dynamic acoustics e.U. generated on

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.