X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Ftoolbars%2Fsamplingbar.h;h=7c0ec9af2d75a2d29577e7d5126f1b2c78c717ee;hb=e8d009288de28cb194bc7964f96677c2baf900c9;hp=0c1a0539e4aaefca5e001469322f4d838e9a7769;hpb=51d4a9ab96a6bf64a1fcd1700e7e174498d4c118;p=pulseview.git diff --git a/pv/toolbars/samplingbar.h b/pv/toolbars/samplingbar.h index 0c1a053..7c0ec9a 100644 --- a/pv/toolbars/samplingbar.h +++ b/pv/toolbars/samplingbar.h @@ -23,7 +23,8 @@ #include -#include +#include +#include #include #include @@ -31,13 +32,21 @@ #include #include -#include #include +#include + +namespace sigrok { + class Device; +} + +Q_DECLARE_METATYPE(std::shared_ptr) -struct st_dev_inst; class QAction; namespace pv { + +class SigSession; + namespace toolbars { class SamplingBar : public QToolBar @@ -45,48 +54,61 @@ class SamplingBar : public QToolBar Q_OBJECT private: - static const uint64_t RecordLengths[20]; - static const uint64_t DefaultRecordLength; + static const uint64_t MinSampleCount; + static const uint64_t MaxSampleCount; + static const uint64_t DefaultSampleCount; public: - SamplingBar(QWidget *parent); - - void set_device_list(const std::list &devices); + SamplingBar(SigSession &session, QWidget *parent); - struct sr_dev_inst* get_selected_device() const; - void set_selected_device(struct sr_dev_inst *const sdi); + void set_device_list( + const std::map< std::shared_ptr, std::string > + &device_names, + 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: - void device_selected(); - +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; + QComboBox _device_selector; + bool _updating_device_selector; pv::widgets::PopupToolButton _configure_button; - pv::widgets::PopupToolButton _probes_button; + QAction *_configure_button_action; + + pv::widgets::PopupToolButton _channels_button; - QComboBox _record_length_selector; + pv::widgets::SweepTimingWidget _sample_count; + pv::widgets::SweepTimingWidget _sample_rate; + bool _updating_sample_rate; + bool _updating_sample_count; - QComboBox _sample_rate_list; - QAction *_sample_rate_list_action; - QDoubleSpinBox _sample_rate_value; - QAction *_sample_rate_value_action; + bool _sample_count_supported; QIcon _icon_red; QIcon _icon_green;