|
Ring Daemon
|
#include <portaudiolayer.h>


Classes | |
| struct | PortAudioLayerImpl |
Public Member Functions | |
| int | getAudioDeviceIndex (const std::string &name, AudioDeviceType type) const override |
| std::string | getAudioDeviceName (int index, AudioDeviceType type) const override |
| std::vector< std::string > | getCaptureDeviceList () const override |
| int | getIndexCapture () const override |
| int | getIndexPlayback () const override |
| int | getIndexRingtone () const override |
| std::vector< std::string > | getPlaybackDeviceList () const override |
| PortAudioLayer (const AudioPreference &pref) | |
| void | startStream (AudioDeviceType stream) override |
| Start the capture stream and prepare the playback stream. | |
| void | stopStream (AudioDeviceType stream=AudioDeviceType::ALL) override |
| Stop the playback and capture streams. | |
| void | updatePreference (AudioPreference &pref, int index, AudioDeviceType type) override |
| ~PortAudioLayer () | |
Public Member Functions inherited from jami::AudioLayer | |
| AudioLayer (const AudioPreference &) | |
| void | flushMain () |
| Flush main buffer. | |
| void | flushUrgent () |
| Flush urgent buffer. | |
| double | getCaptureGain () const |
| Get capture stream gain (microphone) | |
| AudioFormat | getFormat () const |
| Get the audio format of the layer (sample rate & channel number). | |
| double | getPlaybackGain () const |
| Get playback stream gain (speaker) | |
| unsigned int | getSampleRate () const |
| Get the sample rate of the audio layer. | |
| bool | isCaptureMuted () const |
| bool | isPlaybackMuted () const |
| bool | isRingtoneMuted () const |
| bool | isStarted () const |
| Determine whether or not the audio layer is active (i.e. | |
| void | muteCapture (bool muted) |
| Mute capture (microphone) | |
| void | mutePlayback (bool muted) |
| Mute playback. | |
| void | muteRingtone (bool muted) |
| void | notifyIncomingCall () |
| Emit an audio notification (beep) on incoming calls. | |
| void | playIncomingCallNotification (bool play) |
| Start/Stop playing the incoming call notification sound (beep) while playing back audio (typically during an ongoing call). | |
| void | putUrgent (std::shared_ptr< AudioFrame > buffer) |
| Send a chunk of data to the hardware buffer to start the playback Copy data in the urgent buffer. | |
| void | setCaptureGain (double gain) |
| Set capture stream gain (microphone) Range should be [-1.0, 1.0]. | |
| void | setPlaybackGain (double gain) |
| Set playback stream gain (speaker) Range should be [-1.0, 1.0]. | |
| virtual void | startCaptureStream (const std::string &id) |
| Start a capture stream on the given device (eg. | |
| virtual void | stopCaptureStream (const std::string &id) |
| Stop an ongoing capture stream on the given device. | |
| template<class Rep , class Period > | |
| bool | waitForStart (const std::chrono::duration< Rep, Period > &rel_time) const |
| virtual | ~AudioLayer () |
Additional Inherited Members | |
Protected Types inherited from jami::AudioLayer | |
| enum class | Status : uint8_t { Idle , Starting , Started } |
Protected Member Functions inherited from jami::AudioLayer | |
| void | devicesChanged () |
| void | flush () |
| std::shared_ptr< AudioFrame > | getPlayback (AudioFormat format, size_t samples) |
| std::shared_ptr< AudioFrame > | getToPlay (AudioFormat format, size_t writableSamples) |
| std::shared_ptr< AudioFrame > | getToRing (AudioFormat format, size_t writableSamples) |
| void | hardwareFormatAvailable (AudioFormat playback, size_t bufSize=0) |
| Callback to be called by derived classes when the audio output is opened. | |
| void | hardwareInputFormatAvailable (AudioFormat capture) |
| Set the input format on necessary objects. | |
| void | playbackChanged (bool started) |
| void | putRecorded (std::shared_ptr< AudioFrame > &&frame) |
| void | recordChanged (bool started) |
| void | setHasNativeAEC (bool hasEAC) |
| void | setHasNativeNS (bool hasNS) |
Protected Attributes inherited from jami::AudioLayer | |
| AudioFormat | audioFormat_ |
| Sample Rate that should be sent to the sound card. | |
| AudioFormat | audioInputFormat_ |
| Sample Rate for input. | |
| double | captureGain_ |
| Gain applied to mic signal. | |
| bool | hasNativeAEC_ {true} |
| bool | hasNativeNS_ {false} |
| bool | isCaptureMuted_ |
| True if capture is not to be used. | |
| bool | isPlaybackMuted_ |
| True if playback is not to be used. | |
| bool | isRingtoneMuted_ {false} |
| True if ringtone should be muted. | |
| std::shared_ptr< RingBuffer > | mainRingBuffer_ |
| Buffers for audio processing. | |
| std::mutex | mutex_ {} |
| Lock for the entire audio layer. | |
| size_t | nativeFrameSize_ {0} |
| double | playbackGain_ |
| Gain applied to playback signal. | |
| std::unique_ptr< AudioFrameResizer > | playbackQueue_ |
| bool | playbackStarted_ {false} |
| const AudioPreference & | pref_ |
| bool | recordStarted_ {false} |
| std::unique_ptr< Resampler > | resampler_ |
| Manage sampling rate conversion. | |
| std::condition_variable | startedCv_ |
| std::atomic< Status > | status_ {Status::Idle} |
| Whether or not the audio layer's playback stream is started. | |
| RingBuffer | urgentRingBuffer_ |
| Urgent ring buffer used for ringtones. | |
Definition at line 27 of file portaudiolayer.h.
| jami::PortAudioLayer::PortAudioLayer | ( | const AudioPreference & | pref | ) |
Definition at line 98 of file portaudiolayer.cpp.
References jami::AudioLayer::devicesChanged(), jami::emitSignal(), JAMI_DBG, JAMI_ERR, jami::AudioLayer::setHasNativeAEC(), and jami::AudioLayer::setHasNativeNS().

| jami::PortAudioLayer::~PortAudioLayer | ( | ) |
Definition at line 120 of file portaudiolayer.cpp.
References stopStream().

|
overridevirtual |
Implements jami::AudioLayer.
Definition at line 138 of file portaudiolayer.cpp.
References jami::emitSignal().

|
overridevirtual |
Implements jami::AudioLayer.
Definition at line 148 of file portaudiolayer.cpp.
|
overridevirtual |
Implements jami::AudioLayer.
Definition at line 126 of file portaudiolayer.cpp.
References jami::CAPTURE.
|
overridevirtual |
Implements jami::AudioLayer.
Definition at line 154 of file portaudiolayer.cpp.
References jami::CAPTURE.
|
overridevirtual |
Implements jami::AudioLayer.
Definition at line 160 of file portaudiolayer.cpp.
References jami::PLAYBACK.
|
overridevirtual |
Implements jami::AudioLayer.
Definition at line 167 of file portaudiolayer.cpp.
References jami::RINGTONE.
|
overridevirtual |
Implements jami::AudioLayer.
Definition at line 132 of file portaudiolayer.cpp.
References jami::PLAYBACK.
|
overridevirtual |
Start the capture stream and prepare the playback stream.
The playback starts accordingly to its threshold
Implements jami::AudioLayer.
Definition at line 173 of file portaudiolayer.cpp.
References jami::ALL, jami::CAPTURE, jami::emitSignal(), jami::AudioLayer::flushMain(), jami::AudioLayer::flushUrgent(), jami::AudioLayer::Idle, JAMI_WARN, jami::AudioLayer::mutex_, jami::PLAYBACK, jami::RINGTONE, jami::AudioLayer::Started, jami::AudioLayer::startedCv_, and jami::AudioLayer::status_.

|
overridevirtual |
Stop the playback and capture streams.
Drops the pending frames and put the capture and playback handles to PREPARED state
Implements jami::AudioLayer.
Definition at line 217 of file portaudiolayer.cpp.
References jami::ALL, jami::CAPTURE, jami::emitSignal(), jami::AudioLayer::flushMain(), jami::AudioLayer::flushUrgent(), jami::AudioLayer::Idle, jami::Input, jami::IO, JAMI_DBG, jami::AudioLayer::mutex_, jami::Output, jami::PLAYBACK, jami::AudioLayer::playbackChanged(), jami::AudioLayer::recordChanged(), jami::RINGTONE, jami::AudioLayer::Started, jami::AudioLayer::startedCv_, and jami::AudioLayer::status_.
Referenced by ~PortAudioLayer().

|
overridevirtual |
Implements jami::AudioLayer.
Definition at line 280 of file portaudiolayer.cpp.
References jami::CAPTURE, jami::emitSignal(), jami::PLAYBACK, and jami::RINGTONE.
