diff --git a/src/modulator.c b/src/modulator.c index d6e76e1..678e5f3 100644 --- a/src/modulator.c +++ b/src/modulator.c @@ -112,5 +112,11 @@ float get_rds_sample(RDSModulator* rdsMod, bool rds2) { rdsMod->sample_buffer[rdsMod->out_sample_index++] = 0; if (rdsMod->out_sample_index == SAMPLE_BUFFER_SIZE) rdsMod->out_sample_index = 0; - return sample*rdsMod->params.level*rdsMod->params.rdsgen; + float out = sample*rdsMod->params.level; + if (rdsMod->params.rdsgen == 0) { + out = 0; + } else if (rdsMod->params.rdsgen == 1 && rds2) { + out = 0; + } + return out; } diff --git a/src/rds.c b/src/rds.c index a7af64d..007cb3a 100644 --- a/src/rds.c +++ b/src/rds.c @@ -807,8 +807,8 @@ void set_rds_defaults(RDSEncoder* enc, uint8_t program) { init_rtplus(enc, GROUP_11A, program); - enc->encoder_data->ascii_data.expected_encoder_addr = 255; - enc->encoder_data->ascii_data.expected_site_addr = 255; + enc->encoder_data.ascii_data.expected_encoder_addr = 255; + enc->encoder_data.ascii_data.expected_site_addr = 255; } void init_rds_encoder(RDSEncoder* enc) {