pianod2
multisource multiuser scriptable networked music player
Public Member Functions | Private Attributes | Static Private Attributes | List of all members
Audio::LibaoOutput Class Reference

Audio output class utilizing libao for output. More...

#include <libaooutput.h>

Inheritance diagram for Audio::LibaoOutput:
Inheritance graph
[legend]
Collaboration diagram for Audio::LibaoOutput:
Collaboration graph
[legend]

Public Member Functions

 LibaoOutput (const AudioSettings &settings, const AudioFormat &format)
 Open audio output using libAO. More...
 
virtual ~LibaoOutput () override
 
virtual bool play (void *buffer, unsigned numberOfBytes) override
 Play output. More...
 
- Public Member Functions inherited from Audio::Output
virtual ~Output ()
 
char bytesPerSample ()
 

Private Attributes

ao_device * device = nullptr
 

Static Private Attributes

static std::mutex ao_mutex
 Mutex to restrict concurrent calls into libao API. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Audio::Output
static bool isValidOutput (const AudioSettings &settings)
 Check if audio settings are valid. More...
 
static bool outputCanCrossfade (const AudioSettings &settings)
 Check if audio settings are valid. More...
 
static OutputgetOutput (const AudioSettings &settings, const AudioFormat &format)
 Factory gets whatever kind of output is best, or requested by the audio settings. More...
 
static void reportLibrariesAndVersions (int verbose)
 Report audio libraries in use, and their versions. More...
 
- Protected Attributes inherited from Audio::Output
char bytes_per_sample_set
 

Detailed Description

Audio output class utilizing libao for output.

Constructor & Destructor Documentation

◆ LibaoOutput()

Audio::LibaoOutput::LibaoOutput ( const AudioSettings settings,
const AudioFormat data_format 
)

Open audio output using libAO.

Parameters
settingsDevice/ driver/ host to use for output.
data_formatThe format in which samples will arrive for output.
Here is the call graph for this function:

◆ ~LibaoOutput()

Audio::LibaoOutput::~LibaoOutput ( )
overridevirtual

Member Function Documentation

◆ play()

bool Audio::LibaoOutput::play ( void *  buffer,
unsigned  number_of_bytes 
)
overridevirtual

Play output.

Parameters
bufferThe samples, in packed (interleaved) format if multichannel.
number_of_bytesSize of the buffer; number of samples is determined by the audio format set when opening the channel.

Implements Audio::Output.

Member Data Documentation

◆ ao_mutex

std::mutex Audio::LibaoOutput::ao_mutex
staticprivate

Mutex to restrict concurrent calls into libao API.

◆ device

ao_device* Audio::LibaoOutput::device = nullptr
private

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