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