pulseview.git
4 years agocmake: add check for explicit linking against libatomic
Samuel Martin [Thu, 26 May 2016 21:46:40 +0000 (23:46 +0200)]
cmake: add check for explicit linking against libatomic

To use atomics functions, some toolchains requires to explicitly add
-latomic to the linker flags (because they are not provided by libc,
but libatomic).

This change adds a helper function trying to build/link a test program
using atomics, then calls it to:
* first check if atomics are directly available in the libc;
* if not and libatomic has been found, then run the same test with
  "-latomic" added to the linker flags.
The pulseview link library list is updated according to the results of
these tests.

This issue was triggered by the Buildroot farms:
  http://autobuild.buildroot.org/results/1e3/1e3101261252d5f30fdf842cc99604e4f4c25eef/build-end.log

Notes:
1- CMAKE_REQUIRED_* variables are only used in check functions. They
   are not automatically forwarded to/handled by the target commands
   (such as target_link_library), because the check functions are
   implemented as macro in CMake code, whereas many target commands
   are native.
2- Because of note #1, CMAKE_REQUIRED_LIBRARIES (or its value) must be
   explicitly passed to the target_link_library command when this is
   needed.
3- In this implementation, LIBATOMIC_LIBRARY is only set when it is
   needed; so, unconditionally appending it to PULSEVIEW_LINK_LIBS
   will produce the expected behavior.

This fixes bug #810.

Signed-off-by: Samuel Martin <s.martin49@gmail.com>
4 years agocmake: use pkg-config ldflags directly instead of spliting libs and dirs
Aurelien Jacobs [Thu, 19 May 2016 22:23:11 +0000 (00:23 +0200)]
cmake: use pkg-config ldflags directly instead of spliting libs and dirs

This allows picking some necessary linker flags such as
-Wl,--whole-archive

4 years agoTrace: Make popup forms compatible with OSX
Elias Oenal [Thu, 19 May 2016 18:34:45 +0000 (20:34 +0200)]
Trace: Make popup forms compatible with OSX

Qt behaves differently on OSX regarding widget lifetime it seems,
causing the addition of a stacked decoder to crash PV.

According to Elias, the object popup_form_ gets destroyed, yet
it still has the parent popup_ which in turn will destroy it
again at the end of its life. Either removing the parent, or the
preliminary destruction, fixes the crash.

4 years agoSession: Keep track of signal data locally
Soeren Apel [Thu, 19 May 2016 18:29:37 +0000 (20:29 +0200)]
Session: Keep track of signal data locally

Currently, the Session class doesn't hold pointers to the signal
data itself but instead fetches the data on demand using the list
of signals it has. As the Session is providing the model in the
MVC paradigm, it owns the data and thus should keep track of it
directly. The signals are (in an ideal world) mere views on that
data, so querying them for the signal data isn't good style.

4 years agoInputFile: Use new reset() function to allow re-reading file
Soeren Apel [Mon, 2 May 2016 20:22:39 +0000 (22:22 +0200)]
InputFile: Use new reset() function to allow re-reading file

Commit 519d0ccbe67d005a9c442795ce3b8255e78ca46d tried to solve
the problem of being unable to re-read an opened file by clicking
the "run" button. However, the solution is insufficient.
PV expects the session device to be updated after the open()
call. If it is not, the device settings popup will show the
settings of the previously used device.

This patch fixes this and also makes use of the new reset()
method to allow re-reading of the file contents. The method
is necessary because otherwise we have to destroy the input
module and create a new instance. This however also means
setting a new session device, which is highly undesirable.
So reset() it is.

4 years agoDecoderStack: Force a viewport update more frequently
Soeren Apel [Tue, 3 May 2016 19:49:00 +0000 (21:49 +0200)]
DecoderStack: Force a viewport update more frequently

Updating the viewport every 65kib of input data causes
the decode trace to make really big leaps, leaving the
user with the feeling of a not-so-snappy user interface.
We can easily change this by updating the trace every 1kib
since the decoder and the UI thread are separate and the
decode trace drawing is much faster since when the limit
was originally set.

