From 33d8ee70d982fe8eed103f1bff356860617d3ea9 Mon Sep 17 00:00:00 2001 From: ilyacodes Date: Sat, 13 Apr 2024 17:15:44 -0400 Subject: [PATCH] EDACS: compute AFS masks using math, not copy/paste --- src/edacs-fme.c | 34 ++++------------------------------ 1 file changed, 4 insertions(+), 30 deletions(-) diff --git a/src/edacs-fme.c b/src/edacs-fme.c index 880f2de..c7d42de 100644 --- a/src/edacs-fme.c +++ b/src/edacs-fme.c @@ -467,36 +467,10 @@ void edacs(dsd_opts * opts, dsd_state * state) state->edacs_a_shift = state->edacs_f_bits + state->edacs_s_bits; state->edacs_f_shift = state->edacs_s_bits; - //calculate masks via overkill copy and paste - if (state->edacs_a_bits == 1) state->edacs_a_mask = 0x1; - if (state->edacs_a_bits == 2) state->edacs_a_mask = 0x3; - if (state->edacs_a_bits == 3) state->edacs_a_mask = 0x7; - if (state->edacs_a_bits == 4) state->edacs_a_mask = 0xF; - if (state->edacs_a_bits == 5) state->edacs_a_mask = 0x1F; - if (state->edacs_a_bits == 6) state->edacs_a_mask = 0x3F; - if (state->edacs_a_bits == 7) state->edacs_a_mask = 0x7F; - if (state->edacs_a_bits == 8) state->edacs_a_mask = 0xFF; - if (state->edacs_a_bits == 9) state->edacs_a_mask = 0x1FF; - - if (state->edacs_f_bits == 1) state->edacs_f_mask = 0x1; - if (state->edacs_f_bits == 2) state->edacs_f_mask = 0x3; - if (state->edacs_f_bits == 3) state->edacs_f_mask = 0x7; - if (state->edacs_f_bits == 4) state->edacs_f_mask = 0xF; - if (state->edacs_f_bits == 5) state->edacs_f_mask = 0x1F; - if (state->edacs_f_bits == 6) state->edacs_f_mask = 0x3F; - if (state->edacs_f_bits == 7) state->edacs_f_mask = 0x7F; - if (state->edacs_f_bits == 8) state->edacs_f_mask = 0xFF; - if (state->edacs_f_bits == 9) state->edacs_f_mask = 0x1FF; - - if (state->edacs_s_bits == 1) state->edacs_s_mask = 0x1; - if (state->edacs_s_bits == 2) state->edacs_s_mask = 0x3; - if (state->edacs_s_bits == 3) state->edacs_s_mask = 0x7; - if (state->edacs_s_bits == 4) state->edacs_s_mask = 0xF; - if (state->edacs_s_bits == 5) state->edacs_s_mask = 0x1F; - if (state->edacs_s_bits == 6) state->edacs_s_mask = 0x3F; - if (state->edacs_s_bits == 7) state->edacs_s_mask = 0x7F; - if (state->edacs_s_bits == 8) state->edacs_s_mask = 0xFF; - if (state->edacs_s_bits == 9) state->edacs_s_mask = 0x1FF; + //calculate masks using bitwise math + state->edacs_a_mask = (1 << state->edacs_a_bits) - 1; + state->edacs_f_mask = (1 << state->edacs_f_bits) - 1; + state->edacs_s_mask = (1 << state->edacs_s_bits) - 1; char * timestr; //add timestr here, so we can assign it and also free it to prevent memory leak timestr = getTimeE();