+ /**
+ * Sets the internal data object.
+ */
+ void set_data(shared_ptr<pv::data::SignalData> data);
+
+ /**
+ * Get the internal data as analog data object in case of analog type.
+ */
+ shared_ptr<pv::data::Analog> analog_data() const;
+
+ /**
+ * Get the internal data as logic data object in case of logic type.
+ */
+ shared_ptr<pv::data::Logic> logic_data() const;
+
+ /**
+ * Changes the kind of conversion performed on this channel.
+ */
+ void set_conversion_type(ConversionType t);
+
+#ifdef ENABLE_DECODE
+ bool is_decode_signal() const;
+#endif
+
+ virtual void save_settings(QSettings &settings) const;
+
+ virtual void restore_settings(QSettings &settings);
+
+private:
+ bool conversion_is_a2l() const;
+
+ uint8_t convert_a2l_threshold(float threshold, float value);
+ uint8_t convert_a2l_schmitt_trigger(float lo_thr, float hi_thr,
+ float value, uint8_t &state);
+
+ void conversion_thread_proc(QObject* segment);
+
+ void start_conversion();
+ void stop_conversion();
+