Commit Graph

21 Commits (edd1b362e7c0379801a47b5b5c3d3e07e4039d5e)

Author SHA1 Message Date
Mooneer Salem edd1b362e7
Relicense radio integration code under BSD license. (#1255)
* Relicense radio integration code under BSD license.

* Fix misspelling.
2026-03-18 14:06:44 -07:00
Mooneer Salem b200766857
Use C port of RADEV1. (#1251)
* WIP integration of radae_nopy.

* Use tmiw fork of radae_nopy.

* Add additional unit test debugging.

* Update to reflect making RADE a shared library again.

* Fix Windows installer generation.

* TBD: Disable Windows reporting test as Python isn't available for mock rig.

* Remove rade_integ.

* Remove Python from binary builds.

* Forgot to remove rade_integ from lint.

* Additional CI build fixes.

* More build fixes.

* Fix Flex/KA9Q compiler errors.

* Attempt to fix macOS tests.

* Force Homebrew macOS.

* Try venv for macOS.

* Fix remaining macOS test failures.

* Python is actually on the GitHub runner, let's see if RADE Reporting test will work.

* Update documentation and add PR #1251 to changelog.
2026-03-17 16:07:16 -07:00
Mooneer Salem 15b70a30e4
Flex: Terminate cleanly on receiving SIGHUP. (#1214)
* Flex: Terminate cleanly on receiving SIGHUP.

* Add PR #1214 to changelog.
2026-02-06 20:20:58 -08:00
Mooneer Salem f4a35367d0
Hamlib: Add checking prior to retrieving minimum/maximum baud rates. (#1209)
* Hamlib: Add checking prior to retrieving minimum/maximum baud rates.

* Make sure whitespace is removed from rig name during config load.

* Add PR #1209 to changelog.

* Fix possible deadlock in ThreadedTimer.

* Do not trim rig names from library, only when comparing.

* Fix ODR violation in g_tx.
2026-02-02 14:37:17 -08:00
Mooneer Salem 88de3cef24
Various radio integration improvements (#1179)
* Flex: Report SNR on spots added to SmartSDR.

* KA9Q: Add --reporting-message.

* Add PR #1179 to changelog.
2026-01-16 22:58:13 -08:00
Mooneer Salem dd136c8f01
Flex: Allow user-configurable spot timeout (default 10 minutes). (#1169)
* Flex: Allow user-configurable spot timeout (default 10 minutes).

* Fix compiler error.

* Add list of command options to README.

* Add PR #1169 to changelog.

* Another attempt at fixing macOS race condition.

* Display Hamlib version in Help->About.
2026-01-08 17:20:06 -08:00
Mooneer Salem a459478d86
Flex: add command line option to adjust RX volume. (#1159)
* Flex: add command line option to adjust RX volume.

* Add missed change to ensure -r works.

* Add PR #1159 to changelog.
2026-01-06 09:06:36 -08:00
Mooneer Salem e97f04aaa0
Flex: add signal handler for SIGTERM. (#1160)
* Flex: add signal handler for SIGTERM.

* Fix CMake warnings from previous PR.

* Add PR #1160 to changelog.
2026-01-03 09:15:24 -08:00
Mooneer Salem e68dd18518
Fix memory corruption when stopping and starting different playback files. (#1157)
* Fix memory corruption when stopping and starting different playback files.

* Add PR #1157 to changelog.

* Enable JIT for those who happen to manually compile integrations.

* Avoid spurious log output during tests.

* Use acquire/release semantics in PlaybackStep atomics.

* Oops, need to use acquire for load.
2025-12-31 23:13:20 -08:00
Mooneer Salem 79cffa64a7
Flex: add requested command line options for AppImage. (#1154)
* Flex: add requested command line options for AppImage.

* Fix issue with grid square override during testing.

* Add PR #1154 to changelog.
2025-12-30 14:14:07 -08:00
Mooneer Salem be17defbd8
Flex: Allow Ctrl-C to clean up the waveform. (#1144)
* Flex: Allow Ctrl-C to clean up the waveform.

* Make previous code actually work.

* workaround radio crash (#1146)

* Add PR #1144 and #1146 to changelog.

---------

Co-authored-by: Andrew Rodland <andrew@cleverdomain.org>
2025-12-25 09:35:30 -08:00
Mooneer Salem 1aca1c394c
Flex: use random port for VITA socket after connect. (#1141)
* Flex: use random port for VITA socket after connect.

* Make PR actually work.

* Add PR #1141 to changelog.

* Enable x86_64 AppImage build for Flex waveform.
2025-12-23 14:46:10 -08:00
Mooneer Salem 2ddb309d95
Flex/KA9Q: Only report if not hidden. (#1140)
* Flex/KA9Q: Only report if not hidden.

* g_queueResync should be atomic.

* Forgot to provide new atomic value.

* Make TX/RX thread objects global to ensure they deinitialize before FreeDVInterface object.

* Add PR #1140 to changelog.
2025-12-23 09:04:15 -08:00
Mooneer Salem 0514dfc71e
Flex: Report SNR to SmartSDR. (#1119)
* Flex: Report SNR to SmartSDR.

* Add PR #1119 to changelog.
2025-12-13 17:45:29 -08:00
Mooneer Salem d6b3f78bba
Enable mimalloc only on Windows and macOS. (#1118)
* Enable mimalloc only on Windows and macOS.

* Add PR #1118 to changelog.

* Enable mimalloc on AppImages.
2025-12-03 10:06:01 -08:00
Mooneer Salem b023b97d11
Upgrade built-in Python to 3.14.0. (#1109)
* Upgrade built-in Python to 3.14.0.

* Need to update GH environment for Windows Python 3.14.

* Forgot to adjust path for pip.

* Additional forgotten change.

* TEST ONLY: Use non-main for RADE.

* Use Python 3.14 for AppImages.

* Need to exclude 3.14 DLL during installer step.

* Update ASAN suppressions for 3.14.

* Revert "TEST ONLY: Use non-main for RADE."

This reverts commit 14b711b5a9.

* Use rade_src instead of rade_integ_src.

* Update AppRun scripts.

* Upgrade custom PyTorch macOS wheel to 2.9.1 and Python 3.14.

* PYTHONOPTIMIZE doesn't seem to work on macOS now.

* Apparently PYTHONOPTIMIZE was in there twice.

* Reenable PYTHONOPTIMIZE, disable built-in mimalloc.

* Disable mimalloc in GH Actions as well.

* Try reenabling mimalloc just for Linux.

* Add PR #1109 to changelog.

* Remove mimalloc altogether.

* Forgot to clean up mimalloc code in source files.

* Lock PyTorch release inside GH Actions.
2025-11-30 19:02:40 -08:00
Mooneer Salem 539bd55969
Set thread names for additional threads in system. (#1103)
* Set thread names for additional threads in system.

* Fix linting errors.

* Add additional thread names for Mac and Windows.

* Use const reference for SetThreadName.

* Fix more linting errors.

* Fix PortAudio compiler error.

* Add missed thread names.

* VOX tone atomic doesn't need seq_cst.

* Only wake up non-RT playback thread if FIFO is less than half full.

* Only wake up the TX/RX threads after all audio received.

* Optimized RADE is only for radio integrations.

* Add missed changes.

* Need to build integ in order for lint to work.

* remove invalid target.

* Fix additional Linux compiler failures from previous changes.

* Additional compiler fixes.

* Exclude duplicate tests.

* Fix macOS CI failure.
2025-11-24 14:55:13 -08:00
Mooneer Salem fb2c311194
Flex waveform improvements (#1088)
* Flex: Improve handling of slice switching.

* Add missed semicolons.

* Add validation for stream IDs coming over VITA port.

* Fix AppRun generation bug introduced by previous PR.

* Enable PSK Reporter support.

* Fix issue where ThreadedTimer pegs the CPU on RPi/aarch64.

* Fix ThreadedTimer test failures.

* Send reports to PSK Reporter every five minutes.
2025-11-13 08:05:04 -08:00
Mooneer Salem f938978a66
Enable clang-tidy during CI process (#1086)
* Enable clang-tidy during CI process and fix performance-* rule violations.

* Install clang-tidy package.

* Need to actually build to get all dependencies.

* Need to install minimum Python dependencies for linting.

* Build mimalloc too.

* Enable clang-analyzer rules.

* Enable concurrency rules.

* Add linting to macOS runner.

* Add macOS specific checks.

* Try different way of calling clang-tidy.

* Add clang-tidy to PATH.

* 'Build' using clang.

* Try LLVM 20.

* Use GitHub LLVM.

* LLVM 21 again.

* Use install-llvm action to install LLVM 20.

* Don't be so strict with version number.

* Suppress macOS specific lint errors.

* Fix missed errors.

* Fix Windows compiler error.

* Experiment: also enable clang-tidy for Windows build.

* Revert TcpConnectionHandler change.

* Another attempt at fixing Windows compiler error.

* Need to swap arguments on Windows.

* Add PR #1086 to changelog.

* Need run-clang-tidy on Windows.

* Disable clang-tidy for Windows builds.

* Remove commented code.

* Revert to master version of Windows CI script

* Try revert again
2025-11-08 15:20:57 -08:00
Mooneer Salem 4d4e556969
Force all compiler warnings to report as errors. (#1076)
* Force all compiler warnings to report as errors.

* Fix missed errors.

* Additional Linux and Windows compiler fixes.

* Additional macOS audio compiler error fixes.

* Fix Windows build once and for all.

* Fix remaining uninitialized warnings.

* Fix data race in Socket.IO handling.

* We want to immediately fail when running sanitizers, not re-attempt tests.

* Revert accidental removals in macOS CI config.

* Add PR #1076 to changelog.
2025-11-01 13:54:30 -07:00
Mooneer Salem 394dc76e4f
Add KA9Q radio integration to FreeDV source tree. (#1066)
* Reorganize FlexRadio integration so we can share code with KA9Q console app.

* Fix rtkit file path.

* Use same variable for both static and non-static Speex DSP library.

* Update Linux CI to reflect new paths.

* Refactor more common code for use by other integrations.

* Create skeleton KA9Q appplication, need to read/write from/to stdin/stdout to get basics up.

* Need to link against fdv_os_wrapper in common.

* Actually fix Linux linker failure in Flex waveform.

* Allow software name to be passed into ReportingController.

* Read audio from stdin and write to stdout.

* Fix crash on shutdown due to threads not being freed.

* Add pauses to make sure audio is handled live (i.e. not faster than RT).

* Add command line options to freedv-ka9q tool.

* Flesh out ka9q README.

* Clean up AppImage generation and enable CI for KA9Q integration.

* Add missed speex dependency.

* Forgot to change references to APPEXEC.

* Fix app paths for AppImages.

* Force AppImage file name.

* Use separate desktop files to avoid needing to override linuxdeploy.

* Use echo instead of ls for AppImage name generation.

* Fix test-appimage and enable verification on ARM targets.

* Need to use pattern, not glob.

* Need to use step ID.

* More fixes.

* Re-add accidentally deleted ./ from Fedora container execution.

* Add arm64 Fedora testing.

* Use RADE main again as a test.

* Revert "Use RADE main again as a test."

This reverts commit 60559ef0bc.

* Switch to raw file I/O.

* Update command line usage message.

* Add PR #1066 to changelog.

* Fix compiler error.

* Report RX only to FreeDV Reporter to indicate we can't TX.

* Fix crash on shutdown.

* Actually have audio process live.

* Fix typo in build_linux.sh.

* Enable ThreadSanitizer checks for CI builds.

* Make sure we're not actually checking for test results with tsan.

* Enable sanitizers on 22.04 and ARM runners.

* Suppress sanitizer errors in Ubuntu 22.04.

* We probably need Clang 22 to have Ubuntu 22.04 RTsan tests work properly.

* Use LLVM 22 for ASAN too to see if that will suppress the final leaks.

* Add missed lock in onRecvEnd.

* [no-ci] Update documentation.

* [no-ci] Further tweaks to user manual wording.
2025-10-29 08:42:48 -07:00