Files
templates/tools/dsview/gate-pair-checkbox.patch

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);