Я пытаюсь использовать MIDIPacketListAdd CoreAudio, делая это (на Mac):
MIDIPacketListAdd(packetList, PACKETLIST_SIZE, currentPacket, mach_absolute_time, len, data);
Я думал о вызове метода несколько раз перед его отправкой, чтобы в моем списке пакетов был> 1 пакет. Однако, когда я это делаю, количество пакетов никогда не увеличивается, и я получаю пакетList->packet[0] с постоянно увеличивающимся пакетом[0].data.
1) Как правильно использовать этот метод? Я просмотрел несколько примеров, в том числе пример из «Learning Core Audio» — похоже, все они отправляют только один пакет.
2) Есть ли улучшение производительности, если я упакую несколько пакетов в 1 список пакетов по сравнению с отправкой 1 списка пакетов с 1 пакетом несколько раз?
Спасибо, ценю любую помощь по этому поводу.
Изменить для продолжения: вот как я запускаю список пакетов
#define PACKETLIST_SIZE 512
- (void) initPacketList {
if (packetList) {
free(packetList);
packetList = NULL;
}
packetList = (MIDIPacketList *)malloc(PACKETLIST_SIZE * sizeof(char));
currentPacket = MIDIPacketListInit(packetList);
}
- (void) clearPacketList {
packetList->numPackets = 0;
currentPacket = MIDIPacketListInit(packetList);
}
- (void) addPacketToPacketList:(Byte*) data ofLength:(int) len {
NSLog(@"length %d", len);
//NSLog(@"%lld", mach_absolute_time());
currentPacket = MIDIPacketListAdd(packetList, PACKETLIST_SIZE, currentPacket, mach_absolute_time, len, data);
//if (!currentPacket) exit(1);
}