]> sigrok.org Git - pulseview.git/blobdiff - pv/data/decodesignal.hpp
DecodeSignal: Update thread handling to match previous changes
[pulseview.git] / pv / data / decodesignal.hpp
index f961b7c3a740b6bb9bc8a010147da64ce9e814db..fad3db78548457d25e61f9b4f7dc0bf8042243cf 100644 (file)
@@ -27,7 +27,6 @@
 #include <vector>
 
 #include <QSettings>
-#include <QString>
 
 #include <libsigrokdecode/libsigrokdecode.h>
 
@@ -115,16 +114,15 @@ public:
        void pause_decode();
        void resume_decode();
        bool is_paused() const;
-       QString error_message() const;
 
        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);
 
-       double samplerate() const;
+       virtual double get_samplerate() const;
        const pv::util::Timestamp start_time() const;
 
        /**
@@ -189,10 +187,9 @@ public:
        virtual void restore_settings(QSettings &settings);
 
 private:
-       void set_error_message(QString msg);
-
+       bool all_input_segments_complete(uint32_t segment_id) const;
        uint32_t get_input_segment_count() const;
-       uint32_t get_input_samplerate(uint32_t segment_id) const;
+       double get_input_samplerate(uint32_t segment_id) const;
 
        Decoder* get_decoder_by_instance(const srd_decoder *const srd_dec);
 
@@ -204,7 +201,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();
@@ -226,12 +223,15 @@ Q_SIGNALS:
        void decode_reset();
        void decode_finished();
        void channels_updated();
+       void annotation_visibility_changed();
 
 private Q_SLOTS:
        void on_capture_state_changed(int state);
        void on_data_cleared();
        void on_data_received();
 
+       void on_annotation_visibility_changed();
+
 private:
        pv::Session &session_;
 
@@ -257,8 +257,6 @@ private:
        atomic<bool> decode_interrupt_, logic_mux_interrupt_;
 
        bool decode_paused_;
-
-       QString error_message_;
 };
 
 } // namespace data