mirror of
https://gitlab.com/mishakmak/pam-fprint-grosshack.git
synced 2026-04-09 04:13:33 +02:00
Use GObject-provided boilerplate
Clean up the device object by using G_DEFINE_TYPE
This commit is contained in:
committed by
Daniel Drake
parent
017f770480
commit
1919ca75f2
36
src/device.c
36
src/device.c
@ -101,12 +101,12 @@ static GObjectClass *parent_class = NULL;
|
|||||||
static guint32 last_id = ~0;
|
static guint32 last_id = ~0;
|
||||||
static guint signals[NUM_SIGNALS] = { 0, };
|
static guint signals[NUM_SIGNALS] = { 0, };
|
||||||
|
|
||||||
static void device_finalize(GObject *object)
|
static void fprint_device_finalize(GObject *object)
|
||||||
{
|
{
|
||||||
/* FIXME close and stuff */
|
/* FIXME close and stuff */
|
||||||
}
|
}
|
||||||
|
|
||||||
static void device_set_property(GObject *object, guint property_id,
|
static void fprint_device_set_property(GObject *object, guint property_id,
|
||||||
const GValue *value, GParamSpec *pspec)
|
const GValue *value, GParamSpec *pspec)
|
||||||
{
|
{
|
||||||
FprintDevice *self = (FprintDevice *) object;
|
FprintDevice *self = (FprintDevice *) object;
|
||||||
@ -122,7 +122,7 @@ static void device_set_property(GObject *object, guint property_id,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void device_class_init(FprintDeviceClass *klass)
|
static void fprint_device_class_init(FprintDeviceClass *klass)
|
||||||
{
|
{
|
||||||
GObjectClass *gobject_class = G_OBJECT_CLASS(klass);
|
GObjectClass *gobject_class = G_OBJECT_CLASS(klass);
|
||||||
GParamSpec *pspec;
|
GParamSpec *pspec;
|
||||||
@ -131,8 +131,8 @@ static void device_class_init(FprintDeviceClass *klass)
|
|||||||
&dbus_glib_fprint_device_object_info);
|
&dbus_glib_fprint_device_object_info);
|
||||||
parent_class = g_type_class_peek_parent(klass);
|
parent_class = g_type_class_peek_parent(klass);
|
||||||
|
|
||||||
gobject_class->finalize = device_finalize;
|
gobject_class->finalize = fprint_device_finalize;
|
||||||
gobject_class->set_property = device_set_property;
|
gobject_class->set_property = fprint_device_set_property;
|
||||||
g_type_class_add_private(klass, sizeof(FprintDevicePrivate));
|
g_type_class_add_private(klass, sizeof(FprintDevicePrivate));
|
||||||
|
|
||||||
pspec = g_param_spec_pointer("discovered-dev", "Discovered device",
|
pspec = g_param_spec_pointer("discovered-dev", "Discovered device",
|
||||||
@ -149,35 +149,15 @@ static void device_class_init(FprintDeviceClass *klass)
|
|||||||
g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT);
|
g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void device_init(GTypeInstance *instance, gpointer g_class)
|
static void fprint_device_init(FprintDevice *device)
|
||||||
{
|
{
|
||||||
FprintDevice *self = (FprintDevice *) instance;
|
FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(device);
|
||||||
FprintDevicePrivate *priv = DEVICE_GET_PRIVATE(self);
|
|
||||||
priv->id = ++last_id;
|
priv->id = ++last_id;
|
||||||
priv->storage_type = FP_FILE_STORAGE;
|
priv->storage_type = FP_FILE_STORAGE;
|
||||||
storages[priv->storage_type].init();
|
storages[priv->storage_type].init();
|
||||||
}
|
}
|
||||||
|
|
||||||
GType fprint_device_get_type(void)
|
G_DEFINE_TYPE(FprintDevice, fprint_device, G_TYPE_OBJECT);
|
||||||
{
|
|
||||||
static GType type = 0;
|
|
||||||
if (type == 0) {
|
|
||||||
static const GTypeInfo info = {
|
|
||||||
sizeof(FprintDeviceClass),
|
|
||||||
NULL, /* base_init */
|
|
||||||
NULL, /* base_finalize */
|
|
||||||
(GClassInitFunc) device_class_init,
|
|
||||||
NULL, /* class_finalize */
|
|
||||||
NULL, /* class_data */
|
|
||||||
sizeof(FprintDevice),
|
|
||||||
0, /* n_preallocs */
|
|
||||||
device_init,
|
|
||||||
};
|
|
||||||
type = g_type_register_static(G_TYPE_OBJECT, "FprintDeviceType",
|
|
||||||
&info, 0);
|
|
||||||
}
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
FprintDevice *fprint_device_new(struct fp_dscv_dev *ddev)
|
FprintDevice *fprint_device_new(struct fp_dscv_dev *ddev)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user