diff options
author | Andreas Eversberg <jolly@eversberg.eu> | 2017-10-09 20:49:14 +0200 |
---|---|---|
committer | Andreas Eversberg <jolly@eversberg.eu> | 2017-10-22 19:23:08 +0200 |
commit | b32e0ab6025a025850dc0079fa6596a96d7295a6 (patch) | |
tree | 199098e532a80417d5a3a18e80172280ccb84cad /src/common/sdr.c | |
parent | f7a0e4622bed9551bb0999d3c54bb69249065d38 (diff) |
Implementation of RX level squelch (for A-Netz and B-Netz)
Use -S <dB> for setting RF level or use -S auto for auto level.
When squelch closes, audio is muted. If squelch is closed for some
seconds (depending on network), call is released. (RF loss condition)
The previous loss detection has been removed
Diffstat (limited to 'src/common/sdr.c')
-rw-r--r-- | src/common/sdr.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/common/sdr.c b/src/common/sdr.c index c2684e3..b461f7a 100644 --- a/src/common/sdr.c +++ b/src/common/sdr.c @@ -700,7 +700,7 @@ int sdr_write(void *inst, sample_t **samples, uint8_t **power, int num, enum pag return sent; } -int sdr_read(void *inst, sample_t **samples, int num, int channels) +int sdr_read(void *inst, sample_t **samples, int num, int channels, double *rf_level_db) { sdr_t *sdr = (sdr_t *)inst; float *buff = NULL; @@ -794,6 +794,7 @@ int sdr_read(void *inst, sample_t **samples, int num, int channels) avg = sqrt(avg /(double)count); /* RMS */ avg = log10(avg) * 20; display_measurements_update(sdr->chan[c].dmp_rf_level, avg, 0.0); + rf_level_db[c] = avg; min = 0.0; max = 0.0; avg = 0.0; |