static void keyevent(rfbBool down, rfbKeySym key, rfbClientPtr cl) { int scancode; printf("Got keysym: %04x (down=%d)\n", (unsigned int)key, (int)down); if ((scancode = keysym2scancode(down, key, cl))) { injectKeyEvent(scancode, down); } }
int KeyboardModule::write (EventSource *source, int cmd, BaseInputData *data) { ModulePrivData *d = source->get (getId ()); // KbdPrivData *privData = dynamic_cast<KbdPrivData *> (d); KbdPrivData *privData = (KbdPrivData *) d; if (data == NULL) { LOG_ERROR ("null data"); return -1; } switch (data->type) { case KBD_CMD_KEY_PRESS: // TODO: ASSERT (data->type == INPUT_DATA_TYPE_KEYPRESS) LOG_DEBUG ("key pressing"); injectKeyEvent (privData, (KeyInputData *)data); break; default: LOG_WARN ("invalid command 0x%08x", cmd); break; } return 0; }
static void home_button_clicked() { printf("Home button pressed\n"); injectKeyEvent(KEY_HOME, EV_PRESSED); injectKeyEvent(KEY_HOME, EV_RELEASED); }
static void menu_button_clicked() { printf("Menu button pressed\n"); injectKeyEvent(KEY_LEFTMETA, EV_PRESSED); injectKeyEvent(KEY_LEFTMETA, EV_RELEASED); //0x52 }
static void back_button_clicked() { printf("Back button pressed\n"); injectKeyEvent(KEY_BACKSPACE, EV_PRESSED); injectKeyEvent(KEY_BACKSPACE, EV_RELEASED); }