JUCE  v6.1.6 (6.0.8-1114)
JUCE API
Looking for a senior C++ dev?
I'm looking for work. Hire me!
juce::AudioProcessLoadMeasurer Class Reference

Maintains an ongoing measurement of the proportion of time which is being spent inside an audio callback. More...

#include <juce_AudioProcessLoadMeasurer.h>

Collaboration diagram for juce::AudioProcessLoadMeasurer:

Classes

struct  ScopedTimer
 This class measures the time between its construction and destruction and adds it to an AudioProcessLoadMeasurer. More...
 

Public Member Functions

 AudioProcessLoadMeasurer ()
 
 ~AudioProcessLoadMeasurer ()
 Destructor. More...
 
double getLoadAsPercentage () const
 Returns the current load as a percentage 0 to 100.0. More...
 
double getLoadAsProportion () const
 Returns the current load as a proportion 0 to 1.0. More...
 
int getXRunCount () const
 Returns the number of over- (or under-) runs recorded since the state was reset. More...
 
void registerBlockRenderTime (double millisecondsTaken)
 Can be called manually to add the time of a callback to the stats. More...
 
void registerRenderTime (double millisecondsTaken, int numSamples)
 Can be called manually to add the time of a callback to the stats. More...
 
void reset ()
 Resets the state. More...
 
void reset (double sampleRate, int blockSize)
 Resets the counter, in preparation for use with the given sample rate and block size. More...
 

Private Member Functions

void registerRenderTimeLocked (double, int)
 

Private Attributes

std::atomic< double > cpuUsageProportion { 0 }
 
double msPerSample = 0
 
SpinLock mutex
 
int samplesPerBlock = 0
 
std::atomic< intxruns { 0 }
 

Detailed Description

Maintains an ongoing measurement of the proportion of time which is being spent inside an audio callback.

@tags{Audio}

Constructor & Destructor Documentation

◆ AudioProcessLoadMeasurer()

juce::AudioProcessLoadMeasurer::AudioProcessLoadMeasurer ( )

◆ ~AudioProcessLoadMeasurer()

juce::AudioProcessLoadMeasurer::~AudioProcessLoadMeasurer ( )

Destructor.

Member Function Documentation

◆ getLoadAsPercentage()

double juce::AudioProcessLoadMeasurer::getLoadAsPercentage ( ) const

Returns the current load as a percentage 0 to 100.0.

◆ getLoadAsProportion()

double juce::AudioProcessLoadMeasurer::getLoadAsProportion ( ) const

Returns the current load as a proportion 0 to 1.0.

◆ getXRunCount()

int juce::AudioProcessLoadMeasurer::getXRunCount ( ) const

Returns the number of over- (or under-) runs recorded since the state was reset.

◆ registerBlockRenderTime()

void juce::AudioProcessLoadMeasurer::registerBlockRenderTime ( double  millisecondsTaken)

Can be called manually to add the time of a callback to the stats.

Normally you probably would never call this - it's simpler and more robust to use a ScopedTimer to measure the time using an RAII pattern.

◆ registerRenderTime()

void juce::AudioProcessLoadMeasurer::registerRenderTime ( double  millisecondsTaken,
int  numSamples 
)

Can be called manually to add the time of a callback to the stats.

Normally you probably would never call this - it's simpler and more robust to use a ScopedTimer to measure the time using an RAII pattern.

◆ registerRenderTimeLocked()

void juce::AudioProcessLoadMeasurer::registerRenderTimeLocked ( double  ,
int   
)
private

◆ reset() [1/2]

void juce::AudioProcessLoadMeasurer::reset ( )

Resets the state.

◆ reset() [2/2]

void juce::AudioProcessLoadMeasurer::reset ( double  sampleRate,
int  blockSize 
)

Resets the counter, in preparation for use with the given sample rate and block size.

Member Data Documentation

◆ cpuUsageProportion

std::atomic<double> juce::AudioProcessLoadMeasurer::cpuUsageProportion { 0 }
private

◆ msPerSample

double juce::AudioProcessLoadMeasurer::msPerSample = 0
private

◆ mutex

SpinLock juce::AudioProcessLoadMeasurer::mutex
private

◆ samplesPerBlock

int juce::AudioProcessLoadMeasurer::samplesPerBlock = 0
private

◆ xruns

std::atomic<int> juce::AudioProcessLoadMeasurer::xruns { 0 }
private

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