1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

AudioProcessor: Allow querying of the host timestamp in processBlock

This commit is contained in:
reuk 2022-03-16 15:01:44 +00:00
parent 5d096b46d7
commit cfa289d943
No known key found for this signature in database
GPG key ID: 9ADCD339CFC98A11
31 changed files with 496 additions and 185 deletions

View file

@ -226,11 +226,12 @@ void AudioProcessorPlayer::setMidiOutput (MidiOutput* midiOutputToUse)
}
//==============================================================================
void AudioProcessorPlayer::audioDeviceIOCallback (const float** const inputChannelData,
const int numInputChannels,
float** const outputChannelData,
const int numOutputChannels,
const int numSamples)
void AudioProcessorPlayer::audioDeviceIOCallbackWithContext (const float** const inputChannelData,
const int numInputChannels,
float** const outputChannelData,
const int numOutputChannels,
const int numSamples,
const AudioIODeviceCallbackContext& context)
{
const ScopedLock sl (lock);
@ -259,6 +260,16 @@ void AudioProcessorPlayer::audioDeviceIOCallback (const float** const inputChann
const ScopedLock sl2 (processor->getCallbackLock());
processor->setHostTimeNanos (context.hostTimeNs);
struct AtEndOfScope
{
~AtEndOfScope() { proc.setHostTimeNanos (nullptr); }
AudioProcessor& proc;
};
const AtEndOfScope scope { *processor };
if (! processor->isSuspended())
{
if (processor->isUsingDoublePrecision())

View file

@ -85,7 +85,7 @@ public:
//==============================================================================
/** @internal */
void audioDeviceIOCallback (const float**, int, float**, int, int) override;
void audioDeviceIOCallbackWithContext (const float**, int, float**, int, int, const AudioIODeviceCallbackContext&) override;
/** @internal */
void audioDeviceAboutToStart (AudioIODevice*) override;
/** @internal */