From: Bastien Nocera Date: Mon, 8 Oct 2018 16:43:28 +0200 Subject: lib: Add accessor for minutia coordinates Add fp_minutia_get_coords() so that debugging applications can show the detected minutiae along with the captured image. This will also help fix the positively ancient fprint_demo. See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=907470 --- doc/libfprint-sections.txt | 1 + libfprint/fprint.h | 1 + libfprint/img.c | 24 ++++++++++++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/doc/libfprint-sections.txt b/doc/libfprint-sections.txt index 77cb0c3..67616cc 100644 --- a/doc/libfprint-sections.txt +++ b/doc/libfprint-sections.txt @@ -129,6 +129,7 @@ fp_img_save_to_file fp_img_standardize fp_img_binarize fp_img_get_minutiae +fp_minutia_get_coords
diff --git a/libfprint/fprint.h b/libfprint/fprint.h index be94a54..0efd875 100644 --- a/libfprint/fprint.h +++ b/libfprint/fprint.h @@ -295,6 +295,7 @@ int fp_img_save_to_file(struct fp_img *img, char *path); void fp_img_standardize(struct fp_img *img); struct fp_img *fp_img_binarize(struct fp_img *img); struct fp_minutia **fp_img_get_minutiae(struct fp_img *img, int *nr_minutiae); +int fp_minutia_get_coords(struct fp_minutia *minutia, int *coord_x, int *coord_y); void fp_img_free(struct fp_img *img); /* Polling and timing */ diff --git a/libfprint/img.c b/libfprint/img.c index 2f195af..4b2476f 100644 --- a/libfprint/img.c +++ b/libfprint/img.c @@ -561,6 +561,30 @@ fpi_imgdev_get_dev(struct fp_img_dev *imgdev) return imgdev->dev; } +/** + * fp_minutia_get_coords: + * @minutia: a struct #fp_minutia + * @x: the return variable for the X coordinate of the minutia + * @y: the return variable for the Y coordinate of the minutia + * + * Sets @x and @y to be the coordinates of the detected minutia, so it + * can be presented in a more verbose user interface. This is usually only + * used for debugging purposes. + * + * Returns: 0 on success, -1 on error. + */ +API_EXPORTED int fp_minutia_get_coords(struct fp_minutia *minutia, int *coord_x, int *coord_y) +{ + g_return_val_if_fail (minutia != NULL, -1); + g_return_val_if_fail (coord_x != NULL, -1); + g_return_val_if_fail (coord_y != NULL, -1); + + *coord_x = minutia->x; + *coord_y = minutia->y; + + return 0; +} + enum fp_imgdev_enroll_state fpi_imgdev_get_action_state(struct fp_img_dev *imgdev) {