This has gone unnoticed because the majority of acquisition devices
either have local memory or require streaming. Only few support both
approaches and users can select the most appropriate approach for
their respective use case. Observed with Kingst LA devices.
Implement a feature check for the srd_session_send_eof() routine which
depends on the libsigrokdecode version. This test implementation is a
little more redundant than necessary, check_symbol_exists() would be
preferred instead but would not work in my local setup.
Without the fix cancellation of save data does not work
How to reproduce:
1. Start PV with demo device and generate sufficient data, e.g. demo device 1GSa/s, 10MSa
2. Save data (should take at least 30s) and try to cancel saving
3. PV continues saving data and dialog reappears after next progress update
glib/gatomic.h since 2.68 includes type_traits, which causes a compilation
error:
In file included from /usr/include/glib-2.0/glib/gatomic.h:31,
from /usr/include/glib-2.0/glib/gthread.h:32,
from /usr/include/glib-2.0/glib/gasyncqueue.h:32,
from /usr/include/glib-2.0/glib.h:32,
from /usr/include/libsigrokdecode/libsigrokdecode.h:25,
from /home/abuild/rpmbuild/BUILD/pulseview-0.4.2/pv/data/decode/annotation.cpp:21:
/usr/include/c++/10/type_traits:2308:3: error: template with C linkage
2308 | template<typename _CTp, typename _Rp>
As libsigrokdecode.h declares extern C linkage itself where necessary,
remove it from pulseviews include statements from the last two occasions.
NSIS 2.x doesn't know the unicode switch and chokes, 3.07 defaults
it to true as well.
As there doesn't seem to be a graceful way to handle 2.x versions,
we have to remove the unicode switch and the warning in 3.x (< 3.7)
installers shall be ignored.
Doing so called the empty DecodeSegment copy constructor,
creating empty DecodeSegment instances.
Also fixes an off-by-one bug that prevented the final input
segment from being processed.