diff --git a/tools/mkfimg.c b/tools/mkfimg.c index 3055866..f7e0837 100644 --- a/tools/mkfimg.c +++ b/tools/mkfimg.c @@ -1,4 +1,5 @@ #include +#include #include #include @@ -7,9 +8,27 @@ int verbosity; /* --------------------------------------------------------------------- */ -void help(int lj) +#define T_BLACK 0 +#define T_DRAND48 1 +#define T_RGB_0 2 +static int get_type(char *name) { -fimg_print_version(1); + +fprintf(stderr, ">>> %s ( '%s' )\n", __func__, name); + +#define TEST(str) ( ! strcmp(name, str) ) +if TEST("black") return T_BLACK; +if TEST("drand48") return T_DRAND48; + +return -1; +} +/* --------------------------------------------------------------------- */ +static void help(int lj) +{ + +puts("Usage:\n\tmkfimg [options] quux.fimg width height\n"); + +if (verbosity) fimg_print_version(1); exit(0); } @@ -20,32 +39,45 @@ int foo, opt; int width, height; char *fname; float fvalue; +int type = 0; FloatImg fimg; -while ((opt = getopt(argc, argv, "ho:v")) != -1) { +while ((opt = getopt(argc, argv, "ht:v")) != -1) { switch(opt) { case 'h': help(0); break; + case 't': type = get_type(optarg); break; case 'v': verbosity++; break; } } -if (4 != argc) { - fimg_print_version(1); - fprintf(stderr, "Usage:\n\t%s quux.fimg width height\n", argv[0]); +#if DEBUG_LEVEL +fprintf(stderr, "argc %d optind %d\n", argc, optind); +for (foo=0; foo %d\n", foo); exit(1); } -fimg_clear(&fimg); + +switch(type) { + default: + case T_BLACK: fimg_clear(&fimg); break; + case T_DRAND48: fimg_drand48(&fimg, 1.0); break; + } foo = fimg_dump_to_file(&fimg, fname, 0); if (foo) {