1 /* sane - Scanner Access Now Easy. 2 3 Copyright (C) 2002 Sergey Vlasov <vsu@altlinux.ru> 4 Copyright (C) 2002 - 2007 Henning Geinitz <sane@geinitz.org> 5 6 This file is part of the SANE package. 7 8 This program is free software; you can redistribute it and/or 9 modify it under the terms of the GNU General Public License as 10 published by the Free Software Foundation; either version 2 of the 11 License, or (at your option) any later version. 12 13 This program is distributed in the hope that it will be useful, but 14 WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program. If not, see <https://www.gnu.org/licenses/>. 20 21 As a special exception, the authors of SANE give permission for 22 additional uses of the libraries contained in this release of SANE. 23 24 The exception is that, if you link a SANE library with other files 25 to produce an executable, this does not by itself cause the 26 resulting executable to be covered by the GNU General Public 27 License. Your use of that executable is in no way restricted on 28 account of linking the SANE library code into it. 29 30 This exception does not, however, invalidate any other reasons why 31 the executable file might be covered by the GNU General Public 32 License. 33 34 If you submit changes to SANE to the maintainers to be included in 35 a subsequent release, you agree by submitting the changes that 36 those changes may be distributed with this exception intact. 37 38 If you write modifications of your own for SANE, it is your choice 39 whether to permit this exception to apply to your modifications. 40 If you do not wish that, delete this exception notice. 41 */ 42 43 /* Scanner-specific data */ 44 45 #include "gt68xx_low.h" 46 #include "gt68xx_generic.c" 47 #include "gt68xx_gt6801.c" 48 #include "gt68xx_gt6816.c" 49 50 static GT68xx_Command_Set mustek_gt6816_command_set = { 51 "mustek-gt6816", /* Name of this command set */ 52 53 0x40, /* Request type */ 54 0x01, /* Request */ 55 56 0x200c, /* Memory read - wValue */ 57 0x200b, /* Memory write - wValue */ 58 59 0x2010, /* Send normal command - wValue */ 60 0x3f40, /* Send normal command - wIndex */ 61 0x2011, /* Receive normal result - wValue */ 62 0x3f00, /* Receive normal result - wIndex */ 63 64 0x2012, /* Send small command - wValue */ 65 0x3f40, /* Send small command - wIndex */ 66 0x2013, /* Receive small result - wValue */ 67 0x3f00, /* Receive small result - wIndex */ 68 69 /* activate */ NULL, 70 /* deactivate */ NULL, 71 gt6816_check_firmware, 72 gt6816_download_firmware, 73 gt6816_get_power_status, 74 gt6816_get_ta_status, 75 gt6816_lamp_control, 76 gt6816_is_moving, 77 gt68xx_generic_move_relative, 78 gt6816_carriage_home, 79 /* gt68xx_generic_paperfeed */ NULL, 80 gt68xx_generic_start_scan, 81 gt68xx_generic_read_scanned_data, 82 gt6816_stop_scan, 83 gt68xx_generic_setup_scan, 84 gt68xx_generic_set_afe, 85 gt68xx_generic_set_exposure_time, 86 gt68xx_generic_get_id, 87 /* gt68xx_generic_move_paper */ NULL, 88 /* gt6816_document_present */ NULL 89 }; 90 91 static GT68xx_Command_Set mustek_gt6816_sheetfed_command_set = { 92 "mustek-gt6816", /* Name of this command set */ 93 94 0x40, /* Request type */ 95 0x01, /* Request */ 96 97 0x200c, /* Memory read - wValue */ 98 0x200b, /* Memory write - wValue */ 99 100 0x2010, /* Send normal command - wValue */ 101 0x3f40, /* Send normal command - wIndex */ 102 0x2011, /* Receive normal result - wValue */ 103 0x3f00, /* Receive normal result - wIndex */ 104 105 0x2012, /* Send small command - wValue */ 106 0x3f40, /* Send small command - wIndex */ 107 0x2013, /* Receive small result - wValue */ 108 0x3f00, /* Receive small result - wIndex */ 109 110 /* activate */ NULL, 111 /* deactivate */ NULL, 112 gt6816_check_firmware, 113 gt6816_download_firmware, 114 gt6816_get_power_status, 115 gt6816_get_ta_status, 116 gt6816_lamp_control, 117 gt6816_is_moving, 118 gt68xx_generic_move_relative, 119 /* gt6816_carriage_home */ NULL, 120 gt68xx_generic_paperfeed, 121 gt68xx_generic_start_scan, 122 gt68xx_generic_read_scanned_data, 123 gt6801_stop_scan, 124 gt68xx_generic_setup_scan, 125 gt68xx_generic_set_afe, 126 gt68xx_generic_set_exposure_time, 127 gt68xx_generic_get_id, 128 gt68xx_generic_move_paper, 129 gt6816_document_present 130 }; 131 132 static GT68xx_Command_Set mustek_gt6801_command_set = { 133 "mustek-gt6801", 134 135 136 0x40, /* Request type */ 137 0x01, /* Request */ 138 139 0x200a, /* Memory read - wValue */ 140 0x2009, /* Memory write - wValue */ 141 142 0x2010, /* Send normal command - wValue */ 143 0x3f40, /* Send normal command - wIndex */ 144 0x2011, /* Receive normal result - wValue */ 145 0x3f00, /* Receive normal result - wIndex */ 146 147 0x2012, /* Send small command - wValue */ 148 0x3f40, /* Send small command - wIndex */ 149 0x2013, /* Receive small result - wValue */ 150 0x3f00, /* Receive small result - wIndex */ 151 152 /* activate */ NULL, 153 /* deactivate */ NULL, 154 gt6801_check_firmware, 155 gt6801_download_firmware, 156 gt6801_get_power_status, 157 /* get_ta_status (FIXME: implement this) */ NULL, 158 gt6801_lamp_control, 159 gt6801_is_moving, 160 /* gt68xx_generic_move_relative *** to be tested */ NULL, 161 gt6801_carriage_home, 162 /* gt68xx_generic_paperfeed */ NULL, 163 gt68xx_generic_start_scan, 164 gt68xx_generic_read_scanned_data, 165 gt6801_stop_scan, 166 gt68xx_generic_setup_scan, 167 gt68xx_generic_set_afe, 168 gt68xx_generic_set_exposure_time, 169 gt68xx_generic_get_id, 170 /* gt68xx_generic_move_paper */ NULL, 171 /* gt6816_document_present */ NULL 172 }; 173 174 static GT68xx_Command_Set plustek_gt6801_command_set = { 175 "plustek-gt6801", 176 177 0x40, /* Request type */ 178 0x04, /* Request */ 179 180 0x200a, /* Memory read - wValue */ 181 0x2009, /* Memory write - wValue */ 182 183 0x2010, /* Send normal command - wValue */ 184 0x3f40, /* Send normal command - wIndex */ 185 0x2011, /* Receive normal result - wValue */ 186 0x3f00, /* Receive normal result - wIndex */ 187 188 0x2012, /* Send small command - wValue */ 189 0x3f40, /* Send small command - wIndex */ 190 0x2013, /* Receive small result - wValue */ 191 0x3f00, /* Receive small result - wIndex */ 192 193 /* activate */ NULL, 194 /* deactivate */ NULL, 195 gt6801_check_plustek_firmware, 196 gt6801_download_firmware, 197 gt6801_get_power_status, 198 /* get_ta_status (FIXME: implement this) */ NULL, 199 gt6801_lamp_control, 200 gt6801_is_moving, 201 /* gt68xx_generic_move_relative *** to be tested */ NULL, 202 gt6801_carriage_home, 203 /* gt68xx_generic_paperfeed */ NULL, 204 gt68xx_generic_start_scan, 205 gt68xx_generic_read_scanned_data, 206 gt6801_stop_scan, 207 gt68xx_generic_setup_scan, 208 gt68xx_generic_set_afe, 209 /* set_exposure_time */ NULL, 210 gt68xx_generic_get_id, 211 /* gt68xx_generic_move_paper */ NULL, 212 /* gt6816_document_present */ NULL 213 }; 214 215 static GT68xx_Model unknown_model = { 216 "unknown-scanner", /* Name */ 217 "unknown manufacturer", /* Device vendor string */ 218 "unknown device -- use override to select", /* Device model name */ 219 "unknown", /* Name of the firmware file */ 220 SANE_FALSE, /* Dynamic allocation flag */ 221 222 &mustek_gt6816_command_set, /* Command set used by this scanner */ 223 224 600, /* maximum optical sensor resolution */ 225 1200, /* maximum motor resolution */ 226 600, /* base x-res used to calculate geometry */ 227 600, /* base y-res used to calculate geometry */ 228 1200, /* if ydpi is equal or higher, disable backtracking */ 229 SANE_FALSE, /* Use base_ydpi for all resolutions */ 230 231 {600, 300, 150, 75, 50, 0}, /* possible x-resolutions */ 232 {1200, 600, 300, 150, 75, 50, 0}, /* possible y-resolutions */ 233 {8, 0}, /* possible depths in gray mode */ 234 {8, 0}, /* possible depths in color mode */ 235 236 SANE_FIX (0.0), /* Start of scan area in mm (x) */ 237 SANE_FIX (13.0), /* Start of scan area in mm (y) */ 238 SANE_FIX (200.0), /* Size of scan area in mm (x) */ 239 SANE_FIX (280.0), /* Size of scan area in mm (y) */ 240 241 SANE_FIX (9.0), /* Start of white strip in mm (y) */ 242 SANE_FIX (0.0), /* Start of black mark in mm (x) */ 243 244 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 245 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 246 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 247 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 248 249 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 250 251 0, 0, 0, /* RGB CCD Line-distance correction in pixel */ 252 0, /* CCD distcance for CCD with 6 lines) */ 253 254 COLOR_ORDER_BGR, /* Order of the CCD/CIS colors */ 255 {0x14, 0x07, 0x14, 0x07, 0x14, 0x07}, /* Default offset/gain */ 256 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 257 SANE_FIX (2.0), /* Default gamma value */ 258 259 SANE_TRUE, /* Is this a CIS scanner? */ 260 GT68XX_FLAG_NO_STOP /* Which flags are needed for this scanner? */ 261 /* Standard values for unknown scanner */ 262 }; 263 264 static GT68xx_Model mustek_2400ta_model = { 265 "mustek-bearpaw-2400-ta", /* Name */ 266 "Mustek", /* Device vendor string */ 267 "BearPaw 2400 TA", /* Device model name */ 268 "A2fw.usb", /* Name of the firmware file */ 269 SANE_FALSE, /* Dynamic allocation flag */ 270 271 &mustek_gt6816_command_set, /* Command set used by this scanner */ 272 273 1200, /* maximum optical sensor resolution */ 274 2400, /* maximum motor resolution */ 275 1200, /* base x-res used to calculate geometry */ 276 1200, /* base y-res used to calculate geometry */ 277 1200, /* if ydpi is equal or higher, disable backtracking */ 278 SANE_FALSE, /* Use base_ydpi for all resolutions */ 279 280 {1200, 600, 300, 200, 100, 50, 0}, /* possible x-resolutions */ 281 {2400, 1200, 600, 300, 200, 100, 50, 0}, /* possible y-resolutions */ 282 {16, 12, 8, 0}, /* possible depths in gray mode */ 283 {16, 12, 8, 0}, /* possible depths in color mode */ 284 285 SANE_FIX (3.67), /* Start of scan area in mm (x) */ 286 SANE_FIX (7.4), /* Start of scan area in mm (y) */ 287 SANE_FIX (219.0), /* Size of scan area in mm (x) */ 288 SANE_FIX (298.0), /* Size of scan area in mm (y) */ 289 290 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 291 SANE_FIX (0.635), /* Start of black mark in mm (x) */ 292 293 SANE_FIX (94.0), /* Start of scan area in TA mode in mm (x) */ 294 SANE_FIX (107.0), /* Start of scan area in TA mode in mm (y) */ 295 SANE_FIX (37.0), /* Size of scan area in TA mode in mm (x) */ 296 SANE_FIX (165.0), /* Size of scan area in TA mode in mm (y) */ 297 SANE_FIX (95.0), /* Start of white strip in TA mode in mm (y) */ 298 299 0, 24, 48, /* RGB CCD Line-distance correction in pixel */ 300 0, /* CCD distcance for CCD with 6 lines) */ 301 302 COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ 303 {0x2a, 0x0c, 0x2e, 0x06, 0x2d, 0x07}, /* Default offset/gain */ 304 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 305 SANE_FIX (2.0), /* Default gamma value */ 306 307 SANE_FALSE, /* Is this a CIS scanner? */ 308 GT68XX_FLAG_SCAN_FROM_HOME /* Which flags are needed for this scanner? */ 309 /* flatbed values tested */ 310 }; 311 312 static GT68xx_Model mustek_2400taplus_model = { 313 "mustek-bearpaw-2400-ta-plus", /* Name */ 314 "Mustek", /* Device vendor string */ 315 "BearPaw 2400 TA Plus", /* Device model name */ 316 "A2Dfw.usb", /* Name of the firmware file */ 317 SANE_FALSE, /* Dynamic allocation flag */ 318 319 &mustek_gt6816_command_set, /* Command set used by this scanner */ 320 321 1200, /* maximum optical sensor resolution */ 322 2400, /* maximum motor resolution */ 323 600, /* base x-res used to calculate geometry */ 324 1200, /* base y-res used to calculate geometry */ 325 1200, /* if ydpi is equal or higher, disable backtracking */ 326 SANE_FALSE, /* Use base_ydpi for all resolutions */ 327 328 {1200, 600, 300, 100, 50, 0}, /* possible x-resolutions */ 329 {2400, 1200, 600, 300, 100, 50, 0}, /* possible y-resolutions */ 330 {8, 0}, /* possible depths in gray mode */ 331 {16, 12, 8, 0}, /* possible depths in color mode */ 332 333 SANE_FIX (7.41), /* Start of scan area in mm (x) */ 334 SANE_FIX (7.4), /* Start of scan area in mm (y) */ 335 SANE_FIX (217.5), /* Size of scan area in mm (x) */ 336 SANE_FIX (298.0), /* Size of scan area in mm (y) */ 337 338 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 339 SANE_FIX (5.0), /* Start of black mark in mm (x) */ 340 341 SANE_FIX (94.0), /* Start of scan area in TA mode in mm (x) */ 342 SANE_FIX (107.0) /* Start of scan area in TA mode in mm (y) */ , 343 SANE_FIX (37.0), /* Size of scan area in TA mode in mm (x) */ 344 SANE_FIX (165.0), /* Size of scan area in TA mode in mm (y) */ 345 346 SANE_FIX (95.0), /* Start of white strip in TA mode in mm (y) */ 347 348 0, 48, 96, /* RGB CCD Line-distance correction in pixel */ 349 8, /* CCD distcance for CCD with 6 lines) */ 350 351 COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ 352 {0x2a, 0x0c, 0x2e, 0x06, 0x2d, 0x07}, /* Default offset/gain */ 353 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 354 SANE_FIX (2.0), /* Default gamma value */ 355 356 SANE_FALSE, /* Is this a CIS scanner? */ 357 GT68XX_FLAG_USE_OPTICAL_X | GT68XX_FLAG_SCAN_FROM_HOME /* Which flags are needed for this scanner? */ 358 /* Setup and tested */ 359 }; 360 361 static GT68xx_Model mustek_2448taplus_model = { 362 "mustek-bearpaw-2448-ta-plus", /* Name */ 363 "Mustek", /* Device vendor string */ 364 "BearPaw 2448 TA Plus", /* Device model name */ 365 "A2Nfw.usb", /* Name of the firmware file */ 366 SANE_FALSE, /* Dynamic allocation flag */ 367 368 &mustek_gt6816_command_set, /* Command set used by this scanner */ 369 370 1200, /* maximum optical sensor resolution */ 371 2400, /* maximum motor resolution */ 372 600, /* base x-res used to calculate geometry */ 373 1200, /* base y-res used to calculate geometry */ 374 1200, /* if ydpi is equal or higher, disable backtracking */ 375 SANE_FALSE, /* Use base_ydpi for all resolutions */ 376 377 {1200, 600, 300, 200, 100, 0}, /* possible x-resolutions */ 378 {2400, 1200, 600, 300, 200, 100, 0}, /* possible y-resolutions */ 379 {16, 12, 8, 0}, /* possible depths in gray mode */ 380 {16, 12, 8, 0}, /* possible depths in color mode */ 381 382 SANE_FIX (7.41), /* Start of scan area in mm (x) */ 383 SANE_FIX (7.4), /* Start of scan area in mm (y) */ 384 SANE_FIX (216.3), /* Size of scan area in mm (x) */ 385 SANE_FIX (297.5), /* Size of scan area in mm (y) */ 386 387 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 388 SANE_FIX (4.0), /* Start of black mark in mm (x) */ 389 390 SANE_FIX (94.0), /* Start of scan area in TA mode in mm (x) */ 391 SANE_FIX (105.0), /* Start of scan area in TA mode in mm (y) */ 392 SANE_FIX (36.0), /* Size of scan area in TA mode in mm (x) */ 393 SANE_FIX (165.0), /* Size of scan area in TA mode in mm (y) */ 394 395 SANE_FIX (95.0), /* Start of white strip in TA mode in mm (y) */ 396 397 0, 48, 96, /* RGB CCD Line-distance correction in pixel */ 398 8, /* CCD distcance for CCD with 6 lines) */ 399 400 COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ 401 {0x2a, 0x0c, 0x2e, 0x06, 0x2d, 0x07}, /* Default offset/gain */ 402 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 403 SANE_FIX (2.0), /* Default gamma value */ 404 405 SANE_FALSE, /* Is this a CIS scanner? */ 406 GT68XX_FLAG_NO_STOP /* Which flags are needed for this scanner? */ 407 /* Based on data from Jakub Dvořák <xdvorak@chello.cz>. */ 408 }; 409 410 static GT68xx_Model mustek_1200ta_model = { 411 "mustek-bearpaw-1200-ta", /* Name */ 412 "Mustek", /* Device vendor string */ 413 "BearPaw 1200 TA", /* Device model name */ 414 "A1fw.usb", /* Name of the firmware file */ 415 SANE_FALSE, /* Dynamic allocation flag */ 416 417 &mustek_gt6816_command_set, /* Command set used by this scanner */ 418 419 600, /* maximum optical sensor resolution */ 420 1200, /* maximum motor resolution */ 421 600, /* base x-res used to calculate geometry */ 422 600, /* base y-res used to calculate geometry */ 423 1200, /* if ydpi is equal or higher, disable backtracking */ 424 SANE_TRUE, /* Use base_ydpi for all resolutions */ 425 426 {600, 300, 150, 75, 50, 0}, /* possible x-resolutions */ 427 {1200, 600, 300, 150, 75, 50, 0}, /* possible y-resolutions */ 428 {16, 12, 8, 0}, /* possible depths in gray mode */ 429 {16, 12, 8, 0}, /* possible depths in color mode */ 430 431 SANE_FIX (8.4), /* Start of scan area in mm (x) */ 432 SANE_FIX (7.5), /* Start of scan area in mm (y) */ 433 SANE_FIX (220.0), /* Size of scan area in mm (x) */ 434 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 435 436 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 437 SANE_FIX (6.9), /* Start of black mark in mm (x) */ 438 439 SANE_FIX (98.0), /* Start of scan area in TA mode in mm (x) */ 440 SANE_FIX (108.0), /* Start of scan area in TA mode in mm (y) */ 441 SANE_FIX (37.0), /* Size of scan area in TA mode in mm (x) */ 442 SANE_FIX (163.0), /* Size of scan area in TA mode in mm (y) */ 443 444 SANE_FIX (95.0), /* Start of white strip in TA mode in mm (y) */ 445 446 32, 16, 0, /* RGB CCD Line-distance correction in pixel */ 447 0, /* CCD distcance for CCD with 6 lines) */ 448 449 COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ 450 {0x2a, 0x0c, 0x2e, 0x06, 0x2d, 0x07}, /* Default offset/gain */ 451 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 452 SANE_FIX (2.0), /* Default gamma value */ 453 454 SANE_FALSE, /* Is this a CIS scanner? */ 455 0 /* Which flags are needed for this scanner? */ 456 /* Setup for 1200 TA */ 457 }; 458 459 static GT68xx_Model mustek_1200cuplus_model = { 460 "mustek-bearpaw-1200-cu-plus", /* Name */ 461 "Mustek", /* Device vendor string */ 462 "Bearpaw 1200 CU Plus", /* Device model name */ 463 "PS1Dfw.usb", /* Name of the firmware file */ 464 SANE_FALSE, /* Dynamic allocation flag */ 465 466 &mustek_gt6816_command_set, /* Command set used by this scanner */ 467 468 600, /* maximum optical sensor resolution */ 469 1200, /* maximum motor resolution */ 470 600, /* base x-res used to calculate geometry */ 471 600, /* base y-res used to calculate geometry */ 472 1200, /* if ydpi is equal or higher, disable backtracking */ 473 SANE_FALSE, /* Use base_ydpi for all resolutions */ 474 475 {600, 300, 150, 75, 50, 0}, /* possible x-resolutions */ 476 {1200, 600, 300, 150, 75, 50, 0}, /* possible y-resolutions */ 477 {16, 12, 8, 0}, /* possible depths in gray mode */ 478 {16, 12, 8, 0}, /* possible depths in color mode */ 479 480 SANE_FIX (0.0), /* Start of scan area in mm (x) */ 481 SANE_FIX (13.0), /* Start of scan area in mm (y) */ 482 SANE_FIX (217.0), /* Size of scan area in mm (x) */ 483 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 484 485 SANE_FIX (9.0), /* Start of white strip in mm (y) */ 486 SANE_FIX (0.0), /* Start of black mark in mm (x) */ 487 488 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 489 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 490 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 491 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 492 493 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 494 495 0, 0, 0, /* RGB CCD Line-distance correction in pixel */ 496 0, /* CCD distcance for CCD with 6 lines) */ 497 498 COLOR_ORDER_BGR, /* Order of the CCD/CIS colors */ 499 {0x14, 0x07, 0x14, 0x07, 0x14, 0x07}, /* Default offset/gain */ 500 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 501 SANE_FIX (2.0), /* Default gamma value */ 502 503 SANE_TRUE, /* Is this a CIS scanner? */ 504 GT68XX_FLAG_NO_STOP /* Which flags are needed for this scanner? */ 505 /* Tested by Hamersky Robert r.hamersky at utanet.at */ 506 }; 507 508 static GT68xx_Model mustek_1200cuplus2_model = { 509 "mustek-bearpaw-1200-cu-plus-2", /* Name */ 510 "Mustek", /* Device vendor string */ 511 "Bearpaw 1200 CU Plus", /* Device model name */ 512 "PS1Gfw.usb", /* Name of the firmware file */ 513 SANE_FALSE, /* Dynamic allocation flag */ 514 515 &mustek_gt6816_command_set, /* Command set used by this scanner */ 516 517 600, /* maximum optical sensor resolution */ 518 1200, /* maximum motor resolution */ 519 600, /* base x-res used to calculate geometry */ 520 600, /* base y-res used to calculate geometry */ 521 1200, /* if ydpi is equal or higher, disable backtracking */ 522 SANE_FALSE, /* Use base_ydpi for all resolutions */ 523 524 {600, 300, 150, 75, 50, 0}, /* possible x-resolutions */ 525 {1200, 600, 300, 150, 75, 50, 0}, /* possible y-resolutions */ 526 {16, 12, 8, 0}, /* possible depths in gray mode */ 527 {16, 12, 8, 0}, /* possible depths in color mode */ 528 529 SANE_FIX (4.0), /* Start of scan area in mm (x) */ 530 SANE_FIX (13.0), /* Start of scan area in mm (y) */ 531 SANE_FIX (217.0), /* Size of scan area in mm (x) */ 532 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 533 534 SANE_FIX (5.0), /* Start of white strip in mm (y) */ 535 SANE_FIX (0.0), /* Start of black mark in mm (x) */ 536 537 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 538 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 539 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 540 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 541 542 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 543 544 0, 0, 0, /* RGB CCD Line-distance correction in pixel */ 545 0, /* CCD distcance for CCD with 6 lines) */ 546 547 COLOR_ORDER_BGR, /* Order of the CCD/CIS colors */ 548 {0x19, 0x03, 0x1b, 0x05, 0x19, 0x03}, /* Default offset/gain */ 549 {0xb0, 0xb0, 0xb0}, /* Default exposure parameters */ 550 SANE_FIX (1.5), /* Default gamma value */ 551 552 SANE_TRUE, /* Is this a CIS scanner? */ 553 GT68XX_FLAG_NO_STOP /* Which flags are needed for this scanner? */ 554 /* Tested by hmg */ 555 }; 556 557 static GT68xx_Model mustek_2400cuplus_model = { 558 "mustek-bearpaw-2400-cu-plus", /* Name */ 559 "Mustek", /* Device vendor string */ 560 "BearPaw 2400 CU Plus", /* Device model name */ 561 "PS2Dfw.usb", /* Name of the firmware file */ 562 SANE_FALSE, /* Dynamic allocation flag */ 563 564 &mustek_gt6816_command_set, /* Command set used by this scanner */ 565 566 1200, /* maximum optical sensor resolution */ 567 2400, /* maximum motor resolution */ 568 1200, /* base x-res used to calculate geometry */ 569 1200, /* base y-res used to calculate geometry */ 570 1200, /* if ydpi is equal or higher, disable backtracking */ 571 SANE_FALSE, /* Use base_ydpi for all resolutions */ 572 573 {1200, 600, 300, 200, 150, 100, 50, 0}, /* possible x-resolutions */ 574 {2400, 1200, 600, 300, 200, 150, 100, 50, 0}, /* possible y-resolutions */ 575 {16, 12, 8, 0}, /* possible depths in gray mode */ 576 {16, 12, 8, 0}, /* possible depths in color mode */ 577 578 SANE_FIX (2.0), /* Start of scan area in mm (x) */ 579 SANE_FIX (13.0), /* Start of scan area in mm (y) */ 580 SANE_FIX (217.0), /* Size of scan area in mm (x) */ 581 SANE_FIX (300.0), /* Size of scan area in mm (y) */ 582 583 SANE_FIX (4.0), /* Start of white strip in mm (y) */ 584 SANE_FIX (0.0), /* Start of black mark in mm (x) */ 585 586 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 587 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 588 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 589 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 590 591 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 592 593 0, 0, 0, /* RGB CCD Line-distance correction in pixel */ 594 0, /* CCD distcance for CCD with 6 lines) */ 595 596 COLOR_ORDER_BGR, /* Order of the CCD/CIS colors */ 597 {0x15, 0x08, 0x12, 0x05, 0x12, 0x05}, /* Default offset/gain */ 598 {0x2a0, 0x1ab, 0x10d}, /* Default exposure parameters */ 599 SANE_FIX (1.5), /* Default gamma value */ 600 601 SANE_TRUE, /* Is this a CIS scanner? */ 602 GT68XX_FLAG_NO_STOP /* Which flags are needed for this scanner? */ 603 /* Setup and tested */ 604 }; 605 606 /* Seems that Mustek ScanExpress 1200 UB Plus, the Mustek BearPaw 1200 CU 607 * and lots of other scanners have the same USB identifier. 608 */ 609 static GT68xx_Model mustek_1200cu_model = { 610 "mustek-bearpaw-1200-cu", /* Name */ 611 "Mustek", /* Device vendor string */ 612 "BearPaw 1200 CU", /* Device model name */ 613 "PS1fw.usb", /* Name of the firmware file */ 614 SANE_FALSE, /* Dynamic allocation flag */ 615 616 &mustek_gt6801_command_set, /* Command set used by this scanner */ 617 618 600, /* maximum optical sensor resolution */ 619 1200, /* maximum motor resolution */ 620 600, /* base x-res used to calculate geometry */ 621 600, /* base y-res used to calculate geometry */ 622 600, /* if ydpi is equal or higher, disable backtracking */ 623 SANE_TRUE, /* Use base_ydpi for all resolutions */ 624 625 {600, 300, 150, 75, 50, 0}, /* possible x-resolutions */ 626 {1200, 600, 300, 150, 75, 50, 0}, /* possible y-resolutions */ 627 {12, 8, 0}, /* possible depths in gray mode */ 628 {12, 8, 0}, /* possible depths in color mode */ 629 630 SANE_FIX (0.0), /* Start of scan area in mm (x) */ 631 SANE_FIX (13.0), /* Start of scan area in mm (y) */ 632 SANE_FIX (217.0), /* Size of scan area in mm (x) */ 633 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 634 635 SANE_FIX (4.2), /* Start of white strip in mm (y) */ 636 SANE_FIX (0.0), /* Start of black mark in mm (x) */ 637 638 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 639 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 640 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 641 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 642 643 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 644 645 0, 0, 0, /* RGB CCD Line-distance correction in pixel */ 646 0, /* CCD distcance for CCD with 6 lines) */ 647 648 COLOR_ORDER_BGR, /* Order of the CCD/CIS colors */ 649 {0x13, 0x04, 0x15, 0x06, 0x0f, 0x02}, /* Default offset/gain */ 650 {0x150, 0x150, 0x150}, /* Default exposure parameters */ 651 SANE_FIX (2.0), /* Default gamma value */ 652 653 SANE_TRUE, /* Is this a CIS scanner? */ 654 0 /* Which flags are needed for this scanner? */ 655 /* Setup and tested */ 656 }; 657 658 static GT68xx_Model mustek_scanexpress1200ubplus_model = { 659 "mustek-scanexpress-1200-ub-plus", /* Name */ 660 "Mustek", /* Device vendor string */ 661 "ScanExpress 1200 UB Plus", /* Device model name */ 662 "SBfw.usb", /* Name of the firmware file */ 663 SANE_FALSE, /* Dynamic allocation flag */ 664 665 &mustek_gt6801_command_set, /* Command set used by this scanner */ 666 667 600, /* maximum optical sensor resolution */ 668 1200, /* maximum motor resolution */ 669 600, /* base x-res used to calculate geometry */ 670 600, /* base y-res used to calculate geometry */ 671 1200, /* if ydpi is equal or higher, disable backtracking */ 672 SANE_TRUE, /* Use base_ydpi for all resolutions */ 673 674 {600, 300, 150, 75, 50, 0}, /* possible x-resolutions */ 675 {1200, 600, 300, 150, 75, 50, 0}, /* possible y-resolutions */ 676 {12, 8, 0}, /* possible depths in gray mode */ 677 {12, 8, 0}, /* possible depths in color mode */ 678 679 SANE_FIX (0.0), /* Start of scan area in mm (x) */ 680 SANE_FIX (15.5), /* Start of scan area in mm (y) */ 681 SANE_FIX (217.0), /* Size of scan area in mm (x) */ 682 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 683 684 SANE_FIX (6.5), /* Start of white strip in mm (y) */ 685 SANE_FIX (0.0), /* Start of black mark in mm (x) */ 686 687 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 688 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 689 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 690 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 691 692 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 693 694 0, 0, 0, /* RGB CCD Line-distance correction in pixel */ 695 0, /* CCD distcance for CCD with 6 lines) */ 696 697 COLOR_ORDER_BGR, /* Order of the CCD/CIS colors */ 698 {0x0f, 0x01, 0x15, 0x06, 0x13, 0x04}, /* Default offset/gain */ 699 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 700 SANE_FIX (2.0), /* Default gamma value */ 701 702 SANE_TRUE, /* Is this a CIS scanner? */ 703 0 /* Which flags are needed for this scanner? */ 704 /* Setup and tested */ 705 }; 706 707 static GT68xx_Model mustek_scanexpress1248ub_model = { 708 "mustek-scanexpress-1248-ub", /* Name */ 709 "Mustek", /* Device vendor string */ 710 "ScanExpress 1248 UB", /* Device model name */ 711 "SBSfw.usb", /* Name of the firmware file */ 712 SANE_FALSE, /* Dynamic allocation flag */ 713 714 &mustek_gt6816_command_set, /* Command set used by this scanner */ 715 716 600, /* maximum optical sensor resolution */ 717 1200, /* maximum motor resolution */ 718 600, /* base x-res used to calculate geometry */ 719 600, /* base y-res used to calculate geometry */ 720 1200, /* if ydpi is equal or higher, disable backtracking */ 721 SANE_FALSE, /* Use base_ydpi for all resolutions */ 722 723 {600, 300, 150, 75, 50, 0}, /* possible x-resolutions */ 724 {1200, 600, 300, 150, 75, 50, 0}, /* possible y-resolutions */ 725 {16, 12, 8, 0}, /* possible depths in gray mode */ 726 {16, 12, 8, 0}, /* possible depths in color mode */ 727 728 SANE_FIX (4.0), /* Start of scan area in mm (x) */ 729 SANE_FIX (14.5), /* Start of scan area in mm (y) */ 730 SANE_FIX (217.0), /* Size of scan area in mm (x) */ 731 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 732 733 SANE_FIX (9.0), /* Start of white strip in mm (y) */ 734 SANE_FIX (0.0), /* Start of black mark in mm (x) */ 735 736 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 737 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 738 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 739 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 740 741 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 742 743 0, 0, 0, /* RGB CCD Line-distance correction in pixel */ 744 0, /* CCD distcance for CCD with 6 lines) */ 745 746 COLOR_ORDER_BGR, /* Order of the CCD/CIS colors */ 747 {0x1e, 0x08, 0x21, 0x0d, 0x1b, 0x05}, /* Default offset/gain */ 748 {0x50, 0x50, 0x50}, /* Default exposure parameters */ 749 SANE_FIX (1.5), /* Default gamma value */ 750 751 SANE_TRUE, /* Is this a CIS scanner? */ 752 GT68XX_FLAG_NO_STOP /* Which flags are needed for this scanner? */ 753 /* tested by hmg */ 754 }; 755 756 757 static GT68xx_Model artec_ultima2000_model = { 758 "artec-ultima-2000", /* Name */ 759 "Artec", /* Device vendor string */ 760 "Ultima 2000", /* Device model name */ 761 "Gt680xfw.usb", /* Name of the firmware file */ 762 SANE_FALSE, /* Dynamic allocation flag */ 763 764 &mustek_gt6801_command_set, /* Command set used by this scanner */ 765 766 600, /* maximum optical sensor resolution */ 767 600, /* maximum motor resolution */ 768 600, /* base x-res used to calculate geometry */ 769 600, /* base y-res used to calculate geometry */ 770 1200, /* if ydpi is equal or higher, disable backtracking */ 771 SANE_TRUE, /* Use base_ydpi for all resolutions */ 772 773 {600, 300, 200, 150, 100, 75, 50, 0}, /* possible x-resolutions */ 774 {600, 300, 200, 150, 100, 75, 50, 0}, /* possible y-resolutions */ 775 {12, 8, 0}, /* possible depths in gray mode */ 776 {12, 8, 0}, /* possible depths in color mode */ 777 778 SANE_FIX (2.0), /* Start of scan area in mm (x) */ 779 SANE_FIX (7.0), /* Start of scan area in mm (y) */ 780 SANE_FIX (218.0), /* Size of scan area in mm (x) */ 781 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 782 783 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 784 SANE_FIX (0.0), /* Start of black mark in mm (x) */ 785 786 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 787 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 788 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 789 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 790 791 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 792 793 0, 0, 0, /* RGB CCD Line-distance correction in pixel */ 794 0, /* CCD distcance for CCD with 6 lines) */ 795 796 COLOR_ORDER_BGR, /* Order of the CCD/CIS colors */ 797 {0x0f, 0x01, 0x15, 0x06, 0x13, 0x04}, /* Default offset/gain */ 798 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 799 SANE_FIX (2.0), /* Default gamma value */ 800 801 SANE_TRUE, /* Is this a CIS scanner? */ 802 GT68XX_FLAG_MIRROR_X | GT68XX_FLAG_MOTOR_HOME | GT68XX_FLAG_OFFSET_INV /* Which flags are needed for this scanner? */ 803 /* Setup for Cytron TCM MD 9385 */ 804 }; 805 806 static GT68xx_Model plustek_opticslim500plus_model = { 807 "plustek-opticslim-500plus", /* Name */ 808 "Plustek", /* Device vendor string */ 809 "OpticSlim 500 Plus", /* Device model name */ 810 "cis3R5B1.fw", /* Name of the firmware file */ 811 SANE_FALSE, /* Dynamic allocation flag */ 812 813 &mustek_gt6816_command_set, /* Command set used by this scanner */ 814 815 600, /* maximum optical sensor resolution */ 816 1200, /* maximum motor resolution */ 817 600, /* base x-res used to calculate geometry */ 818 600, /* base y-res used to calculate geometry */ 819 1200, /* if ydpi is equal or higher, disable backtracking */ 820 SANE_FALSE, /* Use base_ydpi for all resolutions */ 821 822 {600, 300, 150, 75, 50, 0}, /* possible x-resolutions */ 823 {1200, 600, 300, 150, 75, 50, 0},/* possible y-resolutions */ 824 {16, 8, 0}, /* possible depths in gray mode */ 825 {16, 8, 0}, /* possible depths in color mode */ 826 827 SANE_FIX (1.0), /* Start of scan area in mm (x) */ 828 SANE_FIX (9.5), /* Start of scan area in mm (y) */ 829 SANE_FIX (218.0), /* Size of scan area in mm (x) */ 830 SANE_FIX (142.0), /* Size of scan area in mm (y) */ 831 832 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 833 SANE_FIX (0.0), /* Start of black mark in mm (x) */ 834 835 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 836 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 837 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 838 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 839 840 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 841 842 0, 0, 0, /* RGB CCD Line-distance correction in pixel */ 843 0, /* CCD distcance for CCD with 6 lines) */ 844 845 COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ 846 {0x32, 0x02, 0x26, 0x07, 0x26, 0x09}, /* Default offset/gain */ 847 {0x127, 0x127, 0x127}, /* Default exposure parameters */ 848 SANE_FIX (1.5), /* Default gamma value */ 849 850 SANE_TRUE, /* Is this a CIS scanner? */ 851 GT68XX_FLAG_NO_CALIBRATE /* Which flags are needed for this scanner? */ 852 }; 853 854 static GT68xx_Model mustek_2400cu_model = { 855 "mustek-bearpaw-2400-cu", /* Name */ 856 "Mustek", /* Device vendor string */ 857 "BearPaw 2400 CU", /* Device model name */ 858 "PS2fw.usb", /* Name of the firmware file */ 859 SANE_FALSE, /* Dynamic allocation flag */ 860 861 &mustek_gt6801_command_set, /* Command set used by this scanner */ 862 863 1200, /* maximum optical sensor resolution */ 864 2400, /* maximum motor resolution */ 865 1200, /* base x-res used to calculate geometry */ 866 1200, /* base y-res used to calculate geometry */ 867 1200, /* if ydpi is equal or higher, disable backtracking */ 868 SANE_TRUE, /* Use base_ydpi for all resolutions */ 869 870 {1200, 600, 300, 150, 100, 50, 0}, /* possible x-resolutions */ 871 {2400, 1200, 600, 300, 150, 100, 50, 0}, /* possible y-resolutions */ 872 {12, 8, 0}, /* possible depths in gray mode */ 873 {12, 8, 0}, /* possible depths in color mode */ 874 875 SANE_FIX (0.0), /* Start of scan area in mm (x) */ 876 SANE_FIX (13.5), /* Start of scan area in mm (y) */ 877 SANE_FIX (215.0), /* Size of scan area in mm (x) */ 878 SANE_FIX (296.9), /* Size of scan area in mm (y) */ 879 880 SANE_FIX (5.5), /* Start of white strip in mm (y) */ 881 SANE_FIX (0.0), /* Start of black mark in mm (x) */ 882 883 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 884 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 885 SANE_FIX (100.9), /* Size of scan area in TA mode in mm (x) */ 886 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 887 888 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 889 890 0, 0, 0, /* RGB CCD Line-distance correction in pixel */ 891 0, /* CCD distcance for CCD with 6 lines) */ 892 893 COLOR_ORDER_BGR, /* Order of the CCD/CIS colors */ 894 {0x0f, 0x01, 0x15, 0x06, 0x13, 0x04}, /* Default offset/gain */ 895 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 896 SANE_FIX (2.0), /* Default gamma value */ 897 898 SANE_TRUE, /* Is this a CIS scanner? */ 899 0 /* Which flags are needed for this scanner? */ 900 /* basically tested, details may need tweaking */ 901 }; 902 903 static GT68xx_Model mustek_scanexpress2400usb_model = { 904 "mustek-scanexpress-2400-usb", /* Name */ 905 "Mustek", /* Device vendor string */ 906 "ScanExpress 2400 USB", /* Device model name */ 907 "P9fw.usb", /* Name of the firmware file */ 908 SANE_FALSE, /* Dynamic allocation flag */ 909 910 &mustek_gt6801_command_set, /* Command set used by this scanner */ 911 912 1200, /* maximum optical sensor resolution */ 913 1200, /* maximum motor resolution */ 914 1200, /* base x-res used to calculate geometry */ 915 1200, /* base y-res used to calculate geometry */ 916 1200, /* if ydpi is equal or higher, disable backtracking */ 917 SANE_TRUE, /* Use base_ydpi for all resolutions */ 918 919 {600, 300, 150, 100, 50, 0}, /* possible x-resolutions */ 920 {1200, 600, 300, 150, 100, 50, 0}, /* possible y-resolutions */ 921 {12, 8, 0}, /* possible depths in gray mode */ 922 {12, 8, 0}, /* possible depths in color mode */ 923 924 SANE_FIX (5.0), /* Start of scan area in mm (x) */ 925 SANE_FIX (12.0), /* Start of scan area in mm (y) */ 926 SANE_FIX (224.0), /* Size of scan area in mm (x) */ 927 SANE_FIX (300.0), /* Size of scan area in mm (y) */ 928 929 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 930 SANE_FIX (7.0), /* Start of black mark in mm (x) */ 931 932 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 933 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 934 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 935 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 936 937 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 938 939 24, 12, 0, /* RGB CCD Line-distance correction in pixel */ 940 0, /* CCD distcance for CCD with 6 lines) */ 941 942 COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ 943 {0x12, 0x06, 0x0e, 0x03, 0x19, 0x25}, /* Default offset/gain */ 944 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 945 SANE_FIX (2.0), /* Default gamma value */ 946 947 SANE_FALSE, /* Is this a CIS scanner? */ 948 GT68XX_FLAG_UNTESTED | GT68XX_FLAG_SE_2400 /* Which flags are needed for this scanner? */ 949 /* only partly tested, from "Fan Dan" <dan_fancn@hotmail.com> */ 950 }; 951 952 static GT68xx_Model mustek_a3usb_model = { 953 "mustek-scanexpress-a3-usb", /* Name */ 954 "Mustek", /* Device vendor string */ 955 "ScanExpress A3 USB", /* Device model name */ 956 "A32fw.usb", /* Name of the firmware file */ 957 SANE_FALSE, /* Dynamic allocation flag */ 958 959 &mustek_gt6816_command_set, /* Command set used by this scanner */ 960 961 300, /* maximum optical sensor resolution */ 962 600, /* maximum motor resolution */ 963 300, /* base x-res used to calculate geometry */ 964 300, /* base y-res used to calculate geometry */ 965 1200, /* if ydpi is equal or higher, disable backtracking */ 966 SANE_TRUE, /* Use base_ydpi for all resolutions */ 967 968 {300, 150, 75, 50, 0}, /* possible x-resolutions */ 969 {600, 300, 150, 75, 50, 0}, /* possible y-resolutions */ 970 {12, 8, 0}, /* possible depths in gray mode */ 971 {12, 8, 0}, /* possible depths in color mode */ 972 973 SANE_FIX (7.0), /* Start of scan area in mm (x) */ 974 SANE_FIX (11.5), /* Start of scan area in mm (y) */ 975 SANE_FIX (297.0), /* Size of scan area in mm (x) */ 976 SANE_FIX (433.0), /* Size of scan area in mm (y) */ 977 978 SANE_FIX (2.4), /* Start of white strip in mm (y) */ 979 SANE_FIX (0), /* Start of black mark in mm (x) */ 980 981 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 982 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 983 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 984 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 985 986 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 987 988 0, 5, 5, /* RGB CCD Line-distance correction in pixel */ 989 0, /* CCD distcance for CCD with 6 lines) */ 990 991 COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ 992 {0x14, 0x05, 0x12, 0x05, 0x17, 0x0c}, /* Default offset/gain */ 993 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 994 SANE_FIX (1.5), /* Default gamma value */ 995 996 SANE_TRUE, /* Is this a CIS scanner? */ 997 GT68XX_FLAG_CIS_LAMP /* Which flags are needed for this scanner? */ 998 /* Tested by hmg. This scanner is a bit strange as it uses a CIS sensor but 999 it also has a lamp. So the lamp needs to be heated but CIS mode must be 1000 used for scanning and calibration. There is no TA for that scanner */ 1001 }; 1002 1003 static GT68xx_Model lexmark_x73_model = { 1004 "lexmark-x73", /* Name */ 1005 "Lexmark", /* Device vendor string */ 1006 "X73", /* Device model name */ 1007 "OSLO3071b2.usb", /* Name of the firmware file */ 1008 SANE_FALSE, /* Dynamic allocation flag */ 1009 1010 &mustek_gt6816_command_set, /* Command set used by this scanner */ 1011 1012 600, /* maximum optical sensor resolution */ 1013 1200, /* maximum motor resolution */ 1014 600, /* base x-res used to calculate geometry */ 1015 600, /* base y-res used to calculate geometry */ 1016 1200, /* if ydpi is equal or higher, disable backtracking */ 1017 SANE_TRUE, /* Use base_ydpi for all resolutions */ 1018 1019 {600, 300, 150, 75, 0}, /* possible x-resolutions */ 1020 {600, 300, 150, 75, 0}, /* possible y-resolutions */ 1021 {16, 12, 8, 0}, /* possible depths in gray mode */ 1022 {16, 12, 8, 0}, /* possible depths in color mode */ 1023 1024 SANE_FIX (6.519), /* Start of scan area in mm (x) */ 1025 SANE_FIX (12.615), /* Start of scan area in mm (y) */ 1026 SANE_FIX (220.0), /* Size of scan area in mm (x) */ 1027 SANE_FIX (297.0), /* Size of scan area in mm (y) */ 1028 1029 SANE_FIX (1.0), /* Start of white strip in mm (y) */ 1030 SANE_FIX (0.0), /* Start of black mark in mm (x) */ 1031 1032 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 1033 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 1034 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 1035 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 1036 1037 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 1038 1039 32, 16, 0, /* RGB CCD Line-distance correction in pixel */ 1040 0, /* CCD distcance for CCD with 6 lines) */ 1041 1042 COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ 1043 {0x14, 0x07, 0x14, 0x07, 0x14, 0x07}, /* Default offset/gain */ 1044 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 1045 SANE_FIX (2.0), /* Default gamma value */ 1046 1047 SANE_FALSE, /* Is this a CIS scanner? */ 1048 0 /* Which flags are needed for this scanner? */ 1049 /* When using automatic gain pictures are too dark. Only some ad hoc tests for 1050 lexmark x70 were done so far. WARNING: Don't use the Full scan option 1051 with the above settings, otherwise the sensor may bump at the end of 1052 the sledge and the scanner may be damaged! */ 1053 }; 1054 1055 static GT68xx_Model plustek_op1248u_model = { 1056 "plustek-op1248u", /* Name */ 1057 "Plustek", /* Device vendor string */ 1058 "OpticPro 1248U", /* Device model name */ 1059 "ccd548.fw", /* Name of the firmware file */ 1060 SANE_FALSE, /* Dynamic allocation flag */ 1061 1062 &plustek_gt6801_command_set, /* Command set used by this scanner */ 1063 1064 600, /* maximum optical sensor resolution */ 1065 600, /* maximum motor resolution */ 1066 600, /* base x-res used to calculate geometry */ 1067 600, /* base y-res used to calculate geometry */ 1068 1200, /* if ydpi is equal or higher, disable backtracking */ 1069 SANE_TRUE, /* Use base_ydpi for all resolutions */ 1070 1071 {600, 300, 150, 75, 0}, /* possible x-resolutions */ 1072 {600, 300, 150, 75, 0}, /* possible y-resolutions */ 1073 {12, 8, 0}, /* possible depths in gray mode */ 1074 {12, 8, 0}, /* possible depths in color mode */ 1075 1076 SANE_FIX (3.5), /* Start of scan area in mm (x) */ 1077 SANE_FIX (7.5), /* Start of scan area in mm (y) */ 1078 SANE_FIX (216.0), /* Size of scan area in mm (x) */ 1079 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 1080 1081 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 1082 SANE_FIX (1.0), /* Start of black mark in mm (x) */ 1083 1084 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 1085 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 1086 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 1087 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 1088 1089 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 1090 1091 0, 8, 16, /* RGB CCD Line-distance correction in pixel */ 1092 0, /* CCD distcance for CCD with 6 lines) */ 1093 1094 COLOR_ORDER_BGR, /* Order of the CCD/CIS colors */ 1095 {0x1e, 0x24, 0x1d, 0x1f, 0x1d, 0x20}, /* Default offset/gain */ 1096 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 1097 SANE_FIX (2.0), /* Default gamma value */ 1098 1099 SANE_FALSE, /* Is this a CIS scanner? */ 1100 GT68XX_FLAG_OFFSET_INV | GT68XX_FLAG_ALWAYS_LINEMODE /* Which flags are needed for this scanner? */ 1101 /* tested */ 1102 }; 1103 1104 static GT68xx_Model plustek_u16b_model = { 1105 "plustek-u16b", /* Name */ 1106 "Plustek", /* Device vendor string */ 1107 "OpticPro U16B", /* Device model name */ 1108 "ccd68861.fw", /* Name of the firmware file */ 1109 SANE_FALSE, /* Dynamic allocation flag */ 1110 1111 &mustek_gt6816_command_set, /* Command set used by this scanner */ 1112 1113 600, /* maximum optical sensor resolution */ 1114 600, /* maximum motor resolution */ 1115 600, /* base x-res used to calculate geometry */ 1116 600, /* base y-res used to calculate geometry */ 1117 1200, /* if ydpi is equal or higher, disable backtracking */ 1118 SANE_TRUE, /* Use base_ydpi for all resolutions */ 1119 1120 {600, 300, 150, 75, 0}, /* possible x-resolutions */ 1121 {600, 300, 150, 75, 0}, /* possible y-resolutions */ 1122 {16, 8, 0}, /* possible depths in gray mode */ 1123 {16, 12, 8, 0}, /* possible depths in color mode */ 1124 1125 SANE_FIX (5.5), /* Start of scan area in mm (x) */ 1126 SANE_FIX (8.5), /* Start of scan area in mm (y) */ 1127 SANE_FIX (216.0), /* Size of scan area in mm (x) */ 1128 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 1129 1130 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 1131 SANE_FIX (1.0), /* Start of black mark in mm (x) */ 1132 1133 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 1134 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 1135 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 1136 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 1137 1138 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 1139 1140 0, 8, 16, /* RGB CCD Line-distance correction in pixel */ 1141 0, /* CCD distcance for CCD with 6 lines) */ 1142 1143 COLOR_ORDER_BGR, /* Order of the CCD/CIS colors */ 1144 {0x18, 0x16, 0x16, 0x0f, 0x17, 0x11}, /* Default offset/gain */ 1145 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 1146 SANE_FIX (2.0), /* Default gamma value */ 1147 1148 SANE_FALSE, /* Is this a CIS scanner? */ 1149 GT68XX_FLAG_OFFSET_INV | GT68XX_FLAG_NO_POWER_STATUS | 1150 GT68XX_FLAG_NO_LINEMODE 1151 /* Which flags are needed for this scanner? */ 1152 /* Tested with a U16B by Henning Meier-Geinitz. 600 dpi is maximum 1153 vertically. Line mode does not work. That's a hardware/firmware 1154 issue. */ 1155 }; 1156 1157 static GT68xx_Model plustek_ops12_model = { 1158 "plustek-opticpro-s12", /* Name */ 1159 "Plustek", /* Device vendor string */ 1160 "OpticPro S12", /* Device model name */ 1161 "ccd548.fw", /* Name of the firmware file */ 1162 SANE_FALSE, /* Dynamic allocation flag */ 1163 1164 &mustek_gt6816_command_set, /* Command set used by this scanner */ 1165 1166 600, /* maximum optical sensor resolution */ 1167 600, /* maximum motor resolution */ 1168 600, /* base x-res used to calculate geometry */ 1169 600, /* base y-res used to calculate geometry */ 1170 1200, /* if ydpi is equal or higher, disable backtracking */ 1171 SANE_TRUE, /* Use base_ydpi for all resolutions */ 1172 1173 {600, 300, 150, 75, 0}, /* possible x-resolutions */ 1174 {600, 300, 150, 75, 0}, /* possible y-resolutions */ 1175 {12, 8, 0}, /* possible depths in gray mode */ 1176 {12, 8, 0}, /* possible depths in color mode */ 1177 1178 SANE_FIX (3.5), /* Start of scan area in mm (x) */ 1179 SANE_FIX (7.5), /* Start of scan area in mm (y) */ 1180 SANE_FIX (218.0), /* Size of scan area in mm (x) */ 1181 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 1182 1183 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 1184 SANE_FIX (1.0), /* Start of black mark in mm (x) */ 1185 1186 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 1187 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 1188 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 1189 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 1190 1191 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 1192 1193 0, 8, 16, /* RGB CCD Line-distance correction in pixel */ 1194 0, /* CCD distcance for CCD with 6 lines) */ 1195 1196 COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ 1197 {0x1c, 0x29, 0x1c, 0x2c, 0x1c, 0x2b}, /* Default offset/gain */ 1198 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 1199 SANE_FIX (2.0), /* Default gamma value */ 1200 1201 SANE_FALSE, /* Is this a CIS scanner? */ 1202 GT68XX_FLAG_OFFSET_INV | GT68XX_FLAG_ALWAYS_LINEMODE /* Which flags are needed for this scanner? */ 1203 /* Seems to work */ 1204 }; 1205 1206 static GT68xx_Model plustek_ops24_model = { 1207 "plustek-opticpro-s24", /* Name */ 1208 "Plustek", /* Device vendor string */ 1209 "OpticPro S24", /* Device model name */ 1210 "ccd569.fw", /* Name of the firmware file */ 1211 SANE_FALSE, /* Dynamic allocation flag */ 1212 1213 &mustek_gt6816_command_set, /* Command set used by this scanner */ 1214 1215 600, /* maximum optical sensor resolution */ 1216 1200, /* maximum motor resolution */ 1217 600, /* base x-res used to calculate geometry */ 1218 600, /* base y-res used to calculate geometry */ 1219 1200, /* if ydpi is equal or higher, disable backtracking */ 1220 SANE_TRUE, /* Use base_ydpi for all resolutions */ 1221 1222 {600, 300, 200, 100, 50, 0}, /* possible x-resolutions */ 1223 {1200, 600, 300, 200, 100, 50, 0}, /* possible y-resolutions */ 1224 {12, 8, 0}, /* possible depths in gray mode */ 1225 {12, 8, 0}, /* possible depths in color mode */ 1226 1227 SANE_FIX (4.5), /* Start of scan area in mm (x) */ 1228 SANE_FIX (8.5), /* Start of scan area in mm (y) */ 1229 SANE_FIX (218.0), /* Size of scan area in mm (x) */ 1230 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 1231 1232 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 1233 SANE_FIX (1.0), /* Start of black mark in mm (x) */ 1234 1235 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 1236 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 1237 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 1238 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 1239 1240 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 1241 1242 48, 24, 0, /* RGB CCD Line-distance correction in pixel */ 1243 0, /* CCD distcance for CCD with 6 lines) */ 1244 1245 COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ 1246 {0x18, 0x1c, 0x16, 0x12, 0x18, 0x1c}, /* Default offset/gain */ 1247 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 1248 SANE_FIX (2.0), /* Default gamma value */ 1249 1250 SANE_FALSE, /* Is this a CIS scanner? */ 1251 GT68XX_FLAG_OFFSET_INV | GT68XX_FLAG_ALWAYS_LINEMODE 1252 /* Which flags are needed for this scanner? */ 1253 /* Works (tested by Filip Kaluza). Based on genius Colorpage Vivid 1200 X. */ 1254 }; 1255 1256 1257 static GT68xx_Model genius_vivid4_model = { 1258 "genius-colorpage-vivid4", /* Name */ 1259 "Genius", /* Device vendor string */ 1260 "ColorPage Vivid 4", /* Device model name */ 1261 "ccd68861.fw", /* Name of the firmware file */ 1262 SANE_FALSE, /* Dynamic allocation flag */ 1263 1264 &mustek_gt6816_command_set, /* Command set used by this scanner */ 1265 1266 600, /* maximum optical sensor resolution */ 1267 600, /* maximum motor resolution */ 1268 600, /* base x-res used to calculate geometry */ 1269 600, /* base y-res used to calculate geometry */ 1270 1200, /* if ydpi is equal or higher, disable backtracking */ 1271 SANE_TRUE, /* Use base_ydpi for all resolutions */ 1272 1273 {600, 300, 150, 75, 0}, /* possible x-resolutions */ 1274 {600, 300, 150, 75, 0}, /* possible y-resolutions */ 1275 {16, 8, 0}, /* possible depths in gray mode */ 1276 {16, 12, 8, 0}, /* possible depths in color mode */ 1277 1278 SANE_FIX (5.5), /* Start of scan area in mm (x) */ 1279 SANE_FIX (8.5), /* Start of scan area in mm (y) */ 1280 SANE_FIX (216.0), /* Size of scan area in mm (x) */ 1281 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 1282 1283 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 1284 SANE_FIX (1.0), /* Start of black mark in mm (x) */ 1285 1286 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 1287 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 1288 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 1289 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 1290 1291 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 1292 1293 0, 8, 16, /* RGB CCD Line-distance correction in pixel */ 1294 0, /* CCD distcance for CCD with 6 lines) */ 1295 1296 COLOR_ORDER_BGR, /* Order of the CCD/CIS colors */ 1297 {0x18, 0x16, 0x16, 0x0f, 0x17, 0x11}, /* Default offset/gain */ 1298 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 1299 SANE_FIX (2.0), /* Default gamma value */ 1300 1301 SANE_FALSE, /* Is this a CIS scanner? */ 1302 GT68XX_FLAG_OFFSET_INV | GT68XX_FLAG_NO_POWER_STATUS | 1303 GT68XX_FLAG_NO_LINEMODE 1304 /* Which flags are needed for this scanner? */ 1305 /* This scanner seems to be very similar to Plustelk U16B and is reported to work. */ 1306 }; 1307 1308 1309 static GT68xx_Model genius_vivid3x_model = { 1310 "genius-colorpage-vivid3x", /* Name */ 1311 "Genius", /* Device vendor string */ 1312 "Colorpage Vivid3x", /* Device model name */ 1313 "ccd548.fw", /* Name of the firmware file */ 1314 SANE_FALSE, /* Dynamic allocation flag */ 1315 1316 &plustek_gt6801_command_set, /* Command set used by this scanner */ 1317 1318 600, /* maximum optical sensor resolution */ 1319 600, /* maximum motor resolution */ 1320 600, /* base x-res used to calculate geometry */ 1321 600, /* base y-res used to calculate geometry */ 1322 1200, /* if ydpi is equal or higher, disable backtracking */ 1323 SANE_TRUE, /* Use base_ydpi for all resolutions */ 1324 1325 {600, 300, 150, 75, 0}, /* possible x-resolutions */ 1326 {600, 300, 150, 75, 0}, /* possible y-resolutions */ 1327 {12, 8, 0}, /* possible depths in gray mode */ 1328 {12, 8, 0}, /* possible depths in color mode */ 1329 1330 SANE_FIX (3.5), /* Start of scan area in mm (x) */ 1331 SANE_FIX (7.5), /* Start of scan area in mm (y) */ 1332 SANE_FIX (218.0), /* Size of scan area in mm (x) */ 1333 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 1334 1335 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 1336 SANE_FIX (1.0), /* Start of black mark in mm (x) */ 1337 1338 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 1339 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 1340 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 1341 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 1342 1343 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 1344 1345 0, 8, 16, /* RGB CCD Line-distance correction in pixel */ 1346 0, /* CCD distcance for CCD with 6 lines) */ 1347 1348 COLOR_ORDER_BGR, /* Order of the CCD/CIS colors */ 1349 {0x1c, 0x29, 0x1c, 0x2c, 0x1c, 0x2b}, /* Default offset/gain */ 1350 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 1351 SANE_FIX (2.0), /* Default gamma value */ 1352 1353 SANE_FALSE, /* Is this a CIS scanner? */ 1354 GT68XX_FLAG_OFFSET_INV | GT68XX_FLAG_ALWAYS_LINEMODE /* Which flags are needed for this scanner? */ 1355 /* Tested to some degree, based on the Plustek OpticPro 1248U */ 1356 }; 1357 1358 static GT68xx_Model genius_vivid4x_model = { 1359 "genius-colorpage-vivid4x", /* Name */ 1360 "Genius", /* Device vendor string */ 1361 "Colorpage Vivid4x", /* Device model name */ 1362 "ccd548.fw", /* Name of the firmware file */ 1363 SANE_FALSE, /* Dynamic allocation flag */ 1364 1365 &mustek_gt6816_command_set, /* Command set used by this scanner */ 1366 1367 600, /* maximum optical sensor resolution */ 1368 600, /* maximum motor resolution */ 1369 600, /* base x-res used to calculate geometry */ 1370 600, /* base y-res used to calculate geometry */ 1371 1200, /* if ydpi is equal or higher, disable backtracking */ 1372 SANE_TRUE, /* Use base_ydpi for all resolutions */ 1373 1374 {600, 300, 150, 75, 0}, /* possible x-resolutions */ 1375 {600, 300, 150, 75, 0}, /* possible y-resolutions */ 1376 {12, 8, 0}, /* possible depths in gray mode */ 1377 {12, 8, 0}, /* possible depths in color mode */ 1378 1379 SANE_FIX (3.5), /* Start of scan area in mm (x) */ 1380 SANE_FIX (7.5), /* Start of scan area in mm (y) */ 1381 SANE_FIX (218.0), /* Size of scan area in mm (x) */ 1382 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 1383 1384 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 1385 SANE_FIX (1.0), /* Start of black mark in mm (x) */ 1386 1387 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 1388 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 1389 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 1390 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 1391 1392 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 1393 1394 0, 8, 16, /* RGB CCD Line-distance correction in pixel */ 1395 0, /* CCD distcance for CCD with 6 lines) */ 1396 1397 COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ 1398 {0x1c, 0x29, 0x1c, 0x2c, 0x1c, 0x2b}, /* Default offset/gain */ 1399 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 1400 SANE_FIX (2.0), /* Default gamma value */ 1401 1402 SANE_FALSE, /* Is this a CIS scanner? */ 1403 GT68XX_FLAG_OFFSET_INV | GT68XX_FLAG_ALWAYS_LINEMODE /* Which flags are needed for this scanner? */ 1404 /* Is reported to work, copied from 3x, some values from Claudio Filho <filhocf@openoffice.org> */ 1405 }; 1406 1407 static GT68xx_Model genius_vivid4xe_model = { 1408 "genius-colorpage-vivid4xe", /* Name */ 1409 "Genius", /* Device vendor string */ 1410 "Colorpage Vivid4xe", /* Device model name */ 1411 "ccd548.fw", /* Name of the firmware file */ 1412 SANE_FALSE, /* Dynamic allocation flag */ 1413 1414 &mustek_gt6816_command_set, /* Command set used by this scanner */ 1415 1416 600, /* maximum optical sensor resolution */ 1417 600, /* maximum motor resolution */ 1418 600, /* base x-res used to calculate geometry */ 1419 600, /* base y-res used to calculate geometry */ 1420 1200, /* if ydpi is equal or higher, disable backtracking */ 1421 SANE_TRUE, /* Use base_ydpi for all resolutions */ 1422 1423 {600, 300, 150, 75, 0}, /* possible x-resolutions */ 1424 {600, 300, 150, 75, 0}, /* possible y-resolutions */ 1425 {12, 8, 0}, /* possible depths in gray mode */ 1426 {12, 8, 0}, /* possible depths in color mode */ 1427 1428 SANE_FIX (3.5), /* Start of scan area in mm (x) */ 1429 SANE_FIX (7.5), /* Start of scan area in mm (y) */ 1430 SANE_FIX (218.0), /* Size of scan area in mm (x) */ 1431 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 1432 1433 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 1434 SANE_FIX (1.0), /* Start of black mark in mm (x) */ 1435 1436 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 1437 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 1438 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 1439 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 1440 1441 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 1442 1443 0, 8, 16, /* RGB CCD Line-distance correction in pixel */ 1444 0, /* CCD distcance for CCD with 6 lines) */ 1445 1446 COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ 1447 {0x1c, 0x29, 0x1c, 0x2c, 0x1c, 0x2b}, /* Default offset/gain */ 1448 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 1449 SANE_FIX (2.0), /* Default gamma value */ 1450 1451 SANE_FALSE, /* Is this a CIS scanner? */ 1452 GT68XX_FLAG_OFFSET_INV | GT68XX_FLAG_ALWAYS_LINEMODE /* Which flags are needed for this scanner? */ 1453 /* tested a bit */ 1454 }; 1455 1456 static GT68xx_Model genius_vivid3xe_model = { 1457 "genius-colorpage-vivid3xe", /* Name */ 1458 "Genius", /* Device vendor string */ 1459 "Colorpage Vivid3xe", /* Device model name */ 1460 "ccd548.fw", /* Name of the firmware file */ 1461 SANE_FALSE, /* Dynamic allocation flag */ 1462 1463 &plustek_gt6801_command_set, /* Command set used by this scanner */ 1464 1465 600, /* maximum optical sensor resolution */ 1466 600, /* maximum motor resolution */ 1467 600, /* base x-res used to calculate geometry */ 1468 600, /* base y-res used to calculate geometry */ 1469 1200, /* if ydpi is equal or higher, disable backtracking */ 1470 SANE_TRUE, /* Use base_ydpi for all resolutions */ 1471 1472 {600, 300, 150, 75, 0}, /* possible x-resolutions */ 1473 {600, 300, 150, 75, 0}, /* possible y-resolutions */ 1474 {12, 8, 0}, /* possible depths in gray mode */ 1475 {12, 8, 0}, /* possible depths in color mode */ 1476 1477 SANE_FIX (3.5), /* Start of scan area in mm (x) */ 1478 SANE_FIX (7.5), /* Start of scan area in mm (y) */ 1479 SANE_FIX (218.0), /* Size of scan area in mm (x) */ 1480 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 1481 1482 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 1483 SANE_FIX (1.0), /* Start of black mark in mm (x) */ 1484 1485 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 1486 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 1487 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 1488 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 1489 1490 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 1491 1492 0, 8, 16, /* RGB CCD Line-distance correction in pixel */ 1493 0, /* CCD distcance for CCD with 6 lines) */ 1494 1495 COLOR_ORDER_BGR, /* Order of the CCD/CIS colors */ 1496 {0x1c, 0x29, 0x1c, 0x2c, 0x1c, 0x2b}, /* Default offset/gain */ 1497 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 1498 SANE_FIX (2.0), /* Default gamma value */ 1499 1500 SANE_FALSE, /* Is this a CIS scanner? */ 1501 GT68XX_FLAG_OFFSET_INV | GT68XX_FLAG_ALWAYS_LINEMODE /* Which flags are needed for this scanner? */ 1502 /* mostly untested, based on the Genius Vivid3x */ 1503 }; 1504 1505 static GT68xx_Model genius_vivid1200x_model = { 1506 "genius-colorpage-vivid-1200-x", /* Name */ 1507 "Genius", /* Device vendor string */ 1508 "Colorpage Vivid 1200 X", /* Device model name */ 1509 "ccd569.fw", /* Name of the firmware file */ 1510 SANE_FALSE, /* Dynamic allocation flag */ 1511 1512 &mustek_gt6816_command_set, /* Command set used by this scanner */ 1513 1514 600, /* maximum optical sensor resolution */ 1515 1200, /* maximum motor resolution */ 1516 600, /* base x-res used to calculate geometry */ 1517 600, /* base y-res used to calculate geometry */ 1518 1200, /* if ydpi is equal or higher, disable backtracking */ 1519 SANE_TRUE, /* Use base_ydpi for all resolutions */ 1520 1521 {600, 300, 200, 100, 50, 0}, /* possible x-resolutions */ 1522 {1200, 600, 300, 200, 100, 50, 0}, /* possible y-resolutions */ 1523 {12, 8, 0}, /* possible depths in gray mode */ 1524 {12, 8, 0}, /* possible depths in color mode */ 1525 1526 SANE_FIX (4.5), /* Start of scan area in mm (x) */ 1527 SANE_FIX (8.5), /* Start of scan area in mm (y) */ 1528 SANE_FIX (218.0), /* Size of scan area in mm (x) */ 1529 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 1530 1531 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 1532 SANE_FIX (1.0), /* Start of black mark in mm (x) */ 1533 1534 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 1535 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 1536 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 1537 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 1538 1539 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 1540 1541 48, 24, 0, /* RGB CCD Line-distance correction in pixel */ 1542 0, /* CCD distcance for CCD with 6 lines) */ 1543 1544 COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ 1545 {0x18, 0x1c, 0x16, 0x12, 0x18, 0x1c}, /* Default offset/gain */ 1546 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 1547 SANE_FIX (2.0), /* Default gamma value */ 1548 1549 SANE_FALSE, /* Is this a CIS scanner? */ 1550 GT68XX_FLAG_OFFSET_INV | GT68XX_FLAG_ALWAYS_LINEMODE 1551 /* Which flags are needed for this scanner? */ 1552 /* Tested. */ 1553 }; 1554 1555 1556 static GT68xx_Model genius_vivid1200xe_model = { 1557 "genius-colorpage-vivid-1200-xe", /* Name */ 1558 "Genius", /* Device vendor string */ 1559 "Colorpage Vivid 1200 XE", /* Device model name */ 1560 "ccd569.fw", /* Name of the firmware file */ 1561 SANE_FALSE, /* Dynamic allocation flag */ 1562 1563 &mustek_gt6816_command_set, /* Command set used by this scanner */ 1564 1565 600, /* maximum optical sensor resolution */ 1566 1200, /* maximum motor resolution */ 1567 600, /* base x-res used to calculate geometry */ 1568 600, /* base y-res used to calculate geometry */ 1569 1200, /* if ydpi is equal or higher, disable backtracking */ 1570 SANE_TRUE, /* Use base_ydpi for all resolutions */ 1571 1572 {600, 300, 200, 100, 50, 0}, /* possible x-resolutions */ 1573 {1200, 600, 300, 200, 100, 50, 0}, /* possible y-resolutions */ 1574 {12, 8, 0}, /* possible depths in gray mode */ 1575 {12, 8, 0}, /* possible depths in color mode */ 1576 1577 SANE_FIX (4.5), /* Start of scan area in mm (x) */ 1578 SANE_FIX (8.5), /* Start of scan area in mm (y) */ 1579 SANE_FIX (218.0), /* Size of scan area in mm (x) */ 1580 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 1581 1582 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 1583 SANE_FIX (1.0), /* Start of black mark in mm (x) */ 1584 1585 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 1586 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 1587 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 1588 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 1589 1590 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 1591 1592 48, 24, 0, /* RGB CCD Line-distance correction in pixel */ 1593 0, /* CCD distcance for CCD with 6 lines) */ 1594 1595 COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ 1596 {0x18, 0x1c, 0x16, 0x12, 0x18, 0x1c}, /* Default offset/gain */ 1597 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 1598 SANE_FIX (2.0), /* Default gamma value */ 1599 1600 SANE_FALSE, /* Is this a CIS scanner? */ 1601 GT68XX_FLAG_OFFSET_INV | GT68XX_FLAG_ALWAYS_LINEMODE /* Which flags are needed for this scanner? */ 1602 /* Tested by hmg */ 1603 }; 1604 1605 static GT68xx_Model iriscan_express_2_model = { 1606 "iriscan-express-2", /* Name */ 1607 "Iris", /* Device vendor string */ 1608 "Iriscan Express 2", /* Device model name */ 1609 "cism216.fw", /* Name of the firmware file */ 1610 SANE_FALSE, /* Dynamic allocation flag */ 1611 1612 &mustek_gt6816_sheetfed_command_set, /* Command set used by this scanner */ 1613 1614 600, /* maximum optical sensor resolution */ 1615 1200, /* maximum motor resolution */ 1616 600, /* base x-res used to calculate geometry */ 1617 600, /* base y-res used to calculate geometry */ 1618 1200, /* if ydpi is equal or higher, disable backtracking */ 1619 SANE_FALSE, /* Use base_ydpi for all resolutions */ 1620 1621 /* values based on analyze of the firmware */ 1622 {600, 400, 300, 200, 150, 100, 50, 0}, /* possible x-resolutions */ 1623 {1200, 600, 400, 300, 200, 150, 100, 50, 0}, /* possible y-resolutions */ 1624 {16, 8, 0}, /* possible depths in gray mode */ 1625 {16, 8, 0}, /* possible depths in color mode */ 1626 1627 SANE_FIX (0.0), /* Start of scan area in mm (x) */ 1628 SANE_FIX (1.5), /* Start of scan area in mm (y) */ 1629 SANE_FIX (218.0), /* Size of scan area in mm (x) */ 1630 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 1631 1632 SANE_FIX (18.0), /* Start of white strip in mm (y) */ 1633 SANE_FIX (21.72), /* Start of black mark in mm (x) */ 1634 1635 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 1636 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 1637 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 1638 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 1639 1640 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 1641 1642 0, 0, 0, /* RGB CCD Line-distance correction in pixel */ 1643 0, /* CCD distcance for CCD with 6 lines) */ 1644 1645 COLOR_ORDER_BGR, /* Order of the CCD/CIS colors */ 1646 {0x22, 0x0c, 0x22, 0x0a, 0x24, 0x09}, /* Default offset/gain */ 1647 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 1648 SANE_FIX (2.0), /* Default gamma value */ 1649 1650 SANE_TRUE, /* Is this a CIS scanner? */ 1651 GT68XX_FLAG_NO_POWER_STATUS | GT68XX_FLAG_SHEET_FED | GT68XX_FLAG_OFFSET_INV | GT68XX_FLAG_HAS_CALIBRATE 1652 }; 1653 1654 1655 static GT68xx_Model plustek_opticslim_m12_model = { 1656 "plustek-opticslim-m12", /* Name */ 1657 "Plustek", /* Device vendor string */ 1658 "OpticSlim M12", /* Device model name */ 1659 "cism216.fw", /* Name of the firmware file */ 1660 SANE_FALSE, /* Dynamic allocation flag */ 1661 1662 &mustek_gt6816_sheetfed_command_set, /* Command set used by this scanner */ 1663 1664 600, /* maximum optical sensor resolution */ 1665 1200, /* maximum motor resolution */ 1666 600, /* base x-res used to calculate geometry */ 1667 600, /* base y-res used to calculate geometry */ 1668 1200, /* if ydpi is equal or higher, disable backtracking */ 1669 SANE_FALSE, /* Use base_ydpi for all resolutions */ 1670 1671 {600, 400, 300, 200, 150, 100, 50, 0}, /* possible x-resolutions */ 1672 {1200, 600, 400, 300, 200, 150, 100, 50, 0}, /* possible y-resolutions */ 1673 {16, 8, 0}, /* possible depths in gray mode */ 1674 {16, 8, 0}, /* possible depths in color mode */ 1675 1676 SANE_FIX (0.0), /* Start of scan area in mm (x) */ 1677 SANE_FIX (1.5), /* Start of scan area in mm (y) */ 1678 SANE_FIX (218.0), /* Size of scan area in mm (x) */ 1679 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 1680 1681 SANE_FIX (18.0), /* Start of white strip in mm (y) */ 1682 SANE_FIX (21.72), /* Start of black mark in mm (x) */ 1683 1684 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 1685 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 1686 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 1687 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 1688 1689 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 1690 1691 0, 0, 0, /* RGB CCD Line-distance correction in pixel */ 1692 0, /* CCD distcance for CCD with 6 lines) */ 1693 1694 COLOR_ORDER_BGR, /* Order of the CCD/CIS colors */ 1695 {0x24, 0x0a, 0x23, 0x0f, 0x23, 0x0b}, /* Default offset/gain */ 1696 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 1697 SANE_FIX (2.0), /* Default gamma value */ 1698 1699 SANE_TRUE, /* Is this a CIS scanner? */ 1700 GT68XX_FLAG_NO_POWER_STATUS | GT68XX_FLAG_SHEET_FED | GT68XX_FLAG_OFFSET_INV | GT68XX_FLAG_HAS_CALIBRATE 1701 }; 1702 1703 static GT68xx_Model genius_sf600_model = { 1704 "genius-SF600", /* Name */ 1705 "Genius", /* Device vendor string */ 1706 "ColorPage SF600", /* Device model name */ 1707 "cism216.fw", /* Name of the firmware file */ 1708 SANE_FALSE, /* Dynamic allocation flag */ 1709 1710 &mustek_gt6816_sheetfed_command_set, /* Command set used by this scanner */ 1711 1712 600, /* maximum optical sensor resolution */ 1713 1200, /* maximum motor resolution */ 1714 600, /* base x-res used to calculate geometry */ 1715 600, /* base y-res used to calculate geometry */ 1716 1200, /* if ydpi is equal or higher, disable backtracking */ 1717 SANE_FALSE, /* Use base_ydpi for all resolutions */ 1718 1719 {600, 300, 200, 150, 100, 0}, /* possible x-resolutions */ 1720 {600, 300, 200, 150, 100, 0}, /* possible y-resolutions */ 1721 {16, 8, 0}, /* possible depths in gray mode */ 1722 {16, 8, 0}, /* possible depths in color mode */ 1723 1724 SANE_FIX (0.0), /* Start of scan area in mm (x) */ 1725 SANE_FIX (1.5), /* Start of scan area in mm (y) */ 1726 SANE_FIX (218.0), /* Size of scan area in mm (x) */ 1727 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 1728 1729 SANE_FIX (18.0), /* Start of white strip in mm (y) */ 1730 SANE_FIX (21.72), /* Start of black mark in mm (x) */ 1731 1732 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 1733 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 1734 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 1735 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 1736 1737 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 1738 1739 0, 0, 0, /* RGB CCD Line-distance correction in pixel */ 1740 0, /* CCD distcance for CCD with 6 lines) */ 1741 1742 COLOR_ORDER_BGR, /* Order of the CCD/CIS colors */ 1743 {0x24, 0x0a, 0x23, 0x0f, 0x23, 0x0b}, /* Default offset/gain */ 1744 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 1745 SANE_FIX (2.0), /* Default gamma value */ 1746 1747 SANE_TRUE, /* Is this a CIS scanner? */ 1748 GT68XX_FLAG_NO_POWER_STATUS | GT68XX_FLAG_UNTESTED | GT68XX_FLAG_SHEET_FED | GT68XX_FLAG_OFFSET_INV | GT68XX_FLAG_HAS_CALIBRATE | GT68XX_FLAG_NO_STOP 1749 }; 1750 1751 /* Untested but should work according to Ryan Reading <ryanr23@gmail.com>. Based on Plustek M12 */ 1752 1753 static GT68xx_Model plustek_opticslim1200_model = { 1754 "plustek-opticslim-1200", /* Name */ 1755 "Plustek", /* Device vendor string */ 1756 "OpticSlim 1200", /* Device model name */ 1757 "cism216.fw", /* Name of the firmware file */ 1758 SANE_FALSE, /* Dynamic allocation flag */ 1759 1760 &mustek_gt6816_command_set, /* Command set used by this scanner */ 1761 1762 600, /* maximum optical sensor resolution */ 1763 1200, /* maximum motor resolution */ 1764 600, /* base x-res used to calculate geometry */ 1765 600, /* base y-res used to calculate geometry */ 1766 1200, /* if ydpi is equal or higher, disable backtracking */ 1767 SANE_FALSE, /* Use base_ydpi for all resolutions */ 1768 1769 {600, 300, 150, 75, 50, 0}, /* possible x-resolutions */ 1770 {1200, 600, 300, 150, 75, 50, 0}, /* possible y-resolutions */ 1771 {16, 8, 0}, /* possible depths in gray mode */ 1772 {16, 8, 0}, /* possible depths in color mode */ 1773 1774 SANE_FIX (1.0), /* Start of scan area in mm (x) */ 1775 SANE_FIX (9.5), /* Start of scan area in mm (y) */ 1776 SANE_FIX (218.0), /* Size of scan area in mm (x) */ 1777 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 1778 1779 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 1780 SANE_FIX (140.0), /* Start of black mark in mm (x) */ 1781 1782 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 1783 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 1784 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 1785 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 1786 1787 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 1788 1789 0, 0, 0, /* RGB CCD Line-distance correction in pixel */ 1790 0, /* CCD distcance for CCD with 6 lines) */ 1791 1792 COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ 1793 {0x15, 0x09, 0x18, 0x11, 0x16, 0x0c}, /* Default offset/gain */ 1794 {0x157, 0x157, 0x157}, /* Default exposure parameters */ 1795 SANE_FIX (2.0), /* Default gamma value */ 1796 1797 SANE_TRUE, /* Is this a CIS scanner? */ 1798 0 1799 }; 1800 1801 static GT68xx_Model plustek_opticslim2400_model = { 1802 "plustek-opticslim-2400", /* Name */ 1803 "Plustek", /* Device vendor string */ 1804 "OpticSlim 2400", /* Device model name */ 1805 "cis3R5B1.fw", /* Name of the firmware file */ 1806 SANE_FALSE, /* Dynamic allocation flag */ 1807 1808 &mustek_gt6816_command_set, /* Command set used by this scanner */ 1809 1810 1200, /* maximum optical sensor resolution */ 1811 2400, /* maximum motor resolution */ 1812 1200, /* base x-res used to calculate geometry */ 1813 1200, /* base y-res used to calculate geometry */ 1814 1200, /* if ydpi is equal or higher, disable backtracking */ 1815 SANE_FALSE, /* Use base_ydpi for all resolutions */ 1816 1817 {1200, 600, 300, 150, 100, 50, 0}, /* possible x-resolutions */ 1818 {1200, 600, 300, 150, 100, 50, 0}, /* possible y-resolutions */ 1819 {12, 8, 0}, /* possible depths in gray mode */ 1820 {12, 8, 0}, /* possible depths in color mode */ 1821 1822 SANE_FIX (1.0), /* Start of scan area in mm (x) */ 1823 SANE_FIX (9.5), /* Start of scan area in mm (y) */ 1824 SANE_FIX (217.0), /* Size of scan area in mm (x) */ 1825 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 1826 1827 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 1828 SANE_FIX (0.0), /* Start of black mark in mm (x) */ 1829 1830 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 1831 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 1832 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 1833 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 1834 1835 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 1836 1837 0, 0, 0, /* RGB CCD Line-distance correction in pixel */ 1838 0, /* CCD distcance for CCD with 6 lines) */ 1839 1840 COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ 1841 {0x15, 0x09, 0x18, 0x11, 0x16, 0x0c}, /* Default offset/gain */ 1842 {0x300, 0x300, 0x300}, /* Default exposure parameters */ 1843 SANE_FIX (1.5), /* Default gamma value */ 1844 1845 SANE_TRUE, /* Is this a CIS scanner? */ 1846 0 1847 /* By Detlef Gausepohl <detlef@psych.rwth-aachen.de>. Fixed and tested by hmg. */ 1848 }; 1849 1850 static GT68xx_Model visioneer_onetouch_7300_model = { 1851 "visioneer-onetouch-7300", /* Name */ 1852 "Visioneer", /* Device vendor string */ 1853 "OneTouch 7300", /* Device model name */ 1854 "Cis3r5b1.fw", /* Name of the firmware file */ 1855 SANE_FALSE, /* Dynamic allocation flag */ 1856 1857 &mustek_gt6816_command_set, /* Command set used by this scanner */ 1858 1859 1200, /* maximum optical sensor resolution */ 1860 1200, /* maximum motor resolution */ 1861 1200, /* base x-res used to calculate geometry */ 1862 1200, /* base y-res used to calculate geometry */ 1863 1200, /* if ydpi is equal or higher, disable backtracking */ 1864 SANE_FALSE, /* Use base_ydpi for all resolutions */ 1865 1866 {1200, 600, 300, 150, 100, 50, 0}, /* possible x-resolutions */ 1867 {1200, 600, 300, 150, 100, 50, 0}, /* possible y-resolutions */ 1868 {12, 8, 0}, /* possible depths in gray mode */ 1869 {12, 8, 0}, /* possible depths in color mode */ 1870 1871 SANE_FIX (1.0), /* Start of scan area in mm (x) */ 1872 SANE_FIX (9.5), /* Start of scan area in mm (y) */ 1873 SANE_FIX (218.0), /* Size of scan area in mm (x) */ 1874 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 1875 1876 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 1877 SANE_FIX (140.0), /* Start of black mark in mm (x) */ 1878 1879 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 1880 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 1881 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ 1882 SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ 1883 1884 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 1885 1886 0, 0, 0, /* RGB CCD Line-distance correction in pixel */ 1887 0, /* CCD distcance for CCD with 6 lines) */ 1888 1889 COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ 1890 {0x15, 0x09, 0x18, 0x11, 0x16, 0x0c}, /* Default offset/gain */ 1891 {0x80, 0x80, 0x80}, /* Default exposure parameters */ 1892 SANE_FIX (1.5), /* Default gamma value */ 1893 1894 SANE_TRUE, /* Is this a CIS scanner? */ 1895 0 1896 }; 1897 1898 /* Tested by Jason Novek. Based on Plustek OpticSlim 2400. */ 1899 1900 1901 static GT68xx_Model genius_colorpageslim_1200_model = { 1902 "genius-colorpageslim-1200", /* Name */ 1903 "Genius", /* Device vendor string */ 1904 "ColorPage Slim 1200", /* Device model name */ 1905 "Cis3r5b1.fw", /* Name of the firmware file */ 1906 SANE_FALSE, /* Dynamic allocation flag */ 1907 1908 &mustek_gt6816_command_set, /* Command set used by this scanner */ 1909 1910 1200, /* maximum optical sensor resolution */ 1911 2400, /* maximum motor resolution */ 1912 1200, /* base x-res used to calculate geometry */ 1913 1200, /* base y-res used to calculate geometry */ 1914 1200, /* if ydpi is equal or higher, disable backtracking */ 1915 SANE_FALSE, /* Use base_ydpi for all resolutions */ 1916 1917 1918 1919 {1200, 600, 300, 150, 100, 50, 0}, /* possible x-resolutions */ 1920 {2400,1200, 600, 300, 150, 100, 50, 0}, /* possible y-resolutions */ 1921 {16, 12, 8, 0}, /* possible depths in gray mode */ 1922 {16, 12, 8, 0}, /* possible depths in color mode */ 1923 1924 SANE_FIX (0.5), /* Start of scan area in mm (x) */ 1925 SANE_FIX (8.0), /* Start of scan area in mm (y) */ 1926 SANE_FIX (218.0), /* Size of scan area in mm (x) */ 1927 SANE_FIX (299.0), /* Size of scan area in mm (y) */ 1928 1929 SANE_FIX (0.0), /* Start of white strip in mm (y) */ 1930 SANE_FIX (9.5), /* Start of black mark in mm (x) */ 1931 1932 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ 1933 SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ 1934 SANE_FIX (0.0), /* Size of scan area in TA mode in mm (x) */ 1935 SANE_FIX (0.0), /* Size of scan area in TA mode in mm (y) */ 1936 1937 SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ 1938 1939 0, 0, 0, /* RGB CCD Line-distance correction in pixel */ 1940 0, /* CCD distcance for CCD with 6 lines) */ 1941 1942 COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ 1943 {0x19, 0x1a, 0x18, 0x14, 0x18, 0x12}, /* Default offset/gain */ 1944 {0x548, 0x513, 0x48d}, /* Default exposure parameters */ 1945 SANE_FIX (1.5), /* Default gamma value */ 1946 1947 SANE_TRUE, /* Is this a CIS scanner? */ 1948 GT68XX_FLAG_ALWAYS_LINEMODE | GT68XX_FLAG_SE_2400 1949 }; 1950 /* tested by Aleksey Nedorezov <aleksey at nedorezov.com> */ 1951 1952 1953 1954 1955 static GT68xx_USB_Device_Entry gt68xx_usb_device_list[] = { 1956 {0x10000, 0x10000, &unknown_model}, /* used for yet unknown scanners */ 1957 {0x055f, 0x0218, &mustek_2400ta_model}, 1958 {0x055f, 0x0219, &mustek_2400taplus_model}, 1959 {0x055f, 0x021c, &mustek_1200cuplus_model}, 1960 {0x055f, 0x021b, &mustek_1200cuplus2_model}, 1961 {0x055f, 0x021d, &mustek_2400cuplus_model}, 1962 {0x055f, 0x021e, &mustek_1200ta_model}, 1963 {0x055f, 0x021f, &mustek_scanexpress1248ub_model}, 1964 {0x05d8, 0x4002, &mustek_1200cu_model}, 1965 {0x05d8, 0x4002, &mustek_scanexpress1200ubplus_model}, /* manual override */ 1966 {0x05d8, 0x4002, &artec_ultima2000_model}, /* manual override */ 1967 {0x05d8, 0x4002, &mustek_2400cu_model}, /* manual override */ 1968 {0x05d8, 0x4002, &mustek_scanexpress2400usb_model}, /* manual override */ 1969 {0x055f, 0x0210, &mustek_a3usb_model}, 1970 {0x055f, 0x021a, &mustek_2448taplus_model}, 1971 {0x043d, 0x002d, &lexmark_x73_model}, 1972 {0x07b3, 0x0400, &plustek_op1248u_model}, 1973 {0x07b3, 0x0401, &plustek_op1248u_model}, /* Same scanner, different id? */ 1974 {0x07b3, 0x0402, &plustek_u16b_model}, 1975 {0x07b3, 0x0403, &plustek_u16b_model}, /* two ids? 403 seems to be more common */ 1976 {0x07b3, 0x040b, &plustek_ops12_model}, 1977 {0x07b3, 0x040e, &plustek_ops24_model}, 1978 {0x07b3, 0x0412, &plustek_opticslim_m12_model}, 1979 {0x07b3, 0x046e, &plustek_opticslim500plus_model}, 1980 {0x07b3, 0x0413, &plustek_opticslim1200_model}, 1981 {0x07b3, 0x0422, &plustek_opticslim2400_model}, 1982 {0x07b3, 0x045f, &iriscan_express_2_model}, 1983 {0x0458, 0x2011, &genius_vivid3x_model}, 1984 {0x0458, 0x2014, &genius_vivid4_model}, 1985 {0x0458, 0x2017, &genius_vivid3xe_model}, 1986 {0x0458, 0x201a, &genius_vivid4xe_model}, 1987 {0x0458, 0x201b, &genius_vivid4x_model}, 1988 {0x0458, 0x201d, &genius_vivid1200x_model}, 1989 {0x0458, 0x201f, &genius_vivid1200xe_model}, 1990 {0x0458, 0x2021, &genius_sf600_model}, 1991 {0x04a7, 0x0444, &visioneer_onetouch_7300_model}, 1992 {0x0458, 0x201E, &genius_colorpageslim_1200_model}, 1993 {0, 0, NULL} 1994 }; 1995