//------------------------------------------------------------------------ void TJackSynchro::Close() { RemoveAllBusses(); if (fClient) jack_client_close(fClient); if (fDestination) MIDIEndpointDispose(fDestination); if (fSource) MIDIEndpointDispose(fSource); if (fMidiClient) MIDIClientDispose(fMidiClient); }
~MidiPortAndEndpoint() noexcept { if (port != 0) MIDIPortDispose (port); if (port == 0 && endPoint != 0) // if port == nullptr, it means we created the endpoint, so it's safe to delete it MIDIEndpointDispose (endPoint); }
//------------------------------------------------------------------------ void TJackSynchro::RemoveAllBusses() { vector<MIDIEndpointRef>::const_iterator it; for (it = fMidiInput.begin(); it != fMidiInput.end(); it++) { MIDIEndpointRef endpoint = *it; MIDIEndpointDispose(endpoint); } for (it = fMidiOuput.begin(); it != fMidiOuput.end(); it++) { MIDIEndpointRef endpoint = *it; MIDIEndpointDispose(endpoint); } fMidiInput.clear(); fMidiOuput.clear(); }
//------------------------------------------------------------------------ bool TJackSynchro::AddMidiBus(int i) { OSStatus err; MIDIEndpointRef input = NULL; MIDIEndpointRef output = NULL; char inputStr [64]; char outputStr [64]; // Up to MAX_MIDI_BUS busses if (i >= MAX_MIDI_BUS) return false; sprintf(outputStr, "Jack MIDI In%ld", i); sprintf(inputStr, "Jack MIDI Out%ld", i); CFStringRef coutputStr = CFStringCreateWithCString(NULL, outputStr, CFStringGetSystemEncoding()); CFStringRef cinputStr = CFStringCreateWithCString(NULL, inputStr, CFStringGetSystemEncoding()); err = MIDIDestinationCreate(fMidiClient, coutputStr, fReadProc[i - 1], this, &output); if (!output) { printf("Can not open create destination \n"); goto error; } err = MIDISourceCreate(fMidiClient, cinputStr, &input); if (!input) { printf("Can not open create source \n"); goto error; } fMidiInput.push_back(input); fMidiOuput.push_back(output); CFRelease(coutputStr); CFRelease(cinputStr); return true; error: if (input) MIDIEndpointDispose(input); if (output) MIDIEndpointDispose(output); return false; }
void CloseMIDIHarware() { if (MIDIHardware) { OSStatus MIDIErr = MIDIEndpointDispose(MADMIDIKeyboardEndRef); MIDIErr = MIDIClientDispose(MADMIDICliRef); MADMIDICliRef = 0L; MADMIDIPortInRef = 0L; } MIDIHardware = false; }
// ---------------------------------------------------------- ofxAudioUnitMidiReceiver::~ofxAudioUnitMidiReceiver() // ---------------------------------------------------------- { MIDIPortDispose(_port); MIDIEndpointDispose(_endpoint); }
MidiInputDeviceCoreMidi::MidiInputPortCoreMidi::~MidiInputPortCoreMidi() { MIDIEndpointDispose(pDestination); }
JNIEXPORT jint JNICALL Java_com_apple_audio_CAObjectManagement_MIDIEndpointDispose (JNIEnv *, jclass, jint endpt) { return (jint)MIDIEndpointDispose((MIDIEndpointRef)endpt); }