X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fdata%2Fsignalbase.hpp;h=6a3af14b3f0115c64dee8f1438fc21accfc37168;hb=558ad6ceb934ab7406d286c1a4ae08da4aba1448;hp=16a94bd43b816ce47ac6c7ca067b0611ea19bb93;hpb=932bc2461d7b84b084d3a77ccfeb3bdb1a2d0d6c;p=pulseview.git diff --git a/pv/data/signalbase.hpp b/pv/data/signalbase.hpp index 16a94bd..6a3af14 100644 --- a/pv/data/signalbase.hpp +++ b/pv/data/signalbase.hpp @@ -51,8 +51,10 @@ namespace pv { namespace data { class Analog; +class AnalogSegment; class DecoderStack; class Logic; +class LogicSegment; class SignalData; class SignalBase : public QObject @@ -173,6 +175,12 @@ public: */ shared_ptr logic_data() const; + /** + * Determines whether a given segment is complete (i.e. end-of-frame has + * been seen). It only considers the original data, not the converted data. + */ + bool segment_is_complete(uint32_t segment_id) const; + /** * Queries the kind of conversion performed on this channel. */ @@ -266,7 +274,9 @@ private: uint8_t convert_a2l_schmitt_trigger(float lo_thr, float hi_thr, float value, uint8_t &state); - void conversion_thread_proc(QObject* segment); + void convert_single_segment(pv::data::AnalogSegment *asegment, + pv::data::LogicSegment *lsegment); + void conversion_thread_proc(); void stop_conversion(); @@ -284,6 +294,8 @@ Q_SIGNALS: void samples_added(QObject* segment, uint64_t start_sample, uint64_t end_sample); + void min_max_changed(float min, float max); + private Q_SLOTS: void on_samples_cleared();