X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=fbset.c;h=3f36a701122898623a7a4637024c8a7938b2b914;hb=e714bce003a1b0e2c49e58fe14af86abc8b31f23;hp=a75e431db011b15e8292bfc7ec3c96020603fa46;hpb=e49d5ecbbe51718fa925b6890a735e5937cc2aa2;p=oweals%2Fbusybox.git diff --git a/fbset.c b/fbset.c index a75e431db..3f36a7011 100644 --- a/fbset.c +++ b/fbset.c @@ -61,28 +61,29 @@ /* #define CMD_XCOMPAT 10 */ #define CMD_ALL 11 #define CMD_INFO 12 +#define CMD_CHANGE 13 -#ifdef BB_FBSET_FANCY -#define CMD_XRES 13 -#define CMD_YRES 14 -#define CMD_VXRES 15 -#define CMD_VYRES 16 -#define CMD_DEPTH 17 -#define CMD_MATCH 18 -#define CMD_PIXCLOCK 19 -#define CMD_LEFT 20 -#define CMD_RIGHT 21 -#define CMD_UPPER 22 -#define CMD_LOWER 23 -#define CMD_HSLEN 24 -#define CMD_VSLEN 25 -#define CMD_CSYNC 26 -#define CMD_GSYNC 27 -#define CMD_EXTSYNC 28 -#define CMD_BCAST 29 -#define CMD_RGBA 30 -#define CMD_STEP 31 -#define CMD_MOVE 32 +#ifdef BB_FEATURE_FBSET_FANCY +#define CMD_XRES 100 +#define CMD_YRES 101 +#define CMD_VXRES 102 +#define CMD_VYRES 103 +#define CMD_DEPTH 104 +#define CMD_MATCH 105 +#define CMD_PIXCLOCK 106 +#define CMD_LEFT 107 +#define CMD_RIGHT 108 +#define CMD_UPPER 109 +#define CMD_LOWER 110 +#define CMD_HSLEN 111 +#define CMD_VSLEN 112 +#define CMD_CSYNC 113 +#define CMD_GSYNC 114 +#define CMD_EXTSYNC 115 +#define CMD_BCAST 116 +#define CMD_RGBA 117 +#define CMD_STEP 118 +#define CMD_MOVE 119 #endif static unsigned int g_options = 0; @@ -104,10 +105,11 @@ struct cmdoptions_t { "-hsync", 1, CMD_HSYNC}, { "-vsync", 1, CMD_VSYNC}, { "-laced", 1, CMD_LACED}, { - "-double", 1, CMD_DOUBLE}, -#ifdef BB_FBSET_FANCY - { - "--help", 0, CMD_HELP}, { + "-double", 1, CMD_DOUBLE}, { + "-help", 0, CMD_HELP}, { + "-n", 0, CMD_CHANGE}, { +#ifdef BB_FEATURE_FBSET_FANCY + "-help", 0, CMD_HELP}, { "-all", 0, CMD_ALL}, { "-xres", 1, CMD_XRES}, { "-yres", 1, CMD_YRES}, { @@ -115,7 +117,7 @@ struct cmdoptions_t { "-vyres", 1, CMD_VYRES}, { "-depth", 1, CMD_DEPTH}, { "-match", 0, CMD_MATCH}, { - "--geometry", 5, CMD_GEOMETRY}, { + "-geometry", 5, CMD_GEOMETRY}, { "-pixclock", 1, CMD_PIXCLOCK}, { "-left", 1, CMD_LEFT}, { "-right", 1, CMD_RIGHT}, { @@ -123,23 +125,22 @@ struct cmdoptions_t { "-lower", 1, CMD_LOWER}, { "-hslen", 1, CMD_HSLEN}, { "-vslen", 1, CMD_VSLEN}, { - "--timings", 7, CMD_TIMING}, { + "-timings", 7, CMD_TIMING}, { "-csync", 1, CMD_CSYNC}, { "-gsync", 1, CMD_GSYNC}, { "-extsync", 1, CMD_EXTSYNC}, { "-bcast", 1, CMD_BCAST}, { "-rgba", 1, CMD_RGBA}, { "-step", 1, CMD_STEP}, { - "-move", 1, CMD_MOVE}, + "-move", 1, CMD_MOVE}, { #endif - { 0, 0, 0} }; static int readmode(struct fb_var_screeninfo *base, const char *fn, const char *mode) { -#ifdef BB_FBSET_READMODE +#ifdef BB_FEATURE_FBSET_READMODE FILE *f; char buf[256]; char *p = buf; @@ -164,8 +165,7 @@ static int readmode(struct fb_var_screeninfo *base, const char *fn, } } #else - fprintf(stderr, - "W: mode reading was disabled on this copy of fbset; ignoring request\n"); + errorMsg( "mode reading not compiled in\n"); #endif return 0; } @@ -199,7 +199,7 @@ static void showmode(struct fb_var_screeninfo *v) v->vsync_len); } printf("\nmode \"%ux%u-%u\"\n", v->xres, v->yres, (int) (vrate + 0.5)); -#ifdef BB_FBSET_FANCY +#ifdef BB_FEATURE_FBSET_FANCY printf("\t# D: %.3f MHz, H: %.3f kHz, V: %.3f Hz\n", drate / 1e6, hrate / 1e3, vrate); #endif @@ -218,21 +218,26 @@ static void showmode(struct fb_var_screeninfo *v) printf("\trgba %u/%u,%u/%u,%u/%u,%u/%u\n", v->red.length, v->red.offset, v->green.length, v->green.offset, v->blue.length, v->blue.offset, v->transp.length, v->transp.offset); - printf("endmode\n"); + printf("endmode\n\n"); } static void fbset_usage(void) { +#ifndef BB_FEATURE_TRIVIAL_HELP int i; +#endif #ifndef STANDALONE fprintf(stderr, "BusyBox v%s (%s) multi-call binary -- GPL2\n\n", BB_VER, BB_BT); #endif fprintf(stderr, "Usage: fbset [options] [mode]\n"); - fprintf(stderr, "\tThe following options are recognized:\n"); +#ifndef BB_FEATURE_TRIVIAL_HELP + fprintf(stderr, "\nShows and modifies frame buffer device settings\n\n"); + fprintf(stderr, "The following options are recognized:\n"); for (i = 0; g_cmdoptions[i].name; i++) - fprintf(stderr, "\t\t%s\n", g_cmdoptions[i].name); + fprintf(stderr, "\t%s\n", g_cmdoptions[i].name); +#endif exit(-1); } @@ -283,7 +288,10 @@ extern int fbset_main(int argc, char **argv) varset.hsync_len = strtoul(argv[6], 0, 0); varset.vsync_len = strtoul(argv[7], 0, 0); break; -#ifdef BB_FBSET_FANCY + case CMD_CHANGE: + g_options |= OPT_CHANGE; + break; +#ifdef BB_FEATURE_FBSET_FANCY case CMD_XRES: varset.xres = strtoul(argv[1], 0, 0); break; @@ -323,7 +331,8 @@ extern int fbset_main(int argc, char **argv) if (ioctl(fh, FBIOPUT_VSCREENINFO, &var)) PERROR("fbset(ioctl)"); showmode(&var); - close(fh); + /* Don't close the file, as exiting will take care of that */ + /* close(fh); */ return (TRUE); }