Commit Graph

234 Commits

Author SHA1 Message Date
vsonnier 7b1956f7cd Cleaner management of the device not accepting the requested sample rate 2020-11-21 11:52:34 +01:00
Charles J. Cliffe 94ca0bbe54 Update to use SoapySDR frequency correction instead of RTL-SDR specific 2020-07-20 01:01:28 -04:00
Vincent Sonnier d2f9333523
Misc. enhancements (driven by RSPDuo support needs) (#786)
* Add Device name in main window title bar

* Cleaner stopping of device in case of device loss
2020-02-26 07:11:19 +01:00
Charles J. Cliffe 8d09d9c329 Merge remote-tracking branch 'origin/master' into code_quality 2019-03-16 16:57:10 -04:00
Vincent Sonnier c27e1e6514
Make stream deactivated before a sample-rate change and reactivated afterwards (#718)
* Make stream deactivated before a sample-rate chnage and reactivated afterwards

* Re-read sample rate and MTU AFTER stream activation to recompute CubicSDR buffers
2019-03-15 06:30:55 +01:00
Charles J. Cliffe 3009da6194 Merge remote-tracking branch 'origin/master' into code_quality 2019-03-14 21:15:07 -04:00
Charles J. Cliffe ea016e6638 Merge branch 'drahosj-master' 2019-03-14 21:02:52 -04:00
Charles J. Cliffe 2a75c2776e tabs->spaces 2019-03-14 21:01:19 -04:00
Dantali0n ed5993748f Fix for above 3Mhz sample rate on LimeSDR-USB
This problem could  also be present on other devices using the FX3 driver and is perhaps part of a larger general problem  in the LMS7 Soapy  module.
2019-03-09 20:33:17 +01:00
vsonnier 94e252db51 Fix wrong type for timeoutUs parameter of readStream 2019-03-09 18:23:06 +01:00
vsonnier a2bd569e5a Fix wrong type for timeoutUs parameter of readStream 2019-03-09 18:22:49 +01:00
vsonnier 6d8c9f60d2 Maybe fixing #716: Nullify readStream timeout parameter effect which some modules effectively use (LimeSDR...) but we don't care 2019-03-09 17:59:22 +01:00
vsonnier b6c81fe726 Add traces about MTU used size 2019-03-09 14:19:42 +01:00
Charles J. Cliffe 9ed085123a More AppFrame cleanup, active/current modem verbage adjustments 2019-02-11 22:59:43 -05:00
Jake Drahos 4ca6e8dba9 Safer calls to setGainMode
Will call hasGainMode first - this will prevent crashes when the underlying
device situationally doesn't support setGainMode calls.
2019-01-13 21:53:37 -06:00
vsonnier f03925d27f Fix #677: SDRPostThread : Do not push twice the samples in single-channel mode, refactorings and simplifications. 2018-09-15 08:33:22 +02:00
vsonnier 5db28da361 Fix #678: be clean when leaving SDRPostThread 2018-09-15 07:12:50 +02:00
vsonnier 6faa2f87b3 Changed Low-perf mode into a CPU usage submenu (low, Normal, High) where High means PFBCH2 usage 2018-05-17 17:54:31 +02:00
Charles J. Cliffe 89f56284c8 Default to PFBCH until toggle for PFBCH2 preference is available 2018-05-07 22:14:50 -04:00
Charles J. Cliffe 8cb5e9e244 SDRPostThread clean-up and re-factoring 2018-02-20 00:16:54 -05:00
Charles J. Cliffe afc29303c9 2x channel bandwidth firpfbch2_crcf optional path 2018-02-14 21:24:22 -05:00
vsonnier ada56440fc Fix reloading of gains at startup. 2017-11-25 09:47:43 +01:00
vsonnier e44af72b00 Assure Gain control <==> Settings menu synchronization in case of mutually depdendent updates 2017-11-19 17:06:11 +01:00
vsonnier 89d12ef4e3 #513 Workaround in case the number of samples rates is too much to be handled by the menu, decimate to 25 max. 2017-10-28 13:12:27 +02:00
vsonnier afedca05c6 Updated liquid-dsp v1.30 Windows binaries to GCC 7.2.0 (MSYS2) 2017-09-02 21:49:20 +02:00
vsonnier 030628c5ed SDRPostThread is better using try_push, restore previous audio-related code in DemodulatorInstance 2017-09-02 16:24:25 +02:00
vsonnier 9bbcb582e3 Fix hang when the active demodulator goes out-of-bandwwidth by changing sample rate 2017-08-31 20:51:37 +02:00
vsonnier 3842cf087f More terminate()-and-flush calls missed before 2017-08-29 18:48:59 +02:00
vsonnier 03bf38fea8 Squashing an actual memory leak in SDRPostThread by simplifying the code 2017-08-28 21:22:07 +02:00
vsonnier 3f90cbb858 Flush queues on terminate() calls to unblock push()s and so ease threads termination 2017-08-28 20:53:21 +02:00
vsonnier 3c3939e0b7 Use nullptr instead of NULL when shared_ptr is used 2017-08-27 13:00:32 +02:00
vsonnier 37712c7a81 Simplify SDRPostThread: no longer binding methods, directly use the true list of demodulators 2017-08-27 12:39:28 +02:00
vsonnier a8f8f4a7e2 Initial commit: working... 2017-08-27 11:11:30 +02:00
vsonnier c112026a2c Make processing queues timed-push, to be able to escape deadlocks. Rollback 'restart device when blocked' that is ineffective in practice. 2017-08-26 23:34:48 +02:00
vsonnier a018a36100 Add a read-only TX antenna menu entry showing the active one, closing #559 2017-08-25 07:28:14 +02:00
vsonnier 1042c62c3b Initial commit: Antenna support, Enhanced Settings menu, Enhanced SDR device dialog 2017-08-23 23:27:49 +02:00
vsonnier e32e687fe8 Make IOThreads terminate() fully non-blocking and misc.
- Thanks to timed-pop() usage, it is no longer needed to nudge queues with dummy to wake them
- Less bad luck to be stuck there
- Misc: leave the trace about the audio thread staturation, useful despite it raises some alarm among users...
2017-08-14 09:46:53 +02:00
vsonnier acc6d2a31d Restart the device automatically if stuck with read stream errors 2017-08-13 22:14:12 +02:00
vsonnier c64baab99d Threads vs. Queues lifetimes, cleanups.
- Ideally Queues must outlive the threads using them, but wasn't done so. Yes, std::shared_ptr them!
- Now queues are always valid in the context of the threads using them.
- No longer need tedious queues deallocation by the original owner.
- Misc cleanups.
2017-08-13 19:19:25 +02:00
vsonnier 33aa0cade6 Fix bad re-loading, setting and UI glitches for Device Runtime settings, and misc.
- Quite obvious on the SDRPlay RSP2 for ex.
- Random cleanups by using the for-each construct at some places for clarity.
2017-08-12 08:17:40 +02:00
vsonnier 3604b7f1ff Even better thread and application termination:
- Now that timed-pop()/try_pop() prevent indefinite blocking it is best to flush() on thread stopping to unblock push()
- Reworked a bit the CubicSDR::OnExit() sequence, see comments.
2017-06-01 19:57:58 +02:00
vsonnier 8f608bbf5c Cleanup: remove some unused params and variables, conversion warnings seen with #550. 2017-05-29 20:22:10 +02:00
vsonnier 9b0ce69e8f Use the nuclear option to solve the hung problem:
Besides deadlocks, a thread can in theory get stuck in a blocking pop(),
not seeing the stopping flag in particular. So assure liveness by making all
pop() timed pop.
2017-05-25 09:32:27 +02:00
vsonnier 77a82e1617 Another fix for the neverending hung application bugs:
- Clear up DemodulatorInstance garbage collection, only do it in a single thread (AppFrame::OnIdle)
- Add a specific mutex lock for the list of deleted demodulators,
- Add a specific lock to control DemodulatorInstance thread lifetimes, protecting IsTerminated() of concurrent join and delete
2017-05-25 08:03:08 +02:00
vsonnier 4b323e9863 Make ReBuffer refcount management automatic, using std::shared_ptr:
- No longer need to call setRefCount() / decRefCount()
- Restore old ThreadBlockingQueue using std::deque, for std::shared_ptr correct behaviour.
2017-05-24 12:28:37 +02:00
vsonnier 8776908340 Fixes #546, when MTU > nb samples per-frame, overflow management was wrong. 2017-05-23 11:09:29 +02:00
vsonnier 5797548739 SoapySDRThread tweak: directly resize to the final size when building SDRThreadIQData 2017-05-23 11:09:28 +02:00
vsonnier 41c7dd231b Fix tabs introduced in latest commits... 2017-05-21 10:03:21 +02:00
vsonnier fc2716518d SoapySDRThread: more comments about the relation between MTU and sample rate 2017-05-21 09:20:41 +02:00
vsonnier a541e55ff6 SaopySDRThread simplified, (small) perf improvement: No longer use inpBuffer,
write to SDRThreadIQData->data directly.
2017-05-20 13:31:46 +02:00