2013-01-13 58 views
3

我現在已經有這樣的老遊戲手柄了一段時間,在GameStop的高級控制器(它實際上是從一個叫DragonRise INC。公司的大規模生產的通用設備之一。),其配備了隆隆聲/觸覺功能。不幸的是,它不適用於OSX。我認爲這將是一個很好的項目,可以更全面地瞭解OSX和USB HID設備上的驅動程序開發。現在,除了觸覺/力反饋的東西外,遊戲手柄本身還可以用作標準HID設備。我的目標是爲遊戲手柄編寫一個簡單的ForceFeedback插件。OSX ForceFeedback驅動

什麼我迄今所做的,是創建從IOUSBHIDDevice繼承了一個非常簡單的由於IOKit驅動,基本上讓超類做最繁重的工作的;我的推理是,它現在工作正常,我只想添加功能。所以這種工作,我現在的問題是,驅動程序正在被添加爲註冊表中設備的新界面。它是匹配的,但沒有使用。理想情況下,我想完全替換通用IOUSBHIDDevice類作爲該特定遊戲板的IOClass,但我不知道如何。

在另一方面,也許我會對此錯誤的方式,我並不需要創建一個新的驅動程序添加ForceFeedback插件是手柄;這只是我閱讀文檔後提出的解決方案。

這裏的Info.plist的(重要部件反正)我有我的駕駛項目:

<key>IOKitPersonalities</key> 
<dict> 
    <key>IODragonRiseGenericUSB</key> 
    <dict> 
     <key>IOMatchCategory</key> 
     <string>name_npp_driver_IODragonRiseGenericUSB</string> 
     <key>IOProviderClass</key> 
     <string>IOUSBDevice</string> 
     <key>IOKitDebug</key> 
     <integer>65535</integer> 
     <key>IOClass</key> 
     <string>name_npp_driver_IODragonRiseGenericUSB</string> 
     <key>CFBundleIdentifier</key> 
     <string>name.npp.driver.${PRODUCT_NAME:rfc1034identifier}</string> 
     <key>IOCFPlugInTypes</key> 
     <dict> 
      <key>F4545CE5-BF5B-11D6-A4BB-0003933E3E3E</key> 
      <string>IODragonRiseGenericUSB.kext/Contents/PlugIns/ForceFeedback.plugin</string> 
     </dict> 
     <key>idProduct</key> 
     <integer>6</integer> 
     <key>idVendor</key> 
     <integer>121</integer> 
     <key>HIDDefaultBehavior</key> 
     <string></string> 
     <key>bInterfaceClass</key> 
     <integer>3</integer> 
     <key>bInterfaceProtocol</key> 
     <integer>1</integer> 
     <key>bInterfaceSubClass</key> 
     <integer>1</integer> 
    </dict> 
</dict> 
<key>NSHumanReadableCopyright</key> 
<string>Copyright © 2013 npepinpe. All rights reserved.</string> 
<key>OSBundleLibraries</key> 
<dict> 
    <key>com.apple.iokit.IOHIDFamily</key> 
    <string>1.7.1</string> 
    <key>com.apple.iokit.IOUSBFamily</key> 
    <string>5.1</string> 
    <key>com.apple.iokit.IOUSBHIDDriver</key> 
    <string>5.0</string> 
    <key>com.apple.kpi.iokit</key> 
    <string>11.4.2</string> 
    <key>com.apple.kpi.libkern</key> 
    <string>11.4.2</string> 
</dict> 

一些需要注意的,我試圖改變的IOProviderClass到的UsbInterface(作爲IOUSBHIDDevice一樣),但後來我設備根本不匹配,所以我不知道我在那裏做錯了什麼。

所以我的問題是,我該如何替換默認IOUSBHIDDriver這是對我和我的自定義驅動程序特定的手柄是否匹配?或者,如果我只是想添加一個ForceFeedback插件(但不需要改變任何其他行爲),那是不是正確的方法?

+0

你的問題到底在哪裏? – marko

+0

對不起,我想這個問題並不完全清楚。我已經編輯過了,希望這樣會更好。 – npepinpe

回答

0

這是一個什麼樣的老羅技力反饋作爲其由於IOKit人物之一的樣本:

<key>Logitech Cordless RumblePad</key> 
<dict> 
<key>CFBundleIdentifier</key> 
<string>com.apple.iokit.IOUSBHIDDriver</string> 
<key>IOCFPlugInTypes</key> 
<dict> 
    <key>F4545CE5-BF5B-11D6-A4BB-0003933E3E3E</key> 
    <string>LogitechForceFeedback.kext/Contents/PlugIns/WMJoyFrc.plugin</string> 
</dict> 
<key>IOClass</key> 
<string>IOUSBHIDDriver</string> 
<key>IOProviderClass</key> 
<string>IOUSBInterface</string> 
<key>bConfigurationValue</key> 
<integer>1</integer> 
<key>bInterfaceNumber</key> 
<integer>0</integer> 
<key>idProduct</key> 
<integer>49681</integer> 
<key>idVendor</key> 
<integer>1133</integer> 
</dict> 

我想你只需要專注於力反饋包(這是羅技內核擴展是什麼:只有info.plist和Force Feedback軟件包)。

Mac XBox 360驅動程序具有力反饋驅動程序。你可以用它作爲起點。

相關問題