diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2020-03-30 21:30:45 +0200 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2020-03-30 21:30:45 +0200 |
commit | ee770c2346eb37e0dcb8b6cf3eaacf3d8efd6bbc (patch) | |
tree | 58f05092be1a17a939e861f8cadcda1b6ca2ecef /backend/epson.c | |
parent | 0da9e21872802cfc6e975b1ebaf9efb9e5934d84 (diff) | |
parent | fef76e17ed4c607ea73b81279f9ef1d7121be900 (diff) |
Merge branch 'release/experimental/1.0.29-1_experimental1'experimental/1.0.29-1_experimental1
Diffstat (limited to 'backend/epson.c')
-rw-r--r-- | backend/epson.c | 362 |
1 files changed, 181 insertions, 181 deletions
diff --git a/backend/epson.c b/backend/epson.c index 3fc264f..20cafc4 100644 --- a/backend/epson.c +++ b/backend/epson.c @@ -1,4 +1,4 @@ -/* +/* epson.c - SANE library for Epson flatbed scanners. Based on Kazuhiro Sasayama previous @@ -63,7 +63,7 @@ 2006-08-21 Fix buffer overflow error (submitted by Johannes Meixner) 2006-06-11 Applied patch from Henning. Fixed a number of compiler warnings 2006-03-12 Added support for perfetion 4990 photo 4800 dpi - 2005-01-09 "flaming hack to get USB scanners working without timeouts under linux" + 2005-01-09 "flaming hack to get USB scanners working without timeouts under linux" submitted by "Steve" (in comment to bug #300830) 2004-12-18 Added USB IDs for CX-4600 and CX-3650 2004-10-16 Added USB ID for Expression 10000XL @@ -78,7 +78,7 @@ Added EPSON Kowa copyright message 2003-08-15 Added support for GT-30000, with support for the ADF in simplex mode Borrowed some code from the EPSON Kowa IScan version of the backend - Use sanei_scsi_cmd2() to send commands. This makes this backend + Use sanei_scsi_cmd2() to send commands. This makes this backend useable for SBP-2 under FreeBSD 2003-05-11 Initialize OPT_LIMIT_RESOLUTION before first call to filter_resolution_list() Fix memory problem in get_identity_information(). Both problems were @@ -88,14 +88,14 @@ 2003-02-15 Move sanei_usb_init() to sane_init(). Thanks to Ron Cemer for providing the patch. 2003-02-15 Fix problem with "usb <vendor> <product> syntax in config file - 2002-12-28 Added advanced option to display only short resolution list for + 2002-12-28 Added advanced option to display only short resolution list for displays that can not show the complete list. 2002-11-23 Fixed problem with dropout color. 2002-11-03 Full libusb support. 2002-10-05 Fixed problem with incorrect response to sane_get_parameters() in certain situations. 2002-09-01 USB scanners are now using libsane-usb funtions - 2002-08-17 Fixed typo in variable name. + 2002-08-17 Fixed typo in variable name. Fixed IEEE-1394 problem with Perfection-2450. Fixed problem with older B3 level SCSI scanners that do not support the extended status request. @@ -104,12 +104,12 @@ 2002-04-13 Check if scanner needs to be opened for the reset call. (Thanks to Thomas Wenrich for pointing this out) Added product IDs for Perfection 1650 and 2450 - 2002-01-18 Recognize GT-xxxx type scanners also when using the SCSI + 2002-01-18 Recognize GT-xxxx type scanners also when using the SCSI or IEEE-1394 interface 2002-01-06 Disable TEST_IOCTL again, which was enabled by accident. Also protect the ioctl portion with an #ifdef __linux__ 2002-01-05 Version 0.2.17 - Check for and set s->fd to -1 when device is closed. + Check for and set s->fd to -1 when device is closed. Removed black gamma table - only use RGB even for grayscale 2002-01-01 Do not call access() for OS/2 systems 2001-11-13 Version 0.2.16 @@ -126,8 +126,8 @@ 2001-06-09 Version 0.2.09 Changed debug level for sense handler from 0 to 2 2001-05-25 Version 0.2.07 - Allow more than 8 bit color depth even for preview mode - since Xsane can handle this. Some code cleanup. + Allow more than 8 bit color depth even for preview mode + since Xsane can handle this. Some code cleanup. 2001-05-24 Removed ancient code that was used to determine the resolution back when the backend still had a slider for the resolution selection. @@ -156,12 +156,12 @@ Fixed problem with bilevel scanning with Perfection610: The line count has to be an even number with this scanner. Several initialization fixes regarding bit depth selection. - This version goes back into the CVS repository, the 1.0.4 + This version goes back into the CVS repository, the 1.0.4 release is out and therefore the code freeze is over. Some general cleanup, added more comments. 2000-12-09 Version 0.2.00 Cleaned up printing of gamma table data. 16 elements - are now printed in one line without the [epson] in + are now printed in one line without the [epson] in between the values. Values are only printed for Debug levels >= 10. 2000-12-04 We've introduced the concept of inverting images @@ -175,7 +175,7 @@ 2000-12-03 added the 12/14/16 bit support again. 2000-12-03 Version 0.1.38 removed changes regarding 12/14 bit support because - of SANE feature freeze for 1.0.4. The D1 fix for + of SANE feature freeze for 1.0.4. The D1 fix for reading the values from the scanner instead of using hardcoded values and the fix for the off-by-one error in the reorder routine are still in the code base. @@ -194,13 +194,13 @@ sane/... include files. 2000-07-26 Fixed problem with Perfection610: The variable s->color_shuffle_line was never correctly initialized - 2000-06-28 When closing the scanner device the data that's + 2000-06-28 When closing the scanner device the data that's still in the scanner, waiting to be transferred is flushed. This fixes the problem with scanimage -T 2000-06-13 Invert image when scanning negative with TPU, Show film type only when TPU is selected 2000-06-13 Initialize optical_res to 0 (Dave Hill) - 2000-06-07 Fix in sane_close() - found by Henning Meier-Geinitz + 2000-06-07 Fix in sane_close() - found by Henning Meier-Geinitz 2000-06-01 Threshhold should only be active when scan depth is 1 and halftoning is off. (mjp) 2000-05-28 Turned on scanner based color correction. @@ -212,16 +212,16 @@ Help prevent extraneous option reloads. Split sane_control_option in getvalue and setvalue. Further split up setvalue into several different - routines. (mjp) - 2000-05-21 In sane_close use close_scanner instead of just the + routines. (mjp) + 2000-05-21 In sane_close use close_scanner instead of just the SCSI close function. 2000-05-20 ... finally fixed the problem with the 610 Added resolution_list to Epson_Device structure in - epson.h - this fixes a bug that caused problems when + epson.h - this fixes a bug that caused problems when more than one EPSON scanner was connected. 2000-05-13 Fixed the color problem with the Perfection 610. The few lines with "garbage" at the beginning of the scan are not - yet removed. + yet removed. 2000-05-06 Added support for multiple EPSON scanners. At this time this may not be bug free, but it's a start and it seems to work well with just one scanner. @@ -235,21 +235,21 @@ fix an OS/2 bug. It now turned out that they are not necessary. The real fix was in the repository for a long time (2000-01-25). - 2000-03-19 Fixed problem with A4 level devices - they use the - line mode instead of the block mode. The routine to - handle this was screwed up pretty bad. Now I have + 2000-03-19 Fixed problem with A4 level devices - they use the + line mode instead of the block mode. The routine to + handle this was screwed up pretty bad. Now I have a solid version that handles all variations of line mode (automatically deals with the order the color lines are sent). 2000-03-06 Fixed occasional crash after warm up when the "in warmup state" went away in between doing ESC G and getting the - extended status message. - 2000-03-02 Code cleanup, disabled ZOOM until I have time to + extended status message. + 2000-03-02 Code cleanup, disabled ZOOM until I have time to deal with all the side effects. 2000-03-01 More D1 fixes. In the future I have to come up with a more elegant solution to destinguish between different function levels. The level > n does not work anymore with - D1. + D1. Added support for "set threshold" and "set zoom". 2000-02-23 First stab at level D1 support, also added a test for valid "set halftone" command to enable OPT_HALFTONE @@ -275,11 +275,11 @@ because of hte changes to attach a few days ago. (KHK) 2000-01-29 fixed core dump with xscanimage by moving the gamma curves to the standard interface (no longer advanced) - Removed pragma pack() from source code to make it + Removed pragma pack() from source code to make it easier to compile on non-gcc compilers (KHK) 2000-01-26 fixed problem with resolution selection when using the resolution list in xsane (KHK) - 2000-01-25 moved the section where the device name is assigned + 2000-01-25 moved the section where the device name is assigned in attach. This avoids the core dump of frontend applications when no scanner is found (Dave Hill) 2000-01-24 reorganization of SCSI related "helper" functions @@ -395,7 +395,7 @@ #define EPSON_LEVEL_D7 12 #define EPSON_LEVEL_D8 13 -/* there is also a function level "A5", which I'm igoring here until somebody can +/* there is also a function level "A5", which I'm igoring here until somebody can convince me that this is still needed. The A5 level was for the GT-300, which was (is) a monochrome only scanner. So if somebody really wants to use this scanner with SANE get in touch with me and we can work something out - khk */ @@ -437,7 +437,7 @@ static EpsonCmdRec epson_cmd[] = { * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | set bay * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | set threshold * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | set focus position - * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | request focus position + * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | request focus position * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | */ @@ -460,7 +460,7 @@ static EpsonCmdRec epson_cmd[] = { /* - * Definition of the mode_param struct, that is used to + * Definition of the mode_param struct, that is used to * specify the valid parameters for the different scan modes. * * The depth variable gets updated when the bit depth is modified. @@ -508,10 +508,10 @@ static const SANE_String_Const adf_mode_list[] = { * of the scanner. */ -static SANE_String_Const source_list[] = { - FBF_STR, - NULL, - NULL, +static SANE_String_Const source_list[] = { + FBF_STR, + NULL, + NULL, NULL }; @@ -519,9 +519,9 @@ static SANE_String_Const source_list[] = { #define FILM_TYPE_POSITIVE (0) #define FILM_TYPE_NEGATIVE (1) -static const SANE_String_Const film_list[] = { - SANE_I18N ("Positive Film"), - SANE_I18N ("Negative Film"), +static const SANE_String_Const film_list[] = { + SANE_I18N ("Positive Film"), + SANE_I18N ("Negative Film"), NULL }; @@ -538,67 +538,67 @@ static const SANE_String_Const focus_list[] = { #define HALFTONE_NONE 0x01 #define HALFTONE_TET 0x03 -static int halftone_params[] = { - HALFTONE_NONE, - 0x00, - 0x10, - 0x20, - 0x80, - 0x90, - 0xa0, - 0xb0, +static int halftone_params[] = { + HALFTONE_NONE, + 0x00, + 0x10, + 0x20, + 0x80, + 0x90, + 0xa0, + 0xb0, HALFTONE_TET, - 0xc0, + 0xc0, 0xd0 }; -static const SANE_String_Const halftone_list[] = { - SANE_I18N ("None"), +static const SANE_String_Const halftone_list[] = { + SANE_I18N ("None"), SANE_I18N ("Halftone A (Hard Tone)"), - SANE_I18N ("Halftone B (Soft Tone)"), + SANE_I18N ("Halftone B (Soft Tone)"), SANE_I18N ("Halftone C (Net Screen)"), NULL }; -static const SANE_String_Const halftone_list_4[] = { - SANE_I18N ("None"), +static const SANE_String_Const halftone_list_4[] = { + SANE_I18N ("None"), SANE_I18N ("Halftone A (Hard Tone)"), - SANE_I18N ("Halftone B (Soft Tone)"), + SANE_I18N ("Halftone B (Soft Tone)"), SANE_I18N ("Halftone C (Net Screen)"), SANE_I18N ("Dither A (4x4 Bayer)"), SANE_I18N ("Dither B (4x4 Spiral)"), SANE_I18N ("Dither C (4x4 Net Screen)"), - SANE_I18N ("Dither D (8x4 Net Screen)"), + SANE_I18N ("Dither D (8x4 Net Screen)"), NULL }; -static const SANE_String_Const halftone_list_7[] = { - SANE_I18N ("None"), +static const SANE_String_Const halftone_list_7[] = { + SANE_I18N ("None"), SANE_I18N ("Halftone A (Hard Tone)"), - SANE_I18N ("Halftone B (Soft Tone)"), + SANE_I18N ("Halftone B (Soft Tone)"), SANE_I18N ("Halftone C (Net Screen)"), SANE_I18N ("Dither A (4x4 Bayer)"), SANE_I18N ("Dither B (4x4 Spiral)"), SANE_I18N ("Dither C (4x4 Net Screen)"), SANE_I18N ("Dither D (8x4 Net Screen)"), - SANE_I18N ("Text Enhanced Technology"), + SANE_I18N ("Text Enhanced Technology"), SANE_I18N ("Download pattern A"), - SANE_I18N ("Download pattern B"), + SANE_I18N ("Download pattern B"), NULL }; -static int dropout_params[] = { +static int dropout_params[] = { 0x00, /* none */ 0x10, /* red */ 0x20, /* green */ 0x30 /* blue */ }; -static const SANE_String_Const dropout_list[] = { - SANE_I18N ("None"), - SANE_I18N ("Red"), +static const SANE_String_Const dropout_list[] = { + SANE_I18N ("None"), + SANE_I18N ("Red"), SANE_I18N ("Green"), - SANE_I18N ("Blue"), + SANE_I18N ("Blue"), NULL }; @@ -606,34 +606,34 @@ static const SANE_String_Const dropout_list[] = { * Color correction: * One array for the actual parameters that get sent to the scanner (color_params[]), * one array for the strings that get displayed in the user interface (color_list[]) - * and one array to mark the user defined color correction (dolor_userdefined[]). + * and one array to mark the user defined color correction (dolor_userdefined[]). */ -static int color_params[] = { - 0x00, - 0x01, - 0x10, - 0x20, - 0x40, +static int color_params[] = { + 0x00, + 0x01, + 0x10, + 0x20, + 0x40, 0x80 }; -static SANE_Bool color_userdefined[] = { - SANE_FALSE, - SANE_TRUE, - SANE_FALSE, - SANE_FALSE, - SANE_FALSE, +static SANE_Bool color_userdefined[] = { + SANE_FALSE, + SANE_TRUE, + SANE_FALSE, + SANE_FALSE, + SANE_FALSE, SANE_FALSE }; -static const SANE_String_Const color_list[] = { - SANE_I18N ("No Correction"), +static const SANE_String_Const color_list[] = { + SANE_I18N ("No Correction"), SANE_I18N ("User defined"), - SANE_I18N ("Impact-dot printers"), + SANE_I18N ("Impact-dot printers"), SANE_I18N ("Thermal printers"), SANE_I18N ("Ink-jet printers"), - SANE_I18N ("CRT monitors"), + SANE_I18N ("CRT monitors"), NULL }; @@ -644,20 +644,20 @@ static const SANE_String_Const color_list[] = { * the actally used params and list arrays at runtime. */ -static int gamma_params_ab[] = { - 0x01, - 0x03, - 0x00, - 0x10, +static int gamma_params_ab[] = { + 0x01, + 0x03, + 0x00, + 0x10, 0x20 }; -static const SANE_String_Const gamma_list_ab[] = { - SANE_I18N ("Default"), +static const SANE_String_Const gamma_list_ab[] = { + SANE_I18N ("Default"), SANE_I18N ("User defined"), - SANE_I18N ("High density printing"), + SANE_I18N ("High density printing"), SANE_I18N ("Low density printing"), - SANE_I18N ("High contrast printing"), + SANE_I18N ("High contrast printing"), NULL }; @@ -669,14 +669,14 @@ static SANE_Bool gamma_userdefined_ab[] = { SANE_FALSE, }; -static int gamma_params_d[] = { - 0x03, +static int gamma_params_d[] = { + 0x03, 0x04 }; -static const SANE_String_Const gamma_list_d[] = { +static const SANE_String_Const gamma_list_d[] = { SANE_I18N ("User defined (Gamma=1.0)"), - SANE_I18N ("User defined (Gamma=1.8)"), + SANE_I18N ("User defined (Gamma=1.8)"), NULL }; @@ -701,13 +701,13 @@ static unsigned int w_cmd_count = 0; * this is used for the FilmScan */ -static const SANE_String_Const bay_list[] = { - " 1 ", - " 2 ", - " 3 ", - " 4 ", - " 5 ", - " 6 ", +static const SANE_String_Const bay_list[] = { + " 1 ", + " 2 ", + " 3 ", + " 4 ", + " 5 ", + " 6 ", NULL }; @@ -744,7 +744,7 @@ struct qf_param }; /* gcc don't like to overwrite const field */ -static /*const */ struct qf_param qf_params[] = { +static /*const */ struct qf_param qf_params[] = { {0, 0, SANE_FIX (120.0), SANE_FIX (120.0)}, {0, 0, SANE_FIX (148.5), SANE_FIX (210.0)}, {0, 0, SANE_FIX (210.0), SANE_FIX (148.5)}, @@ -753,13 +753,13 @@ static /*const */ struct qf_param qf_params[] = { {0, 0, 0, 0} }; -static const SANE_String_Const qf_list[] = { - SANE_I18N ("CD"), - SANE_I18N ("A5 portrait"), +static const SANE_String_Const qf_list[] = { + SANE_I18N ("CD"), + SANE_I18N ("A5 portrait"), SANE_I18N ("A5 landscape"), - SANE_I18N ("Letter"), - SANE_I18N ("A4"), - SANE_I18N ("Max"), + SANE_I18N ("Letter"), + SANE_I18N ("A4"), + SANE_I18N ("Max"), NULL }; @@ -770,7 +770,7 @@ static SANE_Word *bitDepthList = NULL; /* * List of pointers to devices - will be dynamically allocated depending - * on the number of devices found. + * on the number of devices found. */ static const SANE_Device **devlist = 0; @@ -1199,10 +1199,10 @@ set_resolution (Epson_Scanner * s, int xres, int yres) } /* - * set_scan_area() + * set_scan_area() * - * Sends the "set scan area" command to the scanner with the currently selected - * scan area. This scan area is already corrected for "color shuffling" if + * Sends the "set scan area" command to the scanner with the currently selected + * scan area. This scan area is already corrected for "color shuffling" if * necessary. */ static SANE_Status @@ -1472,7 +1472,7 @@ DetectSize: * is reported as a warning (only visible if debug level is set to 10 or greater) - * every other condition is reported as an error. * - * This function only gets called when we are dealing with a scanner that supports the + * This function only gets called when we are dealing with a scanner that supports the * "warming up" code, so it's not a problem for B3 level scanners, that don't handle * request extended status commands. */ @@ -1650,7 +1650,7 @@ close_scanner (Epson_Scanner * s) if (s->fd == -1) return; - if (r_cmd_count % 2) + if (r_cmd_count % 2) { /* send a request_status. This toggles w_cmd_count and r_cmd_count */ u_char param[3]; @@ -1668,7 +1668,7 @@ close_scanner (Epson_Scanner * s) DBG (5, "w_cmd_count = %d\n",w_cmd_count); DBG (5, "r_cmd_count = %d\n",r_cmd_count); - if (w_cmd_count % 2) + if (w_cmd_count % 2) { int junk1,junk2; @@ -1700,8 +1700,8 @@ close_scanner (Epson_Scanner * s) /* * open_scanner() * - * Open the scanner device. Depending on the connection method, - * different open functions are called. + * Open the scanner device. Depending on the connection method, + * different open functions are called. */ static SANE_Status @@ -1798,7 +1798,7 @@ feed (Epson_Scanner * s) /* * eject() - * + * * Eject the current page from the ADF. The scanner is opened prior to * sending the command and closed afterwards. * @@ -2011,7 +2011,7 @@ attach (const char *dev_name, Epson_Device * *devp, int type) } /* check for PIO devices */ - /* can we convert the device name to an integer? This is only possible + /* can we convert the device name to an integer? This is only possible with PIO devices */ port = atoi (dev_name); if (port != 0) @@ -2088,7 +2088,7 @@ attach (const char *dev_name, Epson_Device * *devp, int type) buf[INQUIRY_BUF_SIZE] = 0; DBG (1, ">%s<\n", buf + 8); - /* + /* * For USB and PIO scanners this will be done later, once * we have communication established with the device. */ @@ -2140,7 +2140,7 @@ attach (const char *dev_name, Epson_Device * *devp, int type) status = sanei_usb_find_devices (vendor, product, attach_one_usb); } - return SANE_STATUS_INVAL; /* return - the attach_one_usb() + return SANE_STATUS_INVAL; /* return - the attach_one_usb() will take care of this */ } @@ -2179,7 +2179,7 @@ attach (const char *dev_name, Epson_Device * *devp, int type) is_valid = SANE_FALSE; i = 0; - /* check all known product IDs to verify that we know + /* check all known product IDs to verify that we know about the device */ while (i != numIds && !is_valid) { @@ -2287,7 +2287,7 @@ attach (const char *dev_name, Epson_Device * *devp, int type) /* - * Check for "request focus position" command. If this command is + * Check for "request focus position" command. If this command is * supported, then the scanner does also support the "set focus * position" command. */ @@ -2350,10 +2350,10 @@ attach (const char *dev_name, Epson_Device * *devp, int type) * this also requests the scanner device name from the scanner */ /* - * because we are also using the device name from this command, + * because we are also using the device name from this command, * we have to run this block even if the scanner does not report * an extension. The extensions are only reported if the ADF or - * the TPU are actually detected. + * the TPU are actually detected. */ if (s->hw->cmd->request_extended_status != 0) { @@ -2493,7 +2493,7 @@ attach (const char *dev_name, Epson_Device * *devp, int type) SANE_FIX ((buf[10] << 8 | buf[9]) * 25.4 / dev->dpi_range.max); dev->tpu_y_range.quant = 0; - /* + /* * Check for Perfection 4990 photo/GT-X800 scanner. * This scanner only report 3200 dpi back. * The scanner fysical supports 4800 dpi. @@ -2503,11 +2503,11 @@ attach (const char *dev_name, Epson_Device * *devp, int type) */ if (strncmp((char *) buf + 0x1A,"GT-X800",7) == 0) { - dev->tpu_x_range.max = (dev->tpu_x_range.max/32)*48; - dev->tpu_y_range.max = (dev->tpu_y_range.max/32)*48; + dev->tpu_x_range.max = (dev->tpu_x_range.max/32)*48; + dev->tpu_y_range.max = (dev->tpu_y_range.max/32)*48; DBG (5, "dpi_range.max %x \n", dev->dpi_range.max); } - + DBG (5, "tpu tlx %f tly %f brx %f bry %f [mm]\n", SANE_UNFIX (dev->tpu_x_range.min), SANE_UNFIX (dev->tpu_y_range.min), @@ -2597,8 +2597,8 @@ attach (const char *dev_name, Epson_Device * *devp, int type) close_scanner (s); - /* - * we are done with this one, prepare for the next scanner: + /* + * we are done with this one, prepare for the next scanner: */ ++num_devices; @@ -2689,7 +2689,7 @@ sane_init (SANE_Int * version_code, SANE_Auth_Callback authorize) { int numIds; - /* add the vendor and product IDs to the list of + /* add the vendor and product IDs to the list of known devices before we call the attach function */ numIds = sanei_epson_getNumberOfUSBProductIds (); if (vendor != 0x4b8) @@ -2723,7 +2723,7 @@ sane_init (SANE_Int * version_code, SANE_Auth_Callback authorize) /* * void sane_exit(void) * - * Clean up the list of attached scanners. + * Clean up the list of attached scanners. */ void @@ -2914,11 +2914,11 @@ init_options (Epson_Scanner * s) s->opt[OPT_GAMMA_CORRECTION].type = SANE_TYPE_STRING; s->opt[OPT_GAMMA_CORRECTION].constraint_type = SANE_CONSTRAINT_STRING_LIST; - /* + /* * special handling for D1 function level - at this time I'm not * testing for D1, I'm just assuming that all D level scanners will * behave the same way. This has to be confirmed with the next D-level - * scanner + * scanner */ if (s->hw->cmd->level[0] == 'D') { @@ -2944,7 +2944,7 @@ init_options (Epson_Scanner * s) /* gamma vector */ -/* +/* s->opt[ OPT_GAMMA_VECTOR].name = SANE_NAME_GAMMA_VECTOR; s->opt[ OPT_GAMMA_VECTOR].title = SANE_TITLE_GAMMA_VECTOR; s->opt[ OPT_GAMMA_VECTOR].desc = SANE_DESC_GAMMA_VECTOR; @@ -3585,7 +3585,7 @@ sane_close (SANE_Handle handle) Epson_Scanner *s, *prev; /* - * Test if there is still data pending from + * Test if there is still data pending from * the scanner. If so, then do a cancel */ @@ -3828,14 +3828,14 @@ handle_source (Epson_Scanner * s, SANE_Int optindex, char *value) Handles setting the source (flatbed, transparency adapter (TPU), or auto document feeder (ADF)). - For newer scanners it also sets the focus according to the + For newer scanners it also sets the focus according to the glass / TPU settings. */ { int force_max = SANE_FALSE; SANE_Bool dummy; - /* reset the scanner when we are changing the source setting - + /* reset the scanner when we are changing the source setting - this is necessary for the Perfection 1650 */ if (s->hw->need_reset_on_source_change) reset (s); @@ -4237,7 +4237,7 @@ sane_get_parameters (SANE_Handle handle, SANE_Parameters * params) DBG (5, "sane_get_parameters()\n"); - /* + /* * If sane_start was already called, then just retrieve the parameters * from the scanner data structure */ @@ -4275,7 +4275,7 @@ sane_get_parameters (SANE_Handle handle, SANE_Parameters * params) s->params.lines = SANE_UNFIX (s->val[OPT_BR_Y].w - s->val[OPT_TL_Y].w) / 25.4 * ndpi + 0.5; - /* + /* * Make sure that the number of lines is correct for color shuffling: * The shuffling alghorithm produces 2xline_distance lines at the * beginning and the same amount at the end of the scan that are not @@ -4302,10 +4302,10 @@ sane_get_parameters (SANE_Handle handle, SANE_Parameters * params) SANE_UNFIX (s->val[OPT_BR_Y].w)); - /* - * Calculate bytes_per_pixel and bytes_per_line for + /* + * Calculate bytes_per_pixel and bytes_per_line for * any color depths. - * + * * The default color depth is stored in mode_params.depth: */ @@ -4320,8 +4320,8 @@ sane_get_parameters (SANE_Handle handle, SANE_Parameters * params) if (s->params.depth > 8) { - s->params.depth = 16; /* - * The frontends can only handle 8 or 16 bits + s->params.depth = 16; /* + * The frontends can only handle 8 or 16 bits * for gray or color - so if it's more than 8, * it gets automatically set to 16. This works * as long as EPSON does not come out with a @@ -4366,7 +4366,7 @@ sane_get_parameters (SANE_Handle handle, SANE_Parameters * params) /* * sane_start() * - * This function is part of the SANE API and gets called from the front end to + * This function is part of the SANE API and gets called from the front end to * start the scan process. * */ @@ -4396,7 +4396,7 @@ sane_start (SANE_Handle handle) * off 0 ACK * off 1 NAK * - * It makes no sense to scan with TPU powered on and source flatbed, because + * It makes no sense to scan with TPU powered on and source flatbed, because * light will come from both sides. */ @@ -4447,7 +4447,7 @@ sane_start (SANE_Handle handle) } - /* + /* * set the focus position according to the extension used: * if the TPU is selected, then focus 2.5mm above the glass, * otherwise focus on the glass. Scanners that don't support @@ -4499,7 +4499,7 @@ sane_start (SANE_Handle handle) } /* - * The byte sequence mode was introduced in B5, for B[34] we need line sequence mode + * The byte sequence mode was introduced in B5, for B[34] we need line sequence mode */ if ((s->hw->cmd->level[0] == 'D' || @@ -4641,7 +4641,7 @@ sane_start (SANE_Handle handle) if (s->hw->cmd->level[0] == 'D') { /* - * The D1 level has only the two user defined gamma + * The D1 level has only the two user defined gamma * settings. */ val = gamma_params[s->val[OPT_GAMMA_CORRECTION].w]; @@ -4652,8 +4652,8 @@ sane_start (SANE_Handle handle) /* * If "Default" is selected then determine the actual value - * to send to the scanner: If bilevel mode, just send the - * value from the table (0x01), for grayscale or color mode + * to send to the scanner: If bilevel mode, just send the + * value from the table (0x01), for grayscale or color mode * add one and send 0x02. */ /* if( s->val[ OPT_GAMMA_CORRECTION].w <= 1) { */ @@ -4766,7 +4766,7 @@ sane_start (SANE_Handle handle) /* - * If WAIT_FOR_BUTTON is active, then do just that: Wait until the button is + * If WAIT_FOR_BUTTON is active, then do just that: Wait until the button is * pressed. If the button was already pressed, then we will get the button * Pressed event right away. */ @@ -4841,8 +4841,8 @@ sane_start (SANE_Handle handle) s->hw->color_shuffle = SANE_FALSE; } -/* - * for debugging purposes: +/* + * for debugging purposes: */ #ifdef FORCE_COLOR_SHUFFLE DBG (1, "Test mode: FORCE_COLOR_SHUFFLE = TRUE\n"); @@ -4850,7 +4850,7 @@ sane_start (SANE_Handle handle) #endif - /* + /* * Modify the scan area: If the scanner requires color shuffling, then we try to * scan more lines to compensate for the lines that will be removed from the scan * due to the color shuffling alghorithm. @@ -4872,7 +4872,7 @@ sane_start (SANE_Handle handle) s->params.lines += 4 * s->line_distance; } - /* + /* * If (top + s->params.lines) is larger than the max scan area, reset * the number of scan lines: */ @@ -4897,7 +4897,7 @@ sane_start (SANE_Handle handle) lcount = 1; /* - * The set line count commands needs to be sent for certain scanners in + * The set line count commands needs to be sent for certain scanners in * color mode. The D1 level requires it, we are however only testing for * 'D' and not for the actual numeric level. */ @@ -5167,7 +5167,7 @@ read_data_block (Epson_Scanner * s, EpsonDataRec * result) /* * Hack Alert!!! - * If the status is SANE_STATUS_DEVICE_BUSY then we need to + * If the status is SANE_STATUS_DEVICE_BUSY then we need to * re-issue the command again. We can assume that the command that * caused this problem was ESC G, so in a loop with a sleep 1 we * are testing this over and over and over again, until the lamp @@ -5319,7 +5319,7 @@ START_READ: */ - /* + /* * read the first color line - the number of bytes to read * is already known (from last call to read_data_block() * We determine where to write the line from the color information @@ -5345,7 +5345,7 @@ START_READ: if (SANE_STATUS_GOOD != status) return status; - /* + /* * send the ACK signal to the scanner in order to make * it ready for the next data block. */ @@ -5484,7 +5484,7 @@ START_READ: */ /* - * Some scaners (e.g. the Perfection 1640 and GT-2200) seem + * Some scaners (e.g. the Perfection 1640 and GT-2200) seem * to have the R and G channels swapped. * The GT-8700 is the Asian version of the Perfection1640. * If the scanner name is one of these, and the scan mode is @@ -5499,9 +5499,9 @@ START_READ: s->params.format == SANE_FRAME_RGB; /* - * Certain Perfection 1650 also need this re-ordering of the two - * color channels. These scanners are identified by the problem - * with the half vertical scanning area. When we corrected this, + * Certain Perfection 1650 also need this re-ordering of the two + * color channels. These scanners are identified by the problem + * with the half vertical scanning area. When we corrected this, * we also set the variable s->hw->need_color_reorder */ if (s->hw->need_color_reorder) @@ -5551,7 +5551,7 @@ START_READ: } } - /* + /* * Do the color_shuffle if everything else is correct - at this time * most of the stuff is hardcoded for the Perfection 610 */ @@ -5562,8 +5562,8 @@ START_READ: status = color_shuffle (s, &new_length); - /* - * If no bytes are returned, check if the scanner is already done, if so, + /* + * If no bytes are returned, check if the scanner is already done, if so, * we'll probably just return, but if there is more data to process get * the next batch. */ @@ -5584,7 +5584,7 @@ START_READ: - /* + /* * copy the image data to the data memory area */ @@ -5689,10 +5689,10 @@ color_shuffle (SANE_Handle handle, int *new_length) /* - * Initialize the variables we are going to use for the + * Initialize the variables we are going to use for the * copying of the data. data_ptr is the pointer to * the currently worked on scan line. data_end is the - * end of the data area as calculated from adding *length + * end of the data area as calculated from adding *length * to the start of data. * out_data_ptr is used when writing out the processed data * and always points to the beginning of the next line to @@ -5709,7 +5709,7 @@ color_shuffle (SANE_Handle handle, int *new_length) /* * The buffer area is supposed to have a number of full scan - * lines, let's test if this is the case. + * lines, let's test if this is the case. */ if (length % s->params.bytes_per_line != 0) @@ -5785,7 +5785,7 @@ color_shuffle (SANE_Handle handle, int *new_length) */ /* - * Strip the first and last n lines and limit to + * Strip the first and last n lines and limit to */ if ((s->current_output_line >= s->line_distance) && (s->current_output_line < s->params.lines + s->line_distance)) @@ -5800,9 +5800,9 @@ color_shuffle (SANE_Handle handle, int *new_length) /* - * Now remove the 0-entry and move all other - * lines up by one. There are 2*line_distance + 1 - * buffers, * therefore the loop has to run from 0 + * Now remove the 0-entry and move all other + * lines up by one. There are 2*line_distance + 1 + * buffers, * therefore the loop has to run from 0 * to * 2*line_distance, and because we want to * copy every n+1st entry to n the loop runs * from - to 2*line_distance-1! @@ -6008,7 +6008,7 @@ get_identity_information (SANE_Handle handle) DBG (1, "maximum scan area: x %d y %d\n", x, y); k = 5; - /* + /* * Check for Perfection 4990 photo/GT-X800 scanner. * This scanner only report 3200 dpi back. * The scanner fysical supports 4800 dpi. @@ -6031,8 +6031,8 @@ get_identity_information (SANE_Handle handle) DBG (1, "product name %x %x %x %x %x %x %x %x \n", buf[0], buf[1],buf[2],buf[3],buf[4], buf[5],buf[6], buf[7] ); if (strncmp((char *) buf,"GT-X800",7) == 0) { - int val = 0x12 << 8 | 0xC0; - + int val = 0x12 << 8 | 0xC0; + s->hw->res_list_size++; s->hw->res_list = (SANE_Int *) realloc (s->hw->res_list, @@ -6169,7 +6169,7 @@ get_identity2_information (SANE_Handle handle) /* * void sane_cancel(SANE_Handle handle) - * + * * Set the cancel flag to true. The next time the backend requests data * from the scanner the CAN message will be sent. */ @@ -6260,7 +6260,7 @@ request_focus_position (SANE_Handle handle, u_char * position) /* - * Request the push button status + * Request the push button status * returns SANE_TRUE if the button was pressed * and SANE_FALSE if the button was not pressed * it also returns SANE_TRUE in case of an error. |