getEvent method

SynthizerEvent? getEvent()

Get the next Synthizer event.

Implementation

SynthizerEvent? getEvent() {
  synthizer.check(
    synthizer.synthizer.syz_contextGetNextEvent(
      synthizer.eventPointer,
      handle.value,
      0,
    ),
  );
  final sourceHandle = synthizer.eventPointer.ref.source;
  final eventType = synthizer.eventPointer.ref.type.toEventTypes();
  final param = synthizer.eventPointer.ref.payload.user_automation.param;
  synthizer.synthizer.syz_eventDeinit(synthizer.eventPointer);
  switch (eventType) {
    case EventTypes.finished:
      return FinishedEvent(context: this, sourceHandle: sourceHandle);
    case EventTypes.looped:
      return LoopedEvent(context: this, generatorHandle: sourceHandle);
    case EventTypes.userAutomation:
      return UserAutomationEvent(
        context: this,
        targetHandle: sourceHandle,
        param: param,
      );
    case EventTypes.invalid:
      return null;
  }
}