Fix incorrect multiple-count report field sizing #30
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When enumerating a device's report fields, the resulting
HIDInputReportItem
is instantiated with a count and the size of an individual field. The total size of the item is the field size times the number of fields associated with this item, butHIDInputReport::push_back()
, which is used to give instantiated report items their offset in the report's buffer, uses only the individual field's size.The effect of this is that the offset for every
HIDInputReportItem
is incorrect (too low) after the first item that has a count greater than one. This PR is a simple fix to giveHIDInputReportItem
a public member to provide its total size toHIDInputReport
so that correct offsets can be calculated.