Uwe Hermann [Mon, 8 Feb 2016 20:17:34 +0000 (21:17 +0100)]
Use nullptr in some more places.
This patch was generated using clang-tidy:
clang-tidy -checks="-*,modernize-use-nullptr" -fix
Uwe Hermann [Wed, 10 Feb 2016 23:17:36 +0000 (00:17 +0100)]
CMakeLists.txt: Bump PulseView version to 0.4.0.
0.4.0 will be the next major release. Bump now, so that
there is no confusion of tarball 0.3.0 and 0.4.0-git snapshots.
Soeren Apel [Tue, 9 Feb 2016 13:48:31 +0000 (14:48 +0100)]
Fix #181 by changing the global decode lock into an SRD lock
The global decode was insufficient insofar as it didn't
prevent a newly started decode thread from interjecting its
own decode operations. When this happens, something goes
haywire somewhere and Python crashes.
Until the underlying cause is fixed, this global SRD lock
forces one decoder thread to finish before another one can
start.
While this is a bit inconvenient for wanting to decode as
the acquisition is going on, it currently is the only
working option.
Soeren Apel [Tue, 9 Feb 2016 10:58:36 +0000 (11:58 +0100)]
DecoderStack: Make decoder sessions terminate after running
Currently, SRD sessions aren't terminating after all data
has been decoded, leaving the decode thread in a state
where it's waiting for more data.
This would be okay if an acquisition was still ongoing but
when the acquisition has been stopped, there will never be
more data. When a new acquisition is started, the previous
decode sessions will be terminated and then new ones will
be started. This is the reason why this behavior wasn't
an issue up until now.
However, the fix for #181 requires that the decode thread
terminates or else the global SRD lock will never be
released.
Soeren Apel [Sat, 6 Feb 2016 17:07:05 +0000 (18:07 +0100)]
MainWindow: Try to use any available device aside from demo
Currently, PV will only try to use the previously used device.
However, when first running PV, it will default to demo as
there is no previously used device. In this case, we still
want to use whatever device we can get our hands on so that
the user can start using PV immediately.
Soeren Apel [Thu, 4 Feb 2016 21:39:35 +0000 (22:39 +0100)]
DecodeTrace: Remove unnecessary parameters
Soeren Apel [Thu, 4 Feb 2016 21:39:07 +0000 (22:39 +0100)]
DecodeTrace: Let annotation labels be pushed aside by the row title
Soeren Apel [Thu, 4 Feb 2016 21:38:34 +0000 (22:38 +0100)]
DecodeTrace: Try to keep annotation labels within the view
Up until now, annotation labels were always drawn centered,
even if the annotation was very wide and mostly off-screen.
This resulted in annotation labels being out of view, even
if there would be enough space to draw it within the view.
This patch fixes this.
Soeren Apel [Thu, 4 Feb 2016 21:37:54 +0000 (22:37 +0100)]
Fix 745 by improving the draw_annotations() block drawing algo
Soeren Apel [Sun, 31 Jan 2016 17:22:17 +0000 (18:22 +0100)]
Fix clang warning: shifting a negative signed value is undefined
Soeren Apel [Sun, 31 Jan 2016 17:18:47 +0000 (18:18 +0100)]
Fix #737 by adding the override specifier where needed
Soeren Apel [Sun, 31 Jan 2016 17:06:07 +0000 (18:06 +0100)]
Fix unit tests and prevent warnings
Soeren Apel [Sun, 31 Jan 2016 14:10:10 +0000 (15:10 +0100)]
Fix #733: Open import files using binary mode
Soeren Apel [Sun, 31 Jan 2016 13:12:44 +0000 (14:12 +0100)]
View: Honor ENABLE_DECODE compiler switch
Uwe Hermann [Fri, 29 Jan 2016 19:25:52 +0000 (20:25 +0100)]
NEWS: Update for upcoming 0.3.0 release.
Uwe Hermann [Fri, 29 Jan 2016 19:26:05 +0000 (20:26 +0100)]
INSTALL: Mention the missing glibmm dependency.
PulseView uses glibmm directly, not just indirectly via libsigrokcxx.
Uwe Hermann [Sun, 3 Jan 2016 19:40:27 +0000 (20:40 +0100)]
Fix a bunch of random typos.
Joel Holdsworth [Sat, 2 Jan 2016 16:18:50 +0000 (16:18 +0000)]
MainBar: Added missing menu item
Joel Holdsworth [Sat, 2 Jan 2016 16:17:45 +0000 (16:17 +0000)]
MainWindow: Added missing definition of action_view_coloured_bg
Joel Holdsworth [Sat, 2 Jan 2016 15:56:59 +0000 (15:56 +0000)]
Trace: Removed hit_box_rect, to remove canvas dragging support
Joel Holdsworth [Sat, 2 Jan 2016 15:47:39 +0000 (15:47 +0000)]
Revert "Make traces non-draggable outside the header area"
This reverts commit
e081bf3d864d5662716668d6b4adcb0871d11dae.
Joel Holdsworth [Sat, 2 Jan 2016 15:47:31 +0000 (15:47 +0000)]
Revert "Make traces only selectable in the header area"
This reverts commit
35365c66bf6166c5607f1180016528d996a45b66.
Joel Holdsworth [Sat, 2 Jan 2016 15:45:22 +0000 (15:45 +0000)]
DecodeTrace: With a rounded rect
Joel Holdsworth [Sat, 2 Jan 2016 15:32:02 +0000 (15:32 +0000)]
DecodeTrace: Use an stl algorithm to find if all annotations are the same colour
Uwe Hermann [Sun, 3 Jan 2016 03:07:22 +0000 (04:07 +0100)]
Bump the Boost requirement to >= 1.53.
This is required now since we use the Boost multiprecision module.
Thanks to Daniel Glöckner for the report.
This fixes bug #722.
Martin Ling [Tue, 3 Nov 2015 10:54:17 +0000 (10:54 +0000)]
Update to new configuration API.
Soeren Apel [Wed, 30 Dec 2015 17:34:47 +0000 (18:34 +0100)]
DecodeTrace: Prevent trace height from jumping
In
506317984393a41000650ccca868f3dd66872a4f, the decode
trace height was made dependent on the number of currently
visible annotation rows.
This however has issues: when zooming in on an area where
there are no annotations, the height of the decode trace
collapses. With this patch, this can't happen anymore as
a new variable keeps track of the maximum number of
annotation rows ever encountered, keeping the decoder
trace height stable.
Soeren Apel [Wed, 30 Dec 2015 17:00:46 +0000 (18:00 +0100)]
DecodeTrace: Improve annotation block drawing
Instead of just drawing blocks using the color of the first
annotation in the block, draw a "special" annotation
with a dotted pattern.
The color of this annotation depends on the annotations
in that range: a color is used if they're all of the same
annotation class. If there's different kinds, gray is used.
Soeren Apel [Tue, 29 Dec 2015 22:15:19 +0000 (23:15 +0100)]
Fix #717 by only updating the name widget when necessary
Soeren Apel [Tue, 29 Dec 2015 22:13:53 +0000 (23:13 +0100)]
Fix #719 by calculating the decoder trace height dynamically
Soeren Apel [Tue, 29 Dec 2015 22:13:18 +0000 (23:13 +0100)]
Make traces only selectable in the header area
Soeren Apel [Tue, 29 Dec 2015 22:12:26 +0000 (23:12 +0100)]
Make traces non-draggable outside the header area
Soeren Apel [Tue, 29 Dec 2015 22:10:58 +0000 (23:10 +0100)]
Fix #687: Update channels after removing decoder traces
Soeren Apel [Tue, 29 Dec 2015 22:04:59 +0000 (23:04 +0100)]
DecodeTrace: Speed up annotation drawing
The speedup is achieved by combining neighbouring annotations
into a single item to be drawn if their end pixels are less than
2 pixels apart.
This fixes bug #325.
Soeren Apel [Tue, 29 Dec 2015 07:02:39 +0000 (08:02 +0100)]
DecodeTrace: Use correct background colour
This fixes bug #718.
Uwe Hermann [Mon, 28 Dec 2015 23:27:10 +0000 (00:27 +0100)]
Minor whitespace and Doxygen fixes.
Uwe Hermann [Mon, 28 Dec 2015 23:26:20 +0000 (00:26 +0100)]
manpage: Document the new 'b' keyboard shortcut.
Soeren Apel [Mon, 28 Dec 2015 20:48:30 +0000 (21:48 +0100)]
Viewport: Allow for vertical dragging as well
Soeren Apel [Mon, 28 Dec 2015 20:20:23 +0000 (21:20 +0100)]
Use alternating trace background colors when not using their own
Soeren Apel [Mon, 28 Dec 2015 20:16:33 +0000 (21:16 +0100)]
Implement "use coloured background" functionality
Soeren Apel [Mon, 28 Dec 2015 15:15:29 +0000 (16:15 +0100)]
Add menu option for coloured/alternating trace background colors
Soeren Apel [Mon, 28 Dec 2015 14:23:31 +0000 (15:23 +0100)]
MainWindow: Fix typo
Soeren Apel [Mon, 28 Dec 2015 14:13:42 +0000 (15:13 +0100)]
Use channel color as the trace background color
Uwe Hermann [Thu, 17 Dec 2015 16:46:34 +0000 (17:46 +0100)]
manpage: Document all keyboard shortcuts.
Uwe Hermann [Wed, 16 Dec 2015 21:33:03 +0000 (22:33 +0100)]
manpage: Minor fixes and updates.
Uwe Hermann [Wed, 16 Dec 2015 21:22:01 +0000 (22:22 +0100)]
Various minor whitespace and consistency fixes.
Stefan Brüns [Fri, 27 Nov 2015 00:20:13 +0000 (01:20 +0100)]
session: make sure signals set is initialized
This fixes parts of bug #387.
Stefan Brüns [Sun, 29 Nov 2015 04:30:33 +0000 (05:30 +0100)]
view/analogsignal: set samplerate to 1.0 if samplerate is not known
This fixes parts of bug #387.
Soeren Apel [Sat, 12 Dec 2015 14:01:03 +0000 (15:01 +0100)]
Session: Allow using sample rate from meta packet
Currently, PV only looks at the device config to determine the
sample rate. This breaks as input filters submit meta packets
containing the sample rate and provide no device config.
Example: load any file in PV using the raw binary input filter
and set the sample rate to anything but 0. PV will still show
'sa' as the time unit, indicating that it dismisses the sample
rate information sent in the meta packet.
This patch makes this work by using the sample rate if it
wasn't already set from the device config.
Uwe Hermann [Thu, 3 Dec 2015 08:49:33 +0000 (09:49 +0100)]
CMakeLists.txt: Drop superfluous "include(FindPkgConfig)".
This causes the check for the pkg-config tool to be performed twice
since it is followed by another "find_package(PkgConfig)".
This can cause issues in some situation, see e.g.
https://github.com/mxe/mxe/issues/1023#issuecomment-
161255930
This fixes bug #663.
Tilman Sauerbeck [Wed, 2 Dec 2015 18:45:12 +0000 (19:45 +0100)]
DecodeTrace: Don't dereference iterator pointing at end of container.
Tilman Sauerbeck [Sat, 28 Nov 2015 11:53:56 +0000 (12:53 +0100)]
LogicSignal: Only draw the trigger marker for enabled channels.
This makes the behaviour consistent across LogicSignal's three
painting functions (paint_back(), paint_mid() and paint_fore()).
Tilman Sauerbeck [Mon, 23 Nov 2015 18:07:59 +0000 (19:07 +0100)]
LogicSignal: Put all trigger matches into a single trigger stage.
Previously each trigger match was assigned its own trigger stage,
which is problematic because devices may not support more than one
stage.
Ideally we would want the user to decide which matches go into
which stages, but that's a long way off and this change makes
things work just a little bit better for more devices.
Fixes bug #683.
Tilman Sauerbeck [Mon, 16 Nov 2015 20:36:20 +0000 (21:36 +0100)]
MainBar: Only show "total sampling time" tooltip if supported by device.
If the device doesn't support SR_CONF_LIMIT_SAMPLES, the tooltip would
always show a sampling time of 0s.
Tilman Sauerbeck [Mon, 9 Nov 2015 17:33:42 +0000 (18:33 +0100)]
Session: document the purpose of sampling_mutex_.
Tilman Sauerbeck [Mon, 9 Nov 2015 06:28:59 +0000 (07:28 +0100)]
Session: don't hold sampling_mutex_ during signal emission.
We were holding the lock while emitting capture_state_changed.
Tilman Sauerbeck [Sun, 8 Nov 2015 20:30:13 +0000 (21:30 +0100)]
View: support multiple trigger markers in one acquisition.
Remove the previous acquisition's markers when a new acquisition
is started, and add a new one everytime we receive the SR_DF_TRIGGER
packet.
Uwe Hermann [Sun, 8 Nov 2015 18:32:00 +0000 (19:32 +0100)]
Minor (Doxygen) comment cosmetics.
Tilman Sauerbeck [Sat, 7 Nov 2015 10:40:02 +0000 (11:40 +0100)]
Use the TriggerMarker class to visualize the time of SR_DF_TRIGGER.
This allows us to remove the name-based immovable hack from Flag.
Note that this also means that the trigger marker no longer has
a name at all.
Tilman Sauerbeck [Sat, 7 Nov 2015 10:24:42 +0000 (11:24 +0100)]
Add TriggerMarker class.
This will be used in a follow-up changeset for the markers that
visualize the time of SR_DF_TRIGGER.
Note that this copies a little code from the TimeMarker class,
but that seemed a better idea than deriving from it and disabling
the popup and label-drawing code.
Tilman Sauerbeck [Sat, 7 Nov 2015 14:41:58 +0000 (15:41 +0100)]
When hovering a ViewItem only change the mouse cursor for movable items.
Tilman Sauerbeck [Sat, 7 Nov 2015 14:31:08 +0000 (15:31 +0100)]
Add a mechanism to make ViewItem classes immovable.
This adds a new method ViewItem::is_draggable(), which returns
true iff the view item is supposed to be draggable/movable.
Also, ViewItem::drag() is turned into a nop if the item is
not draggable.
Soeren Apel [Thu, 5 Nov 2015 18:14:46 +0000 (19:14 +0100)]
StoreSession: Observe proper range order
When I wrote the original solution I wanted min() and abs()
to take care of this issue. However, I forgot that abs()
works on a difference of two uint64_t, so this subtraction
will underflow if the range is in the wrong order.
Converting them to int64_t isn't a good solution, so I'm now
using an ordinary condition instead.
Soeren Apel [Thu, 5 Nov 2015 07:51:34 +0000 (08:51 +0100)]
Fix #685 by adding a special T marker when SR_DT_TRIGGER arrives
Uwe Hermann [Wed, 4 Nov 2015 22:53:59 +0000 (23:53 +0100)]
Minor whitespace cosmetics.
Soeren Apel [Wed, 4 Nov 2015 17:38:13 +0000 (18:38 +0100)]
MainWindow: Merge save_selection_to_file() back into export_file()
Soeren Apel [Wed, 4 Nov 2015 17:37:39 +0000 (18:37 +0100)]
MainWindow: Add selection_only parameter to export_file()
Soeren Apel [Wed, 4 Nov 2015 16:03:26 +0000 (17:03 +0100)]
Add "save selection range as..." to the export menu on the toolbar
Soeren Apel [Wed, 4 Nov 2015 16:02:47 +0000 (17:02 +0100)]
Make ExportMenu accept a vector of actions
Soeren Apel [Wed, 4 Nov 2015 15:41:34 +0000 (16:41 +0100)]
Refactoring: move samplerate algo from View to Session
Soeren Apel [Wed, 4 Nov 2015 15:33:07 +0000 (16:33 +0100)]
Introduce "save selection range as..." feature
Uwe Hermann [Tue, 3 Nov 2015 18:10:07 +0000 (19:10 +0100)]
CMakeLists.txt: Enable unit tests by default.
This will help to avoid missing some breakage scenarios.
Daniel Elstner [Mon, 2 Nov 2015 21:29:46 +0000 (22:29 +0100)]
Suppress warnings from glibmm about deprecated auto_ptr
This fixes bug #654.
Daniel Elstner [Mon, 2 Nov 2015 21:14:39 +0000 (22:14 +0100)]
build: Limit auto-versioning to git revision hash
When building from a git checkout and HEAD does not exactly match
a tag, append the shortened revision hash to the hardcoded version
string. Do not attempt to provide any information beyond that.
This brings the PulseView versioning in line with the other modules
in the sigrok stack.
Aurelien Jacobs [Sat, 24 Oct 2015 20:18:42 +0000 (22:18 +0200)]
avoid using deprecated std::autoptr
This fixes the following g++-5 warning:
pv/dialogs/about.hpp:51:7: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
std::auto_ptr<QTextDocument> supportedDoc;
Uwe Hermann [Sat, 24 Oct 2015 16:54:18 +0000 (18:54 +0200)]
win32: Re-fix the Windows build (namespace pollution via windows.h).
This brings back / extends fixes for bug #517.
Uwe Hermann [Tue, 20 Oct 2015 22:33:46 +0000 (00:33 +0200)]
Minor update related to the libsigrok analog format changes.
This is only a temporary fix, and assumes only SR_DF_ANALOG packets with
float data ever arrive. Support for other types will be needed later.
Uwe Hermann [Sun, 18 Oct 2015 14:20:46 +0000 (16:20 +0200)]
test/CMakeLists.txt: Add missing files.
Joel Holdsworth [Sat, 3 Oct 2015 22:37:23 +0000 (16:37 -0600)]
Viewport: Anti-alias time items, but not row items
Joel Holdsworth [Sat, 3 Oct 2015 22:29:30 +0000 (16:29 -0600)]
View: Place non-grouped logic channels in a TraceGroup
Joel Holdsworth [Mon, 7 Sep 2015 00:35:34 +0000 (18:35 -0600)]
ViewWidget: Moved update() call into ViewItem
Joel Holdsworth [Wed, 14 Oct 2015 03:17:25 +0000 (21:17 -0600)]
AnalogSignal: Apply scale handle dragging
Joel Holdsworth [Wed, 14 Oct 2015 04:01:49 +0000 (22:01 -0600)]
LogicSignal: Apply scale handle dragging
Joel Holdsworth [Sun, 30 Aug 2015 15:52:14 +0000 (09:52 -0600)]
ScaleSignalHandle: Initial implementation
Joel Holdsworth [Mon, 7 Sep 2015 00:39:29 +0000 (18:39 -0600)]
ViewWidget: Added drag-handling support for non-TraceTreeItems
Joel Holdsworth [Sun, 30 Aug 2015 15:52:37 +0000 (09:52 -0600)]
Header: Added drag-handling support for non-TraceTreeItems
Joel Holdsworth [Mon, 7 Sep 2015 02:29:31 +0000 (20:29 -0600)]
ViewItem: Make hit_box_rect take ViewItemPaintParams
Joel Holdsworth [Sun, 6 Sep 2015 23:57:54 +0000 (17:57 -0600)]
LogicSignal: Replaced SignalMargin with half font-height
Joel Holdsworth [Sun, 6 Sep 2015 14:30:30 +0000 (08:30 -0600)]
Header: Hit-test items in reverse order
Joel Holdsworth [Tue, 1 Sep 2015 02:19:43 +0000 (20:19 -0600)]
ViewItem: Added a default label_rect implementation
Joel Holdsworth [Tue, 1 Sep 2015 02:13:08 +0000 (20:13 -0600)]
Signal: Added scale_handle_offset, scale_handle_dragged and scale_handle_released
Joel Holdsworth [Tue, 1 Sep 2015 01:52:33 +0000 (19:52 -0600)]
Viewport: Render all types of RowItem
Joel Holdsworth [Wed, 14 Oct 2015 03:28:14 +0000 (21:28 -0600)]
TraceTreeItem: Update when selection state changes
Joel Holdsworth [Wed, 14 Oct 2015 03:21:32 +0000 (21:21 -0600)]
ViewItem: Make select virtual
Joel Holdsworth [Sun, 4 Oct 2015 21:56:30 +0000 (15:56 -0600)]
ViewItem: Make drag_release virtual
Joel Holdsworth [Tue, 1 Sep 2015 01:51:00 +0000 (19:51 -0600)]
ViewItem: Make paint_label optional
Joel Holdsworth [Sun, 30 Aug 2015 15:02:28 +0000 (09:02 -0600)]
Signal: Derive from ViewItemOwner
Joel Holdsworth [Sun, 30 Aug 2015 15:31:17 +0000 (09:31 -0600)]
TraceTreeItemOwner: Removed non-const item_list accessor
Joel Holdsworth [Mon, 17 Aug 2015 01:14:47 +0000 (19:14 -0600)]
Added ViewItemOwner
Joel Holdsworth [Sun, 23 Aug 2015 00:39:05 +0000 (18:39 -0600)]
RowItemIterator: Removed usage of RowItem::owner()