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.c,v 1.37 2004/08/01 01:43:18 rlk 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);

Generated on Wed Aug 25 07:56:13 2004 for libgimpprint API Reference by doxygen 1.3.6