void Engine::updateDisplay() { int l1; // The following is a test whether the display update loop is fast // enough to restore the parameters in time. This cannot be done in // realtime currently, since it requires reworking the restore routines // entirely. Testing seems positive, but TODO. if (schedRestoreLocation >= 0) { restore(schedRestoreLocation); schedRestoreLocation = -1; } for (l1 = 0; l1 < moduleWindowCount(); l1++) { ((InOutBox *)moduleWindow(l1)->widget())->updateDisplay(); } globStoreWidget->updateDisplay(); grooveWidget->updateDisplay(); midiControl->update(); if ((sendLogEvents) && (logEventCount)) { for (l1 = 0; l1 < logEventCount; l1++) { emit midiEventReceived(logEventBuffer.at(l1), logTickBuffer.at(l1)); } logEventCount = 0; } if (requestedTempo != tempo) { tempo = requestedTempo; emit tempoUpdated(tempo); } }
void MidiDecoder::newMessageData(unsigned char byte) { currentEvent.value[currentEventState.index++] = byte; if (currentEventState.index == currentEventState.numberOfBytes) { midiEventReceived(currentEvent); currentEventState.eventState = MIDI_EVENT_WAITING; currentEventState.index = 0; } }