Commit Graph

149 Commits

Author SHA1 Message Date
Andreas Eversberg 6e2fd793ac Increase compiler warnings and fix them 2024-04-05 21:51:41 +02:00
Andreas Eversberg b613123291 Open sound device for capture or playback only, if full duplex is not required 2024-03-30 23:28:13 +01:00
Andreas Eversberg a20637825a Audio rework, new jitter buffer
Jitter buffer is now based on packets, not on samples. The frames are
dejittered in received form. After reading from jitter buffer, they are
decoded in correct order. If a frame is missing, it is concealed by
repeating audio.
2024-03-30 23:28:05 +01:00
Andreas Eversberg 2dcf10b1b1 Add metering information from osmo-cc to B-Netz and C-Netz
Untested!
2024-02-18 16:23:31 +01:00
Andreas Eversberg 3158c48365 Move from local to external osmo* libraries
src/libdebug -> libosmocore
src/libselect -> libosmocore
src/libtimer -> libosmocore
src/libosmocc -> libosmo-cc
src/libg711 -> libosmo-cc
2024-02-18 16:23:29 +01:00
Andreas Eversberg 9f662d309f Add libselect to use select instead of polling all file descriptors 2023-01-21 15:15:52 +01:00
Andreas Eversberg f4abbaf027 Make libtimer to be osmo_* compatible in some places 2023-01-21 15:15:39 +01:00
Andreas Eversberg fd3b4dae50 FSK modulator improvements
1. Phase is now changed proportional to the time of the bit change, if
   it happens somewhere between samples. The amount of phase change per
   bit is now the same for all bits, no matter how many samples
   currently lay inside this bit.

2. IIR filter is removed, because it causes distortions. A cosine shape
   is now used to transit between phase change of F0 to F1 and vice
   versa. This limits the spectrum. This filter is optional.
2022-12-16 12:43:19 +01:00
Andreas Eversberg 2b7efedc48 Refactoring jitter buffer
Features are:
 * Packet based buffer
 * Random in, first out
 * Adaptive delay compensation (voice)
 * Fixed delay (data, optionally MODEM/FAX)
 * Interpolation of missing frames
 * Any sample size
2022-10-23 16:56:27 +02:00
Andreas Eversberg fd5ac46b86 B-Netz: Added more base stations, improved display of station list 2022-02-18 21:11:55 +01:00
Andreas Eversberg 423bc42429 Refactoring validity check and prefix processing of dialed number
Command line help shows how many digits and what prefixes can be dialed.

Giving a station ID via command line will be checked for being valid.

The number to call the mobile statione will be checked for being valid.

Prefixes that are defined for a nework will be removed from station ID
automatically.

Multiple station ID lengths are supported:
 * C-Netz: 7 or 8 digits, depending on area code length
 * A-Netz: 5 or 7 digits; number is truncated to last 5 digits.
 * IMTS/MTS: 5 or 7 digits, depending on phone's selector switch.
2021-11-07 20:00:42 +01:00
Andreas Eversberg 922b4af362 Refactoring ASCCI-Art image printing 2021-11-07 08:55:46 +01:00
Andreas Eversberg 6fa74a1296 Refactor global variables for signal processing
These are:
	device, sample rate, buffer, latency
Called now:
	dsp_device, dsp_samplerate, dsp_buffer, dsp_latency
Call audio device:
	call_device, call_samplerate, call_buffer
