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);
static gboolean gst_aasink_open (GstAASink * aasink) { if (!aasink->context) { aa_recommendhidisplay (aa_drivers[aasink->aa_driver]->shortname); aasink->context = aa_autoinit (&aasink->ascii_surf); if (aasink->context == NULL) { GST_ELEMENT_ERROR (GST_ELEMENT (aasink), LIBRARY, TOO_LAZY, (NULL), ("error opening aalib context")); return FALSE; } aa_autoinitkbd (aasink->context, 0); aa_resizehandler (aasink->context, (void *) aa_resize); } return TRUE; }
int aa_parseoptions(struct aa_hardware_params *p, aa_renderparams * r, int *argc, char **argv) { int i, y; int supported; if (!inparse) parseenv(p, r); if (argc == NULL || argv == NULL) return 1; supported = p != NULL ? p->supported : aa_defparams.supported; if (p == NULL) p = &aa_defparams; if (r == NULL) r = &aa_defrenderparams; for (i = 1; i < *argc; i++) { if (strcmp(argv[i], "-font") == 0) { aa_remove(i, argc, argv); if (*argc == i) { fprintf(stderr, "font name expected\n"); return (0); } for (y = 0; aa_fonts[y] != NULL; y++) { if (!strcmp(argv[i], aa_fonts[y]->name) || !strcmp(argv[i], aa_fonts[y]->shortname)) { p->font = aa_fonts[y]; aa_remove(i, argc, argv); break; } } if (aa_fonts[i] == NULL) { fprintf(stderr, "font name expected\n"); return (0); } i--; } else if (strcmp(argv[i], "-normal") == 0) { aa_remove(i, argc, argv); i--; supported |= AA_NORMAL_MASK; p->supported = supported; } else if (strcmp(argv[i], "-nonormal") == 0) { aa_remove(i, argc, argv); i--; supported &= ~AA_NORMAL_MASK; p->supported = supported; } else if (strcmp(argv[i], "-bold") == 0) { aa_remove(i, argc, argv); i--; supported |= AA_BOLD_MASK; p->supported = supported; } else if (strcmp(argv[i], "-nobold") == 0) { aa_remove(i, argc, argv); i--; supported &= ~AA_BOLD_MASK; p->supported = supported; } else if (strcmp(argv[i], "-boldfont") == 0) { aa_remove(i, argc, argv); i--; supported |= AA_BOLDFONT_MASK; p->supported = supported; } else if (strcmp(argv[i], "-noboldfont") == 0) { aa_remove(i, argc, argv); i--; supported &= ~AA_BOLDFONT_MASK; p->supported = supported; } else if (strcmp(argv[i], "-dim") == 0) { aa_remove(i, argc, argv); i--; supported |= AA_DIM_MASK; p->supported = supported; } else if (strcmp(argv[i], "-nodim") == 0) { aa_remove(i, argc, argv); i--; supported &= ~AA_DIM_MASK; p->supported = supported; } else if (strcmp(argv[i], "-reverse") == 0) { aa_remove(i, argc, argv); i--; supported |= AA_REVERSE_MASK; p->supported = supported; } else if (strcmp(argv[i], "-extended") == 0) { aa_remove(i, argc, argv); i--; supported |= AA_EXTENDED; p->supported = supported; } else if (strcmp(argv[i], "-eight") == 0) { aa_remove(i, argc, argv); i--; supported |= AA_EIGHT; p->supported = supported; } else if (strcmp(argv[i], "-noreverse") == 0) { aa_remove(i, argc, argv); i--; supported &= ~AA_REVERSE_MASK; p->supported = supported; } else if (strcmp(argv[i], "-inverse") == 0) { aa_remove(i, argc, argv); i--; r->inversion = 1; } else if (strcmp(argv[i], "-noinverse") == 0) { aa_remove(i, argc, argv); i--; r->inversion = 0; } else if (strcmp(argv[i], "-nodither") == 0) { aa_remove(i, argc, argv); i--; r->dither = AA_NONE; } else if (strcmp(argv[i], "-floyd_steinberg") == 0) { aa_remove(i, argc, argv); i--; r->dither = AA_FLOYD_S; } else if (strcmp(argv[i], "-error_distribution") == 0) { aa_remove(i, argc, argv); i--; r->dither = AA_ERRORDISTRIB; } else if (strcmp(argv[i], "-random") == 0) { aa_remove(i, argc, argv); if (*argc == i) { fprintf(stderr, "Random dithering value expected\n"); return (0); } r->randomval = atol(argv[i]); aa_remove(i, argc, argv); i--; } else if (strcmp(argv[i], "-bright") == 0) { aa_remove(i, argc, argv); if (*argc == i) { fprintf(stderr, "Bright value expected(0-255)\n"); return (0); } r->bright = atol(argv[i]); aa_remove(i, argc, argv); i--; } else if (strcmp(argv[i], "-contrast") == 0) { aa_remove(i, argc, argv); if (*argc == i) { fprintf(stderr, "Contrast value expected(0-255)\n"); return (0); } r->contrast = atol(argv[i]); aa_remove(i, argc, argv); i--; } else if (strcmp(argv[i], "-width") == 0) { aa_remove(i, argc, argv); if (*argc == i) { fprintf(stderr, "width expected\n"); return (0); } p->width = atol(argv[i]); aa_remove(i, argc, argv); i--; } else if (strcmp(argv[i], "-recwidth") == 0) { aa_remove(i, argc, argv); if (*argc == i) { fprintf(stderr, "width expected\n"); return (0); } p->recwidth = atol(argv[i]); aa_remove(i, argc, argv); i--; } else if (strcmp(argv[i], "-minwidth") == 0) { aa_remove(i, argc, argv); if (*argc == i) { fprintf(stderr, "width expected\n"); return (0); } p->minwidth = atol(argv[i]); aa_remove(i, argc, argv); i--; } else if (strcmp(argv[i], "-maxwidth") == 0) { aa_remove(i, argc, argv); if (*argc == i) { fprintf(stderr, "width expected\n"); return (0); } p->maxwidth = atol(argv[i]); aa_remove(i, argc, argv); i--; } else if (strcmp(argv[i], "-height") == 0) { aa_remove(i, argc, argv); if (*argc == i) { fprintf(stderr, "height expected\n"); return (0); } p->height = atol(argv[i]); aa_remove(i, argc, argv); i--; } else if (strcmp(argv[i], "-recheight") == 0) { aa_remove(i, argc, argv); if (*argc == i) { fprintf(stderr, "height expected\n"); return (0); } p->recheight = atol(argv[i]); aa_remove(i, argc, argv); i--; } else if (strcmp(argv[i], "-minheight") == 0) { aa_remove(i, argc, argv); if (*argc == i) { fprintf(stderr, "height expected\n"); return (0); } p->minheight = atol(argv[i]); aa_remove(i, argc, argv); i--; } else if (strcmp(argv[i], "-maxheight") == 0) { aa_remove(i, argc, argv); if (*argc == i) { fprintf(stderr, "height expected\n"); return (0); } p->maxheight = atol(argv[i]); aa_remove(i, argc, argv); i--; } else if (strcmp(argv[i], "-gamma") == 0) { aa_remove(i, argc, argv); if (*argc == i) { fprintf(stderr, "Gamma value expected\n"); return (0); } r->gamma = atof(argv[i]); aa_remove(i, argc, argv); i--; } else if (strcmp(argv[i], "-dimmul") == 0) { aa_remove(i, argc, argv); if (*argc == i) { fprintf(stderr, "Dimmul value expected\n"); return (0); } p->dimmul = atof(argv[i]); aa_remove(i, argc, argv); i--; } else if (strcmp(argv[i], "-boldmul") == 0) { aa_remove(i, argc, argv); if (*argc == i) { fprintf(stderr, "Dimmul value expected\n"); return (0); } p->boldmul = atof(argv[i]); aa_remove(i, argc, argv); i--; } else if (strcmp(argv[i], "-driver") == 0) { aa_remove(i, argc, argv); if (*argc == i) { fprintf(stderr, "Driver name expected\n"); return (0); } aa_recommendhidisplay(argv[i]); aa_remove(i, argc, argv); i--; } else if (strcmp(argv[i], "-kbddriver") == 0) { aa_remove(i, argc, argv); if (*argc == i) { fprintf(stderr, "Driver name expected\n"); return (0); } aa_recommendhikbd(argv[i]); aa_remove(i, argc, argv); i--; } else if (strcmp(argv[i], "-mousedriver") == 0) { aa_remove(i, argc, argv); if (*argc == i) { fprintf(stderr, "Driver name expected\n"); return (0); } aa_recommendhimouse(argv[i]); aa_remove(i, argc, argv); i--; } } return (1); }