summaryrefslogtreecommitdiff
path: root/backend/hs2p-saneopts.h
blob: 7ea50c28de51188bbf78b76c31b654449ae39c05 (plain)
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
/* sane - Scanner Access Now Easy.
   Copyright (C) 2007 Jeremy Johnson
   This file is part of a SANE backend for Ricoh IS450
   and IS420 family of HS2P Scanners using the SCSI controller.
   
   This file is part of the SANE package.

   This program is free software; you can redistribute it and/or
   modify it under the terms of the GNU General Public License as
   published by the Free Software Foundation; either version 2 of the
   License, or (at your option) any later version.

   This program is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place - Suite 330, Boston,
   MA 02111-1307, USA.

   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. */


#define SANE_NAME_INQUIRY  "inquiry"
#define SANE_TITLE_INQUIRY "Inquiry Data"
#define SANE_DESC_INQUIRY  "Displays scanner inquiry data"

#define SANE_TITLE_SCAN_MODE_GROUP "Scan Mode"
#define SANE_TITLE_GEOMETRY_GROUP "Geometry"
#define SANE_TITLE_FEEDER_GROUP "Feeder"

#define SANE_TITLE_ENHANCEMENT_GROUP "Enhancement"
#define SANE_TITLE_ICON_GROUP "Icon"
#define SANE_TITLE_BARCODE_GROUP "Barcode"

#define SANE_TITLE_MISCELLANEOUS_GROUP "Miscellaneous"

#define SANE_NAME_AUTOBORDER "autoborder"
#define SANE_TITLE_AUTOBORDER "Autoborder"
#define SANE_DESC_AUTOBORDER "Enable Automatic Border Detection"

#define SANE_NAME_COMPRESSION "compression"
#define SANE_TITLE_COMPRESSION "Data Compression"
#define SANE_DESC_COMPRESSION "Sets the compression mode of the scanner"

#define SANE_NAME_ROTATION "rotation"
#define SANE_TITLE_ROTATION "Page Rotation"
#define SANE_DESC_ROTATION "Sets the page rotation mode of the scanner"

#define SANE_NAME_DESKEW "deskew"
#define SANE_TITLE_DESKEW "Page Deskew"
#define SANE_DESC_DESKEW "Enable Deskew Mode"

#define SANE_NAME_TIMEOUT_ADF "timeout-adf"
#define SANE_TITLE_TIMEOUT_ADF "ADF Timeout"
#define SANE_DESC_TIMEOUT_ADF "Sets the timeout in seconds for the ADF"

#define SANE_NAME_TIMEOUT_MANUAL "timeout-manual"
#define SANE_TITLE_TIMEOUT_MANUAL "Manual Timeout"
#define SANE_DESC_TIMEOUT_MANUAL "Sets the timeout in seconds for manual feeder"

#define SANE_NAME_BATCH "batch"
#define SANE_TITLE_BATCH "Batch"
#define SANE_DESC_BATCH "Enable Batch Mode"

#define SANE_NAME_CHECK_ADF "check-adf"
#define SANE_TITLE_CHECK_ADF "Check ADF"
#define SANE_DESC_CHECK_ADF "Check ADF Status prior to starting scan"

#define SANE_NAME_PREFEED "prefeed"
#define SANE_TITLE_PREFEED "Prefeed"
#define SANE_DESC_PREFEED "Prefeed"

#define SANE_NAME_DUPLEX "duplex"
#define SANE_TITLE_DUPLEX "Duplex"
#define SANE_DESC_DUPLEX "Enable Duplex (Dual-Sided) Scanning"

#define SANE_NAME_ENDORSER  "endorser"
#define SANE_TITLE_ENDORSER "Endorser"
#define SANE_DESC_ENDORSER  "Print up to 19 character string on each sheet"

#define SANE_NAME_ENDORSER_STRING  "endorser-string"
#define SANE_TITLE_ENDORSER_STRING "Endorser String"
#define SANE_DESC_ENDORSER_STRING  "valid characters: [0-9][ :#`'-./][A-Z][a-z]"

#define SANE_NAME_BARCODE_SEARCH_COUNT "barcode-search-count"
#define SANE_TITLE_BARCODE_SEARCH_COUNT "Barcode Search Count"
#define SANE_DESC_BARCODE_SEARCH_COUNT "Number of barcodes to search for in the scanned image"

