X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fdata%2Fmathsignal.hpp;h=e452215bd7e9240faec0d61a8e763a276e211c36;hb=66b6f41becf52ed12e50d1fa7f56cf0c76379d61;hp=a1fb9ffb899db98732e994d725ef91ba343a1dcf;hpb=bee54d9ec103a35c86fa9e80fbdd2a07f8fb762d;p=pulseview.git diff --git a/pv/data/mathsignal.hpp b/pv/data/mathsignal.hpp index a1fb9ffb..e452215b 100644 --- a/pv/data/mathsignal.hpp +++ b/pv/data/mathsignal.hpp @@ -60,7 +60,6 @@ class MathSignal : public SignalBase { Q_OBJECT Q_PROPERTY(QString expression READ get_expression WRITE set_expression NOTIFY expression_changed) - Q_PROPERTY(QString error_message READ error_message) private: static const int64_t ChunkLength; @@ -72,13 +71,11 @@ public: virtual void save_settings(QSettings &settings) const; virtual void restore_settings(QSettings &settings); - QString error_message() const; - QString get_expression() const; void set_expression(QString expression); private: - void set_error_message(QString msg); + void set_error(uint8_t type, QString msg); /** * Returns the number of samples that can be worked on, @@ -89,10 +86,10 @@ private: */ uint64_t get_working_sample_count(uint32_t segment_id) const; - void update_completeness(uint32_t segment_id); + void update_completeness(uint32_t segment_id, uint64_t output_sample_count); void reset_generation(); - void begin_generation(); + virtual void begin_generation(); void generate_samples(uint32_t segment_id, const uint64_t start_sample, const int64_t sample_count); @@ -101,6 +98,8 @@ private: signal_data* signal_from_name(const std::string& name); void update_signal_sample(signal_data* sig_data, uint32_t segment_id, uint64_t sample_num); + bool all_input_signals_enabled(QString &disabled_signals) const; + Q_SIGNALS: void samples_cleared(); @@ -115,6 +114,8 @@ private Q_SLOTS: void on_capture_state_changed(int state); void on_data_received(); + void on_enabled_changed(); + private: pv::Session &session_; @@ -123,7 +124,9 @@ private: bool use_custom_sample_rate_, use_custom_sample_count_; map input_signals_; - QString expression_, error_message_; + QString expression_; + + uint8_t error_type_; mutable mutex input_mutex_; mutable condition_variable gen_input_cond_;