disconnect method
Implementation
bool disconnect() {
int result;
if (_ins.length > 0) {
result = midiInReset(hMidiInDevicePtr.value);
if (result != 0) {
print("RESET ERROR($result): ${midiErrorMessage(result)}");
}
result = midiInUnprepareHeader(
hMidiInDevicePtr.value, _midiInHeader, sizeOf<MIDIHDR>());
if (result != 0) {
print("UNPREPARE ERROR($result): ${midiErrorMessage(result)}");
}
result = midiInUnprepareHeader(
hMidiInDevicePtr.value, _midiInHeader2, sizeOf<MIDIHDR>());
if (result != 0) {
print("UNPREPARE ERROR($result): ${midiErrorMessage(result)}");
}
result = midiInStop(hMidiInDevicePtr.value);
if (result != 0) {
print("STOP ERROR($result): ${midiErrorMessage(result)}");
}
result = midiInClose(hMidiInDevicePtr.value);
if (result != 0) {
print("CLOSE ERROR($result): ${midiErrorMessage(result)}");
}
free(hMidiInDevicePtr);
}
if (_outs.length > 0) {
result = midiOutClose(hMidiOutDevicePtr.value);
if (result != 0) {
print("OUT CLOSE ERROR($result): ${midiErrorMessage(result)}");
}
free(hMidiOutDevicePtr);
}
free(_midiInBuffer);
free(_midiInHeader);
free(_midiInBuffer2);
free(_midiInHeader2);
free(_midiOutBuffer);
free(_midiOutHeader);
connected = false;
return true;
}