sane-project-backends/backend/umax.CHANGES

766 wiersze
24 KiB
Plaintext

CHANGES FOR UMAX BACKEND FOR SANE
---------------------------------
umax -> sane-0.6:
-----------------
* umax-sane-backend created:
- umax.c splitted in:
umax-cli.c, umax-scsi.c, umax-driver.c, umax-text.c
- umax.h splitted in:
umax-scanner.h, umax-scsi.h, umax-scsidef.h, umax-struct.h
- outputs done by DBG(level,msg,args...) defined in debug.h
- scsi-calls changed to sane-format (of sane-0.57)
- created umax.c and umax.h for sane-backend
* changed search-path for scsi.h and sg.h, now needs /usr/include/scsi
* removed mistake in bound-function
* added "Vista S-6E" as supported
* added PowerLook-II (PL-II) as supported
* added Astra 600S as supported
sane-0.6 / 0.61 / 0.62 -> 0.63
------------------------------
* added exception to gpl-licence:
> 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.
* split resolution in x-res and y-res, flag bind-resolution
* only sane_... functions will be exported from umax-backend,
all umax_... functions are made static
* removed umax-emergency-routine for SANE
* made program-flow (esp. with do_canel) SANE-specific
* fixed missing 3-pass parts
* made scanmodes, sources, analog gamma, gamma download, negative,
quality calibration, highlight, shadow only selectable if they are
available
* calibration-mode selectable in advanced options if available
* warmup selectable if available
* changed umax-scsi.c like described from Gordon Matzigkeit
in his diff/patch-file from 21.06.97 so that the umax-backend
should compile on non-linux-systems now - thanks!
* split highlight and shadow in R, G and B for color-mode.
* reset adf and uta flag when not used (in sane_start)
* added possibilty to change calibration-mode if available
* added send_halftone_pattern to umax-scsi.c
* changed umax-scsi.c like described from Gordon Matzigkeit
in his diff/patch-file from 21.06.97 so that the umax-backend
should compile on non-linux-systems now - thanks
* added support for each color (R,G,B) for highlight and shadow
* added "Astra 1200S" and "UC840" as supported
* added bad bugfix for preview-problem with S6E
(in umax-scsi.c function start_scan)
* moved resolution-check from check_values to bound_scanarea,
now no floatingpoint-exception will occur if no resolution is given!
* changed range-check for width and height
* removed bug in set_window for three-pass-rgb-mode
-selected wrong buffer for some green and blue options
-scanmode now is greyscale instead of rgb
* changed start_scan(us) to better use with wid-list
and added missing 3 wid-bytes in scan.cmd
* removed parameter color in three_pass_function_headers,
the color ist taken from us->three_pass_color now.
sane-0.63/0.64/0.65 -> 0.66
---------------------------
* changed gamma-data-upload for 3-pass-color-scan
* corrected wrong calculation for highlight and shadow
selection for rgb-values
* changed gamma data to use 8 bit (256 bytes) or 10 bit (1024 bytes)
* included 10/30 bits per pixel mode
* changed bug in sane_exit (free()) that sometimes made a
segmentation-fault
* made patches runtime-selectable
* changed set_window_command to support 30 bits per pixel
* changed send_gamma_data to support three_pass_gamma and 10/30 bpp
* changed row_len in umax_bound_scanarea to 10/30 bit mode
* added halftone-support for ug630, uc630 and uc840,
but I don't know if all values are ok!
* changed CBHS-50-range to 78-178 (from 103-153)
* changed rangecheck for highlight and shadow
* fixed get_cbhs_range-bug in umax-scsidef.h
* added ADF-inquiry-bits to umax-scsidef.h
* added color_line_arrangement_mode-inquiry-byte to umax-scsidef.h
* added CCD_line_distance-inquiry-byte to umax-scsidef.h
* added all most unused bits and bytes in inquiry to umax-scsidef.h
* made patches runtime-selectable
sane-0.66 -> 0.67
-----------------
* removed bug in sane_start: ADF and UTA flags have not been set correct
* removed bug in init_options: value range for 10 gamma-input-bits corrected
* made custom gamma available for lineart and halftone for nonlinear effects
* added Vista-T630 as supported scanner
* removed test_warmup in wait_scanner because adaptec 1542 has problems
with request_sense-command in test_warmup
it was only used for printing a message, so it was not important.
* if a scanner has a full inquiry-block but is not known to be supported,
the driver will print a warning and continue instead of aborting,
option --continue (on umax-cli) will suppress the warning!
* changed ugly definition
char gamma[x] -> char *gamma; gamma=alloca(x);
* removed bug (wrong length for 10 bit-gamma) in send_gamma_data
* changed all buffer-definitions to unsigned char and insterted
type conversions, so there are no more warnings because of
typemismatches.
* corrected bad definition of set_DCF2_gamma_output_bits
sane-0.67 -> 0.68
-----------------
* changed open config to fp = sanei_config_open(UMAX_CONFIG_FILE)
* changed all set OPT...BIND commands, endless-loop happend in sane-0.67
=>ane-0.67-umax-fix.diff.gz
after that patch changed same for ten_bit_mode
* changed some strdup() to (SANE_Char *)strdup()
* added UMAX Astra 610S as supported scanner. it has the same problems
in color-mode like the Astra 600S.
sane-0.68 -> 0.69
-----------------
* changed maximum y-resolution from optical_res to y_res
* changed sane_cancel (waitpid) like suggested by David Mosberger
* added #include <lalloca.h> for AIX-support
* replaced call to umax_wait_scanner with umax_do_calibration
after umax_start_scan in umax.c
* moved sense_handler to umax-scsi.c
* removed call to umax_get_data_buffer_status in reader_process
* added umax_send_shading_data, umax_send_gain_data
and umax_read_shading_data, umax_read_gain_data
* changed name: umax_read_data_block -> umax_read_image_data
* changed length offest in do_inquiry from 5 to 4
and changed set_inquiry_length-offset from 5 to 4
* added calib_lines to structure US and added it to
set_window - command in umax-scsi.c
* changed in umax-scsi.c routine identify_scanner:
vendor and product is tested for each model instead of
vendor=="UMAX " and only model tested!
Because of that the format of scanner_str has changed
from product,product,...
to vendor,product, vendor,product,...
* added support for Linotype Hell Jade (LinoHell Office)
* added empty routine umax_do_calibration in umax-scsi.c, it shall be called
after umax_start_scan!
* replaced all umax_*scsi with sanei_*scsi, so the umax-driver
now directly calls the sanei_scsi-commands.
* moved sense-handler from umax.c to umax-scsi.c
and added detection for driver-calibration-request
sense_handler got a new parameter (void *arg).
* changed wait_scanner for SUN: usleep(0.1sec) -> sleep(1s)
this is only a bad bugfix that will be replaced one day!
sane-0.69 -> 0.70
-----------------
* moved reader_process to umax-scsi.c
* changed include <sane/config.h> for _AIX and non-_AIX
* added missing "," in definition line for UMAX Astra 1200S in umax-scanner.h
* added in umax-scsi.c in function identify_scanner a test that only
warnings and errors are printed if vendor="UMAX "
* added routine umax_order_line_to_pixel and umax_order_line
* moved reader_process from umax.c to umax-scsi.c
and added routine for color ordering.
* reset length offest in do_inquiry from 4 to 5
and set_inquiry_length-offset from 4 to 5
because umax-S6E didn't work with it!
* corrected error in identify-scanner in vendor-test
* changed end-detection of list of known scanners from
#define known_scanners 15 to last item "END_OF_LIST"
* added routine that corrects wrong inquiry-data from
Astra 600S and Astra 610S
* added test and selection for do_color_ordering in check_values
* changed __sun-code in umax_wait_scanner because the scsi-driver
answers with IOERROR instead of DEVICE_BUSY
(this is only a bugfix for a little time)
sane-0.70/0.71 -> 0.72
----------------------
* inactivated selection of quality calibration (until it is supported
by the driver)
* changed maximum x_resolution from optical_res to max_x_res
* reordered DBG-levels and defined them by symbols
* changed all sizes that used type int to type size_t
* changed wait_scanner for testing !sane_status_good,
because testing sane_status_device_busy does not work with
all scsi-drivers!
* changed ccd-order in umax_order_line, the order is now
specified by 9 values (before by 3 values), changed
order tables and added a table for Astra 600S and
another table for Astra 610S
* changed ccd-order, now based on optical_resolution
and added new routine umax_forget_line
* added inquiry-block for UC1200S: NOT TESTED!
* added inquiry-block for UC1260: NOT TESTED!
* included print_inquiry into umax-scsi.c
* added correction-routine for x_res > 600 dpi, phys_width is
corrected in umax-scsi.c: bound_scanarea
* changed umax-scsi: sense_handler:
changed test for valid sense-block
added test for button pressed
* added output of sense-code and error-code in sense_handler
* added options to select calibratin and scan exposure times
* added options to select calibratin and scan lamp density
* moved all option-names/titles/descr. to saneopts.h
* combined bind for highlight, shadow, analog-gamma and new
exposure time functions to rgb-bind
* added set_WD_line_arrangement(buffer_r, WD_line_arrengement_by_driver);
if driver is doing color-ordering from line to pixel
* included umax-scsi.c into umax.c
* included umax-struct.h into umax.h
* included US-structure into Umax_Device-structure
* added free(scanner->device->buffer) to sane_close
* added free(scanner->device->pixelbuffer) to sane_cancel
* added free(scanner->device->pixelbuffer) to do_cancel
* added SANE_UNIT_MICROSECOND to exposure-times
* added output of status-string in wait_scanner
* moved some options for Scan-mode-block to Enhancemant-block
sane-0.72 -> 0.73
-----------------
* disabled RGB_BIND if no such value is available
* included readproc
* included bound_scanarea into check_values, problem
with wrong scanarea for UTA should be solved now!
* all scanmode- and scansource-strings are #DEFINEd now
sane-0.73 -> 0.74
-----------------
* added support for 12/36 bits per pixel (for Astra 1220S)
* added support for Astra 1220S
* included inquiry data for UG80 (Escom Image Scanner 256)
* moved WAIT_SCANNER from umax_read_data to umax_read_image_data,
umax_read_shading_data now works!
* added umax_start_scan at the end of calibration by driver,
the scanner does not hang any more if quality calibration is enabled!
There must'nt be a "wait_scanner" in calibration by driver routine!!!
* added usage of driver internal values for calibration by driver if
the scanner does not give back the informations about the shading data:
width = dev->width * dev->inquiry_optical_res ( * 3 in RGB-mode )
* added 2 calibration-routines:
- use last line for shading data
- calculate average value for shading data
- prepared routine for complex calculation
* added gamma download curve format type 0 and 1
* defined gamma DCF = 1 for UC1200S and UC1260
* defined gamma DCF = 0 for UC1200SE and ARCUS PLUS
* changed sense_handler: if bad sense_key => DEVICE_BUSY
problem with black area at top of scan for some SCSI-adapters is solved now
* changed wait_scanner: waits 0.5 sec now
* disabled quality calibration in preview mode
* made upper_left_x and upper_left_y even values
it looks like even resolutions > 600 dpi work now!
(not ok!!!)
* added sigterm_handler for umax_reader_process
changed sane_canel, do_canel and do_eof(=close_pipe),
cancel now works!
* changed trim_rowbufsize that made problems with SGI,
there has been an overflow because of big buffersize
sane-0.74 -> 1.00 (build 0)
---------------------------
* added output of umax-backend-version in sane_init
* added support for Linotype Hell Jade2 (Vobis ScanBoostar Premium)
SCSI-ID "LinoHell","Office2"
* changed base of calculation of scanwidth and scanlegth from
pixel to resolutionbase (1/300, 1/600 or 1/1200 inch)
problem with wrong pixelcount at higher resolutions should be
solved now
* changed selection for calibration mode
* changed calculation for width in pixels for lineart and halftone mode
* added inquiry for UMAX UC1200SE
* corrected 12/36-bit-mode in send_gamma_data and array in umax.h
* added support for Gemini D-16
sane-1.00-build-0 -> build-1
-----------------------------
* added support for Nikon AX-210
* changed all grey to gray (David Mosberger asked for it)
* changed bug in gray gamma table conversion
* added Linotype Hell Saphir 2 as supported scanner
* changed umax-uc1260.h
* added "- 1" in umax_order_line:
else if (dev->pixelline_opt_res < length * 3 - CCD_distance * 3 - 1)
else if (dev->pixelline_opt_res < length * 3 - CCD_distance - 1)
* changed all allloca() to malloc() + free()
* removed options speed and smear, I got the info from umax that
these values should never be changed!
* removed ten_bit_mode and twelve_bit_mode options, added option bit_depth
and added support for 9, 14 and 16 bpp
* replaced u10_range and u12_range by dynamically set scanner.output_range
* removed static allocation for gamma_table[0..3], this is done dynamically
in sane_open and freed in sane_close now.
* added an empty string to the end of scan_mode_list and source_list
build-1 -> build-2
------------------
* added "*info |= SANE_INFO_RELOAD_PARAMS;" in control_option set bit_depth
* added inverted calibration modes for Astra 6X0S scanners.
build-2 -> build-3 (sane-1.0.1)
-------------------------------
* inversion of calibration is automatically set for Astra 6X0S and Vista S6E
* check for machine endianess is done only at backend start now!
* made umax_do request_sense static
build-3 -> build-4
------------------
* Added option name and parameter in debug output in option set value
* Added option name in debug output in option get value
* Changed calculation of pixels/line and lines, may be the problem
with shaered images at resolutions>600 dpi is solved now
later Remark: This error does still occur, but not so often!
build-4 -> build-5
------------------
* Changed calculation in umax_order_line, color images should
have the correct length now for Astra 6X0S and Vista S6E
* Added DOR resolutions and area
build-5 -> build-6
------------------
* Bits for ADF and UTA in driver internal inquiry block (old UMAX scanners)
are set dynamically now.
* Added Genius ColorPage-HR5 (vendor KYE) (=Astra 1200S) as supported scanner
* Added Astra 2400S as experimentally supported scanner
* Added pauses for Astra 2400S
* Removed reposition_scanner at start of scan, Astra 2400S does not work with it!
* changed debug output in correct_inquiry
* for UMAX S12 the driver does not wait any more until scanner is repositioned
this is experimental, it may work with other scanners too!
build-6 -> build-7
------------------
* changed some int -> unsigned int (resolution and scanwidth etc)
* calculate_pixel is called with right values in UTA mode now.
* if DOR resolution is not defined and DOR is available
the DOR resolution is set to double standard resolution
* removed wait_scanner after set_window-command
* added Mirage D16-L as supported scanner
* Astra 2400S works stable now
build-7 -> build-8
------------------
* for Mirage D-16L the driver does not wait any more until scanner is repositioned
this is experimental, it may work with other scanners too!
* Mirage D-16L does not give back informations for calibration by driver,
added new modus that "guesses" the values for Mirage D-16L.
* Added read_shading_data to 16 bit calibration routine and made a routine for
averaging with low byte first and one for high byte first
* Byte order (HBT) is set always (also in lineart and halftone)
because it is used in driver calibration
* Added relevant_*_res the is set to normal or double resolution values
* Added test if scsi buffer is large enough for one shading line
* selection for Calibration mode, Shading type and Speed/Smear
are only compiled in if define is set in umax.h
build-8 -> build-9
------------------
* slow speed options is preset for Vista T-630
* speed/smear can be set now (forgotten #ifdef)
* selection of exposure times now is only available if it is enabeld
* gamma table is disabled in lineart and halftone modes
* if image is transmitted completly sane_read (close_pipe)
returns with SANE_STATUS_GOOD in adf mode and in any other case
with SANE_STATUS_EOF
build-9 -> build-10
-------------------
* removed change about sane_read returns SANE_STATUS_GOOD in ADF mode
* transformed all gif files into jpeg format because of all the
trouble about the gif licence. Will never use gif again!
* added correction for inquiry-ADF-bit for Astra 2400S
* added second test method to detect ADF error in sane_start:
inquiry block is read and cover open, jammed and no paper is tested
build-10 -> build-11
--------------------
* test for adf errors (sane_start) is now only done if adf is selected
build-11 -> build-12
--------------------
* moved adf error tests from sane_start to umax_start_scan
* sane_control_option: printing option name is set to "(none)" if pointer is NULL
* added error message after each call of sanei_scsi_cmd
* changed manipulation of ADF bit for Astra 2400S in umax_correct_inquiry
from dev->adf to set_inquiry_sc_adf()
build-12 -> build-13
--------------------
* changed inquiry data of UC1200SE
* added set_inquiry_CBHS(50) in correct_inquiry for UC1200SE
* correct_inquiry is called for scanners with short inquiry now
* dev->inquiry_max_calib_lines is preset to 66,
problem with Vist S6E V1.6 should be solved this way.
* inquiry block parameters > 0x93 are only used if block is long enough
build-13 -> build-14
--------------------
* changed inquiry_cbhs_[min,max] -> inquiry_[contrast, brightness, threshold,
highlight, shadow]_[min,max] and set correct values for CBHS_255 and CBHS_50
* changed cbhs_str[CBHS_50] from "78-178" to "0-50"
* changed umax-uc1200se.h inquiry byte 0x64 bit 5 to 0 (gamma download format != 2)
and wdb len from 0x30 to 0x31
* disabled halftone pattern download, and halftone dimension selection - not ready
preselected is a 8x8 built in halftone pattern
* removed set_inquiry_CBHS(50) from correct_inquiry for UC1200SE
* added "Astra 2200 " as supported scanner
* added cast from (void *) to (unsigned char*) in umax_send_gamma_data
build-14 -> build-15
--------------------
* add "(unsigned)" to option number test in sane_control_option
* for Astra 1200 the driver does not wait any more until scanner is repositioned
this is experimental, it may work with other scanners too!
build-15 -> build-16
--------------------
* OPT_SOURCE: removed change of width/height and "*info |= SANE_INFO_RELOAD_PARAMS;"
from get_value to set_value and added "*info |= SANE_INFO_RELOAD_OPTIONS;"
build-16 -> build-17
--------------------
* changed calibration mode from SHADING_TYPE_AVERAGE_INVERT to SHADING_TYPE_AVERAGE
for UMAX S-6E, UMAX S-6EG and Vista-S6E
* changed several int -> unsigned int
* added support for sanei_scsi_open_extended and variable scsi buffer size
build-17 -> build-18
--------------------
* some cosmetic changes of the form
if (..) {...}
=>
if (..)
{
...
}
* removed unnecessary SHADING_TYPE-handling routines for UMAX S-6E, UMAX S-6EG and Vista-S6E
* scsi buffer is only reallocated when size has changed
build-18 -> build-19
--------------------
* added UMAX PowerLook III as supported scanner
* added EPSON Perfection600 as supported scanner (is a Astra 1200S)
* type of option 0 (Option numbers) is set to SANE_TYPE_INT now (undefined before)
* removed bug that mixed 12 bit and 14/16 bit gamma table when 14 or 16 bit are supported
and changed value range of grey custom gamma table:
- maximum output value is 255 for 8 bits/pixel
- maximum output value is 65535 for 9-16 bits/pixel
the custom gamma table does work now with 9-16 bits/pixel output mode
* added routine that reverses bit order in lineart mode when scanner sends LSB first in lineart
build-19 -> build-20
--------------------
* added variable calibration_width_offset, Mirage D-16L offset of 308 is defined there
and added offset of 28 for PowerLook III
* umax_do_calibration: guessed calibration data vaules use 2 bytes/color if scanner
supports gamma input bit depth supports 2 bytes/color
* calibration by driver now does work for PowerLook III
* added function umax_set_rgb_bind() that sets the sensitivity of some options
that make available different settings for RGB. This function now is called
when scanmode is selected.
* changed some int to unsigned int
* made dev->pause_after_reposition = -1; as default, so as default sane-umax does not wait
any more while the scanhead is moving back - this may break the support of some scanners
so it may have to be changed (dev->pause_after_reposition = 0;) for some scanners.
reported to work for:
- Supervista S12
- PowerLook III
- Astra 2200
build-20 -> build-21
--------------------
* Added Linotype "JADE" as supported scanner
* Removed bug in sane_close that caused segfault when
sane_close was called twice with the same scanner handle