Updated umax backend to version 1.0.3-build-24

Oliver Rauch
DEVEL_2_0_BRANCH-1
Oliver Rauch 2000-10-02 10:17:46 +00:00
rodzic bc7b3d76a5
commit dfcd32f822
15 zmienionych plików z 2702 dodań i 570 usunięć

Wyświetl plik

@ -0,0 +1,125 @@
/* -------------------------------------------------------------------- */
/* umax-scanner.c: scanner-definiton file for UMAX scanner driver.
(C) 1997-2000 Oliver Rauch
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.
*/
/* -------------------------------------------------------------------- */
#include "umax-scanner.h"
/* ==================================================================== */
/* scanners that are supported because the driver knows missing */
/* inquiry-data */
/* these umax-*.c files are included and not compiled separately */
/* because this way the symbols are not exported */
#include "umax-uc630.c"
#include "umax-uc840.c"
#include "umax-ug630.c"
#include "umax-ug80.c"
#include "umax-uc1200s.c"
#include "umax-uc1200se.c"
#include "umax-uc1260.c"
static inquiry_blk *inquiry_table[] =
{
&inquiry_uc630,
&inquiry_uc840,
&inquiry_ug630,
&inquiry_ug80,
&inquiry_uc1200s,
&inquiry_uc1200se,
&inquiry_uc1260
};
#define known_inquiry 7
/* ==================================================================== */
/* names of scanners that are supported because */
/* the inquiry_return_block is ok and driver is tested */
static char *scanner_str[] =
{
"UMAX ", "Vista-T630 ",
"UMAX ", "Vista-S6 ",
"UMAX ", "Vista-S6E ",
"UMAX ", "UMAX S-6E ",
"UMAX ", "UMAX S-6EG ",
"UMAX ", "Vista-S8 ",
"UMAX ", "UMAX S-12 ",
"UMAX ", "UMAX S-12G ",
"UMAX ", "SuperVista S-12 ",
"UMAX ", "PSD ",
"UMAX ", "PL-II ",
"UMAX ", "Astra 600S ",
"UMAX ", "Astra 610S ",
"UMAX ", "Astra 1200S ",
"UMAX ", "Astra 1220S ",
"UMAX ", "Astra 2100S ",
"UMAX ", "Astra 2200 ",
"UMAX ", "Astra 2400S ",
"UMAX ", "Mirage D-16L ",
/* "UMAX ", "Mirage II ", */
"UMAX ", "Mirage IIse ",
/* "UMAX ", "PL-II ", */
/* "UMAX ", "Power Look 2000 ", */
"UMAX ", "PowerLook III ",
/* "UMAX ", "Power Look 3000 ", */
"UMAX ", "Gemini D-16 ",
"LinoHell", "JADE ",
"LinoHell", "Office ",
"LinoHell", "Office2 ",
"LinoHell", "SAPHIR2 ",
/* "LinoHell", "SAPHIR4 ", */
/* "Linotype", "SAPHIR4 ", */
/* "LinoHell", "OPAL ", */
"Nikon ", "AX-210 ",
"KYE ", "ColorPage-HR5 ",
"EPSON ", "Perfection600 ",
"END_OF_LIST"
};
/* ==================================================================== */

Wyświetl plik

@ -47,8 +47,7 @@
#ifndef UMAX_SCANNER_H
#define UMAX_SCANNER_H
/* ==================================================================== */
/* -------------------------------------------------------------------- */
typedef struct
@ -58,76 +57,5 @@ typedef struct
int inquiry_len;
} inquiry_blk;
/* ==================================================================== */
/* scanners that are supported because the driver knows missing */
/* inquiry-data */
#include "umax-uc630.h"
#include "umax-uc840.h"
#include "umax-ug630.h"
#include "umax-ug80.h"
#include "umax-uc1200s.h"
#include "umax-uc1200se.h"
#include "umax-uc1260.h"
static inquiry_blk *inquiry_table[] =
{
&inquiry_uc630,
&inquiry_uc840,
&inquiry_ug630,
&inquiry_ug80,
&inquiry_uc1200s,
&inquiry_uc1200se,
&inquiry_uc1260
};
#define known_inquiry 7
/* ==================================================================== */
/* names of scanners that are supported because */
/* the inquiry_return_block is ok and driver is tested */
static char *scanner_str[] =
{
"UMAX ", "Vista-T630 ",
"UMAX ", "Vista-S6 ",
"UMAX ", "Vista-S6E ",
"UMAX ", "UMAX S-6E ",
"UMAX ", "UMAX S-6EG ",
"UMAX ", "Vista-S8 ",
"UMAX ", "UMAX S-12 ",
"UMAX ", "UMAX S-12G ",
"UMAX ", "SuperVista S-12 ",
"UMAX ", "PSD ",
"UMAX ", "PL-II ",
"UMAX ", "Astra 600S ",
"UMAX ", "Astra 610S ",
"UMAX ", "Astra 1200S ",
"UMAX ", "Astra 1220S ",
"UMAX ", "Astra 2200 ",
"UMAX ", "Astra 2400S ",
"UMAX ", "Mirage D-16L ",
/* "UMAX ", "Mirage II ", */
"UMAX ", "Mirage IIse ",
/* "UMAX ", "PL-II ", */
/* "UMAX ", "Power Look 2000 ", */
"UMAX ", "PowerLook III ",
/* "UMAX ", "Power Look 3000 ", */
"UMAX ", "Gemini D-16 ",
"LinoHell", "Office ",
"LinoHell", "JADE ",
"LinoHell", "Office2 ",
"LinoHell", "SAPHIR2 ",
/* "LinoHell", "SAPHIR4 ", */
"Nikon ", "AX-210 ",
"KYE ", "ColorPage-HR5 ",
"EPSON ", "Perfection600 ",
"END_OF_LIST"
};
/* ==================================================================== */
#endif

Wyświetl plik

