diff options
Diffstat (limited to 'src/bnetz')
-rw-r--r-- | src/bnetz/bnetz.c | 12 | ||||
-rw-r--r-- | src/bnetz/bnetz.h | 2 | ||||
-rw-r--r-- | src/bnetz/dsp.c | 43 |
3 files changed, 40 insertions, 17 deletions
diff --git a/src/bnetz/bnetz.c b/src/bnetz/bnetz.c index 9a33b3a..f11ef3c 100644 --- a/src/bnetz/bnetz.c +++ b/src/bnetz/bnetz.c @@ -703,7 +703,7 @@ inval: return -CAUSE_NOCHANNEL; } - PDEBUG(DBNETZ, DEBUG_INFO, "Call to mobile station, paging station id '%s'\n", dialing); + PDEBUG_CHAN(DBNETZ, DEBUG_INFO, "Call to mobile station, paging station id '%s'\n", dialing); /* 4. trying to page mobile station */ bnetz->callref = callref; @@ -741,11 +741,11 @@ void call_out_disconnect(int callref, int cause) case BNETZ_SELEKTIVRUF_EIN: case BNETZ_SELEKTIVRUF_AUS: case BNETZ_RUFBESTAETIGUNG: - PDEBUG(DBNETZ, DEBUG_NOTICE, "Outgoing disconnect, during paging, releasing!\n"); + PDEBUG_CHAN(DBNETZ, DEBUG_NOTICE, "Outgoing disconnect, during paging, releasing!\n"); bnetz_release(bnetz, TRENN_COUNT); break; case BNETZ_RUFHALTUNG: - PDEBUG(DBNETZ, DEBUG_NOTICE, "Outgoing disconnect, during alerting, releasing!\n"); + PDEBUG_CHAN(DBNETZ, DEBUG_NOTICE, "Outgoing disconnect, during alerting, releasing!\n"); bnetz_release(bnetz, TRENN_COUNT); break; default: @@ -780,17 +780,17 @@ void call_out_release(int callref, int __attribute__((unused)) cause) switch (bnetz->state) { case BNETZ_GESPRAECH: - PDEBUG(DBNETZ, DEBUG_NOTICE, "Outgoing release, during call, releasing!\n"); + PDEBUG_CHAN(DBNETZ, DEBUG_NOTICE, "Outgoing release, during call, releasing!\n"); bnetz_release(bnetz, TRENN_COUNT); break; case BNETZ_SELEKTIVRUF_EIN: case BNETZ_SELEKTIVRUF_AUS: case BNETZ_RUFBESTAETIGUNG: - PDEBUG(DBNETZ, DEBUG_NOTICE, "Outgoing release, during paging, releasing!\n"); + PDEBUG_CHAN(DBNETZ, DEBUG_NOTICE, "Outgoing release, during paging, releasing!\n"); bnetz_release(bnetz, TRENN_COUNT); break; case BNETZ_RUFHALTUNG: - PDEBUG(DBNETZ, DEBUG_NOTICE, "Outgoing release, during alerting, releasing!\n"); + PDEBUG_CHAN(DBNETZ, DEBUG_NOTICE, "Outgoing release, during alerting, releasing!\n"); bnetz_release(bnetz, TRENN_COUNT); break; default: diff --git a/src/bnetz/bnetz.h b/src/bnetz/bnetz.h index 5e5a7f2..b4d8487 100644 --- a/src/bnetz/bnetz.h +++ b/src/bnetz/bnetz.h @@ -2,8 +2,8 @@ /* fsk modes of transmission */ enum dsp_mode { - DSP_MODE_AUDIO, /* stream audio */ DSP_MODE_SILENCE, /* sending silence */ + DSP_MODE_AUDIO, /* stream audio */ DSP_MODE_0, /* send tone 0 */ DSP_MODE_1, /* send tone 1 */ DSP_MODE_TELEGRAMM, /* send "Telegramm" */ diff --git a/src/bnetz/dsp.c b/src/bnetz/dsp.c index 93ba712..d91780f 100644 --- a/src/bnetz/dsp.c +++ b/src/bnetz/dsp.c @@ -17,6 +17,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#define CHAN bnetz->sender.kanal + #include <stdio.h> #include <stdint.h> #include <stdlib.h> @@ -81,7 +83,7 @@ int dsp_init_sender(bnetz_t *bnetz) return -EINVAL; } - PDEBUG(DDSP, DEBUG_DEBUG, "Init DSP for 'Sender'.\n"); + PDEBUG_CHAN(DDSP, DEBUG_DEBUG, "Init DSP for 'Sender'.\n"); audio_init_loss(&bnetz->sender.loss, LOSS_INTERVAL, bnetz->sender.loss_volume, LOSS_TIME); @@ -121,7 +123,7 @@ int dsp_init_sender(bnetz_t *bnetz) /* Cleanup transceiver instance. */ void dsp_cleanup_sender(bnetz_t *bnetz) { - PDEBUG(DDSP, DEBUG_DEBUG, "Cleanup DSP for 'Sender'.\n"); + PDEBUG_CHAN(DDSP, DEBUG_DEBUG, "Cleanup DSP for 'Sender'.\n"); if (bnetz->telegramm_spl) { free(bnetz->telegramm_spl); @@ -139,7 +141,7 @@ static void fsk_receive_tone(bnetz_t *bnetz, int bit, int goodtone, double level /* lost tone because it is not good anymore or has changed */ if (!goodtone || bit != bnetz->tone_detected) { if (bnetz->tone_count >= TONE_DETECT_TH) { - PDEBUG(DDSP, DEBUG_DEBUG, "Lost %.0f Hz tone after %d ms.\n", fsk_bits[bnetz->tone_detected], bnetz->tone_count); + PDEBUG_CHAN(DDSP, DEBUG_DEBUG, "Lost %.0f Hz tone after %d ms.\n", fsk_bits[bnetz->tone_detected], bnetz->tone_count); bnetz_receive_tone(bnetz, -1); } if (goodtone) @@ -156,7 +158,7 @@ static void fsk_receive_tone(bnetz_t *bnetz, int bit, int goodtone, double level if (bnetz->tone_count >= TONE_DETECT_TH) audio_reset_loss(&bnetz->sender.loss); if (bnetz->tone_count == TONE_DETECT_TH) { - PDEBUG(DDSP, DEBUG_INFO, "Detecting continuous tone: %.0f:Level=%3.0f%% Quality=%3.0f%%\n", fsk_bits[bnetz->tone_detected], level * 100.0, quality * 100.0); + PDEBUG_CHAN(DDSP, DEBUG_INFO, "Detecting continuous tone: %.0f:Level=%3.0f%% Quality=%3.0f%%\n", fsk_bits[bnetz->tone_detected], level * 100.0, quality * 100.0); bnetz_receive_tone(bnetz, bnetz->tone_detected); } } @@ -330,10 +332,10 @@ static int fsk_telegramm(bnetz_t *bnetz, int16_t *samples, int length) next_telegramm: if (!bnetz->telegramm) { /* request telegramm */ -// PDEBUG(DDSP, DEBUG_DEBUG, "Request new 'Telegramm'.\n"); +// PDEBUG_CHAN(DDSP, DEBUG_DEBUG, "Request new 'Telegramm'.\n"); telegramm = bnetz_get_telegramm(bnetz); if (!telegramm) { - PDEBUG(DDSP, DEBUG_DEBUG, "Stop sending 'Telegramm'.\n"); + PDEBUG_CHAN(DDSP, DEBUG_DEBUG, "Stop sending 'Telegramm'.\n"); return length; } bnetz->telegramm = 1; @@ -382,12 +384,12 @@ void sender_send(sender_t *sender, int16_t *samples, int length) again: switch (bnetz->dsp_mode) { - case DSP_MODE_AUDIO: - jitter_load(&bnetz->sender.audio, samples, length); - break; case DSP_MODE_SILENCE: memset(samples, 0, length * sizeof(*samples)); break; + case DSP_MODE_AUDIO: + jitter_load(&bnetz->sender.audio, samples, length); + break; case DSP_MODE_0: fsk_tone(bnetz, samples, length, 0); break; @@ -407,13 +409,34 @@ again: } } +const char *bnetz_dsp_mode_name(enum dsp_mode mode) +{ + static char invalid[16]; + + switch (mode) { + case DSP_MODE_SILENCE: + return "SILENCE"; + case DSP_MODE_AUDIO: + return "AUDIO"; + case DSP_MODE_0: + return "TONE 0"; + case DSP_MODE_1: + return "TONE 1"; + case DSP_MODE_TELEGRAMM: + return "TELEGRAMM"; + } + + sprintf(invalid, "invalid(%d)", mode); + return invalid; +} + void bnetz_set_dsp_mode(bnetz_t *bnetz, enum dsp_mode mode) { /* reset telegramm */ if (mode == DSP_MODE_TELEGRAMM && bnetz->dsp_mode != mode) bnetz->telegramm = 0; - PDEBUG(DDSP, DEBUG_DEBUG, "DSP mode %d -> %d\n", bnetz->dsp_mode, mode); + PDEBUG_CHAN(DDSP, DEBUG_DEBUG, "DSP mode %s -> %s\n", bnetz_dsp_mode_name(bnetz->dsp_mode), bnetz_dsp_mode_name(mode)); bnetz->dsp_mode = mode; } |