現在、ゲームパッドのサポートを含むクロスプラットフォーム ライブラリを C で作成しています。Windows でのゲームパッド通信は、特定のゲームパッドに応じて、raw 入力と xinput の両方で処理されます。
xinput は xbox360 コントローラーで強制フィードバックを容易にしますが、生の入力を使用してこれを行う方法は見つかりませんでした。フォース フィードバックを提供できるゲームパッドをいくつか持っていますが、生の入力を通じてこれを行う方法が見つかりません。これを行う方法はありますか?
DirectInput API は Microsoft によって非推奨で推奨されていないため、使用したくありません。
編集:
大部分のゲームパッドを実装したので、質問を少し絞り込むことができるかもしれません。ゲームパッドのランブル モーターの量は、HIDP_CAPS 構造体の NumberOutputValueCaps を読み取ることでわかると思います。これにより、すべてのテスト ゲームパッドで正しい結果が得られます。
関数 HidP_GetUsageValue を使用して軸の値を読み取っていますが、これは正常に機能します。HidP_SetUsageValue を呼び出すと、この出力値を変更してランブル モーターをオンにできるはずです。ただし、この関数の呼び出しは失敗します。この関数はランブル モーターにアクセスできるようにする必要がありますか?