Возможно, в настоящее время это на самом деле невозможно, что было бы прискорбно. Я пытаюсь вызвать API CoreMIDI для настройки ввода MIDI. Это то, что я пытаюсь сделать в 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);
Но я получаю эту ошибку: «(UnsafePointer, UnsafeMutablePointer, UnsafeMutablePointer) -> Void» не может быть преобразован в «MIDIReadProc»
Определение типа MIDIReadProc выглядит следующим образом:
typealias MIDIReadProc = CFunctionPointer<((UnsafePointer<MIDIPacketList>, UnsafeMutablePointer<Void>, UnsafeMutablePointer<Void>) -> Void)>
Есть ли способ получить указатель функции для моего метода readProc для передачи в MIDIDestinationCreate API?