EDACS: compute AFS masks using math, not copy/paste

This commit is contained in:
ilyacodes 2024-04-13 17:15:44 -04:00
parent b86cd1bc3c
commit 33d8ee70d9
1 changed files with 4 additions and 30 deletions

View File

@ -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();