int aa_autoinitkbd(struct aa_context *context, int mode) { int i = 0; int ok = 0; char *t; while ((t = aa_getfirst(&aa_kbdrecommended)) != NULL) { if (!ok) { for (i = 0; aa_kbddrivers[i] != NULL; i++) { if (!strcmp(t, aa_kbddrivers[i]->name) || !strcmp(t, aa_kbddrivers[i]->shortname)) { ok = aa_initkbd(context, aa_kbddrivers[i], mode); break; } } if (aa_kbddrivers[i] == NULL) printf("Driver %s unknown", t); free(t); } } i = 0; if (!ok) while (aa_kbddrivers[i] != NULL) { if (aa_initkbd(context, aa_kbddrivers[i], mode)) { return 1; } i++; } return (ok); }
aa_context *aa_autoinit(__AA_CONST struct aa_hardware_params *params) { aa_context *context = NULL; int i = 0; char *t; while ((t = aa_getfirst(&aa_displayrecommended)) != NULL) { if (context == NULL) { for (i = 0; aa_drivers[i] != NULL; i++) { if (!strcmp(t, aa_drivers[i]->name) || !strcmp(t, aa_drivers[i]->shortname)) { context = aa_init(aa_drivers[i], params, NULL); break; } } if (aa_drivers[i] == NULL) printf("Driver %s unknown", t); free(t); } } i = 0; while (context == NULL) { if (aa_drivers[i] == NULL) return NULL; context = aa_init(aa_drivers[i], params, NULL); i++; } return (context); }
static int preinit(const char *arg) { char * hidis = NULL; struct stat sbuf; int fd, vt, major, minor; FILE * fp; char fname[12]; if(arg) { if (parse_suboptions(arg) != 0) return ENOSYS; } /* initializing of aalib */ hidis=aa_getfirst(&aa_displayrecommended); if ( hidis==NULL ){ /* check /dev/vcsa<vt> */ /* check only, if no driver is explicit set */ fd = dup (fileno (stderr)); fstat (fd, &sbuf); major = sbuf.st_rdev >> 8; vt = minor = sbuf.st_rdev & 0xff; close (fd); sprintf (fname, "/dev/vcsa%2.2i", vt); fp = fopen (fname, "w+"); if (fp==NULL){ fprintf(stderr,"VO: [aa] cannot open %s for writing," "so we'll not use linux driver\n", fname); aa_recommendlowdisplay("linux"); aa_recommendhidisplay("curses"); aa_recommendhidisplay("X11"); }else fclose(fp); } else aa_recommendhidisplay(hidis);