X-Git-Url: http://git.code-monkey.de/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fdata%2Fdecodesignal.hpp;h=f9b866e27e583ce66b593516e6983e55937477ba;hp=0f3a0330e3ad9029ad742d796294452d091f91ef;hb=9f97b3576f527239594ea0accb82a4087147c746;hpb=ecd07c20d34ce940163ac2e7fb26cb7ceac565bb diff --git a/pv/data/decodesignal.hpp b/pv/data/decodesignal.hpp index 0f3a033..f9b866e 100644 --- a/pv/data/decodesignal.hpp +++ b/pv/data/decodesignal.hpp @@ -43,8 +43,20 @@ class Row; class DecoderStack; class Logic; +class SignalBase; class SignalData; +struct DecodeChannel +{ + uint16_t id; // Also tells which bit within a sample represents this channel + const bool is_optional; + const pv::data::SignalBase *assigned_signal; + const QString name, desc; + int initial_pin_state; + const shared_ptr decoder_; + const srd_channel *pdch_; +}; + class DecodeSignal : public SignalBase { Q_OBJECT @@ -63,6 +75,11 @@ public: QString error_message() const; + const list get_channels() const; + void assign_signal(const uint16_t channel_id, const SignalBase *signal); + + void set_initial_pin_state(const uint16_t channel_id, const int init_state); + vector visible_rows() const; /** @@ -73,14 +90,19 @@ public: const decode::Row &row, uint64_t start_sample, uint64_t end_sample) const; +private: + void update_channel_list(); + Q_SIGNALS: void new_annotations(); + void channels_updated(); private Q_SLOTS: void on_new_annotations(); private: shared_ptr decoder_stack_; + list channels_; }; } // namespace data