Browse Source

tags/2021-05-28
jules 17 years ago
parent
commit
83384da510
2 changed files with 7 additions and 6 deletions
  1. +6
    -5
      src/juce_appframework/audio/midi/juce_MidiMessageCollector.cpp
  2. +1
    -1
      src/juce_appframework/audio/midi/juce_MidiMessageCollector.h

+ 6
- 5
src/juce_appframework/audio/midi/juce_MidiMessageCollector.cpp View File

@@ -57,7 +57,7 @@ void MidiMessageCollector::reset (const double sampleRate_)
const ScopedLock sl (midiCallbackLock);
sampleRate = sampleRate_;
incomingMessages.clear();
lastCallbackTime = Time::getMillisecondCounter();
lastCallbackTime = Time::getMillisecondCounterHiRes();
}
void MidiMessageCollector::addMessageToQueue (const MidiMessage& message)
@@ -88,16 +88,15 @@ void MidiMessageCollector::removeNextBlockOfMessages (MidiBuffer& destBuffer,
// you need to call reset() to set the correct sample rate before using this object
jassert (sampleRate != 44100.0001);
const uint32 timeNow = Time::getMillisecondCounter();
const int msElapsed = timeNow - lastCallbackTime;
const double timeNow = Time::getMillisecondCounterHiRes();
const double msElapsed = timeNow - lastCallbackTime;
const ScopedLock sl (midiCallbackLock);
lastCallbackTime = timeNow;
if (! incomingMessages.isEmpty())
{
int numSourceSamples = roundDoubleToInt (msElapsed * 0.001 * sampleRate);
const int maxBlockLengthToUse = numSamples << 2;
int numSourceSamples = jmax (1, roundDoubleToInt (msElapsed * 0.001 * sampleRate));
int startSample = 0;
int scale = 1 << 16;
@@ -111,6 +110,8 @@ void MidiMessageCollector::removeNextBlockOfMessages (MidiBuffer& destBuffer,
{
// if our list of events is longer than the buffer we're being
// asked for, scale them down to squeeze them all in..
const int maxBlockLengthToUse = numSamples << 3;
if (numSourceSamples > maxBlockLengthToUse)
{
startSample = numSourceSamples - maxBlockLengthToUse;


+ 1
- 1
src/juce_appframework/audio/midi/juce_MidiMessageCollector.h View File

@@ -102,7 +102,7 @@ public:
juce_UseDebuggingNewOperator
private:
uint32 lastCallbackTime;
double lastCallbackTime;
CriticalSection midiCallbackLock;
MidiBuffer incomingMessages;
double sampleRate;


Loading…
Cancel
Save