From 57607dda44ab52a46919ff8d53f13413a418c523 Mon Sep 17 00:00:00 2001 From: KubaPro010 Date: Mon, 17 Mar 2025 18:24:42 +0100 Subject: [PATCH] after loading from disk lps would get transmitted one time before quitting, i believe this is the fix --- src/rds.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/rds.c b/src/rds.c index 0211d2c..77901ec 100644 --- a/src/rds.c +++ b/src/rds.c @@ -561,16 +561,19 @@ static void init_rtplus(RDSEncoder* enc, uint8_t group, uint8_t program) { } void reset_rds_state(RDSEncoder* enc, uint8_t program) { + uint8_t old_program = enc->program; + enc->program = program; + memset(&(enc->state[program]), 0, sizeof(RDSState)); enc->state[program].rt_ab = 1; enc->state[program].ptyn_ab = 1; - enc->state[program].rt_update = 1; - enc->state[program].ps_update = 1; - enc->state[program].dps1_update = 1; - enc->state[program].tps_update = 1; - enc->state[program].ptyn_update = 1; - enc->state[program].lps_update = 1; + set_rds_rt1(enc, enc->data[program].rt1); + set_rds_ps(enc, enc->data[program].ps); + set_rds_dps1(enc, enc->data[program].dps1); + set_rds_tps(enc, enc->data[program].tps); + set_rds_ptyn(enc, enc->data[program].ptyn); + set_rds_lps(enc, enc->data[program].lps); } void set_rds_defaults(RDSEncoder* enc, uint8_t program) {