trivial: Add a GObject property for FuVliDevice::kind

This commit is contained in:
Richard Hughes 2020-03-17 10:13:44 +00:00
parent 86febb681b
commit ac48c7f45a

View File

@ -24,6 +24,12 @@ G_DEFINE_TYPE_WITH_PRIVATE (FuVliDevice, fu_vli_device, FU_TYPE_USB_DEVICE)
#define GET_PRIVATE(o) (fu_vli_device_get_instance_private (o))
enum {
PROP_0,
PROP_KIND,
PROP_LAST
};
static const gchar *
fu_vli_device_spi_req_to_string (FuVliDeviceSpiReq req)
{
@ -428,7 +434,11 @@ fu_vli_device_set_kind (FuVliDevice *self, FuVliDeviceKind device_kind)
FuVliDevicePrivate *priv = GET_PRIVATE (self);
guint32 sz;
/* set and notify if different */
if (priv->kind != device_kind) {
priv->kind = device_kind;
g_object_notify (G_OBJECT (self), "kind");
}
/* set maximum firmware size */
sz = fu_vli_common_device_kind_get_size (device_kind);
@ -620,6 +630,35 @@ fu_vli_device_set_quirk_kv (FuDevice *device,
return FALSE;
}
static void
fu_vli_device_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
{
FuVliDevice *self = FU_VLI_DEVICE (object);
FuVliDevicePrivate *priv = GET_PRIVATE (self);
switch (prop_id) {
case PROP_KIND:
g_value_set_uint (value, priv->kind);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
static void
fu_vli_device_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
FuVliDevice *self = FU_VLI_DEVICE (object);
switch (prop_id) {
case PROP_KIND:
fu_vli_device_set_kind (self, g_value_get_uint (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
static void
fu_vli_device_init (FuVliDevice *self)
{
@ -640,6 +679,18 @@ static void
fu_vli_device_class_init (FuVliDeviceClass *klass)
{
FuDeviceClass *klass_device = FU_DEVICE_CLASS (klass);
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GParamSpec *pspec;
/* properties */
object_class->get_property = fu_vli_device_get_property;
object_class->set_property = fu_vli_device_set_property;
pspec = g_param_spec_uint ("kind", NULL, NULL,
0, G_MAXUINT, 0,
G_PARAM_READWRITE |
G_PARAM_STATIC_NAME);
g_object_class_install_property (object_class, PROP_KIND, pspec);
klass_device->to_string = fu_vli_device_to_string;
klass_device->set_quirk_kv = fu_vli_device_set_quirk_kv;
klass_device->setup = fu_vli_device_setup;