00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifdef HAVE_CONFIG_H
00025 #include <config.h>
00026 #endif
00027 #include <gimp-print/gimp-print.h>
00028 #include "gimp-print-internal.h"
00029 #include <gimp-print/gimp-print-intl-internal.h>
00030 #include "print-escp2.h"
00031
00032
00033 #define DECLARE_INK_CHANNEL(name) \
00034 static const ink_channel_t name##_channel = \
00035 { \
00036 #name, \
00037 name##_subchannels, \
00038 sizeof(name##_subchannels) / sizeof(physical_subchannel_t), \
00039 }
00040
00041 static const physical_subchannel_t standard_black_subchannels[] =
00042 {
00043 { 0, -1, 0, "BlackDensity", NULL }
00044 };
00045
00046 DECLARE_INK_CHANNEL(standard_black);
00047
00048 static const physical_subchannel_t x80_black_subchannels[] =
00049 {
00050 { 0, -1, 48, "BlackDensity", NULL }
00051 };
00052
00053 DECLARE_INK_CHANNEL(x80_black);
00054
00055 static const physical_subchannel_t c80_black_subchannels[] =
00056 {
00057 { 0, -1, 0, "BlackDensity", NULL }
00058 };
00059
00060 DECLARE_INK_CHANNEL(c80_black);
00061
00062 static const physical_subchannel_t c64_black_subchannels[] =
00063 {
00064 { 0, -1, 0, "BlackDensity", NULL }
00065 };
00066
00067 DECLARE_INK_CHANNEL(c64_black);
00068
00069 static const physical_subchannel_t standard_cyan_subchannels[] =
00070 {
00071 { 2, -1, 0, "CyanDensity", NULL }
00072 };
00073
00074 DECLARE_INK_CHANNEL(standard_cyan);
00075
00076 static const physical_subchannel_t f360_standard_cyan_subchannels[] =
00077 {
00078 { 2, -1, 1, "CyanDensity", NULL }
00079 };
00080
00081 DECLARE_INK_CHANNEL(f360_standard_cyan);
00082
00083 static const physical_subchannel_t x80_cyan_subchannels[] =
00084 {
00085 { 2, -1, 96, "CyanDensity", NULL }
00086 };
00087
00088 DECLARE_INK_CHANNEL(x80_cyan);
00089
00090 static const physical_subchannel_t c80_cyan_subchannels[] =
00091 {
00092 { 2, -1, 0, "CyanDensity", NULL }
00093 };
00094
00095 DECLARE_INK_CHANNEL(c80_cyan);
00096
00097 static const physical_subchannel_t c64_cyan_subchannels[] =
00098 {
00099 { 2, -1, 0, "CyanDensity", NULL }
00100 };
00101
00102 DECLARE_INK_CHANNEL(c64_cyan);
00103
00104 static const physical_subchannel_t standard_magenta_subchannels[] =
00105 {
00106 { 1, -1, 0, "MagentaDensity", NULL }
00107 };
00108
00109 DECLARE_INK_CHANNEL(standard_magenta);
00110
00111 static const physical_subchannel_t f360_standard_magenta_subchannels[] =
00112 {
00113 { 1, -1, 1, "MagentaDensity", NULL }
00114 };
00115
00116 DECLARE_INK_CHANNEL(f360_standard_magenta);
00117
00118 static const physical_subchannel_t x80_magenta_subchannels[] =
00119 {
00120 { 1, -1, 48, "MagentaDensity", NULL }
00121 };
00122
00123 DECLARE_INK_CHANNEL(x80_magenta);
00124
00125 static const physical_subchannel_t c80_magenta_subchannels[] =
00126 {
00127 { 1, -1, 120, "MagentaDensity", NULL }
00128 };
00129
00130 DECLARE_INK_CHANNEL(c80_magenta);
00131
00132 static const physical_subchannel_t c64_magenta_subchannels[] =
00133 {
00134 { 1, -1, 90, "MagentaDensity", NULL }
00135 };
00136
00137 DECLARE_INK_CHANNEL(c64_magenta);
00138
00139 static const physical_subchannel_t standard_yellow_subchannels[] =
00140 {
00141 { 4, -1, 0, "YellowDensity", NULL }
00142 };
00143
00144 DECLARE_INK_CHANNEL(standard_yellow);
00145
00146 static const physical_subchannel_t x80_yellow_subchannels[] =
00147 {
00148 { 4, -1, 0, "YellowDensity", NULL }
00149 };
00150
00151 DECLARE_INK_CHANNEL(x80_yellow);
00152
00153 static const physical_subchannel_t c80_yellow_subchannels[] =
00154 {
00155 { 4, -1, 240, "YellowDensity", NULL }
00156 };
00157
00158 DECLARE_INK_CHANNEL(c80_yellow);
00159
00160 static const physical_subchannel_t c64_yellow_subchannels[] =
00161 {
00162 { 4, -1, 180, "YellowDensity", NULL }
00163 };
00164
00165 DECLARE_INK_CHANNEL(c64_yellow);
00166
00167 static const physical_subchannel_t f360_standard_yellow_subchannels[] =
00168 {
00169 { 4, -1, 1, "YellowDensity", NULL }
00170 };
00171
00172 DECLARE_INK_CHANNEL(f360_standard_yellow);
00173
00174 static const physical_subchannel_t standard_red_subchannels[] =
00175 {
00176 { 7, -1, 0, "RedDensity", NULL }
00177 };
00178
00179 DECLARE_INK_CHANNEL(standard_red);
00180
00181 static const physical_subchannel_t standard_blue_subchannels[] =
00182 {
00183 { 8, -1, 0, "BlueDensity", NULL }
00184 };
00185
00186 DECLARE_INK_CHANNEL(standard_blue);
00187
00188 static const physical_subchannel_t standard_gloss_subchannels[] =
00189 {
00190 { 9, -1, 0, "GlossDensity", NULL }
00191 };
00192
00193 DECLARE_INK_CHANNEL(standard_gloss);
00194
00195 static const physical_subchannel_t standard_photo_black_subchannels[] =
00196 {
00197 { 0, 4, 0, "PhotoBlackDensity", NULL }
00198 };
00199
00200 DECLARE_INK_CHANNEL(standard_photo_black);
00201
00202 static const physical_subchannel_t photo_black_subchannels[] =
00203 {
00204 { 0, 0, 0, "BlackDensity", NULL }
00205 };
00206
00207 DECLARE_INK_CHANNEL(photo_black);
00208
00209 static const physical_subchannel_t f360_photo_black_subchannels[] =
00210 {
00211 { 0, 0, 0, "BlackDensity", NULL }
00212 };
00213
00214 DECLARE_INK_CHANNEL(f360_photo_black);
00215
00216 static const physical_subchannel_t extended_black_subchannels[] =
00217 {
00218 { 0, 1, 0, "BlackDensity", NULL }
00219 };
00220
00221 DECLARE_INK_CHANNEL(extended_black);
00222
00223 static const physical_subchannel_t photo_cyan_subchannels[] =
00224 {
00225 { 2, 0, 0, "CyanDensity", NULL },
00226 { 2, 1, 0, "CyanDensity", "LightCyanTransition" }
00227 };
00228
00229 DECLARE_INK_CHANNEL(photo_cyan);
00230
00231 static const physical_subchannel_t extended_cyan_subchannels[] =
00232 {
00233 { 2, 1, 0, "CyanDensity", NULL }
00234 };
00235
00236 DECLARE_INK_CHANNEL(extended_cyan);
00237
00238 static const physical_subchannel_t photo_magenta_subchannels[] =
00239 {
00240 { 1, 0, 0, "MagentaDensity", NULL },
00241 { 1, 1, 0, "MagentaDensity", "LightMagentaTransition" }
00242 };
00243
00244 DECLARE_INK_CHANNEL(photo_magenta);
00245
00246 static const physical_subchannel_t extended_magenta_subchannels[] =
00247 {
00248 { 1, 1, 0, "MagentaDensity", NULL }
00249 };
00250
00251 DECLARE_INK_CHANNEL(extended_magenta);
00252
00253 static const physical_subchannel_t photo_yellow_subchannels[] =
00254 {
00255 { 4, 0, 0, "YellowDensity", NULL }
00256 };
00257
00258 DECLARE_INK_CHANNEL(photo_yellow);
00259
00260 static const physical_subchannel_t f360_photo_yellow_subchannels[] =
00261 {
00262 { 4, 0, 1, "YellowDensity", NULL }
00263 };
00264
00265 DECLARE_INK_CHANNEL(f360_photo_yellow);
00266
00267 static const physical_subchannel_t j_extended_yellow_subchannels[] =
00268 {
00269 { 4, 2, 0, "YellowDensity", NULL }
00270 };
00271
00272 DECLARE_INK_CHANNEL(j_extended_yellow);
00273
00274
00275 static const physical_subchannel_t photo2_yellow_subchannels[] =
00276 {
00277 { 4, 2, 0, "YellowDensity", NULL },
00278 { 4, 0, 0, "YellowDensity", "DarkYellowTransition" }
00279 };
00280
00281 DECLARE_INK_CHANNEL(photo2_yellow);
00282
00283 static const physical_subchannel_t f360_photo2_yellow_subchannels[] =
00284 {
00285 { 4, 2, 0, "YellowDensity", NULL },
00286 { 4, 0, 1, "YellowDensity", "DarkYellowTransition" }
00287 };
00288
00289 DECLARE_INK_CHANNEL(f360_photo2_yellow);
00290
00291 static const physical_subchannel_t photo2_black_subchannels[] =
00292 {
00293 { 0, 0, 0, "BlackDensity", NULL },
00294 { 0, 1, 0, "BlackDensity", "GrayTransition" }
00295 };
00296
00297 DECLARE_INK_CHANNEL(photo2_black);
00298
00299 static const physical_subchannel_t f360_photo2_black_subchannels[] =
00300 {
00301 { 0, 0, 1, "BlackDensity", NULL },
00302 { 0, 1, 0, "BlackDensity", "GrayTransition" }
00303 };
00304
00305 DECLARE_INK_CHANNEL(f360_photo2_black);
00306
00307 static const physical_subchannel_t quadtone_subchannels[] =
00308 {
00309 { 0, -1, 0, "BlackDensity", NULL },
00310 { 2, -1, 0, "BlackDensity", "Gray3Transition" },
00311 { 1, -1, 0, "BlackDensity", "Gray2Transition" },
00312 { 4, -1, 0, "BlackDensity", "Gray1Transition" },
00313 };
00314
00315 DECLARE_INK_CHANNEL(quadtone);
00316
00317 static const physical_subchannel_t c80_quadtone_subchannels[] =
00318 {
00319 { 0, -1, 0, "BlackDensity", NULL },
00320 { 2, -1, 0, "BlackDensity", "Gray3Transition" },
00321 { 1, -1, 120, "BlackDensity", "Gray2Transition" },
00322 { 4, -1, 240, "BlackDensity", "Gray1Transition" },
00323 };
00324
00325 DECLARE_INK_CHANNEL(c80_quadtone);
00326
00327 static const physical_subchannel_t c64_quadtone_subchannels[] =
00328 {
00329 { 0, -1, 0, "BlackDensity", NULL },
00330 { 2, -1, 0, "BlackDensity", "Gray3Transition" },
00331 { 1, -1, 90, "BlackDensity", "Gray2Transition" },
00332 { 4, -1, 180, "BlackDensity", "Gray1Transition" },
00333 };
00334
00335 DECLARE_INK_CHANNEL(c64_quadtone);
00336
00337 static const physical_subchannel_t f360_photo_cyan_subchannels[] =
00338 {
00339 { 2, 0, 1, "CyanDensity", NULL },
00340 { 2, 1, 0, "CyanDensity", "LightCyanTransition" }
00341 };
00342
00343 DECLARE_INK_CHANNEL(f360_photo_cyan);
00344
00345 static const physical_subchannel_t f360_photo_magenta_subchannels[] =
00346 {
00347 { 1, 0, 1, "MagentaDensity", NULL },
00348 { 1, 1, 0, "MagentaDensity", "LightMagentaTransition" }
00349 };
00350
00351 DECLARE_INK_CHANNEL(f360_photo_magenta);
00352
00353
00354 #define DECLARE_CHANNEL_SET(name) \
00355 static const channel_set_t name##_channel_set = \
00356 { \
00357 #name " channel set", \
00358 name##_channels, \
00359 sizeof(name##_channels) / sizeof(ink_channel_t *), \
00360 }
00361
00362
00363
00364
00365
00366
00367
00368
00369
00370
00371 static const ink_channel_t *const standard_black_channels[] =
00372 {
00373 &standard_black_channel
00374 };
00375
00376 DECLARE_CHANNEL_SET(standard_black);
00377
00378 const escp2_inkname_t stpi_escp2_default_black_inkset =
00379 {
00380 "Gray", N_("Grayscale"), INKSET_CMYK,
00381 &standard_black_channel_set
00382 };
00383
00384 static const ink_channel_t *const standard_photo_black_channels[] =
00385 {
00386 &standard_photo_black_channel
00387 };
00388
00389 DECLARE_CHANNEL_SET(standard_photo_black);
00390
00391 const escp2_inkname_t stpi_escp2_default_photo_black_inkset =
00392 {
00393 "Gray", N_("Grayscale"), INKSET_CMYK,
00394 &standard_photo_black_channel_set
00395 };
00396
00397 static const ink_channel_t *const standard_gloss_black_channels[] =
00398 {
00399 &standard_black_channel, &standard_gloss_channel
00400 };
00401
00402 DECLARE_CHANNEL_SET(standard_gloss_black);
00403
00404 const escp2_inkname_t stpi_escp2_default_gloss_black_inkset =
00405 {
00406 "GrayG", N_("Grayscale Enhanced Gloss"), INKSET_CMYK,
00407 &standard_gloss_black_channel_set
00408 };
00409
00410 static const ink_channel_t *const standard_photo_gloss_black_channels[] =
00411 {
00412 &standard_photo_black_channel, &standard_gloss_channel
00413 };
00414
00415 DECLARE_CHANNEL_SET(standard_photo_gloss_black);
00416
00417 const escp2_inkname_t stpi_escp2_default_photo_gloss_black_inkset =
00418 {
00419 "GrayG", N_("Grayscale Enhanced Gloss"), INKSET_CMYK,
00420 &standard_photo_gloss_black_channel_set
00421 };
00422
00423
00424
00425
00426
00427
00428
00429
00430
00431
00432 static const ink_channel_t *const photo2_black_channels[] =
00433 {
00434 &photo2_black_channel
00435 };
00436
00437 DECLARE_CHANNEL_SET(photo2_black);
00438
00439 static const escp2_inkname_t two_color_grayscale_inkset =
00440 {
00441 "Gray2", N_("Two Level Grayscale"), INKSET_CcMmYKk,
00442 &photo2_black_channel_set
00443 };
00444
00445 static const ink_channel_t *const f360_photo2_black_channels[] =
00446 {
00447 &f360_photo2_black_channel
00448 };
00449
00450 DECLARE_CHANNEL_SET(f360_photo2_black);
00451
00452 static const escp2_inkname_t f360_two_color_grayscale_inkset =
00453 {
00454 "Gray2", N_("Two Level Grayscale"), INKSET_CcMmYKk,
00455 &f360_photo2_black_channel_set
00456 };
00457
00458
00459
00460
00461
00462
00463
00464
00465
00466
00467 static const ink_channel_t *const quadtone_channels[] =
00468 {
00469 &quadtone_channel
00470 };
00471
00472 DECLARE_CHANNEL_SET(quadtone);
00473
00474 static const escp2_inkname_t generic_quadtone_inkset =
00475 {
00476 "Quadtone", N_("Quadtone"), INKSET_QUADTONE,
00477 &quadtone_channel_set
00478 };
00479
00480 static const ink_channel_t *const c80_quadtone_channels[] =
00481 {
00482 &c80_quadtone_channel
00483 };
00484
00485 DECLARE_CHANNEL_SET(c80_quadtone);
00486
00487 static const escp2_inkname_t c80_generic_quadtone_inkset =
00488 {
00489 "Quadtone", N_("Quadtone"), INKSET_QUADTONE,
00490 &c80_quadtone_channel_set
00491 };
00492
00493 static const ink_channel_t *const c64_quadtone_channels[] =
00494 {
00495 &c64_quadtone_channel
00496 };
00497
00498 DECLARE_CHANNEL_SET(c64_quadtone);
00499
00500 static const escp2_inkname_t c64_generic_quadtone_inkset =
00501 {
00502 "Quadtone", N_("Quadtone"), INKSET_QUADTONE,
00503 &c64_quadtone_channel_set
00504 };
00505
00506
00507
00508
00509
00510
00511
00512
00513
00514
00515
00516 static const ink_channel_t *const standard_cmy_channels[] =
00517 {
00518 NULL, &standard_cyan_channel,
00519 &standard_magenta_channel, &standard_yellow_channel
00520 };
00521
00522 DECLARE_CHANNEL_SET(standard_cmy);
00523
00524 static const escp2_inkname_t three_color_composite_inkset =
00525 {
00526 "RGB", N_("Three Color Composite"), INKSET_CMYK,
00527 &standard_cmy_channel_set
00528 };
00529
00530 static const ink_channel_t *const x80_cmy_channels[] =
00531 {
00532 NULL, &x80_cyan_channel,
00533 &x80_magenta_channel, &x80_yellow_channel
00534 };
00535
00536 DECLARE_CHANNEL_SET(x80_cmy);
00537
00538 static const escp2_inkname_t x80_three_color_composite_inkset =
00539 {
00540 "RGB", N_("Three Color Composite"), INKSET_CMYK,
00541 &x80_cmy_channel_set
00542 };
00543
00544 static const ink_channel_t *const c80_cmy_channels[] =
00545 {
00546 NULL, &c80_cyan_channel,
00547 &c80_magenta_channel, &c80_yellow_channel
00548 };
00549
00550 DECLARE_CHANNEL_SET(c80_cmy);
00551
00552 static const escp2_inkname_t c80_three_color_composite_inkset =
00553 {
00554 "RGB", N_("Three Color Composite"), INKSET_CMYK,
00555 &c80_cmy_channel_set
00556 };
00557
00558 static const ink_channel_t *const c64_cmy_channels[] =
00559 {
00560 NULL, &c64_cyan_channel,
00561 &c64_magenta_channel, &c64_yellow_channel
00562 };
00563
00564 DECLARE_CHANNEL_SET(c64_cmy);
00565
00566 static const escp2_inkname_t c64_three_color_composite_inkset =
00567 {
00568 "RGB", N_("Three Color Composite"), INKSET_CMYK,
00569 &c64_cmy_channel_set
00570 };
00571
00572 static const ink_channel_t *const standard_gloss_cmy_channels[] =
00573 {
00574 NULL, &standard_cyan_channel,
00575 &standard_magenta_channel, &standard_yellow_channel,
00576 &standard_gloss_channel
00577 };
00578
00579 DECLARE_CHANNEL_SET(standard_gloss_cmy);
00580
00581 static const escp2_inkname_t three_color_composite_gloss_inkset =
00582 {
00583 "RGBG", N_("Three Color Composite Enhanced Gloss"), INKSET_CMYK,
00584 &standard_gloss_cmy_channel_set
00585 };
00586
00587
00588
00589
00590
00591
00592
00593
00594
00595
00596 static const ink_channel_t *const standard_cmyk_channels[] =
00597 {
00598 &standard_black_channel, &standard_cyan_channel,
00599 &standard_magenta_channel, &standard_yellow_channel
00600 };
00601
00602 DECLARE_CHANNEL_SET(standard_cmyk);
00603
00604 static const escp2_inkname_t four_color_standard_inkset =
00605 {
00606 "CMYK", N_("Four Color Standard"), INKSET_CMYK,
00607 &standard_cmyk_channel_set
00608 };
00609
00610 static const ink_channel_t *const photo_cmyk_channels[] =
00611 {
00612 &standard_photo_black_channel, &standard_cyan_channel,
00613 &standard_magenta_channel, &standard_yellow_channel
00614 };
00615
00616 DECLARE_CHANNEL_SET(photo_cmyk);
00617
00618 static const escp2_inkname_t four_color_photo_inkset =
00619 {
00620 "CMYK", N_("Four Color Standard"), INKSET_CMYK,
00621 &photo_cmyk_channel_set
00622 };
00623
00624 static const ink_channel_t *const gloss_cmyk_channels[] =
00625 {
00626 &standard_black_channel, &standard_cyan_channel,
00627 &standard_magenta_channel, &standard_yellow_channel,
00628 &standard_gloss_channel
00629 };
00630
00631 DECLARE_CHANNEL_SET(gloss_cmyk);
00632
00633 static const escp2_inkname_t four_color_gloss_inkset =
00634 {
00635 "CMYKG", N_("Four Color Standard Enhanced Gloss"), INKSET_CMYK,
00636 &gloss_cmyk_channel_set
00637 };
00638
00639 static const ink_channel_t *const photo_gloss_cmyk_channels[] =
00640 {
00641 &standard_photo_black_channel, &standard_cyan_channel,
00642 &standard_magenta_channel, &standard_yellow_channel,
00643 &standard_gloss_channel
00644 };
00645
00646 DECLARE_CHANNEL_SET(photo_gloss_cmyk);
00647
00648 static const escp2_inkname_t four_color_photo_gloss_inkset =
00649 {
00650 "CMYKG", N_("Four Color Standard Enhanced Gloss"), INKSET_CMYK,
00651 &photo_gloss_cmyk_channel_set
00652 };
00653
00654 static const ink_channel_t *const x80_cmyk_channels[] =
00655 {
00656 &x80_black_channel, &x80_cyan_channel,
00657 &x80_magenta_channel, &x80_yellow_channel
00658 };
00659
00660 DECLARE_CHANNEL_SET(x80_cmyk);
00661
00662 static const escp2_inkname_t x80_four_color_standard_inkset =
00663 {
00664 "CMYK", N_("Four Color Standard"), INKSET_CMYK,
00665 &x80_cmyk_channel_set
00666 };
00667
00668 static const ink_channel_t *const c80_cmyk_channels[] =
00669 {
00670 &c80_black_channel, &c80_cyan_channel,
00671 &c80_magenta_channel, &c80_yellow_channel
00672 };
00673
00674 DECLARE_CHANNEL_SET(c80_cmyk);
00675
00676 static const escp2_inkname_t c80_four_color_standard_inkset =
00677 {
00678 "CMYK", N_("Four Color Standard"), INKSET_CMYK,
00679 &c80_cmyk_channel_set
00680 };
00681
00682 static const ink_channel_t *const c64_cmyk_channels[] =
00683 {
00684 &c64_black_channel, &c64_cyan_channel,
00685 &c64_magenta_channel, &c64_yellow_channel
00686 };
00687
00688 DECLARE_CHANNEL_SET(c64_cmyk);
00689
00690 static const escp2_inkname_t c64_four_color_standard_inkset =
00691 {
00692 "CMYK", N_("Four Color Standard"), INKSET_CMYK,
00693 &c64_cmyk_channel_set
00694 };
00695
00696 static const ink_channel_t *const f360_cmyk_channels[] =
00697 {
00698 &standard_black_channel, &f360_standard_cyan_channel,
00699 &f360_standard_magenta_channel, &standard_yellow_channel
00700 };
00701
00702 DECLARE_CHANNEL_SET(f360_cmyk);
00703
00704 static const escp2_inkname_t f360_four_color_standard_inkset =
00705 {
00706 "CMYK", N_("Four Color Standard"), INKSET_CMYK,
00707 &f360_cmyk_channel_set
00708 };
00709
00710
00711
00712
00713
00714
00715
00716
00717
00718
00719 static const ink_channel_t *const photo_composite_channels[] =
00720 {
00721 NULL, &photo_cyan_channel,
00722 &photo_magenta_channel, &photo_yellow_channel
00723 };
00724
00725 DECLARE_CHANNEL_SET(photo_composite);
00726
00727 static const escp2_inkname_t five_color_photo_composite_inkset =
00728 {
00729 "PhotoCMY", N_("Five Color Photo Composite"), INKSET_CcMmYK,
00730 &photo_composite_channel_set
00731 };
00732
00733 static const ink_channel_t *const f360_photo_composite_channels[] =
00734 {
00735 NULL, &f360_photo_cyan_channel,
00736 &f360_photo_magenta_channel, &f360_photo_yellow_channel
00737 };
00738
00739 DECLARE_CHANNEL_SET(f360_photo_composite);
00740
00741 static const escp2_inkname_t f360_five_color_photo_composite_inkset =
00742 {
00743 "PhotoCMY", N_("Five Color Photo Composite"), INKSET_CcMmYK,
00744 &f360_photo_composite_channel_set
00745 };
00746
00747
00748
00749
00750
00751
00752
00753
00754
00755
00756 static const ink_channel_t *const photo_channels[] =
00757 {
00758 &photo_black_channel, &photo_cyan_channel,
00759 &photo_magenta_channel, &photo_yellow_channel
00760 };
00761
00762 DECLARE_CHANNEL_SET(photo);
00763
00764 static const escp2_inkname_t six_color_photo_inkset =
00765 {
00766 "PhotoCMYK", N_("Six Color Photo"), INKSET_CcMmYK,
00767 &photo_channel_set
00768 };
00769
00770 static const ink_channel_t *const f360_photo_channels[] =
00771 {
00772 &f360_photo_black_channel, &f360_photo_cyan_channel,
00773 &f360_photo_magenta_channel, &f360_photo_yellow_channel
00774 };
00775
00776 DECLARE_CHANNEL_SET(f360_photo);
00777
00778 static const escp2_inkname_t f360_six_color_photo_inkset =
00779 {
00780 "PhotoCMYK", N_("Six Color Photo"), INKSET_CcMmYK,
00781 &f360_photo_channel_set
00782 };
00783
00784
00785
00786
00787
00788
00789
00790
00791
00792
00793 static const ink_channel_t *const photoj_composite_channels[] =
00794 {
00795 NULL, &photo_cyan_channel,
00796 &photo_magenta_channel, &photo2_yellow_channel
00797 };
00798
00799 DECLARE_CHANNEL_SET(photoj_composite);
00800
00801 static const escp2_inkname_t j_six_color_enhanced_composite_inkset =
00802 {
00803 "PhotoEnhanceJ", N_("Six Color Enhanced Composite"), INKSET_CcMmYyK,
00804 &photoj_composite_channel_set
00805 };
00806
00807 static const ink_channel_t *const f360_photoj_composite_channels[] =
00808 {
00809 NULL, &f360_photo_cyan_channel,
00810 &f360_photo_magenta_channel, &f360_photo2_yellow_channel
00811 };
00812
00813 DECLARE_CHANNEL_SET(f360_photoj_composite);
00814
00815 static const escp2_inkname_t f360_j_six_color_enhanced_composite_inkset =
00816 {
00817 "PhotoEnhanceJ", N_("Six Color Enhanced Composite"), INKSET_CcMmYyK,
00818 &f360_photoj_composite_channel_set
00819 };
00820
00821
00822
00823
00824
00825
00826
00827
00828
00829
00830 static const ink_channel_t *const photo2_channels[] =
00831 {
00832 &photo2_black_channel, &photo_cyan_channel,
00833 &photo_magenta_channel, &photo_yellow_channel
00834 };
00835
00836 DECLARE_CHANNEL_SET(photo2);
00837
00838 static const escp2_inkname_t seven_color_enhanced_inkset =
00839 {
00840 "PhotoCMYK7", N_("Seven Color Photo"), INKSET_CcMmYKk,
00841 &photo2_channel_set
00842 };
00843
00844 static const ink_channel_t *const f360_photo2_channels[] =
00845 {
00846 &f360_photo2_black_channel, &f360_photo_cyan_channel,
00847 &f360_photo_magenta_channel, &f360_photo_yellow_channel
00848 };
00849
00850 DECLARE_CHANNEL_SET(f360_photo2);
00851
00852 static const escp2_inkname_t f360_seven_color_enhanced_inkset =
00853 {
00854 "PhotoCMYK7", N_("Seven Color Photo"), INKSET_CcMmYKk,
00855 &f360_photo2_channel_set
00856 };
00857
00858
00859
00860
00861
00862
00863
00864
00865
00866 static const ink_channel_t *const photoj_channels[] =
00867 {
00868 &photo_black_channel, &photo_cyan_channel,
00869 &photo_magenta_channel, &photo2_yellow_channel
00870 };
00871
00872 DECLARE_CHANNEL_SET(photoj);
00873
00874 static const escp2_inkname_t j_seven_color_enhanced_inkset =
00875 {
00876 "Photo7J", N_("Seven Color Enhanced"), INKSET_CcMmYyK,
00877 &photoj_channel_set
00878 };
00879
00880 static const ink_channel_t *const f360_photoj_channels[] =
00881 {
00882 &f360_photo_black_channel, &f360_photo_cyan_channel,
00883 &f360_photo_magenta_channel, &f360_photo2_yellow_channel
00884 };
00885
00886 DECLARE_CHANNEL_SET(f360_photoj);
00887
00888 static const escp2_inkname_t f360_j_seven_color_enhanced_inkset =
00889 {
00890 "Photo7J", N_("Seven Color Photo"), INKSET_CcMmYKk,
00891 &f360_photoj_channel_set
00892 };
00893
00894
00895
00896
00897
00898
00899
00900
00901
00902
00903 static const ink_channel_t *const standard_cmykrb_channels[] =
00904 {
00905 &standard_black_channel, &standard_cyan_channel,
00906 &standard_magenta_channel, &standard_yellow_channel,
00907 &standard_red_channel, &standard_blue_channel
00908 };
00909
00910 DECLARE_CHANNEL_SET(standard_cmykrb);
00911
00912 static const escp2_inkname_t standard_cmykrb_inkset =
00913 {
00914 "CMYKRB", N_("Six Color Photo"), INKSET_CMYKRB,
00915 &standard_cmykrb_channel_set
00916 };
00917
00918 static const ink_channel_t *const photo_cmykrb_channels[] =
00919 {
00920 &standard_photo_black_channel, &standard_cyan_channel,
00921 &standard_magenta_channel, &standard_yellow_channel,
00922 &standard_red_channel, &standard_blue_channel
00923 };
00924
00925 DECLARE_CHANNEL_SET(photo_cmykrb);
00926
00927 static const escp2_inkname_t photo_cmykrb_inkset =
00928 {
00929 "CMYKRB", N_("Six Color Photo"), INKSET_CMYKRB,
00930 &photo_cmykrb_channel_set
00931 };
00932
00933 static const ink_channel_t *const gloss_cmykrb_channels[] =
00934 {
00935 &standard_black_channel, &standard_cyan_channel,
00936 &standard_magenta_channel, &standard_yellow_channel,
00937 &standard_red_channel, &standard_blue_channel,
00938 &standard_gloss_channel
00939 };
00940
00941 DECLARE_CHANNEL_SET(gloss_cmykrb);
00942
00943 static const escp2_inkname_t gloss_cmykrb_inkset =
00944 {
00945 "CMYKRBG", N_("Six Color Photo Enhanced Gloss"), INKSET_CMYKRB,
00946 &gloss_cmykrb_channel_set
00947 };
00948
00949 static const ink_channel_t *const photo_gloss_cmykrb_channels[] =
00950 {
00951 &standard_photo_black_channel, &standard_cyan_channel,
00952 &standard_magenta_channel, &standard_yellow_channel,
00953 &standard_red_channel, &standard_blue_channel,
00954 &standard_gloss_channel
00955 };
00956
00957 DECLARE_CHANNEL_SET(photo_gloss_cmykrb);
00958
00959 static const escp2_inkname_t photo_gloss_cmykrb_inkset =
00960 {
00961 "CMYKRBG", N_("Six Color Photo Enhanced Gloss"), INKSET_CMYKRB,
00962 &photo_gloss_cmykrb_channel_set
00963 };
00964
00965
00966
00967
00968
00969
00970
00971
00972
00973
00974 static const ink_channel_t *const one_color_extended_channels[] =
00975 {
00976 &standard_black_channel
00977 };
00978 DECLARE_CHANNEL_SET(one_color_extended);
00979
00980 static const escp2_inkname_t one_color_extended_inkset =
00981 {
00982 "PhysicalBlack", N_("One Color Raw"), INKSET_EXTENDED,
00983 &one_color_extended_channel_set
00984 };
00985
00986 static const escp2_inkname_t one_color_photo_extended_inkset =
00987 {
00988 "PhysicalBlack", N_("One Color Raw"), INKSET_EXTENDED,
00989 &standard_photo_black_channel_set
00990 };
00991
00992 static const escp2_inkname_t one_color_extended_gloss_inkset =
00993 {
00994 "PhysicalBlackGloss", N_("One Color Raw Enhanced Gloss"), INKSET_EXTENDED,
00995 &standard_gloss_black_channel_set
00996 };
00997
00998 static const escp2_inkname_t one_color_photo_extended_gloss_inkset =
00999 {
01000 "PhysicalBlackGloss", N_("One Color Raw Enhanced Gloss"), INKSET_EXTENDED,
01001 &standard_photo_gloss_black_channel_set
01002 };
01003
01004
01005 static const ink_channel_t *const two_color_extended_channels[] =
01006 {
01007 &photo_black_channel, &extended_black_channel
01008 };
01009 DECLARE_CHANNEL_SET(two_color_extended);
01010
01011 static const escp2_inkname_t two_color_extended_inkset =
01012 {
01013 "PhysicalBlack2", N_("Two Color Raw"), INKSET_EXTENDED,
01014 &two_color_extended_channel_set
01015 };
01016
01017 static const ink_channel_t *const f360_two_color_extended_channels[] =
01018 {
01019 &f360_photo_black_channel, &extended_black_channel
01020 };
01021 DECLARE_CHANNEL_SET(f360_two_color_extended);
01022
01023 static const escp2_inkname_t f360_two_color_extended_inkset =
01024 {
01025 "PhysicalBlack2", N_("Two Color Raw"), INKSET_EXTENDED,
01026 &f360_two_color_extended_channel_set
01027 };
01028
01029
01030 static const ink_channel_t *const standard_three_color_extended_channels[] =
01031 {
01032 &standard_cyan_channel, &standard_magenta_channel, &standard_yellow_channel
01033 };
01034
01035 DECLARE_CHANNEL_SET(standard_three_color_extended);
01036
01037 static const escp2_inkname_t three_color_extended_inkset =
01038 {
01039 "PhysicalCMY", N_("Three Color Raw"), INKSET_EXTENDED,
01040 &standard_three_color_extended_channel_set
01041 };
01042
01043 static const ink_channel_t *const x80_three_color_extended_channels[] =
01044 {
01045 &x80_cyan_channel, &x80_magenta_channel, &x80_yellow_channel
01046 };
01047
01048 DECLARE_CHANNEL_SET(x80_three_color_extended);
01049
01050 static const escp2_inkname_t x80_three_color_extended_inkset =
01051 {
01052 "PhysicalCMY", N_("Three Color Raw"), INKSET_EXTENDED,
01053 &x80_three_color_extended_channel_set
01054 };
01055
01056 static const ink_channel_t *const c80_three_color_extended_channels[] =
01057 {
01058 &c80_cyan_channel, &c80_magenta_channel, &c80_yellow_channel
01059 };
01060
01061 DECLARE_CHANNEL_SET(c80_three_color_extended);
01062
01063 static const escp2_inkname_t c80_three_color_extended_inkset =
01064 {
01065 "PhysicalCMY", N_("Three Color Raw"), INKSET_EXTENDED,
01066 &c80_three_color_extended_channel_set
01067 };
01068
01069 static const ink_channel_t *const c64_three_color_extended_channels[] =
01070 {
01071 &c64_cyan_channel, &c64_magenta_channel, &c64_yellow_channel
01072 };
01073
01074 DECLARE_CHANNEL_SET(c64_three_color_extended);
01075
01076 static const escp2_inkname_t c64_three_color_extended_inkset =
01077 {
01078 "PhysicalCMY", N_("Three Color Raw"), INKSET_EXTENDED,
01079 &c64_three_color_extended_channel_set
01080 };
01081
01082
01083 static const escp2_inkname_t four_color_extended_inkset =
01084 {
01085 "PhysicalCMYK", N_("Four Color Raw"), INKSET_EXTENDED,
01086 &standard_cmyk_channel_set
01087 };
01088
01089 static const escp2_inkname_t four_color_photo_extended_inkset =
01090 {
01091 "PhysicalCMYK", N_("Four Color Raw"), INKSET_EXTENDED,
01092 &photo_cmyk_channel_set
01093 };
01094
01095 static const escp2_inkname_t x80_four_color_extended_inkset =
01096 {
01097 "PhysicalCMYK", N_("Four Color Raw"), INKSET_EXTENDED,
01098 &x80_cmyk_channel_set
01099 };
01100
01101 static const escp2_inkname_t c80_four_color_extended_inkset =
01102 {
01103 "PhysicalCMYK", N_("Four Color Raw"), INKSET_EXTENDED,
01104 &c80_cmyk_channel_set
01105 };
01106
01107 static const escp2_inkname_t c64_four_color_extended_inkset =
01108 {
01109 "PhysicalCMYK", N_("Four Color Raw"), INKSET_EXTENDED,
01110 &c64_cmyk_channel_set
01111 };
01112
01113 static const escp2_inkname_t f360_four_color_extended_inkset =
01114 {
01115 "PhysicalCMYK", N_("Four Color Raw"), INKSET_EXTENDED,
01116 &f360_cmyk_channel_set
01117 };
01118
01119 static const escp2_inkname_t four_color_gloss_extended_inkset =
01120 {
01121 "PhysicalCMYKGloss", N_("Four Color Raw Gloss"), INKSET_EXTENDED,
01122 &gloss_cmyk_channel_set
01123 };
01124
01125 static const escp2_inkname_t four_color_photo_gloss_extended_inkset =
01126 {
01127 "PhysicalCMYKGloss", N_("Four Color Raw Gloss"), INKSET_EXTENDED,
01128 &photo_gloss_cmyk_channel_set
01129 };
01130
01131
01132 static const ink_channel_t *const five_color_extended_channels[] =
01133 {
01134 &standard_cyan_channel, &extended_cyan_channel,
01135 &standard_magenta_channel, &extended_magenta_channel,
01136 &photo_yellow_channel
01137 };
01138 DECLARE_CHANNEL_SET(five_color_extended);
01139
01140 static const escp2_inkname_t five_color_extended_inkset =
01141 {
01142 "PhysicalCcMmY", N_("Five Color Raw"), INKSET_EXTENDED,
01143 &five_color_extended_channel_set
01144 };
01145
01146 static const ink_channel_t *const f360_five_color_extended_channels[] =
01147 {
01148 &f360_standard_cyan_channel, &extended_cyan_channel,
01149 &f360_standard_magenta_channel, &extended_magenta_channel,
01150 &f360_photo_yellow_channel
01151 };
01152 DECLARE_CHANNEL_SET(f360_five_color_extended);
01153
01154 static const escp2_inkname_t f360_five_color_extended_inkset =
01155 {
01156 "PhysicalCcMmY", N_("Five Color Raw"), INKSET_EXTENDED,
01157 &f360_five_color_extended_channel_set
01158 };
01159
01160
01161 static const ink_channel_t *const six_color_extended_channels[] =
01162 {
01163 &photo_black_channel,
01164 &standard_cyan_channel, &extended_cyan_channel,
01165 &standard_magenta_channel, &extended_magenta_channel,
01166 &photo_yellow_channel
01167 };
01168 DECLARE_CHANNEL_SET(six_color_extended);
01169
01170 static const escp2_inkname_t six_color_extended_inkset =
01171 {
01172 "PhysicalCcMmYK", N_("Six Color Raw"), INKSET_EXTENDED,
01173 &six_color_extended_channel_set
01174 };
01175
01176 static const escp2_inkname_t six_color_cmykrb_extended_inkset =
01177 {
01178 "PhysicalCMYKRB", N_("Six Color Raw"), INKSET_EXTENDED,
01179 &standard_cmykrb_channel_set
01180 };
01181
01182 static const escp2_inkname_t six_color_cmykrb_photo_extended_inkset =
01183 {
01184 "PhysicalCMYKRB", N_("Six Color Raw"), INKSET_EXTENDED,
01185 &photo_cmykrb_channel_set
01186 };
01187
01188 static const ink_channel_t *const f360_six_color_extended_channels[] =
01189 {
01190 &f360_photo_black_channel,
01191 &f360_standard_cyan_channel, &extended_cyan_channel,
01192 &f360_standard_magenta_channel, &extended_magenta_channel,
01193 &f360_photo_yellow_channel
01194 };
01195 DECLARE_CHANNEL_SET(f360_six_color_extended);
01196
01197 static const escp2_inkname_t f360_six_color_extended_inkset =
01198 {
01199 "PhysicalCcMmYK", N_("Six Color Raw"), INKSET_EXTENDED,
01200 &f360_six_color_extended_channel_set
01201 };
01202
01203
01204 static const escp2_inkname_t six_color_cmykrb_gloss_extended_inkset =
01205 {
01206 "PhysicalCMYKRB", N_("Six Color Enhanced Gloss Raw"), INKSET_EXTENDED,
01207 &gloss_cmykrb_channel_set
01208 };
01209
01210 static const escp2_inkname_t six_color_cmykrb_photo_gloss_extended_inkset =
01211 {
01212 "PhysicalCMYKRB", N_("Six Color Enhanced Gloss Raw"), INKSET_EXTENDED,
01213 &photo_gloss_cmykrb_channel_set
01214 };
01215
01216 static const ink_channel_t *const j_seven_color_extended_channels[] =
01217 {
01218 &photo_black_channel,
01219 &standard_cyan_channel, &extended_cyan_channel,
01220 &standard_magenta_channel, &extended_magenta_channel,
01221 &photo_yellow_channel, &j_extended_yellow_channel
01222 };
01223 DECLARE_CHANNEL_SET(j_seven_color_extended);
01224
01225 static const escp2_inkname_t j_seven_color_extended_inkset =
01226 {
01227 "PhysicalCcMmYyK", N_("Seven Color Raw"), INKSET_EXTENDED,
01228 &j_seven_color_extended_channel_set
01229 };
01230
01231 static const ink_channel_t *const seven_color_extended_channels[] =
01232 {
01233 &photo_black_channel, &extended_black_channel,
01234 &standard_cyan_channel, &extended_cyan_channel,
01235 &standard_magenta_channel, &extended_magenta_channel,
01236 &photo_yellow_channel
01237 };
01238 DECLARE_CHANNEL_SET(seven_color_extended);
01239
01240 static const escp2_inkname_t seven_color_extended_inkset =
01241 {
01242 "PhysicalCcMmYKk", N_("Seven Color Raw"), INKSET_EXTENDED,
01243 &seven_color_extended_channel_set
01244 };
01245
01246 static const ink_channel_t *const f360_seven_color_extended_channels[] =
01247 {
01248 &f360_photo_black_channel, &extended_black_channel,
01249 &f360_standard_cyan_channel, &extended_cyan_channel,
01250 &f360_standard_magenta_channel, &extended_magenta_channel,
01251 &f360_photo_yellow_channel
01252 };
01253 DECLARE_CHANNEL_SET(f360_seven_color_extended);
01254
01255 static const escp2_inkname_t f360_seven_color_extended_inkset =
01256 {
01257 "PhysicalCcMmYKk", N_("Seven Color Raw"), INKSET_EXTENDED,
01258 &f360_seven_color_extended_channel_set
01259 };
01260
01261
01262 static const ink_channel_t *const gloss_cmykprb_extended_channels[] =
01263 {
01264 &standard_black_channel, &standard_photo_black_channel,
01265 &standard_cyan_channel, &standard_magenta_channel,
01266 &standard_yellow_channel, &standard_red_channel,
01267 &standard_blue_channel, &standard_gloss_channel
01268 };
01269
01270 DECLARE_CHANNEL_SET(gloss_cmykprb_extended);
01271
01272 static const escp2_inkname_t seven_color_cmykprb_gloss_extended_inkset =
01273 {
01274 "PhysicalCMYKPRB", N_("Seven Color Enhanced Gloss Raw"), INKSET_EXTENDED,
01275 &gloss_cmykprb_extended_channel_set
01276 };
01277
01278
01279
01280 static const shade_set_t standard_shades =
01281 {
01282 { 1, { 1.0 }},
01283 { 1, { 1.0 }},
01284 { 1, { 1.0 }},
01285 { 1, { 1.0 }},
01286 { 1, { 1.0 }},
01287 { 1, { 1.0 }},
01288 { 1, { 1.0 }},
01289 { 1, { 1.0 }},
01290 };
01291
01292 static const shade_set_t photo_gen1_shades =
01293 {
01294 { 1, { 1.0 }},
01295 { 2, { 1.0, 0.305 }},
01296 { 2, { 1.0, 0.315 }},
01297 { 1, { 1.0 }},
01298 { 1, { 1.0 }},
01299 { 1, { 1.0 }},
01300 { 1, { 1.0 }},
01301 { 1, { 1.0 }},
01302 };
01303
01304 static const shade_set_t photo_gen2_shades =
01305 {
01306 { 1, { 1.0 }},
01307 { 2, { 1.0, 0.29 }},
01308 { 2, { 1.0, 0.29 }},
01309 { 1, { 1.0 }},
01310 { 1, { 1.0 }},
01311 { 1, { 1.0 }},
01312 { 1, { 1.0 }},
01313 { 1, { 1.0 }},
01314 };
01315
01316 static const shade_set_t photo_gen3_shades =
01317 {
01318 { 1, { 1.0 }},
01319 { 2, { 1.0, 0.35 }},
01320 { 2, { 1.0, 0.35 }},
01321 { 1, { 1.0 }},
01322 { 1, { 1.0 }},
01323 { 1, { 1.0 }},
01324 { 1, { 1.0 }},
01325 { 1, { 1.0 }},
01326 };
01327
01328 static const shade_set_t esp960_shades =
01329 {
01330 { 1, { 1.0 }},
01331 { 2, { 1.0, 0.316 }},
01332 { 2, { 1.0, 0.34 }},
01333 { 2, { 1.0, 0.5 }},
01334 { 1, { 1.0 }},
01335 { 1, { 1.0 }},
01336 { 1, { 1.0 }},
01337 { 1, { 1.0 }},
01338 };
01339
01340 static const shade_set_t stp2000_shades =
01341 {
01342 { 1, { 1.0 }},
01343 { 2, { 1.0, 0.227 }},
01344 { 2, { 1.0, 0.227 }},
01345 { 1, { 1.0 }},
01346 { 1, { 1.0 }},
01347 { 1, { 1.0 }},
01348 { 1, { 1.0 }},
01349 { 1, { 1.0 }},
01350 };
01351
01352 static const shade_set_t ultrachrome_photo_shades =
01353 {
01354 { 2, { 1.0, 0.48 }},
01355 { 2, { 1.0, 0.33 }},
01356 { 2, { 1.0, 0.25 }},
01357 { 1, { 1.0 }},
01358 { 1, { 1.0 }},
01359 { 1, { 1.0 }},
01360 { 1, { 1.0 }},
01361 { 1, { 1.0 }},
01362 };
01363
01364 static const shade_set_t ultrachrome_matte_shades =
01365 {
01366 { 2, { 1.0, 0.33 }},
01367 { 2, { 1.0, 0.33 }},
01368 { 2, { 1.0, 0.25 }},
01369 { 1, { 1.0 }},
01370 { 1, { 1.0 }},
01371 { 1, { 1.0 }},
01372 { 1, { 1.0 }},
01373 { 1, { 1.0 }},
01374 };
01375
01376 static const shade_set_t quadtone_shades =
01377 {
01378 { 4, { 1.0, 0.75, 0.5, 0.25 }},
01379 { 1, { 1.0 }},
01380 { 1, { 1.0 }},
01381 { 1, { 1.0 }},
01382 { 1, { 1.0 }},
01383 { 1, { 1.0 }},
01384 { 1, { 1.0 }},
01385 { 1, { 1.0 }},
01386 };
01387
01388 #define DECLARE_INKLIST(tname, name, inks, text, papers, adjustments, shades) \
01389 static const inklist_t name##_inklist = \
01390 { \
01391 tname, \
01392 text, \
01393 inks##_ink_types, \
01394 &stpi_escp2_##papers##_paper_list, \
01395 &stpi_escp2_##adjustments##_paper_adjustment_list, \
01396 &shades##_shades, \
01397 sizeof(inks##_ink_types) / sizeof(escp2_inkname_t *), \
01398 }
01399
01400
01401 static const escp2_inkname_t *const cmy_ink_types[] =
01402 {
01403 &three_color_composite_inkset
01404 };
01405
01406 DECLARE_INKLIST("None", cmy, cmy, N_("EPSON Standard Inks"),
01407 standard, standard, standard);
01408
01409
01410 static const escp2_inkname_t *const standard_ink_types[] =
01411 {
01412 &four_color_standard_inkset,
01413 &three_color_composite_inkset,
01414 &one_color_extended_inkset,
01415 &three_color_extended_inkset,
01416 &four_color_extended_inkset,
01417 };
01418
01419 DECLARE_INKLIST("None", standard, standard, N_("EPSON Standard Inks"),
01420 standard, standard, standard);
01421
01422 static const escp2_inkname_t *const quadtone_ink_types[] =
01423 {
01424 &generic_quadtone_inkset,
01425 };
01426
01427 DECLARE_INKLIST("quadtone", quadtone, quadtone, N_("Quadtone"),
01428 standard, standard, quadtone);
01429
01430 static const escp2_inkname_t *const c80_ink_types[] =
01431 {
01432 &c80_four_color_standard_inkset,
01433 &c80_three_color_composite_inkset,
01434 &one_color_extended_inkset,
01435 &c80_three_color_extended_inkset,
01436 &c80_four_color_extended_inkset,
01437 };
01438
01439 DECLARE_INKLIST("None", c80, c80, N_("EPSON Standard Inks"),
01440 durabrite, durabrite, standard);
01441
01442 static const escp2_inkname_t *const c80_quadtone_ink_types[] =
01443 {
01444 &c80_generic_quadtone_inkset,
01445 };
01446
01447 DECLARE_INKLIST("Quadtone", c80_quadtone, c80_quadtone, N_("Quadtone"),
01448 standard, standard, quadtone);
01449
01450 static const escp2_inkname_t *const c64_ink_types[] =
01451 {
01452 &c64_four_color_standard_inkset,
01453 &c64_three_color_composite_inkset,
01454 &one_color_extended_inkset,
01455 &c64_three_color_extended_inkset,
01456 &c64_four_color_extended_inkset,
01457 };
01458
01459 DECLARE_INKLIST("None", c64, c64, N_("EPSON Standard Inks"),
01460 durabrite, durabrite, standard);
01461
01462 static const escp2_inkname_t *const c64_quadtone_ink_types[] =
01463 {
01464 &c64_generic_quadtone_inkset,
01465 };
01466
01467 DECLARE_INKLIST("Quadtone", c64_quadtone, c64_quadtone, N_("Quadtone"),
01468 standard, standard, quadtone);
01469
01470 static const escp2_inkname_t *const x80_ink_types[] =
01471 {
01472 &x80_four_color_standard_inkset,
01473 &x80_three_color_composite_inkset,
01474 &one_color_extended_inkset,
01475 &x80_three_color_extended_inkset,
01476 &x80_four_color_extended_inkset,
01477 };
01478
01479 DECLARE_INKLIST("None", x80, x80, N_("EPSON Standard Inks"),
01480 standard, standard, standard);
01481
01482 static const escp2_inkname_t *const photo_ink_types[] =
01483 {
01484 &six_color_photo_inkset,
01485 &five_color_photo_composite_inkset,
01486 &four_color_standard_inkset,
01487 &three_color_composite_inkset,
01488 &one_color_extended_inkset,
01489 &three_color_extended_inkset,
01490 &four_color_extended_inkset,
01491 &five_color_extended_inkset,
01492 &six_color_extended_inkset,
01493 };
01494
01495 DECLARE_INKLIST("None", gen1, photo, N_("EPSON Standard Inks"),
01496 standard, photo, photo_gen1);
01497 DECLARE_INKLIST("None", photo_gen2, photo, N_("EPSON Standard Inks"),
01498 standard, photo2, photo_gen2);
01499 DECLARE_INKLIST("None", photo_gen3, photo, N_("EPSON Standard Inks"),
01500 standard, photo3, photo_gen3);
01501 DECLARE_INKLIST("None", pigment, photo, N_("EPSON Standard Inks"),
01502 ultrachrome, ultrachrome_photo, stp2000);
01503
01504 static const escp2_inkname_t *const f360_photo_ink_types[] =
01505 {
01506 &f360_six_color_photo_inkset,
01507 &f360_five_color_photo_composite_inkset,
01508 &f360_four_color_standard_inkset,
01509 &three_color_composite_inkset,
01510 &one_color_extended_inkset,
01511 &three_color_extended_inkset,
01512 &f360_four_color_extended_inkset,
01513 &f360_five_color_extended_inkset,
01514 &f360_six_color_extended_inkset,
01515 };
01516
01517 DECLARE_INKLIST("None", f360_photo, f360_photo, N_("EPSON Standard Inks"),
01518 standard, sp960, esp960);
01519
01520 static const escp2_inkname_t *const f360_photo7_japan_ink_types[] =
01521 {
01522 &f360_j_seven_color_enhanced_inkset,
01523 &f360_j_six_color_enhanced_composite_inkset,
01524 &f360_six_color_photo_inkset,
01525 &f360_five_color_photo_composite_inkset,
01526 &four_color_standard_inkset,
01527 &three_color_composite_inkset,
01528 &one_color_extended_inkset,
01529 &three_color_extended_inkset,
01530 &four_color_extended_inkset,
01531 &f360_five_color_extended_inkset,
01532 &f360_six_color_extended_inkset,
01533 &f360_seven_color_extended_inkset,
01534 };
01535
01536 DECLARE_INKLIST("None", f360_photo7_japan, f360_photo7_japan,
01537 N_("EPSON Standard Inks"), standard, sp960, esp960);
01538
01539 static const escp2_inkname_t *const f360_photo7_ink_types[] =
01540 {
01541 &f360_seven_color_enhanced_inkset,
01542 &f360_six_color_photo_inkset,
01543 &f360_five_color_photo_composite_inkset,
01544 &four_color_standard_inkset,
01545 &three_color_composite_inkset,
01546 &f360_two_color_grayscale_inkset,
01547 &one_color_extended_inkset,
01548 &f360_two_color_extended_inkset,
01549 &three_color_extended_inkset,
01550 &four_color_extended_inkset,
01551 &f360_five_color_extended_inkset,
01552 &f360_six_color_extended_inkset,
01553 &f360_seven_color_extended_inkset,
01554 };
01555
01556 DECLARE_INKLIST("ultraphoto", f360_ultra_photo7, f360_photo7,
01557 N_("UltraChrome Photo Black"), ultrachrome,
01558 ultrachrome_photo, ultrachrome_photo);
01559
01560 DECLARE_INKLIST("ultramatte", f360_ultra_matte7, f360_photo7,
01561 N_("UltraChrome Matte Black"), ultrachrome,
01562 ultrachrome_matte, ultrachrome_matte);
01563
01564 static const escp2_inkname_t *const photo7_ink_types[] =
01565 {
01566 &seven_color_enhanced_inkset,
01567 &six_color_photo_inkset,
01568 &five_color_photo_composite_inkset,
01569 &four_color_standard_inkset,
01570 &three_color_composite_inkset,
01571 &two_color_grayscale_inkset,
01572 &one_color_extended_inkset,
01573 &two_color_extended_inkset,
01574 &three_color_extended_inkset,
01575 &four_color_extended_inkset,
01576 &five_color_extended_inkset,
01577 &six_color_extended_inkset,
01578 &seven_color_extended_inkset,
01579 };
01580
01581 DECLARE_INKLIST("ultraphoto", ultra_photo7, photo7,
01582 N_("UltraChrome Photo Black"), ultrachrome,
01583 ultrachrome_photo, ultrachrome_photo);
01584
01585 DECLARE_INKLIST("ultramatte", ultra_matte7, photo7,
01586 N_("UltraChrome Matte Black"), ultrachrome,
01587 ultrachrome_matte, ultrachrome_matte);
01588
01589 static const escp2_inkname_t *const cmykrb_matte_ink_types[] =
01590 {
01591
01592 &standard_cmykrb_inkset,
01593
01594 &four_color_standard_inkset,
01595
01596 &three_color_composite_inkset,
01597 &one_color_extended_inkset,
01598 &one_color_extended_gloss_inkset,
01599 &three_color_extended_inkset,
01600 &four_color_extended_inkset,
01601 &four_color_gloss_extended_inkset,
01602 &six_color_cmykrb_extended_inkset,
01603 &six_color_cmykrb_gloss_extended_inkset,
01604 &seven_color_cmykprb_gloss_extended_inkset
01605 };
01606
01607 DECLARE_INKLIST("cmykrbmatte", cmykrb_matte, cmykrb_matte,
01608 N_("Matte Black"),
01609 standard, standard, standard);
01610
01611 static const escp2_inkname_t *const cmykrb_photo_ink_types[] =
01612 {
01613
01614 &photo_cmykrb_inkset,
01615
01616 &four_color_photo_inkset,
01617
01618 &three_color_composite_inkset,
01619 &one_color_photo_extended_inkset,
01620 &one_color_photo_extended_gloss_inkset,
01621 &three_color_extended_inkset,
01622 &four_color_photo_extended_inkset,
01623 &four_color_photo_gloss_extended_inkset,
01624 &six_color_cmykrb_photo_extended_inkset,
01625 &six_color_cmykrb_photo_gloss_extended_inkset,
01626 &seven_color_cmykprb_gloss_extended_inkset
01627 };
01628
01629 DECLARE_INKLIST("cmykrbphoto", cmykrb_photo, cmykrb_photo,
01630 N_("Photo Black"),
01631 standard, standard, standard);
01632
01633
01634 #define DECLARE_INKGROUP(name) \
01635 const inkgroup_t stpi_escp2_##name##_inkgroup = \
01636 { \
01637 #name, \
01638 name##_group, \
01639 sizeof(name##_group) / sizeof(inklist_t *), \
01640 }
01641
01642 static const inklist_t *const cmy_group[] =
01643 {
01644 &cmy_inklist
01645 };
01646
01647 DECLARE_INKGROUP(cmy);
01648
01649 static const inklist_t *const standard_group[] =
01650 {
01651 &standard_inklist,
01652 &quadtone_inklist
01653 };
01654
01655 DECLARE_INKGROUP(standard);
01656
01657 static const inklist_t *const c80_group[] =
01658 {
01659 &c80_inklist,
01660 &c80_quadtone_inklist
01661 };
01662
01663 DECLARE_INKGROUP(c80);
01664
01665 static const inklist_t *const c64_group[] =
01666 {
01667 &c64_inklist,
01668 &c64_quadtone_inklist
01669 };
01670
01671 DECLARE_INKGROUP(c64);
01672
01673 static const inklist_t *const x80_group[] =
01674 {
01675 &x80_inklist
01676 };
01677
01678 DECLARE_INKGROUP(x80);
01679
01680 static const inklist_t *const photo_gen1_group[] =
01681 {
01682 &gen1_inklist,
01683 &quadtone_inklist
01684 };
01685
01686 DECLARE_INKGROUP(photo_gen1);
01687
01688 static const inklist_t *const photo_gen2_group[] =
01689 {
01690 &photo_gen2_inklist,
01691 &quadtone_inklist
01692 };
01693
01694 DECLARE_INKGROUP(photo_gen2);
01695
01696 static const inklist_t *const photo_gen3_group[] =
01697 {
01698 &photo_gen3_inklist,
01699 &quadtone_inklist
01700 };
01701
01702 DECLARE_INKGROUP(photo_gen3);
01703
01704 static const inklist_t *const photo_pigment_group[] =
01705 {
01706 &pigment_inklist
01707 };
01708
01709 DECLARE_INKGROUP(photo_pigment);
01710
01711 static const inklist_t *const f360_photo_group[] =
01712 {
01713 &f360_photo_inklist
01714 };
01715
01716 DECLARE_INKGROUP(f360_photo);
01717
01718 static const inklist_t *const f360_photo7_japan_group[] =
01719 {
01720 &f360_photo7_japan_inklist
01721 };
01722
01723 DECLARE_INKGROUP(f360_photo7_japan);
01724
01725 static const inklist_t *const f360_ultrachrome_group[] =
01726 {
01727 &f360_ultra_photo7_inklist,
01728 &f360_ultra_matte7_inklist
01729 };
01730
01731 DECLARE_INKGROUP(f360_ultrachrome);
01732
01733 static const inklist_t *const ultrachrome_group[] =
01734 {
01735 &ultra_photo7_inklist,
01736 &ultra_matte7_inklist
01737 };
01738
01739 DECLARE_INKGROUP(ultrachrome);
01740
01741 static const inklist_t *const cmykrb_group[] =
01742 {
01743 &cmykrb_matte_inklist,
01744 &cmykrb_photo_inklist
01745 };
01746
01747 DECLARE_INKGROUP(cmykrb);