4 years agoFix #792 by making sure we don't request samples that don't exist
Soeren Apel [Tue, 3 May 2016 06:53:24 +0000 (08:53 +0200)]
Fix #792 by making sure we don't request samples that don't exist

4 years agoConnect dialog: Make button caption more clear
Soeren Apel [Tue, 26 Apr 2016 06:30:02 +0000 (08:30 +0200)]
Connect dialog: Make button caption more clear

Users are expecting *any* device to be found when pressing
the "Scan for Devices" button. As that is not what it's doing,
we need to clarify what it does.

4 years agoDecodeTrace: Let the view know when we need more space
Soeren Apel [Wed, 20 Apr 2016 16:27:29 +0000 (18:27 +0200)]
DecodeTrace: Let the view know when we need more space

4 years agoDecodeTrace: Make sure first row's label width can be calculated
Soeren Apel [Wed, 20 Apr 2016 16:15:12 +0000 (18:15 +0200)]
DecodeTrace: Make sure first row's label width can be calculated

Without a pen set, p.boundingRect() returns 0. All other rows
have their label text width calculated with a pen, which makes
p.boundingRect() work as intended. Fix this by setting a pen
before the first row is processed.

4 years agoView: Remove unnecessary methods
Soeren Apel [Mon, 18 Apr 2016 19:44:48 +0000 (21:44 +0200)]
View: Remove unnecessary methods

4 years agoFix #771 by using black with alpha instead of an opaque grey
Soeren Apel [Mon, 18 Apr 2016 06:25:36 +0000 (08:25 +0200)]
Fix #771 by using black with alpha instead of an opaque grey

4 years agoFix #777 by using a workaround for assumed glibmm bug
Soeren Apel [Sun, 17 Apr 2016 13:29:09 +0000 (15:29 +0200)]
Fix #777 by using a workaround for assumed glibmm bug

4 years agoFix #705 by preventing the use of invalid instances
Soeren Apel [Sun, 17 Apr 2016 13:28:51 +0000 (15:28 +0200)]
Fix #705 by preventing the use of invalid instances

As QCache owns the object instances it manages, inserting
an object into the cache transfers ownership automatically.
This means we can't use an instance after it has been
inserted into the cache as this results in a double free
situation as we'd end up calling the destructor on the same
object instance as the cache.

4 years agoAnalogSignal: Make sure the trace is redrawn when changing vdiv count
Soeren Apel [Wed, 13 Apr 2016 18:17:53 +0000 (20:17 +0200)]
AnalogSignal: Make sure the trace is redrawn when changing vdiv count

4 years agoTrace/AnalogSignal: Improve contrast and precision of the trace lines
Soeren Apel [Wed, 13 Apr 2016 17:45:22 +0000 (19:45 +0200)]
Trace/AnalogSignal: Improve contrast and precision of the trace lines

4 years agoView: Make sure unused groups are freed
Soeren Apel [Wed, 13 Apr 2016 06:29:17 +0000 (08:29 +0200)]
View: Make sure unused groups are freed

4 years agoSession: Make sure all data is deleted before changing devices
Soeren Apel [Mon, 11 Apr 2016 06:45:36 +0000 (08:45 +0200)]
Session: Make sure all data is deleted before changing devices

4 years agoInputFile: Don't try to create device twice
Soeren Apel [Fri, 8 Apr 2016 21:32:54 +0000 (23:32 +0200)]
InputFile: Don't try to create device twice

The InputFile currently only keeps track of the
need for a device instance local to run().
This means that when calling run() a second time
(e.g. by clicking the "Run" button after loading
a file), the function will try to create the
device instance and add it to the session.
This fails as the first created instance is
still assigned to the session and thus the
session will reject adding another device.

Furthermore, simply clearing the session
devices isn't enough for proper operation.
The issue is that once a file's content has
been sent to an input module, the module is
not going to accept another file. It needs
to be reset to its initial state. To do this,
we create the input module instance every time
we want to read the file.

4 years agoDecodeTrace: Make an empty decode trace appear symmetrical
Soeren Apel [Fri, 8 Apr 2016 16:32:41 +0000 (18:32 +0200)]
DecodeTrace: Make an empty decode trace appear symmetrical

