X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fprop%2Fbinding%2Fdecoderoptions.h;h=7f14d0fd4448b3a328c93964fc668564aec100e5;hb=8dbbc7f0b9ea59d0f0d62225772f8a56eee125f5;hp=8217b4791e19c6f9a3b98b4f71df8f5118634f5a;hpb=67fe5e9c02e4e9cfe94d465a0a5e5b598129e4e3;p=pulseview.git diff --git a/pv/prop/binding/decoderoptions.h b/pv/prop/binding/decoderoptions.h index 8217b47..7f14d0f 100644 --- a/pv/prop/binding/decoderoptions.h +++ b/pv/prop/binding/decoderoptions.h @@ -21,27 +21,42 @@ #ifndef PULSEVIEW_PV_PROP_BINDING_DECODEROPTIONS_H #define PULSEVIEW_PV_PROP_BINDING_DECODEROPTIONS_H -#include - #include "binding.h" +#include + +struct srd_decoder_option; + namespace pv { + +namespace data { +class DecoderStack; +namespace decode { +class Decoder; +} +} + namespace prop { namespace binding { class DecoderOptions : public Binding { public: - DecoderOptions(const srd_decoder *decoder, GHashTable *options); + DecoderOptions(std::shared_ptr decoder_stack, + std::shared_ptr decoder); private: - GVariant* getter(const char *id); + static std::shared_ptr bind_enum(const QString &name, + const srd_decoder_option *option, + Property::Getter getter, Property::Setter setter); + + Glib::VariantBase getter(const char *id); - void setter(const char *id, GVariant *value); + void setter(const char *id, Glib::VariantBase value); private: - const srd_decoder *const _decoder; - GHashTable *const _options; + std::shared_ptr decoder_stack_; + std::shared_ptr decoder_; }; } // binding