* 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.
* 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.
* Initial implementation of macOS audio handling using native APIs.
* Fix minor calculation issue in Easy Setup when generating sine waves.
* Fix spelling error.
* Fix issue causing distorted output audio.
* Refactor audio device info retrieval to a separate method.
* Get channel information for discovered macOS audio devices.
* Add support for retrieving default audio devices.
* Try using AVAudioSinkNode for getting mic/RX audio.
* Use AVAudioSourceNode for output side too.
* Fix compiler error.
* Set minimum macOS version to 10.15 due to PyTorch and new audio code requiring it.
* Disable universal build in GH action to make it run a bit faster.
* Additionally use Homebrew packages as deps instead of building own for GH action.
* Don't build hamlib if BUILD_DEPS is 0.
* Use matrix to test macOS build on both x86_64 and ARM64.
* Experiment: always sleep for 10ms every time through the TX/RX loop.
* Temporarily enable longer tests to make sure previous pass wasn't a fluke.
* Remove logic not available in 10.15.
* Revert "Experiment: always sleep for 10ms every time through the TX/RX loop."
This reverts commit 6019c9a522.
* Need to query valid sample rates from Core Audio.
* Validate provided sample rate and channel data when creating audio object.
* Set device sample rate to user-configured option.
* Sample rates could be different between input and output.
* Revert "Temporarily enable longer tests to make sure previous pass wasn't a fluke."
This reverts commit f90c4cd081.
* Remove now unused code.
* Harmonize native vs. PortAudio config across build scripts.
* Zero out audio by default to prevent buzzing.
* Update README to use new environment variable for audio driver control.
* Add COM wrapper class around ThreadedObject. Prerequisite for WASAPI audio support.
* Disable OLE 1.0 per Windows documentation.
* WIP WASPI device enumeration.
* Forgot to check in some changes.
* Fix compiler errors.
* Avoid deadlock during sample rate list retrieval.
* s/WASPI/WASAPI/g
* WIP WASAPIAudioDevice design.
* Full WASAPIAudioDevice implementation.
* Increase priority of audio tasks to prevent dropouts.
* Add missed nullptr initialization.
* Increase buffer time to 40ms
* Fix issue where non-English device names were getting corrupted.
* Add additional logging.
* Need to create macOS audio device name just like with Windows.
* Update README to document new config options.
* 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.
* 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.
* 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.
Reported by several people from the digitalvoice mailing list, it appears that the OK/Cancel/Apply buttons are now hidden on 1.8.12 in Windows unless the window is resized. Additionally, I've noticed some oddities with the frequency list control sizing when the Options window's resized on Linux (tested on Ubuntu 22.04 LTS). This PR does the following:
1. Disables resizing of the Options window. Since the other controls on that dialog don't resize, there's not much point in allowing users to do so.
2. Forces sizing of the various frequency list related controls to prevent them from being resized when data is loaded from the user's configuration.