From 1db3b0df8cbe2db907d44207defa0b7402594c6e Mon Sep 17 00:00:00 2001 From: Richard Hughes Date: Tue, 31 Oct 2017 14:04:53 +0000 Subject: Add the 'hardware' requires type --- libappstream-glib/as-require.c | 4 ++++ libappstream-glib/as-require.h | 2 ++ libappstream-glib/as-self-test.c | 8 +++++++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/libappstream-glib/as-require.c b/libappstream-glib/as-require.c index f6a4bd6..66ef88d 100644 --- a/libappstream-glib/as-require.c +++ b/libappstream-glib/as-require.c @@ -95,6 +95,8 @@ as_require_kind_from_string (const gchar *kind) return AS_REQUIRE_KIND_ID; if (g_strcmp0 (kind, "firmware") == 0) return AS_REQUIRE_KIND_FIRMWARE; + if (g_strcmp0 (kind, "hardware") == 0) + return AS_REQUIRE_KIND_HARDWARE; return AS_REQUIRE_KIND_UNKNOWN; } @@ -115,6 +117,8 @@ as_require_kind_to_string (AsRequireKind kind) return "id"; if (kind == AS_REQUIRE_KIND_FIRMWARE) return "firmware"; + if (kind == AS_REQUIRE_KIND_HARDWARE) + return "hardware"; return NULL; } diff --git a/libappstream-glib/as-require.h b/libappstream-glib/as-require.h index e13d77e..d3a6b5f 100644 --- a/libappstream-glib/as-require.h +++ b/libappstream-glib/as-require.h @@ -52,6 +52,7 @@ struct _AsRequireClass * @AS_REQUIRE_KIND_UNKNOWN: Type invalid or not known * @AS_REQUIRE_KIND_ID: Component ID * @AS_REQUIRE_KIND_FIRMWARE: Device firmware version + * @AS_REQUIRE_KIND_HARDWARE: Hardware device, typically a GUID * * The require type. **/ @@ -59,6 +60,7 @@ typedef enum { AS_REQUIRE_KIND_UNKNOWN, AS_REQUIRE_KIND_ID, AS_REQUIRE_KIND_FIRMWARE, + AS_REQUIRE_KIND_HARDWARE, /* Since: 0.7.4 */ /*< private >*/ AS_REQUIRE_KIND_LAST } AsRequireKind; diff --git a/libappstream-glib/as-self-test.c b/libappstream-glib/as-self-test.c index 9d399a6..d05cc52 100644 --- a/libappstream-glib/as-self-test.c +++ b/libappstream-glib/as-self-test.c @@ -1346,6 +1346,7 @@ as_test_require_func (void) "gimp.desktop\n" "bootloader\n" "runtime\n" + "4be0643f-1d98-573b-97cd-ca98a65347dd\n" "\n" "\n"; gboolean ret; @@ -1370,7 +1371,7 @@ as_test_require_func (void) /* verify */ requires = as_app_get_requires (app); - g_assert_cmpint (requires->len, ==, 3); + g_assert_cmpint (requires->len, ==, 4); require = g_ptr_array_index (requires, 0); g_assert_cmpint (as_require_get_kind (require), ==, AS_REQUIRE_KIND_ID); g_assert_cmpint (as_require_get_compare (require), ==, AS_REQUIRE_COMPARE_UNKNOWN); @@ -1381,6 +1382,11 @@ as_test_require_func (void) g_assert_cmpint (as_require_get_compare (require), ==, AS_REQUIRE_COMPARE_GE); g_assert_cmpstr (as_require_get_version (require), ==, "0.1.2"); g_assert_cmpstr (as_require_get_value (require), ==, "bootloader"); + require = g_ptr_array_index (requires, 3); + g_assert_cmpint (as_require_get_kind (require), ==, AS_REQUIRE_KIND_HARDWARE); + g_assert_cmpint (as_require_get_compare (require), ==, AS_REQUIRE_COMPARE_UNKNOWN); + g_assert_cmpstr (as_require_get_version (require), ==, NULL); + g_assert_cmpstr (as_require_get_value (require), ==, "4be0643f-1d98-573b-97cd-ca98a65347dd"); /* back to node */ root = as_node_new (); -- cgit v1.2.1