dxd - dynax driver framework 2.1.0d58
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::coreaudio::pin Class Reference

CoreAudio client pin. More...

#include <dx_coreaudio.h>

+ Inheritance diagram for dx::coreaudio::pin:
+ Collaboration diagram for dx::coreaudio::pin:

Public Types

typedef circular circular_t
 
typedef struct pin desc
 
typedef dx::stream::desc< void_structdesc_t
 
typedef class device device_t
 
enum class  plug : uint32_t {
  line = 'line' , digital = 'dgtl' , spdif = 'spdf' , din = 'din5' ,
  synth = 'snth' , keyboard = 'keys' , dsp = 'dsp\0' , control = 'cntr'
}
 

Public Member Functions

template<unsigned int channels, typename channel_t >
pinattach (channel_t **io[2], uint64_t channel_map[(channels+63)/64])
 
std::string describe () const
 describes pin as channels*format/[in|out] #idx:plug
 
 operator circular_t * () const noexcept
 
circular_toperator-> () const noexcept
 
 pin (device_t &device, const typename desc_t::stream::desc &stream_desc, const typename desc_t::stream::pin::desc &pin_desc)
 
uint32_t samplerate () const
 
uint32_t samplerate (uint32_t samplerate)
 
pinsignal ()
 
virtual void start ()
 
virtual void stop (bool force=false) noexcept
 
pinwait ()
 
virtual ~pin () noexcept
 

Public Attributes

uint32_t channels
 amount of channels in pin
 
dx::stream::channel::controlcontrol = nullptr
 
encoder encoder
 
circular::format format
 
bool hidden
 if hidden prevent audio client (CoreAudio, PortClass, ASIO) auto attach
 
uint32_t index
 MIDI:cable number; audio:channel array start.
 
uint32_t latency
 pin latency in samples
 
char name [0x40]
 
enum dx::stream::desc::stream::pin::plug plug
 

Protected Member Functions

virtual void received (os_result status, size_t size, int64_t timestamp)
 
virtual void transmitted (os_result status, size_t size, int64_t timestamp)
 

Protected Attributes

devicedevice
 
std::atomic< int32_tstarted {}
 

Detailed Description

CoreAudio client pin.

Member Typedef Documentation

◆ circular_t

◆ desc

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>
typedef struct pin dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::stream::pin::desc
inherited

◆ desc_t

◆ device_t

Member Enumeration Documentation

◆ plug

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>
enum class dx::stream::desc::stream::pin::plug : uint32_t
stronginherited
Enumerator
line 

stereo line interface: kAudioStreamTerminalTypeLine

Todo
use USB terminal ids and DEFINE_USB_TERMINAL_GUID
digital 

digital multi channel audio interface

spdif 

stereo SPDIF digital audio interface: kAudioStreamTerminalTypeDigitalAudioInterface

din 

device-external 5 pin DIN MIDI connector

synth 

device-internal MIDI synthesizer

keyboard 

MIDI keyboard.

dsp 

digital signal processor

control 

control device

Constructor & Destructor Documentation

◆ pin()

dx::coreaudio::pin::pin ( device_t & device,
const typename desc_t::stream::desc & stream_desc,
const typename desc_t::stream::pin::desc & pin_desc )
inline
Todo
pin::control: find descriptive, scoping name; evaluate presence in non-kernel interface

◆ ~pin()

virtual dx::coreaudio::pin::~pin ( )
inlinevirtualnoexcept
+ Here is the call graph for this function:

Member Function Documentation

◆ attach()

template<unsigned int channels, typename channel_t >
pin & dx::coreaudio::pin::attach ( channel_t ** io[2],
uint64_t channel_map[(channels+63)/64] )
inline

◆ describe()

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>
std::string dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::stream::pin::describe ( ) const
inlineinherited

describes pin as channels*format/[in|out] #idx:plug

+ Here is the call graph for this function:

◆ operator circular_t *()

dx::coreaudio::pin::operator circular_t * ( ) const
inlinenoexcept

◆ operator->()

circular_t * dx::coreaudio::pin::operator-> ( ) const
inlinenoexcept

◆ received()

virtual void dx::coreaudio::pin::received ( os_result status,
size_t size,
int64_t timestamp )
inlineprotectedvirtual

◆ samplerate() [1/2]

uint32_t dx::coreaudio::pin::samplerate ( ) const
inline
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ samplerate() [2/2]

uint32_t dx::coreaudio::pin::samplerate ( uint32_t samplerate)
inline
+ Here is the call graph for this function:

◆ signal()

pin & dx::coreaudio::pin::signal ( )
inline

◆ start()

virtual void dx::coreaudio::pin::start ( )
inlinevirtual
+ Here is the call graph for this function:

◆ stop()

virtual void dx::coreaudio::pin::stop ( bool force = false)
inlinevirtualnoexcept
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ transmitted()

virtual void dx::coreaudio::pin::transmitted ( os_result status,
size_t size,
int64_t timestamp )
inlineprotectedvirtual

◆ wait()

pin & dx::coreaudio::pin::wait ( )
inline

Member Data Documentation

◆ channels

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>
uint32_t dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::stream::pin::channels
inherited

amount of channels in pin

◆ control

dx::stream::channel::control* dx::coreaudio::pin::control = nullptr

◆ device

device& dx::coreaudio::pin::device
protected

◆ encoder

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>
encoder dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::stream::pin::encoder
inherited

◆ format

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>
circular::format dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::stream::pin::format
inherited

◆ 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>
bool dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::stream::pin::hidden
inherited

if hidden prevent audio client (CoreAudio, PortClass, ASIO) auto attach

◆ index

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>
uint32_t dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::stream::pin::index
inherited

MIDI:cable number; audio:channel array start.

◆ latency

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>
uint32_t dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::stream::pin::latency
inherited

pin latency in samples

◆ name

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>
char dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::stream::pin::name[0x40]
inherited
Todo
remove redundant pin_desc typedef once the llvm understands templates (coremidi)

◆ plug

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>
enum dx::stream::desc::stream::pin::plug dx::stream::desc< target_t, max_streams, max_pins, max_clock_settings, max_clocks, max_configurations >::stream::pin::plug
inherited

◆ started

std::atomic<int32_t> dx::coreaudio::pin::started {}
protected

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

(c) copyright 2009 dynamic acoustics e.U. generated on Wed Apr 24 2024

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.