mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Plugin host sample position.
This commit is contained in:
parent
8f514b7198
commit
5b2a49ed5a
2 changed files with 14 additions and 20 deletions
|
|
@ -938,7 +938,7 @@ private:
|
|||
}
|
||||
|
||||
if (outCurrentSampleInTimeLine != nullptr)
|
||||
*outCurrentSampleInTimeLine = roundToInt (result.timeInSeconds * getSampleRate());
|
||||
*outCurrentSampleInTimeLine = (Float64) result.timeInSamples;
|
||||
|
||||
if (outIsCycling != nullptr) *outIsCycling = false;
|
||||
if (outCycleStartBeat != nullptr) *outCycleStartBeat = 0;
|
||||
|
|
|
|||
|
|
@ -923,12 +923,8 @@ void VSTPluginInstance::initialise()
|
|||
else
|
||||
dispatch (effSetProgram, 0, 0, 0, 0);
|
||||
|
||||
int i;
|
||||
for (i = effect->numInputs; --i >= 0;)
|
||||
dispatch (effConnectInput, i, 1, 0, 0);
|
||||
|
||||
for (i = effect->numOutputs; --i >= 0;)
|
||||
dispatch (effConnectOutput, i, 1, 0, 0);
|
||||
for (int i = effect->numInputs; --i >= 0;) dispatch (effConnectInput, i, 1, 0, 0);
|
||||
for (int i = effect->numOutputs; --i >= 0;) dispatch (effConnectOutput, i, 1, 0, 0);
|
||||
|
||||
updateStoredProgramNames();
|
||||
|
||||
|
|
@ -939,18 +935,16 @@ void VSTPluginInstance::initialise()
|
|||
|
||||
|
||||
//==============================================================================
|
||||
void VSTPluginInstance::prepareToPlay (double sampleRate_,
|
||||
int samplesPerBlockExpected)
|
||||
void VSTPluginInstance::prepareToPlay (double rate, int samplesPerBlockExpected)
|
||||
{
|
||||
setPlayConfigDetails (effect->numInputs, effect->numOutputs,
|
||||
sampleRate_, samplesPerBlockExpected);
|
||||
setPlayConfigDetails (effect->numInputs, effect->numOutputs, rate, samplesPerBlockExpected);
|
||||
|
||||
setLatencySamples (effect->initialDelay);
|
||||
|
||||
vstHostTime.tempo = 120.0;
|
||||
vstHostTime.timeSigNumerator = 4;
|
||||
vstHostTime.timeSigDenominator = 4;
|
||||
vstHostTime.sampleRate = sampleRate_;
|
||||
vstHostTime.sampleRate = rate;
|
||||
vstHostTime.samplePos = 0;
|
||||
vstHostTime.flags = kVstNanosValid; /*| kVstTransportPlaying | kVstTempoValid | kVstTimeSigValid*/;
|
||||
|
||||
|
|
@ -968,7 +962,7 @@ void VSTPluginInstance::prepareToPlay (double sampleRate_,
|
|||
|
||||
incomingMidi.clear();
|
||||
|
||||
dispatch (effSetSampleRate, 0, 0, 0, (float) sampleRate_);
|
||||
dispatch (effSetSampleRate, 0, 0, 0, (float) rate);
|
||||
dispatch (effSetBlockSize, 0, jmax (16, samplesPerBlockExpected), 0, 0);
|
||||
|
||||
tempBuffer.setSize (jmax (1, effect->numOutputs), samplesPerBlockExpected);
|
||||
|
|
@ -1002,25 +996,25 @@ void VSTPluginInstance::releaseResources()
|
|||
midiEventsToSend.freeEvents();
|
||||
}
|
||||
|
||||
void VSTPluginInstance::processBlock (AudioSampleBuffer& buffer,
|
||||
MidiBuffer& midiMessages)
|
||||
void VSTPluginInstance::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
|
||||
{
|
||||
const int numSamples = buffer.getNumSamples();
|
||||
|
||||
if (initialised)
|
||||
{
|
||||
AudioPlayHead* playHead = getPlayHead();
|
||||
AudioPlayHead* const playHead = getPlayHead();
|
||||
|
||||
if (playHead != nullptr)
|
||||
{
|
||||
AudioPlayHead::CurrentPositionInfo position;
|
||||
playHead->getCurrentPosition (position);
|
||||
|
||||
vstHostTime.tempo = position.bpm;
|
||||
vstHostTime.timeSigNumerator = position.timeSigNumerator;
|
||||
vstHostTime.samplePos = position.timeInSamples;
|
||||
vstHostTime.tempo = position.bpm;
|
||||
vstHostTime.timeSigNumerator = position.timeSigNumerator;
|
||||
vstHostTime.timeSigDenominator = position.timeSigDenominator;
|
||||
vstHostTime.ppqPos = position.ppqPosition;
|
||||
vstHostTime.barStartPos = position.ppqPositionOfLastBarStart;
|
||||
vstHostTime.ppqPos = position.ppqPosition;
|
||||
vstHostTime.barStartPos = position.ppqPositionOfLastBarStart;
|
||||
vstHostTime.flags |= kVstTempoValid | kVstTimeSigValid | kVstPpqPosValid | kVstBarsValid;
|
||||
|
||||
if (position.isPlaying)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue