diff --git a/src/modulator.c b/src/modulator.c index 686edd8..1e62fa9 100644 --- a/src/modulator.c +++ b/src/modulator.c @@ -33,7 +33,8 @@ void cleanup_rds_modulator(RDSModulator* rdsMod) { } float get_rds_sample(RDSModulator* rdsMod, uint8_t stream) { - if (stream >= rdsMod->num_streams) return 0.0f; + if(stream >= rdsMod->num_streams) return 0.0f; + if((rdsMod->params.rdsgen > stream ? 1 : 0) == 0) return 0.0f; rdsMod->data[stream].phase += 1187.5 / RDS_SAMPLE_RATE; @@ -52,5 +53,5 @@ float get_rds_sample(RDSModulator* rdsMod, uint8_t stream) { float sample = sinf(M_2PI * rdsMod->data[stream].phase + rdsMod->data[stream].symbol_shift); if(rdsMod->data[stream].cur_output == 0) sample = -sample; // do bpsk, if you comment this part out, nothing will be decoded - return sample*rdsMod->params.level*(rdsMod->params.rdsgen > stream ? 1 : 0); + return sample*rdsMod->params.level; } \ No newline at end of file diff --git a/src/rds.c b/src/rds.c index aff678c..a2b2f09 100644 --- a/src/rds.c +++ b/src/rds.c @@ -318,10 +318,6 @@ void add_checkwords(RDSGroup *group, uint8_t *bits) } void get_rds_bits(RDSEncoder* enc, uint8_t *bits, uint8_t stream) { - if((rdsMod->params.rdsgen > stream ? 1 : 0) == 0) { - memset(bits, 0, BITS_PER_GROUP); - return; - } RDSGroup group; get_rds_group(enc, &group, stream); add_checkwords(&group, bits);