aboutsummaryrefslogtreecommitdiffstats
path: root/fb/fbresolution.c
diff options
context:
space:
mode:
Diffstat (limited to 'fb/fbresolution.c')
-rw-r--r--fb/fbresolution.c86
1 files changed, 86 insertions, 0 deletions
diff --git a/fb/fbresolution.c b/fb/fbresolution.c
new file mode 100644
index 0000000..06a6cd9
--- /dev/null
+++ b/fb/fbresolution.c
@@ -0,0 +1,86 @@
+/*
+ * framebuffer tool, inspired from fbi ((c) 1998,99 Gerd Knorr <kraxel@goldbach.in-berlin.de>)
+ *
+ * (c) 2002 Florent Villard (warly@mandrakesoft.com)
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <getopt.h>
+#include <sys/ioctl.h>
+#include <linux/fb.h>
+
+int fd;
+static int fb;
+struct fb_var_screeninfo fb_var;
+
+struct option fbresol_options[] = {
+ {"version", no_argument, NULL, 'v'}, /* version */
+ {"help", no_argument, NULL, 'h'}, /* help */
+ {0,0,0,0}
+};
+
+void
+version(void)
+{
+ fprintf(stderr, "fbresolution version " VERSION
+ " (c) 2002 Florent Villard <warly@mandrakesoft.com>; compiled on %s.\n", __DATE__ );
+}
+
+void
+usage(char *name)
+{
+ char *h;
+ h = strrchr(name, '/');
+ fprintf(stderr,
+ "\n"
+ "This program output the current framebuffer resolution.\n"
+ "\n"
+ " Usage: %s [ options ]\n"
+ "\n"
+ " --help [-h] Print this text\n"
+ " --version [-v] Show the %s version number\n"
+ "\n"
+ "\n"
+ ,h ? h + 1 : name, h ? h + 1 : name);
+}
+
+int
+main(int argc, char *argv[])
+{
+ int opt_index = 0;
+ int c;
+ for (;;) {
+ c = getopt_long(argc, argv, "vhnd:t:", fbresol_options, &opt_index);
+ if (c == -1)
+ break;
+ switch (c) {
+ case 'v':
+ version();
+ exit(1);
+ break;
+ default:
+ case 'h':
+ usage(argv[0]);
+ exit(1);
+ }
+ }
+ if (optind > argc) {
+ usage(argv[0]);
+ exit(1);
+ }
+ if (-1 == (fb = open("/dev/fb0",O_RDWR /* O_WRONLY */))) {
+ fprintf(stderr,"open /dev/fb0: %s\n",strerror(errno));
+ exit(1);
+ }
+ if (-1 == ioctl(fb,FBIOGET_VSCREENINFO,&fb_var)) {
+ perror("ioctl FBIOGET_VSCREENINFO");
+ exit(1);
+ }
+ printf("%dx%d\n",fb_var.xres,fb_var.yres);
+ return 0;
+}