4 years agoDecodeTrace: Replace magic number by proper calculation
Soeren Apel [Fri, 8 Apr 2016 16:25:58 +0000 (18:25 +0200)]
DecodeTrace: Replace magic number by proper calculation

4 years agotest/CMakeLists.txt: Add missing #include file.
Uwe Hermann [Fri, 8 Apr 2016 09:49:22 +0000 (11:49 +0200)]
test/CMakeLists.txt: Add missing #include file.

4 years agoAnalogSignal: Implement info text for V/div display
Soeren Apel [Thu, 7 Apr 2016 20:03:40 +0000 (22:03 +0200)]
AnalogSignal: Implement info text for V/div display

4 years agoAnalogSignal: Implement resolution selector in dialog
Soeren Apel [Thu, 7 Apr 2016 20:03:30 +0000 (22:03 +0200)]
AnalogSignal: Implement resolution selector in dialog

4 years agoAnalogSignal: Use Q_OBJECT and implement vdiv selector in dialog
Soeren Apel [Thu, 7 Apr 2016 20:03:17 +0000 (22:03 +0200)]
AnalogSignal: Use Q_OBJECT and implement vdiv selector in dialog

4 years agoAnalogSignal: Use correct scaling factor for the grid to work
Soeren Apel [Thu, 7 Apr 2016 20:03:05 +0000 (22:03 +0200)]
AnalogSignal: Use correct scaling factor for the grid to work

4 years agoAnalogSignal: Implement vertical grid
Soeren Apel [Thu, 7 Apr 2016 20:02:50 +0000 (22:02 +0200)]
AnalogSignal: Implement vertical grid

4 years agoView: Handle pre-existing trace groups correctly
Soeren Apel [Thu, 7 Apr 2016 20:02:04 +0000 (22:02 +0200)]
View: Handle pre-existing trace groups correctly

4 years agoView: Restore the original signals_changed() positioning code
Soeren Apel [Thu, 7 Apr 2016 20:01:31 +0000 (22:01 +0200)]
View: Restore the original signals_changed() positioning code

4 years agoView: Remove empty trace groups in signals_changed()
Soeren Apel [Sun, 3 Apr 2016 19:15:00 +0000 (21:15 +0200)]
View: Remove empty trace groups in signals_changed()

4 years agoView: Provide a clear setup path for the initial v_offset value
Soeren Apel [Sun, 3 Apr 2016 18:37:53 +0000 (20:37 +0200)]
View: Provide a clear setup path for the initial v_offset value

- View::update_scroll():
  The range for the vertical scrollbar is only updated if there
  are traces in the view.

- View::set_scroll_default():
  This new function adjusts the vertical offset of the view so
  that all traces are visible. Needs to be executed once after a
  new device was selected.

- View::signals_changed():
  We want to be able to clear stale items in-between devices, so
  we no longer want to simply return when no device is selected.
  This means we need to handle a missing device more gracefully.

  Also, we now reset the vertical scroll bar when no device is
  selected and call set_scroll_default() when needed.

4 years agoView: Make signals_changed() more predictable
Soeren Apel [Sun, 3 Apr 2016 18:35:57 +0000 (20:35 +0200)]
View: Make signals_changed() more predictable

Newly created trace groups have their traces restacked
immediately to make sure we can rely on the group's v_extents.

We no longer unconditionally add trace groups that could
actually be empty.

The code that adds the new top-level items is more
straightforward now.

4 years agoTraceTreeItemOwner: Change behavior for empty containers
Soeren Apel [Sun, 3 Apr 2016 18:34:50 +0000 (20:34 +0200)]
TraceTreeItemOwner: Change behavior for empty containers

An empty TraceTreeItemOwner's v_extents are no longer
[INT_MAX, INT_MIN] but [0, 0] instead. As new items were added
relative to the view's own v_extents, items were added at
positions close to the over-/underflow margin. This messed up
the scrollbar among other things. Returning [0, 0] instead
allows for better handling of such cases.

