DecodeSignal(pv::Session &session);
virtual ~DecodeSignal();
+ /**
+ * Sets the name of the signal.
+ */
+ virtual void set_name(QString name);
+
+ /**
+ * Set the color of the signal.
+ */
+ virtual void set_color(QColor color);
+
bool is_decode_signal() const;
const vector< shared_ptr<Decoder> >& decoder_stack() const;
void assign_signal(const uint16_t channel_id, shared_ptr<const SignalBase> signal);
int get_assigned_signal_count() const;
+ void update_output_signals();
+
void set_initial_pin_state(const uint16_t channel_id, const int init_state);
virtual double get_samplerate() const;
void connect_input_notifiers();
void disconnect_input_notifiers();
- void connect_input_segment_notifiers(uint32_t segment_id);
- void disconnect_input_segment_notifiers(uint32_t segment_id);
void create_decode_segment();
static void annotation_callback(srd_proto_data *pdata, void *decode_signal);
static void binary_callback(srd_proto_data *pdata, void *decode_signal);
+ static void logic_output_callback(srd_proto_data *pdata, void *decode_signal);
Q_SIGNALS:
void decoder_stacked(void* decoder); ///< decoder is of type decode::Decoder*
atomic<bool> decode_interrupt_, logic_mux_interrupt_;
bool decode_paused_;
+
+ map<const srd_decoder*, shared_ptr<Logic>> output_logic_;
+ map<const srd_decoder*, vector<uint8_t>> output_logic_muxed_data_;
+ vector< shared_ptr<SignalBase>> output_signals_;
};
} // namespace data