+ /**
+ * 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;
+
+ shared_ptr<pv::data::DecoderStack> decoder_stack() const;
+
+ void set_decoder_stack(shared_ptr<pv::data::DecoderStack> decoder_stack);
+#endif
+
+ void save_settings(QSettings &settings) const;
+
+ void restore_settings(QSettings &settings);
+
+private:
+ 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, uint64_t start_sample,
+ uint64_t end_sample);
+