hydrogen 1.2.3
CoreAudioDriver Class Reference

#include <CoreAudioDriver.h>

Inheritance diagram for CoreAudioDriver:
Object< CoreAudioDriver > AudioOutput Base Object< AudioOutput > Base

Public Member Functions

 CoreAudioDriver (audioProcessCallback processCallback)
 
virtual ~CoreAudioDriver ()
 
virtual int connect () override
 
virtual void disconnect () override
 
virtual unsigned getBufferSize () override
 
virtual int getLatency () override
 Approximate audio latency (in frames) A reasonable approximation is the buffer time on most audio systems.
 
virtual float * getOut_L () override
 
virtual float * getOut_R () override
 
virtual unsigned getSampleRate () override
 
virtual int init (unsigned nBufferSize) override
 
- Public Member Functions inherited from Object< CoreAudioDriver >
 Object ()
 
 Object (const Object< CoreAudioDriver > &other)
 
- Public Member Functions inherited from Base
 Base ()
 
 Base (const Base &other)
 
virtual const char * class_name () const
 
void Print (bool bShort=true) const
 Prints content of toQString() via DEBUGLOG.
 
virtual QString toQString (const QString &sPrefix="", bool bShort=true) const
 Formatted string version for debugging purposes.
 
- Public Member Functions inherited from AudioOutput
 AudioOutput ()=default
 
virtual ~AudioOutput ()
 
virtual int getXRuns () const
 Get the number of XRuns that occurred since the audio driver has started.
 
- Public Member Functions inherited from Object< AudioOutput >
 Object ()
 
 Object (const Object< AudioOutput > &other)
 

Static Public Member Functions

static QStringList getDevices ()
 
- Static Public Member Functions inherited from Base
static const char * _class_name ()
 return the class name
 
static QString base_clock (const QString &sMsg)
 Measures the current time and stores it in __last_clock.
 
static QString base_clock_in (const QString &sMsg)
 
static int bootstrap (Logger *logger, bool count=false)
 must be called before any Object instantiation !
 
static bool count_active ()
 
static int getAliveObjectCount ()
 
static object_map_t getObjectMap ()
 
static Loggerlogger ()
 return the logger instance
 
static int objects_count ()
 
static void printObjectMapDiff (object_map_t map)
 Creates the difference between a snapshot of the object map and its current state and prints it to std::cout.
 
static void set_count (bool flag)
 enable/disable class instances counting
 
static void write_objects_map_to (std::ostream &out, object_map_t *map=nullptr)
 output the full objects map to a given ostream
 
static void write_objects_map_to_cerr ()
 output objects map to stderr
 
- Static Public Member Functions inherited from AudioOutput
static QStringList getDevices ()
 

Data Fields

UInt32 m_nBufferSize
 
AudioDeviceID m_outputDevice
 
AudioUnit m_outputUnit
 
float * m_pOut_L
 
float * m_pOut_R
 
audioProcessCallback mProcessCallback
 

Private Member Functions

AudioDeviceID defaultOutputDevice (void)
 
AudioDeviceID preferredOutputDevice ()
 
void printStreamInfo (void)
 
void retrieveBufferSize (void)
 

Static Private Member Functions

static QString deviceName (AudioDeviceID deviceID)
 
static std::vector< AudioDeviceID > outputDeviceIDs ()
 

Private Attributes

bool m_bIsRunning
 
unsigned m_nSampleRate
 
unsigned oSampleRate
 

Additional Inherited Members

- Static Public Attributes inherited from Base
static QString sPrintIndention = " "
 String used to format the debugging string output of some core classes.
 
- Protected Member Functions inherited from Object< CoreAudioDriver >
 ~Object ()
 
- Protected Member Functions inherited from Base
 ~Base ()
 
- Protected Member Functions inherited from Object< AudioOutput >
 ~Object ()
 
- Static Protected Member Functions inherited from Base
static void registerClass (const char *name, const atomic_obj_cpt_t *counters)
 
- Static Protected Attributes inherited from Base
static bool __count = false
 should we count class instances
 
