From b7342465e3c6f3626c04143bda12231a2d59927a Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Wed, 16 Dec 2015 15:53:45 +0100 Subject: m + allow less/no parity MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/send.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'src/send.c') diff --git a/src/send.c b/src/send.c index e2a7127..3726335 100644 --- a/src/send.c +++ b/src/send.c @@ -177,6 +177,20 @@ static int send_byte(int c) */ static int send_byte_with_ecc(int c) { +#if PARITY < 2 + if (send_byte(c)) + return -1; +# if PARITY == 1 + if (send_byte(c)) + return -1; +# endif +# if USE_EXTRA_PARITY == 1 + if (send_byte(c)) + return -1; +# endif + return 0; + +#else static int data[(1 << PARITY) - PARITY - 1]; static int ptr = 0; static int code[(1 << PARITY) - 1 + USE_EXTRA_PARITY]; @@ -209,10 +223,10 @@ static int send_byte_with_ecc(int c) code[i - 1] = data[j]; j++; } -#ifdef USE_EXTRA_PARITY +# if USE_EXTRA_PARITY == 1 for (i = 0; i < sizeof(data) / sizeof(*data); i++) code[(1 << PARITY) - 1] ^= data[i]; -#endif +# endif /* Transmit. */ for (i = 0; i < sizeof(code) / sizeof(*code); i++) @@ -220,6 +234,7 @@ static int send_byte_with_ecc(int c) return -1; return 0; +#endif } -- cgit v1.2.3-70-g09d2