6948 Commits
Author SHA1 Message Date
Jon Beniston 54fea091ba Remove redundant check. 2026-10-07 09:12:56 +01:00
Jon Beniston 2a5d385285 Fix reference. 2026-10-07 08:27:29 +01:00
Jon Beniston d75c389ed1 Add numbered boxes to images.
Add redundany check for buffer overflow.
2026-10-07 08:24:02 +01:00
Jon Beniston 46952badad BFMDemod: Share RDS PTY table with BFM mod. 2026-10-06 21:59:56 +01:00
Jon Beniston 3f22f01330 AM, M17, NFM, SSB, WFM: Fix audio feedback when sample is different from output. #710 2026-10-06 21:58:55 +01:00
Jon Beniston b14bb9f532 Add docs 2026-10-06 21:38:41 +01:00
Jon Beniston c1dec0489b Add BFM Modulator. #2201 2026-10-06 21:38:20 +01:00
Edouard Griffiths 021c5429a8 Merge pull request #2986 from delfer/packet-g3ruh9600-rx
Packet Demod: add native G3RUH 9600 receive mode
2026-10-05 12:05:58 +02:00
Edouard Griffiths e4255e3fd2 Merge pull request #2984 from rgetz/rgetz-fix-uninitMemberVar-remaining
Fix remaining uninitialized member variables and unset variable warnings
2026-10-04 18:31:18 +02:00
Delfer f05acda12a Packet Demod: make regression tests portable across Qt versions 2026-10-04 17:03:19 +03:00
Codex d0ba47b97e Packet Demod: add native G3RUH 9600 receive mode 2026-10-04 16:51:34 +03:00
Codex b5cf557d91 Packet Demod: bound HDLC state outside frames 2026-10-04 16:50:44 +03:00
Robin Getz c6b868f635 radiosonde: Initialize chart axis pointers
Initialize optional Y-axis pointers to nullptr to fix GCC 14.2
-Wmaybe-uninitialized warnings.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-10-03 17:35:04 -04:00
Robin Getz 6380a51161 mcpserver: Fix GCC warnings in MCP tools
Avoid binding range-loop variables to temporary QString values and
compare channel type strings by value instead of pointer address.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-10-03 17:35:03 -04:00
Robin Getz eafba57ecf mcpserver: Fix MCPAudioCapture initializer order
Reorder member initializers to match their declaration order and avoid
the GCC -Wreorder warning.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-10-03 17:35:03 -04:00
Robin Getz 8a7d5973ea moddatv: Avoid using unset FEC rate variables
Handle unsupported DVB-S2 code rates in get_dvbs2_rate() instead of
using uninitialized FEC numerator and denominator values. Resolves
a compiler warning.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-10-03 17:35:02 -04:00
Robin Getz 4ac89f7ed2 moddatv: Fix GCC uninitialized variable warnings
Handle unsupported modulation and DVB-S code rates in
getDVBSDataBitrate() and stop checkBitrates() when no valid bitrate
can be calculated.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-10-03 17:35:02 -04:00
Robin Getz a209f80755 radioastronomy: Fix GCC uninitialized variable warnings
Initialize the next row index and FFT measurement value to avoid
potentially using uninitialized variables reported by GCC 14.2.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-10-03 17:35:02 -04:00
Robin Getz 7d239a5751 psk31demodulator: Fix constructor initializer order
Reorder AFC and magnitude-squared member initializers to match their
declaration order and avoid -Wreorder warnings.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-10-03 17:35:01 -04:00
Robin Getz 8a1e74c934 pagerdemodflex: Initialize demodulator state
Initialize candidate, flywheel, frame, and symbol recovery state.

Found by cppcheck.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-10-03 17:35:01 -04:00
Robin Getz 3fed075bb3 metismiso: Initialize Metis buffer index
Initialize metisBufferIndex in the MetisMISOUDPHandler constructor.

Found by cppcheck.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-10-03 14:14:22 -04:00
Robin Getz 4730ea5449 aprs: Initialize packet count
Initialize m_packetCount in the APRS constructor.

Found by cppcheck.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-10-03 14:13:37 -04:00
Robin Getz 3d7d4afde7 remotetcpsink: demodmeshcore: Initialize network manager pointer
Initialize m_networkManager before it is assigned in the constructor.

Found by cppcheck.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-10-03 14:12:47 -04:00
Robin Getz fca0e71086 demodmeshcore: Initialize network manager pointer
Initialize m_networkManager before it is assigned in the constructor.

Found by cppcheck.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-10-03 14:12:12 -04:00
Robin Getz feae8a3f22 demoddatv/leansdr/dvb: Initialize viterbi sync array
Value-initialize the sync array to avoid uninitialized members.

