X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdata%2Fsignalbase.hpp;h=47c593fac7f364423d46e81697771d186c8ec7a0;hp=865f2551662fed2ab137781752c9064191cb698d;hb=7f894d958eb5221161f0c6f2abbb57d43bb6aae7;hpb=c6d9cf6582589fd375e67579d42ee914ce6382a1 diff --git a/pv/data/signalbase.hpp b/pv/data/signalbase.hpp index 865f2551..47c593fa 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 @@ -138,6 +140,12 @@ public: */ QString internal_name() const; + /** + * Produces a string for this signal that can be used for display, + * i.e. it contains one or both of the signal/internal names. + */ + QString display_name() const; + /** * Sets the name of the signal. */ @@ -173,6 +181,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 +280,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(); @@ -281,7 +297,7 @@ Q_SIGNALS: void samples_cleared(); - void samples_added(QObject* segment, uint64_t start_sample, + void samples_added(uint64_t segment_id, uint64_t start_sample, uint64_t end_sample); void min_max_changed(float min, float max);