36 lines
1.3 KiB
Diff
36 lines
1.3 KiB
Diff
--- a/DSView/pv/prop/binding/decoderoptions.cpp
|
|
+++ b/DSView/pv/prop/binding/decoderoptions.cpp
|
|
@@ -27,6 +27,7 @@
|
|
|
|
#include "../../data/decoderstack.h"
|
|
#include "../../data/decode/decoder.h"
|
|
+#include "../bool.h"
|
|
#include "../double.h"
|
|
#include "../enum.h"
|
|
#include "../int.h"
|
|
@@ -85,7 +86,23 @@
|
|
|
|
Property *prop = NULL;
|
|
|
|
- if (opt->values)
|
|
+ if (strcmp(dec->id, "gate_driver_timing") == 0 &&
|
|
+ strcmp(opt->id, "pair_analysis") == 0) {
|
|
+ prop = new Bool(name, name,
|
|
+ [getter]() -> GVariant* {
|
|
+ GVariant *value = getter();
|
|
+ const bool enabled = value && g_variant_get_int64(value) != 0;
|
|
+ if (value) g_variant_unref(value);
|
|
+ return g_variant_ref_sink(g_variant_new_boolean(enabled));
|
|
+ },
|
|
+ [setter](GVariant *value) {
|
|
+ GVariant *number = g_variant_ref_sink(g_variant_new_int64(
|
|
+ g_variant_get_boolean(value) ? 1 : 0));
|
|
+ setter(number);
|
|
+ g_variant_unref(number);
|
|
+ });
|
|
+ }
|
|
+ else if (opt->values)
|
|
prop = bind_enum(name, opt, getter, setter);
|
|
else if (g_variant_is_of_type(opt->def, G_VARIANT_TYPE("d")))
|
|
prop = new Double(name, name, 2, "",none, none, getter, setter);
|