2000-08-12 15:11:46 +00:00
|
|
|
/* sane - Scanner Access Now Easy.
|
|
|
|
Copyright (C) 1997 David Mosberger-Tang
|
2002-08-29 19:34:53 +00:00
|
|
|
Updates and bugfixes (C) 2002 Henning Meier-Geinitz
|
|
|
|
|
2000-08-12 15:11:46 +00:00
|
|
|
This file is part of the SANE package.
|
|
|
|
|
|
|
|
As a special exception, the authors of SANE give permission for
|
|
|
|
additional uses of the libraries contained in this release of SANE.
|
|
|
|
|
|
|
|
The exception is that, if you link a SANE library with other files
|
|
|
|
to produce an executable, this does not by itself cause the
|
|
|
|
resulting executable to be covered by the GNU General Public
|
|
|
|
License. Your use of that executable is in no way restricted on
|
|
|
|
account of linking the SANE library code into it.
|
|
|
|
|
|
|
|
This exception does not, however, invalidate any other reasons why
|
|
|
|
the executable file might be covered by the GNU General Public
|
|
|
|
License.
|
|
|
|
|
|
|
|
If you submit changes to SANE to the maintainers to be included in
|
|
|
|
a subsequent release, you agree by submitting the changes that
|
|
|
|
those changes may be distributed with this exception intact.
|
|
|
|
|
|
|
|
If you write modifications of your own for SANE, it is your choice
|
|
|
|
whether to permit this exception to apply to your modifications.
|
|
|
|
If you do not wish that, delete this exception notice.
|
2002-08-29 19:34:53 +00:00
|
|
|
*/
|
2000-08-12 15:11:46 +00:00
|
|
|
|
|
|
|
#ifndef v4l_h
|
|
|
|
#define v4l_h
|
|
|
|
|
2002-08-25 19:36:18 +00:00
|
|
|
#include <../include/sane/sane.h>
|
2002-08-29 19:34:53 +00:00
|
|
|
#define MAX_CHANNELS 32
|
2000-08-12 15:11:46 +00:00
|
|
|
|
|
|
|
typedef enum
|
2002-08-25 19:36:18 +00:00
|
|
|
{
|
|
|
|
V4L_RES_LOW = 0,
|
|
|
|
V4L_RES_HIGH
|
|
|
|
}
|
2000-08-12 15:11:46 +00:00
|
|
|
V4L_Resolution;
|
|
|
|
|
|
|
|
typedef enum
|
2002-08-25 19:36:18 +00:00
|
|
|
{
|
|
|
|
OPT_NUM_OPTS = 0,
|
|
|
|
|
|
|
|
OPT_MODE_GROUP,
|
2002-08-29 19:34:53 +00:00
|
|
|
OPT_MODE,
|
|
|
|
OPT_CHANNEL,
|
2002-08-25 19:36:18 +00:00
|
|
|
|
|
|
|
OPT_GEOMETRY_GROUP,
|
|
|
|
OPT_TL_X, /* top-left x */
|
|
|
|
OPT_TL_Y, /* top-left y */
|
|
|
|
OPT_BR_X, /* bottom-right x */
|
|
|
|
OPT_BR_Y, /* bottom-right y */
|
|
|
|
|
|
|
|
OPT_ENHANCEMENT_GROUP,
|
|
|
|
OPT_BRIGHTNESS,
|
2002-08-29 19:34:53 +00:00
|
|
|
OPT_HUE,
|
|
|
|
OPT_COLOR,
|
2002-08-25 19:36:18 +00:00
|
|
|
OPT_CONTRAST,
|
|
|
|
OPT_WHITE_LEVEL,
|
|
|
|
|
|
|
|
/* must come last: */
|
|
|
|
NUM_OPTIONS
|
|
|
|
}
|
2000-08-12 15:11:46 +00:00
|
|
|
V4L_Option;
|
|
|
|
|
|
|
|
typedef union
|
2002-08-25 19:36:18 +00:00
|
|
|
{
|
|
|
|
SANE_Word w;
|
|
|
|
SANE_Word *wa; /* word array */
|
|
|
|
SANE_String s;
|
|
|
|
}
|
2000-08-12 15:11:46 +00:00
|
|
|
Option_Value;
|
|
|
|
|
|
|
|
typedef struct V4L_Device
|
2002-08-25 19:36:18 +00:00
|
|
|
{
|
|
|
|
struct V4L_Device *next;
|
|
|
|
SANE_Device sane;
|
|
|
|
}
|
2000-08-12 15:11:46 +00:00
|
|
|
V4L_Device;
|
|
|
|
|
|
|
|
typedef struct V4L_Scanner
|
2002-08-25 19:36:18 +00:00
|
|
|
{
|
|
|
|
struct V4L_Scanner *next;
|
|
|
|
|
|
|
|
SANE_Option_Descriptor opt[NUM_OPTIONS];
|
|
|
|
Option_Value val[NUM_OPTIONS];
|
|
|
|
V4L_Resolution resolution;
|
|
|
|
SANE_Parameters params;
|
|
|
|
SANE_String_Const devicename; /* Name of the Device */
|
|
|
|
int fd; /* Filedescriptor */
|
|
|
|
SANE_Int user_corner; /* bitmask of user-selected coordinates */
|
|
|
|
SANE_Bool scanning;
|
|
|
|
SANE_Bool deliver_eof;
|
2002-08-29 19:34:53 +00:00
|
|
|
SANE_Bool is_mmap; /* Do we use mmap ? */
|
2002-08-25 19:36:18 +00:00
|
|
|
/* state for reading a frame: */
|
|
|
|
size_t num_bytes; /* # of bytes read so far */
|
|
|
|
size_t bytes_per_frame; /* total number of bytes in frame */
|
2002-08-29 19:34:53 +00:00
|
|
|
struct video_capability capability;
|
|
|
|
struct video_picture pict;
|
|
|
|
struct video_window window;
|
|
|
|
struct video_mbuf mbuf;
|
|
|
|
struct video_mmap mmap;
|
|
|
|
SANE_String_Const channel[MAX_CHANNELS];
|
|
|
|
SANE_Int buffercount;
|
2002-08-25 19:36:18 +00:00
|
|
|
}
|
2000-08-12 15:11:46 +00:00
|
|
|
V4L_Scanner;
|
|
|
|
|
|
|
|
#endif /* v4l_h */
|