#define SANE_NAME_BARCODE_HMIN "barcode-hmin"
#define SANE_TITLE_BARCODE_HMIN "Barcode Minimum Height"
#define SANE_DESC_BARCODE_HMIN "Sets the Barcode Minimun Height (larger values increase recognition speed)"

#define SANE_NAME_BARCODE_SEARCH_MODE "barcode-search-mode"
#define SANE_TITLE_BARCODE_SEARCH_MODE "Barcode Search Mode"
#define SANE_DESC_BARCODE_SEARCH_MODE "Chooses the orientation of barcodes to be searched"

#define SANE_NAME_BARCODE_SEARCH_TIMEOUT "barcode-search-timeout"
#define SANE_TITLE_BARCODE_SEARCH_TIMEOUT "Barcode Search Timeout"
#define SANE_DESC_BARCODE_SEARCH_TIMEOUT "Sets the timeout for barcode searching"

#define SANE_NAME_BARCODE_SEARCH_BAR "barcode-search-bar"
#define SANE_TITLE_BARCODE_SEARCH_BAR "Barcode Search Bar"
#define SANE_DESC_BARCODE_SEARCH_BAR "Specifies the barcode type to search for"

#define SANE_NAME_SECTION "section"
#define SANE_TITLE_SECTION "Image/Barcode Search Sections"
#define SANE_DESC_SECTION "Specifies an image section and/or a barcode search region"

#define SANE_NAME_BARCODE_RELMAX "barcode-relmax"
#define SANE_TITLE_BARCODE_RELMAX "Barcode RelMax"
#define SANE_DESC_BARCODE_RELMAX "Specifies the maximum relation from the widest to the smallest bar"

#define SANE_NAME_BARCODE_BARMIN "barcode-barmin"
#define SANE_TITLE_BARCODE_BARMIN "Barcode Bar Minimum"
#define SANE_DESC_BARCODE_BARMIN "Specifies the minimum number of bars in Bar/Patch code"

#define SANE_NAME_BARCODE_BARMAX "barcode-barmax"
#define SANE_TITLE_BARCODE_BARMAX "Barcode Bar Maximum"
#define SANE_DESC_BARCODE_BARMAX "Specifies the maximum number of bars in a Bar/Patch code"

#define SANE_NAME_BARCODE_CONTRAST "barcode-contrast"
#define SANE_TITLE_BARCODE_CONTRAST "Barcode Contrast"
#define SANE_DESC_BARCODE_CONTRAST "Specifies the image contrast used in decoding.  Use higher values when " \
"there are more white pixels in the code"

#define SANE_NAME_BARCODE_PATCHMODE "barcode-patchmode"
#define SANE_TITLE_BARCODE_PATCHMODE "Barcode Patch Mode"
#define SANE_DESC_BARCODE_PATCHMODE "Controls Patch Code detection."

#define SANE_NAME_SCAN_WAIT_MODE "scan-wait-mode"
#define SANE_TITLE_SCAN_WAIT_MODE "Scan Wait Mode "
#define SANE_DESC_SCAN_WAIT_MODE "Enables the scanner's start button"

#define SANE_NAME_ACE_FUNCTION "ace-function"
#define SANE_TITLE_ACE_FUNCTION "ACE Function"
#define SANE_DESC_ACE_FUNCTION "ACE Function"

#define SANE_NAME_ACE_SENSITIVITY "ace-sensitivity"
#define SANE_TITLE_ACE_SENSITIVITY "ACE Sensitivity"
#define SANE_DESC_ACE_SENSITIVITY "ACE Sensitivity"

#define SANE_NAME_ICON_WIDTH "icon-width"
#define SANE_TITLE_ICON_WIDTH "Icon Width"
#define SANE_DESC_ICON_WIDTH "Width of icon (thumbnail) image in pixels"

#define SANE_NAME_ICON_LENGTH "icon-length"
#define SANE_TITLE_ICON_LENGTH "Icon Length"
#define SANE_DESC_ICON_LENGTH "Length of icon (thumbnail) image in pixels"

#define SANE_NAME_ORIENTATION "orientation"
#define SANE_TITLE_ORIENTATION "Paper Orientation"
#define SANE_DESC_ORIENTATION "[Portrait]/Landscape" \

#define SANE_NAME_PAPER_SIZE "paper-size"
#define SANE_TITLE_PAPER_SIZE "Paper Size"
#define SANE_DESC_PAPER_SIZE "Specify the scan window geometry by specifying the paper size " \
"of the documents to be scanned"

