Magellan Linux

Annotation of /trunk/linterm_tools/fw_builder/bootsplash/fbresolution.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 658 - (hide annotations) (download)
Mon Jan 14 16:57:24 2008 UTC (16 years, 4 months ago) by niro
File MIME type: text/plain
File size: 1725 byte(s)
initial import

1 niro 658 /*
2     * framebuffer tool, inspired from fbi ((c) 1998,99 Gerd Knorr <kraxel@goldbach.in-berlin.de>)
3     *
4     * (c) 2002 Florent Villard (warly@mandrakesoft.com)
5     *
6     */
7    
8     #include <stdio.h>
9     #include <stdlib.h>
10     #include <string.h>
11     #include <fcntl.h>
12     #include <errno.h>
13     #include <getopt.h>
14     #include <sys/ioctl.h>
15     #include <linux/fb.h>
16     #define VERSION "0.1.1"
17    
18     int fd;
19     static int fb;
20     struct fb_var_screeninfo fb_var;
21    
22     struct option fbresol_options[] = {
23     {"version", no_argument, NULL, 'v'}, /* version */
24     {"help", no_argument, NULL, 'h'}, /* help */
25     {0, 0, 0, 0}
26     };
27    
28     void version(void)
29     {
30     fprintf(stderr, "fbresolution version " VERSION
31     " (c) 2002 Florent Villard <warly@mandrakesoft.com>; compiled on %s.\n",
32     __DATE__);
33     }
34    
35     void usage(char *name)
36     {
37     char *h;
38     h = strrchr(name, '/');
39     fprintf(stderr,
40     "\n"
41     "This program output the current framebuffer resolution.\n"
42     "\n"
43     " Usage: %s [ options ]\n"
44     "\n"
45     " --help [-h] Print this text\n"
46     " --version [-v] Show the %s version number\n"
47     "\n" "\n", h ? h + 1 : name, h ? h + 1 : name);
48     }
49    
50     int main(int argc, char *argv[])
51     {
52     int opt_index = 0;
53     int c;
54     for (;;) {
55     c = getopt_long(argc, argv, "vhnd:t:", fbresol_options,
56     &opt_index);
57     if (c == -1)
58     break;
59     switch (c) {
60     case 'v':
61     version();
62     exit(1);
63     break;
64     default:
65     case 'h':
66     usage(argv[0]);
67     exit(1);
68     }
69     }
70     if (optind > argc) {
71     usage(argv[0]);
72     exit(1);
73     }
74     if (-1 == (fb = open("/dev/fb0", O_RDWR /* O_WRONLY */ ))) {
75     fprintf(stderr, "open /dev/fb0: %s\n", strerror(errno));
76     exit(1);
77     }
78     if (-1 == ioctl(fb, FBIOGET_VSCREENINFO, &fb_var)) {
79     perror("ioctl FBIOGET_VSCREENINFO");
80     exit(1);
81     }
82     printf("%dx%d\n", fb_var.xres, fb_var.yres);
83     return 0;
84     }