mirror of
https://github.com/radio95-rnt/rds95.git
synced 2026-02-27 04:43:52 +01:00
fix crash
This commit is contained in:
@@ -697,14 +697,19 @@ void set_rds_defaults(RDSEncoder* enc, uint8_t program) {
|
|||||||
|
|
||||||
enc->encoder_data.ascii_data.expected_encoder_addr = 255; // Unknown
|
enc->encoder_data.ascii_data.expected_encoder_addr = 255; // Unknown
|
||||||
|
|
||||||
lua_on_init();
|
if(enc->state[0].first_init_done) lua_on_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void init_rds_encoder(RDSEncoder* enc) {
|
void init_rds_encoder(RDSEncoder* enc) {
|
||||||
|
enc->state[0].first_init_done = 0;
|
||||||
for(int i = 0; i < PROGRAMS; i++) set_rds_defaults(enc, i);
|
for(int i = 0; i < PROGRAMS; i++) set_rds_defaults(enc, i);
|
||||||
|
enc->state[0].first_init_done = 1;
|
||||||
|
|
||||||
if (encoder_saved()) encoder_loadFromFile(enc);
|
if (encoder_saved()) encoder_loadFromFile(enc);
|
||||||
else encoder_saveToFile(enc);
|
else {
|
||||||
|
encoder_saveToFile(enc);
|
||||||
|
lua_on_init();
|
||||||
|
}
|
||||||
|
|
||||||
for(int i = 0; i < PROGRAMS; i++) reset_rds_state(enc, i);
|
for(int i = 0; i < PROGRAMS; i++) reset_rds_state(enc, i);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -172,6 +172,8 @@ typedef struct {
|
|||||||
|
|
||||||
uint16_t last_stream0_group[3];
|
uint16_t last_stream0_group[3];
|
||||||
uint8_t last_stream0_group_type_b : 1;
|
uint8_t last_stream0_group_type_b : 1;
|
||||||
|
|
||||||
|
uint8_t first_init_done : 1;
|
||||||
} RDSState;
|
} RDSState;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|||||||
@@ -157,6 +157,7 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
RDSEncoder rdsEncoder;
|
RDSEncoder rdsEncoder;
|
||||||
RDSModulator rdsModulator;
|
RDSModulator rdsModulator;
|
||||||
|
init_lua(rds_mod);
|
||||||
init_rds_encoder(&rdsEncoder);
|
init_rds_encoder(&rdsEncoder);
|
||||||
init_rds_modulator(&rdsModulator, &rdsEncoder, config.num_streams);
|
init_rds_modulator(&rdsModulator, &rdsEncoder, config.num_streams);
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ int open_udp_server(int port, RDSModulator* rds_mod) {
|
|||||||
poller.events = POLLIN;
|
poller.events = POLLIN;
|
||||||
|
|
||||||
mod = rds_mod;
|
mod = rds_mod;
|
||||||
init_lua(rds_mod);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user