#define SANE_NAME_PADDING "padding"
#define SANE_TITLE_PADDING "Padding"
#define SANE_DESC_PADDING "Pad if media length is less than requested"

#define SANE_NAME_AUTO_SIZE "auto-size"
#define SANE_TITLE_AUTO_SIZE "Auto Size"
#define SANE_DESC_AUTO_SIZE "Automatic Paper Size Determination"

#define SANE_NAME_BINARYFILTER "binary-filter"
#define SANE_TITLE_BINARYFILTER "Binary Filter"
#define SANE_DESC_BINARYFILTER "Binary Filter"

#define SANE_NAME_SMOOTHING "smoothing"
#define SANE_TITLE_SMOOTHING "Smoothing"
#define SANE_DESC_SMOOTHING "Binary Smoothing Filter"

#define SANE_NAME_NOISEREMOVAL "noise-removal"
#define SANE_TITLE_NOISEREMOVAL "Noise Removal"
#define SANE_DESC_NOISEREMOVAL "Binary Noise Removal Filter"

#define SANE_NAME_NOISEMATRIX "noise-removal-matrix"
#define SANE_TITLE_NOISEMATRIX "Noise Removal Matrix"
#define SANE_DESC_NOISEMATRIX "Noise Removal Matrix"

#define SANE_NAME_GRAYFILTER "gray-filter"
#define SANE_TITLE_GRAYFILTER "Gray Filter"
#define SANE_DESC_GRAYFILTER "Gray Filter"

#define SANE_NAME_HALFTONE_CODE "halftone-type"
#define SANE_TITLE_HALFTONE_CODE "Halftone Type"
#define SANE_DESC_HALFTONE_CODE  "Dither or Error Diffusion"

/*
#define SANE_NAME_HALFTONE_PATTERN "pattern"
#define SANE_TITLE_HALFTONE_PATTERN "Pattern"
#define SANE_DESC_HALFTONE_PATTERN  "10 built-in halftone patterns + 2 user patterns"
*/

#define SANE_NAME_ERRORDIFFUSION "error-diffusion"
#define SANE_TITLE_ERRORDIFFUSION "Error Diffusion"
#define SANE_DESC_ERRORDIFFUSION  "Useful for documents with both text and images"

/*
#define SANE_NAME_HALFTONE "halftone"
#define SANE_TITLE_HALFTONE "Halftone"
#define SANE_DESC_HALFTONE "Choose a dither pattern or error diffusion"

#define SANE_NAME_NEGATIVE "negative image"
#define SANE_TITLE_NEGATIVE "Negative Image"
#define SANE_DESC_NEGATIVE "Reverse Image Format"

#define SANE_NAME_BRIGHTNESS "brightness"
#define SANE_TITLE_BRIGHTNESS "Brightness"
#define SANE_DESC_BRIGHTNESS "Brightness"

#define SANE_NAME_THRESHOLD "threshold"
#define SANE_TITLE_THRESHOLD "Threshold"
#define SANE_DESC_THRESHOLD "Threshold"
*/

#define SANE_NAME_GAMMA "gamma"
#define SANE_TITLE_GAMMA "Gamma"
#define SANE_DESC_GAMMA "Gamma Correction"

#define SANE_NAME_AUTOSEP "auto-separation"
#define SANE_TITLE_AUTOSEP "Automatic Separation"
#define SANE_DESC_AUTOSEP "Automatic Separation"

#define SANE_NAME_AUTOBIN "auto-binarization"
#define SANE_TITLE_AUTOBIN "Automatic Binarization"
#define SANE_DESC_AUTOBIN "Automatic Binarization"

#define SANE_NAME_WHITE_BALANCE "white-balance"
#define SANE_TITLE_WHITE_BALANCE "White Balance"
#define SANE_DESC_WHITE_BALANCE  "White Balance"

#define SANE_NAME_PADDING_TYPE "padding-type"
#define SANE_TITLE_PADDING_TYPE "Padding Type"
#define SANE_DESC_PADDING_TYPE  "Padding Type"

#define SANE_NAME_BITORDER "bit-order"
#define SANE_TITLE_BITORDER "Bit Order"
#define SANE_DESC_BITORDER  "Bit Order"

#define SANE_NAME_SELF_DIAGNOSTICS "self-diagnostics"
#define SANE_TITLE_SELF_DIAGNOSTICS "Self Diagnostics"
#define SANE_DESC_SELF_DIAGNOSTICS "Self Diagnostics"

