Commit 3bbb7b8b authored by Daniel Drake's avatar Daniel Drake

Internal image allocation API changes

Creating by dimensions is likely not useful now that we can infer image
size from a device in question.
parent 351ccb4a
......@@ -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);
......
......@@ -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;
......
......@@ -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) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment