We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TouchpadGestures_Advanced の作者のkamektxです。
件名の通り、別の種類のタッチパッドでは送られてくるデータの形式が異なるようです。先日新しいPCを購入してTGAが動かないことで判明しました。
どうやらある種類のタッチパッドでは、
ようです。詳しい仕様としては、
といった感じになってます。
実装としては、
HidP_GetUsageValue( HIDP_REPORT_TYPE.HidP_Input, valueCap.UsagePage, valueCap.LinkCollection, valueCap.Usage, out uint value, preparsedDataPointer, - rawHidRawDataPointer, + // rawHidRawDataPointerからRAWINPUT->data.hid.dwSizeHidバイト * {0, 1, 2 ...}だけポインタをズラしてください。 + // 現在rawHidRawDataPointerがIntPtr型なのでそのまま+で足すと多分バグります。気をつけて…。 (uint)rawHidRawData.Length)
みたいな感じで行けると思います。プルリク送れなくてすみません。
一応自前のC++での実装を載せておきます。参考になれば幸いです。
Microsoftのページ の"Packet reporting modes"の節を見る限り、なんだかもっとデータにバリエーションがありそうな気もしていて、非常に恐ろしく思っています……。
The text was updated successfully, but these errors were encountered:
わざわざお知らせいただきありがとうございます。 こちらでも見直してみます。
Sorry, something went wrong.
嫌な予感がしたとおり、必ず2回に分けてデータが送られてくるわけではなく、3回だったりすることがわかりました。 最初のポストをそれに合わせて訂正しておきます。
No branches or pull requests
TouchpadGestures_Advanced の作者のkamektxです。
件名の通り、別の種類のタッチパッドでは送られてくるデータの形式が異なるようです。先日新しいPCを購入してTGAが動かないことで判明しました。
どうやらある種類のタッチパッドでは、
2回目の後に続く複数回の WM_INPUTメッセージへと分けて送信しているようです。詳しい仕様としては、
1回目のWM_INPUT
2回目の後に続く複数回のWM_INPUT合計タッチ数(ContactCount) - 1とは限らず、計3回に分けて送ってきたりもするといった感じになってます。
実装としては、
RAWINPUT->data.hid.dwCountが2以上となること、またはContactCountが0であることで従来型のメッセージと判別できるみたいな感じで行けると思います。プルリク送れなくてすみません。
一応自前のC++での実装を載せておきます。参考になれば幸いです。
Microsoftのページ の"Packet reporting modes"の節を見る限り、なんだかもっとデータにバリエーションがありそうな気もしていて、非常に恐ろしく思っています……。
The text was updated successfully, but these errors were encountered: