Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/libsigrok-internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -1958,6 +1958,7 @@ SR_PRIV GVariant *std_gvar_array_str(const char *a[], unsigned int n);
SR_PRIV GVariant *std_gvar_thresholds(const double a[][2], unsigned int n);

SR_PRIV int std_str_idx(GVariant *data, const char *a[], unsigned int n);
SR_PRIV int std_i32_idx(GVariant *data, const int32_t a[], unsigned int n);
SR_PRIV int std_u64_idx(GVariant *data, const uint64_t a[], unsigned int n);
SR_PRIV int std_u8_idx(GVariant *data, const uint8_t a[], unsigned int n);

Expand Down
15 changes: 15 additions & 0 deletions src/std.c
Original file line number Diff line number Diff line change
Expand Up @@ -787,8 +787,10 @@ static int find_in_array(GVariant *data, const GVariantType *type,
const char *s;
const uint64_t *u64arr;
const uint8_t *u8arr;
const int32_t *i32arr;
uint64_t u64;
uint8_t u8;
int32_t i32;
unsigned int i;

if (!g_variant_is_of_type(data, type))
Expand All @@ -803,6 +805,14 @@ static int find_in_array(GVariant *data, const GVariantType *type,
if (!strcmp(s, sarr[i]))
return i;
break;
case G_VARIANT_CLASS_INT32:
i32 = g_variant_get_int32(data);
i32arr = arr;

for (i = 0; i < n; i++)
if (i32 == i32arr[i])
return i;
break;
case G_VARIANT_CLASS_UINT64:
u64 = g_variant_get_uint64(data);
u64arr = arr;
Expand Down Expand Up @@ -830,6 +840,11 @@ SR_PRIV int std_str_idx(GVariant *data, const char *a[], unsigned int n)
return find_in_array(data, G_VARIANT_TYPE_STRING, a, n);
}

SR_PRIV int std_i32_idx(GVariant *data, const int32_t a[], unsigned int n)
{
return find_in_array(data, G_VARIANT_TYPE_INT32, a, n);
}

SR_PRIV int std_u64_idx(GVariant *data, const uint64_t a[], unsigned int n)
{
return find_in_array(data, G_VARIANT_TYPE_UINT64, a, n);
Expand Down