disconnect method
Implementation
bool disconnect() {
int result;
if (_ins.length > 0) {
result = midiInReset(hMidiInDevicePtr.value);
if (result != 0) {
print("RESET ERROR($result): ${midiErrorMessage(result)}");
}
for (int i=0; i < _numberOfBuffers; i++) {
if (_midiInHeaders[i] != nullptr) {
midiInUnprepareHeader(
hMidiInDevicePtr.value, _midiInHeaders[i], sizeOf<MIDIHDR>());
free(_midiInHeaders[i]);
}
if (_midiInBuffers[i] != nullptr) {
free(_midiInBuffers[i]);
}
}
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(_midiOutBuffer);
free(_midiOutHeader);
connected = false;
return true;
}