]> sigrok.org Git - pulseview.git/blobdiff - pv/data/decodesignal.hpp
Allow re-loading sessions to work with PD output signals
[pulseview.git] / pv / data / decodesignal.hpp
index f4783be22706ee18a9ce11b2c23d2b2e17d95b6c..ca9f9e96f652d7247d1856567990cb0c24f9914b 100644 (file)
@@ -121,6 +121,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;
@@ -210,11 +212,13 @@ private:
        void stop_srd_session();
 
        void connect_input_notifiers();
+       void disconnect_input_notifiers();
 
        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*
@@ -230,6 +234,7 @@ private Q_SLOTS:
        void on_capture_state_changed(int state);
        void on_data_cleared();
        void on_data_received();
+       void on_input_segment_completed();
 
        void on_annotation_visibility_changed();
 
@@ -258,6 +263,9 @@ private:
        atomic<bool> decode_interrupt_, logic_mux_interrupt_;
 
        bool decode_paused_;
+
+       map<const srd_decoder*, shared_ptr<Logic>> output_logic_;
+       vector< shared_ptr<SignalBase>> output_signals_;
 };
 
 } // namespace data