Windows 8.1 で HIDAPI を使用して、HID デバイスからオーディオ ストリームを読み取ります。このストリームは、259 バイトで構成される ADPCM データを送信します。最初の 12 個のパッケージは 20 バイトで、13 個目は 19 バイトです。問題は、HIDAPI が常に 20 バイト (+1 バイトのレポート ID) を提供し、19 バイトを提供しないことです。HID のオーディオ部分は、Windows ではネイティブにサポートされていませんが、いくつかのサードパーティ ライブラリを使用して Linux で動作し、Ubuntu で HID データを直接キャッチすると、正しいデータ長が得られます。どうすればこれを修正できますか?
編集: hid_device* を設定するときに、呼び出しがdev->input_report_length = caps.InputReportByteLength;
最初に 21 に設定されているため、時間の経過とともに変更できなくなります。それでも、私のデバイスは 13 パケットごとに 19 (20) バイトのデータしか送信しません。これは実行時に動的に変更できますか?