OnAir

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)

  1. Install MSYS2 and open MSYS2 UCRT64 (not MINGW64).
  2. pacman -Syu (run it twice if the window closes).
  3. pacman -S --needed git zip mingw-w64-ucrt-x86_64-{gcc,cmake,ninja,pkgconf,ffmpeg,glfw,hackrf,soapysdr,libiconv}
  4. Clone the repository, then cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DDECT2_BUILD_APP=ON and cmake --build build.
  5. Run ./build/dect2.exe from 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.