From f364eda0a498f6428a850b462c5d4552fa39a25a Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Tue, 22 Nov 2016 21:50:59 +0000 Subject: [PATCH] Revert "Simplify repetition FEC code handling." This reverts commit 96fd4697dda551c2f8e4de0feeae52a2e310d933. --- YSFPayload.cpp | 50 ++++++++++++++++++++++---------------------------- 1 file changed, 22 insertions(+), 28 deletions(-) diff --git a/YSFPayload.cpp b/YSFPayload.cpp index e6f4238..c74d7d6 100644 --- a/YSFPayload.cpp +++ b/YSFPayload.cpp @@ -417,7 +417,7 @@ unsigned int CYSFPayload::processVDMode2AudioBlock(unsigned char* data) // Deinterleave for (unsigned int i = 0U; i < 104U; i++) { unsigned int n = INTERLEAVE_TABLE_26_4[i]; - bool s = READ_BIT1(data, n) != 0x00U; + bool s = READ_BIT1(data, n); WRITE_BIT1(vch, i, s); } @@ -426,35 +426,29 @@ unsigned int CYSFPayload::processVDMode2AudioBlock(unsigned char* data) vch[i] ^= WHITENING_DATA[i]; for (unsigned int i = 0U; i < 81U; i += 3U) { - unsigned int n1 = i + 0U; - unsigned int n2 = i + 1U; - unsigned int n3 = i + 2U; + unsigned int n = i; + bool bit1 = READ_BIT1(vch, n); + n++; + bool bit2 = READ_BIT1(vch, n); + n++; + bool bit3 = READ_BIT1(vch, n); - unsigned char code = READ_BIT1(vch, n1) ? 1U : 0U + - READ_BIT1(vch, n2) ? 2U : 0U + - READ_BIT1(vch, n3) ? 4U : 0U; - - switch (code) { - case 3U: - case 5U: - case 6U: - WRITE_BIT1(vch, n1, true); - WRITE_BIT1(vch, n2, true); - WRITE_BIT1(vch, n3, true); + if ((bit1 && bit2 && !bit3) || (bit1 && !bit2 && bit3) || (!bit1 && bit2 && bit3)) { + unsigned int n = i; + WRITE_BIT1(vch, n, true); + n++; + WRITE_BIT1(vch, n, true); + n++; + WRITE_BIT1(vch, n, true); errors++; - break; - case 1U: - case 2U: - case 4U: - WRITE_BIT1(vch, n1, false); - WRITE_BIT1(vch, n2, false); - WRITE_BIT1(vch, n3, false); + } else if ((!bit1 && !bit2 && bit3) || (!bit1 && bit2 && !bit3) || (bit1 && !bit2 && !bit3)) { + unsigned int n = i; + WRITE_BIT1(vch, n, false); + n++; + WRITE_BIT1(vch, n, false); + n++; + WRITE_BIT1(vch, n, false); errors++; - break; - // case 0U: - // case 7U: - default: - break; } } @@ -465,7 +459,7 @@ unsigned int CYSFPayload::processVDMode2AudioBlock(unsigned char* data) // Interleave for (unsigned int i = 0U; i < 104U; i++) { unsigned int n = INTERLEAVE_TABLE_26_4[i]; - bool s = READ_BIT1(vch, i) != 0x00U; + bool s = READ_BIT1(vch, i); WRITE_BIT1(data, n, s); }