Я обновляю существующие пользовательские драйверы мыши до OSX 10.11. Видно, что Apple обновила свой стек usb.Обновление драйвера osx для 10.11 (Изменения в стеке USB)
Пожалуйста, обратитесь - https://developer.apple.com/library/mac/releasenotes/General/APIDiffsMacOSX10_11/Objective-C/Kernel.html
Мой существующий код использует многие из удаленных классов (IOUSBHIDDriver
, IOUSBInterface
, IOUSBPipe
и т.д.). Может ли кто-нибудь помочь мне найти замены или любую полезную информацию для обновления до 10.11?
Многие классы и файлы заголовков переименовываются, и я могу найти замену из приведенной выше ссылки. Но код также использует устаревший класс IOUSBPipe
и его методы. Я не совсем понял, для чего он используется. Может ли кто-нибудь объяснить цель IOUSBPipe
, а также предложить мне альтернативный класс для OSX 10.11?
Пожалуйста, найдите ниже этой линии фрагмент кода, который имеет дело с IOUSBpipe
IOMemoryDescriptor *report;
setReport(report, kIOHIDReportTypeOutput);
IOReturn ret;
IOUSBDevRequest request;
IOUSBFindEndpointRequest findRequest = {
kUSBAnyType,
kUSBAnyDirn,
0,
0
};
IOUSBPipe *pipe = NULL;
while(pipe=usbInterface->FindNextPipe(pipe, &findRequest))
{
if (!pipe)
{
IOLog("NO PIPE!\n");
return 0;
}
IOLog("control request on pipe!\n");
request.bmRequestType = (UInt8)req->bmRequestType;
request.bRequest = (UInt8)req->bRequest;
request.wIndex = (UInt16)req->wIndex;
request.wLength = req->wLength;
request.wValue = (UInt16)req->wValue;
request.pData = (void*)data;
pipe->ControlRequest(&request);
IOLog("result: %d", data[0]);
}