Commit Graph

1283 Commits

Author SHA1 Message Date
vsonnier 2f84df3c47 Make DataTree throw exception objects, instead of dynamically allocated ones for simplicity 2018-06-08 05:58:55 +02:00
vsonnier cf06709cb4 Fix memory leak of the previous commit 2018-06-07 21:44:17 +02:00
vsonnier 3e4aadfaef Fix #659 : Allow manual editing of user_labels in normal ASCII 2018-06-06 20:49:37 +02:00
vsonnier 35482a0ede Improved CPU usage menu wording a bit 2018-05-19 16:16:36 +02:00
vsonnier f8317a6438 Fix wrong variable declaration placement preventing build w/o Hamlib 2018-05-18 17:04:39 +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 94b0b04b59 Merge branch 'master' into firpbch2_mode 2018-05-07 20:30:19 -04:00
Charles J. Cliffe 5731a93354 Version bump, donation updates 2018-04-26 22:15:31 -04:00
Charles J. Cliffe 4240b0efc2 Merge remote-tracking branch 'origin/master' into firpbch2_mode 2018-04-26 20:09:42 -04:00
vsonnier 1cc60bfc8d Fixes #635 round 5, Bookmarkview : let the buttons be of default color 2018-03-24 17:32:54 +01:00
vsonnier c9d38ab363 Fixes #635, round 4, Bookmarkview : always have Start/Stop Recording button irrespective of the actual demod active state 2018-03-24 09:48:18 +01:00
vsonnier a25253e745 Fix #635 round 3, BookmarkView: clear the buttons when 'Remove active' 2018-03-24 09:36:06 +01:00
vsonnier 00a864f741 Fix #635 Round 2 for Bookmarkview on Windows, should be OK now 2018-03-24 08:45:50 +01:00
vsonnier 120d394f01 Simpler #634, always use the first choice when out of bounds 2018-03-24 07:06:39 +01:00
vsonnier 4cd8735014 Fix #634 plus #534: bound checking in SDRDevices dialog selection 2018-03-21 06:35:59 +01:00
Charles J. Cliffe cdaae140fd
Merge pull request #637 from cjcliffe/master
Updates from master
2018-03-20 16:55:05 -04:00
vsonnier 225a795f31 Fixes for #635, round 1: BookmarkView 2018-03-20 20:00:59 +01:00
vsonnier e46d7f9735 Migration to wxWidgets v3.11:
- Seen on Windows: Bookmarkview slow update because the controls are self-reacting to the rebuild control events, so fix nullify them during control rebuilding.
- Update OpenGL initialization using v3.1 level context and canvas attributes instead of the deprecated calls.
2018-03-11 11:47:14 +01:00
vsonnier 8e52f232cf Visual scale is called Visual Gain in manual, so use the same naming in tooltips 2018-03-11 10:37:21 +01:00
vsonnier 10a4e391d7 Fix #630 improvement on Zoom(s) functions:
- Right-drag now does the same thing on both Spectrum and Waterfall, i.e change and hold vertical scale,
- So Right-drag on Waterfall no longer zoom bandwidth, there are already much more practical ways to do it (up/down, wheel)
- Right-click to reset vertical scale stays only enabled on Spectrum.
- Adapted mouse cursors to reflect the possible moves on Spectrum and Waterfall.
- Updated both Waterfall and Spectrum tooltips to match those features.
2018-03-11 10:04:57 +01:00
Charles J. Cliffe b193456ccb Merge branch 'master' into firpbch2_mode 2018-02-20 00:17:37 -05:00
Charles J. Cliffe 8cb5e9e244 SDRPostThread clean-up and re-factoring 2018-02-20 00:16:54 -05:00
vsonnier 7f732735ce Fix #616 wrong WAV size reported in header (thanks @nsmith-) 2018-02-18 19:49:47 +01:00
vsonnier c1e60f31f5 Fix #615 Be smarter when looking for font resources 2018-02-15 19:02:56 +01:00
Charles J. Cliffe afc29303c9 2x channel bandwidth firpfbch2_crcf optional path 2018-02-14 21:24:22 -05:00
vsonnier 490f72ceeb Fix #614: Wrong Freq offset applied if set from SDR Devices 2018-02-07 13:13:52 +01:00
vsonnier f2de1dd987 Fix #601 ?: Removed deadlock that prevent Audio controller threads to die. 2018-01-22 20:11:13 +01:00
vsonnier b55609c802 AudioThread: rollback some guard code because of previously wrong understanding 2018-01-22 07:26:13 +01:00
vsonnier 033bbd07df AudioThread: re-apply consistent formating 2018-01-22 07:10:45 +01:00
vsonnier fc1c1c3b4d AudioThread: rollback deviceCleanup() to only doing terminate + TEST: apply to all platforms 2018-01-22 07:04:45 +01:00
vsonnier 36224defd7 AudioThread: Rework mutex usage (again) + added proper cleanups (hopefully) 2018-01-21 18:08:46 +01:00
vsonnier d8ac9559fe BoolmarkMgr: rationalize a bit the usage of recursive_mutexes 2018-01-16 20:43:00 +01:00
Charles J. Cliffe 7588e77d94 Donation list update 2018-01-14 19:41:41 -05:00
Charles J. Cliffe 7baaca1216 OSX crash-on-exit fix, File menu tidying, Confirm bookmark reset 2018-01-14 18:56:30 -05:00
vsonnier 4c6d7ab4d7 Fix wrong multi-part WAV sequence management with time-limit files 2018-01-14 15:30:40 +01:00
vsonnier 3334538e64 Fix boolean usage instead of bool (we are not Java, are we ?) 2018-01-13 12:17:02 +01:00
vsonnier 4e6197c579 Fix minor cut-n-paste error in AudioSinkFileThread 2018-01-13 12:13:41 +01:00
vsonnier 26deefd606 Added #583: add periodic file generation, plus other options:
- Added a Recording menu,
git commit -m Added
2018-01-13 11:50:31 +01:00
vsonnier 4d0f3a794d Merge remote-tracking branch 'origin/master' into audio_recording 2018-01-12 19:31:33 +01:00
vsonnier 7b904bf803 Add a Reset Bookmarks menu (empty the bookmarks), similar to Reset Session 2018-01-12 19:26:22 +01:00
vsonnier 64e44d6172 Merge remote-tracking branch 'origin/master' into audio_recording 2018-01-10 19:00:04 +01:00
vsonnier 0f72a0f683 Fix #593 : Make the middle of the range always the central frequency 2018-01-09 20:22:56 +01:00
vsonnier 978cf492f8 Merge remote-tracking branch 'origin/master' into audio_recording 2018-01-09 07:07:11 +01:00
vsonnier f1208c7f5c When saving bookmarks, use active information when available
+ Fixed std::string <=> std::wstring conversions using wxString
+ cleanups.
2018-01-08 19:26:34 +01:00
vsonnier fc0f20f07d Removed recording duration limitation:
- Limit WAV size to 2GB for maximum compatibility,
- Continue recording on another file when size gets too big (XXX_001.wav, then XXX_002.wav and so on)
- The sequence assure up to 2000GB worth of recording which should be enough
- Changed file pattern to international Year.Month.Day so its recognizable whether you are English of French or whatever :)
2018-01-07 08:59:39 +01:00
vsonnier 8f45451df2 Choose a valid audio output if the modem-saved one is not recognized. 2018-01-06 16:15:40 +01:00
vsonnier 8daadc3603 Missing trace in AudioSink queue saturation 2018-01-06 15:10:25 +01:00
vsonnier 1dbfcedcd2 Fix to record below-squelch levels as audio silence 2018-01-06 14:19:32 +01:00
vsonnier d4251b41fb Feature #486 : Save/Load bookmarks into files 2018-01-06 10:22:14 +01:00
Charles J. Cliffe be75c62778 Menu and demod display tweaks 2018-01-02 23:51:32 -05:00
Charles J. Cliffe 8609667f33 About Dialog code update, passive vcredist install 2018-01-02 00:13:09 -05:00
Charles J. Cliffe f625cb6eea Donation list update 2018-01-01 22:12:04 -05:00
Charles J. Cliffe e6cd2ae774 AppImage fix - put_time req. GCC 5+ 2017-12-31 20:59:06 -05:00
Charles J. Cliffe 9b1f7b828c Merge branch 'master' into audio_recording 2017-12-31 14:54:41 -05:00
Charles J. Cliffe 5c45c1cf6b Record muted, toggle-all recording /w shift-R, status texts 2017-12-29 22:46:39 -05:00
Charles J. Cliffe b9e4f6aeba Recording path notify, bookmark panel record buttons, tweaks and adjustments 2017-12-04 22:44:47 -05:00
vsonnier ada56440fc Fix reloading of gains at startup. 2017-11-25 09:47:43 +01:00
vsonnier 4b077af873 Fix for gain sliders not perfectly following integer gain steps from the menu (i.e RSPx RF gains) 2017-11-20 18:53:38 +01:00
vsonnier e44af72b00 Assure Gain control <==> Settings menu synchronization in case of mutually depdendent updates 2017-11-19 17:06:11 +01:00
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