File: scanner.h

package info (click to toggle)
ted 2.6-1
  • links: PTS
  • area: main
  • in suites: potato
  • size: 7,928 kB
  • ctags: 8,734
  • sloc: ansic: 71,878; makefile: 2,363; sh: 159
file content (127 lines) | stat: -rw-r--r-- 4,549 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#   include	<bitmap.h>

/************************************************************************/
/*  Types of scanners.							*/
/************************************************************************/
#   define	SCANtyHPSCL		0
#   define	SCANtySCSI		1

/************************************************************************/
/*  Description of a scanner data format.				*/
/************************************************************************/

typedef	struct ScannerDataFormat
    {
    int		sdfFormat;
    int		sdfBitsPerPixel;
    char *	sdfDescription;
    int		sdfPreviewFormat;
    } ScannerDataFormat;

/************************************************************************/
/*  Description of the 'mode' of a scanner.				*/
/************************************************************************/
typedef struct ScannerMode
    {
    int		smDataFormat;		/*  Index in ScannerDefinition	*/
    int		smXResolution;
    int		smYResolution;
    int		smContrast;
    int		smIntensity;

    int		smX;
    int		smY;
    int		smWide;
    int		smHigh;
    } ScannerMode;

/************************************************************************/
/*									*/
/*  Description of a scanner.						*/
/*									*/
/************************************************************************/

typedef	struct ScannerDefinition
    {
    int		sdKind;			/* SCSI,HPSCL &c		*/
    int		(*sdConfigure)(	int				fd,
				int				target,
				struct ScannerDefinition *	sd );
					/* E.G. Determine size.		*/

    int		sdDevice;		/* like file descriptor		*/
    int		sdTarget;		/* like scsi target.		*/
    char	sdDeviceName[100];

    int		sdMetricUnit;		/* mm, inch etc.		*/
    int		sdDevicePerMetric;	/* device units/metric unit.	*/

    int		sdXMinimumResolution;	/* X Minimum resolution.	*/
    int		sdXMaximumResolution;	/* X Maximum resolution.	*/
    int		sdXOpticalResolution;	/* X Optical resolution.	*/
    int		sdXDefaultResolution;	/* X Default resolution.	*/

    int		sdYMinimumResolution;	/* Y Minimum resolution.	*/
    int		sdYMaximumResolution;	/* Y Maximum resolution.	*/
    int		sdYOpticalResolution;	/* Y Optical resolution.	*/
    int		sdYDefaultResolution;	/* Y Default resolution.	*/

    int		sdMinimumContrast;	/* Minimum contrast.		*/
    int		sdMaximumContrast;	/* Maximum contrast.		*/
    int		sdDefaultContrast;	/* Default contrast.		*/

    int		sdMinimumIntensity;	/* Minimum intensity.		*/
    int		sdMaximumIntensity;	/* Maximum intensity.		*/
    int		sdDefaultIntensity;	/* Default intensity.		*/

    int		sdHorizontalSize;	/* Horizontal Device geometry!	*/
    int		sdVerticalSize;		/* Vertical   Device geometry!	*/

    ScannerDataFormat *
		sdDataFormats;		/* Data Formats supported.	*/
    int		sdNumberOfDataFormats;	/* Number of Data Formats.	*/
    int		sdDefaultDataFormat;	/* Default data format.		*/

    char	sdDescription[40];	/* Description for external use */

    ScannerMode	sdCurrentMode;		/* Current Data Format &c.	*/
    ScannerMode	sdApplicationMode;	/* Scratch for application.	*/
    } ScannerDefinition;

/************************************************************************/
/*  Scan commands.							*/
/************************************************************************/
extern int	scanResetScanner( int fd, const ScannerDefinition * sd );
extern int	scanLightSourceTest( int fd, const ScannerDefinition * sd,
					int on_off );
extern int	scanFindScanners( ScannerDefinition * sd );
extern int	scanOpenScanner( const ScannerDefinition * sd );
extern int	scanCloseScanner( int fd, const ScannerDefinition * sd );
extern void	scanSetDefaults( const ScannerDefinition * sd,
					ScannerMode * sm );
extern int	scanSetDataFormat( int fd, ScannerDefinition * sd,
					int dataFormat );
extern int	scanSetXResolution( int fd, ScannerDefinition * sd,
					int xResolution );
extern int	scanSetYResolution( int fd, ScannerDefinition * sd,
					int yResolution );
extern int	scanSetContrast( int fd, ScannerDefinition * sd,
					int contrast );
extern int	scanSetIntensity( int fd, ScannerDefinition * sd,
					int intensity );
extern int	scanDescribeBitmap(	BitmapDescription * bd,
					const ScannerDefinition * sd,
					int fd				);
extern int	scanScanWindow(	int				fd,
				const ScannerDefinition *	sd,
				const BitmapDescription *	bd,
				unsigned char *			buffer	);

extern unsigned char * scanScanRectangle(	int			fd,
						int			x,
						int			y,
						int			wide,
						int			high,
						BitmapDescription *	bd,
						ScannerDefinition *	sd,
						ScannerMode *		sm );