33 for (
const auto metadata : buffer)
38 double millisecondCounterToStartAt,
39 double samplesPerSecondForBuffer)
45 jassert (millisecondCounterToStartAt > 0);
47 auto timeScaleFactor = 1000.0 / samplesPerSecondForBuffer;
49 for (
const auto metadata : buffer)
51 auto eventTime = millisecondCounterToStartAt + timeScaleFactor * metadata.samplePosition;
52 auto*
m =
new PendingMessage (metadata.data, metadata.numBytes, eventTime);
65 while (
mm->next !=
nullptr &&
mm->next->message.getTimeStamp() <= eventTime)
116 if (eventTime > now + 20)
118 timeToWait = eventTime - (now + 20);
130 std::unique_ptr<PendingMessage> messageDeleter (
message);
140 if (eventTime > now - 200)
145 jassert (timeToWait < 1000 * 30);
146 wait ((
int) timeToWait);
static void message(int level, const char *fmt,...)
Definition adplugdb.cpp:120
Definition juce_MidiBuffer.h:145
void sendBlockOfMessagesNow(const MidiBuffer &buffer)
Definition juce_MidiDevices.cpp:31
void stopBackgroundThread()
Definition juce_MidiDevices.cpp:93
void run() override
Definition juce_MidiDevices.cpp:98
CriticalSection lock
Definition juce_MidiDevices.h:385
PendingMessage * firstMessage
Definition juce_MidiDevices.h:386
void clearAllPendingMessages()
Definition juce_MidiDevices.cpp:76
void startBackgroundThread()
Definition juce_MidiDevices.cpp:88
MidiOutput(const String &, const String &)
Definition juce_MidiDevices.cpp:26
void sendMessageNow(const MidiMessage &message)
Definition juce_linux_Bela.cpp:591
void sendBlockOfMessages(const MidiBuffer &buffer, double millisecondCounterToStartAt, double samplesPerSecondForBuffer)
Definition juce_MidiDevices.cpp:37
MidiDeviceInfo deviceInfo
Definition juce_MidiDevices.h:381
Definition juce_String.h:53
void startThread()
Definition juce_Thread.cpp:122
bool wait(int timeOutMilliseconds) const
Definition juce_Thread.cpp:299
Thread(const String &threadName, size_t threadStackSize=0)
Definition juce_Thread.cpp:26
bool threadShouldExit() const
Definition juce_Thread.cpp:177
bool stopThread(int timeOutMilliseconds)
Definition juce_Thread.cpp:208
void notify() const
Definition juce_Thread.cpp:304
bool isThreadRunning() const
Definition juce_Thread.cpp:155
static void waitForMillisecondCounter(uint32 targetTime) noexcept
Definition juce_Time.cpp:267
static uint32 getMillisecondCounter() noexcept
Definition juce_Time.cpp:241
unsigned * m
Definition inflate.c:1559
Definition carla_juce.cpp:31
CriticalSection::ScopedLockType ScopedLock
Definition juce_CriticalSection.h:186
unsigned int uint32
Definition juce_MathsFunctions.h:45
int roundToInt(const FloatType value) noexcept
Definition juce_MathsFunctions.h:465
Definition juce_MidiDevices.h:367
mm
Definition zipinfo.c:2291