2021-10-24 06:25:10 +02:00
Andreas Eversberg 1b16029ac6 B-Netz: Improved detection of tone/frame
- Be less tollerant to levels when detcting tones.
- Squelch applies to tone detector also
2021-09-17 16:17:05 +02:00
Andreas Eversberg 3d9481177b Config file path can be changed by command line option "--config <path>" 2021-03-20 11:19:37 +01:00
Andreas Eversberg 8c0a25f3b0 Added special strdup to liboptions, to prevent memory leaks for option strings
If you are doing memory leak debugging you don't want to see any leaks when
stopping the program.
2021-03-07 10:38:38 +01:00
Martin Hauke a07764f0d9 Fixed typos in cli output and source code comments 2021-01-03 09:57:03 +01:00
Andreas Eversberg 2cb2d5f3ac Replaced MNCC by OSMO-CC 2020-12-29 11:11:41 +01:00
Andreas Eversberg d0d14e2acf Add G.711 codec (alaw / ulaw conversion) 2020-12-29 11:11:41 +01:00
Andreas Eversberg ed72e29dbb Add tx-gain option 2020-10-29 07:39:27 +01:00
Andreas Eversberg f132059edf Add clock function to call interface
Implementations will have a clock to play tones, if no clock is
available from a transceiver.
2020-01-12 11:17:58 +01:00
Andreas Eversberg 150a77b69d Add support for AM to libmobile and libsdr 2019-12-08 17:26:44 +01:00
Andreas Eversberg c2f14834e5 Rename dbm0 (level) to speech (level)
In mobile communications we use speech level instead of milliwatts.
The deviation (FM) is always based on speech level, not on 1 milliwatt.
2019-12-08 17:24:36 +01:00
Andreas Eversberg db1fee9698 minor code cleanup 2019-11-29 15:58:59 +01:00
Andreas Eversberg 445af0c0a2 Add filter switch to FSK modulator 2019-11-29 15:58:32 +01:00
Andreas Eversberg 6dcc8baad4 Split FSK modem code into separate modulator and demodulator 2019-11-29 15:58:32 +01:00
Andreas Eversberg af4bcb1522 Remove useless debug lines 2019-08-26 21:10:33 +02:00
Andreas Eversberg d6579c1244 Allow giving alphanumeric channels (Prepare for IMTS) 2019-08-26 21:10:20 +02:00
Martin Hauke 75765d49b7 Fixed many typos in output and source code comments 2019-07-15 21:14:52 +02:00
Andreas Eversberg 1eac087935 Output ASCII art image after all init functions (inside main_mobile.c) 2019-06-30 14:51:01 +02:00
Andreas Eversberg 8c6f78fd63 B-Netz: Make debug text more plausible 2019-05-30 18:17:55 +02:00
Andreas Eversberg e16a2dd548 B-Netz: Add base stations of the Netherlands 2018-12-23 19:26:59 +01:00
Andreas Eversberg 32025915d5 Make run faster on ARM CPUs using fast math approximation
Use --fast-math to use sine/cosine tables and approximate atan2.
2018-11-10 15:18:28 +01:00
Andreas Eversberg f4988297a6 B-Netz: Refactoring tone and quality detection 2018-06-05 07:09:51 +02:00
Andreas Eversberg 4e2ad7dae1 Fix compiler warning in conjunction with strncpy 2018-05-21 19:39:09 +02:00
Andreas Eversberg 3b81007210 Refactoring command line option handling
* Use own function to define and parse command line options

 * Command line options can be defined by config file also

 * --limesdr allows to auto-set required SDR option for LimeSDR
2018-05-21 19:39:09 +02:00
Andreas Eversberg 56f07a473d B-Netz: Add dial sequence generator to emulate call setup from mobile phone 2018-02-15 08:00:20 +01:00
Andreas Eversberg a5aee82e53 B-Netz: Some cleanups 2018-02-15 08:00:20 +01:00
Andreas Eversberg 6277753574 Minor debug message corrections 2018-02-15 08:00:18 +01:00
Andreas Eversberg 1ef1b93776 B-Netz: Give warning about possibly unsupported channels 2018-02-15 08:00:16 +01:00
Andreas Eversberg 6df0eb46cc Fix compiler warnings 2018-02-15 08:00:15 +01:00
Andreas Eversberg 4cc33c5b0d Make sound card support (Alsa) optional 2018-02-15 08:00:15 +01:00
Andreas Eversberg 0b129d3c7f libdisplay: Removing dependency from libmobile 2018-02-15 08:00:14 +01:00
Andreas Eversberg 7c42d57d6e B-Netz: Minor fixes to timings and debug messages 2017-12-05 11:10:46 +01:00
Andreas Eversberg 021c695883 Restructure: Fixing library linking order 2017-12-03 08:46:00 +01:00
Andreas Eversberg 1a341f6b4e Restructure: Move debug from common code to 'libdebug' 2017-12-03 08:45:58 +01:00
Andreas Eversberg 016e72d6d7 Restructure: Move display from common code to 'libdisplay' 2017-12-03 08:45:55 +01:00
Andreas Eversberg ab59a26a51 Restructure: Move mobile from common code to 'libmobile' 2017-12-03 08:45:54 +01:00
Andreas Eversberg ed31a26eba Restructure: Move sample from common code to 'libsample' 2017-12-03 08:45:48 +01:00
Andreas Eversberg 1650cc5ad2 Restructure: Move sdr from common code to 'libsdr' 2017-12-03 08:45:45 +01:00