Build from source
You need a C++20 compiler, CMake 3.20 or newer, pkg-config, FFmpeg, libhackrf and GLFW. SoapySDR is optional.
macOS and Linux
# macOS brew install cmake pkg-config hackrf soapysdr libusb ffmpeg glfw # Debian / Ubuntu sudo apt install build-essential cmake pkg-config libhackrf-dev libsoapysdr-dev libusb-1.0-0-dev \ libglfw3-dev libavformat-dev libavcodec-dev libavutil-dev libswscale-dev libswresample-dev git clone https://github.com/adswill/OnAir.git && cd OnAir cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DDECT2_BUILD_APP=ON cmake --build build -j "$(getconf _NPROCESSORS_ONLN)" ctest --test-dir build
The app is build/dect2. Without a radio you can open an IQ recording through the IQ recording file source, or use the command-line receiver:
build/dect2cli --file capture.cs8 --rate 10 --format cs8 --play <service id>
Windows (MSYS2)
- Install MSYS2 and open MSYS2 UCRT64 (not MINGW64).
pacman -Syu(run it twice if the window closes).pacman -S --needed git zip mingw-w64-ucrt-x86_64-{gcc,cmake,ninja,pkgconf,ffmpeg,glfw,hackrf,soapysdr,libiconv}- Clone the repository, then
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DDECT2_BUILD_APP=ONandcmake --build build. - Run
./build/dect2.exefrom the same shell so Windows finds the DLLs.
Options and layout
Useful options: DECT2_UI_BACKEND (Metal or OpenGL3), DECT2_WITH_SOAPY, and DECT2_PORTABLE / DECT2_NO_SIMD for plain C++ paths on unusual CPUs.
core/ is the receiver library (demodulators, error correction, transport stream, player), app/ the graphical application, tools/ the command-line receiver and packaging scripts, tests/ the test suite. Pull requests are welcome on GitHub.