X-Git-Url: http://git.code-monkey.de/?p=pulseview.git;a=blobdiff_plain;f=pv%2Ftoolbars%2Fsamplingbar.h;h=d8d81219659e9a0cc19ca496ef8e11a6fcb2b234;hp=f6a2cdd6c009476384ff6183bd763469d10991bd;hb=4fe06f499c5dafe187832036b900354f0d1da284;hpb=124d97dee9b5e24c1025250fabd2255af68c9aa5 diff --git a/pv/toolbars/samplingbar.h b/pv/toolbars/samplingbar.h index f6a2cdd..d8d8121 100644 --- a/pv/toolbars/samplingbar.h +++ b/pv/toolbars/samplingbar.h @@ -24,6 +24,7 @@ #include #include +#include #include #include @@ -34,7 +35,12 @@ #include #include -struct st_dev_inst; +namespace sigrok { + class Device; +} + +Q_DECLARE_METATYPE(std::shared_ptr) + class QAction; namespace pv { @@ -48,35 +54,43 @@ class SamplingBar : public QToolBar Q_OBJECT private: - static const uint64_t DefaultRecordLength; + static const uint64_t MinSampleCount; + static const uint64_t MaxSampleCount; + static const uint64_t DefaultSampleCount; public: SamplingBar(SigSession &session, QWidget *parent); - void set_device_list(const std::list &devices); - - struct sr_dev_inst* get_selected_device() const; - void set_selected_device(struct sr_dev_inst *const sdi); + void set_device_list( + const std::list< std::pair, std::string> > &devices, + std::shared_ptr selected); - uint64_t get_record_length() const; + std::shared_ptr get_selected_device() const; void set_capture_state(pv::SigSession::capture_state state); -signals: +Q_SIGNALS: void run_stop(); private: void update_sample_rate_selector(); void update_sample_rate_selector_value(); + void update_sample_count_selector(); + void update_device_config_widgets(); void commit_sample_rate(); void commit_sample_count(); -private slots: +private Q_SLOTS: void on_device_selected(); void on_sample_count_changed(); void on_sample_rate_changed(); void on_run_stop(); + void on_config_changed(); + +protected: + bool eventFilter(QObject *watched, QEvent *event); + private: SigSession &_session; @@ -86,11 +100,14 @@ private: pv::widgets::PopupToolButton _configure_button; QAction *_configure_button_action; - pv::widgets::PopupToolButton _probes_button; + pv::widgets::PopupToolButton _channels_button; pv::widgets::SweepTimingWidget _sample_count; pv::widgets::SweepTimingWidget _sample_rate; bool _updating_sample_rate; + bool _updating_sample_count; + + bool _sample_count_supported; QIcon _icon_red; QIcon _icon_green;