Added devices::File as a common base of file devices
[pulseview.git] / pv / widgets / sweeptimingwidget.hpp
blobd760a79d8fdab3bd95b38264e2572d176f0ae6e7
1 /*
2 * This file is part of the PulseView project.
4 * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21 #ifndef PULSEVIEW_PV_WIDGETS_SWEEPTIMINGWIDGET_HPP
22 #define PULSEVIEW_PV_WIDGETS_SWEEPTIMINGWIDGET_HPP
24 #include <libsigrok/libsigrok.h>
26 #include <QComboBox>
27 #include <QDoubleSpinBox>
28 #include <QHBoxLayout>
29 #include <QLineEdit>
30 #include <QWidget>
32 namespace pv {
33 namespace widgets {
35 class SweepTimingWidget : public QWidget
37 Q_OBJECT
39 private:
40 enum ValueType
42 None,
43 MinMaxStep,
44 List
47 public:
48 SweepTimingWidget(const char *suffix, QWidget *parent = NULL);
50 void show_none();
51 void show_min_max_step(uint64_t min, uint64_t max, uint64_t step);
52 void show_list(const uint64_t *vals, size_t count);
53 void show_125_list(uint64_t min, uint64_t max);
55 uint64_t value() const;
56 void set_value(uint64_t value);
58 Q_SIGNALS:
59 void value_changed();
61 private:
62 const char *const suffix_;
64 QHBoxLayout layout_;
66 QDoubleSpinBox value_;
67 QComboBox list_;
69 ValueType value_type_;
72 } // widgets
73 } // pv
75 #endif // PULSEVIEW_PV_WIDGETS_SWEEPTIMINGWIDGET_HPP