Browse Source

Tweak findNextEvent() to catch future cases of lost events

tags/v1.9.11
falkTX 6 years ago
parent
commit
31eb7760b0
1 changed files with 12 additions and 5 deletions
  1. +12
    -5
      source/backend/plugin/CarlaPluginNative.cpp

+ 12
- 5
source/backend/plugin/CarlaPluginNative.cpp View File

@@ -1435,14 +1435,21 @@ public:
}
}

const EngineEvent& findNextEvent(const uint32_t index)
const EngineEvent& findNextEvent()
{
if (fMidiIn.count == 1)
{
if (index >= fMidiIn.multiportData[0].cachedEventCount)
NativePluginMidiInData::MultiPortData& multiportData(fMidiIn.multiportData[0]);

if (multiportData.usedIndex == multiportData.cachedEventCount)
{
const uint32_t eventCount = pData->event.portIn->getEventCount();
CARLA_SAFE_ASSERT_INT2(eventCount == multiportData.cachedEventCount,
eventCount, multiportData.cachedEventCount);
return kNullEngineEvent;
}

return pData->event.portIn->getEvent(index);
return pData->event.portIn->getEvent(multiportData.usedIndex++);
}

uint32_t lowestSampleTime = 9999999;
@@ -1643,9 +1650,9 @@ public:
else
nextBankId = 0;

for (uint32_t i=0;; ++i)
for (;;)
{
const EngineEvent& event(findNextEvent(i));
const EngineEvent& event(findNextEvent());

if (event.type == kEngineEventTypeNull)
break;


Loading…
Cancel
Save