X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fbinding%2Fdecoder.cpp;h=80725d2a8b35248461ca1c14e57c3d39f5f529d8;hb=3ce5dd9a981d128085dc5ea507dd7157a87be4cb;hp=39bff52bf0cb55f3ee29aba01995a275769ab2c4;hpb=870ea3dbf35b182e120c5d84ab89bf9cb7691232;p=pulseview.git diff --git a/pv/binding/decoder.cpp b/pv/binding/decoder.cpp index 39bff52b..80725d2a 100644 --- a/pv/binding/decoder.cpp +++ b/pv/binding/decoder.cpp @@ -23,15 +23,14 @@ #include -#include #include +#include #include #include #include #include using boost::none; -using std::make_pair; using std::map; using std::pair; using std::shared_ptr; @@ -48,19 +47,18 @@ namespace pv { namespace binding { Decoder::Decoder( - shared_ptr decoder_stack, + shared_ptr decode_signal, shared_ptr decoder) : - decoder_stack_(decoder_stack), + decode_signal_(decode_signal), decoder_(decoder) { assert(decoder_); - const srd_decoder *const dec = decoder_->decoder(); + const srd_decoder *const dec = decoder_->get_srd_decoder(); assert(dec); for (GSList *l = dec->options; l; l = l->next) { - const srd_decoder_option *const opt = - (srd_decoder_option*)l->data; + const srd_decoder_option *const opt = (srd_decoder_option*)l->data; const QString name = QString::fromUtf8(opt->desc); @@ -72,16 +70,16 @@ Decoder::Decoder( shared_ptr prop; if (opt->values) - prop = bind_enum(name, opt, get, set); + 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, "", + 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, get, set)); + 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, get, set)); + new String(name, "", get, set)); else continue; @@ -90,16 +88,17 @@ Decoder::Decoder( } shared_ptr Decoder::bind_enum( - const QString &name, const srd_decoder_option *option, + const QString &name, const QString &desc, + const srd_decoder_option *option, Property::Getter getter, Property::Setter setter) { vector< pair > values; for (GSList *l = option->values; l; l = l->next) { Glib::VariantBase var = Glib::VariantBase((GVariant*)l->data, true); - values.push_back(make_pair(var, print_gvariant(var))); + values.emplace_back(var, print_gvariant(var)); } - return shared_ptr(new Enum(name, values, getter, setter)); + return shared_ptr(new Enum(name, desc, values, getter, setter)); } Glib::VariantBase Decoder::getter(const char *id) @@ -115,12 +114,11 @@ Glib::VariantBase Decoder::getter(const char *id) if (iter != options.end()) val = (*iter).second; else { - assert(decoder_->decoder()); + assert(decoder_->get_srd_decoder()); // Get the default value if not - for (GSList *l = decoder_->decoder()->options; l; l = l->next) { - const srd_decoder_option *const opt = - (srd_decoder_option*)l->data; + for (GSList *l = decoder_->get_srd_decoder()->options; l; l = l->next) { + const srd_decoder_option *const opt = (srd_decoder_option*)l->data; if (strcmp(opt->id, id) == 0) { val = opt->def; break; @@ -136,8 +134,8 @@ void Decoder::setter(const char *id, Glib::VariantBase value) assert(decoder_); decoder_->set_option(id, value.gobj()); - assert(decoder_stack_); - decoder_stack_->begin_decode(); + assert(decode_signal_); + decode_signal_->begin_decode(); } } // namespace binding