mirror of
https://git.vladimir.cc/vladimir/libewsdr_dmr.git
synced 2026-08-25 17:27:33 +00:00
49 lines
1.7 KiB
Markdown
49 lines
1.7 KiB
Markdown
# EWSDR DMR native adapter
|
|
|
|
This optional shared library isolates `mbelib` and the imported DMR core from
|
|
the Lazarus application. It intentionally does not depend on PulseAudio,
|
|
ncurses, libsndfile or the DSD-FME command-line frontend.
|
|
|
|
Build on Linux:
|
|
|
|
```sh
|
|
cmake -S native/dmr -B build/dmr -DCMAKE_BUILD_TYPE=Release
|
|
cmake --build build/dmr
|
|
```
|
|
|
|
The Pascal burst/FEC layer extracts three row-major `char[4][24]` AMBE+2
|
|
frames from each selected voice-slot burst and feeds them through this ABI.
|
|
Decoded 8 kHz mono PCM is resampled to EWSDR's 48 kHz speaker/web route.
|
|
|
|
For a build-tree run, either copy `libewsdr_dmr.so` beside the EWSDR executable
|
|
or add `build/dmr` to `LD_LIBRARY_PATH`. `cmake --install build/dmr` installs the
|
|
adapter system-wide. The GUI and daemon remain usable (with metadata but no
|
|
voice) when this optional library is absent.
|
|
|
|
## Jenkins cross-build for Windows x64
|
|
|
|
Use `jenkins/build-mbelib-win64.sh` in a Jenkins job that checks out mbelib.
|
|
It creates `install-win64` with `mbelib.h`, the import library, `libmbe.dll`,
|
|
and the MinGW runtime DLLs.
|
|
|
|
Configure the mbelib job to archive `install-win64/**`. In the EWSDR job, copy
|
|
that artifact to `deps/mbelib` and then run
|
|
`native/dmr/jenkins/build-ewsdr-dmr-win64.sh` before `lazbuild`. The script
|
|
expects the resulting prefix at
|
|
`$WORKSPACE/deps/mbelib/install-win64`, builds from
|
|
`$WORKSPACE/native/dmr`, and stages the DLL bundle in
|
|
`$WORKSPACE/bin/x86_64-win64` beside the future `ewsdr.exe`. All paths can be
|
|
overridden with environment variables.
|
|
|
|
Declarative/Scripted Pipeline example for the artifact transfer:
|
|
|
|
```groovy
|
|
copyArtifacts(
|
|
projectName: 'mbelib',
|
|
selector: lastSuccessful(),
|
|
filter: 'install-win64/**',
|
|
target: 'deps/mbelib'
|
|
)
|
|
sh 'native/dmr/jenkins/build-ewsdr-dmr-win64.sh'
|
|
```
|