Joystick 16-bit support (#10439)

* Joystick 16-bit support

* Add variable joystick axes resolution

* Moved #define statements to .h files

* Moved definitions to quantum/joystick.h

  Removed duplicate definitions from usb_descriptor.h and
  process_joysick.h

  Adjust process_joystick.c and usb_descriptor.c to use the pre-computed
  "JOYSTICK_RESOLUTION" value which contains the logical maximum value
  of a joystick axis

* Cleaning up unnecessary code

* Update docs/feature_joystick.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Workaround to joystick.h not being included to report.h

* Removed unnecessary newlines, updated report.h

Changed JOYSTICK_AXES_RESOLUTION conditional in report.h

Co-authored-by: Ryan <fauxpark@gmail.com>
This commit is contained in:
seb-pau 2020-10-03 20:19:07 +02:00 committed by James Young
parent 9664723595
commit f728c249ce
No known key found for this signature in database
GPG key ID: 8E1085BF6FCFBD74
5 changed files with 38 additions and 9 deletions

View file

@ -41,6 +41,10 @@
#include "usb_descriptor.h"
#include "usb_descriptor_common.h"
#ifdef JOYSTICK_ENABLE
# include "joystick.h"
#endif
// clang-format off
/*
@ -308,10 +312,17 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] = {
HID_RI_USAGE(8, 0x35), // Rz
# endif
# if JOYSTICK_AXES_COUNT >= 1
HID_RI_LOGICAL_MINIMUM(8, -127),
HID_RI_LOGICAL_MAXIMUM(8, 127),
# if JOYSTICK_AXES_RESOLUTION == 8
HID_RI_LOGICAL_MINIMUM(8, -JOYSTICK_RESOLUTION),
HID_RI_LOGICAL_MAXIMUM(8, JOYSTICK_RESOLUTION),
HID_RI_REPORT_COUNT(8, JOYSTICK_AXES_COUNT),
HID_RI_REPORT_SIZE(8, 0x08),
# else
HID_RI_LOGICAL_MINIMUM(16, -JOYSTICK_RESOLUTION),
HID_RI_LOGICAL_MAXIMUM(16, JOYSTICK_RESOLUTION),
HID_RI_REPORT_COUNT(8, JOYSTICK_AXES_COUNT),
HID_RI_REPORT_SIZE(8, 0x10),
# endif
HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
# endif