#include #include #include int main() { brlapi_keyCode_t key; char name[BRLAPI_MAXNAMELENGTH+1]; unsigned int x, y; /* Connect to BrlAPI */ if (brlapi_openConnection(NULL, NULL)<0) { brlapi_perror("brlapi_openConnection"); exit(1); } /* Get driver name */ if (brlapi_getDriverName(name, sizeof(name)) < 0) brlapi_perror("brlapi_getDriverName"); else fprintf(stderr, "Driver name: %s\n", name); /* Get display size */ if (brlapi_getDisplaySize(&x, &y) < 0) brlapi_perror("brlapi_getDisplaySize"); else fprintf(stderr, "Braille display has %d line%s of %d column%s\n", y, y>1?"s":"", x, x>1?"s":""); /* Try entering raw mode, immediately go out from raw mode */ fprintf(stderr, "Trying to enter in raw mode... "); if (brlapi_enterRawMode(name) < 0) brlapi_perror("brlapi_enterRawMode"); else { fprintf(stderr, "Ok, leaving raw mode immediately\n"); brlapi_leaveRawMode(); } /* Get tty control */ fprintf(stderr, "Taking control of the tty... "); if (brlapi_enterTtyMode(BRLAPI_TTY_DEFAULT, NULL) >= 0) { fprintf(stderr, "Ok\n"); /* Write something on the display */ fprintf(stderr, "Writing to braille display... "); if (brlapi_writeText(0, "Press a braille key to continue...") >= 0) { fprintf(stderr, "Ok\n"); /* get the keycodes*/ size_t len; brlapi_param_keyCode_t *keys=brlapi_getParameterAlloc(BRLAPI_PARAM_DEVICE_KEY_CODES,0,1,&len); len/=sizeof(*keys); for (int j=0; j 0) { brlapi_expandedKeyCode_t ekey; brlapi_describedKeyCode_t dkey; int i; fprintf(stderr, "got it! (code=%"BRLAPI_PRIxKEYCODE")\n", key); brlapi_expandKeyCode(key, &ekey); fprintf(stderr, "type %u, command %u, argument %u, flags %u\n", ekey.type, ekey.command, ekey.argument, ekey.flags); brlapi_describeKeyCode(key, &dkey); fprintf(stderr, "type %s, command %s, argument %u, flags", dkey.type, dkey.command, dkey.argument); for (i = 0; i < dkey.flags; i++) fprintf(stderr, " %s", dkey.flag[i]); fprintf(stderr, "\n"); } else brlapi_perror("brlapi_readKey"); } else brlapi_perror("brlapi_writeText"); /* Leave tty control */ fprintf(stderr, "Leaving tty... "); if (brlapi_leaveTtyMode() >= 0) fprintf(stderr, "Ok\n"); else brlapi_perror("brlapi_leaveTtyMode"); } else brlapi_perror("brlapi_enterTtyMode"); /* Disconnect from BrlAPI */ brlapi_closeConnection(); return 0; }