static void enterLearnMode(void) { int res; brlapi_keyCode_t code; int cmd; char buf[0X100]; fprintf(stderr,"Entering command learn mode\n"); if (brlapi_enterTtyMode(-1, NULL)<0) { brlapi_perror("enterTtyMode"); return; } if (brlapi_writeText(BRLAPI_CURSOR_OFF, "command learn mode")<0) { brlapi_perror("brlapi_writeText"); exit(PROG_EXIT_FATAL); } while ((res = brlapi_readKey(1, &code)) != -1) { fprintf(stderr, "got key %016"BRLAPI_PRIxKEYCODE"\n",code); cmd = cmdBrlapiToBrltty(code); describeCommand(cmd, buf, sizeof(buf), CDO_IncludeName | CDO_IncludeOperand); brlapi_writeText(BRLAPI_CURSOR_OFF, buf); fprintf(stderr, "%s\n", buf); if (cmd==BRL_CMD_LEARN) return; } brlapi_perror("brlapi_readKey"); }
/* Reads a command from the braille keyboard */ static int brl_readCommand(BrailleDisplay *brl, KeyTableCommandContext context) { brlapi_keyCode_t keycode; if (restart) return BRL_CMD_RESTARTBRL; switch (brlapi_readKey(0, &keycode)) { case 0: return EOF; case 1: return cmdBrlapiToBrltty(keycode); default: return BRL_CMD_RESTARTBRL; } }