summaryrefslogtreecommitdiffstats
path: root/tmk_core/common
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core/common')
-rw-r--r--tmk_core/common/keyboard.c7
-rw-r--r--tmk_core/common/report.h13
2 files changed, 19 insertions, 1 deletions
diff --git a/tmk_core/common/keyboard.c b/tmk_core/common/keyboard.c
index 714c3d048f..a45af56dfd 100644
--- a/tmk_core/common/keyboard.c
+++ b/tmk_core/common/keyboard.c
@@ -74,6 +74,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifdef MIDI_ENABLE
# include "process_midi.h"
#endif
+#ifdef JOYSTICK_ENABLE
+# include "process_joystick.h"
+#endif
#ifdef HD44780_ENABLE
# include "hd44780.h"
#endif
@@ -420,6 +423,10 @@ MATRIX_LOOP_END:
}
#endif
+#ifdef JOYSTICK_ENABLE
+ joystick_task();
+#endif
+
// update LED
if (led_status != host_keyboard_leds()) {
led_status = host_keyboard_leds();
diff --git a/tmk_core/common/report.h b/tmk_core/common/report.h
index 1b2f13bdde..1aa33c998d 100644
--- a/tmk_core/common/report.h
+++ b/tmk_core/common/report.h
@@ -29,7 +29,8 @@ enum hid_report_ids {
REPORT_ID_MOUSE,
REPORT_ID_SYSTEM,
REPORT_ID_CONSUMER,
- REPORT_ID_NKRO
+ REPORT_ID_NKRO,
+ REPORT_ID_JOYSTICK
};
/* Mouse buttons */
@@ -189,6 +190,16 @@ typedef struct {
int8_t h;
} __attribute__((packed)) report_mouse_t;
+typedef struct {
+#if JOYSTICK_AXES_COUNT > 0
+ int8_t axes[JOYSTICK_AXES_COUNT];
+#endif
+
+#if JOYSTICK_BUTTON_COUNT > 0
+ uint8_t buttons[(JOYSTICK_BUTTON_COUNT - 1) / 8 + 1];
+#endif
+} __attribute__((packed)) joystick_report_t;
+
/* keycode to system usage */
static inline uint16_t KEYCODE2SYSTEM(uint8_t key) {
switch (key) {