send method
Implementation
send(Uint8List data) async {
if (_outs.isEmpty ||
_disconnecting ||
_midiOutHandle == 0 ||
_midiOutBuffer == nullptr ||
_midiOutHeader == nullptr) {
return;
}
// Set data in out buffer
_midiOutBuffer.asTypedList(data.length).setAll(0, data);
_midiOutHeader.ref.lpData = PSTR(_midiOutBuffer.cast());
_midiOutHeader.ref.dwBytesRecorded =
_midiOutHeader.ref.dwBufferLength = data.length;
_midiOutHeader.ref.dwFlags = 0;
int result = midiOutPrepareHeader(
_hMidiOut,
_midiOutHeader,
sizeOf<MIDIHDR>(),
);
if (result != 0) {
debugPrint("HDR OUT PREP ERROR: ${midiErrorMessage(result)}");
}
result = midiOutLongMsg(_hMidiOut, _midiOutHeader, sizeOf<MIDIHDR>());
if (result != 0) {
debugPrint("SEND ERROR($result): ${midiErrorMessage(result)}");
}
result = midiOutUnprepareHeader(
_hMidiOut,
_midiOutHeader,
sizeOf<MIDIHDR>(),
);
if (result != 0) {
debugPrint("OUT UNPREPARE ERROR($result): ${midiErrorMessage(result)}");
}
}