vsonnier
44a9274cb1
More fake partial template specialization
2019-03-01 22:18:43 +01:00
vsonnier
dd92e75cda
Try to workaround explicit specialization in class scope error for GCC and friends
2019-02-28 22:05:27 +01:00
vsonnier
3b47045d28
Rework of DataElement to use more templates and much less memcpy...
2019-02-22 20:19:30 +01:00
vsonnier
2f84df3c47
Make DataTree throw exception objects, instead of dynamically allocated ones for simplicity
2018-06-08 05:58:55 +02: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
c1e60f31f5
Fix #615 Be smarter when looking for font resources
2018-02-15 19:02:56 +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
aec0100f78
ThreadBlockingQueue : remove useless/dangerous operations, forbid both copy and assignment.
2017-09-10 19:35:12 +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
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
8f608bbf5c
Cleanup: remove some unused params and variables, conversion warnings seen with #550 .
2017-05-29 20:22:10 +02:00
vsonnier
56b56685e0
Yet Another Semicolon After Endif left... ( #549 )
2017-05-27 15:28:42 +02:00
vsonnier
d170f731c5
Fix #549 , plus more usual syntax for #548
2017-05-27 07:46:28 +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
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
c1fef72103
Use more a reliable time source in Windows for the Timer class
2017-05-20 13:31:55 +02: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
Charles J. Cliffe
8dfb8ea3f1
minor fixes
2017-02-16 21:54:18 -05: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
d3db510643
pre-BLOCKING_QUEUE: Simplified, fixed ThreadQueue, VisualProcessor (use std:deque, cleaner templates, max_size fixes)
2017-02-12 12:53:50 +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
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
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
cf056acfe6
Load/Save view ranges
2016-12-27 00:46:12 -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
020cef12c9
Recents list, DataTree rewindAll(), Bookmark view updates
2016-10-05 19:10:01 -04:00
Charles J. Cliffe
95fd357c72
Add font scale support to meter panel
2016-07-21 18:43:11 -04:00
Charles J. Cliffe
4d2ea8d08a
Merge pull request #398 from vsonnier/thread_clean_3
...
thread_clean_3: Multithreading AudioThread hardening, use of try_pop() and more.
2016-07-08 21:28:11 -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
Charles J. Cliffe
baa5d93ba6
Merge branch 'master' into gain_gui_cleanup
2016-07-06 21:00:04 -04:00
Charles J. Cliffe
a87c58c4a8
Initial Meter Panel work
2016-07-03 20:59:49 -04:00
vsonnier
567d84711f
THREAD_CLEAN_PART2: Assure correct terminate()/isTerminated(delay)/delete sequence +
...
Removed the NotifyQueue between DemodulatorInstance participants, actually not needed
since DemodulatorInstance::IsTerminated() is explicitly called on some events for cleanups
DELETE_CLEANUP: properly nullify deleted pointers when needed
2016-07-03 14:22:41 +02:00
Charles J. Cliffe
464055ff57
OSX bundled font fix-up
2016-06-28 19:36:37 -04:00
vsonnier
a558102cc5
Rewrite GLFont loading routine with correct paths computation
2016-06-25 17:51:22 +02:00
vsonnier
07102caf54
dB display truncated on the left at big zoom levels + Realign TextPanel font choice on existing fonts because scaling is quite ugly
2016-06-24 22:20:51 +02:00
vsonnier
78cfe9c755
DONE. Now GLFont.getFont() retturns a proxy that automatically selects the best font for the required size
2016-06-23 21:28:04 +02:00
vsonnier
83b62cddeb
The quest continues, almost done, but have an idea to rework GLFont.drawString() completly, TODO next time
2016-06-22 21:21:32 +02:00
vsonnier
9962e606a6
FIX out-of-bounds dB display
2016-06-22 19:04:59 +02:00
vsonnier
85178095ca
Reset all font caches when font size changes
2016-06-21 21:26:12 +02:00
vsonnier
f52bad6196
Make GLFont its own pixHeight, so don't provide it in drawString() anymore
2016-06-21 21:26:10 +02:00
vsonnier
26bf1d9927
GLFont doCacheGC() in one pass
2016-06-21 21:26:10 +02:00