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/anetz/anetz.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/anetz/anetz.c')
-rw-r--r-- | src/anetz/anetz.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/anetz/anetz.c b/src/anetz/anetz.c index 1d58efe..27eb1b0 100644 --- a/src/anetz/anetz.c +++ b/src/anetz/anetz.c @@ -186,7 +186,7 @@ static void anetz_timeout(struct timer *timer); static void anetz_go_idle(anetz_t *anetz); /* Create transceiver instance and link to a list. */ -int anetz_create(int kanal, const char *audiodev, int use_sdr, int samplerate, double rx_gain, double page_gain, int page_sequence, int pre_emphasis, int de_emphasis, const char *write_rx_wave, const char *write_tx_wave, const char *read_rx_wave, const char *read_tx_wave, int loopback, double loss_volume) +int anetz_create(int kanal, const char *audiodev, int use_sdr, int samplerate, double rx_gain, double page_gain, int page_sequence, int pre_emphasis, int de_emphasis, const char *write_rx_wave, const char *write_tx_wave, const char *read_rx_wave, const char *read_tx_wave, int loopback, double squelch_db) { anetz_t *anetz; int rc; @@ -205,14 +205,14 @@ int anetz_create(int kanal, const char *audiodev, int use_sdr, int samplerate, d PDEBUG(DANETZ, DEBUG_DEBUG, "Creating 'A-Netz' instance for 'Kanal' = %d (sample rate %d).\n", kanal, samplerate); /* init general part of transceiver */ - rc = sender_create(&anetz->sender, kanal, anetz_kanal2freq(kanal, 0), anetz_kanal2freq(kanal, 1), audiodev, use_sdr, samplerate, rx_gain, pre_emphasis, de_emphasis, write_rx_wave, write_tx_wave, read_rx_wave, read_tx_wave, loopback, loss_volume, PAGING_SIGNAL_NONE); + rc = sender_create(&anetz->sender, kanal, anetz_kanal2freq(kanal, 0), anetz_kanal2freq(kanal, 1), audiodev, use_sdr, samplerate, rx_gain, pre_emphasis, de_emphasis, write_rx_wave, write_tx_wave, read_rx_wave, read_tx_wave, loopback, PAGING_SIGNAL_NONE); if (rc < 0) { PDEBUG(DANETZ, DEBUG_ERROR, "Failed to init 'Sender' processing!\n"); goto error; } /* init audio processing */ - rc = dsp_init_sender(anetz, page_gain, page_sequence); + rc = dsp_init_sender(anetz, page_gain, page_sequence, squelch_db); if (rc < 0) { PDEBUG(DANETZ, DEBUG_ERROR, "Failed to init signal processing!\n"); goto error; @@ -282,10 +282,10 @@ static void anetz_page(anetz_t *anetz, const char *dial_string, double *freq) } /* Loss of signal was detected, release active call. */ -void anetz_loss_indication(anetz_t *anetz) +void anetz_loss_indication(anetz_t *anetz, double loss_time) { if (anetz->state == ANETZ_GESPRAECH) { - PDEBUG_CHAN(DANETZ, DEBUG_NOTICE, "Detected loss of signal, releasing.\n"); + PDEBUG_CHAN(DANETZ, DEBUG_NOTICE, "Detected loss of signal after %.1f seconds, releasing.\n", loss_time); anetz_release(anetz); call_in_release(anetz->callref, CAUSE_TEMPFAIL); anetz->callref = 0; |