~ruther/qmk_firmware

9e77cdf4e66ff1cfdd7effaf77e129bf3ae9a1a5 — Ryan 4 years ago 3f2a030
Bugfix for Joystick and JSON schema (#14295)

M common_features.mk => common_features.mk +13 -9
@@ 698,19 698,23 @@ ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes)
endif

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
    SRC += $(QUANTUM_DIR)/process_keycode/process_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

DIGITIZER_ENABLE ?= no

M docs/feature_joystick.md => docs/feature_joystick.md +2 -3
@@ 2,8 2,6 @@

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.

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`:

```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).

M keyboards/handwired/onekey/keymaps/joystick/rules.mk => keyboards/handwired/onekey/keymaps/joystick/rules.mk +1 -1
@@ 1,1 1,1 @@
JOYSTICK_ENABLE = analog
JOYSTICK_ENABLE = yes