![]() |
Audacity 3.2.0
|
AudioIoCallback is a class that implements the callback required by PortAudio. The callback needs to be responsive, has no GUI, and copies data into and out of the sound card buffers. It also sends data to the meters. More...
#include <AudioIO.h>
Classes | |
class | AudioIOExtIterator |
struct | AudioIOExtRange |
struct | TransportState |
Public Types | |
using | OldChannelGains = std::array< float, 2 > |
Public Member Functions | |
AudioIoCallback () | |
~AudioIoCallback () | |
int | AudioCallback (constSamplePtr inputBuffer, float *outputBuffer, unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo *timeInfo, const PaStreamCallbackFlags statusFlags, void *userData) |
std::shared_ptr< AudioIOListener > | GetListener () const |
void | SetListener (const std::shared_ptr< AudioIOListener > &listener) |
int | CallbackDoSeek () |
void | CallbackCheckCompletion (int &callbackReturn, unsigned long len) |
unsigned | CountSoloingTracks () |
bool | TrackShouldBeSilent (const SampleTrack &wt) |
bool | TrackHasBeenFadedOut (const SampleTrack &wt, const OldChannelGains &gains) |
bool | AllTracksAlreadySilent () |
void | CheckSoundActivatedRecordingLevel (float *inputSamples, unsigned long framesPerBuffer) |
void | AddToOutputChannel (unsigned int chan, float *outputMeterFloats, float *outputFloats, const float *tempBuf, bool drop, unsigned long len, const SampleTrack *vt, OldChannelGains &gains) |
bool | FillOutputBuffers (float *outputBuffer, unsigned long framesPerBuffer, float *outputMeterFloats) |
void | DrainInputBuffers (constSamplePtr inputBuffer, unsigned long framesPerBuffer, const PaStreamCallbackFlags statusFlags, float *tempFloats) |
void | UpdateTimePosition (unsigned long framesPerBuffer) |
void | DoPlaythrough (constSamplePtr inputBuffer, float *outputBuffer, unsigned long framesPerBuffer, float *outputMeterFloats) |
void | SendVuInputMeterData (const float *inputSamples, unsigned long framesPerBuffer) |
void | SendVuOutputMeterData (const float *outputMeterFloats, unsigned long framesPerBuffer) |
size_t | GetCommonlyReadyPlayback () |
Get the number of audio samples ready in all of the playback buffers. More... | |
size_t | GetCommonlyWrittenForPlayback () |
void | StartAudioThread () |
void | WaitForAudioThreadStarted () |
void | StopAudioThread () |
void | WaitForAudioThreadStopped () |
void | ProcessOnceAndWait (std::chrono::milliseconds sleepTime=std::chrono::milliseconds(50)) |
bool | HasRecordingException () const |
const std::vector< std::pair< double, double > > & | LostCaptureIntervals () |
iteration over extensions, supporting range-for syntax | |
AudioIOExtRange | Extensions () |
![]() | |
AudioIOBase () | |
virtual | ~AudioIOBase () |
AudioIOBase (const AudioIOBase &)=delete | |
AudioIOBase & | operator= (const AudioIOBase &)=delete |
void | SetCaptureMeter (const std::shared_ptr< AudacityProject > &project, const std::weak_ptr< Meter > &meter) |
void | SetPlaybackMeter (const std::shared_ptr< AudacityProject > &project, const std::weak_ptr< Meter > &meter) |
void | HandleDeviceChange () |
update state after changing what audio devices are selected More... | |
wxString | GetDeviceInfo () const |
Get diagnostic information on all the available audio I/O devices. More... | |
std::vector< AudioIODiagnostics > | GetAllDeviceInfo () |
Get diagnostic information for audio devices and also for extensions. More... | |
bool | IsPaused () const |
Find out if playback / recording is currently paused. More... | |
virtual void | StopStream ()=0 |
bool | IsBusy () const |
Returns true if audio i/o is busy starting, stopping, playing, or recording. More... | |
bool | IsStreamActive () const |
Returns true if the audio i/o is running at all, but not during cleanup. More... | |
bool | IsStreamActive (int token) const |
bool | IsAudioTokenActive (int token) const |
Returns true if the stream is active, or even if audio I/O is busy cleaning up its data or writing to disk. More... | |
bool | IsMonitoring () const |
Returns true if we're monitoring input (but not recording or playing actual audio) More... | |
void | SetMixer (int inputSource) |
Static Public Attributes | |
static int | mNextStreamToken = 0 |
![]() | |
static const int | StandardRates [] |
Array of common audio sample rates. More... | |
static const int | NumStandardRates = WXSIZEOF(AudioIOBase::StandardRates) |
How many standard sample rates there are. More... | |
Protected Member Functions | |
float | GetMixerOutputVol () |
void | SetMixerOutputVol (float value) |
void | SetRecordingException () |
void | ClearRecordingException () |
Protected Attributes | |
std::weak_ptr< AudioIOListener > | mListener |
bool | mUsingAlsa { false } |
wxMutex | mSuspendAudioThread |
wxAtomicInt | mRecordingException {} |
std::vector< std::pair< double, double > > | mLostCaptureIntervals |
bool | mDetectDropouts { true } |
RecordingSchedule | mRecordingSchedule {} |
PlaybackSchedule | mPlaybackSchedule |
std::unique_ptr< TransportState > | mpTransportState |
Holds some state for duration of playback or recording. More... | |
![]() | |
std::weak_ptr< AudacityProject > | mOwningProject |
std::atomic< bool > | mPaused { false } |
True if audio playback is paused. More... | |
int | mStreamToken { 0 } |
double | mRate |
Audio playback rate in samples per second. More... | |
PaStream * | mPortStreamV19 |
std::weak_ptr< Meter > | mInputMeter {} |
std::weak_ptr< Meter > | mOutputMeter {} |
bool | mInputMixerWorks |
Can we control the hardware input level? More... | |
std::vector< std::unique_ptr< AudioIOExtBase > > | mAudioIOExt |
Static Protected Attributes | |
static double | mCachedBestRateOut |
static bool | mCachedBestRatePlaying |
static bool | mCachedBestRateCapturing |
![]() | |
static std::unique_ptr< AudioIOBase > | ugAudioIO |
static int | mCachedPlaybackIndex = -1 |
static std::vector< long > | mCachedPlaybackRates |
static int | mCachedCaptureIndex = -1 |
static std::vector< long > | mCachedCaptureRates |
static std::vector< long > | mCachedSampleRates |
static double | mCachedBestRateIn = 0.0 |
static const int | RatesToTry [] |
Array of audio sample rates to try to use. More... | |
static const int | NumRatesToTry = WXSIZEOF(AudioIOBase::RatesToTry) |
How many sample rates to try. More... | |
Private Attributes | |
std::vector< std::unique_ptr< AudioIOExtBase > > | mAudioIOExt |
Additional Inherited Members | |
![]() | |
static AudioIOBase * | Get () |
static std::vector< long > | GetSupportedPlaybackRates (int DevIndex=-1, double rate=0.0) |
Get a list of sample rates the output (playback) device supports. More... | |
static std::vector< long > | GetSupportedCaptureRates (int devIndex=-1, double rate=0.0) |
Get a list of sample rates the input (recording) device supports. More... | |
static std::vector< long > | GetSupportedSampleRates (int playDevice=-1, int recDevice=-1, double rate=0.0) |
Get a list of sample rates the current input/output device combination supports. More... | |
static int | GetOptimalSupportedSampleRate () |
Get a supported sample rate which can be used a an optimal default. More... | |
![]() | |
static wxString | DeviceName (const PaDeviceInfo *info) |
static wxString | HostName (const PaDeviceInfo *info) |
static int | getRecordDevIndex (const wxString &devName={}) |
get the index of the supplied (named) recording device, or the device selected in the preferences if none given. More... | |
static int | getPlayDevIndex (const wxString &devName={}) |
get the index of the device selected in the preferences. More... | |
AudioIoCallback is a class that implements the callback required by PortAudio. The callback needs to be responsive, has no GUI, and copies data into and out of the sound card buffers. It also sends data to the meters.
using AudioIoCallback::OldChannelGains = std::array<float, 2> |
AudioIoCallback::AudioIoCallback | ( | ) |
Definition at line 3063 of file AudioIO.cpp.
References cloud::factory, AudioIOExt::GetFactories(), mAudioIOExt, and mPlaybackSchedule.
AudioIoCallback::~AudioIoCallback | ( | ) |
Definition at line 3072 of file AudioIO.cpp.
void AudioIoCallback::AddToOutputChannel | ( | unsigned int | chan, |
float * | outputMeterFloats, | ||
float * | outputFloats, | ||
const float * | tempBuf, | ||
bool | drop, | ||
unsigned long | len, | ||
const SampleTrack * | vt, | ||
OldChannelGains & | gains | ||
) |
Definition at line 2502 of file AudioIO.cpp.
References ExpGain(), SampleTrack::GetChannelGain(), GetMixerOutputVol(), AudioIOBase::IsPaused(), mbMicroFades, mForceFadeOut, and mNumPlaybackChannels.
Referenced by FillOutputBuffers().
bool AudioIoCallback::AllTracksAlreadySilent | ( | ) |
Definition at line 3052 of file AudioIO.cpp.
References mOldChannelGains, mPlaybackTracks, TrackHasBeenFadedOut(), and TrackShouldBeSilent().
Referenced by AudioCallback().
int AudioIoCallback::AudioCallback | ( | constSamplePtr | inputBuffer, |
float * | outputBuffer, | ||
unsigned long | framesPerBuffer, | ||
const PaStreamCallbackTimeInfo * | timeInfo, | ||
const PaStreamCallbackFlags | statusFlags, | ||
void * | userData | ||
) |
Definition at line 3077 of file AudioIO.cpp.
References AllTracksAlreadySilent(), CheckSoundActivatedRecordingLevel(), CountSoloingTracks(), DoPlaythrough(), DrainInputBuffers(), Extensions(), FillOutputBuffers(), floatSample, GetMixerOutputVol(), AudioIOBase::IsPaused(), MAX, mbHasSoloTracks, mbMicroFades, mCallbackReturn, mCaptureFormat, mNumCaptureChannels, mNumPauseFrames, mNumPlaybackChannels, AudioIOBase::mRate, AudioIOBase::mStreamToken, SamplesToFloats(), SendVuInputMeterData(), SendVuOutputMeterData(), and UpdateTimePosition().
void AudioIoCallback::CallbackCheckCompletion | ( | int & | callbackReturn, |
unsigned long | len | ||
) |
Definition at line 3255 of file AudioIO.cpp.
References PlaybackPolicy::Done(), Extensions(), PlaybackSchedule::GetPolicy(), AudioIOBase::IsPaused(), and mPlaybackSchedule.
Referenced by FillOutputBuffers().
int AudioIoCallback::CallbackDoSeek | ( | ) |
Definition at line 3190 of file AudioIO.cpp.
References PlaybackSchedule::GetPolicy(), mAudioThreadTrackBufferExchangeLoopActive, mAudioThreadTrackBufferExchangeLoopRunning, mPlaybackBuffers, mPlaybackMixers, mPlaybackSchedule, mPlaybackTracks, mSeek, AudioIOBase::mStreamToken, mSuspendAudioThread, PlaybackSchedule::mTimeQueue, PlaybackPolicy::OffsetTrackTime(), PlaybackSchedule::TimeQueue::Prime(), ProcessOnceAndWait(), and PlaybackSchedule::SetTrackTime().
Referenced by FillOutputBuffers().
void AudioIoCallback::CheckSoundActivatedRecordingLevel | ( | float * | inputSamples, |
unsigned long | framesPerBuffer | ||
) |
Definition at line 2474 of file AudioIO.cpp.
References GetListener(), AudioIOBase::IsPaused(), mNumCaptureChannels, mPauseRec, and mSilenceLevel.
Referenced by AudioCallback().
|
inlineprotected |
Definition at line 390 of file AudioIO.h.
Referenced by AudioIO::StartStream(), and AudioIO::StopStream().
unsigned AudioIoCallback::CountSoloingTracks | ( | ) |
Definition at line 3007 of file AudioIO.cpp.
References Extensions(), and mPlaybackTracks.
Referenced by AudioCallback().
void AudioIoCallback::DoPlaythrough | ( | constSamplePtr | inputBuffer, |
float * | outputBuffer, | ||
unsigned long | framesPerBuffer, | ||
float * | outputMeterFloats | ||
) |
Definition at line 2927 of file AudioIO.cpp.
References DoSoftwarePlaythrough(), mCaptureFormat, mNumCaptureChannels, mNumPlaybackChannels, and mSoftwarePlaythrough.
Referenced by AudioCallback().
void AudioIoCallback::DrainInputBuffers | ( | constSamplePtr | inputBuffer, |
unsigned long | framesPerBuffer, | ||
const PaStreamCallbackFlags | statusFlags, | ||
float * | tempFloats | ||
) |
Definition at line 2768 of file AudioIO.cpp.
References PlaybackPolicy::Done(), floatSample, PlaybackSchedule::GetPolicy(), PlaybackSchedule::GetTrackTime(), int16Sample, int24Sample, mCallbackReturn, mCaptureBuffers, mCaptureFormat, mDetectDropouts, mDetectUpstreamDropouts, min(), RecordingSchedule::mLatencyCorrection, mLostCaptureIntervals, mLostSamples, mNumCaptureChannels, mNumPlaybackChannels, mPlaybackSchedule, mPlaybackTracks, AudioIOBase::mRate, mRecordingSchedule, mSimulateRecordingErrors, AudioIOBase::mStreamToken, and wxT().
Referenced by AudioCallback().
|
inline |
Definition at line 177 of file AudioIO.h.
Referenced by AudioCallback(), CallbackCheckCompletion(), CountSoloingTracks(), AudioIO::StartStream(), and AudioIO::StopStream().
bool AudioIoCallback::FillOutputBuffers | ( | float * | outputBuffer, |
unsigned long | framesPerBuffer, | ||
float * | outputMeterFloats | ||
) |
Definition at line 2555 of file AudioIO.cpp.
References AddToOutputChannel(), PlaybackPolicy::AllowSeek(), CallbackCheckCompletion(), CallbackDoSeek(), ClampBuffer(), floatSample, GetCommonlyReadyPlayback(), PlaybackSchedule::GetPolicy(), Track::LeftChannel, mbMicroFades, mCallbackReturn, mLastPlaybackTimeMillis, mMaxFramesOutput, mNumCaptureChannels, mNumPlaybackChannels, mOldChannelGains, Track::MonoChannel, mPlaybackBuffers, mPlaybackSchedule, mPlaybackTracks, mSeek, AudioIOBase::mStreamToken, Track::RightChannel, TrackHasBeenFadedOut(), and TrackShouldBeSilent().
Referenced by AudioCallback().
size_t AudioIoCallback::GetCommonlyReadyPlayback | ( | ) |
Get the number of audio samples ready in all of the playback buffers.
Returns the smallest of the buffer ready space values in the event that they are different.
Definition at line 1814 of file AudioIO.cpp.
References min(), mPlaybackBuffers, and mPlaybackTracks.
Referenced by FillOutputBuffers().
size_t AudioIoCallback::GetCommonlyWrittenForPlayback | ( | ) |
Definition at line 1823 of file AudioIO.cpp.
References min(), mPlaybackBuffers, and mPlaybackTracks.
Referenced by AudioIO::FillPlayBuffers().
|
inline |
Definition at line 185 of file AudioIO.h.
Referenced by CheckSoundActivatedRecordingLevel(), AudioIO::DrainRecordBuffers(), AudioIO::StartMonitoring(), AudioIO::StartStream(), and AudioIO::StopStream().
|
inlineprotected |
Definition at line 356 of file AudioIO.h.
Referenced by AddToOutputChannel(), AudioCallback(), and AudioIO::GetMixer().
|
inline |
Definition at line 381 of file AudioIO.h.
Referenced by ProjectAudioManager::OnAudioIOStopRecording().
|
inline |
void AudioIoCallback::ProcessOnceAndWait | ( | std::chrono::milliseconds | sleepTime = std::chrono::milliseconds(50) | ) |
Definition at line 3309 of file AudioIO.cpp.
References mAudioThreadShouldCallTrackBufferExchangeOnce.
Referenced by CallbackDoSeek(), and AudioIO::StopStream().
void AudioIoCallback::SendVuInputMeterData | ( | const float * | inputSamples, |
unsigned long | framesPerBuffer | ||
) |
Definition at line 2963 of file AudioIO.cpp.
References AudioIOBase::mInputMeter, and mNumCaptureChannels.
Referenced by AudioCallback().
void AudioIoCallback::SendVuOutputMeterData | ( | const float * | outputMeterFloats, |
unsigned long | framesPerBuffer | ||
) |
Definition at line 2979 of file AudioIO.cpp.
References mNumPlaybackChannels, and AudioIOBase::mOutputMeter.
Referenced by AudioCallback().
void AudioIoCallback::SetListener | ( | const std::shared_ptr< AudioIOListener > & | listener | ) |
Definition at line 2255 of file AudioIO.cpp.
References AudioIOBase::IsBusy(), and mListener.
|
inlineprotected |
Definition at line 358 of file AudioIO.h.
Referenced by AudioIO::AudioIO(), and AudioIO::SetMixer().
|
inlineprotected |
Definition at line 388 of file AudioIO.h.
Referenced by AudioIO::DrainRecordBuffers().
void AudioIoCallback::StartAudioThread | ( | ) |
Definition at line 3279 of file AudioIO.cpp.
References mAudioThreadTrackBufferExchangeLoopRunning.
Referenced by AudioIO::StartStream().
void AudioIoCallback::StopAudioThread | ( | ) |
Definition at line 3294 of file AudioIO.cpp.
References mAudioThreadTrackBufferExchangeLoopRunning.
Referenced by AudioIO::StartStream(), and AudioIO::StopStream().
bool AudioIoCallback::TrackHasBeenFadedOut | ( | const SampleTrack & | wt, |
const OldChannelGains & | gains | ||
) |
Definition at line 3039 of file AudioIO.cpp.
References SampleTrack::GetChannelIgnoringPan(), Track::LeftChannel, Track::MonoChannel, and Track::RightChannel.
Referenced by AllTracksAlreadySilent(), and FillOutputBuffers().
bool AudioIoCallback::TrackShouldBeSilent | ( | const SampleTrack & | wt | ) |
Definition at line 3028 of file AudioIO.cpp.
References PlayableTrack::GetMute(), PlayableTrack::GetSolo(), AudioIOBase::IsPaused(), and mbHasSoloTracks.
Referenced by AllTracksAlreadySilent(), and FillOutputBuffers().
void AudioIoCallback::UpdateTimePosition | ( | unsigned long | framesPerBuffer | ) |
Definition at line 2753 of file AudioIO.cpp.
References PlaybackSchedule::TimeQueue::Consumer(), mMaxFramesOutput, mPlaybackSchedule, AudioIOBase::mRate, AudioIOBase::mStreamToken, PlaybackSchedule::mTimeQueue, and PlaybackSchedule::SetTrackTime().
Referenced by AudioCallback().
void AudioIoCallback::WaitForAudioThreadStarted | ( | ) |
Definition at line 3284 of file AudioIO.cpp.
References eNone, eStart, and mAudioThreadAcknowledge.
Referenced by AudioIO::StartStream().
void AudioIoCallback::WaitForAudioThreadStopped | ( | ) |
Definition at line 3299 of file AudioIO.cpp.
References eNone, eStop, and mAudioThreadAcknowledge.
Referenced by AudioIO::StopStream().
|
private |
Privatize the inherited array but give access by Extensions(). This class guarantees that this array is populated only with non-null pointers to the subtype AudioIOExt
Definition at line 322 of file AudioIOBase.h.
Referenced by AudioIoCallback().
std::thread AudioIoCallback::mAudioThread |
Definition at line 279 of file AudioIO.h.
Referenced by AudioIO::StartThread(), and AudioIO::~AudioIO().
std::atomic<Acknowledge> AudioIoCallback::mAudioThreadAcknowledge |
Definition at line 332 of file AudioIO.h.
Referenced by AudioIO::AudioIO(), AudioIO::AudioThread(), WaitForAudioThreadStarted(), and WaitForAudioThreadStopped().
std::atomic<bool> AudioIoCallback::mAudioThreadShouldCallTrackBufferExchangeOnce |
Definition at line 328 of file AudioIO.h.
Referenced by AudioIO::AudioIO(), AudioIO::AudioThread(), AudioIO::DrainRecordBuffers(), ProcessOnceAndWait(), and AudioIO::StartStream().
std::atomic<bool> AudioIoCallback::mAudioThreadTrackBufferExchangeLoopActive |
Definition at line 330 of file AudioIO.h.
Referenced by AudioIO::AudioIO(), AudioIO::AudioThread(), and CallbackDoSeek().
std::atomic<bool> AudioIoCallback::mAudioThreadTrackBufferExchangeLoopRunning |
Definition at line 329 of file AudioIO.h.
Referenced by AudioIO::AudioIO(), AudioIO::AudioThread(), CallbackDoSeek(), StartAudioThread(), StopAudioThread(), and AudioIO::StopStream().
int AudioIoCallback::mbHasSoloTracks |
Definition at line 196 of file AudioIO.h.
Referenced by AudioCallback(), and TrackShouldBeSilent().
bool AudioIoCallback::mbMicroFades |
Read by a worker thread but unchanging during playback
Definition at line 302 of file AudioIO.h.
Referenced by AddToOutputChannel(), AudioCallback(), FillOutputBuffers(), AudioIO::StartStream(), and AudioIO::StopStream().
|
staticprotected |
Definition at line 371 of file AudioIO.h.
Referenced by AudioIO::GetBestRate().
|
staticprotected |
Definition at line 369 of file AudioIO.h.
Referenced by AudioIO::GetBestRate().
|
staticprotected |
Definition at line 370 of file AudioIO.h.
Referenced by AudioIO::GetBestRate().
int AudioIoCallback::mCallbackReturn |
Definition at line 197 of file AudioIO.h.
Referenced by AudioCallback(), DrainInputBuffers(), and FillOutputBuffers().
ArrayOf<std::unique_ptr<RingBuffer> > AudioIoCallback::mCaptureBuffers |
Definition at line 283 of file AudioIO.h.
Referenced by AudioIO::AllocateBuffers(), DrainInputBuffers(), AudioIO::DrainRecordBuffers(), AudioIO::GetCommonlyAvailCapture(), AudioIO::StartStream(), AudioIO::StartStreamCleanup(), and AudioIO::StopStream().
sampleFormat AudioIoCallback::mCaptureFormat |
Definition at line 326 of file AudioIO.h.
Referenced by AudioCallback(), DoPlaythrough(), DrainInputBuffers(), and AudioIO::StartPortAudioStream().
double AudioIoCallback::mCaptureRingBufferSecs |
Definition at line 306 of file AudioIO.h.
Referenced by AudioIO::AllocateBuffers().
WritableSampleTrackArray AudioIoCallback::mCaptureTracks |
Definition at line 284 of file AudioIO.h.
Referenced by AudioIO::AllocateBuffers(), AudioIO::DrainRecordBuffers(), AudioIO::GetCommonlyAvailCapture(), AudioIO::StartStream(), and AudioIO::StopStream().
|
protected |
Read by a worker thread but unchanging during playback
Definition at line 395 of file AudioIO.h.
Referenced by DrainInputBuffers(), and AudioIO::StartStream().
std::atomic<bool> AudioIoCallback::mDetectUpstreamDropouts { true } |
Definition at line 407 of file AudioIO.h.
Referenced by DrainInputBuffers(), and anonymous_namespace{PluginMenus.cpp}::ToolsMenu().
double AudioIoCallback::mFactor |
Definition at line 299 of file AudioIO.h.
Referenced by AudioIO::AllocateBuffers(), and AudioIO::DrainRecordBuffers().
std::atomic<bool> AudioIoCallback::mFinishAudioThread { false } |
Definition at line 280 of file AudioIO.h.
Referenced by AudioIO::StartThread(), and AudioIO::~AudioIO().
std::atomic<bool> AudioIoCallback::mForceFadeOut { false } |
Definition at line 346 of file AudioIO.h.
Referenced by AddToOutputChannel(), AudioIO::StartStream(), and AudioIO::StopStream().
size_t AudioIoCallback::mHardwarePlaybackLatencyFrames {} |
Hardware output latency in frames.
Definition at line 311 of file AudioIO.h.
Referenced by AudioIO::AllocateBuffers(), and AudioIO::StartPortAudioStream().
PaError AudioIoCallback::mLastPaError |
Definition at line 352 of file AudioIO.h.
Referenced by AudioIO::AudioIO(), AudioIO::LastPaErrorString(), AudioIO::StartMonitoring(), and AudioIO::StartPortAudioStream().
wxLongLong AudioIoCallback::mLastPlaybackTimeMillis |
Definition at line 348 of file AudioIO.h.
Referenced by AudioIO::AudioIO(), and FillOutputBuffers().
double AudioIoCallback::mLastRecordingOffset |
Not (yet) used; should perhaps be atomic when it is.
Definition at line 351 of file AudioIO.h.
Referenced by AudioIO::AudioIO(), and AudioIO::StartStream().
|
protected |
Pointer is read by a worker thread but unchanging during playback. (Whether its overriding methods are race-free is not for AudioIO to ensure.)
Definition at line 364 of file AudioIO.h.
Referenced by SetListener(), and AudioIO::StartStream().
|
protected |
Definition at line 393 of file AudioIO.h.
Referenced by DrainInputBuffers(), AudioIO::StartStream(), and AudioIO::StopStream().
unsigned long long AudioIoCallback::mLostSamples { 0 } |
Definition at line 327 of file AudioIO.h.
Referenced by DrainInputBuffers(), and AudioIO::StartStream().
unsigned long AudioIoCallback::mMaxFramesOutput |
Definition at line 300 of file AudioIO.h.
Referenced by FillOutputBuffers(), and UpdateTimePosition().
double AudioIoCallback::mMinCaptureSecsToCopy |
Definition at line 315 of file AudioIO.h.
Referenced by AudioIO::AllocateBuffers(), and AudioIO::DrainRecordBuffers().
std::atomic<float> AudioIoCallback::mMixerOutputVol { 1.0 } |
|
static |
Definition at line 298 of file AudioIO.h.
Referenced by AudioIO::StartStream().
unsigned int AudioIoCallback::mNumCaptureChannels |
Read by a worker thread but unchanging during playback
Definition at line 323 of file AudioIO.h.
Referenced by AudioIO::AllocateBuffers(), AudioCallback(), AudioIO::AudioIO(), CheckSoundActivatedRecordingLevel(), AudioIO::DelayingActions(), DoPlaythrough(), DrainInputBuffers(), FillOutputBuffers(), SendVuInputMeterData(), AudioIO::StartPortAudioStream(), AudioIO::StartStream(), and AudioIO::StopStream().
long AudioIoCallback::mNumPauseFrames |
How many frames of zeros were output due to pauses?
Definition at line 260 of file AudioIO.h.
Referenced by AudioCallback(), AudioIO::AudioIO(), and AudioIO::StartPortAudioStream().
unsigned int AudioIoCallback::mNumPlaybackChannels |
Read by a worker thread but unchanging during playback
Definition at line 325 of file AudioIO.h.
Referenced by AddToOutputChannel(), AudioIO::AllocateBuffers(), AudioCallback(), DoPlaythrough(), DrainInputBuffers(), FillOutputBuffers(), AudioIO::FillPlayBuffers(), SendVuOutputMeterData(), AudioIO::StartPortAudioStream(), AudioIO::StartStream(), AudioIO::StopStream(), and AudioIO::TransformPlayBuffers().
std::vector<OldChannelGains> AudioIoCallback::mOldChannelGains |
Definition at line 290 of file AudioIO.h.
Referenced by AudioIO::AllocateBuffers(), AllTracksAlreadySilent(), and FillOutputBuffers().
bool AudioIoCallback::mPauseRec |
True if Sound Activated Recording is enabled.
Read by a worker thread but unchanging during playback
Definition at line 320 of file AudioIO.h.
Referenced by CheckSoundActivatedRecordingLevel(), and AudioIO::StartStream().
ArrayOf<std::unique_ptr<RingBuffer> > AudioIoCallback::mPlaybackBuffers |
Read by worker threads but unchanging during playback
Definition at line 286 of file AudioIO.h.
Referenced by AudioIO::AllocateBuffers(), CallbackDoSeek(), FillOutputBuffers(), AudioIO::FillPlayBuffers(), AudioIO::GetCommonlyFreePlayback(), GetCommonlyReadyPlayback(), GetCommonlyWrittenForPlayback(), AudioIO::ProcessPlaybackSlices(), AudioIO::StartStream(), AudioIO::StartStreamCleanup(), AudioIO::StopStream(), and AudioIO::TransformPlayBuffers().
std::vector<std::unique_ptr<Mixer> > AudioIoCallback::mPlaybackMixers |
Definition at line 295 of file AudioIO.h.
Referenced by AudioIO::AllocateBuffers(), CallbackDoSeek(), AudioIO::ProcessPlaybackSlices(), AudioIO::StartStream(), AudioIO::StartStreamCleanup(), and AudioIO::StopStream().
size_t AudioIoCallback::mPlaybackQueueMinimum |
Occupancy of the queue we try to maintain, with bigger batches if needed.
Definition at line 313 of file AudioIO.h.
Referenced by AudioIO::AllocateBuffers(), and AudioIO::FillPlayBuffers().
PlaybackPolicy::Duration AudioIoCallback::mPlaybackRingBufferSecs |
Definition at line 305 of file AudioIO.h.
Referenced by AudioIO::AllocateBuffers().
size_t AudioIoCallback::mPlaybackSamplesToCopy |
Preferred batch size for replenishing the playback RingBuffer.
Definition at line 309 of file AudioIO.h.
Referenced by AudioIO::AllocateBuffers(), and AudioIO::FillPlayBuffers().
|
protected |
Definition at line 411 of file AudioIO.h.
Referenced by AudioIO::AllocateBuffers(), AudioIoCallback(), AudioIO::AudioThread(), CallbackCheckCompletion(), CallbackDoSeek(), DrainInputBuffers(), FillOutputBuffers(), AudioIO::GetStreamTime(), AudioIO::IsCapturing(), AudioIO::ProcessPlaybackSlices(), AudioIO::StartStream(), AudioIO::StartStreamCleanup(), AudioIO::StopStream(), and UpdateTimePosition().
SampleTrackConstArray AudioIoCallback::mPlaybackTracks |
Definition at line 287 of file AudioIO.h.
Referenced by AudioIO::AllocateBuffers(), AllTracksAlreadySilent(), CallbackDoSeek(), CountSoloingTracks(), DrainInputBuffers(), FillOutputBuffers(), AudioIO::FillPlayBuffers(), AudioIO::GetCommonlyFreePlayback(), GetCommonlyReadyPlayback(), GetCommonlyWrittenForPlayback(), AudioIO::ProcessPlaybackSlices(), AudioIO::StartStream(), AudioIO::StopStream(), and AudioIO::TransformPlayBuffers().
|
protected |
Holds some state for duration of playback or recording.
Definition at line 415 of file AudioIO.h.
Referenced by AudioIO::AddState(), AudioIO::FillPlayBuffers(), AudioIO::RemoveState(), AudioIO::ReplaceState(), AudioIO::StartStream(), AudioIO::StartStreamCleanup(), and AudioIO::StopStream().
|
protected |
Definition at line 387 of file AudioIO.h.
Referenced by AudioIO::DrainRecordBuffers().
|
protected |
Definition at line 410 of file AudioIO.h.
Referenced by DrainInputBuffers(), AudioIO::DrainRecordBuffers(), AudioIO::IsCapturing(), AudioIO::StartStream(), and AudioIO::StopStream().
Definition at line 282 of file AudioIO.h.
Referenced by AudioIO::AllocateBuffers(), AudioIO::DrainRecordBuffers(), AudioIO::StartStream(), AudioIO::StartStreamCleanup(), and AudioIO::StopStream().
std::vector<SampleBuffer> AudioIoCallback::mScratchBuffers |
Definition at line 292 of file AudioIO.h.
Referenced by AudioIO::AllocateBuffers(), AudioIO::StartStream(), AudioIO::StartStreamCleanup(), and AudioIO::StopStream().
std::vector<float *> AudioIoCallback::mScratchPointers |
pointing into mScratchBuffers
Definition at line 293 of file AudioIO.h.
Referenced by AudioIO::AllocateBuffers(), AudioIO::StartStream(), AudioIO::StartStreamCleanup(), AudioIO::StopStream(), and AudioIO::TransformPlayBuffers().
double AudioIoCallback::mSeek |
Definition at line 304 of file AudioIO.h.
Referenced by CallbackDoSeek(), FillOutputBuffers(), and AudioIO::StartStream().
float AudioIoCallback::mSilenceLevel |
Definition at line 321 of file AudioIO.h.
Referenced by AudioIO::AudioIO(), CheckSoundActivatedRecordingLevel(), and AudioIO::StartStream().
bool AudioIoCallback::mSimulateRecordingErrors { false } |
Definition at line 403 of file AudioIO.h.
Referenced by DrainInputBuffers(), and anonymous_namespace{PluginMenus.cpp}::ToolsMenu().
bool AudioIoCallback::mSoftwarePlaythrough |
Read by a worker thread but unchanging during playback
Definition at line 317 of file AudioIO.h.
Referenced by DoPlaythrough(), AudioIO::StartMonitoring(), AudioIO::StartPortAudioStream(), and AudioIO::StartStream().
|
protected |
Definition at line 375 of file AudioIO.h.
Referenced by CallbackDoSeek(), and AudioIO::StopStream().
|
protected |
Definition at line 366 of file AudioIO.h.
Referenced by AudioIO::StartMonitoring(), AudioIO::StartPortAudioStream(), and AudioIO::StartStream().