diff options
| author | Mattias Andrée <maandree@kth.se> | 2017-05-10 16:59:26 +0200 |
|---|---|---|
| committer | Mattias Andrée <maandree@kth.se> | 2017-05-10 16:59:26 +0200 |
| commit | 6b998b5ed066aeece1146fe245b35965319b3cbd (patch) | |
| tree | c963b48fbefafcec89a4e4af238869a1cb51148e /src/blind-translate.c | |
| parent | blind-flip is optimal (diff) | |
| download | blind-6b998b5ed066aeece1146fe245b35965319b3cbd.tar.gz blind-6b998b5ed066aeece1146fe245b35965319b3cbd.tar.bz2 blind-6b998b5ed066aeece1146fe245b35965319b3cbd.tar.xz | |
Cleaner code
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'src/blind-translate.c')
| -rw-r--r-- | src/blind-translate.c | 46 |
1 files changed, 20 insertions, 26 deletions
diff --git a/src/blind-translate.c b/src/blind-translate.c index d8f44e2..6b0ebd8 100644 --- a/src/blind-translate.c +++ b/src/blind-translate.c @@ -2,10 +2,7 @@ #include "stream.h" #include "util.h" -#include <inttypes.h> -#include <math.h> #include <string.h> -#include <unistd.h> USAGE("[-wp] translation-stream") @@ -29,25 +26,24 @@ next_pixel(struct stream *stream, size_t *ptr) } static int -process_frame(struct stream *stream, char *buf, size_t n, - size_t above, size_t below, size_t left, size_t right) +process_frame(struct stream *stream, char *buf, size_t above, size_t below, size_t left, size_t right) { #define ZEROES(N) ewritezeroes(STDOUT_FILENO, zeroes, sizeof(zeroes), N, "<stdout>") - size_t i, w = n - left - right; + size_t i, w = stream->row_size - left - right; int first = 1; - if (!eread_row(stream, buf, n)) + if (!eread_row(stream, buf)) return 0; for (i = 0; i < above; i++) - ZEROES(n); + ZEROES(stream->row_size); for (i = 0; i < below; i++, first = 0) - if (!first && !eread_row(stream, buf, n)) + if (!first && !eread_row(stream, buf)) goto eof; for (i = above + below; i < stream->height; i++, first = 0) { - if (!first && !eread_row(stream, buf, n)) + if (!first && !eread_row(stream, buf)) goto eof; ZEROES((size_t)left); ewriteall(STDOUT_FILENO, buf + right, w, "<stdout>"); @@ -55,9 +51,9 @@ process_frame(struct stream *stream, char *buf, size_t n, } for (i = 0; i < below; i++) - ZEROES(n); + ZEROES(stream->row_size); for (i = 0; i < above; i++, first = 0) - if (!first && !eread_row(stream, buf, n)) + if (!first && !eread_row(stream, buf)) goto eof; return 1; @@ -70,16 +66,15 @@ static void process(struct stream *stream, struct stream *trstream) { char *buf; - size_t n, p = 0; + size_t p = 0; double *trans, tmp; ssize_t trx = 0, try = 0; size_t above = 0, below = 0, left = 0, right = 0; memset(zeroes, 0, sizeof(zeroes)); - echeck_frame_size(stream->width, 1, stream->pixel_size, 0, stream->file); - n = stream->width * stream->pixel_size; - buf = emalloc(n); + echeck_dimensions(stream, WIDTH, NULL); + buf = emalloc(stream->row_size); do { if ((trans = next_pixel(trstream, &p))) { @@ -93,10 +88,10 @@ process(struct stream *stream, struct stream *trstream) above = MIN(above, stream->height); below = MIN(below, stream->height); - left = MIN(left, n); - right = MIN(right, n); + left = MIN(left, stream->row_size); + right = MIN(right, stream->row_size); } - } while (process_frame(stream, buf, n, above, below, left, right)); + } while (process_frame(stream, buf, above, below, left, right)); free(buf); } @@ -105,16 +100,15 @@ static void process_wrap(struct stream *stream, struct stream *trstream) { char *buf, *row; - size_t n, rown, p = 0; + size_t p = 0; double *trans, tmp; ssize_t trx = 0, try = 0, py; size_t off = 0, y; - echeck_frame_size(stream->width, stream->height, stream->pixel_size, 0, "<stdin>"); - n = stream->height * (rown = stream->width * stream->pixel_size); - buf = emalloc(n); + echeck_dimensions(stream, WIDTH | HEIGHT, NULL); + buf = emalloc(stream->frame_size); - while (eread_frame(stream, buf, n)) { + while (eread_frame(stream, buf)) { if ((trans = next_pixel(trstream, &p))) { trx = (ssize_t)(tmp = round(invtrans ? -trans[0] : trans[0])); try = (ssize_t)(tmp = round(invtrans ? -trans[1] : trans[1])); @@ -129,8 +123,8 @@ process_wrap(struct stream *stream, struct stream *trstream) py = ((ssize_t)y - try) % (ssize_t)stream->height; if (py < 0) py += (ssize_t)stream->height; - row = buf + (size_t)py * rown; - ewriteall(STDOUT_FILENO, row + off, rown - off, "<stdout>"); + row = buf + (size_t)py * stream->row_size; + ewriteall(STDOUT_FILENO, row + off, stream->row_size - off, "<stdout>"); ewriteall(STDOUT_FILENO, row, off, "<stdout>"); } } |
