hydrogen 1.2.6
PortAudioDriver Class Reference

#include <PortAudioDriver.h>

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

Public Member Functions

 PortAudioDriver (audioProcessCallback processCallback)
 
virtual ~PortAudioDriver ()
 
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< PortAudioDriver >
 Object ()
 
 Object (const Object< PortAudioDriver > &other)
 
- Public Member Functions inherited from Base
 Base ()
 
 Base (const Base &other)
 
virtual const char * class_name () const
 
void logBacktrace () const
 Print the current stack at point into the debug log.
 
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 QStringList getDevices (QString HostAPI)
 
static QStringList getHostAPIs ()
 
- 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

float * m_pOut_L
 
float * m_pOut_R
 
audioProcessCallback m_processCallback
 

Private Attributes

unsigned m_nSampleRate
 
PaStream * m_pStream
 
QString m_sDevice
 

Static Private Attributes

static bool m_bInitialised = false
 

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< PortAudioDriver >
 ~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
 
static bool bLogColors = true
 

Detailed Description

Definition at line 40 of file PortAudioDriver.h.

Constructor & Destructor Documentation

◆ PortAudioDriver()

Definition at line 64 of file PortAudioDriver.cpp.

◆ ~PortAudioDriver()

~PortAudioDriver ( )
virtual

Definition at line 76 of file PortAudioDriver.cpp.

Member Function Documentation

◆ connect()

int connect ( )
overridevirtual

Implements AudioOutput.

Definition at line 156 of file PortAudioDriver.cpp.

◆ disconnect()

void disconnect ( )
overridevirtual

Implements AudioOutput.

Definition at line 290 of file PortAudioDriver.cpp.

◆ getBufferSize()

unsigned getBufferSize ( )
overridevirtual

Implements AudioOutput.

Definition at line 315 of file PortAudioDriver.cpp.

◆ getDevices() [1/2]

QStringList getDevices ( )
static

Definition at line 146 of file PortAudioDriver.cpp.

◆ getDevices() [2/2]

QStringList getDevices ( QString HostAPI)
static

Definition at line 108 of file PortAudioDriver.cpp.

◆ getHostAPIs()

QStringList getHostAPIs ( )
static

Definition at line 86 of file PortAudioDriver.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 325 of file PortAudioDriver.cpp.

◆ getOut_L()

float * getOut_L ( )
overridevirtual

Implements AudioOutput.

Definition at line 341 of file PortAudioDriver.cpp.

◆ getOut_R()

float * getOut_R ( )
overridevirtual

Implements AudioOutput.

Definition at line 346 of file PortAudioDriver.cpp.

◆ getSampleRate()

unsigned getSampleRate ( )
overridevirtual

Implements AudioOutput.

Definition at line 320 of file PortAudioDriver.cpp.

◆ init()

int init ( unsigned nBufferSize)
overridevirtual

Implements AudioOutput.

Definition at line 79 of file PortAudioDriver.cpp.

Field Documentation

◆ m_bInitialised

bool m_bInitialised = false
staticprivate

Definition at line 69 of file PortAudioDriver.h.

◆ m_nSampleRate

unsigned m_nSampleRate
private

Definition at line 66 of file PortAudioDriver.h.

◆ m_pOut_L

float* m_pOut_L

Definition at line 45 of file PortAudioDriver.h.

◆ m_pOut_R

float* m_pOut_R

Definition at line 46 of file PortAudioDriver.h.

◆ m_processCallback

audioProcessCallback m_processCallback

Definition at line 44 of file PortAudioDriver.h.

◆ m_pStream

PaStream* m_pStream
private

Definition at line 65 of file PortAudioDriver.h.

◆ m_sDevice

QString m_sDevice
private

Definition at line 67 of file PortAudioDriver.h.