1 #include "process_printer.h"
2 #include "action_util.h"
4 bool printing_enabled = false;
5 uint8_t character_shift = 0;
7 void enabled_printing() {
8 printing_enabled = true;
12 void disable_printing() {
13 printing_enabled = false;
16 uint8_t shifted_numbers[10] = {0x21, 0x40, 0x23, 0x24, 0x25, 0x5E, 0x26, 0x2A, 0x28, 0x29};
18 // uint8_t keycode_to_ascii[0xFF][2];
20 // keycode_to_ascii[KC_MINS] = {0x2D, 0x5F};
22 void print_char(char c) {
28 void print_box_string(uint8_t text[]) {
29 uint8_t len = strlen(text);
30 uint8_t out[len * 3 + 8];
32 for (uint8_t i = 0; i < len; i++) {
39 for (uint8_t i = 0; i < len; i++) {
40 out[len + 4 + i] = text[i];
42 out[len * 2 + 4] = 0xB3;
43 out[len * 2 + 5] = '\n';
46 out[len * 2 + 6] = 0xC0;
47 for (uint8_t i = 0; i < len; i++) {
48 out[len * 2 + 7 + i] = 0xC4;
50 out[len * 3 + 7] = 0xD9;
51 out[len * 3 + 8] = '\n';
56 void print_string(char c[]) {
57 for(uint8_t i = 0; i < strlen(c); i++)
61 bool process_printer(uint16_t keycode, keyrecord_t *record) {
62 if (keycode == PRINT_ON) {
66 if (keycode == PRINT_OFF) {
71 if (printing_enabled) {
73 case KC_EXLM ... KC_RPRN:
83 if (record->event.pressed) {
94 if (record->event.pressed) {
95 print_box_string("This is a line of text!");
99 if (record->event.pressed) {
105 if (record->event.pressed) {
111 if (record->event.pressed) {
112 if (character_shift) {
113 print_char(0x41 + (keycode - KC_A));
115 print_char(0x61 + (keycode - KC_A));
121 if (record->event.pressed) {
122 if (character_shift) {
123 print_char(shifted_numbers[keycode - KC_1]);
125 print_char(0x30 + ((keycode - KC_1 + 1) % 10));
131 if (record->event.pressed) {
132 if (character_shift) {
141 if (record->event.pressed) {
142 if (character_shift) {
151 if (record->event.pressed) {
152 if (character_shift) {
161 if (record->event.pressed) {
162 if (character_shift) {
171 if (record->event.pressed) {
172 if (character_shift) {
181 if (record->event.pressed) {
182 if (character_shift) {
191 if (record->event.pressed) {
192 if (character_shift) {
201 if (record->event.pressed) {
202 if (character_shift) {
211 if (record->event.pressed) {
212 if (character_shift) {
221 if (record->event.pressed) {
222 if (character_shift) {
231 if (record->event.pressed) {
232 if (character_shift) {
241 if (record->event.pressed) {
242 if (character_shift) {