* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef PULSEVIEW_PV_BINDING_DEVICE_HPP
#include <pv/prop/property.hpp>
-namespace sigrok {
- class Configurable;
-}
+#include <libsigrokcxx/libsigrokcxx.hpp>
+
+using std::function;
+using std::pair;
+using std::set;
+using std::shared_ptr;
namespace pv {
Q_OBJECT
public:
- Device(std::shared_ptr<sigrok::Configurable> configurable);
+ Device(shared_ptr<sigrok::Configurable> configurable);
Q_SIGNALS:
void config_changed();
private:
- void bind_bool(const QString &name,
+ void bind_bool(const QString &name, const QString &desc,
prop::Property::Getter getter, prop::Property::Setter setter);
- void bind_enum(const QString &name, Glib::VariantContainerBase gvar_list,
+ void bind_enum(const QString &name, const QString &desc,
+ const sigrok::ConfigKey *key,
+ set<const sigrok::Capability *> capabilities,
prop::Property::Getter getter, prop::Property::Setter setter,
- std::function<QString (Glib::VariantBase)> printer = print_gvariant);
- void bind_int(const QString &name, QString suffix,
- boost::optional< std::pair<int64_t, int64_t> > range,
+ function<QString (Glib::VariantBase)> printer = print_gvariant);
+ void bind_int(const QString &name, const QString &desc, QString suffix,
+ boost::optional< pair<int64_t, int64_t> > range,
prop::Property::Getter getter, prop::Property::Setter setter);
static QString print_timebase(Glib::VariantBase gvar);
static QString print_vdiv(Glib::VariantBase gvar);
static QString print_voltage_threshold(Glib::VariantBase gvar);
+ static QString print_probe_factor(Glib::VariantBase gvar);
protected:
- std::shared_ptr<sigrok::Configurable> configurable_;
+ shared_ptr<sigrok::Configurable> configurable_;
};
-} // binding
-} // pv
+} // namespace binding
+} // namespace pv
#endif // PULSEVIEW_PV_BINDING_DEVICE_HPP