Ring Daemon
Loading...
Searching...
No Matches
jami::PortAudioLayer::PortAudioLayerImpl Struct Reference
Collaboration diagram for jami::PortAudioLayer::PortAudioLayerImpl:
Collaboration graph

Public Member Functions

std::string getApiDefaultDeviceName (AudioDeviceType type, bool commDevice) const
 
PaDeviceIndex getApiIndexByType (AudioDeviceType type)
 
std::string getDeviceNameByType (const int index, AudioDeviceType type)
 
std::vector< std::string > getDevicesByType (AudioDeviceType type) const
 
int getIndexByType (AudioDeviceType type)
 
bool hasFullDuplexStream () const
 
void init (PortAudioLayer &)
 
bool initFullDuplexStream (PortAudioLayer &)
 
void initInput (PortAudioLayer &)
 
bool initInputStream (PortAudioLayer &)
 
void initOutput (PortAudioLayer &)
 
bool initOutputStream (PortAudioLayer &)
 
int paInputCallback (PortAudioLayer &parent, const float *inputBuffer, float *outputBuffer, unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags)
 
int paIOCallback (PortAudioLayer &parent, const float *inputBuffer, float *outputBuffer, unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags)
 
int paOutputCallback (PortAudioLayer &parent, const float *inputBuffer, float *outputBuffer, unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags)
 
bool paStopStream (Direction streamDirection)
 
 PortAudioLayerImpl (PortAudioLayer &, const AudioPreference &)
 
void terminate () const
 
 ~PortAudioLayerImpl ()
 

Public Attributes

bool apiInitialised_ {false}
 
AudioDeviceNotificationClientPtr audioDeviceNotificationClient_
 
std::string devicePlayback_ {}
 
std::string deviceRecord_ {}
 
std::string deviceRingtone_ {}
 
bool inputInitialized_ {false}
 
bool outputInitialized_ {false}
 
std::atomic< boolrestartRequestPending_ = false
 
std::array< PaStream *, static_cast< int >(Direction::End)> streams_
 
std::mutex streamsMutex_
 

Static Public Attributes

static constexpr const int defaultIndex_ {0}
 

Detailed Description

Definition at line 35 of file portaudiolayer.cpp.

Constructor & Destructor Documentation

◆ PortAudioLayerImpl()

◆ ~PortAudioLayerImpl()

jami::PortAudioLayer::PortAudioLayerImpl::~PortAudioLayerImpl ( )

Definition at line 326 of file portaudiolayer.cpp.

Member Function Documentation

◆ getApiDefaultDeviceName()

std::string jami::PortAudioLayer::PortAudioLayerImpl::getApiDefaultDeviceName ( AudioDeviceType  type,
bool  commDevice 
) const

Definition at line 516 of file portaudiolayer.cpp.

References jami::CAPTURE, and jami::emitSignal().

Here is the call graph for this function:

◆ getApiIndexByType()

PaDeviceIndex jami::PortAudioLayer::PortAudioLayerImpl::getApiIndexByType ( AudioDeviceType  type)

Definition at line 492 of file portaudiolayer.cpp.

References jami::CAPTURE, jami::emitSignal(), JAMI_ERR, and jami::PLAYBACK.

Here is the call graph for this function:

◆ getDeviceNameByType()

std::string jami::PortAudioLayer::PortAudioLayerImpl::getDeviceNameByType ( const int  index,
AudioDeviceType  type 
)

Definition at line 479 of file portaudiolayer.cpp.

◆ getDevicesByType()

std::vector< std::string > jami::PortAudioLayer::PortAudioLayerImpl::getDevicesByType ( AudioDeviceType  type) const

Definition at line 437 of file portaudiolayer.cpp.

References jami::CAPTURE, jami::emitSignal(), and JAMI_ERR.

Here is the call graph for this function:

◆ getIndexByType()

int jami::PortAudioLayer::PortAudioLayerImpl::getIndexByType ( AudioDeviceType  type)

Definition at line 463 of file portaudiolayer.cpp.

References jami::CAPTURE, jami::emitSignal(), and jami::PLAYBACK.

Here is the call graph for this function:

◆ hasFullDuplexStream()

bool jami::PortAudioLayer::PortAudioLayerImpl::hasFullDuplexStream ( ) const

Definition at line 774 of file portaudiolayer.cpp.

References jami::IO.

◆ init()

void jami::PortAudioLayer::PortAudioLayerImpl::init ( PortAudioLayer parent)

Definition at line 414 of file portaudiolayer.cpp.

References jami::emitSignal(), JAMI_DBG, and JAMI_ERR.

Referenced by PortAudioLayerImpl().

Here is the call graph for this function:

◆ initFullDuplexStream()

bool jami::PortAudioLayer::PortAudioLayerImpl::initFullDuplexStream ( PortAudioLayer parent)

Definition at line 699 of file portaudiolayer.cpp.

References jami::CAPTURE, jami::emitSignal(), jami::IO, JAMI_DBG, JAMI_ERR, jami::openPaStream(), jami::PLAYBACK, and jami::startPaStream().

Here is the call graph for this function:

◆ initInput()

void jami::PortAudioLayer::PortAudioLayerImpl::initInput ( PortAudioLayer parent)

Definition at line 332 of file portaudiolayer.cpp.

References jami::CAPTURE, jami::emitSignal(), JAMI_DBG, and JAMI_WARN.

