0
1
mirror of https://github.com/radio95-rnt/rds95.git synced 2026-02-27 04:43:52 +01:00

fix programs again

This commit is contained in:
2025-03-15 10:46:35 +01:00
parent cf24e2708b
commit 29032aa38f

View File

@@ -23,11 +23,11 @@ static void handle_afch(unsigned char *arg, RDSModulator* mod) {
return;
}
if(arg[0] == '\0') {
memset(&(mod->enc->data->af), 0, sizeof(mod->enc->data->af));
memset(&(mod->enc->data[mod->enc->program]->af), 0, sizeof(mod->enc->data[mod->enc->program]->af));
return;
}
memset(&(mod->enc->data->af), 0, sizeof(mod->enc->data->af));
memset(&(mod->enc->data[mod->enc->program]->af), 0, sizeof(mod->enc->data[mod->enc->program]->af));
uint8_t arg_count;
RDSAFs new_af;
uint8_t af[MAX_AFS], *af_iter;
@@ -54,7 +54,7 @@ static void handle_afch(unsigned char *arg, RDSModulator* mod) {
af_iter++;
}
memcpy(&(mod->enc->data->af), &new_af, sizeof(mod->enc->data->af));
memcpy(&(mod->enc->data[mod->enc->program]->af), &new_af, sizeof(mod->enc->data[mod->enc->program]->af));
}
static void handle_tps(unsigned char *arg, RDSModulator* mod) {
@@ -69,17 +69,17 @@ static void handle_rt1(unsigned char *arg, RDSModulator* mod) {
static void handle_pty(unsigned char *arg, RDSModulator* mod) {
arg[2] = 0;
mod->enc->data->pty = strtoul((char *)arg, NULL, 10);
mod->enc->data[mod->enc->program]->pty = strtoul((char *)arg, NULL, 10);
}
static void handle_ecc(unsigned char *arg, RDSModulator* mod) {
arg[2] = 0;
mod->enc->data->ecc = strtoul((char *)arg, NULL, 16);
mod->enc->data[mod->enc->program]->ecc = strtoul((char *)arg, NULL, 16);
}
static void handle_lic(unsigned char *arg, RDSModulator* mod) {
arg[2] = 0;
mod->enc->data->lic = strtoul((char *)arg, NULL, 16);
mod->enc->data[mod->enc->program]->lic = strtoul((char *)arg, NULL, 16);
}
static void handle_rtp(unsigned char *arg, RDSModulator* mod) {
@@ -106,7 +106,7 @@ static void handle_pin(unsigned char *arg, RDSModulator* mod) {
uint8_t pin[3];
if (sscanf((char *)arg, "%hhu,%hhu,%hhu", &pin[0], &pin[1], &pin[2]) == 3) {
for (int i = 0; i < 3; i++) {
mod->enc->data->pin[i+1] = pin[i];
mod->enc->data[mod->enc->program]->pin[i+1] = pin[i];
}
}
}
@@ -118,32 +118,32 @@ static void handle_ps(unsigned char *arg, RDSModulator* mod) {
static void handle_ct(unsigned char *arg, RDSModulator* mod) {
arg[2] = 1;
mod->enc->data->ct = arg[0];
mod->enc->data[mod->enc->program]->ct = arg[0];
}
static void handle_di(unsigned char *arg, RDSModulator* mod) {
arg[2] = 0;
mod->enc->data->di = arg[0];
mod->enc->data[mod->enc->program]->di = arg[0];
}
static void handle_tp(unsigned char *arg, RDSModulator* mod) {
arg[1] = 0;
mod->enc->data->tp = arg[0];
mod->enc->data[mod->enc->program]->tp = arg[0];
}
static void handle_ta(unsigned char *arg, RDSModulator* mod) {
arg[1] = 0;
mod->enc->data->ta = arg[0];
mod->enc->data[mod->enc->program]->ta = arg[0];
}
static void handle_ms(unsigned char *arg, RDSModulator* mod) {
arg[1] = 0;
mod->enc->data->ms = arg[0];
mod->enc->data[mod->enc->program]->ms = arg[0];
}
static void handle_pi(unsigned char *arg, RDSModulator* mod) {
arg[4] = 0;
mod->enc->data->pi = strtoul((char *)arg, NULL, 16);
mod->enc->data[mod->enc->program]->pi = strtoul((char *)arg, NULL, 16);
}
static void handle_af(unsigned char *arg, RDSModulator* mod) {
@@ -151,11 +151,11 @@ static void handle_af(unsigned char *arg, RDSModulator* mod) {
return;
}
if(arg[0] == '\0') {
memset(&(mod->enc->data->af), 0, sizeof(mod->enc->data->af));
memset(&(mod->enc->data[mod->enc->program]->af), 0, sizeof(mod->enc->data[mod->enc->program]->af));
return;
}
memset(&(mod->enc->data->af), 0, sizeof(mod->enc->data->af));
memset(&(mod->enc->data[mod->enc->program]->af), 0, sizeof(mod->enc->data[mod->enc->program]->af));
uint8_t arg_count;
RDSAFs new_af;
float af[MAX_AFS], *af_iter;
@@ -179,33 +179,33 @@ static void handle_af(unsigned char *arg, RDSModulator* mod) {
add_rds_af(&new_af, *af_iter++);
}
memcpy(&(mod->enc->data->af), &new_af, sizeof(mod->enc->data->af));
memcpy(&(mod->enc->data[mod->enc->program]->af), &new_af, sizeof(mod->enc[mod->enc->program]->data->af));
}
static void handle_g(unsigned char *arg, RDSModulator* mod) {
uint16_t blocks[3];
int count = sscanf((char *)arg, "%4hx%4hx%4hx", &blocks[0], &blocks[1], &blocks[2]);
if (count == 3) {
mod->enc->state->custom_group[0] = 1;
mod->enc->state->custom_group[1] = blocks[0];
mod->enc->state->custom_group[2] = blocks[1];
mod->enc->state->custom_group[3] = blocks[2];
mod->enc->state[mod->enc->program]->custom_group[0] = 1;
mod->enc->state[mod->enc->program]->custom_group[1] = blocks[0];
mod->enc->state[mod->enc->program]->custom_group[2] = blocks[1];
mod->enc->state[mod->enc->program]->custom_group[3] = blocks[2];
}
}
static void handle_pinen(unsigned char *arg, RDSModulator* mod) {
arg[1] = 0;
mod->enc->data->pin[0] = arg[0];
mod->enc->data[mod->enc->program]->pin[0] = arg[0];
}
static void handle_rt1en(unsigned char *arg, RDSModulator* mod) {
arg[1] = 0;
mod->enc->data->rt1_enabled = arg[0];
mod->enc->data[mod->enc->program]->rt1_enabled = arg[0];
}
static void handle_ptynen(unsigned char *arg, RDSModulator* mod) {
arg[1] = 0;
mod->enc->state->ptyn_enabled = strtoul((char *)arg, NULL, 10);
mod->enc->state[mod->enc->program]->ptyn_enabled = strtoul((char *)arg, NULL, 10);
}
static void handle_rtprun(unsigned char *arg, RDSModulator* mod) {
@@ -215,12 +215,12 @@ static void handle_rtprun(unsigned char *arg, RDSModulator* mod) {
static void handle_eccen(unsigned char *arg, RDSModulator* mod) {
arg[1] = 0;
mod->enc->data->ecclic_enabled = arg[0];
mod->enc->data[mod->enc->program]->ecclic_enabled = arg[0];
}
static void handle_shortrt(unsigned char *arg, RDSModulator* mod) {
arg[1] = 0;
mod->enc->data->shortrt = arg[0];
mod->enc->data[mod->enc->program]->shortrt = arg[0];
}
static void handle_program(unsigned char *arg, RDSModulator* mod) {
@@ -231,8 +231,8 @@ static void handle_program(unsigned char *arg, RDSModulator* mod) {
}
static void handle_grpseq(unsigned char *arg, RDSModulator* mod) {
memset(&(mod->enc->data->grp_sqc), 0, 24);
memcpy(&(mod->enc->data->grp_sqc), arg, 24);
memset(&(mod->enc->data[mod->enc->program]->grp_sqc), 0, 24);
memcpy(&(mod->enc->data[mod->enc->program]->grp_sqc), arg, 24);
}
static void handle_level(unsigned char *arg, RDSModulator* mod) {
@@ -269,8 +269,8 @@ static void handle_udg1(unsigned char *arg, RDSModulator* mod) {
}
}
memcpy(&(mod->enc->data->udg1), &blocks, sets * sizeof(uint16_t[3]));
mod->enc->data->udg1_len = sets;
memcpy(&(mod->enc->data[mod->enc->program]->udg1), &blocks, sets * sizeof(uint16_t[3]));
mod->enc->data[mod->enc->program]->udg1_len = sets;
}
static void handle_udg2(unsigned char *arg, RDSModulator* mod) {
uint16_t blocks[8][3]; // Up to 8 sets of 3 blocks each
@@ -299,8 +299,8 @@ static void handle_udg2(unsigned char *arg, RDSModulator* mod) {
}
}
memcpy(&(mod->enc->data->udg2), &blocks, sets * sizeof(uint16_t[3]));
mod->enc->data->udg2_len = sets;
memcpy(&(mod->enc->data[mod->enc->program]->udg2), &blocks, sets * sizeof(uint16_t[3]));
mod->enc->data[mod->enc->program]->udg2_len = sets;
}
static void handle_init(unsigned char *arg, RDSModulator* mod) {