X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=strutil.c;h=5b14f51afc74741d767e5f3ebdf863d8da44daf4;hb=8e34ca86fb54ec1c841724900006868e29b180fa;hp=a073a75800b2b26e7ad8e537fe8589bf827bff39;hpb=035a1078fda93cf1da37d19b3a1d95311b99b00f;p=libsigrok.git diff --git a/strutil.c b/strutil.c index a073a758..5b14f51a 100644 --- a/strutil.c +++ b/strutil.c @@ -165,8 +165,8 @@ SR_API char *sr_period_string(uint64_t frequency) */ SR_API char *sr_voltage_string(struct sr_rational *voltage) { - char *o; int r; + char *o; if (!(o = g_try_malloc0(30 + 1))) { sr_err("%s: o malloc failed", __func__); @@ -178,7 +178,7 @@ SR_API char *sr_voltage_string(struct sr_rational *voltage) else if (voltage->q == 1) r = snprintf(o, 30, "%" PRIu64 "V", voltage->p); else - r = -1; + r = snprintf(o, 30, "%gV", (float)voltage->p / (float)voltage->q); if (r < 0) { /* Something went wrong... */ @@ -216,6 +216,7 @@ SR_API char **sr_parse_triggerstring(const struct sr_dev_inst *sdi, const char *triggerstring) { GSList *l; + GVariant *gvar; struct sr_probe *probe; int max_probes, probenum, i; char **tokens, **triggerlist, *trigger, *tc; @@ -230,11 +231,11 @@ SR_API char **sr_parse_triggerstring(const struct sr_dev_inst *sdi, return NULL; } - if (sdi->driver->config_get(SR_DI_TRIGGER_TYPES, - (const void **)&trigger_types, sdi) != SR_OK) { + if (sdi->driver->config_list(SR_CONF_TRIGGER_TYPE, &gvar, sdi) != SR_OK) { sr_err("%s: Device doesn't support any triggers.", __func__); return NULL; } + trigger_types = g_variant_get_string(gvar, NULL); tokens = g_strsplit(triggerstring, ",", max_probes); for (i = 0; tokens[i]; i++) { @@ -269,6 +270,7 @@ SR_API char **sr_parse_triggerstring(const struct sr_dev_inst *sdi, } } g_strfreev(tokens); + g_variant_unref(gvar); if (error) { for (i = 0; i < max_probes; i++)