Доступен ли API, совместимый с Snow Leopard, для "датчика внезапного движения"? - PullRequest
8 голосов
/ 01 февраля 2010

Я использовал Unimotion в моем приложении для считывания значений датчика движения для ноутбуков Apple, но не смог перенести код на 10.6 64-бит. (Я также попробовал SMSLib и мне тоже не повезло.)

  • Есть ли простой 10.6 совместимый SMS API?

Если альтернативы нет, я также рассматриваю исправление одной из библиотек. И Unimotion, и SMSLib используют следующий вызов, который устарел в 10.5 и удален из 10.6 64-битных :

result = IOConnectMethodStructureIStructureO(
    dataPort, kernFunc, structureInputSize,
    &structureOutputSize, &inputStructure, 
    outputStructure);
  • Есть ли простой способ заменить это с новыми вызовами IOKit?

( Этот пост на самом деле не получил меня намного дальше)

Ответы [ 2 ]

6 голосов
/ 01 февраля 2010

Если альтернативы нет, я также рассматриваю исправление одной из библиотек. И Unimotion, и SMSLib используют следующий вызов, который устарел в 10.5 и удален из 10.6 64-битный :

result = IOConnectMethodStructureIStructureO(
    dataPort, kernFunc, structureInputSize,
    &structureOutputSize, &inputStructure, 
    outputStructure);

Есть ли простой способ заменить это новыми вызовами IOKit?

Этот самый документ предлагает замены. Как насчет этого?

kern_return_t
IOConnectCallStructMethod(
    mach_port_t  connection,        // In
    uint32_t     selector,      // In
    const void  *inputStruct,       // In
    size_t       inputStructCnt,    // In
    void        *outputStruct,      // Out
    size_t      *outputStructCnt)   // In/Out

Насколько я могу судить, не должно быть никакой разницы, за исключением порядка аргументов. Тем не менее, я никогда не использовал I / O Kit, поэтому я мог упустить какое-то критическое концептуальное отличие, которое сделает этот вызов неработающим, как старый.

1 голос
/ 01 февраля 2010

Я не использовал это в 10.6, но работает ли это?

http://code.google.com/p/google-mac-qtz-patches/

...