diff options
Diffstat (limited to 'src/blind-to-text.c')
| -rw-r--r-- | src/blind-to-text.c | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/src/blind-to-text.c b/src/blind-to-text.c index ecae9f2..61bd14d 100644 --- a/src/blind-to-text.c +++ b/src/blind-to-text.c @@ -1,18 +1,11 @@ /* See LICENSE file for copyright and license details. */ +#ifndef TYPE #include "common.h" USAGE("") -#define PROCESS(TYPE, CAST, FMT)\ - do {\ - size_t i;\ - TYPE *p = (TYPE *)(stream->buf);\ - for (i = 0, n /= stream->chan_size; i < n; i++)\ - printf("%"FMT"%c", (CAST)(p[i]), (i + 1) % stream->n_chan ? ' ' : '\n');\ - } while (0) - -static void process_lf(struct stream *stream, size_t n) {PROCESS(double, double, ".25lf");} -static void process_f (struct stream *stream, size_t n) {PROCESS(float, double, ".25lf");} +#define FILE "blind-to-text.c" +#include "define-functions.h" int main(int argc, char *argv[]) @@ -24,16 +17,22 @@ main(int argc, char *argv[]) eopen_stream(&stream, NULL); - if (stream.encoding == DOUBLE) - process = process_lf; - else if (stream.encoding == FLOAT) - process = process_f; - else - eprintf("pixel format %s is not supported, try xyza\n", stream.pixfmt); - + SELECT_PROCESS_FUNCTION(&stream); printf("%zu %zu %zu %s\n", stream.frames, stream.width, stream.height, stream.pixfmt); - process_stream(&stream, process); efshut(stdout, "<stdout>"); return 0; } + +#else + +static void +PROCESS(struct stream *stream, size_t n) +{ + size_t i; + TYPE *p = (TYPE *)(stream->buf); + for (i = 0, n /= stream->chan_size; i < n; i++) + printf("%.25"PRINT_TYPE"%c", (PRINT_CAST)(p[i]), (i + 1) % stream->n_chan ? ' ' : '\n'); +} + +#endif |
