static void decode_key(uint8_t keycode) { switch(keycode) { case KEY_ALT: key.alt = 0; break; case KEY_CTRL: key.ctrl = 0; break; case KEY_SHIFT_RIGHT: case KEY_SHIFT_LEFT: key.shift = 0; leds &= ~PS2_CAPS_LOCK_LED; ps2_send_byte(PS2_SET_LED); ps2_send_byte(leds); break; case KEY_LIN: /* The LIN key is also known ans windos key */ key.lin = 0; break; case KEY_NUM_LOCK: /* num lock toggles the num lock flag */ key.num ^= 1; leds ^= PS2_NUM_LOCK_LED; ps2_send_byte(PS2_SET_LED); ps2_send_byte(leds); key.lin = 0; break; case KEY_CAPS_LOCK: key.shift = 1; leds |= PS2_CAPS_LOCK_LED; ps2_send_byte(PS2_SET_LED); ps2_send_byte(leds); break; default: #ifdef SYSLOG_SUPPORT /* For debugging purposes we send the keycode via syslog */ if (key.extended && keycode == 0x6c) syslog_send_P(PSTR("HOME")); syslog_sendf("Key: %x %c", data, key.shift ? pgm_read_byte(&keycodes_shift[keycode]) : pgm_read_byte(&keycodes[keycode])); #endif break; } }
void test(void) { #ifdef SYSLOG_SUPPORT syslog_send_P(PSTR("cron event matched!")); #endif }