kopia lustrzana https://gitlab.com/sane-project/backends
rodzic
bc7b3d76a5
commit
dfcd32f822
|
@ -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"
|
||||
};
|
||||
|
||||
/* ==================================================================== */
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 */
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
};
|
|
@ -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
|
||||
};
|
|
@ -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
|
||||
};
|
|
@ -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
|
||||
};
|
||||
|
|
@ -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
|
||||
};
|
||||
|
|
@ -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
|
||||
};
|
||||
|
|
@ -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,
|
||||
};
|
||||
|
|
@ -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
|
||||
--------------------
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
1329
backend/umax.c
1329
backend/umax.c
Plik diff jest za duży
Load Diff
|
@ -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
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue