aboutsummaryrefslogtreecommitdiff
path: root/quantum/quantum.c
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/quantum.c')
-rw-r--r--quantum/quantum.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/quantum/quantum.c b/quantum/quantum.c
index b5e2d60b9..f9f1ef22d 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -134,6 +134,9 @@ bool process_record_quantum(keyrecord_t *record) {
134 #ifdef UCIS_ENABLE 134 #ifdef UCIS_ENABLE
135 process_ucis(keycode, record) && 135 process_ucis(keycode, record) &&
136 #endif 136 #endif
137 #ifdef PRINTING_ENABLE
138 process_printer(keycode, record) &&
139 #endif
137 #ifdef UNICODEMAP_ENABLE 140 #ifdef UNICODEMAP_ENABLE
138 process_unicode_map(keycode, record) && 141 process_unicode_map(keycode, record) &&
139 #endif 142 #endif
@@ -806,6 +809,46 @@ void backlight_set(uint8_t level)
806#endif // backlight 809#endif // backlight
807 810
808 811
812// Functions for spitting out values
813//
814
815void send_dword(uint32_t number) { // this might not actually work
816 uint16_t word = (number >> 16);
817 send_word(word);
818 send_word(number & 0xFFFFUL);
819}
820
821void send_word(uint16_t number) {
822 uint8_t byte = number >> 8;
823 send_byte(byte);
824 send_byte(number & 0xFF);
825}
826
827void send_byte(uint8_t number) {
828 uint8_t nibble = number >> 4;
829 send_nibble(nibble);
830 send_nibble(number & 0xF);
831}
832
833void send_nibble(uint8_t number) {
834 switch (number) {
835 case 0:
836 register_code(KC_0);
837 unregister_code(KC_0);
838 break;
839 case 1 ... 9:
840 register_code(KC_1 + (number - 1));
841 unregister_code(KC_1 + (number - 1));
842 break;
843 case 0xA ... 0xF:
844 register_code(KC_A + (number - 0xA));
845 unregister_code(KC_A + (number - 0xA));
846 break;
847 }
848}
849
850
851
809 852
810__attribute__ ((weak)) 853__attribute__ ((weak))
811void led_set_user(uint8_t usb_led) { 854void led_set_user(uint8_t usb_led) {