Uso de Swift CFunctionPointer para pasar una devolución de llamada a la API CoreMIDI

Puede ser que esto no sea posible actualmente, lo cual sería lamentable. Estoy tratando de llamar a la API CoreMIDI para configurar una entrada MIDI. Esto es lo que estoy tratando de hacer en Swift:

var midiClient = MIDIClientRef()
var inputPort = MIDIEndpointRef()
var status: OSStatus

func readProc(packetList: UnsafePointer<MIDIPacketList>, readProcRefCon: UnsafeMutablePointer<Void>, srcConnRefCon: UnsafeMutablePointer<Void>) -> Void {
}

status = MIDIClientCreate("MIDI client", nil, nil, &midiClient);

status = MIDIDestinationCreate(midiClient, "MIDI input", readProc, nil, &inputPort);

Pero recibo este error: '(UnsafePointer, UnsafeMutablePointer, UnsafeMutablePointer) -> Void' no es convertible a 'MIDIReadProc'

El typedef de MIDIReadProc es el siguiente:

typealias MIDIReadProc = CFunctionPointer<((UnsafePointer<MIDIPacketList>, UnsafeMutablePointer<Void>, UnsafeMutablePointer<Void>) -> Void)>

¿Hay alguna manera de obtener un puntero de función para que mi método readProc pase a la API MIDIDestinationCreate?

Respuestas a la pregunta(2)

Su respuesta a la pregunta