Skip to content
New issue

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

Add support for large Mouse Reports #16371

Merged
merged 20 commits into from
Jun 9, 2022
Merged

Conversation

drashna
Copy link
Member

@drashna drashna commented Feb 16, 2022

Description

While looking at tmk stuff, I noticed that that they added support for 16-bit X and Y reports for mouse reports.

This expands the report to allow for int16_t to be used for the x and y axises, as well as boot mouse reports.

I suspect that the mouse boot protocol requires that the endpoint not be shared, but ... I'm not sure about that.

Types of Changes

  • Core
  • New feature
  • Enhancement/optimization
  • Documentation

Checklist

  • My code follows the code style of this project: C, Python
  • I have read the PR Checklist document and have made the appropriate changes.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • I have tested the changes and verified that they work and don't break anything (as well as I can manage).

@drashna drashna requested a review from a team February 16, 2022 07:26
@github-actions github-actions bot added the core label Feb 16, 2022
tmk_core/protocol/usb_descriptor.c Outdated Show resolved Hide resolved
@drashna drashna requested review from a team and daskygit February 16, 2022 18:20
@@ -165,11 +162,26 @@ const pointing_device_driver_t pointing_device_driver = {
// clang-format on

#elif defined(POINTING_DEVICE_DRIVER_pimoroni_trackball)

mouse_xy_report_t pimoroni_trackball_adapt_values(clamp_range_t* offset) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was it intended to move this from pimoroni_trackball.c?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah. Wanted to move all the hid clamping stuff into the drivers file, as it's more appropriate there, I think.

@daskygit
Copy link
Member

Using the extended reports with the pimoroni trackball, does seem to produce a better feel to the device. I guess the reason for not making this the default is the extra firmware space required?

@drashna
Copy link
Member Author

drashna commented Feb 23, 2022

Using the extended reports with the pimoroni trackball, does seem to produce a better feel to the device. I guess the reason for not making this the default is the extra firmware space required?

That may be because it's not hitting the 127 limit, and generates a more natural feel.

And yeah, also, not everything may support it, so opt in is better than opt out, until there are enough people using it to verify it's not an issue.

@drashna drashna force-pushed the pointing/large_reports branch from 74f88e8 to e995e03 Compare February 26, 2022 03:25
@drashna drashna mentioned this pull request Mar 9, 2022
7 tasks
@drashna drashna requested review from sigprof and a team March 14, 2022 03:34
@drashna drashna force-pushed the pointing/large_reports branch from e995e03 to 1c7754f Compare March 16, 2022 01:00
@pashashocky
Copy link

+1 tested - makes pimoroni trackball significantly more accurate and smooth.

@drashna drashna requested a review from daskygit May 3, 2022 06:11
@daskygit
Copy link
Member

daskygit commented May 3, 2022

It's probably worth adding this define to the documentation?

@drashna drashna force-pushed the pointing/large_reports branch from 1c7754f to 07e0285 Compare May 3, 2022 17:04
@drashna
Copy link
Member Author

drashna commented May 3, 2022

It's probably worth adding this define to the documentation?

I had forgotten, actually. Added in 07e0285

Copy link
Member

@daskygit daskygit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

weak approval as I can't comment much on the usb descriptor changes other than it works.

drivers/sensors/pimoroni_trackball.h Outdated Show resolved Hide resolved
quantum/pointing_device.c Outdated Show resolved Hide resolved
quantum/pointing_device.c Outdated Show resolved Hide resolved
@tzarc tzarc requested a review from fauxpark May 15, 2022 06:32
tmk_core/protocol/usb_descriptor.c Outdated Show resolved Hide resolved
tmk_core/protocol/usb_descriptor.c Outdated Show resolved Hide resolved
tmk_core/protocol/vusb/vusb.c Outdated Show resolved Hide resolved
@drashna drashna force-pushed the pointing/large_reports branch from e7cbf1b to d8a055c Compare June 8, 2022 21:36
@drashna drashna force-pushed the pointing/large_reports branch from d8a055c to caebf93 Compare June 8, 2022 21:37
@drashna drashna merged commit 0ab51ee into qmk:develop Jun 9, 2022
@drashna drashna deleted the pointing/large_reports branch June 9, 2022 01:39
@waffle87 waffle87 mentioned this pull request Jun 9, 2022
8 tasks
0xcharly pushed a commit to Bastardkb/bastardkb-qmk that referenced this pull request Jul 4, 2022
@drashna drashna mentioned this pull request Aug 27, 2022
14 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants