+ const vector<data::DecodeChannel> get_channels() const;
+ void auto_assign_signals(const shared_ptr<pv::data::decode::Decoder> dec);
+ void assign_signal(const uint16_t channel_id, const SignalBase *signal);
+ int get_assigned_signal_count() const;
+
+ void set_initial_pin_state(const uint16_t channel_id, const int init_state);
+
+ double samplerate() const;
+ const pv::util::Timestamp start_time() const;
+
+ /**
+ * Returns the number of samples that can be worked on,
+ * i.e. the number of samples where samples are available
+ * for all connected channels.
+ */
+ int64_t get_working_sample_count(uint32_t segment_id) const;
+
+ /**
+ * Returns the number of processed samples. Newly generated annotations will
+ * have sample numbers greater than this.
+ *
+ * If include_processing is true, this number will include the ones being
+ * currently processed (in case the decoder stack is running). In this case,
+ * newly generated annotations will have sample numbers smaller than this.
+ */
+ int64_t get_decoded_sample_count(uint32_t segment_id,
+ bool include_processing) const;
+