Browse Source

Bugfix for Joystick and JSON schema (#14295)

Ryan 3 years ago
parent
commit
9e77cdf4e6

+ 13 - 9
common_features.mk

@@ -698,19 +698,23 @@ ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes)
 endif
 endif
 
 
 JOYSTICK_ENABLE ?= no
 JOYSTICK_ENABLE ?= no
-ifneq ($(strip $(JOYSTICK_ENABLE)), no)
+VALID_JOYSTICK_TYPES := analog digital
+JOYSTICK_DRIVER ?= analog
+ifeq ($(strip $(JOYSTICK_ENABLE)), yes)
+    ifeq ($(filter $(JOYSTICK_DRIVER),$(VALID_JOYSTICK_TYPES)),)
+        $(error "$(JOYSTICK_DRIVER)" is not a valid joystick driver)
+    endif
     OPT_DEFS += -DJOYSTICK_ENABLE
     OPT_DEFS += -DJOYSTICK_ENABLE
     SRC += $(QUANTUM_DIR)/process_keycode/process_joystick.c
     SRC += $(QUANTUM_DIR)/process_keycode/process_joystick.c
     SRC += $(QUANTUM_DIR)/joystick.c
     SRC += $(QUANTUM_DIR)/joystick.c
-endif
-
-ifeq ($(strip $(JOYSTICK_ENABLE)), analog)
-    OPT_DEFS += -DANALOG_JOYSTICK_ENABLE
-    SRC += analog.c
-endif
 
 
-ifeq ($(strip $(JOYSTICK_ENABLE)), digital)
-    OPT_DEFS += -DDIGITAL_JOYSTICK_ENABLE
+    ifeq ($(strip $(JOYSTICK_DRIVER)), analog)
+        OPT_DEFS += -DANALOG_JOYSTICK_ENABLE
+        SRC += analog.c
+    endif
+    ifeq ($(strip $(JOYSTICK_DRIVER)), digital)
+        OPT_DEFS += -DDIGITAL_JOYSTICK_ENABLE
+    endif
 endif
 endif
 
 
 DIGITIZER_ENABLE ?= no
 DIGITIZER_ENABLE ?= no

+ 2 - 3
docs/feature_joystick.md

@@ -2,8 +2,6 @@
 
 
 The keyboard can be made to be recognized as a joystick HID device by the operating system.
 The keyboard can be made to be recognized as a joystick HID device by the operating system.
 
 
-This is enabled by adding `JOYSTICK_ENABLE` to `rules.mk`. You can set this value to `analog`, `digital`, or `no`.
-
 !> Joystick support is not currently available on V-USB devices.
 !> Joystick support is not currently available on V-USB devices.
 
 
 The joystick feature provides two services:
 The joystick feature provides two services:
@@ -18,7 +16,8 @@ or send gamepad reports based on values computed by the keyboard.
 To use analog input you must first enable it in `rules.mk`:
 To use analog input you must first enable it in `rules.mk`:
 
 
 ```makefile
 ```makefile
-JOYSTICK_ENABLE = analog
+JOYSTICK_ENABLE = yes
+JOYSTICK_DRIVER = analog # or 'digital'
 ```
 ```
 
 
 An analog device such as a potentiometer found on a gamepad's analog axes is based on a [voltage divider](https://en.wikipedia.org/wiki/Voltage_divider).
 An analog device such as a potentiometer found on a gamepad's analog axes is based on a [voltage divider](https://en.wikipedia.org/wiki/Voltage_divider).

+ 1 - 1
keyboards/handwired/onekey/keymaps/joystick/rules.mk

@@ -1 +1 @@
-JOYSTICK_ENABLE = analog
+JOYSTICK_ENABLE = yes