From 3bbb7b8b51829acd5b8efaf54d60338aec0c4717 Mon Sep 17 00:00:00 2001 From: Daniel Drake Date: Sat, 27 Oct 2007 18:10:06 +0100 Subject: [PATCH] Internal image allocation API changes Creating by dimensions is likely not useful now that we can infer image size from a device in question. --- libfprint/fp_internal.h | 5 ++++- libfprint/img.c | 5 ++++- libfprint/imgdev.c | 13 +++++-------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/libfprint/fp_internal.h b/libfprint/fp_internal.h index 47eea27..7a2b58a 100644 --- a/libfprint/fp_internal.h +++ b/libfprint/fp_internal.h @@ -142,6 +142,9 @@ extern struct fp_img_driver uru4000_driver; void fpi_img_driver_setup(struct fp_img_driver *idriver); +#define fpi_driver_to_img_driver(drv) \ + container_of((drv), struct fp_img_driver, driver) + struct fp_dscv_dev { struct usb_device *udev; struct fp_driver *drv; @@ -171,7 +174,7 @@ struct fp_img { }; struct fp_img *fpi_img_new(size_t length); -struct fp_img *fpi_img_new_dims(int width, int height); +struct fp_img *fpi_img_new_for_imgdev(struct fp_img_dev *dev); struct fp_img *fpi_img_resize(struct fp_img *img, size_t newsize); gboolean fpi_img_is_sane(struct fp_img *img); diff --git a/libfprint/img.c b/libfprint/img.c index 55e1190..f2bfe9c 100644 --- a/libfprint/img.c +++ b/libfprint/img.c @@ -35,8 +35,11 @@ struct fp_img *fpi_img_new(size_t length) return img; } -struct fp_img *fpi_img_new_dims(int width, int height) +struct fp_img *fpi_img_new_for_imgdev(struct fp_img_dev *imgdev) { + struct fp_img_driver *imgdrv = fpi_driver_to_img_driver(imgdev->dev->drv); + int width = imgdrv->img_width; + int height = imgdrv->img_height; struct fp_img *img = fpi_img_new(width * height); img->width = width; img->height = height; diff --git a/libfprint/imgdev.c b/libfprint/imgdev.c index e1f4c3a..cb6f86e 100644 --- a/libfprint/imgdev.c +++ b/libfprint/imgdev.c @@ -22,13 +22,10 @@ #include "fp_internal.h" -#define driver_to_img_driver(drv) \ - container_of((drv), struct fp_img_driver, driver) - static int img_dev_init(struct fp_dev *dev, unsigned long driver_data) { struct fp_img_dev *imgdev = g_malloc0(sizeof(*imgdev)); - struct fp_img_driver *imgdrv = driver_to_img_driver(dev->drv); + struct fp_img_driver *imgdrv = fpi_driver_to_img_driver(dev->drv); int r = 0; imgdev->dev = dev; @@ -53,7 +50,7 @@ err: static void img_dev_exit(struct fp_dev *dev) { struct fp_img_dev *imgdev = dev->priv; - struct fp_img_driver *imgdrv = driver_to_img_driver(dev->drv); + struct fp_img_driver *imgdrv = fpi_driver_to_img_driver(dev->drv); if (imgdrv->exit) imgdrv->exit(imgdev); @@ -64,14 +61,14 @@ static void img_dev_exit(struct fp_dev *dev) API_EXPORTED int fp_imgdev_get_img_width(struct fp_img_dev *imgdev) { struct fp_driver *drv = imgdev->dev->drv; - struct fp_img_driver *imgdrv = driver_to_img_driver(drv); + struct fp_img_driver *imgdrv = fpi_driver_to_img_driver(drv); return imgdrv->img_width; } API_EXPORTED int fp_imgdev_get_img_height(struct fp_img_dev *imgdev) { struct fp_driver *drv = imgdev->dev->drv; - struct fp_img_driver *imgdrv = driver_to_img_driver(drv); + struct fp_img_driver *imgdrv = fpi_driver_to_img_driver(drv); return imgdrv->img_height; } @@ -79,7 +76,7 @@ API_EXPORTED int fp_imgdev_capture(struct fp_img_dev *imgdev, int unconditional, struct fp_img **image) { struct fp_driver *drv = imgdev->dev->drv; - struct fp_img_driver *imgdrv = driver_to_img_driver(drv); + struct fp_img_driver *imgdrv = fpi_driver_to_img_driver(drv); int r; if (!image) {