From c27390847178e52343f39feeb326ceb40aeb11c2 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Fri, 28 Sep 2018 14:50:02 +0200
Subject: [PATCH] lib: Tidy fp_internal.h

Group global variables, structure definitions, and functions, and
group functions by which C source they're defined in.

This also removes the FP_IMGDRV_SUPPORTS_UNCONDITIONAL_CAPTURE
definition that's already available in the drivers API-accessible
fpi-core.h
---
 libfprint/fp_internal.h | 67 ++++++++++++++++++++++++-----------------
 1 file changed, 39 insertions(+), 28 deletions(-)

diff --git a/libfprint/fp_internal.h b/libfprint/fp_internal.h
index dca072f..95b212b 100644
--- a/libfprint/fp_internal.h
+++ b/libfprint/fp_internal.h
@@ -35,6 +35,11 @@
 #include "fpi-img.h"
 #include "drivers/driver_ids.h"
 
+/* Global variables */
+extern libusb_context *fpi_usb_ctx;
+extern GSList *opened_devices;
+
+/* fp_dev structure definition */
 enum fp_dev_state {
 	DEV_STATE_INITIAL = 0,
 	DEV_STATE_ERROR,
@@ -59,8 +64,6 @@ enum fp_dev_state {
 	DEV_STATE_CAPTURE_STOPPING,
 };
 
-struct fp_driver **fprint_get_drivers (void);
-
 struct fp_dev {
 	struct fp_driver *drv;
 	uint32_t devtype;
@@ -110,6 +113,7 @@ struct fp_dev {
 	struct fp_print_data **identify_gallery;
 };
 
+/* fp_img_dev structure definition */
 struct fp_img_dev {
 	struct fp_dev *parent;
 
@@ -126,9 +130,7 @@ struct fp_img_dev {
 	size_t identify_match_offset;
 };
 
-int fpi_imgdev_get_img_width(struct fp_img_dev *imgdev);
-int fpi_imgdev_get_img_height(struct fp_img_dev *imgdev);
-
+/* fp_driver structure definition */
 struct usb_id {
 	uint16_t vendor;
 	uint16_t product;
@@ -162,10 +164,12 @@ struct fp_driver {
 	int (*capture_stop)(struct fp_dev *dev);
 };
 
-enum fp_print_data_type fpi_driver_get_data_type(struct fp_driver *drv);
-
-/* flags for fp_img_driver.flags */
-#define FP_IMGDRV_SUPPORTS_UNCONDITIONAL_CAPTURE (1 << 0)
+/* fp_img_driver structure definition */
+#define container_of(ptr, type, member) ({                      \
+        const typeof( ((type *)0)->member ) *__mptr = (ptr);    \
+        (type *)( (char *)__mptr - offsetof(type,member) );})
+#define fpi_driver_to_img_driver(drv) \
+	container_of((drv), struct fp_img_driver, driver)
 
 struct fp_img_driver {
 	struct fp_driver driver;
@@ -182,19 +186,7 @@ struct fp_img_driver {
 	void (*deactivate)(struct fp_img_dev *dev);
 };
 
-#include "drivers_definitions.h"
-
-extern libusb_context *fpi_usb_ctx;
-extern GSList *opened_devices;
-
-void fpi_img_driver_setup(struct fp_img_driver *idriver);
-
-#define container_of(ptr, type, member) ({                      \
-        const typeof( ((type *)0)->member ) *__mptr = (ptr);    \
-        (type *)( (char *)__mptr - offsetof(type,member) );})
-#define fpi_driver_to_img_driver(drv) \
-	container_of((drv), struct fp_img_driver, driver)
-
+/* fp_dscv_dev structure definition */
 struct fp_dscv_dev {
 	struct libusb_device *udev;
 	struct fp_driver *drv;
@@ -202,6 +194,7 @@ struct fp_dscv_dev {
 	uint32_t devtype;
 };
 
+/* fp_dscv_print structure definition */
 struct fp_dscv_print {
 	uint16_t driver_id;
 	uint32_t devtype;
@@ -209,11 +202,7 @@ struct fp_dscv_print {
 	char *path;
 };
 
-void fpi_data_exit(void);
-gboolean fpi_print_data_compatible(uint16_t driver_id1, uint32_t devtype1,
-	enum fp_print_data_type type1, uint16_t driver_id2, uint32_t devtype2,
-	enum fp_print_data_type type2);
-
+/* fp_minutia structure definition */
 struct fp_minutia {
 	int x;
 	int y;
@@ -229,12 +218,32 @@ struct fp_minutia {
 	int num_nbrs;
 };
 
+/* fp_minutiae structure definition */
 struct fp_minutiae {
 	int alloc;
 	int num;
 	struct fp_minutia **list;
 };
 
+/* Defined in fpi-dev-img.c */
+void fpi_img_driver_setup(struct fp_img_driver *idriver);
+int fpi_imgdev_get_img_width(struct fp_img_dev *imgdev);
+int fpi_imgdev_get_img_height(struct fp_img_dev *imgdev);
+
+/* Exported for use in command-line tools
+ * Defined in fpi-core.c */
+struct fp_driver **fprint_get_drivers (void);
+
+/* Defined in fpi-core.c */
+enum fp_print_data_type fpi_driver_get_data_type(struct fp_driver *drv);
+
+/* Defined in fpi-data.c */
+void fpi_data_exit(void);
+gboolean fpi_print_data_compatible(uint16_t driver_id1, uint32_t devtype1,
+	enum fp_print_data_type type1, uint16_t driver_id2, uint32_t devtype2,
+	enum fp_print_data_type type2);
+
+/* Defined in fpi-img.c */
 gboolean fpi_img_is_sane(struct fp_img *img);
 int fpi_img_to_print_data(struct fp_img_dev *imgdev, struct fp_img *img,
 	struct fp_print_data **ret);
@@ -243,9 +252,11 @@ int fpi_img_compare_print_data(struct fp_print_data *enrolled_print,
 int fpi_img_compare_print_data_to_gallery(struct fp_print_data *print,
 	struct fp_print_data **gallery, int match_threshold, size_t *match_offset);
 
-/* polling */
+/* Defined in fpi-poll.c */
 void fpi_timeout_cancel_all_for_dev(struct fp_dev *dev);
 void fpi_poll_init(void);
 void fpi_poll_exit(void);
 
+#include "drivers_definitions.h"
+
 #endif