]> sigrok.org Git - pulseview.git/blobdiff - pv/data/decodesignal.hpp
Fix malformed declaration in MathSignal and add missing signal call
[pulseview.git] / pv / data / decodesignal.hpp
index c9ebb2a69c4d00adea4e099e0c4df8de5c6a7d87..527b988a92a8be6dfdfac6eaa7e2b2db2772165d 100644 (file)
@@ -26,6 +26,7 @@
 #include <unordered_set>
 #include <vector>
 
+#include <QDebug>
 #include <QSettings>
 
 #include <libsigrokdecode/libsigrokdecode.h>
@@ -79,7 +80,7 @@ struct DecodeSegment
        // Constructor is a no-op
        DecodeSegment() { };
        // Copy constructor is a no-op
-       DecodeSegment(DecodeSegment&& ds) { (void)ds; };
+       DecodeSegment(DecodeSegment&& ds) { (void)ds; qCritical() << "Empty DecodeSegment copy constructor called"; };
 
        map<const Row*, RowData> annotation_rows;  // Note: Row is the same for all segments while RowData is not
        pv::util::Timestamp start_time;
@@ -117,7 +118,7 @@ public:
 
        const vector<decode::DecodeChannel> get_channels() const;
        void auto_assign_signals(const shared_ptr<Decoder> dec);
-       void assign_signal(const uint16_t channel_id, const SignalBase *signal);
+       void assign_signal(const uint16_t channel_id, shared_ptr<const SignalBase> signal);
        int get_assigned_signal_count() const;
 
        void set_initial_pin_state(const uint16_t channel_id, const int init_state);
@@ -201,7 +202,7 @@ private:
        void logic_mux_proc();
 
        void decode_data(const int64_t abs_start_samplenum, const int64_t sample_count,
-               const shared_ptr<LogicSegment> input_segment);
+               const shared_ptr<const LogicSegment> input_segment);
        void decode_proc();
 
        void start_srd_session();
@@ -209,6 +210,9 @@ private:
        void stop_srd_session();
 
        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();
 
@@ -229,6 +233,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();
 
@@ -246,7 +251,7 @@ private:
        vector< shared_ptr<Decoder> > stack_;
        bool stack_config_changed_;
 
-       vector<DecodeSegment> segments_;
+       deque<DecodeSegment> segments_;
        uint32_t current_segment_id_;
 
        mutable mutex input_mutex_, output_mutex_, decode_pause_mutex_, logic_mux_mutex_;