4 years agoSession: Don't crash when session.device_ is empty
Soeren Apel [Sun, 3 Apr 2016 18:34:01 +0000 (20:34 +0200)]
Session: Don't crash when session.device_ is empty

4 years agoSession: Improve signal handling during device selection
Soeren Apel [Sun, 3 Apr 2016 18:33:19 +0000 (20:33 +0200)]
Session: Improve signal handling during device selection

Changing devices now forces an update of the view's signal handling.
This will allow clearing the view properly in-between devices.

4 years agoStoreSession: Add analog saving support
Soeren Apel [Sun, 13 Mar 2016 16:46:27 +0000 (17:46 +0100)]
StoreSession: Add analog saving support

4 years agoUse natural sort order for DecodeTrace channel selector drop-down
Soeren Apel [Sun, 13 Mar 2016 16:46:14 +0000 (17:46 +0100)]
Use natural sort order for DecodeTrace channel selector drop-down

4 years agofix 'Exception: not applicable' when connecting to hantek-dso
ntruchsess [Fri, 11 Mar 2016 21:52:47 +0000 (22:52 +0100)]
fix 'Exception: not applicable' when connecting to hantek-dso

4 years agoFix various typos in code comments.
Uwe Hermann [Wed, 24 Feb 2016 18:44:40 +0000 (19:44 +0100)]
Fix various typos in code comments.

4 years agoAndroidManifest.xml: Bump PV version to 0.4.0.
Uwe Hermann [Wed, 17 Feb 2016 21:08:17 +0000 (22:08 +0100)]
AndroidManifest.xml: Bump PV version to 0.4.0.

4 years agoUse the 'default' keyword where applicable. This patch
Soeren Apel [Tue, 16 Feb 2016 20:15:03 +0000 (21:15 +0100)]
Use the 'default' keyword where applicable. This patch
 was initially created using clang-tidy:

  clang-tidy -checks="-*,moderize-use-default" -fix

However, the resulting patch only wanted to alter the
definitions in the .cpp file. I think it makes more
sense to remove the definitions completely and just
add "= default" to the declarations in the header file.

4 years agoDecodeTrace: Optimize loop (see also da50281d)
Soeren Apel [Tue, 16 Feb 2016 20:14:41 +0000 (21:14 +0100)]
DecodeTrace: Optimize loop (see also da50281d)

4 years agoWhitespace fix
Soeren Apel [Tue, 16 Feb 2016 20:14:12 +0000 (21:14 +0100)]
Whitespace fix

4 years agoPrefer Qt string multi-arg form over arg chaining.
Uwe Hermann [Sat, 6 Feb 2016 21:07:30 +0000 (22:07 +0100)]
Prefer Qt string multi-arg form over arg chaining.

This has performance/memory advantages and avoids some potential bugs
and/or security problems.

4 years agoStandardize on 'event' as name for all Qt events.
Uwe Hermann [Wed, 10 Feb 2016 20:45:37 +0000 (21:45 +0100)]
Standardize on 'event' as name for all Qt events.

Use 'event' consistently across the whole code-base as variable name
for Qt events (previously 'e' or 'evt' was also used).

4 years agoFix inconsistent declaration parameter names.
Uwe Hermann [Wed, 10 Feb 2016 20:55:49 +0000 (21:55 +0100)]
Fix inconsistent declaration parameter names.

This patch was generated using clang-tidy:

  clang-tidy -checks="-*,readability-inconsistent-declaration-parameter-name" -fix

(with some manual fixups of false-positives)

4 years agoUse range-based for loops more often.
Uwe Hermann [Mon, 8 Feb 2016 20:02:37 +0000 (21:02 +0100)]
Use range-based for loops more often.

This patch was generated using clang-tidy:

  clang-tidy -checks="-*,modernize-loop-convert" -fix

4 years agoUse nullptr in some more places.
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

4 years agoCMakeLists.txt: Bump PulseView version to 0.4.0.
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.

4 years agoFix #181 by changing the global decode lock into an SRD lock
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.

4 years agoDecoderStack: Make decoder sessions terminate after running
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.

4 years agoMainWindow: Try to use any available device aside from demo
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.

