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?