From c216ac3049102422a41ba2c9476b0dbf4f3e4034 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sun, 16 Jul 2017 00:59:42 +0200 Subject: Use #include instead of #define MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/blind-matrix-shear.c | 88 ++++++++++++++++++++++++++---------------------- 1 file changed, 47 insertions(+), 41 deletions(-) (limited to 'src/blind-matrix-shear.c') diff --git a/src/blind-matrix-shear.c b/src/blind-matrix-shear.c index e6a7d2d..d8ab02c 100644 --- a/src/blind-matrix-shear.c +++ b/src/blind-matrix-shear.c @@ -1,52 +1,15 @@ /* See LICENSE file for copyright and license details. */ +#ifndef TYPE #include "common.h" -USAGE("[-a [-d]][c]") +USAGE("[-a [-d]] [-c]") static int by_angle = 0; static int per_channel = 0; static int in_degrees = 0; -#define PROCESS(TYPE)\ - do {\ - typedef TYPE pixel_t[4];\ - pixel_t matrix[9];\ - pixel_t buf[2];\ - TYPE conv = in_degrees ? (TYPE)(M_PI / 180.) : 1;\ - size_t i;\ - \ - for (i = 0; i < stream->n_chan; i++) {\ - matrix[0][i] = 1, matrix[1][i] = 0, matrix[2][i] = 0;\ - matrix[3][i] = 0, matrix[4][i] = 1, matrix[5][i] = 0;\ - matrix[6][i] = 0, matrix[7][i] = 0, matrix[8][i] = 1;\ - }\ - \ - while (eread_frame(stream, buf)) {\ - if (by_angle) {\ - for (i = !per_channel; i < (per_channel ? stream->n_chan : 2); i++) {\ - buf[0][i] = tan(buf[0][i] * conv);\ - buf[1][i] = tan(buf[1][i] * conv);\ - }\ - }\ - if (per_channel) {\ - for (i = 0; i < stream->n_chan; i++) {\ - matrix[1][i] = buf[0][i];\ - matrix[3][i] = buf[1][i];\ - }\ - } else {\ - buf[0][1] *= buf[0][3];\ - buf[1][1] *= buf[1][3];\ - for (i = 0; i < stream->n_chan; i++) {\ - matrix[1][i] = buf[0][1];\ - matrix[3][i] = buf[1][1];\ - }\ - }\ - ewriteall(STDOUT_FILENO, matrix, sizeof(matrix), "");\ - }\ - } while (0) - -static void process_lf(struct stream *stream) { PROCESS(double); } -static void process_f(struct stream *stream) { PROCESS(float); } +#define FILE "blind-matrix-shear.c" +#include "define-functions.h" int main(int argc, char *argv[]) @@ -91,3 +54,46 @@ main(int argc, char *argv[]) process(&stream); return 0; } + +#else + +static void +PROCESS(struct stream *stream) +{ + typedef TYPE pixel_t[4]; + pixel_t matrix[9]; + pixel_t buf[2]; + TYPE conv = in_degrees ? (TYPE)(M_PI / 180.) : 1; + size_t i; + + for (i = 0; i < stream->n_chan; i++) { + matrix[0][i] = 1, matrix[1][i] = 0, matrix[2][i] = 0; + matrix[3][i] = 0, matrix[4][i] = 1, matrix[5][i] = 0; + matrix[6][i] = 0, matrix[7][i] = 0, matrix[8][i] = 1; + } + + while (eread_frame(stream, buf)) { + if (by_angle) { + for (i = !per_channel; i < (per_channel ? stream->n_chan : 2); i++) { + buf[0][i] = tan(buf[0][i] * conv); + buf[1][i] = tan(buf[1][i] * conv); + } + } + if (per_channel) { + for (i = 0; i < stream->n_chan; i++) { + matrix[1][i] = buf[0][i]; + matrix[3][i] = buf[1][i]; + } + } else { + buf[0][1] *= buf[0][3]; + buf[1][1] *= buf[1][3]; + for (i = 0; i < stream->n_chan; i++) { + matrix[1][i] = buf[0][1]; + matrix[3][i] = buf[1][1]; + } + } + ewriteall(STDOUT_FILENO, matrix, sizeof(matrix), ""); + } +} + +#endif -- cgit v1.2.3-70-g09d2