Commit Graph

112 Commits

Author SHA1 Message Date
dforsi f461fcb94c
Fix typing errors (#935)
Found with:
codespell --skip=external --ignore-words-list=axix,bord,parm,soley,ue --write-changes --interactive 2

Co-authored-by: Daniele Forsi <iu5hkx@gmail.com>
2021-12-29 19:54:03 +01:00
Charles J. Cliffe 690896f65d Cleanup: SDR threads, enumerator, device info 2021-04-04 22:19:24 -04:00
Charles J. Cliffe 9ed085123a More AppFrame cleanup, active/current modem verbage adjustments 2019-02-11 22:59:43 -05: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 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 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 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 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 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 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
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 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 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 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
Charles J. Cliffe d2943b56c4 Merge branch 'session_bugfix' 2016-06-01 19:48:32 -04:00
Charles J. Cliffe 688181e566 Cleanup MSVC warnings and deprecated C++ exception stuff 2016-06-01 19:42:34 -04:00
vsonnier 357dcc967b MISC 1: make IOThread input and output queues returned as ThreadQueueBase*, not void*, cleaner.
then use static_cast for downcasts, because we know what we are doing
2016-06-01 19:42:11 +02:00
Charles J. Cliffe c1863d9319 Basic cleanup / mutex additions / bulk demod add 2016-05-31 19:58:37 -04:00
Charles J. Cliffe f22ef685f5 Static analysis related fixes 2016-03-30 19:34:36 -04:00
Charles J. Cliffe 93d2c73fb9 Add delta lock -- lock modem relative to center frequency 2016-02-15 17:43:10 -05:00
Stanisław Pitucha 77b2d54870 Initialize frequency 2016-01-29 20:08:33 +11:00
Stanisław Pitucha 035353123d Fix signed/unsigned variables 2016-01-29 07:49:31 +11:00
Charles J. Cliffe 68c409486e Fix toggling between low/high bw with same channel count 2015-12-29 23:25:22 -05:00
Charles J. Cliffe 7d6a387a77 Updates and improvements for low-bandwidth input usage 2015-12-29 20:52:49 -05:00
Charles J. Cliffe 1eb84d6fa7 SDRPostThread cleanup 2015-12-05 18:52:36 -05:00
Charles J. Cliffe cdc80b890b Add ReBuffer buffer count warning, fix SDRPostThread off-by-one channel reset 2015-12-04 22:10:51 -05:00
Charles J. Cliffe 7027e7bf0b Missed crash fix for channelizer channel 0 2015-10-27 17:06:39 -04:00
Charles J. Cliffe 3fc6f9ad80 Several crash/bug fixes, uninitialized vars 2015-10-27 16:53:06 -04:00
Charles J. Cliffe ac93aa369b Manual Gain Control :-)
- Disable AGC from settings menu
- Requires latest SoapySDRPlay gain commits for SDRPlay
2015-10-27 01:56:49 -04:00
Charles J. Cliffe b89d606af3 SoapySDR 0.4.0 updates
- Requires up-to-date SoapySDR 0.4.x and re-built modules
2015-10-23 02:53:51 -04:00