From: Soeren Apel Date: Fri, 26 May 2017 14:19:56 +0000 (+0200) Subject: Rework signaling mechanism for trace repainting X-Git-Tag: pulseview-0.4.0~73 X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=commitdiff_plain;h=5ed05b699e5367bae21828f533e3d169b9bab348;hp=5ed05b699e5367bae21828f533e3d169b9bab348 Rework signaling mechanism for trace repainting 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. ---