Commit Graph

738 Commits (4ec0a98f1266edb18ae570d7411bd92d0c7b0a96)

Author SHA1 Message Date
Mooneer Salem 4ec0a98f12
Reload current Git hash every time it changes. (#935)
* Make Git hash regenerate if changed.

* Must provide version and tag in source code run.

* Add PR #935 to changelog.

* Oops, need to fix some compiler errors.
2025-06-15 07:22:39 -07:00
Mooneer Salem c5a041c989
Easy Setup: Use card names instead of device names for generating device list (#932)
* WIP code to get card/port names.

* Fix Linux compiler errors.

* Ensure that PulseAudio is adding card names when being interrogated.

* Initial logic to use card names instead of device names in Easy Setup dialog.

* WASAPI: Make sure Easy Setup can still work with FlexRadio virtual devices.

* Remove Windows-specific logic from Easy Setup dialog code.

* Add PR #932 to changelog.
2025-06-14 01:53:49 -07:00
Mooneer Salem 56e39f05f1
Work around Linux bug preventing some flag emojis from being fully deleted on backspace. (#931)
* Work around Linux bug preventing some flag emojis from being fully deleted on backspace.

* Make cursor appear in the expected location after deletion.

* Add PR #931 to changelog.
2025-06-12 08:28:33 -07:00
Mooneer Salem ed0d4cca2c
Fix GTK+ assertion after FreeDV Reporter has been open for a long time. (#929)
* Fix GTK+ assertion after FreeDV Reporter has been open for a long time.

* Add PR #929 to changelog.
2025-06-11 19:19:23 -07:00
Mooneer Salem 3f61509569
Update Hamlib to 4.6.3 (macOS/Windows). (#930)
* Update Hamlib to 4.6.3 (macOS/Windows).

* Add PR #930 to changelog.

* Revert inadvertent change.
2025-06-11 13:00:45 -07:00
Mooneer Salem 03a4d87970
Only resort if we actually get new data from the server. (#915)
* Only resort if we actually get new data from the server.

* Further reduction in CPU usage by having highlights clear on a slightly longer time interval.

* Further CPU reductions by only re-sorting if data's actually changed.

* Further filter by current sorting column.

* Oops, sorting column should be the same as the modified column to trigger sorting.

* Fix crash when exiting FreeDV.

* Check IsValid() to avoid assertion on wxWidgets 3.0.

* Fix other wxWidgets 3.0 assertions discovered during testing.

* Reduce CPU load used by rendering frequency updates by only sending updates to the server when the frequency changes.

* Add PR #915 to changelog.
2025-06-10 08:54:20 -07:00
Mooneer Salem f856cb2124
FreeDV Reporter: Fix issue with first column not being aligned properly with other columns. (#922)
* FreeDV Reporter: Fix issue with first column not being aligned properly with other columns in Windows.

* Add PR #922 to changelog.
2025-06-10 08:42:59 -07:00
Mooneer Salem 1b30e30ba7
Add note about using XWayland on Linux. (#926)
* Add note about using XWayland on Linux.

* Add PR #926 to changelog.
2025-06-10 08:25:09 -07:00
Karl Matthias bc8a8dc739
Add missing dependency for macOS builds (#925)
* Add missing dependency for macOS builds

* Add wget to MacPorts install line as well.

* Add PR #925 to changelog.

---------

Co-authored-by: Mooneer Salem <mooneer@gmail.com>
2025-06-09 12:26:16 -07:00
Mooneer Salem 337094f635
Extend WASAPI interface to support mix formats other than 16 bit integer. (#919)
* Extend WASAPI interface to support mix formats other than 16 bit integer.

* Have WASAPI do sample rate conversion. Shouldn't be necessary but eh.

* Add PR #919 to changelog.
2025-06-08 10:43:00 -07:00
Mooneer Salem dc9a693524
Fix typo causing RX radio device to remain open. (#918)
* Fix typo causing RX radio device to remain open.

* Add PR #918 to changelog.
2025-06-06 23:00:15 -07:00
Mooneer Salem 38b20a9e56
Increase sleep time before killing recording to resolve macOS test failures. (#917)
* Increase sleep time before killing recording to resolve macOS test failures.

* Add PR #917 to changelog.
2025-06-05 12:58:05 -07:00
Mooneer Salem d6ff70a7da
FreeDV Reporter: Force explicit background color when not highlighted. (#911)
* FreeDV Reporter: Force explicit background color when not highlighted.

* Add PR #911 to changelog.
2025-06-05 12:39:18 -07:00
Mooneer Salem 5bd401b03a
Fix compiler errors when using wxWidgets 3.0. (#914)
* Fix compiler errors when using wxWidgets 3.0.

* Add GH action to make sure we can compile on Ubuntu 22.04.

* Fix package name.

* Add PR #914 to changelog.

* Ensure only one build per branch happens at a time.
2025-06-05 12:36:24 -07:00
Mooneer Salem e9ec9347d9
Make sure RTSan-related code isn't added if not installed. (#900)
* Make sure RTSan-related code isn't added if not installed.

* Enable RTSan checks in GH Actions.

* Fix syntax error in GH action.

* Fix GCC compile failures.

* Use different GH workflow to get correct Clang installed.

* Split RTSan test into separate build and test steps

* Move LLVM installation to beginning in case there are side effects.

* Prevent dynamic resampling in AudioPipeline when playing back files.

* Mixed up sample calculation, causing tests to fail.

* Additional changes to see if it still hangs.

* Update cmake-macos.yml

* Do completion check after queuing to output FIFO.

* Fix buffer overflow.

* Some additional changes based on local testing.

* GH tests weren't actually being run through the resampler.

* Remove ExclusiveAccessStep files as they're not being used.

* Remove some logging that shouldn't be in RT context.

* Add reset() to IPipelineStep to avoid repeated deallocations and reallocations of the TX pipeline.

* Fix segfault from previous changes.

* Remove RADE specific logging in RT context and suppress RTSan for RADE EOO handling.

* Disable RTSan for RADE text handling.

* Try disabling real-time for macOS.

* Force Windows 2022.

* Revert "Try disabling real-time for macOS."

This reverts commit c8ee871406.

* Experiment: use O(1) heap allocator for Codec2.

* Fix patch commands.

* thread_local is only in C++11 and above.

* Force codec2 folder to be removed every call.

* Update codec2 patch.

* Fix Windows compiler error.

* Oops, should be _aligned_malloc.

* Integrate codec2 into source tree so we don't need to deal with patch.

* Update Codec2 README.

* mbest needs to use o1heap too.

* Remove rtsan disable from FreeDV TX/RX steps.

* Bring back AudioPipeline change previously removed by master merge.

* Result resampler needs to be initialized on construction.

* Create resampler only if input and output rates don't match.

* Increase Codec2 RT heap size.

* Fix Windows failures.

* Ensure separate threads spawned from PipelineStep are also checked by RTSan.

* Support RTSan builds on macOS if user has appropriate LLVM.

* Remove no longer needed patch.

* Remove unneeded resettingThread property.

* Fix issue discovered during testing.

* Test: match Linux and macOS requested latency to Windows.

* Add PR #900 to changelog.
2025-06-05 08:17:24 -07:00
Mooneer Salem 4113e8a7ed
Improve Hamlib behavior during TX. (#893)
* Reenable timeouts once connected to the radio.

* 100ms might be a bit better.

* Request current frequency/mode every second (instead of every 5 seconds).

* Remove pre-PTT interrogation of frequency/mode.

* Increase Hamlib timeout to 500ms per user testing.

* Add PR #893 to changelog.

* Update comment.
2025-06-03 19:26:45 -07:00
Mooneer Salem 8099a335d8 Update month on changelog. 2025-06-02 22:09:54 -07:00
Mooneer Salem db08796ae5 RADE voice quality is slightly worse than Skype. 2025-06-02 19:45:49 -07:00
Mooneer Salem b23d07cffd Update squelch info re: RADE. 2025-06-01 13:53:55 -07:00
Mooneer Salem 302081199e Update user manual to remove legacy modes. 2025-06-01 13:31:58 -07:00
Mooneer Salem f18ecce751 Sync up with release Google Doc. 2025-05-31 19:09:05 -07:00
Mooneer Salem d51ae29cef Merge branch 'v2.0-dev' into merge-2.0-with-master 2025-05-28 07:52:31 -07:00
Mooneer Salem 0bcfaabfd4
Remove pre-PTT interrogation of frequency/mode. (#898)
* Remove pre-PTT interrogation of frequency/mode.

* Add PR #898 to changelog.
2025-05-28 07:47:49 -07:00
Mooneer Salem e56e258036 Added additional content to changelog. 2025-05-27 17:02:56 -07:00
Mooneer Salem 9345a56f69 Update changelog and version tags in preparation for 2.0.0 release. 2025-05-27 16:52:28 -07:00
Mooneer Salem 30c9e5b9c6
Remove 800XA, 700C, 2020 and 2020B. (#889)
* Remove 800XA, 700C, 2020 and 2020B from UI,

* Remove additional 700C references in UI.

* Remove 2020/AVX detection logic from codebase.

* Remove LPCNet from build scripts.

* Add PR #889 to changelog.

* Forgot to remove LPCNet from Windows installer generation.

* Generate Release build for GH workflows.

* Disable PSK Reporter reporting during test execution as invalid callsigns are used.

* Build type was being overwritten.

* Missed mutex removal.

* Temporarily use Instruments to trace macOS CI execution.

* Minor update.

* Use 2 minute window in xctrace to actually capture wanted events.

* Disable xctrace execution but keep in tests just in case.

* Hide main window during tests to prevent GUI from interfering.

* Experiment: set infifo2 max length to 30 seconds

* Oops, forgot to remove division from previous commit.

* Deallocation of PulseAudio stream should occur while mainloop is locked.

* Revert "Hide main window during tests to prevent GUI from interfering."

This reverts commit 69689bb927.

* Based on online code snippets nullptr for neg is fine.

* Clear PYTHONHOME if set on the user's system (Windows/macOS only).

* Bring back locking in TxRxThread just in case.

* Remove unneeded backslash.

* Revert "Bring back locking in TxRxThread just in case."

This reverts commit fc6a9f8797.

* Manually back out the changes instead of using git checkout.

* Use shared_ptr for LinkStep.

* Try removing the TX mode change mutex again.

* Try moving actual codec activity out of RT context.

* Fix compiler error.

* Fix issue preventing legacy modes from transmitting.

* Another attempt at preventing RX dropouts.

* Try putting mode TX into separate threads again.

* Only limit output samples if input samples were provided.

* Put codec RX back into RT context.

* Put TX on RT context.

* Remove unused code.

* Deallocation should occur only in the destructor.

* Fix Windows spectrum plot formatting issues.

* Prevent buffer overflow during TX/RX processing.

* Bring FRAME_DURATION back down to 10ms.

* We want to feed samples into the RADE/FreeDV TX/RX FIFOs regardless of whether there's room in the output.

* ParallelStep should only feed FRAME_DURATION ms worth of samples at a time.

* Sleep fallback should track FRAME_DURATION.

* Don't execute the parallel steps if there isn't enough room in the output FIFO.

* We really can only inject a portion of EOO samples at a time.

* Queue EOO as a single unit to ensure it gets transmitted as a unit.

* Allow ParallelStep to provide up to 4x the number of input samples as output.

* Back to processing 20ms frames.

* Run GH Linux tests using asan enabled.

* Suppress Python related memory leaks and Hamlib related invalid memory accesses.

* Forgot suppressions= in test execution.

* Add more leak suppressions based on GH output.

* Resolve memory leaks.

* Fix broken RadeTextTest.

* Additional suppressions from GH.

* Go back to processing TxNumSpeechSamples every TX cycle.

* Revert "Go back to processing TxNumSpeechSamples every TX cycle."

This reverts commit abe816d00b.

* Fix 1600 mode dropouts.

* Make TX single-threaded again.

* Revert back to last working pipeline logic (for fullduplex_* anyway).

* Revert most EOO behavior.

* Run AddressSanitizer tests separately as they interfere with real time audio.

* Need to start Xvfb etc. before asan tests.

* Only a subset of tests need to run with asan enabled.

* Fix issue causing PTT input not to work.

* Maybe we don't need to restart servers after all.

* Try using rtkit to ask for high priority instead of RT.

* Clear FIFOs a different way.

* Windows: determine minimum number of audio channels supported.
2025-05-26 12:29:47 -07:00
Mooneer Salem d405ee770c
Show /dev/tty.* devices on macOS. (#883)
* Show /dev/tty.* devices on macOS.

* Add PR #883 to changelog.
2025-05-15 07:07:05 -07:00
Mooneer Salem 3730fcd55a
Hamlib: improve behavior with Icom rigs, serial port PTT (#875)
* Re-attempt Hamlib connection without timeouts if failed.

* Add Hamlib error message to log.

* Remove timeouts.

* Only set ptt_pathname if using RTS or DTR.

* Various Hamlib fixes adapted from WSJT-X.

* Warning cleanup.

* Update changelog.

* Reset PTT type back to RIG to avoid issues when switching between RTS/DTR and CAT.

* Add support for CAT PTT using the Data port (vs. Mic).

* Update user manual.
2025-05-11 14:44:58 -07:00
Mooneer Salem 099a010a6e
macOS: Better handle when audio devices go away (#871)
* Automatically switch to new default audio device if the system loses existing one.

* Display error if non-default devices go away.

* Add device name to existing error strings.

* Add handler at engine level for device list changes. Does nothing yet.

* Prevent accidental deadlock when enqueuing functions onto ThreadedObject.

* Disable OnDeviceListChange logic; only handle active device disconnects.

* Attempt to restart devices if they stop unexpectedly.

* Defer stop to make sure remove handler runs first.

* Experiment: disable Python GC in RADE code to see if macOS pass rates improve.

* Fix possible deadlock issue in FreeDV Reporter code.

* Split out audio latency and PTT response time in logs per email discussion.

* Improve reliability of original PR logic by listening for AVAudioEngineConfigurationChangeNotification instead.

* Fix compiler error in GH environment.

* Make sure we join the new workgroup if the device ID changes.

* Remove unused code.

* Revert unnecessary ThreadedObject change.

* Remove extra whitespace.

* Revert ThreadedObject for real.

* Log audio underflows on macOS.

* Remove unneeded include.

* Get stuff off the audio thread that shouldn't be there.

* Make sure ThreadedObject doesn't hang.

* See if we can avoid FreeDV Reporter window crash on Windows.

* Tweak ThreadedObject event loop so we can execute more than one function between sleeps.

* Main window UI fixes:

1. Make FreeDV Mode indicator re-center itself every time it changes.
2. Add additional space for radio mode at bottom.

* Revert TapStep changes as we're better off not locking at all.

* Fix FreeDV Reporter tracking crash for real.

* Don't allow columns in FreeDV Reporter window to shrink.

* Warning cleanup.

* Try creating tiny column at end to fix Linux/Windows formatting problem.

* Remove minimum width logic as it didn't work.

* Sort equal items by connect time to keep rows stable.

* Fix deadlocks and crashes in the Audio Options window.

* Actually prevent same rows from moving around in FreeDV Reporter window.

* Deselect FreeDV Reporter row after filter change completes.

* Defer sending initial station info to FreeDV Reporter server until fully connected.

* Make sure we're not accessing invalid memory when getting audio device latency.

* Make sure PTT button is in the correct state when pushed.

* Fix From Mic plot rendering bug.

* Update changelog.
2025-05-07 14:19:58 -07:00
Mooneer Salem 2a290d809a
Enable color emojis in the FreeDV Reporter window (#861)
* WIP patch to wxWidgets to enable color emojis on Windows.

* WIP rewrite of FreeDV Reporter window to use wxDataViewCtrl.

* Apparently we need to associate the model before adding columns.

* Force render the Msg column using Direct2D, causing emojis to display in color.

* Move ReportMessageRenderer to a separate file.

* Only use ReportMessageRenderer on Windows. Also, make sure we don't show ellipsis unless for the Msg field.

* Bring back preservation of sort column.

* Bring back preservation of Msg column width.

* Support Request QSY functionality again.

* Fix rendering issues on macOS.

* Fix Windows compiler errors.

* Fix rendering issue on Windows from previous commits.

* Use correct selection foreground color when rendering with Direct2D.

* Set minimum column widths.

* Column headings should be centered.

* Batch up item changed notifications during refresh.

* Reenable clipboard and tooltip support.

* Ellipsize message text on Windows.

* Allow tooltips to at least show when clicking on a row.

* Have emojis display in color in tooltips as well.

* Add warning message when not building wxWidgets ourselves.

* Only notify of adding new connection if visible.

* Add additional checks around ItemAdded/ItemDeleted.

* Add/remove items individually every refresh to avoid intermittent Linux crashes.

* Defer memory deallocation until after the UI actually removes the item from view.

* Another attempt at fixing the crash.

* Need to validate pointer in GetAttr() too.

* Undo previous changes, try locking allReporterData_ instead.

* Fix Hamlib compiler failure due to changes in 4.6.

* Add some missed locks.

* Replace locks with assertions that we're on the main thread.

* Probably don't need to defer delete.

* Add additional checking around query methods.

* Warning cleanup.

* Make sure items are unselected before deleting.

* Unselect selected user once QSY request has been sent.

* Force a complete redraw when rows go away.

* Try another way of forcing a redraw.

* We only need to call Cleared() once per row.

* Improve CPU usage.

* Aggressively clear selected users when not actively interacting with them.

* Sort by connect time if no columns are selected for sorting.

* PAIn thread should be RT too (missed from previous PR).

* Force a re-sort on connect.

* Resort on every update from the server.

* Sort fix that hopefully doesn't crash.

* Some minor additional changes.

* Disable PAIn thread and just rely on the normal PulseAudio callbacks for passing audio in and out.

* Make re-sorting happen only once a second.

* Try putting mutexes around all data access.

* Increase RLIMIT_RTTIME just in case.

* Add missed locks.

* RT limit was set too high.

* Sleep for less time than latency if possible.

* Fix crash in TapStep while stopping.

* Defer FreeDV Reporter initialization on startup to make sure GUI is up beforehand.

* Try again to get RTKit to work in the GH environment.

* Try capping maxlength to avoid RX FIFO full errors.

* Increase max buffer size due to overrun errors.

* Default maxlength for output devices to prevent overruns.

* Try bringing back PAin thread. WIP

* Add missed PulseAudio locking.

* Remove more missed mallocs from RT path.

* Remove unneeded code from PulseAudio logic.

* Tab cleanup.

* Increase RX FIFO size.

* Force sleep if we take much longer than expected (avoids kill by rtkit).

* Forgot to check in file.

* Fix compiler error for real.

* Fix issue causing occasionally being unable to get the mic input on macOS.

* Add timeout for EOO in case we lose input devices.

* Add additional protection to prevent the OS from killing the app.

* macOS: get device names an alternate way to avoid empty names for certain devices.

* Make RX plots more reliable when pipewire sends multiple seconds of RX audio at once.

* Oops, used wrong comparison for EOO timeout.

* Catch SIGXCPU in case we exceed RT limits.

* Prevent RX processing from occurring if there's no space in the output FIFO.

* Apparently I was setting the soft and hard rlimits to be the same.

* Lower soft RT limit to 10ms.

* Disable RT scheduling on Linux.

* Added additional protection against server-caused race condition.

* Defer add to table until after we get connection successful message.

* Add missed lock on connect successful message.

* Add missed visibility check.

* Fix issue on Linux.

* Add additional logging to help diagnose duplicate callsign issue.

* Downgrade additional logging to debug/verbose only.

* Fix bug where incorrect SNR was being reported for RADE signals after EOO received.

* Back out previous change buffering rows until fully connected as it doesn't work properly on Windows.

* Fix right-click menu regression.

* Fix issue preventing column sorting on Windows.

* Upgrade wxWidgets to 3.2.8.

* Right-click should not select items.
2025-05-01 12:29:38 -07:00
dforsi 0010177d1a
Fix typos (#859)
* Fix typos

* Add PR #859 to changelog and credit @dforsi

---------

Co-authored-by: Mooneer Salem <mooneer@gmail.com>
2025-04-13 00:03:05 -07:00
Mooneer Salem 9d618d4719
Report "unk" for mode on Hamlib disconnect (#851)
* Add missed Hamlib call to disconnect event.

* Clean up duplicated freq/mode event code.

* Clean up duplicated connect/disconnect logic.

* Add PR #851 to changelog.

* Fix typo

* Fix compiler errors for real.
2025-03-26 16:28:34 -07:00
Mooneer Salem bbba124a9c
Update build scripts to use optimal number of parallel builds. (#842)
* Update build scripts to use optimal number of parallel builds.

* Update Windows GH action similarly to other build scripts.

* Add PR #842 to changelog.

* Need -j6 for Windows for some reason.

* Increase Windows test timeouts.

* -j doesn't actually limit the number of parallel builds.
2025-03-10 22:35:54 -07:00
Mooneer Salem af10e3c4db
Shorten PulseAudio/pipewire app name. (#843)
* Shorten PulseAudio/pipewire app name.

* Add PR #843 to changelog.
2025-03-10 09:15:05 -07:00
Mooneer Salem 7575c630b8
Fix dropouts related to virtual audio cables. (#840)
* Extend RADEv1 unit test time to try to force failures.

* txrx test wasn't actually respecting -txtime.

* Increase test length to 10min.

* Increase timeout.

* Temporarily disable macOS and Linux workflows.

* Run RADE test 10 times.

* Tweak to hopefully cause Windows test to actually fail.

* Ensure that all PortAudio calls are executed from the same thread.

* Use exclusive mode for radio devices for lower latency (at least on Windows).

* Reduce TX/RX thread delay to 10ms.

* Increase GH action timeout.

* Oops, need to tell PortAudio to actually set thread priority.

* Suggest low latency to PortAudio.

* Revert 10ms max wait.

* Try forcing shared mode again.

* Revert "Try forcing shared mode again."

This reverts commit cd025e9a8e.

* Revert "Revert 10ms max wait."

This reverts commit 0227ce5f0c.

* Reenable macOS/Linux builds.

* Run RADE tests 10x on Linux and macOS.

* Revert back to 60s tests on macOS/Linux.

* Use sh -c to run test.

* Try defining FPB as 0.

* Split out repeated RADE test into a separate ctest.

* Disable GH action timeout for Windows tests.

* Fix CMakeLists.txt error.

* Try increasing the timeout back to 20ms again.

* Back to 10ms.

* macOS: minimize CPU usage inside PortAudio.

* Use higher quality macOS settings.

* Use Intel macOS runner as it has more cores and RAM.

* Add debug output so we can adapt GH action for Intel.

* Fix gfortran path based on debug output.

* Fix permissions database issue.

* Disable exclusive mode due to invalid device errors.

* Disable stress tests in GitHub environment by default.

* Restructure TX out code to help the compiler optimize for the common case.

* Forgot to disable the repeated test.

* Use VB-Cable for radio device on macOS due to improved reliability.

* Fix side issue reported in original issue surrouding default mode selection.

* Need to restrict number of runs to 1 for RADE on Windows.

* Remove unnecessary API for setting exclusive mode.

* Wrap sync flag in std::atomic just in case the GH failures are actually threading related.

* Add PR #840 to changelog.
2025-03-06 00:40:05 -08:00
Mooneer Salem e56e21e9a6
Save Hamlib rig names on startup as they're able to change out from under us. (#834)
* Save Hamlib rig names on startup as they're able to change out from under us.

* Bump up Hamlib to 4.6.2.

* Add PR #834 to changelog.

* Capture rig names after sorting the rig list. This ensures that the rig names are in the same order as the main list.

* Append -D to USB/LSB if radio is using digital variant.
2025-02-19 18:08:54 -08:00
Mooneer Salem 12fa7d0f10
Update 80/160m default frequencies. (#831)
* Update 80/160m default frequencies.

* Add PR #831 to changelog.
2025-02-18 13:13:06 -08:00
Mooneer Salem 7ae3d118fb
Don't adjust Msg column width when user disconnects. (#828)
* Don't adjust Msg column width when user disconnects.

* Add PR #828 to changelog.

* Don't cause Msg col to be resized when it changes (i.e. on user connect).

* Add back 4+ character commit ID to version.
2025-02-11 15:36:31 -08:00
Mooneer Salem d22976c45f
Fix issue preventing suppression of the Msg tooltip for non-truncated messages (#829)
* Clarify purpose of extra space at beginning of truncated message.

* Fix issue preventing suppression of the Msg tooltip for non-truncated messages.

* Add PR #829 to changelog.
2025-02-11 07:33:50 -08:00
Mooneer Salem 3394db2b5d
Make sure reporting message is sent using UTF8. (#812)
* Make sure reporting message is sent using UTF8.

* Parse incoming messages as UTF8.

* Add PR #812 to changelog.
2025-01-16 00:32:33 -08:00
Mooneer Salem 5f09e4eedc
Add support for only adjusting frequency, not mode. (#809)
* Add support for only adjusting frequency, not mode.

* Adding PR #809 to changelog.
2025-01-15 09:05:22 -08:00
Mooneer Salem de24bc68fa
Upgrade Hamlib to 4.6 for Windows/macOS builds. (#795)
* Upgrade Hamlib to 4.6 for Windows/macOS builds.

* Add PR #795 to changelog.

* Fix Windows build error.

* Revert "Fix Windows build error."

This reverts commit 11a424991c.

* Update patch for Hamlib 4.6.

* Add IPHLPAPI.DLL to dependency exclusion list.
2025-01-06 00:22:17 -08:00
Mooneer Salem b527c83a1c
Fix various VK UI issues discovered by test team. (#793)
* Fix various VK UI issues discovered by test team.

Implements the following:

1. Hardens the "modified" comparison when saving options from Tools->Options (to avoid clearing the VK filename when the folder's not modified).
2. Fixes bug that prevented the Voice Keyer button from properly resizing after selecting a new voice keyer file.

* Add PR #793 to changelog.
2025-01-05 18:47:54 -08:00
Mooneer Salem 12a0f30bcb
Detect if microphone permissions have been granted in Windows. (#790)
* Detect if microphone permissions have been granted in Windows.

* wxWidgets needs to build before the OS specific stuff.

* Also include main wxWidgets files.

* Need to use HKLM version of Microphone key.

* Add PR #790 to changelog.
2024-12-31 19:56:31 -08:00
Mooneer Salem 8b8755332b
Clean up how logging works. (#773)
* Begin cleanup of logging.

* Fix Windows build failure.

* Bump up minimum macOS version to 10.13 to make compiler happy about fmemopen().

* Switch printf/fprintf to log_* calls.

* Remove spurious newlines from log messages.

* Remove g_verbose from codebase.

* Ensure Hamlib logs via ulog.

* Convert cerr/cout to ulog.

* Fix unit test and Linux compiler errors.

* Strip newlines from end of hamlib log messages.

* It would help if we actually printed the non-newline version of the log message.

* Actually fix Windows compiler errors.

* Replace additional printfs with log_* after merge from main.

* Add locking around logging to make sure we don't lose any.

* Try disabling color to get Windows tests working again.

* Use regular wine instead of wine-staging.

* Revert "Use regular wine instead of wine-staging."

This reverts commit 88bf4ef7c2.

* Add missed changelog entries.

* Poll for xvfb to come up.

* Try framebuffer dir instead.

* Fix typo.

* Try 24 bit color.

* Try xvfb-run instead.

* Fix xvfb-run command.

* Try the screen arguments again.

* Try wine-devel instead as it might be more stable.

* Update cmake-windows.yml

* Lock log mutex before running RADE RX.

This is to avoid test output loss on Windows.

* Log to stderr and not stdout.

* Update RADEReceiveStep.cpp
2024-11-23 18:54:21 -08:00
Mooneer Salem a96029f4dc Merge branch 'master' into v2.0-dev 2024-10-22 07:45:44 -07:00
Mooneer Salem df4cc6fb68
Merge pull request #745 from drowe67/ms-hamlib-timeout
Set timeout for Hamlib comms to avoid GUI getting stuck.
2024-10-22 07:41:45 -07:00
Mooneer Salem 4276709bd3 Update changelog. 2024-10-21 07:04:52 -07:00
Mooneer Salem e7f7b35646
Integrate RADE into FreeDV application (#748)
* Include very basic Python install in the FreeDV Windows installer.

* Bump version to 2.0.0 devel.

* Adjust pth file to allow pip to work.

* Create post-install script. Not tied into the installer yet.

* Install needed packages during setup.

* Fix issue preventing uninstall commands from being properly added to the installer.

* Add RADE binaries to installer for initial tests.

* Suppress RADAE/RADE in code spelling check.

* Fix additional compiler errors.

* Fix GitHub actions on Linux and macOS.

* Print API version later on startup so it'll actually show up in the Windows console.

* Enforce minimum 16 kHz sample rate for voice keyer files.

* Disallow sample rates lower than 16000 in audio config.

* Initial support for RX using librade.

* Adjust dependencies in CMake infrastructure to make sure RADE/Opus build before FreeDV code.

* Add GUI for RADE.

* Add forgotten files.

* Add initialize/finalize calls for RADE.

* Add progress text to post-install script.

* Adjust paths based on recent RADE commits.

* Add basic support for RADE TX.

* Output EOO on end of TX.

* Fix error preventing Windows installer from being created without 2020 mode.

* Change working directory to folder containing freedv.exe.

* Remove quotes from messages in post-setup script.

* Fix compiler errors.

* Fix assertion failure in PlaybackStep.

* Fix assertion failure in FreeDVInterface.

* Suppress warnings during post-install.

* Get missed bugfixes from previous PR.

* Test changes to get GH actions working again for Windows.

* Forgot to install WINE in GH action.

* Try win64 instead of win32 for WINE.

* wine32 and not wine64

* Try different way of installing wine.

* Remove packages that don't exist.

* Oops, actually installed Python 3.12.7.

* Use normal Python installer instead of wenv.

* Need to make sure wine runs in console-only.

* Use Wine from Ubuntu.

* Install wine32 too.

* Ignore return value.

* Use xvfb since trying to bypass doesn't work for winecfg.

* s/xvfb/xvfb-run/

* Separate WINE install from Python.

* More tweaks to the GH workflow.

* wine64 instead of wine

* Use WINEARCH when creating env.

* test changes

* Start xvfb separately.

* xvfb -> Xvfb

* Add debugging

* Forgot :

* Make WINE think it's Windows 10.

* Back to using wine-staging.

* Reenable xvfb.

* Fix cmake invocation.

* Integrate BuildOpus changes from RADE.

* Ensure Opus is built for minimum supported FreeDV version.

* Warning cleanup.

* Ensure RADE is actually built as a universal binary.

* Include basic Python into the .app file.

* macOS version now builds. Still need to figure out how to get modules installed.

* Resolve problems preventing proper execution of the macOS binary.

* torchvision isn't necessary.

* Fix reporting so that we report RADE instead of 'unk'.

* Expire devel versions of FreeDV after six months.

* Attenuate RADE TX by 4dB to avoid needing to adjust TX Attenuation dial just for that mode.

* Disable 2020/2020B on all platforms.

* Stop building 32 bit Windows builds.

* Move RADE mode to the top of the mode list.

* Tweak preprocess function for RADE.

* Update Windows Python to 3.12.7.

* Re-disable ARM Windows builds while we figure out how to build it.

* Build Wine in signing environment.

* Update wxWidgets to 3.2.6.

* Workaround time display issue in FreeDV Reporter on macOS.

* Limit number of numpy/OpenBLAS threads due to known issues with their interaction with Python/C++ threading.

* Add additional guarding around Codec2 FIFO calls.

* Split off DMG creation into separate target to save time during development.

* Use dr-reset for initial release.
2024-10-20 18:09:11 -07:00
Mooneer Salem 74e8f58bfb
Merge pull request #743 from drowe67/ms-tooltip-adj
Adjust waterfall/spectrum tooltip based on issue #741.
2024-09-12 12:27:15 -07:00