X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=tmk_core%2Fcommon%2Fkeyboard.c;h=6f659b2440a9f9e29c8f325c440f31145bbf2668;hb=84879f28a3e9e61053f7db37724b23bb32fbb0b4;hp=7653507928bcc57d0cebed49015f8f86275182bc;hpb=246d2583ff5ceacdfcd877ac1b29762773dade0b;p=qmk_firmware.git
diff --git a/tmk_core/common/keyboard.c b/tmk_core/common/keyboard.c
index 765350792..6f659b244 100644
--- a/tmk_core/common/keyboard.c
+++ b/tmk_core/common/keyboard.c
@@ -14,6 +14,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
+
#include
#include "keyboard.h"
#include "matrix.h"
@@ -50,43 +51,122 @@ along with this program. If not, see .
#ifdef RGBLIGHT_ENABLE
# include "rgblight.h"
#endif
+#ifdef STENO_ENABLE
+# include "process_steno.h"
+#endif
+#ifdef FAUXCLICKY_ENABLE
+# include "fauxclicky.h"
+#endif
#ifdef SERIAL_LINK_ENABLE
# include "serial_link/system/serial_link.h"
#endif
#ifdef VISUALIZER_ENABLE
# include "visualizer/visualizer.h"
#endif
+#ifdef POINTING_DEVICE_ENABLE
+# include "pointing_device.h"
+#endif
+#ifdef MIDI_ENABLE
+# include "process_midi.h"
+#endif
+#ifdef HD44780_ENABLE
+# include "hd44780.h"
+#endif
+#ifdef QWIIC_ENABLE
+# include "qwiic.h"
+#endif
+#ifdef MATRIX_HAS_GHOST
+extern const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
+static matrix_row_t get_real_keys(uint8_t row, matrix_row_t rowdata){
+ matrix_row_t out = 0;
+ for (uint8_t col = 0; col < MATRIX_COLS; col++) {
+ //read each key in the row data and check if the keymap defines it as a real key
+ if (pgm_read_byte(&keymaps[0][row][col]) && (rowdata & (1<= QMK_KEYS_PER_SCAN)
+#endif
+ // process a key per task call
+ goto MATRIX_LOOP_END;
+ }
}
}
}
}
// call with pseudo tick event when no real key event.
+#ifdef QMK_KEYS_PER_SCAN
+ // we can get here with some keys processed now.
+ if (!keys_processed)
+#endif
action_exec(TICK);
MATRIX_LOOP_END:
+#ifdef QWIIC_ENABLE
+ qwiic_task();
+#endif
+
#ifdef MOUSEKEY_ENABLE
// mousekey repeat & acceleration
mousekey_task();
@@ -191,6 +305,14 @@ MATRIX_LOOP_END:
visualizer_update(default_layer_state, layer_state, visualizer_get_mods(), host_keyboard_leds());
#endif
+#ifdef POINTING_DEVICE_ENABLE
+ pointing_device_task();
+#endif
+
+#ifdef MIDI_ENABLE
+ midi_task();
+#endif
+
// update LED
if (led_status != host_keyboard_leds()) {
led_status = host_keyboard_leds();
@@ -198,6 +320,10 @@ MATRIX_LOOP_END:
}
}
+/** \brief keyboard set leds
+ *
+ * FIXME: needs doc
+ */
void keyboard_set_leds(uint8_t leds)
{
if (debug_keyboard) { debug("keyboard_set_led: "); debug_hex8(leds); debug("\n"); }