1/* 2 * Print plug-in CANON BJL driver for the GIMP. 3 * 4 * Copyright 1997-2000 Michael Sweet (mike@easysw.com), 5 * Robert Krawitz (rlk@alum.mit.edu) and 6 * Andy Thaller (thaller@ph.tum.de) 7 * Copyright (c) 2006 Sascha Sommer (saschasommer@freenet.de) 8 * 9 * This program is free software; you can redistribute it and/or modify it 10 * under the terms of the GNU General Public License as published by the Free 11 * Software Foundation; either version 2 of the License, or (at your option) 12 * any later version. 13 * 14 * This program is distributed in the hope that it will be useful, but 15 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 16 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 17 * for more details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with this program; if not, write to the Free Software 21 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 22 */ 23 24/* This file contains the capabilities of the various canon printers 25*/ 26 27#ifndef GUTENPRINT_INTERNAL_CANON_PRINTERS_H 28#define GUTENPRINT_INTERNAL_CANON_PRINTERS_H 29 30 31typedef struct canon_caps { 32 const char* name; /* model name */ 33 int model_id; /* model ID code for use in commands */ 34 int max_width; /* maximum printable paper size */ 35 int max_height; 36 int border_left; /* left margin, points */ 37 int border_right; /* right margin, points */ 38 int border_top; /* absolute top margin, points */ 39 int border_bottom; /* absolute bottom margin, points */ 40 int raster_lines_per_block; /* number of raster lines in every F) command */ 41 const canon_slotlist_t* slotlist; /*available paperslots */ 42 unsigned long features; /* special bjl settings */ 43 unsigned char ESC_r_arg; /* argument used for the ESC (r command during init */ 44 const char** control_cmdlist; 45 const canon_modelist_t* modelist; 46 const canon_paperlist_t* paperlist; 47 const char *lum_adjustment; 48 const char *hue_adjustment; 49 const char *sat_adjustment; 50 const char *channel_order; /* (in gutenprint notation) 0123 => KCMY, 1230 => CMYK etc. */ 51} canon_cap_t; 52 53static const char standard_sat_adjustment[] = 54"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" 55"<gutenprint>\n" 56"<curve wrap=\"wrap\" type=\"linear\" gamma=\"0\">\n" 57"<sequence count=\"48\" lower-bound=\"0\" upper-bound=\"4\">\n" 58/* C */ "1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 " /* B */ 59/* B */ "1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 " /* M */ 60/* M */ "1.00 0.95 0.90 0.90 0.90 0.90 0.90 0.90 " /* R */ 61/* R */ "0.90 0.95 0.95 1.00 1.00 1.00 1.00 1.00 " /* Y */ 62/* Y */ "1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 " /* G */ 63/* G */ "1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 " /* C */ 64"</sequence>\n" 65"</curve>\n" 66"</gutenprint>\n"; 67 68static const char standard_lum_adjustment[] = 69"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" 70"<gutenprint>\n" 71"<curve wrap=\"wrap\" type=\"linear\" gamma=\"0\">\n" 72"<sequence count=\"48\" lower-bound=\"0\" upper-bound=\"4\">\n" 73/* C */ "0.65 0.67 0.70 0.72 0.77 0.80 0.82 0.85 " /* B */ 74/* B */ "0.87 0.86 0.82 0.79 0.79 0.82 0.85 0.88 " /* M */ 75/* M */ "0.92 0.95 0.96 0.97 0.97 0.97 0.96 0.96 " /* R */ 76/* R */ "0.96 0.97 0.97 0.98 0.99 1.00 1.00 1.00 " /* Y */ 77/* Y */ "1.00 0.97 0.95 0.94 0.93 0.92 0.90 0.86 " /* G */ 78/* G */ "0.79 0.76 0.71 0.68 0.68 0.68 0.68 0.66 " /* C */ 79"</sequence>\n" 80"</curve>\n" 81"</gutenprint>\n"; 82 83static const char standard_hue_adjustment[] = 84"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" 85"<gutenprint>\n" 86"<curve wrap=\"wrap\" type=\"linear\" gamma=\"0\">\n" 87"<sequence count=\"48\" lower-bound=\"-6\" upper-bound=\"6\">\n" 88/* C */ "0.00 0.06 0.10 0.10 0.06 -.01 -.09 -.17 " /* B */ 89/* B */ "-.25 -.33 -.38 -.38 -.36 -.34 -.34 -.34 " /* M */ 90/* M */ "-.34 -.34 -.36 -.40 -.50 -.40 -.30 -.20 " /* R */ 91/* R */ "-.12 -.07 -.04 -.02 0.00 0.00 0.00 0.00 " /* Y */ 92/* Y */ "0.00 0.00 0.00 -.05 -.10 -.15 -.22 -.24 " /* G */ 93/* G */ "-.26 -.30 -.33 -.28 -.25 -.20 -.13 -.06 " /* C */ 94"</sequence>\n" 95"</curve>\n" 96"</gutenprint>\n"; 97 98static const char iP4200_sat_adjustment[] = 99"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" 100"<gutenprint>\n" 101"<curve wrap=\"wrap\" type=\"linear\" gamma=\"0\">\n" 102"<sequence count=\"48\" lower-bound=\"0\" upper-bound=\"4\">\n" 103/* C */ "1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 " /* B */ 104/* B */ "1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 " /* M */ 105/* M */ "1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 " /* R */ 106/* R */ "1.00 1.00 1.05 1.10 1.20 1.26 1.34 1.41 " /* Y */ 107/* Y */ "1.38 1.32 1.24 1.15 1.08 1.00 1.00 1.00 " /* G */ 108/* G */ "1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 " /* C */ 109"</sequence>\n" 110"</curve>\n" 111"</gutenprint>\n"; 112 113static const char iP4200_lum_adjustment[] = 114"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" 115"<gutenprint>\n" 116"<curve wrap=\"wrap\" type=\"linear\" gamma=\"0\">\n" 117"<sequence count=\"48\" lower-bound=\"0\" upper-bound=\"4\">\n" 118/* C */ "0.52 0.56 0.61 0.67 0.79 0.86 0.91 0.98 " /* B */ 119/* B */ "0.97 0.87 0.84 0.81 0.78 0.76 0.74 0.73 " /* M */ 120/* M */ "0.74 0.76 0.78 0.83 0.86 0.90 0.98 1.04 " /* R */ 121/* R */ "1.04 1.04 1.04 1.04 1.03 1.03 1.03 1.02 " /* Y */ 122/* Y */ "1.02 0.97 0.92 0.88 0.83 0.78 0.74 0.71 " /* G */ 123/* G */ "0.70 0.62 0.59 0.53 0.48 0.52 0.53 0.51 " /* C */ 124"</sequence>\n" 125"</curve>\n" 126"</gutenprint>\n"; 127 128static const char iP4200_hue_adjustment[] = 129"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" 130"<gutenprint>\n" 131"<curve wrap=\"wrap\" type=\"linear\" gamma=\"0\">\n" 132"<sequence count=\"48\" lower-bound=\"-6\" upper-bound=\"6\">\n" 133/* C */ "0.00 -.20 -.30 -.40 -.40 -.30 -.20 0.00 " /* B */ 134/* B */ "0.00 -.04 -.01 0.08 0.14 0.16 0.09 0.00 " /* M */ 135/* M */ "0.00 0.00 -.05 -.07 -.10 -.08 -.06 0.00 " /* R */ 136/* R */ "0.00 0.04 0.08 0.10 0.13 0.10 0.07 0.00 " /* Y */ 137/* Y */ "0.00 -.11 -.18 -.23 -.30 -.37 -.46 -.54 " /* G */ 138/* G */ "-.53 -.52 -.57 -.50 -.41 -.25 -.17 0.00 " /* C */ 139"</sequence>\n" 140"</curve>\n" 141"</gutenprint>\n"; 142 143static const char* control_cmd_ackshort[] = { 144 "AckTime=Short", 145 NULL 146}; 147 148static const char* control_cmd_PIXMA_iP4000[] = { 149/*"SetTime=20060722092503", */ /*what is this for?*/ 150 "SetSilent=OFF", 151 "PEdgeDetection=ON", 152 "SelectParallel=ECP", 153 NULL 154}; 155 156static const char* control_cmd_PIXMA_iP4200[] = { 157/*"SetTime=20060722092503", */ /*original driver sends current time, is it needed?*/ 158 "SetSilent=OFF", 159 "PEdgeDetection=ON", 160 NULL 161}; 162 163static const char* control_cmd_MULTIPASS_MP150[] = { 164 "AckTime=Short", 165 "MediaDetection=ON", 166 NULL 167}; 168 169static const char* control_cmd_PIXMA_iP2700[] = { 170/*"SetTime=20060722092503", */ /*what is this for?*/ 171 "SetSilent=OFF", 172 NULL 173}; 174 175static const char iP4500_channel_order[STP_NCOLORS] = {1,2,3,0}; /* CMYK */ 176 177static const canon_cap_t canon_model_capabilities[] = 178{ 179 /* the first printer is used as default in case something has gone wrong in printers.xml */ 180 { /* Canon MULTIPASS MP830 */ 181 "PIXMA MP830", 3, /*model, model_id*/ 182 842, 17*72, /* max paper width and height */ 183 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 184 8, 185 &canon_PIXMA_iP4000_slotlist, 186 /* CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px,0,control_cmd_MULTIPASS_MP150, */ /*features */ 187 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_P|CANON_CAP_I,0x64,control_cmd_MULTIPASS_MP150, /*features */ 188 &canon_MULTIPASS_MP830_modelist, 189 /* &canon_PIXMA_iP4000_paperlist, */ 190 &canon_MULTIPASS_MP600_paperlist, 191 NULL, 192 NULL, 193 NULL, 194 NULL 195 }, 196 { /* Canon MULTIPASS MP800 */ 197 "PIXMA MP800", 3, /*model, model_id*/ 198 842, 17*72, /* max paper width and height */ 199 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 200 8, 201 &canon_PIXMA_iP4000_slotlist, 202 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_P|CANON_CAP_I,0x64,control_cmd_PIXMA_iP4200, /*features */ 203 &canon_MULTIPASS_MP800_modelist, 204 &canon_MULTIPASS_MP600_paperlist, 205 NULL, 206 NULL, 207 NULL, 208 NULL 209 }, 210 { /* Canon MULTIPASS MP810 */ 211 "PIXMA MP810", 3, /*model, model_id*/ 212 842, 17*72, /* max paper width and height */ 213 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 214 8, 215 &canon_PIXMA_iP4000_slotlist, 216 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_P|CANON_CAP_I,0x64,control_cmd_PIXMA_iP4200, /*features */ 217 &canon_MULTIPASS_MP810_modelist, 218 &canon_MULTIPASS_MP600_paperlist, 219 NULL, 220 NULL, 221 NULL, 222 NULL 223 }, 224 { /* Canon PIXMA MP950 */ 225 "PIXMA MP950", 3, /*model, model_id*/ 226 842, 17*72, /* max paper width and height */ 227 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 228 8, 229 &canon_PIXMA_iP4000_slotlist, 230 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I,0x64,control_cmd_PIXMA_iP4200, /* features */ 231 &canon_MULTIPASS_MP950_modelist, 232 &canon_PIXMA_iP4000_paperlist, 233 NULL, 234 NULL, 235 NULL, 236 NULL 237 }, 238 { /* Canon PIXMA MP960 */ 239 "PIXMA MP960", 3, /*model, model_id*/ 240 842, 17*72, /* max paper width and height */ 241 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 242 8, 243 &canon_PIXMA_iP4600_slotlist, /* changed from iP4000 */ 244 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I,0x64,control_cmd_PIXMA_iP4200, /* features */ 245 &canon_MULTIPASS_MP960_modelist, 246 &canon_PIXMA_iP4600_paperlist, /* changed from iP4000 */ 247 NULL, 248 NULL, 249 NULL, 250 iP4500_channel_order 251 }, 252 { /* Canon PIXMA MP970 */ 253 "PIXMA MP970", 3, /*model, model_id*/ 254 842, 17*72, /* max paper width and height */ 255 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 256 8, 257 &canon_PIXMA_iP4000_slotlist, 258 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I,0x64,control_cmd_MULTIPASS_MP150, /*features */ 259 &canon_MULTIPASS_MP970_modelist, 260 &canon_PIXMA_iP4000_paperlist, 261 NULL, 262 NULL, 263 NULL, 264 NULL 265 }, 266 { /* Canon PIXMA MP980 */ 267 "PIXMA MP980", 3, /*model, model_id*/ 268 842, 17*72, /* max paper width and height */ 269 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 270 8, 271 &canon_PIXMA_iP4600_slotlist, 272 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I,0x64,control_cmd_PIXMA_iP4200, /*features */ 273 &canon_MULTIPASS_MP980_modelist, 274 &canon_MULTIPASS_MP980_paperlist, 275 NULL, 276 NULL, 277 NULL, 278 NULL 279 }, 280 { /* Canon PIXMA MP990 --- uses XML */ 281 "PIXMA MP990", 3, /*model, model_id*/ 282 842, 17*72, /* max paper width and height */ 283 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 284 8, 285 &canon_PIXMA_iP4600_slotlist, 286 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML,0x64,control_cmd_MULTIPASS_MP150, /*features */ 287 &canon_MULTIPASS_MP990_modelist, 288 &canon_MULTIPASS_MP990_paperlist, 289 NULL, 290 NULL, 291 NULL, 292 NULL 293 }, 294 295 /* ******************************** */ 296 /* */ 297 /* tested and color-adjusted models */ 298 /* */ 299 /* ******************************** */ 300 301 302 303 304 /* ************************************ */ 305 /* */ 306 /* tested models w/out color-adjustment */ 307 /* */ 308 /* ************************************ */ 309 310 { /* Canon S200x *//* heads: BC-24 */ 311 "S200", 3, 312 618, 936, /* 8.58" x 13 " */ 313 10, 10, 9, 20, 314 8, 315 &canon_default_slotlist, 316 CANON_CAP_STD1 | CANON_CAP_rr,0x61,NULL, 317 &canon_S200_modelist, 318 &canon_default_paperlist, 319 NULL, 320 NULL, 321 NULL, 322 NULL 323 }, 324 325 { /* Canon BJC S300 */ 326 "S300", 3, 327 842, 17*72, 328 11, 9, 10, 18, 329 8, 330 &canon_default_slotlist, 331 CANON_CAP_STD1 | CANON_CAP_r,0x61,control_cmd_ackshort, 332 &canon_BJC_8500_modelist, 333 &canon_default_paperlist, 334 NULL, 335 NULL, 336 NULL, 337 NULL 338 }, 339 340 { /* Canon BJ 30 *//* heads: BC-10 */ 341 "30", 1, 342 9.5*72, 14*72, 343 11, 9, 10, 18, 344 8, 345 &canon_default_slotlist, 346 CANON_CAP_STD0 | CANON_CAP_a,0,NULL, 347 &canon_BJC_30_modelist, 348 &canon_default_paperlist, 349 NULL, 350 NULL, 351 NULL, 352 NULL 353 }, 354 { /* Canon BJC 85 *//* heads: BC-20 BC-21 BC-22 */ 355 "85", 1, 356 9.5*72, 14*72, 357 11, 9, 10, 18, 358 8, 359 &canon_default_slotlist, 360 CANON_CAP_STD0 | CANON_CAP_a,0,NULL, 361 &canon_BJC_85_modelist, 362 &canon_default_paperlist, 363 NULL, 364 NULL, 365 NULL, 366 NULL 367 }, 368 369 { /* Canon BJC 4300 *//* heads: BC-20 BC-21 BC-22 BC-29 */ 370 "4300", 1, 371 618, 936, /* 8.58" x 13 " */ 372 11, 9, 10, 18, 373 8, 374 &canon_default_slotlist, 375 CANON_CAP_STD0,0,NULL, 376 &canon_BJC_4300_modelist, 377 &canon_default_paperlist, 378 NULL, 379 NULL, 380 NULL, 381 NULL 382 }, 383 384 { /* Canon BJC 4400 *//* heads: BC-20 BC-21 BC-22 BC-29 */ 385 "4400", 1, 386 9.5*72, 14*72, 387 11, 9, 10, 18, 388 8, 389 &canon_default_slotlist, 390 CANON_CAP_STD0 | CANON_CAP_a,0,NULL, 391 &canon_BJC_4400_modelist, 392 &canon_default_paperlist, 393 NULL, 394 NULL, 395 NULL, 396 NULL 397 }, 398 399 { /* Canon BJC 6000 *//* heads: BC-30/BC-31 BC-32/BC-31 */ 400 "6000", 3, 401 618, 936, /* 8.58" x 13 " */ 402 11, 9, 10, 18, 403 8, 404 &canon_default_slotlist, 405 CANON_CAP_STD1,0,control_cmd_ackshort, 406 &canon_BJC_6000_modelist, 407 &canon_default_paperlist, 408 NULL, 409 NULL, 410 NULL, 411 NULL 412 }, 413 414 { /* Canon BJC 6200 *//* heads: BC-30/BC-31 BC-32/BC-31 */ 415 "6200", 3, 416 618, 936, /* 8.58" x 13 " */ 417 11, 9, 10, 18, 418 8, 419 &canon_default_slotlist, 420 CANON_CAP_STD1,0,control_cmd_ackshort, 421 &canon_BJC_6000_modelist, 422 &canon_default_paperlist, 423 NULL, 424 NULL, 425 NULL, 426 NULL 427 }, 428 429 { /* Canon BJC 6500 *//* heads: BC-30/BC-31 BC-32/BC-31 */ 430 "6500", 3, 431 842, 17*72, 432 11, 9, 10, 18, 433 8, 434 &canon_default_slotlist, 435 CANON_CAP_STD1,0,NULL, 436 &canon_BJC_6000_modelist, 437 &canon_default_paperlist, 438 NULL, 439 NULL, 440 NULL, 441 NULL 442 }, 443 { /* Canon BJC 8200 *//* heads: BC-50 */ 444 "8200", 3, 445 842, 17*72, 446 11, 9, 10, 18, 447 8, 448 &canon_default_slotlist, 449 CANON_CAP_STD1 | CANON_CAP_r,0x61,control_cmd_ackshort, 450 &canon_BJC_8200_modelist, 451 &canon_default_paperlist, 452 NULL, 453 NULL, 454 NULL, 455 NULL 456 }, 457 { /* Canon S500 */ 458 "S500", 3, 459 842, 17*72, 460 10, 10, 15, 15, 461 8, 462 &canon_default_slotlist, 463 CANON_CAP_STD0 | CANON_CAP_r | CANON_CAP_p,0x61,control_cmd_ackshort, 464 &canon_S500_modelist, 465 &canon_default_paperlist, 466 NULL, 467 NULL, 468 NULL, 469 NULL 470 }, 471 472 473 /* *************** */ 474 /* */ 475 /* untested models */ 476 /* */ 477 /* *************** */ 478 479 { /* Canon BJC 210 *//* heads: BC-02 BC-05 BC-06 */ 480 "210", 1, 481 618, 936, /* 8.58" x 13 " */ 482 11, 9, 10, 18, 483 8, 484 &canon_default_slotlist, 485 CANON_CAP_STD0,0,NULL, 486 &canon_BJC_210_modelist, 487 &canon_default_paperlist, 488 NULL, 489 NULL, 490 NULL, 491 NULL 492 }, 493 { /* Canon BJC 240 *//* heads: BC-02 BC-05 BC-06 */ 494 "240", 1, 495 618, 936, /* 8.58" x 13 " */ 496 11, 9, 10, 18, 497 8, 498 &canon_default_slotlist, 499 CANON_CAP_STD0,0,NULL, 500 &canon_BJC_240_modelist, 501 &canon_default_paperlist, 502 NULL, 503 NULL, 504 NULL, 505 NULL 506 }, 507 { /* Canon BJC 250 *//* heads: BC-02 BC-05 BC-06 */ 508 "250", 1, 509 618, 936, /* 8.58" x 13 " */ 510 11, 9, 10, 18, 511 8, 512 &canon_default_slotlist, 513 CANON_CAP_STD0,0,NULL, 514 &canon_BJC_240_modelist, 515 &canon_default_paperlist, 516 NULL, 517 NULL, 518 NULL, 519 NULL 520 }, 521 { /* Canon BJC 1000 *//* heads: BC-02 BC-05 BC-06 */ 522 "1000", 1, 523 842, 17*72, 524 11, 9, 10, 18, 525 8, 526 &canon_default_slotlist, 527 CANON_CAP_STD0 | CANON_CAP_a,0,NULL, 528 &canon_BJC_240_modelist, 529 &canon_default_paperlist, 530 NULL, 531 NULL, 532 NULL, 533 NULL 534 }, 535 { /* Canon BJC 2000 *//* heads: BC-20 BC-21 BC-22 BC-29 */ 536 "2000", 1, 537 842, 17*72, 538 11, 9, 10, 18, 539 8, 540 &canon_default_slotlist, 541 CANON_CAP_STD0 | CANON_CAP_a,0,NULL, 542 &canon_BJC_2000_modelist, 543 &canon_default_paperlist, 544 NULL, 545 NULL, 546 NULL, 547 NULL 548 }, 549 { /* Canon BJC 3000 *//* heads: BC-30 BC-33 BC-34 */ 550 "3000", 3, 551 842, 17*72, 552 10, 10, 9, 15, 553 8, 554 &canon_default_slotlist, 555 CANON_CAP_STD0 | CANON_CAP_a | CANON_CAP_p,0,NULL, /*FIX? should have _r? */ 556 &canon_BJC_3000_modelist, 557 &canon_default_paperlist, 558 NULL, 559 NULL, 560 NULL, 561 NULL 562 }, 563 { /* Canon BJC 6100 *//* heads: BC-30/BC-31 BC-32/BC-31 */ 564 "6100", 3, 565 842, 17*72, 566 11, 9, 10, 18, 567 8, 568 &canon_default_slotlist, 569 CANON_CAP_STD1 | CANON_CAP_a | CANON_CAP_r,0x61,NULL, 570 &canon_BJC_3000_modelist, 571 &canon_default_paperlist, 572 NULL, 573 NULL, 574 NULL, 575 NULL 576 }, 577 { /* Canon BJC 7000 *//* heads: BC-60/BC-61 BC-60/BC-62 ??????? */ 578 "7000", 3, 579 842, 17*72, 580 11, 9, 10, 18, 581 8, 582 &canon_default_slotlist, 583 CANON_CAP_STD1,0,NULL, 584 &canon_BJC_7000_modelist, 585 &canon_default_paperlist, 586 NULL, 587 NULL, 588 NULL, 589 NULL 590 }, 591 { /* Canon BJC i560 */ 592 "i560", 3, 593 842, 17*72, 594 11, 9, 10, 18, 595 8, 596 &canon_default_slotlist, 597 CANON_CAP_STD1,0,NULL, 598 &canon_BJC_i560_modelist, 599 &canon_default_paperlist, 600 NULL, 601 NULL, 602 NULL, 603 NULL 604 }, 605 { /* Canon BJC 7100 *//* heads: BC-60/BC-61 BC-60/BC-62 ??????? */ 606 "7100", 3, 607 842, 17*72, 608 11, 9, 10, 18, 609 8, 610 &canon_default_slotlist, 611 CANON_CAP_STD0,0,NULL, 612 &canon_BJC_7100_modelist, 613 &canon_default_paperlist, 614 NULL, 615 NULL, 616 NULL, 617 NULL 618 }, 619 { /* Canon BJC i80 *//* heads: BC-60/BC-61 BC-60/BC-62 ??????? */ 620 "i80", 3, 621 842, 17*72, 622 11, 9, 10, 18, 623 8, 624 &canon_default_slotlist, 625 CANON_CAP_STD0,0,NULL, 626 &canon_BJC_i80_modelist, 627 &canon_default_paperlist, 628 NULL, 629 NULL, 630 NULL, 631 NULL 632 }, 633 634 /*****************************/ 635 /* */ 636 /* extremely fuzzy models */ 637 /* (might never work at all) */ 638 /* */ 639 /*****************************/ 640 641 { /* Canon BJC 5100 *//* heads: BC-20 BC-21 BC-22 BC-23 BC-29 */ 642 "5100", 1, 643 17*72, 22*72, 644 11, 9, 10, 18, 645 8, 646 &canon_default_slotlist, 647 CANON_CAP_STD0,0,NULL, 648 &canon_BJC_3000_modelist, 649 &canon_default_paperlist, 650 NULL, 651 NULL, 652 NULL, 653 NULL 654 }, 655 { /* Canon BJC 5500 *//* heads: BC-20 BC-21 BC-29 */ 656 "5500", 1, 657 22*72, 34*72, 658 11, 9, 10, 18, 659 8, 660 &canon_default_slotlist, 661 CANON_CAP_STD0 | CANON_CAP_a,0,NULL, 662 &canon_BJC_5500_modelist, 663 &canon_default_paperlist, 664 NULL, 665 NULL, 666 NULL, 667 NULL 668 }, 669 { /* Canon BJC 6500 *//* heads: BC-30/BC-31 BC-32/BC-31 */ 670 "6500", 3, 671 17*72, 22*72, 672 11, 9, 10, 18, 673 8, 674 &canon_default_slotlist, 675 CANON_CAP_STD1 | CANON_CAP_a,0,NULL, 676 &canon_BJC_3000_modelist, 677 &canon_default_paperlist, 678 NULL, 679 NULL, 680 NULL, 681 NULL 682 }, 683 { /* Canon BJC 8500 *//* heads: BC-80/BC-81 BC-82/BC-81 */ 684 "8500", 3, 685 17*72, 22*72, 686 11, 9, 10, 18, 687 8, 688 &canon_default_slotlist, 689 CANON_CAP_STD0,0,NULL, 690 &canon_BJC_8500_modelist, 691 &canon_default_paperlist, 692 NULL, 693 NULL, 694 NULL, 695 NULL 696 }, 697 { /* Canon PIXMA iP1000 */ 698 "PIXMA iP1000", 3, /*model, model_id*/ 699 842, 17*72, /* max paper width and height */ 700 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 701 8, 702 &canon_MULTIPASS_MP170_slotlist, /* auto sheet feeder only */ 703 CANON_CAP_STD0,0,control_cmd_PIXMA_iP4000, /*features */ 704 &canon_PIXMA_iP1000_modelist, 705 &canon_PIXMA_iP1000_paperlist, 706 NULL, 707 NULL, 708 NULL, 709 NULL 710 }, 711 { /* Canon PIXMA iP1200 --- iP1300 same */ 712 "PIXMA iP1200", 3, /*model, model_id*/ 713 842, 17*72, /* max paper width and height */ 714 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 715 8, 716 &canon_MULTIPASS_MP170_slotlist, /* auto sheet feeder only */ 717 CANON_CAP_STD0,0,control_cmd_PIXMA_iP4000, /*features */ 718 &canon_PIXMA_iP1200_modelist, 719 &canon_PIXMA_iP1200_paperlist, 720 NULL, 721 NULL, 722 NULL, 723 NULL 724 }, 725 { /* Canon PIXMA iP1500 */ 726 "PIXMA iP1500", 3, /*model, model_id*/ 727 842, 17*72, /* max paper width and height */ 728 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 729 8, 730 &canon_MULTIPASS_MP170_slotlist, /* auto sheet feeder only */ 731 CANON_CAP_STD0,0,control_cmd_PIXMA_iP4000, /*features */ 732 &canon_PIXMA_iP1500_modelist, 733 &canon_PIXMA_iP1500_paperlist, 734 NULL, 735 NULL, 736 NULL, 737 NULL 738 }, 739 { /* Canon PIXMA iP1600 */ 740 "PIXMA iP1600", 3, /*model, model_id*/ 741 842, 17*72, /* max paper width and height */ 742 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 743 8, 744 &canon_MULTIPASS_MP170_slotlist, /* auto sheet feeder only */ 745 CANON_CAP_STD0,0,control_cmd_PIXMA_iP4000, /*features */ 746 &canon_MULTIPASS_MP170_modelist, 747 &canon_PIXMA_iP1500_paperlist, 748 NULL, 749 NULL, 750 NULL, 751 NULL 752 }, 753 { /* Canon PIXMA iP1900 */ 754 "PIXMA iP1900", 3, /*model, model_id*/ 755 842, 17*72, /* max paper width and height */ 756 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 757 8, 758 &canon_MULTIPASS_MP250_slotlist, /* rear only */ 759 CANON_CAP_STD0,0,control_cmd_PIXMA_iP4000, /*features */ 760 &canon_PIXMA_iP1900_modelist, 761 &canon_PIXMA_iP1900_paperlist, 762 NULL, 763 NULL, 764 NULL, 765 NULL 766 }, 767 { /* Canon PIXMA iP2000 */ 768 "PIXMA iP2000", 3, /*model, model_id*/ 769 842, 17*72, /* max paper width and height */ 770 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 771 8, 772 &canon_PIXMA_iP4000_slotlist, 773 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px,0x61,control_cmd_PIXMA_iP4000, /*features */ 774 &canon_PIXMA_iP2000_modelist, 775 &canon_PIXMA_iP4000_paperlist, 776 NULL, 777 NULL, 778 NULL, 779 NULL 780 }, 781 { /* Canon PIXMA iP2200 */ 782 "PIXMA iP2200", 3, /*model, model_id*/ 783 842, 17*72, /* max paper width and height */ 784 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 785 8, 786 &canon_MULTIPASS_MP170_slotlist, /* auto sheet feeder only */ 787 CANON_CAP_STD0,0,control_cmd_PIXMA_iP4000, /*features */ 788 &canon_PIXMA_iP1900_modelist, 789 &canon_PIXMA_iP2200_paperlist, 790 NULL, 791 NULL, 792 NULL, 793 NULL 794 }, 795 { /* Canon PIXMA iP2500 */ 796 "PIXMA iP2500", 3, /*model, model_id*/ 797 842, 17*72, /* max paper width and height */ 798 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 799 8, 800 &canon_MULTIPASS_MP170_slotlist, /* auto sheet feeder only */ 801 CANON_CAP_STD0,0,control_cmd_PIXMA_iP4000, /*features */ 802 &canon_PIXMA_iP1900_modelist, 803 &canon_PIXMA_iP2200_paperlist,/* OHP experimental */ 804 NULL, 805 NULL, 806 NULL, 807 NULL 808 }, 809 { /* Canon PIXMA iP2600 */ 810 "PIXMA iP2600", 3, /*model, model_id*/ 811 842, 17*72, /* max paper width and height */ 812 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 813 8, 814 &canon_MULTIPASS_MP170_slotlist, /* auto sheet feeder only */ 815 CANON_CAP_STD0,0,control_cmd_PIXMA_iP4000, /*features */ 816 &canon_PIXMA_iP1900_modelist, 817 &canon_PIXMA_iP2600_paperlist, 818 NULL, 819 NULL, 820 NULL, 821 NULL 822 }, 823 { /* Canon PIXMA iP2700 */ 824 "PIXMA iP2700", 3, /*model, model_id*/ 825 842, 17*72, /* max paper width and height */ 826 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 827 8, 828 &canon_MULTIPASS_MP250_slotlist, /* rear only */ 829 CANON_CAP_STD0|CANON_CAP_P|CANON_CAP_I|CANON_CAP_px|CANON_CAP_T|CANON_CAP_XML,0,control_cmd_PIXMA_iP2700, /*features */ 830 &canon_PIXMA_iP2700_modelist, 831 &canon_PIXMA_iP2700_paperlist, 832 NULL, 833 NULL, 834 NULL, 835 iP4500_channel_order 836 }, 837 { /* Canon PIXMA iP3000 */ 838 "PIXMA iP3000", 3, /*model, model_id*/ 839 842, 17*72, /* max paper width and height */ 840 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 841 8, 842 &canon_PIXMA_iP4000_slotlist, 843 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px,0x64,control_cmd_PIXMA_iP4000, /*features */ 844 &canon_PIXMA_iP3000_modelist, 845 &canon_PIXMA_iP4000_paperlist, 846 NULL, 847 NULL, 848 NULL, 849 NULL 850 }, 851 { /* Canon PIXMA iP3100 */ 852 "PIXMA iP3100", 3, /*model, model_id*/ 853 842, 17*72, /* max paper width and height */ 854 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 855 8, 856 &canon_PIXMA_iP3100_slotlist, 857 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px,0x64,control_cmd_PIXMA_iP4000, /*features */ 858 &canon_PIXMA_iP3100_modelist, 859 &canon_PIXMA_iP3100_paperlist, 860 NULL, 861 NULL, 862 NULL, 863 NULL 864 }, 865 { /* Canon PIXMA iP4000 */ 866 "PIXMA iP4000", 3, /*model, model_id*/ 867 842, 17*72, /* max paper width and height */ 868 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 869 8, 870 &canon_PIXMA_iP4000_slotlist, 871 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px /*|CANON_CAP_I*/,0x64,control_cmd_PIXMA_iP4000, /*features */ 872 &canon_PIXMA_iP4000_modelist, 873 &canon_PIXMA_iP4000_paperlist, 874 NULL, 875 NULL, 876 NULL, 877 NULL 878 }, 879 { /* PIXMA MP740 (== iP4000 without duplex) */ 880 "PIXMA MP740", 3, /*model, model_id*/ 881 842, 17*72, /* max paper width and height */ 882 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 883 8, 884 &canon_PIXMA_iP4000_slotlist, 885 CANON_CAP_STD0|CANON_CAP_r|CANON_CAP_px /*,|CANON_CAP_I*/,0x64,control_cmd_PIXMA_iP4000, /*features */ 886 &canon_PIXMA_iP4000_modelist, 887 &canon_PIXMA_iP4000_paperlist, 888 NULL, 889 NULL, 890 NULL, 891 NULL 892 }, 893 { /* Canon PIXMA iP5300, MP610 */ 894 "PIXMA iP5300", 3, /*model, model_id*/ 895 842, 17*72, /* max paper width and height */ 896 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 897 8, 898 &canon_PIXMA_iP4000_slotlist, 899 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I,0x64,control_cmd_PIXMA_iP4000, /*features */ 900 &canon_PIXMA_iP5300_modelist, 901 /*&canon_PIXMA_iP4000_paperlist,*/ 902 &canon_MULTIPASS_MP600_paperlist, 903 NULL, 904 NULL, 905 NULL, 906 NULL 907 }, 908 { /* Canon PIXMA iP4600 */ 909 "PIXMA iP4600", 3, /*model, model_id*/ 910 8.5*72, 26.625*72, /* max paper width and height */ 911 10, 10, 9, 15, /*border_left, border_right, border_top, border_bottom */ 912 16, 913 &canon_PIXMA_iP4600_slotlist, 914 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I,0x61,control_cmd_MULTIPASS_MP150, /*features */ 915 &canon_PIXMA_iP5300_modelist, 916 &canon_PIXMA_iP4600_paperlist, 917 NULL, 918 NULL, 919 NULL, 920 iP4500_channel_order 921 }, 922 { /* Canon PIXMA iP4500 CD-R tray F */ 923 "PIXMA iP4500", 3, /*model, model_id*/ 924 842, 17*72, /* max paper width and height */ 925 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 926 8, 927 &canon_PIXMA_iP4500_slotlist, 928 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I,0x64,control_cmd_MULTIPASS_MP150, /* features */ 929 &canon_PIXMA_iP4500_modelist, /* changed from iP5300 */ 930 &canon_PIXMA_iP4500_paperlist, 931 NULL, 932 NULL, 933 NULL, 934 iP4500_channel_order 935 }, 936 { /* Canon PIXMA iP4700 CD-R tray G */ 937 "PIXMA iP4700", 3, /*model, model_id*/ 938 842, 17*72, /* max paper width and height */ 939 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 940 8, 941 &canon_PIXMA_iP4600_slotlist, /* there is some ESC (r 0x65 command for CD tray also, not sure why */ 942 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I|CANON_CAP_XML,0x64,control_cmd_MULTIPASS_MP150, /* features */ 943 &canon_PIXMA_iP4700_modelist, 944 &canon_PIXMA_iP4700_paperlist, 945 NULL, 946 NULL, 947 NULL, 948 iP4500_channel_order 949 }, 950 { /* Canon PIXMA iP4200 */ 951 "PIXMA iP4200", 3, /*model, model_id*/ 952 842, 17*72, /* max paper width and height */ 953 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 954 8, 955 &canon_PIXMA_iP4000_slotlist, 956 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P,0x64,control_cmd_PIXMA_iP4200, /*features */ 957 &canon_PIXMA_iP4200_modelist, 958 &canon_PIXMA_iP4000_paperlist, 959 iP4200_lum_adjustment, 960 iP4200_hue_adjustment, 961 iP4200_sat_adjustment, 962 NULL 963 }, 964 { /* Canon PIXMA iP4800 CD-R tray G */ 965 "PIXMA iP4800", 3, /*model, model_id*/ 966 842, 17*72, /* max paper width and height */ 967 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 968 8, 969 &canon_PIXMA_iP4600_slotlist, /* there is some ESC (r 0x68 command for CD tray also, not sure why */ 970 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I|CANON_CAP_XML,0x64,control_cmd_MULTIPASS_MP150, /* features */ 971 &canon_PIXMA_iP4700_modelist,/* same for iP4800 */ 972 &canon_PIXMA_iP4700_paperlist,/* same for iP4800 */ 973 NULL, 974 NULL, 975 NULL, 976 iP4500_channel_order 977 }, 978 { /* Canon PIXMA iP6000 */ 979 "PIXMA iP6000", 3, /*model, model_id*/ 980 842, 17*72, /* max paper width and height */ 981 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 982 8, 983 &canon_PIXMA_iP4000_slotlist, 984 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px,0x64,control_cmd_PIXMA_iP4000, /*features */ 985 &canon_PIXMA_iP6000_modelist, 986 &canon_PIXMA_iP4000_paperlist, 987 NULL, 988 NULL, 989 NULL, 990 iP4500_channel_order 991 }, 992 { /* Canon PIXMA iP6100 */ 993 "PIXMA iP6100", 3, /*model, model_id*/ 994 842, 17*72, /* max paper width and height */ 995 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 996 8, 997 &canon_PIXMA_iP4000_slotlist, 998 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px,0x64,control_cmd_PIXMA_iP4000, /*features */ 999 &canon_PIXMA_iP6000_modelist, 1000 &canon_PIXMA_iP6100_paperlist, 1001 NULL, 1002 NULL, 1003 NULL, 1004 iP4500_channel_order 1005 }, 1006 { /* Canon PIXMA iP6600 */ 1007 "PIXMA iP6600", 3, /*model, model_id*/ 1008 842, 17*72, /* max paper width and height */ 1009 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1010 8, 1011 &canon_PIXMA_iP4000_slotlist, 1012 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_P|CANON_CAP_r|CANON_CAP_px,0x64,control_cmd_PIXMA_iP4000, /*features */ 1013 &canon_PIXMA_iP6700_modelist, 1014 &canon_PIXMA_iP6600_paperlist, 1015 NULL, 1016 NULL, 1017 NULL, 1018 iP4500_channel_order 1019 }, 1020 { /* Canon PIXMA iP6700 */ 1021 "PIXMA iP6700", 3, /*model, model_id*/ 1022 842, 17*72, /* max paper width and height */ 1023 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1024 8, 1025 &canon_PIXMA_iP4000_slotlist, 1026 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_P|CANON_CAP_r|CANON_CAP_px,0x64,control_cmd_PIXMA_iP4000, /*features */ 1027 &canon_PIXMA_iP6700_modelist, 1028 &canon_PIXMA_iP6700_paperlist, 1029 NULL, 1030 NULL, 1031 NULL, 1032 iP4500_channel_order 1033 }, 1034 { /* Canon PIXMA iX5000 */ 1035 "PIXMA iX5000", 3, /*model, model_id*/ 1036 842, 17*72, /* max paper width and height */ 1037 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1038 8, 1039 &canon_MULTIPASS_MP170_slotlist, 1040 /* CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I,0x61,control_cmd_PIXMA_iP4000, */ 1041 CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I,0,control_cmd_PIXMA_iP4000, /*features */ 1042 &canon_PIXMA_iX5000_modelist, 1043 &canon_PIXMA_iP1500_paperlist, 1044 NULL, 1045 NULL, 1046 NULL, 1047 NULL 1048 }, 1049 { /* Canon PIXMA iX6500 --- with XML */ 1050 "PIXMA iX6500", 3, /*model, model_id*/ 1051 842, 17*72, /* max paper width and height */ 1052 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1053 8, 1054 &canon_MULTIPASS_MP250_slotlist, 1055 CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML,0,control_cmd_PIXMA_iP4000, /*features */ 1056 &canon_MULTIPASS_MP540_modelist, 1057 &canon_MULTIPASS_MX880_paperlist, 1058 NULL, 1059 NULL, 1060 NULL, 1061 NULL 1062 }, 1063 { /* Canon PIXMA iX7000 --- with XML */ 1064 "PIXMA iX7000", 3, /*model, model_id*/ 1065 842, 17*72, /* max paper width and height */ 1066 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1067 8, 1068 &canon_PIXMA_iX7000_slotlist, 1069 CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_r|CANON_CAP_P|CANON_CAP_XML,0x64,control_cmd_PIXMA_iP4200, /*features */ 1070 &canon_PIXMA_iX7000_modelist, 1071 &canon_PIXMA_iX7000_paperlist, 1072 NULL, 1073 NULL, 1074 NULL, 1075 NULL 1076 }, 1077 { /* Canon PIXMA MP510 --- like MP520 but without PPGgold paper support */ 1078 "PIXMA MP510", 3, /*model, model_id*/ 1079 842, 17*72, /* max paper width and height */ 1080 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1081 8, 1082 &canon_MULTIPASS_MP520_slotlist, 1083 CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I,0,control_cmd_PIXMA_iP2700, /*features */ 1084 &canon_MULTIPASS_MP520_modelist, 1085 &canon_MULTIPASS_MP520_paperlist, /* Windows driver lacks PPGgold, but let us try anyway */ 1086 NULL, 1087 NULL, 1088 NULL, 1089 NULL 1090 }, 1091 { /* Canon PIXMA MP520 */ 1092 "PIXMA MP520", 3, /*model, model_id*/ 1093 842, 17*72, /* max paper width and height */ 1094 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1095 8, 1096 &canon_MULTIPASS_MP520_slotlist, 1097 CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I,0,control_cmd_PIXMA_iP2700, /*features */ 1098 &canon_MULTIPASS_MP520_modelist, 1099 &canon_MULTIPASS_MP520_paperlist, 1100 NULL, 1101 NULL, 1102 NULL, 1103 NULL 1104 }, 1105 { /* Canon PIXMA MP540 */ 1106 "PIXMA MP540", 3, /*model, model_id*/ 1107 842, 17*72, /* max paper width and height */ 1108 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1109 8, 1110 &canon_PIXMA_MG5100_slotlist, 1111 CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_r,0x64,control_cmd_MULTIPASS_MP150, /*features */ 1112 &canon_MULTIPASS_MP540_modelist, 1113 &canon_MULTIPASS_MX330_paperlist, 1114 NULL, 1115 NULL, 1116 NULL, 1117 NULL 1118 }, 1119 { /* Canon PIXMA MP550 ---wth XML */ 1120 "PIXMA MP550", 3, /*model, model_id*/ 1121 842, 17*72, /* max paper width and height */ 1122 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1123 8, 1124 &canon_PIXMA_MG5100_slotlist, 1125 CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_r|CANON_CAP_XML,0x64,control_cmd_MULTIPASS_MP150, /*features */ 1126 &canon_MULTIPASS_MP540_modelist, /* seems to have same modes */ 1127 &canon_MULTIPASS_MP250_paperlist, 1128 NULL, 1129 NULL, 1130 NULL, 1131 NULL 1132 }, 1133 { /* Canon PIXMA MP600 */ 1134 "PIXMA MP600", 3, /*model, model_id*/ 1135 842, 17*72, /* max paper width and height */ 1136 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1137 8, 1138 &canon_MULTIPASS_MX850_slotlist, 1139 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_I,0x64,control_cmd_PIXMA_iP4000, /*features */ 1140 &canon_MULTIPASS_MP520_modelist, 1141 &canon_MULTIPASS_MP600_paperlist, 1142 NULL, 1143 NULL, 1144 NULL, 1145 NULL 1146 }, 1147 { /* Canon PIXMA MP630 */ 1148 "PIXMA MP630", 3, /*model, model_id*/ 1149 842, 17*72, /* max paper width and height */ 1150 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1151 8, 1152 &canon_PIXMA_MG5200_slotlist, 1153 CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_r,0x64,control_cmd_PIXMA_iP4200, /*features */ 1154 &canon_MULTIPASS_MP640_modelist, 1155 &canon_MULTIPASS_MP630_paperlist, 1156 NULL, 1157 NULL, 1158 NULL, 1159 NULL 1160 }, 1161 { /* Canon PIXMA MP640 */ 1162 "PIXMA MP640", 3, /*model, model_id*/ 1163 842, 17*72, /* max paper width and height */ 1164 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1165 8, 1166 &canon_PIXMA_MG5200_slotlist, 1167 CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_I|CANON_CAP_XML|CANON_CAP_r,0x64,control_cmd_PIXMA_iP4200, /*features */ 1168 &canon_MULTIPASS_MP640_modelist, 1169 &canon_MULTIPASS_MP640_paperlist, 1170 NULL, 1171 NULL, 1172 NULL, 1173 NULL 1174 }, 1175 { /* Canon PIXMA Pro9000 */ 1176 "PIXMA Pro9000", 3, /*model, model_id*/ 1177 842, 17*72, /* max paper width and height */ 1178 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1179 8, 1180 &canon_PIXMA_Pro9000_slotlist, 1181 CANON_CAP_STD0|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P,0x64,control_cmd_PIXMA_iP4000, /*features */ 1182 &canon_PIXMA_Pro9000_modelist, 1183 &canon_PIXMA_Pro9000_paperlist, 1184 NULL, 1185 NULL, 1186 NULL, 1187 NULL 1188 }, 1189 { /* Canon PIXMA Pro9000 Mk.II */ 1190 "PIXMA Pro9002", 3, /*model, model_id*/ 1191 842, 17*72, /* max paper width and height */ 1192 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1193 8, 1194 &canon_PIXMA_Pro9000_slotlist, 1195 CANON_CAP_STD0|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P,0x64,control_cmd_PIXMA_iP4000, /*features */ 1196 &canon_PIXMA_Pro9000mk2_modelist, 1197 &canon_PIXMA_Pro9000mk2_paperlist, 1198 NULL, 1199 NULL, 1200 NULL, 1201 NULL 1202 }, 1203 { /* Canon PIXMA Pro9500 */ 1204 "PIXMA Pro9500", 3, /*model, model_id*/ 1205 842, 17*72, /* max paper width and height */ 1206 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1207 8, 1208 &canon_PIXMA_Pro9000_slotlist, 1209 CANON_CAP_STD0|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P,0x64,control_cmd_PIXMA_iP4000, /*features */ 1210 &canon_PIXMA_Pro9500_modelist, 1211 &canon_PIXMA_Pro9500_paperlist, 1212 NULL, 1213 NULL, 1214 NULL, 1215 NULL 1216 }, 1217 { /* Canon PIXMA Pro9500 Mk.II */ 1218 "PIXMA Pro9502", 3, /*model, model_id*/ 1219 842, 17*72, /* max paper width and height */ 1220 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1221 8, 1222 &canon_PIXMA_Pro9000_slotlist, 1223 CANON_CAP_STD0|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P,0x64,control_cmd_PIXMA_iP4000, /*features */ 1224 &canon_PIXMA_Pro9500mk2_modelist, 1225 &canon_PIXMA_Pro9500mk2_paperlist, 1226 NULL, 1227 NULL, 1228 NULL, 1229 NULL 1230 }, 1231 { /* Canon PIXMA iP8500 */ 1232 "PIXMA iP8500", 3, /*model, model_id*/ 1233 842, 17*72, /* max paper width and height */ 1234 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1235 8, 1236 &canon_PIXMA_iP4000_slotlist, 1237 /*CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px,0x61,control_cmd_PIXMA_iP4000,*/ /*features */ 1238 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P,0x64,control_cmd_PIXMA_iP4000, /*features */ 1239 &canon_PIXMA_iP8500_modelist, 1240 &canon_PIXMA_iP4000_paperlist, 1241 NULL, 1242 NULL, 1243 NULL, 1244 NULL 1245 }, 1246 { /* Canon MULTIPASS MP150 */ 1247 "PIXMA MP150", 3, /*model, model_id*/ 1248 842, 17*72, /* max paper width and height */ 1249 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1250 8, 1251 /* &canon_PIXMA_iP4000_slotlist, */ 1252 &canon_MULTIPASS_MP170_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */ 1253 /* CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_T|CANON_CAP_I,0x61,control_cmd_MULTIPASS_MP150, */ 1254 CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I,0,control_cmd_MULTIPASS_MP150, /*features */ 1255 &canon_MULTIPASS_MP150_modelist, 1256 /* &canon_PIXMA_iP4000_paperlist, */ 1257 &canon_MULTIPASS_MP150_paperlist, 1258 NULL, 1259 NULL, 1260 NULL, 1261 NULL 1262 }, 1263 { /* Canon MULTIPASS MP170 */ 1264 "PIXMA MP170", 3, /*model, model_id*/ 1265 842, 17*72, /* max paper width and height */ 1266 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1267 8, 1268 &canon_MULTIPASS_MP170_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */ 1269 CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I,0,control_cmd_MULTIPASS_MP150, /*features */ 1270 &canon_MULTIPASS_MP170_modelist, 1271 &canon_MULTIPASS_MP170_paperlist, 1272 NULL, 1273 NULL, 1274 NULL, 1275 NULL 1276 }, 1277 { /* Canon MULTIPASS MP450 */ 1278 "PIXMA MP450", 3, /*model, model_id*/ 1279 842, 17*72, /* max paper width and height */ 1280 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1281 8, 1282 &canon_MULTIPASS_MP170_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */ 1283 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I,0,control_cmd_MULTIPASS_MP150, /*features */ 1284 &canon_MULTIPASS_MP170_modelist, 1285 &canon_MULTIPASS_MP170_paperlist, 1286 NULL, 1287 NULL, 1288 NULL, 1289 NULL 1290 }, 1291 { /* Canon MULTIPASS MP480 --- no XML */ 1292 "PIXMA MP480", 3, /*model, model_id*/ 1293 842, 17*72, /* max paper width and height */ 1294 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1295 8, 1296 &canon_MULTIPASS_MP250_slotlist, /* only rear tray also uses CAP_T */ 1297 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I,0,control_cmd_MULTIPASS_MP150, /*features */ 1298 &canon_MULTIPASS_MP480_modelist, 1299 &canon_MULTIPASS_MP480_paperlist, 1300 NULL, 1301 NULL, 1302 NULL, 1303 NULL 1304 }, 1305 { /* Canon MULTIPASS MP493: new model after MP480(?) --- with XML */ 1306 "PIXMA MP493", 3, /*model, model_id*/ 1307 842, 17*72, /* max paper width and height */ 1308 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1309 8, 1310 &canon_MULTIPASS_MP250_slotlist, /* only rear tray also uses CAP_T */ 1311 CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_XML,0,control_cmd_MULTIPASS_MP150, /*features */ 1312 &canon_MULTIPASS_MP480_modelist, 1313 &canon_MULTIPASS_MP493_paperlist, 1314 NULL, 1315 NULL, 1316 NULL, 1317 NULL 1318 }, 1319 { /* Canon MULTIPASS MP495 identical to MP280 it seems --- with XML */ 1320 "PIXMA MP495", 3, /*model, model_id*/ 1321 842, 17*72, /* max paper width and height */ 1322 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1323 8, 1324 &canon_MULTIPASS_MP250_slotlist, /* only rear tray also uses CAP_T */ 1325 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_XML,0,control_cmd_MULTIPASS_MP150, /*features */ 1326 &canon_MULTIPASS_MP280_modelist, 1327 &canon_MULTIPASS_MP280_paperlist, 1328 NULL, 1329 NULL, 1330 NULL, 1331 NULL 1332 }, 1333 { /* Canon MULTIPASS MP250 */ 1334 "PIXMA MP250", 3, /*model, model_id*/ 1335 842, 17*72, /* max paper width and height */ 1336 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1337 8, 1338 &canon_MULTIPASS_MP250_slotlist, /* these models only have a rear tray. Also uses CAP_T */ 1339 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_XML,0x61,control_cmd_MULTIPASS_MP150, /*features */ 1340 &canon_MULTIPASS_MP250_modelist, 1341 &canon_MULTIPASS_MP250_paperlist, 1342 NULL, 1343 NULL, 1344 NULL, 1345 NULL 1346 }, 1347 { /* Canon MULTIPASS MP270 */ 1348 "PIXMA MP270", 3, /*model, model_id*/ 1349 842, 17*72, /* max paper width and height */ 1350 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1351 8, 1352 &canon_MULTIPASS_MP250_slotlist, /* these models only have a rear tray. Also uses CAP_T */ 1353 CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_XML,0,control_cmd_MULTIPASS_MP150, /*features */ 1354 &canon_MULTIPASS_MP250_modelist, 1355 &canon_MULTIPASS_MP250_paperlist, 1356 NULL, 1357 NULL, 1358 NULL, 1359 NULL 1360 }, 1361 { /* Canon MULTIPASS MP280 */ 1362 "PIXMA MP280", 3, /*model, model_id*/ 1363 842, 17*72, /* max paper width and height */ 1364 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1365 8, 1366 &canon_MULTIPASS_MP250_slotlist, /* these models only have a rear tray. */ 1367 CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_r|CANON_CAP_P|CANON_CAP_I|CANON_CAP_T|CANON_CAP_XML,0,control_cmd_MULTIPASS_MP150, /*features Also uses CAP_T. MP280 no duplex, no 0x61 */ 1368 &canon_MULTIPASS_MP280_modelist, 1369 &canon_MULTIPASS_MP280_paperlist, 1370 NULL, 1371 NULL, 1372 NULL, 1373 NULL 1374 }, 1375 { /* Canon PIXMA MG5100 */ 1376 "PIXMA MG5100", 3, /*model, model_id*/ 1377 842, 17*72, /* max paper width and height */ 1378 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1379 8, 1380 &canon_PIXMA_MG5100_slotlist, 1381 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML,0,control_cmd_MULTIPASS_MP150, /* features */ 1382 &canon_PIXMA_MG5100_modelist, 1383 &canon_PIXMA_MG5100_paperlist, 1384 NULL, 1385 NULL, 1386 NULL, 1387 iP4500_channel_order 1388 }, 1389 { /* Canon PIXMA MG5200 --- like MG5100, plus CD tray */ 1390 "PIXMA MG5200", 3, /*model, model_id*/ 1391 842, 17*72, /* max paper width and height */ 1392 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1393 8, 1394 &canon_PIXMA_MG5200_slotlist, 1395 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML,0x64,control_cmd_MULTIPASS_MP150, /* features */ 1396 &canon_PIXMA_MG5200_modelist,/* there is some ESC (r 0x68 command for CD tray also, not sure why */ 1397 &canon_PIXMA_MG5200_paperlist, 1398 NULL, 1399 NULL, 1400 NULL, 1401 iP4500_channel_order 1402 }, 1403 { /* Canon PIXMA MG6100 */ 1404 "PIXMA MG6100", 3, /*model, model_id*/ 1405 842, 17*72, /* max paper width and height */ 1406 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1407 8, 1408 &canon_PIXMA_MG5200_slotlist, /* same as MG5200 */ 1409 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML,0x64,control_cmd_MULTIPASS_MP150, /* features */ 1410 &canon_PIXMA_MG6100_modelist,/* there is some ESC (r 0x68 command for CD tray also, not sure why */ 1411 &canon_PIXMA_MG6100_paperlist, 1412 NULL, 1413 NULL, 1414 NULL, 1415 iP4500_channel_order 1416 }, 1417 { /* Canon PIXMA MG8100 */ 1418 "PIXMA MG8100", 3, /*model, model_id*/ 1419 842, 17*72, /* max paper width and height */ 1420 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1421 8, 1422 &canon_PIXMA_MG5200_slotlist, /* same as MG5200 */ 1423 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_r|CANON_CAP_I|CANON_CAP_P|CANON_CAP_XML,0x64,control_cmd_MULTIPASS_MP150, /* features */ 1424 &canon_PIXMA_MG8100_modelist,/* there is some ESC (r 0x68 command for CD tray also, not sure why */ 1425 &canon_PIXMA_MG6100_paperlist, /* same as MG6100 */ 1426 NULL, 1427 NULL, 1428 NULL, 1429 iP4500_channel_order 1430 }, 1431 /* MX series */ 1432 { /* Canon MULTIPASS MX300 --- MX310 is the same */ 1433 "PIXMA MX300", 3, /*model, model_id*/ 1434 842, 17*72, /* max paper width and height */ 1435 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1436 8, 1437 &canon_MULTIPASS_MP170_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */ 1438 CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I,0,control_cmd_MULTIPASS_MP150, /*features */ 1439 &canon_MULTIPASS_MX300_modelist, 1440 &canon_MULTIPASS_MX300_paperlist, 1441 NULL, 1442 NULL, 1443 NULL, 1444 iP4500_channel_order 1445 }, 1446 { /* Canon MULTIPASS MX330 */ 1447 "PIXMA MX330", 3, /*model, model_id*/ 1448 842, 17*72, /* max paper width and height */ 1449 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1450 8, 1451 &canon_MULTIPASS_MP170_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */ 1452 CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I,0,control_cmd_MULTIPASS_MP150, /*features */ 1453 &canon_MULTIPASS_MX330_modelist, 1454 &canon_MULTIPASS_MX330_paperlist, 1455 NULL, 1456 NULL, 1457 NULL, 1458 iP4500_channel_order 1459 }, 1460 { /* Canon MULTIPASS MX340 */ 1461 "PIXMA MX340", 3, /*model, model_id*/ 1462 842, 17*72, /* max paper width and height */ 1463 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1464 8, 1465 &canon_MULTIPASS_MP170_slotlist, /* these models only have an auto sheet feeder also uses CAP_T */ 1466 CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I,0,control_cmd_MULTIPASS_MP150, /*features */ 1467 &canon_MULTIPASS_MX340_modelist, 1468 &canon_MULTIPASS_MX340_paperlist, 1469 NULL, 1470 NULL, 1471 NULL, 1472 iP4500_channel_order 1473 }, 1474 { /* Canon MULTIPASS MX360 -- with XML */ 1475 "PIXMA MX360", 3, /*model, model_id*/ 1476 842, 17*72, /* max paper width and height */ 1477 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1478 8, 1479 &canon_MULTIPASS_MP250_slotlist, /* only rear tray also uses CAP_T */ 1480 CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_XML,0,control_cmd_MULTIPASS_MP150, /*features */ 1481 &canon_MULTIPASS_MX360_modelist, 1482 &canon_MULTIPASS_MX360_paperlist, 1483 NULL, 1484 NULL, 1485 NULL, 1486 iP4500_channel_order 1487 }, 1488 { /* Canon MULTIPASS MX420 --- with XML */ 1489 "PIXMA MX420", 3, /*model, model_id*/ 1490 842, 17*72, /* max paper width and height */ 1491 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1492 8, 1493 &canon_MULTIPASS_MP250_slotlist, /* only rear tray also uses CAP_T */ 1494 CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_T|CANON_CAP_I|CANON_CAP_XML,0,control_cmd_MULTIPASS_MP150, /*features */ 1495 &canon_MULTIPASS_MP480_modelist, 1496 &canon_MULTIPASS_MX420_paperlist, 1497 NULL, 1498 NULL, 1499 NULL, 1500 NULL 1501 }, 1502 { /* Canon MULTIPASS MX700 */ 1503 "PIXMA MX700", 3, /*model, model_id*/ 1504 842, 17*72, /* max paper width and height */ 1505 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1506 8, 1507 &canon_MULTIPASS_MP520_slotlist, /* front, rear, button, and front/plain-only */ 1508 CANON_CAP_STD0|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I,0,control_cmd_PIXMA_iP4000, /*features*/ 1509 &canon_MULTIPASS_MP520_modelist, 1510 &canon_MULTIPASS_MX300_paperlist, 1511 NULL, 1512 NULL, 1513 NULL, 1514 iP4500_channel_order 1515 }, 1516 { /* Canon MULTIPASS MX850 */ 1517 "PIXMA MX850", 3, /*model, model_id*/ 1518 842, 17*72, /* max paper width and height */ 1519 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1520 8, 1521 &canon_MULTIPASS_MX850_slotlist, 1522 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I,0x64,control_cmd_PIXMA_iP4000, /*features*/ 1523 &canon_PIXMA_iP4500_modelist, /* same inksets as iP4500 */ 1524 &canon_MULTIPASS_MX850_paperlist, 1525 NULL, 1526 NULL, 1527 NULL, 1528 iP4500_channel_order 1529 }, 1530 { /* Canon MULTIPASS MX860 */ 1531 "PIXMA MX860", 3, /*model, model_id*/ 1532 842, 17*72, /* max paper width and height */ 1533 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1534 8, 1535 &canon_PIXMA_MG5100_slotlist, 1536 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I,0x64,control_cmd_PIXMA_iP4000, /*features*/ 1537 &canon_MULTIPASS_MX860_modelist, 1538 &canon_MULTIPASS_MX330_paperlist, 1539 NULL, 1540 NULL, 1541 NULL, 1542 iP4500_channel_order 1543 }, 1544 { /* Canon MULTIPASS MX870 --- with XML */ 1545 "PIXMA MX870", 3, /*model, model_id*/ 1546 842, 17*72, /* max paper width and height */ 1547 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1548 8, 1549 &canon_PIXMA_MG5100_slotlist, 1550 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_XML,0x64,control_cmd_MULTIPASS_MP150, /*features*/ 1551 &canon_MULTIPASS_MX870_modelist, 1552 &canon_MULTIPASS_MX340_paperlist, 1553 NULL, 1554 NULL, 1555 NULL, 1556 iP4500_channel_order 1557 }, 1558 { /* Canon MULTIPASS MX880 --- with XML */ 1559 "PIXMA MX880", 3, /*model, model_id*/ 1560 842, 17*72, /* max paper width and height */ 1561 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1562 8, 1563 &canon_PIXMA_MG5100_slotlist, 1564 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I|CANON_CAP_XML,0,control_cmd_MULTIPASS_MP150, /*features*/ 1565 &canon_MULTIPASS_MP540_modelist, 1566 &canon_MULTIPASS_MX880_paperlist, 1567 NULL, 1568 NULL, 1569 NULL, 1570 iP4500_channel_order 1571 }, 1572 { /* Canon MULTIPASS MX7600 */ 1573 "PIXMA MX7600", 3, /*model, model_id*/ 1574 842, 17*72, /* max paper width and height */ 1575 10, 10, 15, 15, /*border_left, border_right, border_top, border_bottom */ 1576 8, 1577 &canon_MULTIPASS_MX7600_slotlist, 1578 CANON_CAP_STD0|CANON_CAP_DUPLEX|CANON_CAP_r|CANON_CAP_px|CANON_CAP_P|CANON_CAP_I,0x64,control_cmd_PIXMA_iP4000, /*features*/ 1579 &canon_MULTIPASS_MX7600_modelist, 1580 &canon_MULTIPASS_MX7600_paperlist, 1581 NULL, 1582 NULL, 1583 NULL, 1584 iP4500_channel_order 1585 }, 1586}; 1587 1588#endif 1589 1590