@ -111,6 +111,8 @@ static inline void putnbyte(unsigned char * pnt, unsigned int value, unsigned in
#define GET_DATA_BUFFER_STATUS 0x34
#undef WRITE_BUFFER /* correct write_buffer for scanner */
#define WRITE_BUFFER 0x3B
#define GET_LAMP_STATUS 0x5E
#define SET_LAMP_STATUS 0x5F
/* --------------------------------------------------------------------------------------------------------- */
@ -179,14 +181,15 @@ static scsiblk inquiry = { inquiryC, sizeof(inquiryC) };
#define get_inquiry_0x05(in) in[0x05]
#define get_inquiry_0x06(in) in[0x06]
#define get_inquiry_0x07_bit7(in) getbitfield(in + 0x07, 0x01, 7)
#define get_inquiry_0x07_bit6(in) getbitfield(in + 0x07, 0x01, 6)
#define get_inquiry_0x07_bit5(in) getbitfield(in + 0x07, 0x01, 5)
#define get_inquiry_0x07_bit4(in) getbitfield(in + 0x07, 0x01, 4)
#define get_inquiry_0x07_bit3(in) getbitfield(in + 0x07, 0x01, 3)
#define get_inquiry_0x07_bit2(in) getbitfield(in + 0x07, 0x01, 2)
#define get_inquiry_0x07_bit1(in) getbitfield(in + 0x07, 0x01, 1)
#define get_inquiry_0x07_bit0(in) getbitfield(in + 0x07, 0x01, 0)
#define get_inquiry_scsi_byte(in) in[0x07]
#define get_inquiry_scsi_reladr(in) getbitfield(in + 0x07, 0x01, 7)
#define get_inquiry_scsi_wbus32(in) getbitfield(in + 0x07, 0x01, 6)
#define get_inquiry_scsi_wbus16(in) getbitfield(in + 0x07, 0x01, 5)
#define get_inquiry_scsi_sync(in) getbitfield(in + 0x07, 0x01, 4)
#define get_inquiry_scsi_linked(in) getbitfield(in + 0x07, 0x01, 3)
#define get_inquiry_scsi_R(in) getbitfield(in + 0x07, 0x01, 2)
#define get_inquiry_scsi_cmdqueue(in) getbitfield(in + 0x07, 0x01, 1)
#define get_inquiry_scsi_sftre(in) getbitfield(in + 0x07, 0x01, 0)
#define get_inquiry_vendor(in, buf) strncpy(buf, in + 0x08, 0x08)
#define get_inquiry_product(in, buf) strncpy(buf, in + 0x10, 0x010)
@ -222,6 +225,7 @@ static scsiblk inquiry = { inquiryC, sizeof(inquiryC) };
/* bytes 0x38 - 0x5f reserved by SCSI */
#define get_inquiry_sc_feature_byte0(in) in[0x60]
#define get_inquiry_sc_three_pass_color(in) getbitfield(in + 0x60, 1, 0)
#define get_inquiry_sc_one_pass_color(in) getbitfield(in + 0x60, 1, 1)
#define get_inquiry_sc_lineart(in) getbitfield(in + 0x60, 1, 2)
@ -240,6 +244,7 @@ static scsiblk inquiry = { inquiryC, sizeof(inquiryC) };
#define set_inquiry_sc_uta(in,val) setbitfield(in + 0x60, 1, 6, val)
#define set_inquiry_sc_adf(in,val) setbitfield(in + 0x60, 1, 7, val)
#define get_inquiry_sc_feature_byte1(in) in[0x61]
#define get_inquiry_sc_double_res(in) getbitfield(in + 0x61, 1, 0)
#define get_inquiry_sc_high_byte_first(in) getbitfield(in + 0x61, 1, 1)
#define get_inquiry_sc_bi_image_reverse(in) getbitfield(in + 0x61, 1, 2)
@ -249,23 +254,25 @@ static scsiblk inquiry = { inquiryC, sizeof(inquiryC) };
#define get_inquiry_sc_downloadable_fw(in) getbitfield(in + 0x61, 1, 6)
#define get_inquiry_sc_paper_length_14(in) getbitfield(in + 0x61, 1, 7)
#define get_inquiry_sc_feature_byte2(in) in[0x62]
#define get_inquiry_sc_uploadable_shade(in) getbitfield(in + 0x62, 1, 0)
#define get_inquiry_fw_support_color(in) getbitfield(in + 0x62, 1, 1)
#define get_inquiry_analog_gamma(in) getbitfield(in + 0x62, 1, 2)
#define get_inquiry_xy_coordinate_base(in) getbitfield(in + 0x62, 1, 3)
#define get_inquiry_lineart_order(in) getbitfield(in + 0x62, 1, 4)
#define get_inquiry_0x62_bit5(in) getbitfield(in + 0x62, 1, 5)
#define get_inquiry_0x62_bit6(in) getbitfield(in + 0x62, 1, 6)
#define get_inquiry_0x62_bit7(in) getbitfield(in + 0x62, 1, 7)
#define get_inquiry_start_density(in) getbitfield(in + 0x62, 1, 5)
#define get_inquiry_hw_x_scaling(in) getbitfield(in + 0x62, 1, 6)
#define get_inquiry_hw_y_scaling(in) getbitfield(in + 0x62, 1, 7)
#define get_inquiry_sc_feature_byte3(in) in[0x63]
#define get_inquiry_ADF_no_paper(in) getbitfield(in + 0x63, 1, 0)
#define get_inquiry_ADF_cover_open(in) getbitfield(in + 0x63, 1, 1)
#define get_inquiry_ADF_paper_jam(in) getbitfield(in + 0x63, 1, 2)
#define get_inquiry_0x63_bit3(in) getbitfield(in + 0x63, 1, 3)
#define get_inquiry_0x63_bit4(in) getbitfield(in + 0x63, 1, 4)
#define get_inquiry_0x63_bit5(in) getbitfield(in + 0x63, 1, 5)
#define get_inquiry_0x63_bit6(in) getbitfield(in + 0x63, 1, 6)
#define get_inquiry_0x63_bit7(in) getbitfield(in + 0x63, 1, 7)
#define get_inquiry_lens_cal_in_doc_pos(in) getbitfield(in + 0x63, 1, 5)
#define get_inquiry_manual_focus(in) getbitfield(in + 0x63, 1, 6)
#define get_inquiry_sel_uta_lens_cal_pos(in) getbitfield(in + 0x63, 1, 7)
#define get_inquiry_gamma_download_available(in) getbitfield(in + 0x64, 1, 7)
#define get_inquiry_0x64_bit6(in) getbitfield(in + 0x64, 1, 6)
@ -400,6 +407,25 @@ static scsiblk inquiry = { inquiryC, sizeof(inquiryC) };
#define get_inquiry_dor_y_resolution_residue(in) in[0xa2]
/* --------------------------------------------------------------------------------------------------------- */
/* although the command is defined with 6 bytes length in the doc, 10 bytes seems to be the correct length */
static unsigned char get_lamp_statusC[] = { GET_LAMP_STATUS, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
static scsiblk get_lamp_status = { get_lamp_statusC,sizeof(get_lamp_statusC) };
#define get_lamp_status_lamp_on(in) getbitfield(in, 1, 0)
/* --------------------------------------------------------------------------------------------------------- */
/* although the command is defined with 6 bytes length in the doc, 10 bytes seems to be the correct length */
static unsigned char set_lamp_statusC[] = { SET_LAMP_STATUS, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
static scsiblk set_lamp_status = { set_lamp_statusC,sizeof(set_lamp_statusC) };
#define set_lamp_status_lamp_on(in,val) setbitfield(in + 0x03, 1, 7, val)
/* --------------------------------------------------------------------------------------------------------- */
@ -462,7 +488,7 @@ static scsiblk window_parameter_data_block =
static unsigned char window_descriptor_blockC[] =
{
#define max_WDB_size 0xff
#define used_WDB_size 0x52
#define used_WDB_size 0x53
/* 0x00 */ 0x00, /* Window Identifier */
#define set_WD_wid(sb, val) sb[0] = val
@ -590,18 +616,16 @@ static unsigned char window_descriptor_blockC[] =
/* 0x30 */ 0x01, /* HBT, DOR, reserved, RMIF, CBHS Type */
/* CBHS = Contrast, Brightness, Highlight, Shadow */
#define set_WD_CBHS(sb, val) setbitfield(sb + 0x30, 0x3, 0, val)
# define WD_CBHS_50 0x00
# define WD_CBHS_255 0x01
/* RMIF = Reverse Multilevel Image Format */
#define set_WD_RMIF(sb, val) setbitfield(sb + 0x30, 1, 2, val)
/* DOR = Double Optical Resolution */
#define set_WD_DOR(sb, val) setbitfield(sb + 0x30, 1, 6, val)
/* HBT = High Byte (first) Transfer */
#define set_WD_HBT(sb, val) setbitfield(sb + 0x30, 1, 7, val)
#define set_WD_CBHS(sb, val) setbitfield(sb + 0x30, 1, 0, val)
# define WD_CBHS_50 0
# define WD_CBHS_255 1
#define set_WD_FF(sb, val) setbitfield(sb + 0x30, 1, 1, val) /* FF = Fix Focus position */
#define set_WD_RMIF(sb, val) setbitfield(sb + 0x30, 1, 2, val) /* Reverse Multil Image Frmt */
#define set_WD_FDC(sb, val) setbitfield(sb + 0x30, 1, 3, val) /* document calibration */
#define set_WD_PF(sb, val) setbitfield(sb + 0x30, 1, 4, val) /* PF pre focus */
#define set_WD_LCL(sb, val) setbitfield(sb + 0x30, 1, 5, val) /* LCL (focus position) */
#define set_WD_DOR(sb, val) setbitfield(sb + 0x30, 1, 6, val) /* Double Optical Resolution */
#define set_WD_HBT(sb, val) setbitfield(sb + 0x30, 1, 7, val) /* High Byte Transfer */
# define WD_HBT_HBF 0x00
# define WD_HBT_LBF 0x01
@ -618,6 +642,7 @@ static unsigned char window_descriptor_blockC[] =
/* 0x39 */ 0x00, /* BS, reserved, Calibration Mode */
#define set_WD_batch(sb, val) setbitfield(sb + 0x39, 1, 7, val)
#define set_WD_MF(sb, val) setbitfield(sb + 0x39, 1, 6, val) /* manual focus */
#define set_WD_line_arrangement(sb, val) setbitfield(sb + 0x39, 1, 5, val)
# define WD_line_arrengement_by_driver 0x01
# define WD_line_arrengement_by_fw 0x00
@ -681,9 +706,12 @@ static unsigned char window_descriptor_blockC[] =
/* 0x50 */ 0x00, /* reserved */
/* 0x51 */ 0x00 /* driver calibration need image data lines */
/* 0x51 */ 0x00, /* driver calibration need image data lines */
#define set_WD_calibration_data_lines(sb, val) sb[0x51] = val
/* 0x52 */ 0x00 /* start density */
#define set_WD_start_density(sb, val) sb[0x52] = val
/* if somone adds here anything, please change used_WDB_size in this file !! */
};
@ -955,14 +983,14 @@ static char *sense_str[] = {"NO SENSE",
static char *scanner_error_str[] =
{"no error", /* 0 */
"CPU error",
"reserved 2",
"reserved 3",
"err 2",
"err 3",
"ROM error",
"reserved 5",
"reserved 6",
"reserved 7",
"reserved 8",
"reserved 9",
"err 5",
"err 6",
"err 7",
"err 8",
"err 9",
"buffer error", /* 10 */
"system buffer error",
"shading buffer error",
@ -970,59 +998,59 @@ static char *scanner_error_str[] =
"stack buffer error",
"control buffer error",
"gamma buffer error",
"reserved 17",
"reserved 18",
"reserved 19",
"err 17",
"err 18",
"err 19",
"lamp error", /* 20 */
"dark error",
"dim error",
"light error",
"lamp adjust control error (by darken)",
"reserved 25",
"reserved 26",
"reserved 27",
"reserved 28",
"reserved 29",
"err 25",
"err 26",
"err 27",
"err 28",
"err 29",
"calibration error", /* 30 */
"dc offset error",
"gain error",
"reserved 33",
"reserved 34",
"reserved 35",
"reserved 36",
"reserved 37",
"reserved 38",
"reserved 39",
"auto focus error",
"err 34",
"err 35",
"err 36",
"err 37",
"err 38",
"err 39",
"scsi error", /* 40 */
"reserved 41",
"err 41",
"asic error",
"timer error",
"ccd error",
"reserved 45",
"reserved 46",
"reserved 47",
"reserved 48",
"reserved 49",
"err 45",
"err 46",
"err 47",
"err 48",
"err 49",
"uta error", /* 50 */
"uta home or motor sensor error",
"reserved 52",
"reserved 53",
"reserved 54",
"reserved 55",
"reserved 56",
"reserved 57",
"reserved 58",
"reserved 59",
"err 52",
"err 53",
"err 54",
"err 55",
"err 56",
"err 57",
"err 58",
"err 59",
"adf error", /* 60 */
"adf paper jam",
"adf no paper",
"adf cover open",
"reserved 64",
"reserved 65",
"reserved 66",
"reserved 67",
"reserved 68",
"reserved 69",
"err 64",
"err 65",
"err 66",
"err 67",
"err 68",
"err 69",
"fb sensor error", /* 70 */
"fb home or motor sensor error",
"fb filter or motor sensor error",
@ -1030,29 +1058,29 @@ static char *scanner_error_str[] =
"first line position error (LER error, vertical)",
"first pixel position error (SER error, horizontal)",
"first pixel position error for lens 2 (SER2 error, horizontal)",
"reserved 77",
"reserved 78",
"reserved 79",
"reserved", /* 80 */
"reserved",
"reserved",
"reserved",
"reserved",
"reserved",
"reserved",
"reserved",
"reserved",
"reserved",
"reserved", /* 90 */
"reserved",
"reserved",
"reserved",
"reserved",
"reserved",
"reserved",
"reserved",
"reserved",
"reserved" /* 99 */
"err 77",
"err 78",
"err 79",
"err", /* 80 */
"err",
"err",
"err",
"err",
"err",
"err",
"err",
"err",
"err",
"err", /* 90 */
"err",
"err",
"err",
"err",
"err",
"err",
"err",
"err",
"err" /* 99 */
};

Wyświetl plik

@ -0,0 +1,204 @@
/* ------------------------------------------------------------------------- */
/* umax-uc1200s.c: inquiry for UMAX scanner uc1200s
(C) 1997-2000 Oliver Rauch
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.
*/
/* ------------------------------------------------------------------------- */
#include "umax-scanner.h"
/* ------------------------------------------------------------------------- */
static unsigned char UC1200S_INQUIRY[] =
{
#define UC1200S_INQUIRY_LEN 0x9d
/* 24 F/W support function */
0x03,
/* 25 -27 exposure-times */
0x00, 0x00, 0x00,
/* 28 - 29 reserved */
0x00, 0x00,
/* 2a - 35 exposure times */
0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00,
/* 36 - 37 reserved */
0x00, 0x00,
/* 38 - 5f scsi reserved */
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
/* 60 -62 scanner capability*/
0x2f,
0x0c,
0x07,
/* 63 reserved */
0x00,
/* 64 gamma */
0xa3,
/* 65 reserved */
0x00,
/* 66 GIB */
0x01,
/* 67 reserved */
0x00,
/* 68 GOB */
0x01,
/* 69 - 6a halftone */
0x0c, 0x2f,
/* 6b - 6c reserved */
0x00, 0x00,
/* 6d color sequence */
0xe8, /* 0xe9 or 0xe1 ? */
/* 6e - 71 video memory */
0x00, 0x04, 0x00, 0x00,
/* 72 reserved */
0x00,
/* 73 max optical res in 100 dpi */
0x06,
/* 74 max x_res in 100 dpi */
0x0c,
/* 75 max y_res in 100 dpi */
0x0c,
/* 76-77 fb max scan width in 0.01 inch */
0x03, 0x20,
/* 78-79 fb max scan length in 0.01 inch */
0x04, 0x9c,
/* 7a-7b uta x original point, may be 0x05, 0x89 */
0x00, 0x76,
/* 7c-7d uta y original point, may be 0x06, 0x75 */
0x00, 0x89,
/* 7e-7f uta max scan width in 0.01 inch */
0x02, 0x4e,
/* 80-81 uta max scan length in 0.01 inch */
0x03, 0x65,
/* 82-85 reserved */
00, 00, 00, 00,
/* 86-87 dor x original point */
0x00, 0x00,
/* 88-89 dor x original point */
0x00, 0x00,
/* 8a-8b dor max scan width in 0.01 inch */
0x00, 0x00,
/* 8c-8d dor max scan length in 0.01 inch */
0x00, 0x00,
/* 8e reserved */
0x00,
/* 8f last calibration lamp density */
0x00,
/* 90 reserved */
0x00,
/* 91 lamp warmup max time */
0x00,
/* 92-93 window descriptor block length */
0x00, 0x30,
/* 94 optical resolution residue (1dpi) */
0x00,
/* 95 x_resolution residue (1dpi) */
0x00,
/* 96 y_resolution residue (1dpi) */
0x00,
/* 97 analog gamma table */
0x00,
/* 98-99 reserved */
0x00, 0x00,
/* 9a max calibration data lines */
0x00,
/* 9b fb/uta colour-sequnce-mode */
0x01,
/* 9c adf colour-sequnce-mode */
0x01,
/* 9d line-distance of ccd */
0x08
};
static inquiry_blk inquiry_uc1200s =
{
"UC1200S ",UC1200S_INQUIRY, UC1200S_INQUIRY_LEN
};

Wyświetl plik

@ -0,0 +1,204 @@
/* ------------------------------------------------------------------------- */
/* umax-uc1200se.c: inquiry for UMAX scanner uc1200se
(C) 1998-2000 Oliver Rauch
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.
*/
/* ------------------------------------------------------------------------- */
#include "umax-scanner.h"
/* ------------------------------------------------------------------------- */
static unsigned char UC1200SE_INQUIRY[] =
{
#define UC1200SE_INQUIRY_LEN 0x9d
/* 24 F/W support function */
0x03,
/* 25 -27 exposure-times */
0x00, 0x00, 0x00,
/* 28 - 29 reserved */
0x00, 0x00,
/* 2a - 35 exposure times */
0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00,
/* 36 - 37 reserved */
0x00, 0x00,
/* 38 - 5f scsi reserved */
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
/* 60 -62 scanner capability*/
0x3e,
0x0c,
0x03,
/* 63 reserved */
0x00,
/* 64 gamma */
0x83,
/* 65 reserved */
0x00,
/* 66 GIB */
0x04,
/* 67 reserved */
0x00,
/* 68 GOB */
0x01,
/* 69 - 6a halftone */
0x00, 0x2f,
/* 6b - 6c reserved */
0x00, 0x00,
/* 6d color sequence */
0xe1, /* 0xe8, 0xe9 or 0xe1 ? */
/* 6e - 71 video memory */
0x00, 0x20, 0x00, 0x00,
/* 72 reserved */
0x00,
/* 73 max optical res in 100 dpi */
0x06,
/* 74 max x_res in 100 dpi */
0x06,
/* 75 max y_res in 100 dpi */
0x0c,
/* 76-77 fb max scan width in 0.01 inch */
0x03, 0x20,
/* 78-79 fb max scan length in 0.01 inch */
0x04, 0x4c,
/* 7a-7b uta x original point, may be 0x05, 0x89 */
0x00, 0x76,
/* 7c-7d uta y original point, may be 0x06, 0x75 */
0x00, 0x89,
/* 7e-7f uta max scan width in 0.01 inch */
0x02, 0x4e,
/* 80-81 uta max scan length in 0.01 inch */
0x03, 0x65,
/* 82-85 reserved */
00, 00, 00, 00,
/* 86-87 dor x original point */
0x00, 0x00,
/* 88-89 dor x original point */
0x00, 0x00,
/* 8a-8b dor max scan width in 0.01 inch */
0x00, 0x00,
/* 8c-8d dor max scan length in 0.01 inch */
0x00, 0x00,
/* 8e reserved */
0x00,
/* 8f last calibration lamp density */
0x00,
/* 90 reserved */
0x00,
/* 91 lamp warmup max time */
0x00,
/* 92-93 window descriptor block length */
0x00, 0x31,
/* 94 optical resolution residue (1dpi) */
0x00,
/* 95 x_resolution residue (1dpi) */
0x00,
/* 96 y_resolution residue (1dpi) */
0x00,
/* 97 analog gamma table */
0x00,
/* 98-99 reserved */
0x00, 0x00,
/* 9a max calibration data lines */
0x00,
/* 9b fb/uta colour-sequnce-mode */
0x01,
/* 9c adf colour-sequnce-mode */
0x01,
/* 9d line-distance of ccd */
0x08
};
static inquiry_blk inquiry_uc1200se =
{
"UC1200SE ",UC1200SE_INQUIRY, UC1200SE_INQUIRY_LEN
};

Wyświetl plik

@ -0,0 +1,203 @@
/* ------------------------------------------------------------------------- */
/* umax-uc1260.c: inquiry for UMAX scanner uc1260
(C) 1997-2000 Oliver Rauch
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.
*/
/* ------------------------------------------------------------------------- */
#include "umax-scanner.h"
/* ------------------------------------------------------------------------- */
static unsigned char UC1260_INQUIRY[] =
{
#define UC1260_INQUIRY_LEN 0x9d
/* 24 F/W support function */
0x03,
/* 25 -27 exposure-times */
0x00, 0x00, 0x00,
/* 28 - 29 reserved */
0x00, 0x00,
/* 2a - 35 exposure times */
0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00,
/* 36 - 37 reserved */
0x00, 0x00,
/* 38 - 5f scsi reserved */
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
/* 60 -62 scanner capability*/
0x31,
0x0c,
0x07,
/* 63 reserved */
0x00,
/* 64 gamma */
0xa3,
/* 65 reserved */
0x00,
/* 66 GIB */
0x01,
/* 67 reserved */
0x00,
/* 68 GOB */
0x01,
/* 69 - 6a halftone */
0x0c, 0x2f,
/* 6b - 6c reserved */
0x00, 0x00,
/* 6d color sequence */
0x08,
/* 6e - 71 video memory */
0x00, 0x20, 0x00, 0x00,
/* 72 reserved */
0x00,
/* 73 max optical res in 100 dpi */
0x06,
/* 74 max x_res in 100 dpi */
0x06,
/* 75 max y_res in 100 dpi */
0x0c,
/* 76-77 fb max scan width in 0.01 inch */
0x03, 0x52,
/* 78-79 fb max scan length in 0.01 inch */
0x05, 0x78,
/* 7a-7b uta x original point, may be 0x05, 0x89 */
0x00, 0x76,
/* 7c-7d uta y original point, may be 0x06, 0x75 */
0x00, 0x89,
/* 7e-7f uta max scan width in 0.01 inch */
0x02, 0x4e,
/* 80-81 uta max scan length in 0.01 inch */
0x03, 0x65,
/* 82-85 reserved */
00, 00, 00, 00,
/* 86-87 dor x original point */
0x00, 0x00,
/* 88-89 dor x original point */
0x00, 0x00,
/* 8a-8b dor max scan width in 0.01 inch */
0x00, 0x00,
/* 8c-8d dor max scan length in 0.01 inch */
0x00, 0x00,
/* 8e reserved */
0x00,
/* 8f last calibration lamp density */
0x00,
/* 90 reserved */
0x00,
/* 91 lamp warmup max time */
0x00,
/* 92-93 window descriptor block length */
0x00, 0x30,
/* 94 optical resolution residue (1dpi) */
0x00,
/* 95 x_resolution residue (1dpi) */
0x00,
/* 96 y_resolution residue (1dpi) */
0x00,
/* 97 analog gamma table */
0x00,
/* 98-99 reserved */
0x00, 0x00,
/* 9a max calibration data lines */
0x00,
/* 9b fb/uta colour-sequnce-mode */
0x01,
/* 9c adf colour-sequnce-mode */
0x01,
/* 9d line-distance of ccd */
0x08
};
static inquiry_blk inquiry_uc1260 =
{
"UC1260 ",UC1260_INQUIRY, UC1260_INQUIRY_LEN
};

Wyświetl plik

@ -0,0 +1,195 @@
/* ------------------------------------------------------------------------- */
/* umax-uc630.c: inquiry for UMAX scanner uc630
(C) 1997-2000 Oliver Rauch
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.
*/
/* ------------------------------------------------------------------------- */
#include "umax-scanner.h"
/* ------------------------------------------------------------------------- */
static unsigned char UC630_INQUIRY[] =
{
#define UC630_INQUIRY_LEN 0x94
/* 24 F/W support function */
0x00, /* ? */
/* 25 -27 exposure-times */
0x00, 0x00, 0x00,
/* 28 - 29 reserved */
0x00, 0x00,
/* 2a - 35 exposure times */
0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00,
/* 36 - 37 reserved */
0x00, 0x00,
/* 38 - 5f scsi reserved */
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
/* 60 -62 scanner capability */
0xfd,
0x8c, /* 0xbc ? */
0x03,
/* 63 reserved */
0x00,
/* 64 gamma */
0xa1,
/* 65 reserved */
0x00,
/* 66 GIB */
0x01,
/* 67 reserved */
0x00,
/* 68 GOB */
0x01,
/* 69 - 6a halftone */
0x08, 0x2f,
/* 6b - 6c reserved */
0x00, 0x00,
/* 6d color sequence */
0xe5,
/* 6e - 71 video memory */
0x00, 0x04, 0x00, 0x00,
/* 72 reserved */
0x00,
/* 73 max optical res in 100 dpi */
0x04,
/* 74 max x_res in 100 dpi */
0x04,
/* 75 max y_res in 100 dpi */
0x04,
/* 76-77 fb max scan width in 0.01 inch */
0x03, 0x52,
/* 78-79 fb max scan length in 0.01 inch */
0x04, 0x9c,
/* 7a-7b uta x original point, may be 0x05, 0x89 */
0x00, 0x76,
/* 7c-7d uta y original point, may be 0x06, 0x75 */
0x00, 0x89,
/* 7e-7f uta max scan width in 0.01 inch */
0x02, 0x4e,
/* 80-81 uta max scan length in 0.01 inch */
0x03, 0x65,
/* 82-85 reserved */
00, 00, 00, 00,
/* 86-87 dor x original point */
0x00, 0x00,
/* 88-89 dor x original point */
0x00, 0x00,
/* 8a-8b dor max scan width in 0.01 inch */
0x00, 0x00,
/* 8c-8d dor max scan length in 0.01 inch */
0x00, 0x00,
/* 8e reserved */
0x00,
/* 8f last calibration lamp density */
0x00,
/* 90 reserved */
0x00,
/* 91 lamp warmup max time */
0x00,
/* 92-93 window descriptor block length */
0x00, 0x30,
/* 94 optical resolution residue (1dpi) */
0x00,
/* 95 x_resolution residue (1dpi) */
0x00,
/* 96 y_resolution residue (1dpi) */
0x00,
/* 97 analog gamma table */
0x00,
/* 98-99 reserved */
0x00, 0x00,
/* 9a max calibration data lines */
0x00
};
static inquiry_blk inquiry_uc630 =
{
"UC630 ", UC630_INQUIRY, UC630_INQUIRY_LEN
};

Wyświetl plik

@ -0,0 +1,195 @@
/* ------------------------------------------------------------------------- */
/* umax-uc840.c: inquiry for UMAX scanner uc840
(C) 1997-2000 Oliver Rauch
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.
*/
/* ------------------------------------------------------------------------- */
#include "umax-scanner.h"
/* ------------------------------------------------------------------------- */
static unsigned char UC840_INQUIRY[] =
{
#define UC840_INQUIRY_LEN 0x94
/* 24 F/W support function */
0x00, /* ? */
/* 25 -27 exposure-times */
0x00, 0x00, 0x00,
/* 28 - 29 reserved */
0x00, 0x00,
/* 2a - 35 exposure times */
0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00,
/* 36 - 37 reserved */
0x00, 0x00,
/* 38 - 5f scsi reserved */
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
/* 60 -62 scanner capability*/
0xfd,
0x8c, /* 0xbc ? */
0x03,
/* 63 reserved */
0x00,
/* 64 gamma */
0xa1,
/* 65 reserved */
0x00,
/* 66 GIB */
0x01,
/* 67 reserved */
0x00,
/* 68 GOB */
0x01,
/* 69 - 6a halftone */
0x88, 0x2f,
/* 6b - 6c reserved */
0x00, 0x00,
/* 6d color sequence */
0xe5,
/* 6e - 71 video memory */
0x00, 0x20, 0x00, 0x00,
/* 72 reserved */
0x00,
/* 73 max optical res in 100 dpi */
0x04,
/* 74 max x_res in 100 dpi */
0x04,
/* 75 max y_res in 100 dpi */
0x08,
/* 76-77 fb max scan width in 0.01 inch */
0x03, 0x52,
/* 78-79 fb max scan length in 0.01 inch */
0x05, 0x78,
/* 7a-7b uta x original point, may be 0x05, 0x89 */
0x00, 0x76,
/* 7c-7d uta y original point, may be 0x06, 0x75 */
0x00, 0x89,
/* 7e-7f uta max scan width in 0.01 inch */
0x02, 0x4e,
/* 80-81 uta max scan length in 0.01 inch */
0x03, 0x65,
/* 82-85 reserved */
00, 00, 00, 00,
/* 86-87 dor x original point */
0x00, 0x00,
/* 88-89 dor x original point */
0x00, 0x00,
/* 8a-8b dor max scan width in 0.01 inch */
0x00, 0x00,
/* 8c-8d dor max scan length in 0.01 inch */
0x00, 0x00,
/* 8e reserved */
0x00,
/* 8f last calibration lamp density */
0x00,
/* 90 reserved */
0x00,
/* 91 lamp warmup max time */
0x00,
/* 92-93 window descriptor block length */
0x00, 0x30,
/* 94 optical resolution residue (1dpi) */
0x00,
/* 95 x_resolution residue (1dpi) */
0x00,
/* 96 y_resolution residue (1dpi) */
0x00,
/* 97 analog gamma table */
0x00,
/* 98-99 reserved */
0x00, 0x00,
/* 9a max calibration data lines */
0x00
};
static inquiry_blk inquiry_uc840 =
{
"UC840 ", UC840_INQUIRY, UC840_INQUIRY_LEN
};

Wyświetl plik

@ -0,0 +1,195 @@
/* ------------------------------------------------------------------------- */
/* umax-ug630.c: inquiry for UMAX scanner ug630
(C) 1997-2000 Oliver Rauch
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.
*/
/* ------------------------------------------------------------------------- */
#include "umax-scanner.h"
/* ------------------------------------------------------------------------- */
static unsigned char UG630_INQUIRY[] =
{
#define UG630_INQUIRY_LEN 0x94
/* 24 F/W support function */
0x00,
/* 25 -27 exposure-times */
0x00, 0x00, 0x00,
/* 28 - 29 reserved */
0x00, 0x00,
/* 2a - 35 exposure times */
0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00,
/* 36 - 37 reserved */
0x00, 0x00,
/* 38 - 5f scsi reserved */
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
/* 60 -62 scanner capability */
0xdc,
0xbc, /* 8e ? */
0x03, /* ? */
/* 63 reserved */
0x00,
/* 64 gamma */
0xa1,
/* 65 reserved */
0x00,
/* 66 GIB */
0x01,
/* 67 reserved */
0x00,
/* 68 GOB */
0x01,
/* 69 - 6a halftone */
0x88, 0x21, /* ? */
/* 6b - 6c reserved */
0x00, 0x00,
/* 6d color sequence */
0x05,
/* 6e - 71 video memory */
0x00, 0x04, 0x00, 0x00,
/* 72 reserved */
0x00,
/* 73 max optical res in 100 dpi */
0x04,
/* 74 max x_res in 100 dpi */
0x04,
/* 75 max y_res in 100 dpi */
0x04,
/* 76-77 fb max scan width in 0.01 inch */
0x03, 0x52,
/* 78-79 fb max scan length in 0.01 inch */
0x04, 0x92,
/* 7a-7b uta x original point */
0x00, 0x76,
/* 7c-7d uta y original point */
0x00, 0x89,
/* 7e-7f uta max scan width in 0.01 inch */
0x02, 0x4e,
/* 80-81 uta max scan length in 0.01 inch */
0x03, 0x65,
/* 82-85 reserved */
00, 00, 00, 00,
/* 86-87 dor x original point */
0x00, 0x00,
/* 88-89 dor x original point */
0x00, 0x00,
/* 8a-8b dor max scan width in 0.01 inch */
0x00, 0x00,
/* 8c-8d dor max scan length in 0.01 inch */
0x00, 0x00,
/* 8e reserved */
0x00,
/* 8f last calibration lamp density */
0x00,
/* 90 reserved */
0x00,
/* 91 lamp warmup max time */
0x00,
/* 92-93 window descriptor block length */
0x00, 0x30,
/* 94 optical resolution residue (1dpi) */
0x00,
/* 95 x_resolution residue (1dpi) */
0x00,
/* 96 y_resolution residue (1dpi) */
0x00,
/* 97 analog gamma table */
0x00,
/* 98-99 reserved */
0x00, 0x00,
/* 9a max calibration data lines */
0x00
};
static inquiry_blk inquiry_ug630 =
{
"UG630 ", UG630_INQUIRY, UG630_INQUIRY_LEN
};

198
backend/umax-ug80.c 100644
Wyświetl plik

@ -0,0 +1,198 @@
/* ------------------------------------------------------------------------- */
/* umax-ug80.c: inquiry for UMAX scanner ug80
(C) 1998-2000 Oliver Rauch
Thanks to Andreas Hofmeister <hofmeist@informatik.uni-freiburg.de>
for his help!
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.
*/
/* ------------------------------------------------------------------------- */
#include "umax-scanner.h"
/* ------------------------------------------------------------------------- */
static unsigned char UG80_INQUIRY[] =
{
#define UG80_INQUIRY_LEN 0x94
/* 24 F/W support function */
0x00,
/* 25 -27 exposure-times */
0x00, 0x00, 0x00,
/* 28 - 29 reserved */
0x00, 0x00,
/* 2a - 35 exposure times */
0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00,
/* 36 - 37 reserved */
0x00, 0x00,
/* 38 - 5f scsi reserved */
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00,
/* 60 -62 scanner capability */
0xdc,
0xb4,
0x03, /* ? */
/* 63 reserved */
0x00,
/* 64 gamma */
0xa1,
/* 65 reserved */
0x00,
/* 66 GIB */
0x01,
/* 67 reserved */
0x00,
/* 68 GOB */
0x01,
/* 69 - 6a halftone */
0x88, 0x21, /* ? */
/* 6b - 6c reserved */
0x00, 0x00,
/* 6d color sequence */
0x05,
/* 6e - 71 video memory */
0x00, 0x01, 0x00, 0x00,
/* 72 reserved */
0x00,
/* 73 max optical res in 100 dpi */
0x03,
/* 74 max x_res in 100 dpi */
0x03,
/* 75 max y_res in 100 dpi */
0x03,
/* 76-77 fb max scan width in 0.01 inch */
0x03, 0x52,
/* 78-79 fb max scan length in 0.01 inch */
0x05, 0x78,
/* 7a-7b uta x original point */
0x00, 0x76,
/* 7c-7d uta y original point */
0x00, 0x89,
/* 7e-7f uta max scan width in 0.01 inch */
0x02, 0x4e,
/* 80-81 uta max scan length in 0.01 inch */
0x05, 0x78,
/* 82-85 reserved */
00, 00, 00, 00,
/* 86-87 dor x original point */
0x00, 0x00,
/* 88-89 dor x original point */
0x00, 0x00,
/* 8a-8b dor max scan width in 0.01 inch */
0x00, 0x00,
/* 8c-8d dor max scan length in 0.01 inch */
0x00, 0x00,
/* 8e reserved */
0x00,
/* 8f last calibration lamp density */
0x00,
/* 90 reserved */
0x00,
/* 91 lamp warmup max time */
0x00,
/* 92-93 window descriptor block length */
0x00, 0x30,
/* 94 optical resolution residue (1dpi) */
0x00,
/* 95 x_resolution residue (1dpi) */
0x00,
/* 96 y_resolution residue (1dpi) */
0x00,
/* 97 analog gamma table */
0x00,
/* 98-99 reserved */
0x00, 0x00,
/* 9a max calibration data lines */
0x00
};
static inquiry_blk inquiry_ug80 =
{
"UG80 ",UG80_INQUIRY,UG80_INQUIRY_LEN,
};

Wyświetl plik

@ -695,8 +695,8 @@ build-16 -> build-17
* added support for sanei_scsi_open_extended and variable scsi buffer size
build-17 -> build-18
--------------------
build-17 -> build-18 (sane-1.0.2)
---------------------------------
* some cosmetic changes of the form
if (..) {...}
@ -755,11 +755,90 @@ build-19 -> build-20
- Astra 2200
build-20 -> build-21
--------------------
build-20 -> build-21 (sane-1.0.3)
---------------------------------
* 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
build-21 -> build-22
--------------------
* replaced fgets() by sanei_config_read()
* added command queueing for scsi read commands
- removed WAIT_SCANNER scsi command call after read command
- the additional buffers are allocated in the reader process
- the number of buffers can be defined in umax.conf
with option scsi-maxqueue [1..8] default:2
(did some tests with Supervista S12 and PowerLook III
on the same scsi controller (ncr53c810):
command queueing works, it is possible to start
both scanners at the same time. The scanner with the
higher scsi-ID (=priority) does scan without stops,
the other scanner has to wait long time between the
scsi-read commands, it also is possible to give
bothe scanners different scsi command queueing depth).
* prepared replacement of pipe by sanei_ipc_* routines
* added routines umax_get_lamp_status and umax_set_lamp_status
* updated inquiry output (new bits from powerlook scsi protocol 1.0 X101)
* added new (powerlook scsi protocol 1.0 X101) window descriptor block entries to umax-scsidef.h
* added button protocol (3 buttons, from powerlook scsi protocol 1.0 X101)
* added button "lamp off" to turn off scanner lamp
(this option may be remoeved again in later version, may be
it will be replaced by an autmatic lamp turn off function)
* added options to umax.conf
lamp-off-at-exit [01] default:0
lamp-off-time [10..720] (in minutes) default:30
* if lamp_off_at_exit == 1 and lamp_control_available == 1
the scanner lamp is turned off in sane_close
* renamed umax-scanner.h and umax-"scannername".h to umax*.c
because these files create data code
build-22 -> build-23
--------------------
* scsi commands set/get lamp control are send with a command length of
10 bytes instead of 6 bytes and control bit #7 is in byte 0x03
and not in byte 0x04 (it is described incorrect in the umax doc)
* enabled lamp control for Astra 2200
* removed umax.conf options lamp-off-at-exit and lamp-off-time
* added frontend option lamp-off-at-exit
* added frontend option lamp-on
* forcing calibration_bytespp = 1 for Astra 2200 - quality calibration does work now
* for Astra 2200 selection for different x/y resolutions is disabled
build-23 -> build-24
--------------------
* forcing calibration_bytespp = 1 for Astra 2100S
* Added Astra 2100S as supported scanner
* enabled lamp control for Astra 2100S (don`t know if this works, is a test)
* Added warning in sane_control_option if option could not be set
build-24 -> build-25
--------------------

Wyświetl plik

@ -1,7 +1,8 @@
TODO UMAX BACKEND FOR SANE
==========================
* add backend internal callibration support for Astra 2200
* Astra 2200: enable option resolution bind for grayscale/lineart
it must be disabled and set "true" for color mode
* change set_window if (dev->do_color_ordering != 0) {..}
one of the settings makes an error for Astra 6X0S scanners
@ -14,4 +15,5 @@ TODO UMAX BACKEND FOR SANE
- I will NOT add support for parallel-port and USB scanners to this backend!
Don`t ask for it.

Plik diff jest za duży Load Diff

Wyświetl plik

@ -1,10 +1,19 @@
#
# Options for the umax backend
option scsi-maxqueue 2
#
# linux device identification:
#scsi vendor model type bus channel id lun
scsi UMAX * Scanner
scsi LinoHell Office
scsi LinoHell JADE
scsi LinoHell Office2
scsi LinoHell JADE
scsi LinoHell SAPHIR2
scsi Nikon AX-210
scsi KYE ColorPage-HR5
scsi EPSON Perfection600
#
# device list for non-linux-systems:
/dev/scanner

Wyświetl plik

@ -50,6 +50,10 @@
#include "sys/types.h"
#ifdef HAVE_SANEI_IPC
# include "sane/sanei_ipc.h"
#endif
/* --------------------------------------------------------------------------------------------------------- */
/* COMPILER OPTIONS: */
@ -64,6 +68,10 @@
/* #define UMAX_CALIBRATION_MODE_SELECTABLE */
/* --------------------------------------------------------------------------------------------------------- */
#define SANE_UMAX_SCSI_MAXQUEUE 8
/* --------------------------------------------------------------------------------------------------------- */
@ -148,6 +156,10 @@ enum Umax_Option
OPT_SELECT_EXPOSURE_TIME,
OPT_SELECT_LAMP_DENSITY,
OPT_LAMP_ON,
OPT_LAMP_OFF,
OPT_LAMP_OFF_AT_EXIT,
#ifdef UMAX_SPEED_SELECTABLE
OPT_SLOW,
OPT_SMEAR,
@ -185,6 +197,7 @@ typedef union
/* LIST OF AVAILABLE SCANNERS, THE VALUES LISTED HERE ARE THE SAME FOR DIFFERENT APPLICATIONS
THAT USE THE SAME DEVICE */
/* Umax_Device contains values relevant for the device that are not intersting for the sane interface */
typedef struct Umax_Device
{
@ -197,9 +210,12 @@ typedef struct Umax_Device
SANE_Range analog_gamma_range;
unsigned flags;
unsigned char *buffer; /* buffer used for scsi-transfer */
unsigned char *buffer[SANE_UMAX_SCSI_MAXQUEUE]; /* buffer used for scsi-transfer */
void *queue_id[SANE_UMAX_SCSI_MAXQUEUE]; /* scsi queue id */
unsigned int bufsize;
unsigned int row_bufsize;
int request_scsi_maxqueue;
int scsi_maxqueue;
unsigned char *pixelbuffer; /* buffer used for pixel ordering */
unsigned int pixelline_max; /* number of lines that fit into pixelbuffer */
@ -409,17 +425,25 @@ typedef struct Umax_Device
int do_calibration; /* 1: do calibration by driver */
int do_color_ordering; /* 1: order line-mode to pixel-mode */
int button_pressed; /* scan-button on scanner is pressed => 1 */
int button0_pressed; /* scan-button 0 on scanner is pressed => 1 */
int button1_pressed; /* scan-button 1 on scanner is pressed => 1 */
int button2_pressed; /* scan-button 2 on scanner is pressed => 1 */
int calibration_area; /* define calibration area if no area is given */
int calibration_width_offset; /* some scanners do calibrate with some additional pixels */
int calibration_bytespp; /* correction of bytespp if driver knows about it */
int common_xy_resolutions; /* do not allow different x and y resolution */
int pause_for_color_calibration; /* pause between start_scan and do_calibration in ms */
int pause_for_gray_calibration; /* pause between start_scan and do_calibration in ms */
int pause_after_calibration; /* pause between do_calibration and read data in ms */
int pause_after_reposition; /* pause for repositioning in ms */
int pause_for_moving; /* pause for moving scanhead over full scanarea in ms */
int lamp_control_available; /* is set when scanner supportes lamp control */
int RGB_PREVIEW_FIX;
#ifdef HAVE_SANEI_IPC
sanei_ipc *ipc;
#endif
} Umax_Device;
@ -429,6 +453,8 @@ typedef struct Umax_Device
/* LIST OF OPEND DEVICES, A DEVICE MAY BE OPEND TWICE, ALL VALUES LISTED HERE MAY BE
DIFFERENT FOR DIFFERENT APPLICATIONS */
/* Umax_Scanner contains values relevant for the sane interface */
typedef struct Umax_Scanner
{
struct Umax_Scanner *next;
@ -448,7 +474,9 @@ typedef struct Umax_Scanner
SANE_Parameters params;
pid_t reader_pid;
#ifndef HAVE_SANEI_IPC
int pipe;
#endif
} Umax_Scanner;