我需要了解在使用多个 MIDI 设备时如何返回 MIDI 数据包的来源。
我使用以下循环连接了所有源:
ItemCount sourceCount = MIDIGetNumberOfSources();
for (ItemCount i = 0 ; i < sourceCount ; ++i) {
MIDIEndpointRef source = MIDIGetSource(i);
MIDISourceConnectPort( inPort, source, &i);
}
我知道 MIDISourceConnectPort() 中的最后一个参数是一个上下文,用于识别发送到 MIDIReadProc 回调的源。所以我试图将源的索引发送到 MIDIReadProc。
void MIDIReadProc (const MIDIPacketList *pktlist,
void *readProcRefCon,
void *srcConnRefCon)
{
\\ How do I access the source index passed in the conRef by using *srcConnRefSource?
}
我需要知道这一点的原因是我正在尝试向设备发送 LED 反馈,并且我需要知道哪个设备发送了数据包,以便我可以将反馈发送到正确的设备。