示例#1
0
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;
  }
}
示例#2
0
文件: cron.c 项目: muccc/matemat
void test(void)
{
#ifdef SYSLOG_SUPPORT
    syslog_send_P(PSTR("cron event matched!"));
#endif
}