blob: bf82c3502ea72b24bc575b5b2c1a6410664935bb [file] [log] [blame]
Richard Hughes02c90d82018-08-09 12:13:03 +01001/*
Richard Hughes9dde04f2017-09-13 12:07:15 +01002 * Copyright (C) 2017 Richard Hughes <richard@hughsie.com>
3 *
Mario Limonciello51308e62018-05-28 20:05:46 -05004 * SPDX-License-Identifier: LGPL-2.1+
Richard Hughes9dde04f2017-09-13 12:07:15 +01005 */
6
Richard Hughesbfd946e2019-02-09 08:21:40 +00007#pragma once
Richard Hughes9dde04f2017-09-13 12:07:15 +01008
9#include <fu-device.h>
Mario Limonciello7a3df4b2019-01-31 10:27:22 -060010#include <xmlb.h>
Richard Hughes9dde04f2017-09-13 12:07:15 +010011
Richard Hughes51a869a2019-10-07 11:23:42 +010012#define fu_device_set_plugin(d,v) fwupd_device_set_plugin(FWUPD_DEVICE(d),v)
13
Richard Hughescf100292021-01-04 10:36:37 +000014const gchar *fu_device_internal_flag_to_string (FuDeviceInternalFlags flag);
15FuDeviceInternalFlags fu_device_internal_flag_from_string (const gchar *flag);
16
Richard Hughes2c0635a2018-09-04 14:52:46 +010017GPtrArray *fu_device_get_parent_guids (FuDevice *self);
18gboolean fu_device_has_parent_guid (FuDevice *self,
Richard Hughes5e447292018-04-27 14:25:54 +010019 const gchar *guid);
Richard Hughes841c1802018-09-07 15:32:32 +010020void fu_device_set_parent (FuDevice *self,
21 FuDevice *parent);
Richard Hughesb7fbb072020-09-13 15:08:16 +010022gint fu_device_get_order (FuDevice *self);
Richard Hughes2c0635a2018-09-04 14:52:46 +010023void fu_device_set_order (FuDevice *self,
Richard Hughesb7fbb072020-09-13 15:08:16 +010024 gint order);
Richard Hughes2c0635a2018-09-04 14:52:46 +010025void fu_device_set_alternate (FuDevice *self,
Richard Hughese48351e2018-06-22 12:32:39 +010026 FuDevice *alternate);
Richard Hughesc125ec02018-09-05 19:35:17 +010027gboolean fu_device_ensure_id (FuDevice *self,
Richard Hughesa2abc422020-12-22 09:38:59 +000028 GError **error)
29 G_GNUC_WARN_UNUSED_RESULT;
Mario Limonciello7a3df4b2019-01-31 10:27:22 -060030void fu_device_incorporate_from_component (FuDevice *device,
31 XbNode *component);
Richard Hughes1bc43232019-02-05 19:07:42 +000032void fu_device_convert_instance_ids (FuDevice *self);
Richard Hughesd8a8d5e2019-10-08 13:05:02 +010033gchar *fu_device_get_guids_as_str (FuDevice *self);
Richard Hughes51a869a2019-10-07 11:23:42 +010034GPtrArray *fu_device_get_possible_plugins (FuDevice *self);
Richard Hughes6d257cb2020-10-27 09:41:43 +000035void fu_device_add_possible_plugin (FuDevice *self,
36 const gchar *plugin);