X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fview%2Fanalogsignal.cpp;h=f4a665c2ec49f225a5c8f246937e713923f89295;hb=cec48d1618edd0f28f21d5351f53692876222e16;hp=e29930865f6601eccf8b43986db1f44f9523b090;hpb=7c68ddaee897d069f817c2c0184bd8c1f73d826a;p=pulseview.git diff --git a/pv/view/analogsignal.cpp b/pv/view/analogsignal.cpp index e299308..f4a665c 100644 --- a/pv/view/analogsignal.cpp +++ b/pv/view/analogsignal.cpp @@ -41,13 +41,17 @@ const QColor AnalogSignal::SignalColours[4] = { const float AnalogSignal::EnvelopeThreshold = 256.0f; -AnalogSignal::AnalogSignal(QString name, shared_ptr data, - int probe_index) : - Signal(name), +AnalogSignal::AnalogSignal(const sr_probe *const probe, + shared_ptr data) : + Signal(probe), _data(data), _scale(1.0f) { - _colour = SignalColours[probe_index % countof(SignalColours)]; + _colour = SignalColours[probe->index % countof(SignalColours)]; +} + +AnalogSignal::~AnalogSignal() +{ } void AnalogSignal::set_scale(float scale) @@ -62,6 +66,9 @@ void AnalogSignal::paint(QPainter &p, int y, int left, int right, double scale, assert(_data); assert(right >= left); + if (!_probe->enabled) + return; + paint_axis(p, y, left, right); const deque< shared_ptr > &snapshots = @@ -82,7 +89,7 @@ void AnalogSignal::paint(QPainter &p, int y, int left, int right, double scale, const int64_t start_sample = min(max((int64_t)floor(start), (int64_t)0), last_sample); - const int64_t end_sample = min(max((int64_t)ceil(end), + const int64_t end_sample = min(max((int64_t)ceil(end) + 1, (int64_t)0), last_sample); if (samples_per_pixel < EnvelopeThreshold) @@ -117,7 +124,7 @@ void AnalogSignal::paint_trace(QPainter &p, y - samples[sample - start] * _scale); } - p.drawPoints(points, point - points); + p.drawPolyline(points, point - points); delete[] samples; delete[] points;