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);
Example #2
0
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;
}
Example #3
0
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);
}