mirror of
git://projects.qi-hardware.com/ben-blinkenlights.git
synced 2024-11-23 22:30:37 +02:00
ubb-vga.c (list_modes, usage, main): new option -l to list available modes
This commit is contained in:
parent
b184fbbe74
commit
4450a30456
@ -415,15 +415,36 @@ static void session(void (*gen)(void **fb, int xres, int yres), int frames)
|
||||
}
|
||||
|
||||
|
||||
static void list_modes(void)
|
||||
{
|
||||
const struct mode *m;
|
||||
|
||||
for (m = mode_db; m->name; m++) {
|
||||
printf("\"%s\", %dx%d:\n", m->name, m->xres, m->yres);
|
||||
printf("\t336/%d = %5.2f MHz\n",
|
||||
m->clkdiv+1, 336.0/(m->clkdiv+1));
|
||||
printf("\tH: %4.2f+...+%4.2f = %5.2f us\n",
|
||||
CYCLES(m->hsync_cycles), CYCLES(m->hback_cycles),
|
||||
CYCLES(m->line_cycles));
|
||||
printf("\tV: %d+%d+%d+%d lines, %5.2f Hz\n",
|
||||
m->vsync_lines, m->vfront_lines, m->yres, m->vback_lines,
|
||||
112000000.0/m->line_cycles/
|
||||
(m->vsync_lines+m->vfront_lines+m->yres+m->vback_lines));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void usage(const char *name)
|
||||
{
|
||||
fprintf(stderr,
|
||||
"usage: %s [-t] [-r resolution] frames [file]\n\n"
|
||||
"usage: %s [-t] [-r resolution] [frames [file]]\n"
|
||||
" %s -l\n\n"
|
||||
" frames number of frames to display\n"
|
||||
" file PPM file\n\n"
|
||||
" -l list available modes\n"
|
||||
" -m mode select the display mode, default \"%s\"\n"
|
||||
" -t generate a test image\n"
|
||||
, name, mode_db[0].name);
|
||||
, name, name, mode_db[0].name);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -434,8 +455,11 @@ int main(int argc, char *const *argv)
|
||||
int frames = 0;
|
||||
int c;
|
||||
|
||||
while ((c = getopt(argc, argv, "m:t")) != EOF)
|
||||
while ((c = getopt(argc, argv, "lm:t")) != EOF)
|
||||
switch (c) {
|
||||
case 'l':
|
||||
list_modes();
|
||||
exit(0);
|
||||
case 'm':
|
||||
for (mode = mode_db; mode->name; mode++)
|
||||
if (!strcmp(mode->name, optarg))
|
||||
@ -466,12 +490,6 @@ int main(int argc, char *const *argv)
|
||||
usage(*argv);
|
||||
}
|
||||
|
||||
#if 0
|
||||
printf("V: %d+%d+%d+%d\n", mode->vsync_lines, mode->vfront_lines,
|
||||
mode->yres, mode->vback_lines);
|
||||
printf("H: %4.1f+?+?+%4.1f (%4.1f)\n", CYCLES(mode->hsync_cycles),
|
||||
CYCLES(mode->hback_cycles), CYCLES(mode->line_cycles));
|
||||
#endif
|
||||
setup();
|
||||
session(gen, frames);
|
||||
cleanup();
|
||||
|
Loading…
Reference in New Issue
Block a user