VISR  0.11.8
Versatile Interactive Scene Renderer
visr::audiointerfaces::AudioInterface Class Referenceabstract

#include <audio_interface.hpp>

Inheritance diagram for visr::audiointerfaces::AudioInterface:
visr::audiointerfaces::JackInterface visr::audiointerfaces::PortaudioInterface

Classes

class  Configuration
 

Public Types

using SampleRateType = std::size_t
 
using AudioCallback = void(*)(void *, ExternalSampleType const *const *, ExternalSampleType *const *, bool &)
 
using ExternalSampleType = float
 Preliminary definition of sample types. More...
 
using InternalSampleType = float
 note: the internal sample type should be of no concern to the abstract interface. More...
 

Public Member Functions

virtual ~AudioInterface ()
 
virtual std::size_t numberOfCaptureChannels () const =0
 
virtual std::size_t numberOfPlaybackChannels () const =0
 
virtual std::size_t period () const =0
 
virtual std::size_t samplingFrequency () const =0
 
virtual bool registerCallback (AudioCallback callbackPtr, void *userData)=0
 
virtual bool unregisterCallback (AudioCallback callbackPtr)=0
 
virtual void start ()=0
 
virtual void stop ()=0
 

Detailed Description

Abstract interface for various audio interfaces.

Member Typedef Documentation

◆ AudioCallback

using visr::audiointerfaces::AudioInterface::AudioCallback = void (*)( void *, ExternalSampleType const * const * , ExternalSampleType * const * , bool& )

The type of the callback function that can be registered to be called if sufficient data is available

◆ ExternalSampleType

Preliminary definition of sample types.

◆ InternalSampleType

note: the internal sample type should be of no concern to the abstract interface.

◆ SampleRateType

The type used to specify the sampling frequency

Note
Maybe this type should be moved to a more general location & a uniform type is used for the sample rate.

Constructor & Destructor Documentation

◆ ~AudioInterface()

visr::audiointerfaces::AudioInterface::~AudioInterface ( )
virtualdefault

Virtual base class destructor, enable destruction of polymorphically instantiated objects

Member Function Documentation

◆ numberOfCaptureChannels()

virtual std::size_t visr::audiointerfaces::AudioInterface::numberOfCaptureChannels ( ) const
pure virtual

Return the number of input channels to the interface.

Implemented in visr::audiointerfaces::PortaudioInterface, and visr::audiointerfaces::JackInterface.

◆ numberOfPlaybackChannels()

virtual std::size_t visr::audiointerfaces::AudioInterface::numberOfPlaybackChannels ( ) const
pure virtual

Return the number of output channels to the interface.

Implemented in visr::audiointerfaces::PortaudioInterface, and visr::audiointerfaces::JackInterface.

◆ period()

virtual std::size_t visr::audiointerfaces::AudioInterface::period ( ) const
pure virtual

Return the configured period (block size).

Implemented in visr::audiointerfaces::PortaudioInterface, and visr::audiointerfaces::JackInterface.

◆ registerCallback()

virtual bool visr::audiointerfaces::AudioInterface::registerCallback ( AudioCallback  callbackPtr,
void *  userData 
)
pure virtual

◆ samplingFrequency()

virtual std::size_t visr::audiointerfaces::AudioInterface::samplingFrequency ( ) const
pure virtual

Return the configured sampling frequency (in Hz)

Implemented in visr::audiointerfaces::PortaudioInterface, and visr::audiointerfaces::JackInterface.

◆ start()

virtual void visr::audiointerfaces::AudioInterface::start ( )
pure virtual

Start the audio interface, i.e., reacting to callbacks and passing them to the registered callback handlers. Pure virtual method, must be implemented in all concrete derived classes.

Implemented in visr::audiointerfaces::PortaudioInterface, and visr::audiointerfaces::JackInterface.

◆ stop()

virtual void visr::audiointerfaces::AudioInterface::stop ( )
pure virtual

Stop the audio interface, i.e., calling the registered callback functions anymore. Pure virtual method, must be implemented in all concrete derived classes.

Implemented in visr::audiointerfaces::PortaudioInterface, and visr::audiointerfaces::JackInterface.

◆ unregisterCallback()

virtual bool visr::audiointerfaces::AudioInterface::unregisterCallback ( AudioCallback  callbackPtr)
pure virtual

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