+ * Get the color of the signal.
+ */
+ QColor color() const;
+
+ /**
+ * Set the color of the signal.
+ */
+ void set_color(QColor color);
+
+ /**
+ * Get the background color of the signal.
+ */
+ QColor bgcolor() const;
+
+ /**
+ * 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;
+
+ /**
+ * 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;
+
+ /**
+ * Determines whether this signal has any sample data at all.
+ */
+ bool has_samples() const;
+
+ /**
+ * Queries the kind of conversion performed on this channel.
+ */
+ ConversionType get_conversion_type() const;
+
+ /**
+ * Changes the kind of conversion performed on this channel.
+ *
+ * Restarts the conversion.
+ */
+ void set_conversion_type(ConversionType t);
+
+ /**
+ * Returns all currently known conversion options
+ */
+ map<QString, QVariant> get_conversion_options() const;
+
+ /**
+ * Sets the value of a particular conversion option
+ * Note: it is not checked whether the option is valid for the
+ * currently conversion. If it's not, it will be silently ignored.
+ *
+ * Does not restart the conversion.
+ *
+ * @return true if the value is different from before, false otherwise
+ */
+ bool set_conversion_option(QString key, QVariant value);
+
+ /**
+ * Returns the threshold(s) used for conversions, if applicable.
+ * The resulting thresholds are given for the chosen conversion, so you
+ * can query thresholds also for conversions which aren't currently active.
+ *
+ * If you want the thresholds for the currently active conversion,
+ * call it either with NoConversion or no parameter.
+ *
+ * @param t the type of conversion to obtain the thresholds for, leave
+ * empty or use NoConversion if you want to query the currently
+ * used conversion
+ *
+ * @param always_custom ignore the currently selected preset and always
+ * return the custom values for this conversion, using 0 if those
+ * aren't set
+ *
+ * @return a list of threshold(s) used by the chosen conversion
+ */
+ vector<double> get_conversion_thresholds(
+ const ConversionType t = NoConversion, const bool always_custom=false) const;
+
+ /**
+ * Provides all conversion presets available for the currently active
+ * conversion.
+ *
+ * @return a list of description/ID pairs for each preset