]> sigrok.org Git - pulseview.git/blobdiff - pv/data/decodesignal.hpp
Session: Fix issue #67 by improving error handling
[pulseview.git] / pv / data / decodesignal.hpp
index 527b988a92a8be6dfdfac6eaa7e2b2db2772165d..333e953b2d63e66c415b403092ad48cc2975b0f5 100644 (file)
@@ -103,6 +103,16 @@ public:
        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;
 
@@ -121,6 +131,8 @@ public:
        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;
@@ -211,13 +223,12 @@ private:
 
        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*
@@ -262,6 +273,10 @@ private:
        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