Here is the call graph for this function:

◆ initInputStream()

bool jami::PortAudioLayer::PortAudioLayerImpl::initInputStream ( PortAudioLayer parent)

Definition at line 613 of file portaudiolayer.cpp.

References jami::CAPTURE, jami::emitSignal(), jami::Input, JAMI_DBG, JAMI_ERR, jami::openPaStream(), and jami::startPaStream().

Here is the call graph for this function:

◆ initOutput()

void jami::PortAudioLayer::PortAudioLayerImpl::initOutput ( PortAudioLayer parent)

Definition at line 373 of file portaudiolayer.cpp.

References jami::emitSignal(), JAMI_DBG, JAMI_WARN, and jami::PLAYBACK.

Here is the call graph for this function:

◆ initOutputStream()

bool jami::PortAudioLayer::PortAudioLayerImpl::initOutputStream ( PortAudioLayer parent)

Definition at line 656 of file portaudiolayer.cpp.

References jami::emitSignal(), JAMI_DBG, JAMI_ERR, jami::openPaStream(), jami::Output, jami::PLAYBACK, and jami::startPaStream().

Here is the call graph for this function:

◆ paInputCallback()

int jami::PortAudioLayer::PortAudioLayerImpl::paInputCallback ( PortAudioLayer parent,
const float inputBuffer,
float outputBuffer,
unsigned long  framesPerBuffer,
const PaStreamCallbackTimeInfo timeInfo,
PaStreamCallbackFlags  statusFlags 
)

Definition at line 813 of file portaudiolayer.cpp.

References jami::emitSignal(), jami::libav_utils::fillWithSilence(), and JAMI_WARN.

Here is the call graph for this function:

◆ paIOCallback()

int jami::PortAudioLayer::PortAudioLayerImpl::paIOCallback ( PortAudioLayer parent,
const float inputBuffer,
float outputBuffer,
unsigned long  framesPerBuffer,
const PaStreamCallbackTimeInfo timeInfo,
PaStreamCallbackFlags  statusFlags 
)

Definition at line 845 of file portaudiolayer.cpp.

References jami::emitSignal().

Here is the call graph for this function:

◆ paOutputCallback()

int jami::PortAudioLayer::PortAudioLayerImpl::paOutputCallback ( PortAudioLayer parent,
const float inputBuffer,
float outputBuffer,
unsigned long  framesPerBuffer,
const PaStreamCallbackTimeInfo timeInfo,
PaStreamCallbackFlags  statusFlags 
)

Definition at line 781 of file portaudiolayer.cpp.

References jami::emitSignal().

Here is the call graph for this function:

◆ paStopStream()

bool jami::PortAudioLayer::PortAudioLayerImpl::paStopStream ( Direction  streamDirection)

Definition at line 744 of file portaudiolayer.cpp.

References jami::emitSignal(), JAMI_DBG, and JAMI_ERR.

Here is the call graph for this function:

◆ terminate()

void jami::PortAudioLayer::PortAudioLayerImpl::terminate ( ) const

Definition at line 532 of file portaudiolayer.cpp.

References jami::emitSignal(), JAMI_DBG, and JAMI_ERR.

Here is the call graph for this function:

Member Data Documentation

◆ apiInitialised_

bool jami::PortAudioLayer::PortAudioLayerImpl::apiInitialised_ {false}

Definition at line 47 of file portaudiolayer.cpp.

◆ audioDeviceNotificationClient_

AudioDeviceNotificationClientPtr jami::PortAudioLayer::PortAudioLayerImpl::audioDeviceNotificationClient_

Definition at line 69 of file portaudiolayer.cpp.

Referenced by PortAudioLayerImpl().

◆ defaultIndex_

constexpr const int jami::PortAudioLayer::PortAudioLayerImpl::defaultIndex_ {0}
staticconstexpr

Definition at line 59 of file portaudiolayer.cpp.

◆ devicePlayback_

std::string jami::PortAudioLayer::PortAudioLayerImpl::devicePlayback_ {}

Definition at line 56 of file portaudiolayer.cpp.

◆ deviceRecord_

std::string jami::PortAudioLayer::PortAudioLayerImpl::deviceRecord_ {}

Definition at line 55 of file portaudiolayer.cpp.

◆ deviceRingtone_

std::string jami::PortAudioLayer::PortAudioLayerImpl::deviceRingtone_ {}

Definition at line 57 of file portaudiolayer.cpp.

◆ inputInitialized_

bool jami::PortAudioLayer::PortAudioLayerImpl::inputInitialized_ {false}

Definition at line 61 of file portaudiolayer.cpp.

◆ outputInitialized_

bool jami::PortAudioLayer::PortAudioLayerImpl::outputInitialized_ {false}

Definition at line 62 of file portaudiolayer.cpp.

◆ restartRequestPending_

std::atomic<bool> jami::PortAudioLayer::PortAudioLayerImpl::restartRequestPending_ = false

Definition at line 72 of file portaudiolayer.cpp.

Referenced by PortAudioLayerImpl().

◆ streams_

std::array<PaStream*, static_cast<int>(Direction::End)> jami::PortAudioLayer::PortAudioLayerImpl::streams_

Definition at line 64 of file portaudiolayer.cpp.

◆ streamsMutex_

std::mutex jami::PortAudioLayer::PortAudioLayerImpl::streamsMutex_
mutable

Definition at line 65 of file portaudiolayer.cpp.


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