4 years agoDecodeTrace: Remove unnecessary parameters
Soeren Apel [Thu, 4 Feb 2016 21:39:35 +0000 (22:39 +0100)]
DecodeTrace: Remove unnecessary parameters

4 years agoDecodeTrace: Let annotation labels be pushed aside by the row title
Soeren Apel [Thu, 4 Feb 2016 21:39:07 +0000 (22:39 +0100)]
DecodeTrace: Let annotation labels be pushed aside by the row title

4 years agoDecodeTrace: Try to keep annotation labels within the view
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.

4 years agoFix 745 by improving the draw_annotations() block drawing algo
Soeren Apel [Thu, 4 Feb 2016 21:37:54 +0000 (22:37 +0100)]
Fix 745 by improving the draw_annotations() block drawing algo

4 years agoFix clang warning: shifting a negative signed value is undefined
Soeren Apel [Sun, 31 Jan 2016 17:22:17 +0000 (18:22 +0100)]
Fix clang warning: shifting a negative signed value is undefined

4 years agoFix #737 by adding the override specifier where needed
Soeren Apel [Sun, 31 Jan 2016 17:18:47 +0000 (18:18 +0100)]
Fix #737 by adding the override specifier where needed

4 years agoFix unit tests and prevent warnings
Soeren Apel [Sun, 31 Jan 2016 17:06:07 +0000 (18:06 +0100)]
Fix unit tests and prevent warnings

4 years agoFix #733: Open import files using binary mode
Soeren Apel [Sun, 31 Jan 2016 14:10:10 +0000 (15:10 +0100)]
Fix #733: Open import files using binary mode

4 years agoView: Honor ENABLE_DECODE compiler switch
Soeren Apel [Sun, 31 Jan 2016 13:12:44 +0000 (14:12 +0100)]
View: Honor ENABLE_DECODE compiler switch

4 years agoNEWS: Update for upcoming 0.3.0 release. pulseview-0.3.x pulseview-0.3.0
Uwe Hermann [Fri, 29 Jan 2016 19:25:52 +0000 (20:25 +0100)]
NEWS: Update for upcoming 0.3.0 release.

4 years agoINSTALL: Mention the missing glibmm dependency.
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.

4 years agoFix a bunch of random typos.
Uwe Hermann [Sun, 3 Jan 2016 19:40:27 +0000 (20:40 +0100)]
Fix a bunch of random typos.

4 years agoMainBar: Added missing menu item
Joel Holdsworth [Sat, 2 Jan 2016 16:18:50 +0000 (16:18 +0000)]
MainBar: Added missing menu item

4 years agoMainWindow: Added missing definition of action_view_coloured_bg
Joel Holdsworth [Sat, 2 Jan 2016 16:17:45 +0000 (16:17 +0000)]
MainWindow: Added missing definition of action_view_coloured_bg

4 years agoTrace: Removed hit_box_rect, to remove canvas dragging support
Joel Holdsworth [Sat, 2 Jan 2016 15:56:59 +0000 (15:56 +0000)]
Trace: Removed hit_box_rect, to remove canvas dragging support

4 years agoRevert "Make traces non-draggable outside the header area"
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.

4 years agoRevert "Make traces only selectable in the header area"
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.

4 years agoDecodeTrace: With a rounded rect
Joel Holdsworth [Sat, 2 Jan 2016 15:45:22 +0000 (15:45 +0000)]
DecodeTrace: With a rounded rect

4 years agoDecodeTrace: Use an stl algorithm to find if all annotations are the same colour
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

4 years agoBump the Boost requirement to >= 1.53.
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.

4 years agoUpdate to new configuration API.
Martin Ling [Tue, 3 Nov 2015 10:54:17 +0000 (10:54 +0000)]
Update to new configuration API.

4 years agoDecodeTrace: Prevent trace height from jumping
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.

4 years agoDecodeTrace: Improve annotation block drawing
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.

4 years agoFix #717 by only updating the name widget when necessary
Soeren Apel [Tue, 29 Dec 2015 22:15:19 +0000 (23:15 +0100)]
Fix #717 by only updating the name widget when necessary

