]> sigrok.org Git - pulseview.git/commitdiff
Rework signaling mechanism for trace repainting
authorSoeren Apel <redacted>
Fri, 26 May 2017 14:19:56 +0000 (16:19 +0200)
committerSoeren Apel <redacted>
Fri, 26 May 2017 17:36:04 +0000 (19:36 +0200)
Before, analog traces would request a repaint of the entire
view when they receive data. To understand how bad this was,
consider 4 enabled analog channels during capture. Every time
one channel would receive a bunch of sample data, it would
force a repaint of the view, resulting in 4 unnecessary
repaints.

To fix this, the analog traces no longer request a repaint
on incoming sample data. Instead, the mechanism now is such
that the view "collates" repaint requests from all used
signalbases by means of a one-shot timer, i.e. any repaint
request is ignored if the timer is already running.

With the timer, we can also establish an upper bound on
how often the trace should update at most, currently 25Hz.

Since this functionality is very useful for any kind of
view, the existing one-shot timer was moved to the ViewBase
and then extended as explained.


No differences found