From c906b30cba8dd25814812bd6d9e261c398ef991b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Tue, 13 Apr 2021 14:55:04 +0200 Subject: [PATCH] tod: Add support for device features, keeping ABI compatibility --- libfprint/fpi-device.h | 6 ++++-- libfprint/tod/tod-shared-loader.c | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/libfprint/fpi-device.h b/libfprint/fpi-device.h index 3e861a8e..dcb2a42d 100644 --- a/libfprint/fpi-device.h +++ b/libfprint/fpi-device.h @@ -139,7 +139,6 @@ struct _FpDeviceClass const gchar *full_name; FpDeviceType type; const FpIdEntry *id_table; - FpDeviceFeature features; /* Defaults for device properties */ gint nr_enroll_stages; @@ -159,9 +158,12 @@ struct _FpDeviceClass void (*cancel) (FpDevice *device); + /* Class elements added after tod-v1 */ + FpDeviceFeature features; + /*< private >*/ /* padding for future expansion */ - gpointer _padding_dummy[32]; + gpointer _padding_dummy[31]; }; void fpi_device_class_auto_initialize_features (FpDeviceClass *device_class); diff --git a/libfprint/tod/tod-shared-loader.c b/libfprint/tod/tod-shared-loader.c index 3fb04209..d214aebb 100644 --- a/libfprint/tod/tod-shared-loader.c +++ b/libfprint/tod/tod-shared-loader.c @@ -127,6 +127,12 @@ fpi_tod_shared_drivers_register (void) fp_dbg ("Loading driver %s (%s)", cls->id, cls->full_name); g_array_append_val (shared_drivers, driver); + if (cls->features == FP_DEVICE_FEATURE_NONE) + { + g_debug ("Initializing features for driver %s", cls->id); + fpi_device_class_auto_initialize_features (cls); + } + shared_modules = g_list_prepend (shared_modules, g_steal_pointer (&module)); }