| @@ -3034,28 +3034,46 @@ public: | |||||
| else | else | ||||
| nextBankId = 0; | nextBankId = 0; | ||||
| // reset iters | |||||
| const uint32_t j = fEventsIn.ctrlIndex; | |||||
| if (fEventsIn.ctrl->type & CARLA_EVENT_DATA_ATOM) | |||||
| { | |||||
| lv2_atom_buffer_reset(fEventsIn.data[j].atom, true); | |||||
| lv2_atom_buffer_begin(&evInAtomIters[j], fEventsIn.data[j].atom); | |||||
| } | |||||
| else if (fEventsIn.ctrl->type & CARLA_EVENT_DATA_EVENT) | |||||
| for (uint32_t j=0; j < fEventsIn.count; ++j) | |||||
| { | { | ||||
| lv2_event_buffer_reset(fEventsIn.data[j].event, LV2_EVENT_AUDIO_STAMP, fEventsIn.data[j].event->data); | |||||
| lv2_event_begin(&evInEventIters[j], fEventsIn.data[j].event); | |||||
| if (fEventsIn.data[j].type & CARLA_EVENT_DATA_ATOM) | |||||
| { | |||||
| lv2_atom_buffer_reset(fEventsIn.data[j].atom, true); | |||||
| lv2_atom_buffer_begin(&evInAtomIters[j], fEventsIn.data[j].atom); | |||||
| } | |||||
| else if (fEventsIn.data[j].type & CARLA_EVENT_DATA_EVENT) | |||||
| { | |||||
| lv2_event_buffer_reset(fEventsIn.data[j].event, LV2_EVENT_AUDIO_STAMP, fEventsIn.data[j].event->data); | |||||
| lv2_event_begin(&evInEventIters[j], fEventsIn.data[j].event); | |||||
| } | |||||
| else if (fEventsIn.data[j].type & CARLA_EVENT_DATA_MIDI_LL) | |||||
| { | |||||
| fEventsIn.data[j].midi.event_count = 0; | |||||
| fEventsIn.data[j].midi.size = 0; | |||||
| evInMidiStates[j].position = event.time; | |||||
| } | |||||
| } | } | ||||
| else if (fEventsIn.ctrl->type & CARLA_EVENT_DATA_MIDI_LL) | |||||
| for (uint32_t j=0; j < fEventsOut.count; ++j) | |||||
| { | { | ||||
| fEventsIn.data[j].midi.event_count = 0; | |||||
| fEventsIn.data[j].midi.size = 0; | |||||
| evInMidiStates[j].position = event.time; | |||||
| if (fEventsOut.data[j].type & CARLA_EVENT_DATA_ATOM) | |||||
| { | |||||
| lv2_atom_buffer_reset(fEventsOut.data[j].atom, false); | |||||
| } | |||||
| else if (fEventsOut.data[j].type & CARLA_EVENT_DATA_EVENT) | |||||
| { | |||||
| lv2_event_buffer_reset(fEventsOut.data[j].event, LV2_EVENT_AUDIO_STAMP, fEventsOut.data[j].event->data); | |||||
| } | |||||
| else if (fEventsOut.data[j].type & CARLA_EVENT_DATA_MIDI_LL) | |||||
| { | |||||
| // not needed | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| else | else | ||||
| { | |||||
| startTime += timeOffset; | startTime += timeOffset; | ||||
| } | |||||
| } | } | ||||
| switch (event.type) | switch (event.type) | ||||