Commit Graph

1223 Commits

Author SHA1 Message Date
Charles J. Cliffe
326a993a29 Sequence recording on format change; user label as filename when available 2017-11-16 23:53:30 -05:00
Charles J. Cliffe
8f31fd9f5b Recording is now writing playable .WAV files 2017-11-02 00:01:22 -04:00
Charles J. Cliffe
6af64752be Merge branch 'master' into audio_recording 2017-11-01 22:34:28 -04:00
vsonnier
d55d7e9b75 Halloween Warning cleanup:
- wxFont SetFont() deprecated warnings, suppressed by re-generating forms with latest wxFormBuilder,
- double-to-float implicit conversion in CubicVR2
2017-10-31 11:08:15 +01:00
vsonnier
d8ff4ea1de Squash some warnings with std::shared_ptr init seen on Ubuntu 16.04 2017-10-29 15:06:24 +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
230a87d8df AudioThread: Revised mutex usage for devices vs. AudioThread* due to erroneous implem., creating crashes in some cases
(damn those things are hard...)
2017-10-28 11:57:01 +02:00
vsonnier
3cc49bdb15 Fixes #581 ?: Do not set std::shared_ptr to nullptr in constructors (useless anyway) since they could be wrongly interpreted 2017-10-16 18:50:55 +02:00
vsonnier
6019207bd4 VisualProcessor : protect against null input queue 2017-10-15 08:51:01 +02:00
vsonnier
f4107c1541 Optimized VisualProcessor by using a non-recursive mutex and making some ops non-blocking, small AudioThread opt as well 2017-10-14 11:34:25 +02:00
Charles J. Cliffe
38fab6ac51 Add 'R' toggle key + fixes from initial testing 2017-10-12 00:08:22 -04:00
Charles J. Cliffe
f8e51df8cd Demod instance start/stop recording setup 2017-10-09 20:07:40 -04:00
Charles J. Cliffe
c202d99a2a initial audio sink file and thread handling rough-in 2017-09-26 23:25:55 -04:00
Charles J. Cliffe
21dd062da0 Merge branch 'master' into audio_recording 2017-09-24 23:56:37 -04:00
Charles J. Cliffe
a398bc57f1 Initial AudioSink thread base and recoring preference 2017-09-24 23:50:08 -04:00
vsonnier
1a73f627a2 Frequency entry dialog font is slightly too big to fit, use the same as Label dialog instead 2017-09-24 12:46:33 +02:00
vsonnier
927d727a16 Try not to use atomics in performance code 2017-09-22 22:53:59 +02:00
vsonnier
aec0100f78 ThreadBlockingQueue : remove useless/dangerous operations, forbid both copy and assignment. 2017-09-10 19:35:12 +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
87077a89c1 Fix #574: cannot enter frequency offsets > 2GHz 2017-09-01 18:39:35 +02:00
vsonnier
252b6bf9f8 AudioThread polishing 2017-09-01 06:18:35 +02:00
vsonnier
3a5b30dda8 Fix AudioThread nullptr check 2017-08-31 21:29:53 +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
dc9c67bec1 Fix a DemodulatorInstance dangling reference 2017-08-29 06:40:07 +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
b52c4ac8a6 This lock is actually needed, restore it. 2017-08-27 13:35:11 +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
ebca762ea8 Fix crash introduced with #559, fix hanging thread at application termination 2017-08-25 18:52:33 +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
2c20f728d5 Settings UI even better, fix device config not right w.r.t real antenna presence 2017-08-24 21:26:28 +02:00
vsonnier
f5f4a80f23 Rollback addition of AGC,PPM in the SDRdevices menu, because not all devices support it. Keep Antenna selection, though 2017-08-23 23:49:52 +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
98c7c30aee Yet another Thread termination problem found, and try killing the app if the closing turns bad 2017-08-13 12:11:14 +02:00
vsonnier
33107bfa9e Fix #565, Solo mode is now saved into session files 2017-08-12 18:09:36 +02:00
vsonnier
e67a29f5b6 Don't get stuck when closing application just because some Demodulators refuse to die 2017-08-12 11:30:32 +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
Dell-Ray Sackett
ab6cb059b9 boolean not a valid keyword
changed boolean to bool in garbageCollect
2017-06-01 21:12:06 -07:00
Dell-Ray Sackett
b315bac97f Change boolean to bool
void DemodulatorMgr::garbageCollect(boolean forcedGC)
should be 
void DemodulatorMgr::garbageCollect(bool forcedGC)
2017-06-01 21:05:49 -07: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
3095f8205a CubicVR2: more restricted operators on structures by removing convert-to-pointer. (Fix #550 ?) 2017-05-28 12:59:08 +02:00
vsonnier
56b56685e0 Yet Another Semicolon After Endif left... (#549) 2017-05-27 15:28:42 +02:00
vsonnier
3de3d3eee8 Tentative fix #549 prt 3 2017-05-27 12:36:47 +02:00
vsonnier
b3dd0b0d6e Tentative fix #548 part 2 2017-05-27 09:49:19 +02:00
vsonnier
d170f731c5 Fix #549, plus more usual syntax for #548 2017-05-27 07:46:28 +02:00
vsonnier
fcf9f0bb82 Potential fix for #548, to be tested in Nix-like environnements 2017-05-26 23:22:43 +02:00
vsonnier
a0526f757e ReBuffer somewhat cleaner, safer code 2017-05-26 10:29:47 +02:00
vsonnier
44cdfa8521 Make ReBuffer also GC its own memory + cleanups:
- Use deque in ReBuffer instead of vector (as before) because it allows freeing its memory
- Random cleanup: remove mutable when not needed.
2017-05-25 16:39:01 +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
af20f680a4 Clearer ThreadBlockingQueue impl by using a field to hold size... 2017-05-21 21:04:12 +02:00
vsonnier
41c7dd231b Fix tabs introduced in latest commits... 2017-05-21 10:03:21 +02:00
vsonnier
e0af609224 Use a circular buffer for ThreadBlockingQueue (allocation-free) 2017-05-21 09:39:29 +02:00
vsonnier
fc2716518d SoapySDRThread: more comments about the relation between MTU and sample rate 2017-05-21 09:20:41 +02:00
vsonnier
c1fef72103 Use more a reliable time source in Windows for the Timer class 2017-05-20 13:31:55 +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
Charles J. Cliffe
1bf7c22f00 Donation list update 2017-05-11 22:51:39 -04:00
Charles J. Cliffe
91fd255c86 Remove temporary windows SSB filtering solution 2017-04-20 21:19:55 -04:00
Charles J. Cliffe
21b2b3d191 MSVC serial fix-up 2017-04-20 20:41:03 -04:00
Charles J. Cliffe
f9dc1aeb32 Use the right function.. 2017-04-20 19:53:08 -04:00
Charles J. Cliffe
43a9150107 Fix rig control menu, add serial port detection and selection dialog 2017-04-20 19:40:09 -04:00
vsonnier
0a19686b51 Remove 'threadlocal' pedantic and very limited usage that is not supported on all platforms 2017-04-05 19:28:18 +02:00
vsonnier
c8cca67fc7 Bookmarks: fix for #525 item 2, other cleanups. 2017-04-01 19:38:08 +02:00
Charles J. Cliffe
f4d090e65b Tweaks for bookmark selection, activation and group renaming 2017-03-30 22:26:11 -04:00
Charles J. Cliffe
1529fe3306 Fix flip-flopping config path conflict when using alternate build name. 2017-03-21 19:30:36 -04:00
Charles J. Cliffe
ec10f2523e Some additional custom build opts; fix compile order issue on OSX; patch tuning label font glitch. 2017-03-20 20:20:17 -04:00
Charles J. Cliffe
38e41eb85e Groups now renamed like everything else; remove onRenameGroup dc 2017-03-16 23:23:21 -04:00
Charles J. Cliffe
243c744c0a Fix the label editing issue :) 2017-03-15 21:23:13 -04: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
294713945a Bookmarks: a BookmarkEntry owns its DataNode, so free it in destructor 2017-03-07 18:30:33 +01:00
vsonnier
9726f0eec6 Bookmarks: no need to Delete a tree element when the next steps will take care of it 2017-03-06 19:51:27 +01:00
vsonnier
925203b4a5 Bookmarks (cont...) : more understanding, more comments, more fixes. NOW memory management should be clean... 2017-03-04 11:22:44 +01:00
vsonnier
7bab9588e1 Bookmarks: rollback delete item data procedures: reading wxWidgets labyrinthine code more carefully
item data is properly deleted by Delete or DeleteChildren. On the other hand, SetItemData simply overwrites the pointer,
so take care or releasing ressources there
2017-03-04 09:02:15 +01:00
vsonnier
b30f9e9bbb Bookmarks: assure proper recursive cleanup of ItemData for all levels of a tree item 2017-03-03 22:49:58 +01:00
vsonnier
aab899d63c Bookmarks fixes: try to cleanup Recent entries in order 2017-03-03 20:33:14 +01:00
vsonnier
c1184d24db Bookmarks: cleanup item data properly 2017-03-02 22:10:17 +01:00
Vincent Sonnier
5fe844b8af Should fix #520 2017-03-02 11:25:39 +01:00
vsonnier
bd65377162 BookmarkPanel was missing the Disconect matching the new Connect... 2017-03-01 22:25:27 +01:00
vsonnier
2760d3d12e Status/tootips additions: Gain, Bookmarks. Fix Bookmark mousewheel handling (for Windows <= 7) for the tree view 2017-03-01 22:13:41 +01:00
vsonnier
b149da864a Bookmark fixes and cleanups:
- Fix Search field not working on Windows 7 (at least), hope I didn't break all the other platforms
- Memory management is tedious there, with lots of BookmarkEntry* / BookmarkRangeEntry* shared and dangling around
  we cannot reasonably know when to clean up safely. So go nuclear and std::shared_ptr those things.
2017-02-28 19:05:36 +01:00
vsonnier
469fc41805 AppFrrame::OnMenu() tidy, correct wrong ColorTheme name (harmless) 2017-02-26 11:18:09 +01:00
vsonnier
946a9801dc FIX: Inactive demod bendwiths are restored to 0 from sessions, because they were erroneously saved as such.
The problem lies in DemodulatorPreThread:
- settings were actually get/set unprotected from concurrent access (bendwiths, frequencies, sample rates...etc) so make them atomic.
- If bandwith has changed, return the new value instead of the current one, just like frequencies.
2017-02-20 21:39:12 +01:00
vsonnier
051ebec49f BLOCKING_QUEUE: let audio-out try_push() too, else it often blocks evrything while in debugger... 2017-02-18 10:15:47 +01:00
Charles J. Cliffe
8dfb8ea3f1 minor fixes 2017-02-16 21:54:18 -05:00
vsonnier
9e32141a5f MISC4: Fix ref count of VisualDataDistributor (harmless, currently unused) 2017-02-15 20:45:46 +01:00
vsonnier
3ed65eff8e BLOCKING_QUEUE: don't forget to cleanup if we try_push() 2017-02-15 20:27:57 +01:00
vsonnier
65c1722bca FIX: VisualProcessor compilation on Linux targets (#514), ThreadBlockingQueue version... 2017-02-14 18:42:12 +01:00
vsonnier
7d412eccb6 BLOCKING_QUEUE: display current Thread id in both hex and decimal so both worlds are happy (GDB and Visual Studio) 2017-02-14 18:42:12 +01:00
vsonnier
25f7ba386d BLOCKING_QUEUE: remove ThreadBlockingQueue dependency to ThreadQueue, remove ThreadQueue.h from CMakeLists 2017-02-14 18:42:11 +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
c0dafb3197 FIX: VisualProcessor compilation on Linux targets (#514), suggested by @abousselmi, also works on MSVC 2017-02-14 18:34:25 +01:00
vsonnier
977ffa3e3d MISC2: Position labels better according to font scale (working this time) 2017-02-13 18:38:16 +01:00
vsonnier
2b0a2822a7 MISC: Position labels better according to font scale 2017-02-12 22:27:46 +01:00
vsonnier
d3db510643 pre-BLOCKING_QUEUE: Simplified, fixed ThreadQueue, VisualProcessor (use std:deque, cleaner templates, max_size fixes) 2017-02-12 12:53:50 +01:00
Charles J. Cliffe
8c1d785ff6 About Dialog panel padding tweak 2017-02-08 21:22:56 -05:00
Charles J. Cliffe
a4ae7fefb9 About dialog size adjustment 2017-02-08 19:48:28 -05:00
Charles J. Cliffe
6ce061280a New 'About' dialog and minor cleanup 2017-02-07 21:48:22 -05:00
Charles J. Cliffe
a05741fa9e Minor re-tweak of main waterfall default lines, version bump 2017-02-05 20:47:47 -05:00
vsonnier
a161cf51f9 OPTION1: Boost line numbers of main and demod waterfall from 512/128 to 1024/256 2017-02-05 18:54:17 +01:00
vsonnier
4609386648 COMMENTS,POLISHING: comments fenzy around VisualProcessor machinery,
make process() a true interface as strong hint for derived classes,
plus misc define added for understanding.

BUGFIX: FFTDataDistributor loses incoming samples when compacting internal buffers.

BUGFIX2: FFTDistributor: Frozen Waterfall if internal buffer is no bigger than fftSize
2017-02-05 12:41:43 +01:00
vsonnier
c00060a7d9 FIX: size_t definition not visible on some systems, so include stddef.h explicitly 2017-01-29 17:10:44 +01:00
vsonnier
115b0ffa58 CLEANUP: some compiler and static analysis warnings 2017-01-28 14:57:27 +01:00
vsonnier
2d97353365 Add a proper icon to the SDR Devices dialog 2017-01-27 23:34:48 +01:00
vsonnier
848d1bf0e3 Manage B key correctly activated for spectrum, not waterfall. Add another independent B (dB) key for audio scope 2017-01-27 23:23:25 +01:00
vsonnier
532f34c608 Theme set/change now consistent over the UI 2017-01-27 23:23:25 +01:00
Charles J. Cliffe
0b10ea5fb7 Allow updating of an existing range 2017-01-24 23:14:39 -05: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
5e4f5d7d96 IsMaximized() return is ambiguous for OSX full-screen vs. filled-screen; use Y position instead.. 2017-01-18 21:24:50 -05:00
Charles J. Cliffe
066d634d24 Don't save maximized window state/position on OSX 2017-01-18 20:13:25 -05:00
vsonnier
7ab2b08e7d UPGRADE_cleanup: removal of ENABLE_LIQUID_EXPERIMENTAL conditionals because the features are now in mainline liquid v1.30 2017-01-14 18:16:41 +01:00
vsonnier
1a53e454ab FIX: missing demod displays due to wrong input/queue setups order 2017-01-08 12:46:31 +01:00
vsonnier
89cac5db88 FIX: wrong directive placement prevent building witout HAMLIB 2017-01-03 18:41:38 +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
5c72b97309 Merge branch 'develop' into master 2017-01-02 21:22:13 -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
3cfb0154af Fix some header orders to make MSVC happy 2017-01-02 01:29:27 -05:00
Charles J. Cliffe
e971f551ad Set default bookmark sash pos 2017-01-02 00:00:31 -05:00
Charles J. Cliffe
5c89a0783d Flip recent list; bundle mod path update; version bump 2017-01-01 23:51:37 -05:00
Charles J. Cliffe
79c8c415e2 Show/Hide bookmarks option in display menu 2016-12-27 15:36:33 -05:00
Charles J. Cliffe
1ec92e0d9e Update theme needs repaint; limit wxColour conversion 2016-12-27 14:46:50 -05:00
Charles J. Cliffe
83cb2659ff Search actives, return proper expansion states after search 2016-12-27 13:49:47 -05:00
Charles J. Cliffe
68495b4d90 Dual bookmark backup files with user notification, auto-recovery and bail; save top level branch expand states 2016-12-27 13:01:19 -05:00
Charles J. Cliffe
69e23fd13a Save expanded group states 2016-12-27 00:59:51 -05:00
Charles J. Cliffe
cf056acfe6 Load/Save view ranges 2016-12-27 00:46:12 -05:00
Charles J. Cliffe
9eee45bb9d Improve keyword searching method; add view range bookmarking support 2016-12-27 00:06:25 -05:00
Charles J. Cliffe
d816dc220a Basic search, mostly functional 2016-12-26 21:56:19 -05:00
Charles J. Cliffe
a02dbae7d3 Prevent active switch from changing mode 2016-12-23 20:07:49 -05:00
Charles J. Cliffe
02a876272f Resolve CMakeLists tab/spaces; add non-blocking action dialog for common user requests. 2016-12-23 18:45:25 -05:00
Charles J. Cliffe
2085d0f2c9 Save and load splitter sash positions 2016-12-18 12:00:53 -05:00
Charles J. Cliffe
5870c7f7a2 Remove / clear recent entries 2016-12-17 21:14:13 -05:00
Charles J. Cliffe
870f61cdce Re-implement tree selection behavior tweaks 2016-12-17 20:47:32 -05:00
Charles J. Cliffe
fd928de3aa Show drag item name in popup; follow mouse position. 2016-12-16 22:05:25 -05:00
Charles J. Cliffe
5924ebc057 Clean-up some error-prone prototype cruft 2016-12-15 21:53:51 -05:00
Charles J. Cliffe
2cc05baaa1 Bookmarks/Recents now loading & saving 2016-12-13 21:09:44 -05:00
Charles J. Cliffe
746b7cfcae Bookmarks now save on exit; not loaded on startup yet. 2016-12-12 23:47:05 -05:00
Charles J. Cliffe
d48887d132 Bookmarking bugs, quirks and improvements 2016-12-12 20:17:47 -05:00
Charles J. Cliffe
4e2fced000 Handle out-of-band bookmarks and actives 2016-11-26 00:39:41 -05:00