Ring Daemon 16.0.0
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 int16_t *inputBuffer, int16_t *outputBuffer, unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags)
 
int paIOCallback (PortAudioLayer &parent, const int16_t *inputBuffer, int16_t *outputBuffer, unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags)
 
int paOutputCallback (PortAudioLayer &parent, const int16_t *inputBuffer, int16_t *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 318 of file portaudiolayer.cpp.

Member Function Documentation

◆ getApiDefaultDeviceName()

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

Definition at line 507 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 481 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 468 of file portaudiolayer.cpp.

◆ getDevicesByType()

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

Definition at line 425 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 451 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 762 of file portaudiolayer.cpp.

References jami::IO.

◆ init()

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

Definition at line 402 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 688 of file portaudiolayer.cpp.

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

Here is the call graph for this function:

◆ initInput()

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

Definition at line 324 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 602 of file portaudiolayer.cpp.

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

Here is the call graph for this function:

◆ initOutput()

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

Definition at line 363 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 645 of file portaudiolayer.cpp.

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

Here is the call graph for this function:

◆ paInputCallback()

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

Definition at line 793 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 int16_t inputBuffer,
int16_t outputBuffer,
unsigned long  framesPerBuffer,
const PaStreamCallbackTimeInfo timeInfo,
PaStreamCallbackFlags  statusFlags 
)

Definition at line 821 of file portaudiolayer.cpp.

References jami::emitSignal().

Here is the call graph for this function:

◆ paOutputCallback()

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

Definition at line 769 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 733 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 524 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: