]> sigrok.org Git - pulseview.git/blobdiff - pv/prop/binding/decoderoptions.cpp
Use libsigrok C++ bindings (patch version 7).
[pulseview.git] / pv / prop / binding / decoderoptions.cpp
index c5278c75fbb82583ba7082e4d4dc04ef4bf502f6..a01d722f431f2a47feb2e258f73f48e25baa4ee2 100644 (file)
@@ -63,7 +63,7 @@ DecoderOptions::DecoderOptions(
 
                const Property::Getter get = [&, opt]() {
                        return getter(opt->id); };
-               const Property::Setter set = [&, opt](GVariant *value) {
+               const Property::Setter set = [&, opt](Glib::VariantBase value) {
                        setter(opt->id, value); };
 
                shared_ptr<Property> prop;
@@ -90,17 +90,16 @@ shared_ptr<Property> DecoderOptions::bind_enum(
        const QString &name, const srd_decoder_option *option,
        Property::Getter getter, Property::Setter setter)
 {
-       vector< pair<GVariant*, QString> > values;
+       vector< pair<Glib::VariantBase, QString> > values;
        for (GSList *l = option->values; l; l = l->next) {
-               GVariant *const var = (GVariant*)l->data;
-               assert(var);
+               Glib::VariantBase var = Glib::VariantBase((GVariant*)l->data, true);
                values.push_back(make_pair(var, print_gvariant(var)));
        }
 
        return shared_ptr<Property>(new Enum(name, values, getter, setter));
 }
 
-GVariant* DecoderOptions::getter(const char *id)
+Glib::VariantBase DecoderOptions::getter(const char *id)
 {
        GVariant *val = NULL;
 
@@ -129,15 +128,15 @@ GVariant* DecoderOptions::getter(const char *id)
        }
 
        if (val)
-               g_variant_ref(val);
-
-       return val;
+               return Glib::VariantBase(val, true);
+       else
+               return Glib::VariantBase();
 }
 
-void DecoderOptions::setter(const char *id, GVariant *value)
+void DecoderOptions::setter(const char *id, Glib::VariantBase value)
 {
        assert(_decoder);
-       _decoder->set_option(id, value);
+       _decoder->set_option(id, value.gobj());
 
        assert(_decoder_stack);
        _decoder_stack->begin_decode();