1CHANGES FOR UMAX BACKEND FOR SANE
2---------------------------------
3
4umax -> sane-0.6:
5-----------------
6
7    * umax-sane-backend created:
8      - umax.c split in:
9        umax-cli.c, umax-scsi.c, umax-driver.c, umax-text.c
10      - umax.h split in:
11        umax-scanner.h, umax-scsi.h, umax-scsidef.h, umax-struct.h
12      - outputs done by DBG(level,msg,args...) defined in debug.h
13      - scsi-calls changed to sane-format (of sane-0.57)
14      - created umax.c and umax.h for sane-backend
15
16    * changed search-path for scsi.h and sg.h, now needs /usr/include/scsi
17
18    * removed mistake in bound-function
19
20    * added "Vista S-6E" as supported
21
22    * added PowerLook-II (PL-II) as supported
23
24    * added Astra 600S as supported
25
26
27sane-0.6 / 0.61 / 0.62 -> 0.63
28------------------------------
29
30    * added exception to gpl-licence:
31    >   This program is free software; you can redistribute it and/or
32    >   modify it under the terms of the GNU General Public License as
33    >   published by the Free Software Foundation; either version 2 of the
34    >   License, or (at your option) any later version.
35    >
36    >   This program is distributed in the hope that it will be useful, but
37    >   WITHOUT ANY WARRANTY; without even the implied warranty of
38    >   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
39    >   General Public License for more details.
40    >
41    >   You should have received a copy of the GNU General Public License
42    >   along with this program; if not, write to the Free Software
43    >   Foundation, Inc., 59 Temple Place - Suite 330, Boston,
44    >   MA 02111-1307, USA.
45    >
46    >   As a special exception, the authors of SANE give permission for
47    >   additional uses of the libraries contained in this release of SANE.
48    >
49    >   The exception is that, if you link a SANE library with other files
50    >   to produce an executable, this does not by itself cause the
51    >   resulting executable to be covered by the GNU General Public
52    >   License.  Your use of that executable is in no way restricted on
53    >   account of linking the SANE library code into it.
54    >
55    >   This exception does not, however, invalidate any other reasons why
56    >   the executable file might be covered by the GNU General Public
57    >   License.
58    >
59    >   If you submit changes to SANE to the maintainers to be included in
60    >   a subsequent release, you agree by submitting the changes that
61    >   those changes may be distributed with this exception intact.
62    >
63    >   If you write modifications of your own for SANE, it is your choice
64    >   whether to permit this exception to apply to your modifications.
65    >   If you do not wish that, delete this exception notice.
66
67    * split resolution in x-res and y-res, flag bind-resolution
68
69    * only sane_... functions will be exported from umax-backend,
70      all umax_... functions are made static
71
72    * removed umax-emergency-routine for SANE
73
74    * made program-flow (esp. with do_canel) SANE-specific
75
76    * fixed missing 3-pass parts
77
78    * made scanmodes, sources, analog gamma, gamma download, negative,
79      quality calibration, highlight, shadow only selectable if they are
80      available
81
82    * calibration-mode selectable in advanced options if available
83
84    * warmup selectable if available
85
86    * changed umax-scsi.c like described from Gordon Matzigkeit
87      in his diff/patch-file from 21.06.97 so that the umax-backend
88      should compile on non-linux-systems now - thanks!
89
90    * split highlight and shadow in R, G and B for color-mode.
91
92    * reset adf and uta flag when not used (in sane_start)
93
94    * added possibility to change calibration-mode if available
95
96    * added send_halftone_pattern to umax-scsi.c
97
98    * changed umax-scsi.c like described from Gordon Matzigkeit
99      in his diff/patch-file from 21.06.97 so that the umax-backend
100      should compile on non-linux-systems now - thanks
101
102    * added support for each color (R,G,B) for highlight and shadow
103
104    * added "Astra 1200S" and "UC840" as supported
105
106    * added bad bugfix for preview-problem with S6E
107      (in umax-scsi.c function start_scan)
108
109    * moved resolution-check from check_values to bound_scanarea,
110      now no floatingpoint-exception will occur if no resolution is given!
111
112    * changed range-check for width and height
113
114    * removed bug in set_window for three-pass-rgb-mode
115      -selected wrong buffer for some green and blue options
116      -scanmode now is greyscale instead of rgb
117
118    * changed start_scan(us) to better use with wid-list
119      and added missing 3 wid-bytes in scan.cmd
120
121    * removed parameter color in three_pass_function_headers,
122      the color is taken from us->three_pass_color now.
123
124
125sane-0.63/0.64/0.65 -> 0.66
126---------------------------
127
128    * changed gamma-data-upload for 3-pass-color-scan
129
130    * corrected wrong calculation for highlight and shadow
131      selection for rgb-values
132
133    * changed gamma data to use 8 bit (256 bytes) or 10 bit (1024 bytes)
134
135    * included 10/30 bits per pixel mode
136
137    * changed bug in sane_exit (free()) that sometimes made a
138      segmentation-fault
139
140    * made patches runtime-selectable
141
142    * changed set_window_command to support 30 bits per pixel
143
144    * changed send_gamma_data to support three_pass_gamma and 10/30 bpp
145
146    * changed row_len in umax_bound_scanarea to 10/30 bit mode
147
148    * added halftone-support for ug630, uc630 and uc840,
149      but I don't know if all values are ok!
150
151    * changed CBHS-50-range to 78-178 (from 103-153)
152
153    * changed rangecheck for highlight and shadow
154
155    * fixed get_cbhs_range-bug in umax-scsidef.h
156
157    * added ADF-inquiry-bits to umax-scsidef.h
158
159    * added color_line_arrangement_mode-inquiry-byte to umax-scsidef.h
160
161    * added CCD_line_distance-inquiry-byte to umax-scsidef.h
162
163    * added all most unused bits and bytes in inquiry to umax-scsidef.h
164
165    * made patches runtime-selectable
166
167
168sane-0.66 -> 0.67
169-----------------
170
171    * removed bug in sane_start: ADF and UTA flags have not been set correct
172
173    * removed bug in init_options: value range for 10 gamma-input-bits corrected
174
175    * made custom gamma available for lineart and halftone for nonlinear effects
176
177    * added Vista-T630 as supported scanner
178
179    * removed test_warmup in wait_scanner because adaptec 1542 has problems
180      with request_sense-command in test_warmup
181      it was only used for printing a message, so it was not important.
182
183    * if a scanner has a full inquiry-block but is not known to be supported,
184      the driver will print a warning and continue instead of aborting,
185      option --continue (on umax-cli) will suppress the warning!
186
187    * changed ugly definition
188      char gamma[x] -> char *gamma; gamma=alloca(x);
189
190    * removed bug (wrong length for 10 bit-gamma) in send_gamma_data
191
192    * changed all buffer-definitions to unsigned char and inserted
193      type conversions, so there are no more warnings because of
194      typemismatches.
195
196    * corrected bad definition of set_DCF2_gamma_output_bits
197
198
199sane-0.67 -> 0.68
200-----------------
201
202    * changed open config to fp = sanei_config_open(UMAX_CONFIG_FILE)
203
204    * changed all set OPT...BIND commands, endless-loop happened in sane-0.67
205      =>ane-0.67-umax-fix.diff.gz
206      after that patch changed same for ten_bit_mode
207
208    * changed some strdup() to (SANE_Char *)strdup()
209
210    * added UMAX Astra 610S as supported scanner. it has the same problems
211      in color-mode like the Astra 600S.
212
213
214sane-0.68 -> 0.69
215-----------------
216
217    * changed maximum y-resolution from optical_res to y_res
218
219    * changed sane_cancel (waitpid) like suggested by David Mosberger
220
221    * added #include <lalloca.h> for AIX-support
222
223    * replaced call to umax_wait_scanner with umax_do_calibration
224      after umax_start_scan in umax.c
225
226    * moved sense_handler to umax-scsi.c
227
228    * removed call to umax_get_data_buffer_status in reader_process
229
230    * added umax_send_shading_data, umax_send_gain_data
231      and   umax_read_shading_data, umax_read_gain_data
232
233    * changed name: umax_read_data_block -> umax_read_image_data
234
235    * changed length offset in do_inquiry from 5 to 4
236      and changed set_inquiry_length-offset from 5 to 4
237
238    * added calib_lines to structure US and added it to
239      set_window - command in umax-scsi.c
240
241    * changed in umax-scsi.c routine identify_scanner:
242      vendor and product is tested for each model instead of
243      vendor=="UMAX " and only model tested!
244      Because of that the format of scanner_str has changed
245      from product,product,...
246      to vendor,product, vendor,product,...
247
248    * added support for Linotype Hell Jade (LinoHell Office)
249
250    * added empty routine umax_do_calibration in umax-scsi.c, it shall be called
251      after umax_start_scan!
252
253    * replaced all umax_*scsi with sanei_*scsi, so the umax-driver
254      now directly calls the sanei_scsi-commands.
255
256    * moved sense-handler from umax.c to umax-scsi.c
257      and added detection for driver-calibration-request
258      sense_handler got a new parameter (void *arg).
259
260    * changed wait_scanner for SUN: usleep(0.1sec) -> sleep(1s)
261      this is only a bad bugfix that will be replaced one day!
262
263
264sane-0.69 -> 0.70
265-----------------
266
267    * moved reader_process to umax-scsi.c
268
269    * changed include <sane/config.h> for _AIX and non-_AIX
270
271    * added missing "," in definition line for UMAX Astra 1200S in umax-scanner.h
272
273    * added in umax-scsi.c in function identify_scanner a test that only
274      warnings and errors are printed if vendor="UMAX "
275
276    * added routine umax_order_line_to_pixel and umax_order_line
277
278    * moved reader_process from umax.c to umax-scsi.c
279      and added routine for color ordering.
280
281    * reset length offset in do_inquiry from 4 to 5
282      and set_inquiry_length-offset from 4 to 5
283      because umax-S6E didn't work with it!
284
285    * corrected error in identify-scanner in vendor-test
286
287    * changed end-detection of list of known scanners from
288      #define known_scanners 15 to last item "END_OF_LIST"
289
290    * added routine that corrects wrong inquiry-data from
291      Astra 600S and Astra 610S
292
293    * added test and selection for do_color_ordering in check_values
294
295    * changed __sun-code in umax_wait_scanner because the scsi-driver
296      answers with IOERROR instead of DEVICE_BUSY
297      (this is only a bugfix for a little time)
298
299
300sane-0.70/0.71 -> 0.72
301----------------------
302
303    * inactivated selection of quality calibration (until it is supported
304      by the driver)
305
306    * changed maximum x_resolution from optical_res to max_x_res
307
308    * reordered DBG-levels and defined them by symbols
309
310    * changed all sizes that used type int to type size_t
311
312    * changed wait_scanner for testing !sane_status_good,
313      because testing sane_status_device_busy does not work with
314      all scsi-drivers!
315
316    * changed ccd-order in umax_order_line, the order is now
317      specified by 9 values (before by 3 values), changed
318      order tables and added a table for Astra 600S and
319      another table for Astra 610S
320
321    * changed ccd-order, now based on optical_resolution
322      and added new routine umax_forget_line
323
324    * added inquiry-block for UC1200S: NOT TESTED!
325
326    * added inquiry-block for UC1260: NOT TESTED!
327
328    * included print_inquiry into umax-scsi.c
329
330    * added correction-routine for x_res > 600 dpi, phys_width is
331      corrected in umax-scsi.c: bound_scanarea
332
333    * changed umax-scsi: sense_handler:
334      changed test for valid sense-block
335      added test for button pressed
336
337    * added output of sense-code and error-code in sense_handler
338
339    * added options to select calibratin and scan exposure times
340
341    * added options to select calibratin and scan lamp density
342
343    * moved all option-names/titles/descr. to saneopts.h
344
345    * combined bind for highlight, shadow, analog-gamma and new
346      exposure time functions to rgb-bind
347
348    * added set_WD_line_arrangement(buffer_r, WD_line_arrengement_by_driver);
349      if driver is doing color-ordering from line to pixel
350
351    * included umax-scsi.c into umax.c
352
353    * included umax-struct.h into umax.h
354
355    * included US-structure into Umax_Device-structure
356
357    * added free(scanner->device->buffer) to sane_close
358
359    * added free(scanner->device->pixelbuffer) to sane_cancel
360
361    * added free(scanner->device->pixelbuffer) to do_cancel
362
363    * added SANE_UNIT_MICROSECOND to exposure-times
364
365    * added output of status-string in wait_scanner
366
367    * moved some options for Scan-mode-block to Enhancemant-block
368
369sane-0.72 -> 0.73
370-----------------
371
372    * disabled RGB_BIND if no such value is available
373
374    * included readproc
375
376    * included bound_scanarea into check_values, problem
377      with wrong scanarea for UTA should be solved now!
378
379    * all scanmode- and scansource-strings are #DEFINEd now
380
381sane-0.73 -> 0.74
382-----------------
383
384    * added support for 12/36 bits per pixel (for Astra 1220S)
385
386    * added support for Astra 1220S
387
388    * included inquiry data for UG80 (Escom Image Scanner 256)
389
390    * moved WAIT_SCANNER from umax_read_data to umax_read_image_data,
391      umax_read_shading_data now works!
392
393    * added umax_start_scan at the end of calibration by driver,
394      the scanner does not hang any more if quality calibration is enabled!
395      There must'nt be a "wait_scanner" in calibration by driver routine!!!
396
397    * added usage of driver internal values for calibration by driver if
398      the scanner does not give back the information about the shading data:
399      width = dev->width * dev->inquiry_optical_res ( * 3 in RGB-mode )
400
401    * added 2 calibration-routines:
402      - use last line for shading data
403      - calculate average value for shading data
404      - prepared routine for complex calculation
405
406    * added gamma download curve format type 0 and 1
407
408    * defined gamma DCF = 1 for UC1200S and UC1260
409
410    * defined gamma DCF = 0 for UC1200SE and ARCUS PLUS
411
412    * changed sense_handler: if bad sense_key => DEVICE_BUSY
413      problem with black area at top of scan for some SCSI-adapters is solved now
414
415    * changed wait_scanner: waits 0.5 sec now
416
417    * disabled quality calibration in preview mode
418
419    * made upper_left_x and upper_left_y even values
420      it looks like even resolutions > 600 dpi work now!
421      (not ok!!!)
422
423    * added sigterm_handler for umax_reader_process
424      changed sane_canel, do_canel and do_eof(=close_pipe),
425      cancel now works!
426
427    * changed trim_rowbufsize that made problems with SGI,
428      there has been an overflow because of big buffersize
429
430
431sane-0.74 -> 1.00 (build 0)
432---------------------------
433
434    * added output of umax-backend-version in sane_init
435
436    * added support for Linotype Hell Jade2 (Vobis ScanBoostar Premium)
437      SCSI-ID "LinoHell","Office2"
438
439    * changed base of calculation of scanwidth and scanlegth from
440      pixel to resolutionbase (1/300, 1/600 or 1/1200 inch)
441      problem with wrong pixelcount at higher resolutions should be
442      solved now
443
444    * changed selection for calibration mode
445
446    * changed calculation for width in pixels for lineart and halftone mode
447
448    * added inquiry for UMAX UC1200SE
449
450    * corrected 12/36-bit-mode in send_gamma_data and array in umax.h
451
452    * added support for Gemini D-16
453
454
455sane-1.00-build-0 -> build-1
456-----------------------------
457
458    * added support for Nikon AX-210
459
460    * changed all grey to gray (David Mosberger asked for it)
461
462    * changed bug in gray gamma table conversion
463
464    * added Linotype Hell Saphir 2 as supported scanner
465
466    * changed umax-uc1260.h
467
468    * added "- 1" in umax_order_line:
469      else if (dev->pixelline_opt_res < length * 3 - CCD_distance * 3 - 1)
470      else if (dev->pixelline_opt_res < length * 3 - CCD_distance - 1)
471
472    * changed all allloca() to malloc() + free()
473
474    * removed options speed and smear, I got the info from umax that
475      these values should never be changed!
476
477    * removed ten_bit_mode and twelve_bit_mode options, added option bit_depth
478      and added support for 9, 14 and 16 bpp
479
480    * replaced u10_range and u12_range by dynamically set scanner.output_range
481
482    * removed static allocation for gamma_table[0..3], this is done dynamically
483      in sane_open and freed in sane_close now.
484
485    * added an empty string to the end of scan_mode_list and source_list
486
487build-1 -> build-2
488------------------
489
490   * added "*info |= SANE_INFO_RELOAD_PARAMS;" in control_option set bit_depth
491
492   * added inverted calibration modes for Astra 6X0S scanners.
493
494
495build-2 -> build-3 (sane-1.0.1)
496-------------------------------
497
498   * inversion of calibration is automatically set for Astra 6X0S and Vista S6E
499
500   * check for machine endianness is done only at backend start now!
501
502   * made umax_do request_sense static
503
504
505build-3 -> build-4
506------------------
507
508   * Added option name and parameter in debug output in option set value
509
510   * Added option name in debug output in option get value
511
512   * Changed calculation of pixels/line and lines, may be the problem
513     with shaered images at resolutions>600 dpi is solved now
514     later Remark: This error does still occur, but not so often!
515
516
517build-4 -> build-5
518------------------
519
520   * Changed calculation in umax_order_line, color images should
521     have the correct length now for Astra 6X0S and Vista S6E
522
523   * Added DOR resolutions and area
524
525
526build-5 -> build-6
527------------------
528
529   * Bits for ADF and UTA in driver internal inquiry block (old UMAX scanners)
530     are set dynamically now.
531
532   * Added Genius ColorPage-HR5 (vendor KYE) (=Astra 1200S) as supported scanner
533
534   * Added Astra 2400S as experimentally supported scanner
535
536   * Added pauses for Astra 2400S
537
538   * Removed reposition_scanner at start of scan, Astra 2400S does not work with it!
539
540   * changed debug output in correct_inquiry
541
542   * for UMAX S12 the driver does not wait any more until scanner is repositioned
543     this is experimental, it may work with other scanners too!
544
545
546build-6 -> build-7
547------------------
548
549   * changed some int -> unsigned int (resolution and scanwidth etc)
550
551   * calculate_pixel is called with right values in UTA mode now.
552
553   * if DOR resolution is not defined and DOR is available
554     the DOR resolution is set to double standard resolution
555
556   * removed wait_scanner after set_window-command
557
558   * added Mirage D16-L as supported scanner
559
560   * Astra 2400S works stable now
561
562
563build-7 -> build-8
564------------------
565
566    * for Mirage D-16L the driver does not wait any more until scanner is repositioned
567      this is experimental, it may work with other scanners too!
568
569    * Mirage D-16L does not give back information for calibration by driver,
570      added new modus that "guesses" the values for Mirage D-16L.
571
572    * Added read_shading_data to 16 bit calibration routine and made a routine for
573      averaging with low byte first and one for high byte first
574
575    * Byte order (HBT) is set always (also in lineart and halftone)
576      because it is used in driver calibration
577
578    * Added relevant_*_res the is set to normal or double resolution values
579
580    * Added test if scsi buffer is large enough for one shading line
581
582    * selection for Calibration mode, Shading type and Speed/Smear
583      are only compiled in if define is set in umax.h
584
585
586build-8 -> build-9
587------------------
588
589    * slow speed options is preset for Vista T-630
590
591    * speed/smear can be set now (forgotten #ifdef)
592
593    * selection of exposure times now is only available if it is enabeld
594
595    * gamma table is disabled in lineart and halftone modes
596
597    * if image is transmitted completely sane_read (close_pipe)
598      returns with SANE_STATUS_GOOD in adf mode and in any other case
599      with SANE_STATUS_EOF
600
601
602build-9 -> build-10
603-------------------
604
605    * removed change about sane_read returns SANE_STATUS_GOOD in ADF mode
606
607    * transformed all gif files into jpeg format because of all the
608      trouble about the gif licence. Will never use gif again!
609
610    * added correction for inquiry-ADF-bit for Astra 2400S
611
612    * added second test method to detect ADF error in sane_start:
613      inquiry block is read and cover open, jammed and no paper is tested
614
615
616build-10 -> build-11
617--------------------
618
619    * test for adf errors (sane_start) is now only done if adf is selected
620
621
622build-11 -> build-12
623--------------------
624
625    * moved adf error tests from sane_start to umax_start_scan
626
627    * sane_control_option: printing option name is set to "(none)" if pointer is NULL
628
629    * added error message after each call of sanei_scsi_cmd
630
631    * changed manipulation of ADF bit for Astra 2400S in umax_correct_inquiry
632      from dev->adf to set_inquiry_sc_adf()
633
634
635build-12 -> build-13
636--------------------
637
638    * changed inquiry data of UC1200SE
639
640    * added set_inquiry_CBHS(50) in correct_inquiry for UC1200SE
641
642    * correct_inquiry is called for scanners with short inquiry now
643
644    * dev->inquiry_max_calib_lines is preset to 66,
645      problem with Vist S6E V1.6 should be solved this way.
646
647    * inquiry block parameters > 0x93 are only used if block is long enough
648
649
650build-13 -> build-14
651--------------------
652
653    * changed inquiry_cbhs_[min,max] -> inquiry_[contrast, brightness, threshold,
654      highlight, shadow]_[min,max] and set correct values for CBHS_255 and CBHS_50
655
656    * changed cbhs_str[CBHS_50] from "78-178" to "0-50"
657
658    * changed umax-uc1200se.h inquiry byte 0x64 bit 5 to 0 (gamma download format != 2)
659      and wdb len from 0x30 to 0x31
660
661    * disabled halftone pattern download, and halftone dimension selection - not ready
662      preselected is a 8x8 built in halftone pattern
663
664    * removed set_inquiry_CBHS(50) from correct_inquiry for UC1200SE
665
666    * added "Astra 2200 " as supported scanner
667
668    * added cast from (void *) to (unsigned char*) in umax_send_gamma_data
669
670
671build-14 -> build-15
672--------------------
673
674    * add "(unsigned)" to option number test in sane_control_option
675
676    * for Astra 1200 the driver does not wait any more until scanner is repositioned
677      this is experimental, it may work with other scanners too!
678
679
680build-15 -> build-16
681--------------------
682
683    * OPT_SOURCE: removed change of width/height and "*info |= SANE_INFO_RELOAD_PARAMS;"
684      from get_value to set_value and added "*info |= SANE_INFO_RELOAD_OPTIONS;"
685
686
687build-16 -> build-17
688--------------------
689
690    * changed calibration mode from SHADING_TYPE_AVERAGE_INVERT to SHADING_TYPE_AVERAGE
691      for UMAX S-6E, UMAX S-6EG and Vista-S6E
692
693    * changed several int -> unsigned int
694
695    * added support for sanei_scsi_open_extended and variable scsi buffer size
696
697
698build-17 -> build-18 (sane-1.0.2)
699---------------------------------
700
701    * some cosmetic changes of the form
702        if (..) {...}
703      =>
704        if (..)
705        {
706          ...
707        }
708
709    * removed unnecessary SHADING_TYPE-handling routines for UMAX S-6E, UMAX S-6EG and Vista-S6E
710
711    * scsi buffer is only reallocated when size has changed
712
713
714build-18 -> build-19
715--------------------
716
717    * added UMAX PowerLook III as supported scanner
718
719    * added EPSON Perfection600 as supported scanner (is a Astra 1200S)
720
721    * type of option 0 (Option numbers) is set to SANE_TYPE_INT now (undefined before)
722
723    * removed bug that mixed 12 bit and 14/16 bit gamma table when 14 or 16 bit are supported
724      and changed value range of grey custom gamma table:
725      - maximum output value is 255 for 8 bits/pixel
726      - maximum output value is 65535 for 9-16 bits/pixel
727      the custom gamma table does work now with 9-16 bits/pixel output mode
728
729    * added routine that reverses bit order in lineart mode when scanner sends LSB first in lineart
730
731
732build-19 -> build-20
733--------------------
734
735    * added variable calibration_width_offset, Mirage D-16L offset of 308 is defined there
736      and added offset of 28 for PowerLook III
737
738    * umax_do_calibration: guessed calibration data values use 2 bytes/color if scanner
739      supports gamma input bit depth supports 2 bytes/color
740
741    * calibration by driver now does work for PowerLook III
742
743    * added function umax_set_rgb_bind() that sets the sensitivity of some options
744      that make available different settings for RGB. This function now is called
745      when scanmode is selected.
746
747    * changed some int to unsigned int
748
749    * made dev->pause_after_reposition = -1; as default, so as default sane-umax does not wait
750      any more while the scanhead is moving back - this may break the support of some scanners
751      so it may have to be changed (dev->pause_after_reposition = 0;) for some scanners.
752      reported to work for:
753      - Supervista S12
754      - PowerLook III
755      - Astra 2200
756
757
758build-20 -> build-21 (sane-1.0.3)
759---------------------------------
760
761    * Added Linotype "JADE" as supported scanner
762
763    * Removed bug in sane_close that caused segfault when
764      sane_close was called twice with the same scanner handle
765
766build-21 -> build-22
767--------------------
768
769    * replaced fgets() by sanei_config_read()
770
771    * added command queueing for scsi read commands
772      - removed WAIT_SCANNER scsi command call after read command
773      - the additional buffers are allocated in the reader process
774      - the number of buffers can be defined in umax.conf
775        with option scsi-maxqueue [1..8] default:2
776      (did some tests with Supervista S12 and PowerLook III
777       on the same scsi controller (ncr53c810):
778       command queueing works, it is possible to start
779       both scanners at the same time. The scanner with the
780       higher scsi-ID (=priority) does scan without stops,
781       the other scanner has to wait long time between the
782       scsi-read commands, it also is possible to give
783       both scanners different scsi command queueing depth).
784
785    * prepared replacement of pipe by sanei_ipc_* routines
786
787    * added routines umax_get_lamp_status and umax_set_lamp_status
788
789    * updated inquiry output (new bits from powerlook scsi protocol 1.0 X101)
790
791    * added new (powerlook scsi protocol 1.0 X101) window descriptor block entries to umax-scsidef.h
792
793    * added button protocol (3 buttons, from powerlook scsi protocol 1.0 X101)
794
795    * added button "lamp off" to turn off scanner lamp
796      (this option may be remoeved again in later version, may be
797       it will be replaced by an autmatic lamp turn off function)
798
799    * added options to umax.conf
800      lamp-off-at-exit [01] default:0
801      lamp-off-time [10..720] (in minutes) default:30
802
803    * if  lamp_off_at_exit == 1 and lamp_control_available == 1
804      the scanner lamp is turned off in sane_close
805
806    * renamed umax-scanner.h and umax-"scannername".h to umax*.c
807      because these files create data code
808
809
810build-22 -> build-23
811--------------------
812
813    * scsi commands set/get lamp control are send with a command length of
814      10 bytes instead of 6 bytes and control bit #7 is in byte 0x03
815      and not in byte 0x04 (it is described incorrect in the umax doc)
816
817    * enabled lamp control for Astra 2200
818
819    * removed umax.conf options lamp-off-at-exit and lamp-off-time
820
821    * added frontend option lamp-off-at-exit
822
823    * added frontend option lamp-on
824
825    * forcing calibration_bytespp = 1 for Astra 2200 - quality calibration does work now
826
827    * for Astra 2200 selection for different x/y resolutions is disabled
828
829
830build-23 -> build-24 (sane-1.0.4)
831--------------------
832
833    * forcing calibration_bytespp = 1 for Astra 2100S
834
835    * Added Astra 2100S as supported scanner
836
837    * enabled lamp control for Astra 2100S
838
839    * Added warning in sane_control_option if option could not be set
840
841
842build-24 -> build-25
843--------------------
844
845   * dev->lamp_control_available is preset to 0
846
847   * dev is erased (0) after it is allocated
848
849   * added special options for PowerLook 3000:
850     - calibration is done for each CCD pixel
851     - calibration_bytespp is set to 1
852     the scanner still is not listed as supported scanner because
853     the changes are not tested
854
855   * added options that are read from umax.conf:
856
857     - execute-request-sense:
858       values: 0=disabled, 1=enabled, default=0
859       If set to 1 umax_do_request_sense is called in umax_do_calibration.
860       This can hang the system (but has been enabled until this version)
861
862     - scsi-buffer-size-min, scsi-buffer-size-max:
863       values: 4096-1048576, default min=65536, max=131072
864
865     - scan-lines, preview-lines:
866       values: 1-65535, default scan-lines=40, preview-lines=10
867       define the maximum number of lines that are scanned into one buffer
868
869     - force-preview-bit-rgb:
870       values: 0=disabled, 1=enabled, default=0
871       set preview bit in rgb real scan
872
873     - slow-speed, care-about-smearing:
874       values: -1=auto, 0=disabled, 1=enabled, default=-1
875       dangerous options, needed for some scanners
876
877     - calibration-full-ccd:
878       values: -1=auto, 0=disabled, 1=enabled, default=-1
879       do calibration for each pixel of ccd instead of selected image
880
881     - calibration-width-offset:
882       values: -1=disabled, >=0 set value
883       add an offset width to the calculated with for image/ccd
884
885     - calibration-bytes-pixel:
886       values: -1=disabled, 0=not set, 1=1 byte/pixel, 2=x bytes/pixel
887       use # bytes per pixel for calibration
888
889     - invert-shading-data:
890       values: -1=auto, 0=disabled, 1=enabled, default=-1
891       invert shading data before sending it back to the scanner
892
893     - lamp-control-available:
894       values: 0=automatically set by driver - if known, 1=available, default=0
895
896   * updated html-documentation
897
898   * updated sane-umax.man
899
900   * added pre focus options (PowerLook 3000):
901     - FP  - fix focus position
902     - FDC - lens calibration in doc position
903     - PF  - disable pre focus
904     - LCL - use 0.6/0.0mm holder focus position
905
906   * added #define SANE_I18N(text) text to umax.c. This is to mark the backend
907     specific texts that shall be translated by the frontend
908
909
910build-25 -> build-26
911--------------------
912
913   * added umax.conf option handle-bad-sense-error #
914
915   * added Mirage II as supported scanner
916
917   * added routine umax_set_max_geometry that defines available surface
918     and resolution in dependence of scansource and double optical resolution
919     (before this bugfix the change of dor mode overwrote the settings of
920      scansource and vice versa)
921
922   * added ESCORT Galleria 600S as supported scanner, is an Astra 600S
923
924   * removed if (config_line[len - 1] == '\n')... while reading config file
925
926   * changed some static unsigned int to static int
927
928   * sane_exit does free devlist
929
930   * added some options for Powerlook 3000 - still is not completely supported
931
932
933build-26 -> build-27
934--------------------
935
936   * added Linotype Saphir4 as supported scanner (is a Powerlook III)
937
938   * increased length of vendor, product and version by 1 to make sure the
939     string always ends with '\0'
940
941   * changed default minimum scsi buffer size from 64KB to 32 KB
942
943
944build-27 -> build-28
945--------------------
946
947   * removed "#include <assert.h>" from umax.c, assert() is never called
948
949   * added UMAX Powerlook 3000 as supported scanner
950
951   * bugfix for 3 pass scanning:
952     reposition_scanner is called in sane_start for 2nd and 3rd pass of 3 pass scan
953
954
955   * bugfix for UTA and DOR geometry offsets:
956     - added inquiry_uta_x_off and inquiry_uta_y_off
957     - geometry ranges are defined from xoff..xoff+dx, yoff..yoff+dx now
958     - check_values also does test for this range
959     - removed dev->maxwidth and dev->maxlength, values are calculated in place now
960
961   * bugfix for DOR:
962     - bottom-right edge keeps in position if possible when DOR is switched on
963
964   * bugfix for Astra 600S and 610S color mode:
965     - scale_y is set to 0.5 if y_resolutions is smaller than optical_res/2
966     this does fix the color scan problems for Astra 610S.
967
968   * added Heidelberg Linoscan 1400 "HDM LS4H1S" as supported scanner
969
970
971build-28 -> build-29
972--------------------
973
974   * removed bug in umax_set_max_geomentry: now left y keeps in position when possible
975
976   * rgb bind keeps unchanged when scanmode != color (only gray selection active in this case)
977
978   * in function static int umax_give_scanner(Umax_Device *dev) moved umax_reposition_scanner(dev);
979     to the end of the function
980
981   * set calibration area for astra 2200 to full ccd and calibration_bytespp to 2
982
983   * UC840 does wait in reposition_scanner until scan head stops moving
984
985   * set minimum resolution to 5 (was 1 before what could make problems)
986
987
988build-29 -> build-30
989--------------------
990
991  * added EDGE KTX-9600US as supported scanner
992
993  * Changing scansource does not change lower left selection edge
994    if not necessary
995
996
997build-30 -> build-31 (sane-1.0.6)
998---------------------------------
999
1000  * sane-umax.man uses @LIBDIR@ and @CONFIGFIR@
1001
1002  * changed automatic calibration_width_offset marker from -1 to -99999
1003
1004  * changed
1005      dev->calibration_area to 1 and
1006      calibration_width_offset to -1 and
1007      inquiry_max_calibration_data_lines to 66
1008   for UMAX Supervista S-12, LinoHell Office and LinHell JADE
1009
1010
1011build-31 -> build-32 (sane-1.0.7)
1012---------------------------------
1013
1014  * added Nikon AX-110 as supported scanner (Vista S6E)
1015
1016  * added umax.conf option "gamma-lsb-padded" with options:
1017    -1 = auto
1018    0 = inactive (msb padded)
1019    1 = active (lsb padded)
1020    activated for astra 1220s, internal 12 bit gamma correction does work now
1021
1022
1023build-32 -> build-33
1024--------------------
1025
1026  * added USB support for Astra 2200
1027    thanks to Frank Zago <fzago@greshamstorage.com>
1028    for creating umax-usb.c and suggesting several changes to umax.c
1029
1030  * added umax.conf option "connection-type", values: 1=scsi, 2=usb
1031
1032  * added umax.conf device selection "usb 0x1606 0x0230" (usb vendor_id product_id)
1033
1034  * removed #ifdef HAVE_SANEI_IPC parts (SANEI_IPC was never defined)
1035
1036
1037build-33 -> build-34 (sane-backends-1.0.8)
1038--------------------
1039
1040  * removed bug in reader_process / umax_queue_read_image_data:
1041    - the integer value that keeps the length information is kept valid
1042      as long a queued scsi command is still running now
1043    - when the scsi command returns with less data than requested
1044      then the routine does handle this correct now
1045      (before the routine handled this as if the requested amount of
1046       data was returned)
1047
1048  * backend waits until scanhead has repositioned after scan for UMAX UC1260
1049
1050  * y_dpi quanitsation is set to 5 (same as x_dpi quantisation - was 1)
1051
1052
1053build-34 -> build-35
1054--------------------
1055
1056  * changed ID string "LS4H1S  " to "LS4H1S " (remove one space)
1057
1058  * activated lamp control for Astra 1220S V1.5
1059
1060
1061build-35 -> build-36
1062--------------------
1063
1064  * added PowerLook 2100XL as supported scanner
1065
1066  * settings for PowerLook 2100XL:
1067    calibration_width_offest = 52
1068    (calibration_bytespp = 2, default)
1069    (calibration area = image, default)
1070
1071  * force_quality_calibration defined for PowerLook 2100XL:
1072    (normal calibration mode expects different calibration_width_offsets
1073     for PowerLook 2100XL, so it is not possible to calculate the correct
1074     number of calibration pixels in normal calibration mode)
1075    - disable quality calibration option for frontend
1076    - always set quality calibration bit when scanning
1077
1078  * changes for exposure times:
1079    - Inquiry does print correct maximum value now
1080    - changed variable type from SANE_FIXED to SANE_INT
1081    - exposure times setting for colormode does work correct now
1082    - as default there is only one common setting for exposure times in rgb mode,
1083      added umax.conf option exposure-time-rgb-bind to enable different settings
1084      for each color
1085    - added option select-calibration-exposure-time, disabled by default.
1086      if disabled then the calibration expousre times are the same as the scan exposure times
1087
1088  * added UMAX PS-2400X as supported device
1089
1090  * added batch scanning support:
1091    Options:
1092    --batch-scan-start:		calibration, scan, scanhead is not moved into home position
1093    --batch-scan-loop:		no calibration, scan, scanhead is not moved into home position
1094    --batch-scan-end:		no calibration, scan, scanhead is moved into home position
1095    --batch-next-tl-y:		defines the y start position of the bext batch scan
1096
1097    - calibration for batch scan needs a different offset and always is done for full ccd.
1098      PowerLook 2100XL: calibration_width_offset_batch = 1052
1099      Powerlook III:	calibration_width_offset_batch = 828
1100
1101
1102build-36 -> build-37
1103--------------------
1104
1105  * added Linotype Hell SAPHIR3 as supported scanner
1106
1107  * if batch-next-tl-y is not set then the backend uses br_y
1108
1109
1110build-37 -> build-38 (sane-backends-1.0.9)
1111--------------------
1112
1113  * added Power Look 2000 as supported scanner
1114
1115
1116build-38 -> build-39 (sane-backends-1.0.10)
1117--------------------
1118
1119  * Power Look 2000: corrected wrong calibration-width-offset from 52 to 22
1120    and added calibration-width-offset-batch to 24
1121
1122  * initialized some global pointers and num_devices in sane_init
1123
1124  * replaced fork() by thread for OS2
1125
1126build-39 -> build-40 (sane-backends-1.0.12)
1127--------------------
1128
1129  * UC630: dev->pause_after_reposition = 0
1130
1131
1132build-40 -> build-41 (sane-backends-1.0.13)
1133--------------------
1134
1135  * Astra 2200 SU via USB connection: quality calibration is reset and not selectable
1136
1137
1138build-41 -> build-42
1139--------------------
1140
1141  * replaced fork() routines by sanei_thread routines
1142
1143  * added call sanei_scsi_req_flush_all(); to do_cancel - in threaded case this is not done when reader_process is canceled
1144
1145  * in reader_process: marked freed scsi buffers as freed(NULL). This is necessary when reader_process is run as thread!
1146
1147  * Backend is compatible to Mac OS-X now.
1148
1149
1150build-42 -> build-43
1151--------------------
1152
1153  * DOR mode does test for non negative upper_left_x values, set to 0 if negative
1154
1155
1156build-43 -> build-44
1157--------------------
1158
1159  * the sense_handler stores the sense data in buffer[0] when valid sense data is available
1160
1161  * do_calibration:
1162	- corrected bug in reading calibration width from scanner (added /bytespp)
1163	- when additional request sense is not called then the buffer is not erased,
1164	  the sense data from the sense_handler is used
1165	- when additional request sense is called then the buffer is erased at first
1166
1167build-44 -> build-45
1168--------------------
1169
1170   * added default options for Linotype Opal2
1171   * changed bug in highlight-blue function (using green value)
1172