1
0
Fork 0

Joystick feature updates (#16732)

* Joystick feature updates

* Move new functions to joystick.h

* Docs
This commit is contained in:
Ryan 2022-03-27 05:38:09 +11:00 committed by GitHub
parent 71ffb41c9b
commit c05e8afe45
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 52 additions and 45 deletions

View file

@ -1,13 +1,38 @@
#include "joystick.h"
joystick_t joystick_status = {.buttons = {0},
.axes =
{
// clang-format off
joystick_t joystick_status = {
.buttons = {0},
.axes = {
#if JOYSTICK_AXES_COUNT > 0
0
0
#endif
},
.status = 0};
},
.status = 0
};
// clang-format on
// array defining the reading of analog values for each axis
__attribute__((weak)) joystick_config_t joystick_axes[JOYSTICK_AXES_COUNT] = {};
// to be implemented in the hid protocol library
void send_joystick_packet(joystick_t *joystick);
void joystick_flush(void) {
if ((joystick_status.status & JS_UPDATED) > 0) {
send_joystick_packet(&joystick_status);
joystick_status.status &= ~JS_UPDATED;
}
}
void register_joystick_button(uint8_t button) {
joystick_status.buttons[button / 8] |= 1 << (button % 8);
joystick_status.status |= JS_UPDATED;
joystick_flush();
}
void unregister_joystick_button(uint8_t button) {
joystick_status.buttons[button / 8] &= ~(1 << (button % 8));
joystick_status.status |= JS_UPDATED;
joystick_flush();
}