Date: Wed, 18 Jul 2012 22:39:45 GMT From: Brooks Davis <brooks@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 214580 for review Message-ID: <201207182239.q6IMdjDh036481@skunkworks.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@214580?ac=10 Change 214580 by brooks@brooks_ecr_current on 2012/07/18 22:39:42 Sort argument processing. Add a vstripes subcommand to draw black and white stripes on the screen. Affected files ... .. //depot/projects/ctsrd/beribsd/src/ctsrd/mtlctl/mtlctl.c#2 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/ctsrd/mtlctl/mtlctl.c#2 (text+ko) ==== @@ -81,10 +81,12 @@ usage(void) { - printf("usage: mtlclt gesture\n"); - printf(" mtlclt gestures\n"); + printf("usage: \n"); printf(" mtlclt fbdump <file>\n"); printf(" mtlclt fbloaddump <file>\n"); + printf(" mtlclt gesture\n"); + printf(" mtlclt gestures\n"); + printf(" mtlclt vstripes <width>\n"); exit(1); } @@ -166,7 +168,7 @@ int main(int argc, char *argv[] __unused) { - int b, fd, i; + int b, fd, i, j; u_int32_t *image; if (argc < 2) @@ -174,12 +176,7 @@ fb_init(); - if (strcmp(argv[1], "gesture") == 0) - print_gesture(); - else if (strcmp(argv[1], "gestures") == 0) - for (;;) - print_gesture(); - else if (strcmp(argv[1], "fbdump") == 0) { + if (strcmp(argv[1], "fbdump") == 0) { if (argc != 3) usage(); image = malloc(fb_width * fb_height * 4); @@ -187,8 +184,7 @@ err(1, "malloc"); if ((fd = open(argv[2], O_WRONLY|O_CREAT|O_TRUNC)) == -1) err(1, "open"); - for (i = 0; i < fb_width * fb_height; i++) - image[i] = pfbp[i]; + fb_save(image); for (i = 0; i < fb_width * fb_height * 4; i += b) { b = write(fd, image, fb_width * fb_height * 4 - i); if (b == -1) @@ -199,7 +195,7 @@ usage(); image = malloc(fb_width * fb_height * 4); if (image == NULL) - err(1, "malloc"); + err(1, "malloc image buf"); if ((fd = open(argv[2], O_RDONLY)) == -1) err(1, "open"); for (i = 0; i < fb_width * fb_height * 4; i += b) { @@ -208,7 +204,34 @@ err(1, "read"); } fb_post(image); - } + } else if (strcmp(argv[1], "gesture") == 0) { + print_gesture(); + } else if (strcmp(argv[1], "gestures") == 0) { + for (;;) + print_gesture(); + } else if (strcmp(argv[1], "vstripes") == 0) { + int width; + char *endp; + if (argc != 3) + usage(); + width = strtoul(argv[2], &endp, 0); + if (*endp != '\0' || width > fb_width) { + warnx("Invalid width '%s'", argv[2]); + usage(); + } + + image = malloc(fb_width * fb_height * 4); + if (image == NULL) + err(1, "malloc image buf"); + for (i = 0; i < fb_width; i++) + for (j = 0; j < fb_height; j++) + image[i + j * fb_width] = + (((i / width) & 0x1) == 1) ? + fb_colour(0xff, 0xff, 0xff) : + fb_colour(0, 0, 0); + fb_post(image); + } else + usage(); return (0); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201207182239.q6IMdjDh036481>
