diff options
author | Nick Brassel <nick@tzarc.org> | 2022-05-29 07:57:11 +1000 |
---|---|---|
committer | Nick Brassel <nick@tzarc.org> | 2022-05-29 07:57:11 +1000 |
commit | b835171008eaeaa992a1b8e390af8bce6f5f0b8f (patch) | |
tree | de22c239cc47556f8be7538f95f48ad75b86d110 /quantum/process_keycode/process_joystick.c | |
parent | f5d091a9d58c8349437e9d52de87294258cbd256 (diff) | |
parent | 0c8f78020d01ee5c45481d7d93b9b0d9f7b95103 (diff) |
Merge branch 'develop' -- breaking changes 2022-05-28.
Diffstat (limited to 'quantum/process_keycode/process_joystick.c')
-rw-r--r-- | quantum/process_keycode/process_joystick.c | 36 |
1 files changed, 10 insertions, 26 deletions
diff --git a/quantum/process_keycode/process_joystick.c b/quantum/process_keycode/process_joystick.c index 2fb092c573..8c3e71616f 100644 --- a/quantum/process_keycode/process_joystick.c +++ b/quantum/process_keycode/process_joystick.c @@ -6,41 +6,25 @@ #include <string.h> #include <math.h> -bool process_joystick_buttons(uint16_t keycode, keyrecord_t *record); - bool process_joystick(uint16_t keycode, keyrecord_t *record) { - if (process_joystick_buttons(keycode, record) && (joystick_status.status & JS_UPDATED) > 0) { - send_joystick_packet(&joystick_status); - joystick_status.status &= ~JS_UPDATED; + switch (keycode) { + case JS_BUTTON0 ... JS_BUTTON_MAX: + if (record->event.pressed) { + register_joystick_button(keycode - JS_BUTTON0); + } else { + unregister_joystick_button(keycode - JS_BUTTON0); + } + return false; } - return true; } __attribute__((weak)) void joystick_task(void) { - if (process_joystick_analogread() && (joystick_status.status & JS_UPDATED)) { - send_joystick_packet(&joystick_status); - joystick_status.status &= ~JS_UPDATED; + if (process_joystick_analogread()) { + joystick_flush(); } } -bool process_joystick_buttons(uint16_t keycode, keyrecord_t *record) { - if (keycode < JS_BUTTON0 || keycode > JS_BUTTON_MAX) { - return true; - } else { - uint8_t button_idx = (keycode - JS_BUTTON0); - if (record->event.pressed) { - joystick_status.buttons[button_idx / 8] |= 1 << (button_idx % 8); - } else { - joystick_status.buttons[button_idx / 8] &= ~(1 << (button_idx % 8)); - } - - joystick_status.status |= JS_UPDATED; - } - - return true; -} - uint16_t savePinState(pin_t pin) { #ifdef __AVR__ uint8_t pinNumber = pin & 0xF; |