4 years agoFix #719 by calculating the decoder trace height dynamically
Soeren Apel [Tue, 29 Dec 2015 22:13:53 +0000 (23:13 +0100)]
Fix #719 by calculating the decoder trace height dynamically

4 years agoMake traces only selectable in the header area
Soeren Apel [Tue, 29 Dec 2015 22:13:18 +0000 (23:13 +0100)]
Make traces only selectable in the header area

4 years agoMake traces non-draggable outside the header area
Soeren Apel [Tue, 29 Dec 2015 22:12:26 +0000 (23:12 +0100)]
Make traces non-draggable outside the header area

4 years agoFix #687: Update channels after removing decoder traces
Soeren Apel [Tue, 29 Dec 2015 22:10:58 +0000 (23:10 +0100)]
Fix #687: Update channels after removing decoder traces

4 years agoDecodeTrace: Speed up annotation drawing
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.

4 years agoDecodeTrace: Use correct background colour
Soeren Apel [Tue, 29 Dec 2015 07:02:39 +0000 (08:02 +0100)]
DecodeTrace: Use correct background colour

This fixes bug #718.

4 years agoMinor whitespace and Doxygen fixes.
Uwe Hermann [Mon, 28 Dec 2015 23:27:10 +0000 (00:27 +0100)]
Minor whitespace and Doxygen fixes.

4 years agomanpage: Document the new 'b' keyboard shortcut.
Uwe Hermann [Mon, 28 Dec 2015 23:26:20 +0000 (00:26 +0100)]
manpage: Document the new 'b' keyboard shortcut.

4 years agoViewport: Allow for vertical dragging as well
Soeren Apel [Mon, 28 Dec 2015 20:48:30 +0000 (21:48 +0100)]
Viewport: Allow for vertical dragging as well

4 years agoUse alternating trace background colors when not using their own
Soeren Apel [Mon, 28 Dec 2015 20:20:23 +0000 (21:20 +0100)]
Use alternating trace background colors when not using their own

4 years agoImplement "use coloured background" functionality
Soeren Apel [Mon, 28 Dec 2015 20:16:33 +0000 (21:16 +0100)]
Implement "use coloured background" functionality

4 years agoAdd menu option for coloured/alternating trace background colors
Soeren Apel [Mon, 28 Dec 2015 15:15:29 +0000 (16:15 +0100)]
Add menu option for coloured/alternating trace background colors

4 years agoMainWindow: Fix typo
Soeren Apel [Mon, 28 Dec 2015 14:23:31 +0000 (15:23 +0100)]
MainWindow: Fix typo

4 years agoUse channel color as the trace background color
Soeren Apel [Mon, 28 Dec 2015 14:13:42 +0000 (15:13 +0100)]
Use channel color as the trace background color

4 years agomanpage: Document all keyboard shortcuts.
Uwe Hermann [Thu, 17 Dec 2015 16:46:34 +0000 (17:46 +0100)]
manpage: Document all keyboard shortcuts.

4 years agomanpage: Minor fixes and updates.
Uwe Hermann [Wed, 16 Dec 2015 21:33:03 +0000 (22:33 +0100)]
manpage: Minor fixes and updates.

4 years agoVarious minor whitespace and consistency fixes.
Uwe Hermann [Wed, 16 Dec 2015 21:22:01 +0000 (22:22 +0100)]
Various minor whitespace and consistency fixes.

4 years agosession: make sure signals set is initialized
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.

4 years agoview/analogsignal: set samplerate to 1.0 if samplerate is not known
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.

4 years agoSession: Allow using sample rate from meta packet
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.

4 years agoCMakeLists.txt: Drop superfluous "include(FindPkgConfig)".
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.

4 years agoDecodeTrace: Don't dereference iterator pointing at end of container.
Tilman Sauerbeck [Wed, 2 Dec 2015 18:45:12 +0000 (19:45 +0100)]
DecodeTrace: Don't dereference iterator pointing at end of container.

4 years agoLogicSignal: Only draw the trigger marker for enabled channels.
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()).

4 years agoLogicSignal: Put all trigger matches into a single trigger stage.
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.