Mercurial > hg > minimon
diff fbt.c @ 3:e8957085fe8a
working
author | Peter Meerwald <pmeerw@pmeerw.net> |
---|---|
date | Sun, 08 May 2011 23:08:45 +0200 |
parents | bac8ed8d6eb9 |
children | 66c77f9ba9b9 |
line wrap: on
line diff
--- a/fbt.c Sun May 08 18:22:22 2011 +0200 +++ b/fbt.c Sun May 08 23:08:45 2011 +0200 @@ -1,13 +1,21 @@ #include <stdlib.h> #include <stdio.h> #include <fcntl.h> +#include <unistd.h> #include <sys/ioctl.h> #include "linux/fb.h" +#include "common.h" + int main(int argc, char *argv[]) { - int fd = open("/dev/fb0", O_RDWR); + if (argc != 2) { + fprintf(stderr, "usage: fbt /dev/fbX\n"); + exit(EXIT_FAILURE); + } + + int fd = open(argv[1], O_RDWR); if (fd < 0) { perror(""); exit(EXIT_FAILURE); @@ -34,5 +42,26 @@ printf("res x %d y %d\n", siv.xres, siv.yres); printf("bpp %d\n", siv.bits_per_pixel); + printf("-------------\n"); + fflush(stdout); + + jpg_buf_t jpg_buf = build_jpg_from_fb(fd, siv.xres, siv.yres); + + close(fd); + + printf("jpg %ld\n", jpg_buf.size); + + FILE *f = fopen("test.jpg", "wb"); + if (!f) { + fprintf(stderr, "fopen failed\n"); + exit(EXIT_FAILURE); + } + + fwrite(jpg_buf.ptr, 1, jpg_buf.size, f); + + fclose(f); + + free(jpg_buf.ptr); + exit(EXIT_SUCCESS); }