diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/host/layer23/src/mobile/gsm48_rr.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/host/layer23/src/mobile/gsm48_rr.c b/src/host/layer23/src/mobile/gsm48_rr.c index c074323f..a4cc28a0 100644 --- a/src/host/layer23/src/mobile/gsm48_rr.c +++ b/src/host/layer23/src/mobile/gsm48_rr.c @@ -5502,7 +5502,19 @@ int gsm48_rr_init(struct osmocom_ms *ms) start_rr_t_meas(rr, 1, 0); - rr->audio_mode = AUDIO_TX_MICROPHONE | AUDIO_RX_SPEAKER; + /* Determine TCH frame I/O target */ + switch (ms->settings.audio.io_target) { + case AUDIO_IO_HARDWARE: /* L1 hardware (e.g. Calypso DSP) */ + rr->audio_mode = AUDIO_RX_SPEAKER | AUDIO_TX_MICROPHONE; + break; + case AUDIO_IO_SOCKET: /* External MNCC application (e.g. LCR) */ + case AUDIO_IO_GAPK: /* Built-in GAPK-based back-end */ + rr->audio_mode = AUDIO_RX_TRAFFIC_IND | AUDIO_TX_TRAFFIC_REQ; + break; + case AUDIO_IO_NONE: /* Nothing, don't care about TCH */ + default: + rr->audio_mode = 0x00; + } return 0; } |