hydrogen 1.2.3
AlsaAudioDriver Class Reference

#include <AlsaAudioDriver.h>

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

Public Member Functions

 AlsaAudioDriver (audioProcessCallback processCallback)
 
 ~AlsaAudioDriver ()
 
virtual int connect () override
 
virtual void disconnect () override
 
virtual unsigned getBufferSize () override
 
virtual float * getOut_L () override
 
virtual float * getOut_R () override
 
virtual unsigned getSampleRate () override
 
virtual int getXRuns () const override
 Get the number of XRuns that occurred since the audio driver has started.
 
virtual int init (unsigned nBufferSize) override
 
- Public Member Functions inherited from Object< AlsaAudioDriver >
 Object ()
 
 Object (const Object< AlsaAudioDriver > &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 getLatency ()
 Approximate audio latency (in frames) A reasonable approximation is the buffer time on most audio systems.
 
- Public Member Functions inherited from Object< AudioOutput >
 Object ()
 
 Object (const Object< AudioOutput > &other)
 

Static Public Member Functions

static QStringList getDevices ()
 Use the name hints to build a list of potential device names.
 
- 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

bool m_bIsRunning
 
unsigned long m_nBufferSize
 
int m_nXRuns
 
float * m_pOut_L
 
float * m_pOut_R
 
snd_pcm_t * m_pPlayback_handle
 
audioProcessCallback m_processCallback
 
QString m_sAlsaAudioDevice
 

Private Attributes

unsigned int m_nSampleRate
 

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< AlsaAudioDriver >
 ~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 37 of file AlsaAudioDriver.h.

Constructor & Destructor Documentation

◆ AlsaAudioDriver()

Definition at line 183 of file AlsaAudioDriver.cpp.

◆ ~AlsaAudioDriver()

Definition at line 197 of file AlsaAudioDriver.cpp.

Member Function Documentation

◆ connect()

int connect ( )
overridevirtual

Implements AudioOutput.

Definition at line 216 of file AlsaAudioDriver.cpp.

◆ disconnect()

void disconnect ( )
overridevirtual

Implements AudioOutput.

Definition at line 367 of file AlsaAudioDriver.cpp.

◆ getBufferSize()

unsigned getBufferSize ( )
overridevirtual

Implements AudioOutput.

Definition at line 384 of file AlsaAudioDriver.cpp.

◆ getDevices()

QStringList getDevices ( )
static

Use the name hints to build a list of potential device names.

Definition at line 152 of file AlsaAudioDriver.cpp.

◆ getOut_L()

float * getOut_L ( )
overridevirtual

Implements AudioOutput.

Definition at line 394 of file AlsaAudioDriver.cpp.

◆ getOut_R()

float * getOut_R ( )
overridevirtual

Implements AudioOutput.

Definition at line 399 of file AlsaAudioDriver.cpp.

◆ getSampleRate()

unsigned getSampleRate ( )
overridevirtual

Implements AudioOutput.

Definition at line 389 of file AlsaAudioDriver.cpp.

◆ getXRuns()

virtual int getXRuns ( ) const
inlineoverridevirtual

Get the number of XRuns that occurred since the audio driver has started.

Reimplemented from AudioOutput.

Definition at line 62 of file AlsaAudioDriver.h.

◆ init()

int init ( unsigned nBufferSize)
overridevirtual

Implements AudioOutput.

Definition at line 208 of file AlsaAudioDriver.cpp.

Field Documentation

◆ m_bIsRunning

bool m_bIsRunning

Definition at line 42 of file AlsaAudioDriver.h.

◆ m_nBufferSize

unsigned long m_nBufferSize

Definition at line 43 of file AlsaAudioDriver.h.

◆ m_nSampleRate

unsigned int m_nSampleRate
private

Definition at line 66 of file AlsaAudioDriver.h.

◆ m_nXRuns

int m_nXRuns

Definition at line 48 of file AlsaAudioDriver.h.

◆ m_pOut_L

float* m_pOut_L

Definition at line 44 of file AlsaAudioDriver.h.

◆ m_pOut_R

float* m_pOut_R

Definition at line 45 of file AlsaAudioDriver.h.

◆ m_pPlayback_handle

snd_pcm_t* m_pPlayback_handle

Definition at line 41 of file AlsaAudioDriver.h.

◆ m_processCallback

audioProcessCallback m_processCallback

Definition at line 47 of file AlsaAudioDriver.h.

◆ m_sAlsaAudioDevice

QString m_sAlsaAudioDevice

Definition at line 46 of file AlsaAudioDriver.h.