X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fprop%2Fbinding%2Fdecoderoptions.cpp;h=d9b4b88d540ebb285b1ea28e352e21003f978705;hb=2acdb232d6bb452cfdfaea3ef5218fb4da592329;hp=c5278c75fbb82583ba7082e4d4dc04ef4bf502f6;hpb=6db7315814ee9d2f92d4b326be7c5b9e6e4b789b;p=pulseview.git diff --git a/pv/prop/binding/decoderoptions.cpp b/pv/prop/binding/decoderoptions.cpp index c5278c7..d9b4b88 100644 --- a/pv/prop/binding/decoderoptions.cpp +++ b/pv/prop/binding/decoderoptions.cpp @@ -20,16 +20,16 @@ #include -#include "decoderoptions.h" +#include "decoderoptions.hpp" #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include using boost::none; using std::make_pair; @@ -46,12 +46,12 @@ namespace binding { DecoderOptions::DecoderOptions( shared_ptr decoder_stack, shared_ptr decoder) : - _decoder_stack(decoder_stack), - _decoder(decoder) + decoder_stack_(decoder_stack), + decoder_(decoder) { - assert(_decoder); + assert(decoder_); - const srd_decoder *const dec = _decoder->decoder(); + const srd_decoder *const dec = decoder_->decoder(); assert(dec); for (GSList *l = dec->options; l; l = l->next) @@ -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 prop; @@ -82,7 +82,7 @@ DecoderOptions::DecoderOptions( else continue; - _properties.push_back(prop); + properties_.push_back(prop); } } @@ -90,34 +90,33 @@ shared_ptr DecoderOptions::bind_enum( const QString &name, const srd_decoder_option *option, Property::Getter getter, Property::Setter setter) { - vector< pair > values; + vector< pair > 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(new Enum(name, values, getter, setter)); } -GVariant* DecoderOptions::getter(const char *id) +Glib::VariantBase DecoderOptions::getter(const char *id) { GVariant *val = NULL; - assert(_decoder); + assert(decoder_); // Get the value from the hash table if it is already present - const map& options = _decoder->options(); + const map& options = decoder_->options(); const auto iter = options.find(id); if (iter != options.end()) val = (*iter).second; else { - assert(_decoder->decoder()); + assert(decoder_->decoder()); // Get the default value if not - for (GSList *l = _decoder->decoder()->options; l; l = l->next) + for (GSList *l = decoder_->decoder()->options; l; l = l->next) { const srd_decoder_option *const opt = (srd_decoder_option*)l->data; @@ -129,18 +128,18 @@ 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); + assert(decoder_); + decoder_->set_option(id, value.gobj()); - assert(_decoder_stack); - _decoder_stack->begin_decode(); + assert(decoder_stack_); + decoder_stack_->begin_decode(); } } // binding