#define SANE_NAME_OPTICAL_ADJUSTMENT "optical-adjustment"
#define SANE_TITLE_OPTICAL_ADJUSTMENT "Optical Adjustment"
#define SANE_DESC_OPTICAL_ADJUSTMENT "Optical Adjustment"

typedef enum
{
  OPT_NUM_OPTS = 0,

  OPT_MODE_GROUP,
  OPT_INQUIRY,			/* inquiry string */
  OPT_PREVIEW,
  OPT_SCAN_MODE,		/* scan mode */
  OPT_RESOLUTION,
  OPT_X_RESOLUTION,
  OPT_Y_RESOLUTION,
  OPT_COMPRESSION,		/* hardware compression */

  OPT_GEOMETRY_GROUP,
  /*OPT_AUTOBORDER,       automatic border detection */
  /*OPT_ROTATION,         hardware rotation */
  /*OPT_DESKEW,           hardware deskew */
  OPT_PAGE_ORIENTATION,		/* portrait, landscape */
  OPT_PAPER_SIZE,		/* paper size */
  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_PADDING,			/* Pad to requested length */
  OPT_AUTO_SIZE,		/* Automatic Size Recognition */

  OPT_FEEDER_GROUP,
  OPT_SCAN_SOURCE,		/* scan source (eg. Flatbed, ADF) */
  OPT_DUPLEX,			/* scan both sides of the page */
  OPT_SCAN_WAIT_MODE,		/* Enables the scanner's Start Button */
  OPT_PREFEED,
  OPT_ENDORSER,			/* Endorser (off,on) */
  OPT_ENDORSER_STRING,		/* Endorser String */
  /*OPT_BATCH,              scan in batch mode */
  /*OPT_TIMEOUT_MANUAL,     timeout in seconds with manual feed */
  /*OPT_TIMEOUT_ADF,        timeout in seconds with ADF */
  /*OPT_CHECK_ADF,          check for page in ADF before scanning */

  OPT_ENHANCEMENT_GROUP,
  /* OPT_ACE_FUNCTION,  
     OPT_ACE_SENSITIVITY, */
  OPT_BRIGHTNESS,		/* Brightness */
  OPT_THRESHOLD,		/* Threshold */
  OPT_CONTRAST,			/* Contrast */
  OPT_NEGATIVE,			/* Negative (reverse image) */
  OPT_GAMMA,			/* Gamma Correction */
  OPT_CUSTOM_GAMMA,
  OPT_GAMMA_VECTOR_GRAY,
  OPT_HALFTONE_CODE,		/* Halftone Code    */
  OPT_HALFTONE_PATTERN,		/* Halftone Pattern */
  OPT_GRAYFILTER,		/* MRIF */
  OPT_SMOOTHING,		/* Smoothing */
  OPT_NOISEREMOVAL,		/* Noise Removal */
  OPT_AUTOSEP,			/* Auto Separation */
  OPT_AUTOBIN,			/* Auto Binarization */
  OPT_WHITE_BALANCE,

  OPT_MISCELLANEOUS_GROUP,
  OPT_PADDING_TYPE,
  /*OPT_BITORDER,      */
  OPT_SELF_DIAGNOSTICS,
  OPT_OPTICAL_ADJUSTMENT,
  /*
     OPT_PARITION_FUNCTION
     OPT_SECTION
   */

  OPT_DATA_GROUP,
  OPT_UPDATE,
  OPT_NREGX_ADF,
  OPT_NREGY_ADF,
  OPT_NREGX_BOOK,
  OPT_NREGY_BOOK,
  OPT_NSCANS_ADF,
  OPT_NSCANS_BOOK,
  OPT_LAMP_TIME,
  OPT_EO_ODD,
  OPT_EO_EVEN,
  OPT_BLACK_LEVEL_ODD,
  OPT_BLACK_LEVEL_EVEN,
  OPT_WHITE_LEVEL_ODD,
  OPT_WHITE_LEVEL_EVEN,
  OPT_DENSITY,
  OPT_FIRST_ADJ_WHITE_ODD,
  OPT_FIRST_ADJ_WHITE_EVEN,
  OPT_NREGX_REVERSE,
  OPT_NREGY_REVERSE,
  OPT_NSCANS_REVERSE_ADF,
  OPT_REVERSE_TIME,
  OPT_NCHARS,

  NUM_OPTIONS			/* must come last: */
} HS2P_Option;