aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/sdr.c
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2017-08-19 12:27:05 +0200
committerAndreas Eversberg <jolly@eversberg.eu>2017-09-01 18:42:46 +0200
commit743d147d1672837595ae1d6aa024522f4a011614 (patch)
tree50c44e565e00700d90338835e681cbb1dccf8e9b /src/common/sdr.c
parent1c2e9180a2db989f26c5cff01eaa6ef12bb45011 (diff)
SDR: Turn TX power off if requested by network
The power level is ramped smoothly within 1 ms up or down. R2000, AMPS and C-Netz turn off power when voice channel is not i use. C-Netz turns off power between OgK timeslots.
Diffstat (limited to 'src/common/sdr.c')
-rw-r--r--src/common/sdr.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/common/sdr.c b/src/common/sdr.c
index 3560466..ea873c1 100644
--- a/src/common/sdr.c
+++ b/src/common/sdr.c
@@ -557,7 +557,7 @@ void sdr_close(void *inst)
}
}
-int sdr_write(void *inst, sample_t **samples, int num, enum paging_signal __attribute__((unused)) *paging_signal, int *on, int channels)
+int sdr_write(void *inst, sample_t **samples, uint8_t **power, int num, enum paging_signal __attribute__((unused)) *paging_signal, int *on, int channels)
{
sdr_t *sdr = (sdr_t *)inst;
float buffer[num * 2], *buff = NULL;
@@ -576,9 +576,9 @@ int sdr_write(void *inst, sample_t **samples, int num, enum paging_signal __attr
for (c = 0; c < channels; c++) {
/* switch to paging channel, if requested */
if (on[c] && sdr->paging_channel)
- fm_modulate_complex(&sdr->chan[sdr->paging_channel].mod, samples[c], num, buff);
+ fm_modulate_complex(&sdr->chan[sdr->paging_channel].mod, samples[c], power[c], num, buff);
else
- fm_modulate_complex(&sdr->chan[c].mod, samples[c], num, buff);
+ fm_modulate_complex(&sdr->chan[c].mod, samples[c], power[c], num, buff);
}
} else {
buff = (float *)samples;