From f3f951d3a7588f28a00393b0af57642cd7caf516 Mon Sep 17 00:00:00 2001 From: Richard Hughes Date: Thu, 26 Jan 2023 11:14:35 +0000 Subject: [PATCH] trivial: Add fu_device_has_problem() to be consistent and hide details --- libfwupdplugin/fu-device.c | 19 +++++++++++++++++++ libfwupdplugin/fu-device.h | 2 ++ libfwupdplugin/fwupdplugin.map | 1 + src/fu-device-list.c | 2 +- 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/libfwupdplugin/fu-device.c b/libfwupdplugin/fu-device.c index 9831e91fd..e6c51f9b8 100644 --- a/libfwupdplugin/fu-device.c +++ b/libfwupdplugin/fu-device.c @@ -3069,6 +3069,25 @@ fu_device_remove_problem(FuDevice *self, FwupdDeviceProblem problem) return fu_device_uninhibit(self, fwupd_device_problem_to_string(problem)); } +/** + * fu_device_has_problem: + * @self: a #FuDevice + * @problem: a #FwupdDeviceProblem, e.g. %FWUPD_DEVICE_PROBLEM_SYSTEM_POWER_TOO_LOW + * + * Query if a device has a specific problem. + * + * Returns: %TRUE if the device has this problem + * + * Since: 1.8.11 + **/ +gboolean +fu_device_has_problem(FuDevice *self, FwupdDeviceProblem problem) +{ + g_return_val_if_fail(FU_IS_DEVICE(self), FALSE); + g_return_val_if_fail(problem != FWUPD_DEVICE_PROBLEM_UNKNOWN, FALSE); + return fu_device_has_inhibit(self, fwupd_device_problem_to_string(problem)); +} + /** * fu_device_add_problem: * @self: a #FuDevice diff --git a/libfwupdplugin/fu-device.h b/libfwupdplugin/fu-device.h index ca7d58266..95f01a444 100644 --- a/libfwupdplugin/fu-device.h +++ b/libfwupdplugin/fu-device.h @@ -562,6 +562,8 @@ fu_device_add_problem(FuDevice *self, FwupdDeviceProblem problem); void fu_device_remove_problem(FuDevice *self, FwupdDeviceProblem problem); gboolean +fu_device_has_problem(FuDevice *self, FwupdDeviceProblem problem); +gboolean fu_device_has_inhibit(FuDevice *self, const gchar *inhibit_id); const gchar * fu_device_get_physical_id(FuDevice *self); diff --git a/libfwupdplugin/fwupdplugin.map b/libfwupdplugin/fwupdplugin.map index 5385f4c73..95c38e9ed 100644 --- a/libfwupdplugin/fwupdplugin.map +++ b/libfwupdplugin/fwupdplugin.map @@ -1165,6 +1165,7 @@ LIBFWUPDPLUGIN_1.8.10 { LIBFWUPDPLUGIN_1.8.11 { global: + fu_device_has_problem; fu_device_remove_backend_tag; local: *; } LIBFWUPDPLUGIN_1.8.10; diff --git a/src/fu-device-list.c b/src/fu-device-list.c index d7f4f0fb9..adef8900a 100644 --- a/src/fu-device-list.c +++ b/src/fu-device-list.c @@ -609,7 +609,7 @@ fu_device_list_clear_wait_for_replug(FuDeviceList *self, FuDeviceItem *item) static void fu_device_incorporate_problem_update_in_progress(FuDevice *self, FuDevice *donor) { - if (fu_device_has_inhibit(donor, "update-in-progress")) { + if (fu_device_has_problem(donor, FWUPD_DEVICE_PROBLEM_UPDATE_IN_PROGRESS)) { g_debug("moving inhibit update-in-progress to active device"); fu_device_add_problem(self, FWUPD_DEVICE_PROBLEM_UPDATE_IN_PROGRESS); fu_device_remove_problem(donor, FWUPD_DEVICE_PROBLEM_UPDATE_IN_PROGRESS);