mirror of
https://github.com/radio95-rnt/rds95.git
synced 2026-07-30 08:49:15 +02:00
remove rds2
This commit is contained in:
+3
-9
@@ -78,13 +78,13 @@ void init_rds_modulator(RDSModulator* rdsMod, RDSEncoder* enc) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
float get_rds_sample(RDSModulator* rdsMod, bool rds2) {
|
float get_rds_sample(RDSModulator* rdsMod) {
|
||||||
uint16_t idx;
|
uint16_t idx;
|
||||||
float *cur_waveform;
|
float *cur_waveform;
|
||||||
float sample;
|
float sample;
|
||||||
if (rdsMod->sample_count == SAMPLES_PER_BIT) {
|
if (rdsMod->sample_count == SAMPLES_PER_BIT) {
|
||||||
if (rdsMod->bit_pos == BITS_PER_GROUP) {
|
if (rdsMod->bit_pos == BITS_PER_GROUP) {
|
||||||
get_rds_bits(rdsMod->enc, rdsMod->bit_buffer, rds2);
|
get_rds_bits(rdsMod->enc, rdsMod->bit_buffer);
|
||||||
rdsMod->bit_pos = 0;
|
rdsMod->bit_pos = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,11 +112,5 @@ float get_rds_sample(RDSModulator* rdsMod, bool rds2) {
|
|||||||
rdsMod->sample_buffer[rdsMod->out_sample_index++] = 0;
|
rdsMod->sample_buffer[rdsMod->out_sample_index++] = 0;
|
||||||
if (rdsMod->out_sample_index == SAMPLE_BUFFER_SIZE)
|
if (rdsMod->out_sample_index == SAMPLE_BUFFER_SIZE)
|
||||||
rdsMod->out_sample_index = 0;
|
rdsMod->out_sample_index = 0;
|
||||||
float out = sample*rdsMod->params.level;
|
return sample*rdsMod->params.level*rdsMod->params.rdsgen;
|
||||||
if (rdsMod->params.rdsgen == 0) {
|
|
||||||
out = 0;
|
|
||||||
} else if (rdsMod->params.rdsgen == 1 && rds2) {
|
|
||||||
out = 0;
|
|
||||||
}
|
|
||||||
return out;
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -29,4 +29,4 @@ void Modulator_saveToFile(RDSModulatorParameters *emp, const char *option);
|
|||||||
void Modulator_loadFromFile(RDSModulatorParameters *emp);
|
void Modulator_loadFromFile(RDSModulatorParameters *emp);
|
||||||
int modulatorsaved();
|
int modulatorsaved();
|
||||||
void init_rds_modulator(RDSModulator* rdsMod, RDSEncoder* enc);
|
void init_rds_modulator(RDSModulator* rdsMod, RDSEncoder* enc);
|
||||||
float get_rds_sample(RDSModulator* rdsMod, bool rds2);
|
float get_rds_sample(RDSModulator* rdsMod);
|
||||||
|
|||||||
@@ -546,14 +546,8 @@ static uint8_t get_rds_custom_groups(RDSEncoder* enc, uint16_t *blocks) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void get_rds_group(RDSEncoder* enc, uint16_t *blocks, bool rds2) {
|
static void get_rds_group(RDSEncoder* enc, uint16_t *blocks) {
|
||||||
blocks[0] = enc->data[enc->program].pi;
|
blocks[0] = enc->data[enc->program].pi;
|
||||||
if(rds2) blocks[0] = 0; // tunneling
|
|
||||||
// if(rds2 && !enc->encoder_data.rds2_mode) blocks[0] = 0; // tunneling
|
|
||||||
// else if(rds2 && enc->encoder_data.rds2_mode) {
|
|
||||||
// // TODO: add rds2 only stuff
|
|
||||||
// goto group_coded;
|
|
||||||
// }
|
|
||||||
blocks[1] = 0;
|
blocks[1] = 0;
|
||||||
blocks[2] = 0;
|
blocks[2] = 0;
|
||||||
blocks[3] = 0;
|
blocks[3] = 0;
|
||||||
@@ -732,9 +726,9 @@ group_coded:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void get_rds_bits(RDSEncoder* enc, uint8_t *bits, bool rds2) {
|
void get_rds_bits(RDSEncoder* enc, uint8_t *bits) {
|
||||||
static uint16_t out_blocks[GROUP_LENGTH];
|
static uint16_t out_blocks[GROUP_LENGTH];
|
||||||
get_rds_group(enc, out_blocks, rds2);
|
get_rds_group(enc, out_blocks);
|
||||||
add_checkwords(out_blocks, bits);
|
add_checkwords(out_blocks, bits);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -333,7 +333,7 @@ int rdssaved();
|
|||||||
void reset_rds_state(RDSEncoder* enc, uint8_t program);
|
void reset_rds_state(RDSEncoder* enc, uint8_t program);
|
||||||
void set_rds_defaults(RDSEncoder* enc, uint8_t program);
|
void set_rds_defaults(RDSEncoder* enc, uint8_t program);
|
||||||
void init_rds_encoder(RDSEncoder* enc);
|
void init_rds_encoder(RDSEncoder* enc);
|
||||||
void get_rds_bits(RDSEncoder* enc, uint8_t *bits, bool rds2);
|
void get_rds_bits(RDSEncoder* enc, uint8_t *bits);
|
||||||
void set_rds_rt1(RDSEncoder* enc, char *rt1);
|
void set_rds_rt1(RDSEncoder* enc, char *rt1);
|
||||||
void set_rds_rt2(RDSEncoder* enc, char *rt2);
|
void set_rds_rt2(RDSEncoder* enc, char *rt2);
|
||||||
void set_rds_dps1(RDSEncoder* enc, char *dps1);
|
void set_rds_dps1(RDSEncoder* enc, char *dps1);
|
||||||
|
|||||||
+1
-37
@@ -12,7 +12,6 @@
|
|||||||
#include "ascii_cmd.h"
|
#include "ascii_cmd.h"
|
||||||
|
|
||||||
#define RDS_DEVICE "RDS"
|
#define RDS_DEVICE "RDS"
|
||||||
#define RDS2_DEVICE "RDS2"
|
|
||||||
|
|
||||||
#define NUM_MPX_FRAMES 512
|
#define NUM_MPX_FRAMES 512
|
||||||
|
|
||||||
@@ -56,9 +55,6 @@ int main(int argc, char **argv) {
|
|||||||
char control_pipe[51] = "\0";
|
char control_pipe[51] = "\0";
|
||||||
|
|
||||||
pa_simple *rds1_device;
|
pa_simple *rds1_device;
|
||||||
#ifdef RDS2_DEVICE
|
|
||||||
pa_simple *rds2_device = NULL;
|
|
||||||
#endif
|
|
||||||
pa_sample_spec format;
|
pa_sample_spec format;
|
||||||
pa_buffer_attr buffer;
|
pa_buffer_attr buffer;
|
||||||
|
|
||||||
@@ -117,23 +113,6 @@ int main(int argc, char **argv) {
|
|||||||
fprintf(stderr, "Error: cannot open sound device.\n");
|
fprintf(stderr, "Error: cannot open sound device.\n");
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
#ifdef RDS2_DEVICE
|
|
||||||
rds2_device = pa_simple_new(
|
|
||||||
NULL,
|
|
||||||
"rds95",
|
|
||||||
PA_STREAM_PLAYBACK,
|
|
||||||
RDS2_DEVICE,
|
|
||||||
"RDS2 Generator",
|
|
||||||
&format,
|
|
||||||
NULL,
|
|
||||||
&buffer,
|
|
||||||
NULL
|
|
||||||
);
|
|
||||||
if(rds2_device == NULL) {
|
|
||||||
fprintf(stderr, "Error: cannot open RDS2 sound device.\n");
|
|
||||||
goto exit;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
RDSEncoder rdsEncoder;
|
RDSEncoder rdsEncoder;
|
||||||
RDSModulator rdsModulator;
|
RDSModulator rdsModulator;
|
||||||
@@ -161,28 +140,16 @@ int main(int argc, char **argv) {
|
|||||||
int pulse_error;
|
int pulse_error;
|
||||||
|
|
||||||
float rds1_buffer[NUM_MPX_FRAMES];
|
float rds1_buffer[NUM_MPX_FRAMES];
|
||||||
#ifdef RDS2_DEVICE
|
|
||||||
float rds2_buffer[NUM_MPX_FRAMES];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
while(!stop_rds) {
|
while(!stop_rds) {
|
||||||
for (uint16_t i = 0; i < NUM_MPX_FRAMES; i++) {
|
for (uint16_t i = 0; i < NUM_MPX_FRAMES; i++) {
|
||||||
rds1_buffer[i] = get_rds_sample(&rdsModulator, false);
|
rds1_buffer[i] = get_rds_sample(&rdsModulator);
|
||||||
#ifdef RDS2_DEVICE
|
|
||||||
rds2_buffer[i] = get_rds_sample(&rdsModulator, true);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pa_simple_write(rds1_device, rds1_buffer, sizeof(rds1_buffer), &pulse_error) != 0) {
|
if (pa_simple_write(rds1_device, rds1_buffer, sizeof(rds1_buffer), &pulse_error) != 0) {
|
||||||
fprintf(stderr, "Error: could not play audio. (%s : %d)\n", pa_strerror(pulse_error), pulse_error);
|
fprintf(stderr, "Error: could not play audio. (%s : %d)\n", pa_strerror(pulse_error), pulse_error);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#ifdef RDS2_DEVICE
|
|
||||||
if (pa_simple_write(rds2_device, rds2_buffer, sizeof(rds2_buffer), &pulse_error) != 0) {
|
|
||||||
fprintf(stderr, "Error: could not play audio. RDS2 (%s : %d)\n", pa_strerror(pulse_error), pulse_error);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
@@ -193,9 +160,6 @@ exit:
|
|||||||
|
|
||||||
pthread_attr_destroy(&attr);
|
pthread_attr_destroy(&attr);
|
||||||
pa_simple_free(rds1_device);
|
pa_simple_free(rds1_device);
|
||||||
#ifdef RDS2_DEVICE
|
|
||||||
pa_simple_free(rds2_device);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user