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
vsonnier
772e24fdb3
Better comments on CF32 format coming out of SoapySDR
2017-03-10 19:12:54 +01:00
vsonnier
97639d1d09
BIG FIX: Truncated stream of incoming samples on 32 bit targets !
...
This one is a veryy old long standing bug I was look for. All 32 bit Windows builds
suffered indeed of corrupted sound defects in all circumstances (reported even on rtl-sdr.com coments)
that had no identifiable origin... Until now.
Given the fix, all 32 bit adress targets should be affected as well...
2017-03-08 22:52:20 +01:00
vsonnier
c7467a88bc
BLOCKING_QUEUE: prepare by raising up max queue lenghts
...
BLOCKING_QUEUE: Replaced ThreadQueue usage by ThreadBlockingQueue usage
BLOCKING_QUEUE: instrument all push() with timeouts, showed some call have to be non-blocking...
BLOCKING_QUEUE: tuned push()/try_push()
2017-02-14 18:42:05 +01:00
vsonnier
115b0ffa58
CLEANUP: some compiler and static analysis warnings
2017-01-28 14:57:27 +01:00
vsonnier
196c664cf4
Device Sample Rate improvements: UI, changed device sample rates to be expressed as long instead of int at some places for safety/consistency. Also pedantic harmless traces changes.
2017-01-21 12:56:16 +01:00
Charles J. Cliffe
c3106613a2
Additional license headers, cleanup unused code defs/refs
2017-01-02 21:27:08 -05:00
Charles J. Cliffe
3ec14fbe38
Licence fix, add SPDX-License-Identifier, remove unused code files
2017-01-02 21:07:43 -05:00
Charles J. Cliffe
8f1b68d20f
Handle stream init errors
2016-07-24 11:59:59 -04:00
Charles J. Cliffe
884f740030
fix driver key case
2016-07-22 19:43:22 -04:00
Charles J. Cliffe
096a1aa5fd
Temporary patch for bladerf until bandwidth option is available
2016-07-22 19:24:20 -04:00
Charles J. Cliffe
4783ae5be1
Dummy data bump shouldn't be needed now; racing with small bandwidths?
2016-07-10 20:29:31 -04:00
vsonnier
21c8a81c32
TH_CLEAN_3.5: push() cleanup side of things, assure SDRThread::readStream() to actually check for full + make ThreadQueue notify even in case on not-successfull push(), make it spam notify_all() everytime
2016-07-08 23:30:15 +02:00
vsonnier
b495b388c9
TH_CLEAN_3: Use of non-blocking try_pop() when possible,
...
AudioThread concurrent access hardening and simplified,
and misc.
2016-07-05 21:45:42 +02:00
vsonnier
5d1cb788e0
FIX hang application, because SdrThread tries to auto-termitate itself
2016-07-03 18:17:39 +02:00
vsonnier
52de909cfb
THREAD_CLEAN: Clearly distinguish between a request to stop by terminate() from the actual termination isTerminated()
2016-06-28 22:16:34 +02:00
vsonnier
4ec08b8b68
MISC 1 : Create ReBuffer by default with refcount 1, so remove redundant refCount(1) evertwhere
2016-06-09 19:38:20 +02:00
vsonnier
5bb43f5aaa
Replace mutex lock/unlock pairs with guards, cleanups
2016-06-03 18:45:03 +02:00
Charles J. Cliffe
423c83f500
mutex locking cleanup for demod add / remove chain
2016-06-02 21:48:01 -04:00
Charles J. Cliffe
6d63d570aa
comment out some noisy stdout logging until there's a proper facility for log outputs
2016-06-02 19:45:34 -04:00