MIDIDestinationCreate(_:_:_:_:_:)
Creates a virtual destination in a client.
Declaration
func MIDIDestinationCreate(_ client: MIDIClientRef, _ name: CFString, _ readProc: MIDIReadProc, _ refCon: UnsafeMutableRawPointer?, _ outDest: UnsafeMutablePointer<MIDIEndpointRef>) -> OSStatusParameters
- client:
The client owning the virtual destination.
- name:
The name of the virtual destination.
- readProc:
The MIDIReadProc to be called when a client sends MIDI to the virtual destination.
- refCon:
The refCon to be passed to the readProc.
- outDest:
On successful return, a pointer to the newly-created destination.
Return Value
An OSStatus result code.
Discussion
The specified readProc gets called when clients send MIDI to your virtual destination.
Drivers need not call this; when they create devices and entities, sources and destinations are created at that time.
After creating a virtual destination, it’s a good idea to assign it the same unique ID it had the last time your application created it. (Although you should be prepared for this to fail in the unlikely event of a collision.) This will permit other clients to retain persistent references to your virtual destination more easily.
See the discussion of kMIDIPropertyAdvanceScheduleTimeMuSec for notes about the relationship between when a sender sends MIDI to the destination and when it is received.