Adjust pv:prop::Enum to GVariant-based sr_config_* functions
[pulseview.git] / pv / prop / enum.h
index 2350fef886917ad884639938c0f5b106a00a6c70..02b60df5dd5ee982ace26230f89a1b2ba6e2b34c 100644 (file)
@@ -24,6 +24,7 @@
 #include <utility>
 #include <vector>
 
+#include <glib-2.0/glib.h>
 #include "property.h"
 
 class QComboBox;
@@ -34,12 +35,19 @@ namespace prop {
 class Enum : public Property
 {
 public:
-       Enum(QString name, std::vector<std::pair<int, QString> > values);
+       Enum(QString name,
+               std::vector<std::pair<const void*, QString> > values,
+               boost::function<GVariant* ()> getter,
+               boost::function<void (GVariant*)> setter);
 
        QWidget* get_widget(QWidget *parent);
 
+       void commit();
+
 private:
-       const std::vector< std::pair<int, QString> > _values;
+       const std::vector< std::pair<const void*, QString> > _values;
+       boost::function<GVariant* ()> _getter;
+       boost::function<void (GVariant*)> _setter;
 
        QComboBox *_selector;
 };