Verwenden von Swift CFunctionPointer zum Übergeben eines Rückrufs an die CoreMIDI-API

Es kann sein, dass dies derzeit tatsächlich nicht möglich ist, was bedauerlich wäre. Ich versuche, die CoreMIDI-API aufzurufen, um einen MIDI-Eingang einzurichten. Das versuche ich in Swift zu tun:

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);

Aber ich bekomme diese Fehlermeldung: '(UnsafePointer, UnsafeMutablePointer, UnsafeMutablePointer) -> Void' kann nicht in 'MIDIReadProc' konvertiert werden

Typedef von MIDIReadProc lautet wie folgt:

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

Gibt es eine Möglichkeit, einen Funktionszeiger für meine readProc-Methode an die MIDIDestinationCreate-API zu übergeben?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage