VAE - Virtual Audio Engine 1
Small Data Driven Audio Engine
vae::core::BackendPortAudio Class Referencefinal

#include <vae_portaudio.hpp>

Inheritance diagram for vae::core::BackendPortAudio:
Collaboration diagram for vae::core::BackendPortAudio:

Public Member Functions

unsigned int getDeviceCount () override
 Gets number of devices, needed to iterate them. More...
 
DeviceInfo getDevice (unsigned int index) override
 Returns a spefic device info for index. More...
 
const char * getName () const override
 Returns name of the api. More...
 
DeviceInfo getDefaultOutputDevice () override
 
DeviceInfo getDefaultInputDevice () override
 
DevicecreateDevice (const EngineConfig &config) override
 Creates a device instance for this backend. More...
 

Static Public Member Functions

static BackendPortAudioinstance ()
 

Private Member Functions

 BackendPortAudio ()
 
 ~BackendPortAudio ()
 

Static Private Member Functions

static void debugLog (const char *message)
 

Detailed Description

Definition at line 159 of file vae_portaudio.hpp.

Constructor & Destructor Documentation

◆ BackendPortAudio()

vae::core::BackendPortAudio::BackendPortAudio ( )
inlineprivate

Should set up logging, but most of PortAudios underlying APIs don't care about this and print to stdout

Definition at line 164 of file vae_portaudio.hpp.

164 {
165 /**
166 * Should set up logging, but most of PortAudios underlying
167 * APIs don't care about this and print to stdout
168 */
169 PaUtil_SetDebugPrintFunction(&debugLog);
170 PaError err = Pa_Initialize();
171 if (err != paNoError) {
172 VAE_ASSERT(false)
173 return;
174 }
175 }
static void debugLog(const char *message)
#define VAE_ASSERT(condition)
Definition: vae_util.hpp:11
Here is the call graph for this function:

◆ ~BackendPortAudio()

vae::core::BackendPortAudio::~BackendPortAudio ( )
inlineprivate

Definition at line 177 of file vae_portaudio.hpp.

177 {
178 Pa_Terminate();
179 }

Member Function Documentation

◆ createDevice()

Device * vae::core::BackendPortAudio::createDevice ( const EngineConfig )
inlineoverridevirtual

Creates a device instance for this backend.

Implements vae::core::Backend.

Definition at line 216 of file vae_portaudio.hpp.

216 {
217 return new DevicePortaudio(*this, config);
218 }

◆ debugLog()

static void vae::core::BackendPortAudio::debugLog ( const char *  message)
inlinestaticprivate

Definition at line 160 of file vae_portaudio.hpp.

160 {
161 VAE_DEBUG("PortAudio: %s", message)
162 }
#define VAE_DEBUG(msg,...)
Definition: vae_logger.hpp:83
Here is the caller graph for this function:

◆ getDefaultInputDevice()

DeviceInfo vae::core::BackendPortAudio::getDefaultInputDevice ( )
inlineoverridevirtual

Implements vae::core::Backend.

Definition at line 212 of file vae_portaudio.hpp.

212 {
213 return getDevice(Pa_GetDefaultInputDevice());
214 };
DeviceInfo getDevice(unsigned int index) override
Returns a spefic device info for index.
Here is the call graph for this function:

◆ getDefaultOutputDevice()

DeviceInfo vae::core::BackendPortAudio::getDefaultOutputDevice ( )
inlineoverridevirtual

Implements vae::core::Backend.

Definition at line 208 of file vae_portaudio.hpp.

208 {
209 return getDevice(Pa_GetDefaultOutputDevice());
210 };
Here is the call graph for this function:

◆ getDevice()

DeviceInfo vae::core::BackendPortAudio::getDevice ( unsigned int  index)
inlineoverridevirtual

Returns a spefic device info for index.

Implements vae::core::Backend.

Definition at line 190 of file vae_portaudio.hpp.

190 {
191 const PaDeviceInfo* deviceInfo = Pa_GetDeviceInfo(index);
192 if (deviceInfo == nullptr) {
193 VAE_ASSERT(false)
194 return DeviceInfo();
195 }
196 DeviceInfo info;
197 info.id = index;
198 info.channelsIn = deviceInfo->maxInputChannels;
199 info.channelsOut = deviceInfo->maxOutputChannels;
200 info.sampleRate = Uint(deviceInfo->defaultSampleRate);
201 tklb::memory::stringCopy(info.name, deviceInfo->name, sizeof(DeviceInfo::name));
202 tklb::memory::stringCopy(info.api, getName(), sizeof(DeviceInfo::api), false);
203 return info;
204 };
const char * getName() const override
Returns name of the api.
static void stringCopy(char *dst, const char *src, size_t size, bool terminate=true)
Definition: TMemoryUtil.hpp:26
Using template interfaces isn't an option so this simply defines a default Convolver type.
Definition: TAllocator.hpp:15
unsigned int Uint
Definition: vae_types.hpp:46
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getDeviceCount()

unsigned int vae::core::BackendPortAudio::getDeviceCount ( )
inlineoverridevirtual

Gets number of devices, needed to iterate them.

Device index != does not have to be the device index!

Implements vae::core::Backend.

Definition at line 186 of file vae_portaudio.hpp.

186 {
187 return Pa_GetDeviceCount();
188 }

◆ getName()

const char * vae::core::BackendPortAudio::getName ( ) const
inlineoverridevirtual

Returns name of the api.

Implements vae::core::Backend.

Definition at line 206 of file vae_portaudio.hpp.

206{ return "portaudio"; };
Here is the caller graph for this function:

◆ instance()

static BackendPortAudio & vae::core::BackendPortAudio::instance ( )
inlinestatic

Definition at line 181 of file vae_portaudio.hpp.

181 {
182 static BackendPortAudio backend;
183 return backend;
184 }

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