Add PS2_MOUSE_ROTATE to compensate for device orientation (#8650)
* Add PS2_MOUSE_ROTATE to compensate for device orientation * fixup! Add PS2_MOUSE_ROTATE to compensate for device orientation * Reformat with IndentPPDirectives: AfterHash as per #6316
This commit is contained in:
parent
b5aa5e4338
commit
07c75feba3
@ -266,6 +266,25 @@ To reverse the scroll axes you can put:
|
||||
|
||||
into config.h.
|
||||
|
||||
### Rotate Mouse Axes :id=rotate-mouse-axes
|
||||
|
||||
Transform the output of the device with a clockwise rotation of 90, 180, or 270
|
||||
degrees.
|
||||
|
||||
When compensating for device orientation, rotate the output the same amount in
|
||||
the opposite direction. E.g. if the normal device orientation is considered to
|
||||
be North-facing, compensate as follows:
|
||||
|
||||
```c
|
||||
#define PS2_MOUSE_ROTATE 270 /* Compensate for East-facing device orientation. */
|
||||
```
|
||||
```c
|
||||
#define PS2_MOUSE_ROTATE 180 /* Compensate for South-facing device orientation. */
|
||||
```
|
||||
```c
|
||||
#define PS2_MOUSE_ROTATE 90 /* Compensate for West-facing device orientation. */
|
||||
```
|
||||
|
||||
### Debug Settings :id=debug-settings
|
||||
|
||||
To debug the mouse, add `debug_mouse = true` or enable via bootmagic.
|
||||
|
@ -157,6 +157,21 @@ static inline void ps2_mouse_convert_report_to_hid(report_mouse_t *mouse_report)
|
||||
// invert coordinate of y to conform to USB HID mouse
|
||||
mouse_report->y = -mouse_report->y;
|
||||
#endif
|
||||
|
||||
#ifdef PS2_MOUSE_ROTATE
|
||||
int8_t x = mouse_report->x;
|
||||
int8_t y = mouse_report->y;
|
||||
# if PS2_MOUSE_ROTATE == 90
|
||||
mouse_report->x = y;
|
||||
mouse_report->y = -x;
|
||||
# elif PS2_MOUSE_ROTATE == 180
|
||||
mouse_report->x = -x;
|
||||
mouse_report->y = -y;
|
||||
# elif PS2_MOUSE_ROTATE == 270
|
||||
mouse_report->x = -y;
|
||||
mouse_report->y = x;
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline void ps2_mouse_clear_report(report_mouse_t *mouse_report) {
|
||||
|
Loading…
Reference in New Issue
Block a user