mirror of
https://github.com/radio95-rnt/rds95.git
synced 2026-02-27 12:53:53 +01:00
fix mod 2
This commit is contained in:
30
src/rds.c
30
src/rds.c
@@ -276,15 +276,17 @@ static void get_rds_ps_group(RDSEncoder* enc, uint16_t *blocks) {
|
|||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
memcpy(enc->state[enc->program].ps_text, &(enc->state[enc->program].dps1_text[enc->state[enc->program].dynamic_ps_position]), PS_LENGTH);
|
memcpy(enc->state[enc->program].ps_text, &(enc->state[enc->program].dps1_text[enc->state[enc->program].dynamic_ps_position]), PS_LENGTH);
|
||||||
uint8_t next_position = enc->state[enc->program].dynamic_ps_position;
|
uint8_t next_position = 0;
|
||||||
for(int i = 1; i < enc->data[enc->program].dps1_len - enc->state[enc->program].dynamic_ps_position; i++) {
|
if (enc->state[enc->program].dynamic_ps_position + PS_LENGTH < enc->data[enc->program].dps1_len) {
|
||||||
if(enc->state[enc->program].dps1_text[enc->state[enc->program].dynamic_ps_position + i] == ' ') {
|
next_position = enc->state[enc->program].dynamic_ps_position + PS_LENGTH;
|
||||||
next_position = enc->state[enc->program].dynamic_ps_position + i + 1; // Position after the space
|
for (int i = 0; i < PS_LENGTH; i++) {
|
||||||
|
if (enc->state[enc->program].dynamic_ps_position + i < enc->data[enc->program].dps1_len &&
|
||||||
|
enc->state[enc->program].dps1_text[enc->state[enc->program].dynamic_ps_position + i] == ' ') {
|
||||||
|
next_position = enc->state[enc->program].dynamic_ps_position + i + 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(next_position == enc->state[enc->program].dynamic_ps_position ||
|
} else {
|
||||||
next_position >= enc->data[enc->program].dps1_len) {
|
|
||||||
next_position = 0;
|
next_position = 0;
|
||||||
}
|
}
|
||||||
enc->state[enc->program].dynamic_ps_position = next_position;
|
enc->state[enc->program].dynamic_ps_position = next_position;
|
||||||
@@ -333,16 +335,18 @@ static void get_rds_ps_group(RDSEncoder* enc, uint16_t *blocks) {
|
|||||||
enc->state[enc->program].dynamic_ps_position++;
|
enc->state[enc->program].dynamic_ps_position++;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
memcpy(enc->state[enc->program].ps_text, &(enc->state[enc->program].dps1_text[enc->state[enc->program].dynamic_ps_position]), PS_LENGTH);
|
memcpy(enc->state[enc->program].ps_text, &(enc->state[enc->program].dps1_nexttext[enc->state[enc->program].dynamic_ps_position]), PS_LENGTH);
|
||||||
uint8_t next_position = enc->state[enc->program].dynamic_ps_position;
|
uint8_t next_position = 0;
|
||||||
for(int i = 1; i < enc->data[enc->program].dps1_len - enc->state[enc->program].dynamic_ps_position; i++) {
|
if (enc->state[enc->program].dynamic_ps_position + PS_LENGTH < enc->data[enc->program].dps1_len) {
|
||||||
if(enc->state[enc->program].dps1_text[enc->state[enc->program].dynamic_ps_position + i] == ' ') {
|
next_position = enc->state[enc->program].dynamic_ps_position + PS_LENGTH;
|
||||||
next_position = enc->state[enc->program].dynamic_ps_position + i + 1; // Position after the space
|
for (int i = 0; i < PS_LENGTH; i++) {
|
||||||
|
if (enc->state[enc->program].dynamic_ps_position + i < enc->data[enc->program].dps1_len &&
|
||||||
|
enc->state[enc->program].dps1_nexttext[enc->state[enc->program].dynamic_ps_position + i] == ' ') {
|
||||||
|
next_position = enc->state[enc->program].dynamic_ps_position + i + 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(next_position == enc->state[enc->program].dynamic_ps_position ||
|
} else {
|
||||||
next_position >= enc->data[enc->program].dps1_len) {
|
|
||||||
next_position = 0;
|
next_position = 0;
|
||||||
}
|
}
|
||||||
enc->state[enc->program].dynamic_ps_position = next_position;
|
enc->state[enc->program].dynamic_ps_position = next_position;
|
||||||
|
|||||||
Reference in New Issue
Block a user