私は数日間Macでゲームパッドとジョイスティックのサポートを行う方法を探していましたが、見つけたすべてのリソースは、AppleのHID APIを使用するとともに、プリインストールされたドライバーを示唆しているようです。
このアプローチの欠点は、各ジョイスティックとゲームパッドに別のカーネル拡張機能をロードする必要があるため、HIDマネージャー、または少なくともInfo.plist
以前にインストールされたドライバーに準拠しているとは言えないコードで認識できることです。たとえば、360 XboxドライバーKEXTを社内に持っている場合、MicrosoftのXboxコントローラーは機能しますが、Logitechのコントローラーは機能しません(F710を試しました)。
Appleが提案しているように、ゲームパッドまたはジョイスティックを使用するアプリケーションは、KEXTのものを導入することなく、ユーザースペースで自分で実行できる必要があります。それを行う方法はありますか?
私が念頭に置いていたのは、IORegistryまたはIOUSB APIを使用して、デバイスが接続されたときにデバイスを取得するようなものでした(USB Proberは少なくともそれを示しています)。次に、何らかの方法でデバイスの説明を取得し、その説明を使用してデバイスをHIDとして登録します。その後、HIDManager全体を使用できます。
私は正しい方向に進んでいますか?または、これを行う他の方法はありますか?
IOKit APIは実際にはkHIDUsage_GD_Joystickのようなキーワードを提供し、ForceFeedback.hライブラリがあるので、Appleはジョイスティックと強制フィードバックを念頭に置いてHIDAPIを設計したと思います。それは私がこれがうまくいくかもしれないという細い希望です。
いくつかのリファレンスドキュメントとオープンソースプロジェクト: