Commit graph

60 commits

Author SHA1 Message Date
Allan Bazinet
3585107607 Remove unused <cmath> include 2025-10-13 18:18:55 -05:00
Andreas Krüger
aa27ee6c2a The boilerplate changes to make logging configurable at runtime.
These changes were actually done by a script, not manually.
2025-10-13 18:18:55 -05:00
Allan Bazinet
fddae761ab CMake cleanup and modernization
Allan:
A gutting and modernization of the cmake configuration. This first pass is only expected to work on OSX, and will require additional work for Windows and Linux.
Fixes, formatting, and commentary.
Kill off doc_dir and data_dir; unused. These properties are legacy, and no longer used in current code.
Eliminate unused accessors

Chris:
Fix MACOSX_BUNDLE_ICON_FILE variable for Info.plist
Fix MACOSX_BUNDLE_SHORT_VERSION_STRING for Info.plist
Remove MACOSX_BUNDLE_LONG_VERSION_STRING which is no longer used
Clean up legacy Darwin files for building .dmg

Allan:
Add Qt Network library to find_library() call
Stub in (untested) windeployqt phase
Fix windeployqt pathing
Update Windows section; make OmniRig optional
Use std::numbers::pi instead of M_PI
Use std::numbers::pi in lieu of M_PI
Properly guard optional OmnRig include
Update CRC.h to address compiler pragma warnings
Additional OmniRig guarding
Simplify CMAKE_MODULE_PATH addition
Use list functionality, and append to the list, rather than prepend.

Chris:
Add Entitlements.plist for code signing with hardened runtime on MacOS
Add package directory for windeployqt to package the plugins in the proper directory structure for linking
add Qt Creator CMakeLists.txt.user  and build folder to .gitignore
move minimum required Qt version to 6.5 - qt_add_resources() only supported in Qt6.5 or newer
2025-10-13 18:18:55 -05:00
Allan Bazinet
2f3f8a967a Testing fix for out of bounds array read
Test fix for read of one byte past the end of the itone array.
2025-08-16 16:06:05 -04:00
Allan Bazinet
909b4b8919 Document and simplify modulator start logic 2024-10-29 19:02:29 -07:00
Allan Bazinet
9c816da6fb Remove TODO comments; both are correct 2024-10-29 05:52:19 -07:00
Allan Bazinet
2bc738f3aa Reorder start initialization 2024-10-28 15:46:48 -07:00
Allan Bazinet
588cac9799 Tune modulator active loop 2024-10-28 15:19:58 -07:00
Allan Bazinet
5f237cf147 Remove unused tone frequency conditional
FT8 tones are numbers in the range 0-7. The check for 100 here is for other modes; no longer relevant to us.
2024-10-28 14:11:53 -07:00
Allan Bazinet
e118a2ee45 Normalize instance variable initialization 2024-10-28 13:29:53 -07:00
Allan Bazinet
5d882cba22 Simplify tone frequency calculation
In JS8, it’s impossible to have 0.0 as the tone spacing
2024-10-28 13:26:07 -07:00
Allan Bazinet
38a5394d95 Use precomputed tone spacing constant 2024-10-28 13:21:06 -07:00
Allan Bazinet
f1750f3c3b tone frequency should not be an instance variable 2024-10-28 13:16:50 -07:00
Allan Bazinet
ca889224bd Be consistent in use of state 2024-10-28 09:50:20 -07:00
Allan Bazinet
18f6534918 Don’t parameterize modulator by frame rate
There’s zero chance of us using anything other than 48 kHz; there’s no value in allowing anything else.
2024-10-28 09:35:08 -07:00
Allan Bazinet
45609be819 Use integer math 2024-10-28 09:16:11 -07:00
Allan Bazinet
79ae7e1539 Clean up stack variables 2024-10-28 08:29:02 -07:00
Allan Bazinet
cbb478978f Correct idle stop logic 2024-10-28 07:58:13 -07:00
Allan Bazinet
8a6a06c2cb Pass only submode to modulator 2024-10-28 07:51:13 -07:00
Allan Bazinet
ee43de6f73 Pass period to modulator when start called
Resolves thread safety issue, and the period is only used as an immediate value during the start call, it’s not required to be an instance variable.
2024-10-28 07:25:14 -07:00
Allan Bazinet
976c6f2433 Pass start delay, rather than period, to modulator 2024-10-28 07:03:33 -07:00
Allan Bazinet
2ebd7bf8ea Eliminate m_TRperiod instance variable
No longer relevant after removal of MSK144 support
2024-10-28 06:50:06 -07:00
Allan Bazinet
5c34f08676 Remove old MSK144 defunct code 2024-10-27 21:42:39 -07:00
Allan Bazinet
437ab6e970 Scope delay to if statement 2024-10-27 21:42:02 -07:00
Allan Bazinet
6599686907 Un-hoist isym, compute as constant 2024-10-27 21:22:34 -07:00
Allan Bazinet
140bd4710c Eliminate needless test
It’s not possible to ever see a value of 3 here.
2024-10-27 21:19:06 -07:00
Allan Bazinet
611e5d5d33 Reorder modulator parameters; avoid defaults 2024-10-27 21:16:31 -07:00
Allan Bazinet
5db8874b48 Don’t parameterize Modulator tone spacing
Since the sample rate is a constant, the modulator can figure out the tone spacing by itself, based on the frames per symbol, we don’t need to parameterize it.
2024-10-27 20:58:02 -07:00
Allan Bazinet
cd73c40e25 Don’t parameterize modulator by symbolsLength
This is a constant with JS8; simplifies modulator implementation and resolves thread safety issue to not pass it as a variable.
2024-10-27 20:47:54 -07:00
Allan Bazinet
b338804232 Modulator ongoing refactoring
Eliminate fSpread parameter; it’s a thread safety issue and it’s never anything other than 0.0. Invert modulator active / idle accessor to simplify logic.
2024-10-27 20:33:26 -07:00
Allan Bazinet
54c9307b2b Eliminate modulator noise option
We never want to inject noise into the signal.
2024-10-27 18:18:44 -07:00
Allan Bazinet
e1cba2a326 Eliminate modulator synchronize option
Invariably true; we always want to synchronize.
2024-10-27 18:12:02 -07:00
Allan Bazinet
8398a959ef Eliminate modulator fast mode option
This option is invariably false; simplifying usage.
2024-10-27 18:09:46 -07:00
Allan Bazinet
9edee81b04 Use class initialization 2024-10-27 17:38:38 -07:00
Allan Bazinet
7cfed92611 Convert modulator state to class enum 2024-10-27 17:17:03 -07:00
Allan Bazinet
6b1d677880 Ongoing Modulator cleanup 2024-10-27 16:17:26 -07:00
Allan Bazinet
b60e019874 Move gran() to Modulator implementation file
This function is used only by the Modulator, and even then, only when testing.
2024-10-27 16:10:13 -07:00
Allan Bazinet
5d90376271 Ongoing modulator cleanup 2024-10-27 16:03:31 -07:00
Allan Bazinet
7fefbef65c Make sample noise clamping more obvious 2024-10-27 15:41:10 -07:00
Allan Bazinet
fcfcd45ce6 Use Tau constant, derive from standard M_PI 2024-10-27 15:32:42 -07:00
Allan Bazinet
3b70ad2499 Move tau constant to implementation 2024-10-27 15:12:48 -07:00
Allan Bazinet
cf0f7f7a67 Purge old SOFT_KEYING defines 2024-10-27 15:08:45 -07:00
Allan Bazinet
c7deff81b9 Remove CW function
Remove old global icw data, calls to and compilation of the morse subroutine used to generate it, and support for it in the Modulator class.
2024-10-27 14:15:13 -07:00
Allan Bazinet
955da2cdd7 Remove unused fox-related code 2024-10-09 22:05:49 -07:00
Allan Bazinet
8df8f7e6ea Formatting 2024-09-12 07:48:49 -07:00
Allan Bazinet
165ca8898e Update modulator code to current
Brings modulator forward to incorporate changes in current WSJTX upstream. All these seem logical and benign, but will require signficant sanity testing. If there are odd modulation issues, I’ve probably introduced them here.
2024-09-11 20:24:00 -07:00
Allan Bazinet
fdc461182c Extract delay translation logic 2024-09-11 17:48:01 -07:00
Allan Bazinet
1168c83320 Correct x1,x2 random generation calls 2024-09-08 05:33:07 -07:00
Allan Bazinet
e377385bfa Initial round of Qt5 deprecation fixes 2024-08-31 09:40:28 -07:00
Jordan Sherer
5215fd324d Added I decoder and reorganized the E selection code 2019-12-09 14:00:23 -05:00