X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fstd.c;h=522606f8fd48b737ea33861a3b8dd46e58f09b40;hb=769561cbe9ff04e02502832cae676fc591716866;hp=48f83b53b5856c1ae3c8740bc16d2d60bbaf02f1;hpb=b7602846fd2d8388e3462237e2c60927efcff744;p=libsigrok.git diff --git a/src/std.c b/src/std.c index 48f83b53..522606f8 100644 --- a/src/std.c +++ b/src/std.c @@ -25,9 +25,13 @@ * @internal */ +/* Needed for gettimeofday(), at least on FreeBSD. */ +#define _XOPEN_SOURCE 700 + #include #include #include +#include #include #include #include "libsigrok-internal.h" @@ -745,24 +749,41 @@ SR_PRIV GVariant *std_gvar_tuple_double(double low, double high) return g_variant_new_tuple(range, 2); } -SR_PRIV GVariant *std_gvar_array_i32(const int32_t *a, unsigned int n) +SR_PRIV GVariant *std_gvar_array_i32(const int32_t a[], unsigned int n) { return g_variant_new_fixed_array(G_VARIANT_TYPE_INT32, a, n, sizeof(int32_t)); } -SR_PRIV GVariant *std_gvar_array_u32(const uint32_t *a, unsigned int n) +SR_PRIV GVariant *std_gvar_array_u32(const uint32_t a[], unsigned int n) { return g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32, a, n, sizeof(uint32_t)); } -SR_PRIV GVariant *std_gvar_array_u64(const uint64_t *a, unsigned int n) +SR_PRIV GVariant *std_gvar_array_u64(const uint64_t a[], unsigned int n) { return g_variant_new_fixed_array(G_VARIANT_TYPE_UINT64, a, n, sizeof(uint64_t)); } +SR_PRIV GVariant *std_gvar_array_str(const char *a[], unsigned int n) +{ + GVariant *gvar; + GVariantBuilder *builder; + unsigned int i; + + builder = g_variant_builder_new(G_VARIANT_TYPE ("as")); + + for (i = 0; i < n; i++) + g_variant_builder_add(builder, "s", a[i]); + + gvar = g_variant_new("as", builder); + g_variant_builder_unref(builder); + + return gvar; +} + SR_PRIV GVariant *std_gvar_thresholds(const double a[][2], unsigned int n) { unsigned int i;