From dbf287a7baf0945c8d6f9b98e27ae1ccf1bab004 Mon Sep 17 00:00:00 2001 From: kuba Date: Mon, 17 Mar 2025 02:25:05 +0100 Subject: [PATCH] idk --- src/rds.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/src/rds.c b/src/rds.c index dd0c0a6..efab01d 100644 --- a/src/rds.c +++ b/src/rds.c @@ -190,7 +190,7 @@ static void get_rds_ps_group(RDSEncoder* enc, uint16_t *blocks) { // Copy Static PS memcpy(enc->state[enc->program].ps_text, enc->data[enc->program].ps, PS_LENGTH); - if(enc->state[enc->program].dynamic_ps_period == (enc->data[enc->program].dps_label_period*3)) { + if(enc->state[enc->program].dynamic_ps_period == enc->data[enc->program].dps_label_period) { enc->state[enc->program].dynamic_ps_state = 0; // Static enc->state[enc->program].dynamic_ps_period = 0; } @@ -210,7 +210,7 @@ static void get_rds_ps_group(RDSEncoder* enc, uint16_t *blocks) { // TODO: Mode 2 and 3 } if(enc->state[enc->program].dynamic_ps_position >= enc->data[enc->program].dps1_len) enc->state[enc->program].dynamic_ps_position = 0; - if(enc->state[enc->program].static_ps_period == (enc->data[enc->program].static_ps_period*3)) { + if(enc->state[enc->program].static_ps_period == enc->data[enc->program].static_ps_period) { enc->state[enc->program].dynamic_ps_state = 1; // DPS1 enc->state[enc->program].static_ps_period = 0; } @@ -227,19 +227,6 @@ static void get_rds_ps_group(RDSEncoder* enc, uint16_t *blocks) { blocks[3] = enc->state[enc->program].ps_text[enc->state[enc->program].ps_csegment * 2] << 8 | enc->state[enc->program].ps_text[enc->state[enc->program].ps_csegment * 2 + 1]; } - if(enc->data[enc->program].dps1_enabled || enc->data[enc->program].dps2_enabled) { - switch (enc->state[enc->program].dynamic_ps_state) - { - case 0: - enc->state[enc->program].static_ps_period++; - break; - case 1: - case 2: - enc->state[enc->program].dynamic_ps_period++; - break; - } - } - enc->state[enc->program].ps_csegment++; if (enc->state[enc->program].ps_csegment >= 4) enc->state[enc->program].ps_csegment = 0; } @@ -452,6 +439,18 @@ static void get_rds_group(RDSEncoder* enc, uint16_t *blocks) { else enc->state[enc->program].grp_seq_idx[1] = 0; enc->state[enc->program].grp_seq_idx[1]++; get_rds_ps_group(enc, blocks); + if(enc->data[enc->program].dps1_enabled || enc->data[enc->program].dps2_enabled) { + switch (enc->state[enc->program].dynamic_ps_state) + { + case 0: + enc->state[enc->program].static_ps_period++; + break; + case 1: + case 2: + enc->state[enc->program].dynamic_ps_period++; + break; + } + } goto group_coded; case '1': if(enc->data[enc->program].ecc && enc->data[enc->program].lic) {