#ifndef PULSEVIEW_PV_PROP_BINDING_DEVICEOPTIONS_H
#define PULSEVIEW_PV_PROP_BINDING_DEVICEOPTIONS_H
-#include <boost/function.hpp>
#include <boost/optional.hpp>
#include <QString>
+#include <glib.h>
+
#include "binding.h"
-#include <glib.h>
+#include <pv/prop/property.h>
struct sr_dev_inst;
-struct sr_probe_group;
+struct sr_channel_group;
namespace pv {
class DeviceOptions : public Binding
{
public:
- DeviceOptions(boost::shared_ptr<pv::device::DevInst> dev_inst,
- const sr_probe_group *group = NULL);
+ DeviceOptions(std::shared_ptr<pv::device::DevInst> dev_inst,
+ const sr_channel_group *group = NULL);
private:
- void bind_bool(const QString &name, int key);
+ void bind_bool(const QString &name,
+ Property::Getter getter, Property::Setter setter);
void bind_enum(const QString &name, int key,
GVariant *const gvar_list,
- boost::function<QString (GVariant*)> printer = print_gvariant);
- void bind_int(const QString &name, int key, QString suffix,
- boost::optional< std::pair<int64_t, int64_t> > range);
+ Property::Getter getter, Property::Setter setter,
+ std::function<QString (GVariant*)> printer = print_gvariant);
+ void bind_int(const QString &name, QString suffix,
+ boost::optional< std::pair<int64_t, int64_t> > range,
+ Property::Getter getter, Property::Setter setter);
static QString print_timebase(GVariant *const gvar);
static QString print_vdiv(GVariant *const gvar);
static QString print_voltage_threshold(GVariant *const gvar);
protected:
- boost::shared_ptr<device::DevInst> _dev_inst;
- const sr_probe_group *const _group;
+ std::shared_ptr<device::DevInst> _dev_inst;
+ const sr_channel_group *const _group;
};
} // binding