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?