Found by cppcheck.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-10-03 14:11:11 -04:00
Jon Beniston b832a1c239 Validate ranges 2026-10-03 15:09:28 +01:00
Jon Beniston a4ca266bb6 Use BuddiesMutex, as buddies can change on both engine thread and GUI thread. 2026-10-03 13:12:36 +01:00
Jon Beniston db492c59c7 Add additional mutexs and don't block buddies for too long. 2026-10-03 13:11:13 +01:00
srcejon a84dcaf11b Merge branch 'f4exb:master' into usrp_mimo 2026-10-03 12:36:48 +01:00
Edouard Griffiths dc57c25fa4 Merge pull request #2978 from srcejon/flex
Pager: Add FLEX support.
2026-10-03 12:12:04 +02:00
srcejon 2ff85c8663 Merge branch 'f4exb:master' into usrp_mimo 2026-10-03 07:59:42 +01:00
Edouard Griffiths e345b9bc3b Merge pull request #2972 from hxcrd/pluto-fixes
PlutoSDR: fix four crashes with Rx + Tx device sets on one device (#2721)
2026-10-03 07:36:27 +02:00
norcal88andClaude Fable 5.1 0f8dbc2574 PlutoSDR: serialize sample thread lifecycle across buddies
stop() tore the sample thread down with stopWork() + delete and only then
cleared m_deviceShared.m_thread. The buddy's applySettings() suspends and
resumes that thread through m_thread from another thread, without holding
this device's mutex, so it could restart the thread between stopWork() and
delete (QThread: Destroyed while thread is still running -> qFatal/abort),
or call through the pointer after the delete. The device's own
applySettings() had the same exposure on its own thread pointer, since it
does not take m_mutex either.

Seen when the Satellite Tracker loads presets into the Rx and Tx device
sets of one Pluto at AOS: abort in PlutoSDRInputThread::~PlutoSDRInputThread
<- PlutoSDRInput::stop <- DSPDeviceSourceEngine::gotoIdle.

Add DevicePlutoSDRShared::m_threadsMutex (recursive, shared by all PlutoSDR
device sets) and take it in start() around startWork()/publish, in stop()
and handleError() around unpublish + teardown (unpublishing first), in
suspendBuddies()/resumeBuddies(), and for the whole suspend -> apply ->
resume sequence in applySettings(). Also wait() before deleting the thread
and check the own-thread pointer before resuming it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-02 21:28:38 -07:00
Edouard Griffiths 030963609f Merge pull request #2976 from srcejon/bfmmod
DSC: Add support for VHF. Improve HF performance.
2026-10-03 00:29:30 +02:00
Jon Beniston 337886ecc3 Add MIMO driver.
Fix TX scaling bug that was costing 10dB of output power at max gain.
Improve performance on Windows to reduce overruns at high sample rates.
Add underrun stats.
Display temperature.
Improve error handling.
Move setting device settings off GUI thread. For #1522
2026-10-02 22:01:49 +01:00
Jon Beniston 9e003d8bc7 Pager: Add FLEX support. 2026-10-02 18:10:13 +01:00
Jon Beniston da378beb4d Update GUI image. Remove border around table. 2026-10-02 09:18:52 +01:00
Jon Beniston 0eff1e8d2e DSC: Add support for VHF. Improve HF performance. 2026-10-02 08:49:14 +01:00
Jon Beniston 9f0fbde0fe Remove macros. 2026-10-02 07:42:56 +01:00
Jon Beniston fe5c1f99f7 Map: Add Wefax transmitters. 2026-10-01 21:44:15 +01:00
Jon Beniston 606ab8f985 Add Wefax demodulator. 2026-10-01 21:43:58 +01:00
Jon Beniston ead1acafb4 Use constexpr to fix linker error 2026-10-01 16:09:05 +01:00
Jon Beniston 51599f3b2a Use constexpr to fix linker error 2026-10-01 15:39:02 +01:00
srcejon 0e06e1e462 Merge branch 'f4exb:master' into psk31 2026-10-01 14:09:31 +01:00
Jon Beniston df2b7a10c0 Remove default text, so not contradictory. For #2973 2026-10-01 08:06:05 +01:00
norcal88 840cd65e1f PlutoSDR: check the buddy's thread before resuming it in applySettings
Both PlutoSDRInput::applySettings() and PlutoSDROutput::applySettings()
suspend their buddies' threads and resume them later:

    if (buddySharedPtr && buddySharedPtr->m_threadWasRunning) {
        buddySharedPtr->m_thread->startWork();   // m_thread may be null

The suspend half tests buddySharedPtr->m_thread and sets
m_threadWasRunning from it, but m_threadWasRunning is sticky state on the
buddy's shared struct: between suspend and resume the buddy's thread can
be destroyed -- its device was stopped, or a preset was loaded into it,
both of which null m_thread -- while m_threadWasRunning stays true.
startWork() is then called on a null pointer.

Seen on macOS with the Satellite Tracker, which loads a preset into the
Rx and the Tx device set of the same Pluto at AOS: the Tx applySettings
is between suspend and resume when the Rx side is rebuilt.

  PlutoSDROutput::applySettings + 7284
  PlutoSDROutput::handleMessage
  DeviceSampleSink::handleInputMessages
  MessageQueue::push
  PlutoSDROutput::deserialize
  DeviceAPI::loadSamplingDeviceSettings
  DeviceUISet::loadDeviceSetSettings

Disassembly confirms the faulting load is m_thread's vtable read with
x0 = 0. Test m_thread, as the suspend half does.
2026-09-30 17:20:40 -07:00
norcal88 0586dcf202 PlutoSDROutput::start: check m_deviceParams before dereferencing it
PlutoSDRInput::start() guards both m_deviceShared.m_deviceParams and
m_deviceShared.m_deviceParams->getBox(); PlutoSDROutput::start() only
guards getBox() and dereferences m_deviceParams to get there.

m_deviceParams is null when the device never opened (no route to the
iio host, radio rebooting, or -- on macOS -- the Local Network privacy
grant denied, which is silent), and closeDevice() also sets it to 0.
Pressing Start on such a device set then dereferences null and crashes
the application. Mirror the Input side's check.
2026-09-30 17:20:40 -07:00
Jon Beniston 655753d9b9 Attempt to fix Windows github action hang. Possibly due to positioning asking for user permission. 2026-09-30 23:13:57 +01:00
Edouard Griffiths eb8f48fc21 Merge pull request #2965 from srcejon/filesink_spectrum_fix
FileSink: Fix waterfall resetting
2026-09-30 22:32:46 +02:00
Jon Beniston 5239d73ebe Add matched filter to improve performance.
Increase carrier pull-in range.
Separate demod for easier testing.
2026-09-30 18:24:23 +01:00