diff --git a/src/rds.c b/src/rds.c index fffe218..1c2ff3c 100644 --- a/src/rds.c +++ b/src/rds.c @@ -468,24 +468,29 @@ static void init_rtplus(RDSEncoder* enc, uint8_t group) { void init_rds_encoder(RDSEncoder* enc) { memset(enc, 0, sizeof(RDSEncoder)); - enc->data[enc->program].ct = 1; - enc->data[enc->program].di = 1; - enc->data[enc->program].ecclic_enabled = 1; - strcpy((char *)enc->data[enc->program].grp_sqc, "002222"); - enc->data[enc->program].ms = 1; - enc->data[enc->program].pi = 0xFFFF; - strcpy((char *)enc->data[enc->program].ps, "* RDS * "); - enc->data[enc->program].rt1_enabled = 1; + + for(int i = 0; i < PROGRAMS; i++) { + enc->program = i; - memset(enc->data->rt1, ' ', 64); - enc->data->rt1[0] = '\r'; + enc->data[enc->program].ct = 1; + enc->data[enc->program].di = 1; + enc->data[enc->program].ecclic_enabled = 1; + strcpy((char *)enc->data[enc->program].grp_sqc, "002222"); + enc->data[enc->program].ms = 1; + enc->data[enc->program].pi = 0xFFFF; + strcpy((char *)enc->data[enc->program].ps, "* RDS * "); + enc->data[enc->program].rt1_enabled = 1; - enc->state[enc->program].rt_ab = 1; - enc->state[enc->program].ptyn_ab = 1; - enc->state[enc->program].rt_update = 1; - enc->state[enc->program].ps_update = 1; + memset(enc->data->rt1, ' ', 64); + enc->data->rt1[0] = '\r'; - init_rtplus(enc, GROUP_11A); + enc->state[enc->program].rt_ab = 1; + enc->state[enc->program].ptyn_ab = 1; + enc->state[enc->program].rt_update = 1; + enc->state[enc->program].ps_update = 1; + + init_rtplus(enc, GROUP_11A); + } if (rdssaved()) { loadFromFile(enc); diff --git a/src/rds.h b/src/rds.h index 7dc588f..a5ffe68 100644 --- a/src/rds.h +++ b/src/rds.h @@ -33,7 +33,7 @@ typedef struct { #define AF_CODE_NUM_AFS_BASE AF_CODE_NO_AF #define AF_CODE_LFMF_FOLLOWS 250 -#define PROGRAMS 1 +#define PROGRAMS 2 #pragma pack(1) typedef struct {