static timeval __last_clock = { 0, 0 }
 
static Logger__logger = nullptr
 

Detailed Description

Definition at line 52 of file CoreAudioDriver.h.

Constructor & Destructor Documentation

◆ CoreAudioDriver()

Definition at line 319 of file CoreAudioDriver.cpp.

◆ ~CoreAudioDriver()

~CoreAudioDriver ( )
virtual

Definition at line 341 of file CoreAudioDriver.cpp.

Member Function Documentation

◆ connect()

int connect ( )
overridevirtual

Implements AudioOutput.

Definition at line 456 of file CoreAudioDriver.cpp.

◆ defaultOutputDevice()

AudioDeviceID defaultOutputDevice ( void )
private

Definition at line 232 of file CoreAudioDriver.cpp.

◆ deviceName()

QString deviceName ( AudioDeviceID deviceID)
staticprivate

Definition at line 108 of file CoreAudioDriver.cpp.

◆ disconnect()

void disconnect ( )
overridevirtual

Implements AudioOutput.

Definition at line 470 of file CoreAudioDriver.cpp.

◆ getBufferSize()

unsigned getBufferSize ( )
overridevirtual

Implements AudioOutput.

Definition at line 492 of file CoreAudioDriver.cpp.

◆ getDevices()

QStringList getDevices ( )
static

Definition at line 200 of file CoreAudioDriver.cpp.

◆ getLatency()

int getLatency ( )
overridevirtual

Approximate audio latency (in frames) A reasonable approximation is the buffer time on most audio systems.

For systems with variable buffer sizes, this isn't very useful though

Reimplemented from AudioOutput.

Definition at line 62 of file CoreAudioDriver.cpp.

◆ getOut_L()

float * getOut_L ( )
overridevirtual

Implements AudioOutput.

Definition at line 478 of file CoreAudioDriver.cpp.

◆ getOut_R()

float * getOut_R ( )
overridevirtual

Implements AudioOutput.

Definition at line 485 of file CoreAudioDriver.cpp.

◆ getSampleRate()

unsigned getSampleRate ( )
overridevirtual

Implements AudioOutput.

Definition at line 499 of file CoreAudioDriver.cpp.

◆ init()

int init ( unsigned nBufferSize)
overridevirtual

Implements AudioOutput.

Definition at line 348 of file CoreAudioDriver.cpp.

◆ outputDeviceIDs()

std::vector< AudioDeviceID > outputDeviceIDs ( )
staticprivate

Definition at line 132 of file CoreAudioDriver.cpp.

◆ preferredOutputDevice()

AudioDeviceID preferredOutputDevice ( )
private

Definition at line 210 of file CoreAudioDriver.cpp.

◆ printStreamInfo()

void printStreamInfo ( void )
private

Definition at line 286 of file CoreAudioDriver.cpp.

◆ retrieveBufferSize()

void retrieveBufferSize ( void )
private

Definition at line 259 of file CoreAudioDriver.cpp.

Field Documentation

◆ m_bIsRunning

bool m_bIsRunning
private

Definition at line 97 of file CoreAudioDriver.h.

◆ m_nBufferSize

UInt32 m_nBufferSize

Definition at line 58 of file CoreAudioDriver.h.

◆ m_nSampleRate

unsigned m_nSampleRate
private

Definition at line 98 of file CoreAudioDriver.h.

◆ m_outputDevice

AudioDeviceID m_outputDevice

Definition at line 61 of file CoreAudioDriver.h.

◆ m_outputUnit

AudioUnit m_outputUnit

Definition at line 60 of file CoreAudioDriver.h.

◆ m_pOut_L

float* m_pOut_L

Definition at line 63 of file CoreAudioDriver.h.

◆ m_pOut_R

float* m_pOut_R

Definition at line 64 of file CoreAudioDriver.h.

◆ mProcessCallback

audioProcessCallback mProcessCallback

Definition at line 57 of file CoreAudioDriver.h.

◆ oSampleRate

unsigned oSampleRate
private

Definition at line 99 of file CoreAudioDriver.h.