libgimpprint API Reference: src/main/escp2-channels.c Source File

Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

# src/main/escp2-channels.c

Go to the documentation of this file.

    00001 /*
    00002  * "$Id: escp2-channels_8c-source.html,v 1.1.1.2 2004/12/22 23:48:59 jlovell Exp $"
    00003  *
    00004  *   Print plug-in EPSON ESC/P2 driver for the GIMP.
    00005  *
    00006  *   Copyright 1997-2000 Michael Sweet (mike@easysw.com) and
    00007  *      Robert Krawitz (rlk@alum.mit.edu)
    00008  *
    00009  *   This program is free software; you can redistribute it and/or modify it
    00010  *   under the terms of the GNU General Public License as published by the Free
    00011  *   Software Foundation; either version 2 of the License, or (at your option)
    00012  *   any later version.
    00013  *
    00014  *   This program is distributed in the hope that it will be useful, but
    00015  *   WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
    00016  *   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    00017  *   for more details.
    00018  *
    00019  *   You should have received a copy of the GNU General Public License
    00020  *   along with this program; if not, write to the Free Software
    00021  *   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
    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 /* For Japanese 7-color printers, with dark yellow */
    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  * Grayscale                                                    *
    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  * Two shade gray                                               *
    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  * Quadtone gray                                                *
    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  * Three color CMY                                              *
    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  * Four color CMYK                                              *
    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  * Five color CcMmY                                             *
    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  * Six color CcMmYK                                             *
    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  * Six color CcMmYy (Japan)                                     *
    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  * Seven color CcMmYKk                                          *
    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  * Seven color CcMmYyK (Japan)                                  *
    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  * Six color CMYKRB                                             *
    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  * Extended (raw)                                               *
    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 }},                /* K */
    01283   { 1, { 1.0 }},                /* C */
    01284   { 1, { 1.0 }},                /* M */
    01285   { 1, { 1.0 }},                /* Y */
    01286   { 1, { 1.0 }},                /* Extended 5 */
    01287   { 1, { 1.0 }},                /* Extended 6 */
    01288   { 1, { 1.0 }},                /* Extended 7 */
    01289   { 1, { 1.0 }},                /* Extended 8 */
    01290 };
    01291
    01292 static const shade_set_t photo_gen1_shades =    /* Stylus 750 and older */
    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 =    /* Stylus 870 and newer */
    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 =    /* Stylus R300 and newer */
    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 =        /* Epson 950/960/PM-950C/PM-970C */
    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 =       /* Stylus Photo 2000 */
    01341 {
    01342   { 1, { 1.0 }},
    01343   { 2, { 1.0, 0.227 }},         /* Just a guess */
    01344   { 2, { 1.0, 0.227 }},         /* Just a guess */
    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 =     /* Ultrachrome with photo black ink */
    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 =     /* Ultrachrome with matte black ink */
    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 =      /* Some kind of quadtone ink */
    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 /*  &gloss_cmykrb_inkset, */
    01592   &standard_cmykrb_inkset,
    01593 /*  &four_color_gloss_inkset, */
    01594   &four_color_standard_inkset,
    01595 /*  &three_color_composite_gloss_inkset, */
    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 /*  &photo_gloss_cmykrb_inkset, */
    01614   &photo_cmykrb_inkset,
    01615 /*   &four_color_photo_gloss_inkset, */
    01616   &four_color_photo_inkset,
    01617 /*   &three_color_composite_gloss_inkset, */
    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);