X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fprop%2Fbinding%2Fdecoderoptions.cpp;h=c5278c75fbb82583ba7082e4d4dc04ef4bf502f6;hb=6db7315814ee9d2f92d4b326be7c5b9e6e4b789b;hp=d9904852ca645e21f6b4b4d447a200860e301d94;hpb=182d2f5dbe8b631b24949e5b111762009d1eeefa;p=pulseview.git diff --git a/pv/prop/binding/decoderoptions.cpp b/pv/prop/binding/decoderoptions.cpp index d990485..c5278c7 100644 --- a/pv/prop/binding/decoderoptions.cpp +++ b/pv/prop/binding/decoderoptions.cpp @@ -22,22 +22,20 @@ #include "decoderoptions.h" -#include -#include #include #include #include +#include #include #include #include -using boost::bind; using boost::none; -using boost::shared_ptr; using std::make_pair; using std::map; using std::pair; +using std::shared_ptr; using std::string; using std::vector; @@ -63,21 +61,24 @@ DecoderOptions::DecoderOptions( const QString name = QString::fromUtf8(opt->desc); - const Property::Getter getter = bind( - &DecoderOptions::getter, this, opt->id); - const Property::Setter setter = bind( - &DecoderOptions::setter, this, opt->id, _1); + const Property::Getter get = [&, opt]() { + return getter(opt->id); }; + const Property::Setter set = [&, opt](GVariant *value) { + setter(opt->id, value); }; shared_ptr prop; if (opt->values) - prop = bind_enum(name, opt, getter, setter); + prop = bind_enum(name, opt, get, set); + else if (g_variant_is_of_type(opt->def, G_VARIANT_TYPE("d"))) + prop = shared_ptr(new Double(name, 2, "", + none, none, get, set)); else if (g_variant_is_of_type(opt->def, G_VARIANT_TYPE("x"))) prop = shared_ptr( - new Int(name, "", none, getter, setter)); + new Int(name, "", none, get, set)); else if (g_variant_is_of_type(opt->def, G_VARIANT_TYPE("s"))) prop = shared_ptr( - new String(name, getter, setter)); + new String(name, get, set)); else continue; @@ -107,7 +108,7 @@ GVariant* DecoderOptions::getter(const char *id) // Get the value from the hash table if it is already present const map& options = _decoder->options(); - map::const_iterator iter = options.find(id); + const auto iter = options.find(id); if (iter != options.end()) val = (*iter).second;