handleEventsNow static method

int handleEventsNow(
  1. int trackIndex,
  2. List<SchedulerEvent> events,
  3. int sampleRate,
  4. double tempo,
)

Implementation

static int handleEventsNow(int trackIndex, List<SchedulerEvent> events,
    int sampleRate, double tempo) {
  if (events.isEmpty) return 0;

  final Pointer<Uint8>? nativeArray =
      calloc<Uint8>(events.length * SCHEDULER_EVENT_SIZE);
  events.asMap().forEach((eventIndex, e) {
    final byteData = e.serializeBytes(sampleRate, tempo, 0);
    for (var byteIndex = 0; byteIndex < byteData.lengthInBytes; byteIndex++) {
      nativeArray![eventIndex * SCHEDULER_EVENT_SIZE + byteIndex] =
          byteData.getUint8(byteIndex);
    }
  });

  return nHandleEventsNow(trackIndex, nativeArray, events.length);
}