diff options
Diffstat (limited to 'src/main/escp2-channels.c')
-rw-r--r-- | src/main/escp2-channels.c | 448 |
1 files changed, 441 insertions, 7 deletions
diff --git a/src/main/escp2-channels.c b/src/main/escp2-channels.c index e12edbf..6b8fbfa 100644 --- a/src/main/escp2-channels.c +++ b/src/main/escp2-channels.c @@ -1,5 +1,5 @@ /* - * "$Id: escp2-channels.c,v 1.62 2006/06/01 23:49:33 rlk Exp $" + * "$Id: escp2-channels.c,v 1.62.8.2 2007/05/29 01:47:28 rlk Exp $" * * Print plug-in EPSON ESC/P2 driver for the GIMP. * @@ -768,6 +768,64 @@ static const physical_subchannel_t f360x_photo_magenta_subchannels[] = DECLARE_INK_CHANNEL(f360x_photo_magenta); +static const physical_subchannel_t claria_black_subchannels[] = +{ + { 0, 0, 0, "BlackDensity", NULL }, +}; + +DECLARE_INK_CHANNEL(claria_black); + +static const physical_subchannel_t claria_yellow_subchannels[] = +{ + { 4, 0, 2, "YellowDensity", NULL }, +}; + +DECLARE_INK_CHANNEL(claria_yellow); + +static const physical_subchannel_t claria_cyan_subchannels[] = +{ + { 2, 0, 0, "CyanDensity", NULL }, +}; + +DECLARE_INK_CHANNEL(claria_cyan); + +static const physical_subchannel_t claria_photo_cyan_subchannels[] = +{ + { 2, 0, 0, "CyanDensity", NULL }, + { 2, 1, 2, "CyanDensity", "LightCyanTransition" }, +}; + +DECLARE_INK_CHANNEL(claria_photo_cyan); + +static const physical_subchannel_t extended_claria_cyan_subchannels[] = +{ + { 2, 1, 2, "CyanDensity", "LightCyanTransition" }, +}; + +DECLARE_INK_CHANNEL(extended_claria_cyan); + +static const physical_subchannel_t claria_magenta_subchannels[] = +{ + { 1, 0, 2, "MagentaDensity", NULL }, +}; + +DECLARE_INK_CHANNEL(claria_magenta); + +static const physical_subchannel_t claria_photo_magenta_subchannels[] = +{ + { 1, 0, 2, "MagentaDensity", NULL }, + { 1, 1, 0, "MagentaDensity", "LightMagentaTransition" }, +}; + +DECLARE_INK_CHANNEL(claria_photo_magenta); + +static const physical_subchannel_t extended_claria_magenta_subchannels[] = +{ + { 1, 1, 0, "MagentaDensity", "LightMagentaTransition" }, +}; + +DECLARE_INK_CHANNEL(extended_claria_magenta); + #define DECLARE_CHANNEL_SET(name) \ static const channel_set_t name##_channel_set = \ @@ -815,7 +873,7 @@ static const ink_channel_t *const standard_black_channels[] = DECLARE_CHANNEL_SET(standard_black); -const escp2_inkname_t stpi_escp2_default_black_inkset = +static const escp2_inkname_t stpi_escp2_default_black_inkset = { "Gray", N_("Grayscale"), INKSET_CMYK, &standard_black_channel_set @@ -828,7 +886,7 @@ static const ink_channel_t *const standard_photo_black_channels[] = DECLARE_CHANNEL_SET(standard_photo_black); -const escp2_inkname_t stpi_escp2_default_photo_black_inkset = +static const escp2_inkname_t stpi_escp2_default_photo_black_inkset = { "Gray", N_("Grayscale"), INKSET_CMYK, &standard_photo_black_channel_set @@ -842,7 +900,7 @@ static const ink_channel_t *const standard_photo_gloss_black_channels[] = DECLARE_CHANNEL_SET(standard_photo_gloss_black); DECLARE_AUX_CHANNEL_SET(standard_photo_black, standard_gloss); -const escp2_inkname_t stpi_escp2_default_photo_gloss_black_inkset = +static const escp2_inkname_t stpi_escp2_default_photo_gloss_black_inkset = { "GrayG", N_("Grayscale"), INKSET_CMYK, &standard_photo_black_standard_gloss_channel_set @@ -1130,6 +1188,20 @@ static const escp2_inkname_t three_color_r2400_composite_inkset = &r2400_cmy_channel_set }; +static const ink_channel_t *const claria_cmy_channels[] = +{ + NULL, &claria_cyan_channel, + &claria_magenta_channel, &claria_yellow_channel +}; + +DECLARE_CHANNEL_SET(claria_cmy); + +static const escp2_inkname_t claria_three_color_composite_inkset = +{ + "RGB", N_("Three Color Composite"), INKSET_CMYK, + &claria_cmy_channel_set +}; + /* **************************************************************** * * @@ -1288,6 +1360,20 @@ static const escp2_inkname_t cx3650_four_color_standard_inkset = &cx3650_cmyk_channel_set }; +static const ink_channel_t *const claria_cmyk_channels[] = +{ + &claria_black_channel, &claria_cyan_channel, + &claria_magenta_channel, &claria_yellow_channel +}; + +DECLARE_CHANNEL_SET(claria_cmyk); + +static const escp2_inkname_t claria_four_color_standard_inkset = +{ + "CMYK", N_("Four Color Standard"), INKSET_CMYK, + &claria_cmyk_channel_set +}; + /* **************************************************************** @@ -1339,6 +1425,20 @@ static const escp2_inkname_t five_color_photo3_inkset = &five_color_photo3_channel_set }; +static const ink_channel_t *const claria_ccmmy_channels[] = +{ + NULL, &claria_photo_cyan_channel, + &claria_photo_magenta_channel, &claria_yellow_channel +}; + +DECLARE_CHANNEL_SET(claria_ccmmy); + +static const escp2_inkname_t claria_five_color_photo_composite_inkset = +{ + "PhotoCMY", N_("Five Color Photo Composite"), INKSET_CcMmYK, + &claria_ccmmy_channel_set +}; + /* **************************************************************** @@ -1390,6 +1490,20 @@ static const escp2_inkname_t six_color_photo3_inkset = &six_color_photo3_channel_set }; +static const ink_channel_t *const claria_ccmmyk_channels[] = +{ + &claria_black_channel, &claria_photo_cyan_channel, + &claria_photo_magenta_channel, &claria_yellow_channel +}; + +DECLARE_CHANNEL_SET(claria_ccmmyk); + +static const escp2_inkname_t claria_six_color_photo_inkset = +{ + "PhotoCMYK", N_("Six Color Photo"), INKSET_CcMmYK, + &claria_ccmmyk_channel_set +}; + /* **************************************************************** * * @@ -1830,6 +1944,19 @@ static const escp2_inkname_t cx3650_three_color_extended_inkset = &cx3650_three_color_extended_channel_set }; +static const ink_channel_t *const claria_three_color_extended_channels[] = +{ + &claria_cyan_channel, &claria_magenta_channel, &claria_yellow_channel +}; + +DECLARE_CHANNEL_SET(claria_three_color_extended); + +static const escp2_inkname_t claria_three_color_extended_inkset = +{ + "PhysicalCMY", N_("Three Color Raw"), INKSET_EXTENDED, + &claria_three_color_extended_channel_set +}; + static const escp2_inkname_t four_color_extended_inkset = { @@ -1873,6 +2000,12 @@ static const escp2_inkname_t cx3650_four_color_extended_inkset = &cx3650_cmyk_channel_set }; +static const escp2_inkname_t claria_four_color_extended_inkset = +{ + "PhysicalCMYK", N_("Four Color Raw"), INKSET_EXTENDED, + &claria_cmyk_channel_set +}; + static const escp2_inkname_t four_color_r800_extended_inkset = { "PhysicalCMYKGloss", N_("Four Color Raw"), INKSET_EXTENDED, @@ -1914,6 +2047,20 @@ static const escp2_inkname_t f360_five_color_extended_inkset = &f360_five_color_extended_channel_set }; +static const ink_channel_t *const claria_five_color_extended_channels[] = +{ + &claria_cyan_channel, &extended_claria_cyan_channel, + &claria_magenta_channel, &extended_claria_magenta_channel, + &claria_yellow_channel +}; +DECLARE_CHANNEL_SET(claria_five_color_extended); + +static const escp2_inkname_t claria_five_color_extended_inkset = +{ + "PhysicalCcMmYK", N_("Six Color Raw"), INKSET_EXTENDED, + &claria_five_color_extended_channel_set +}; + static const ink_channel_t *const six_color_extended_channels[] = { @@ -1963,6 +2110,22 @@ static const escp2_inkname_t six_color_r800_photo_gloss_extended_inkset = &six_color_r800_photo_gloss_channel_set }; +static const ink_channel_t *const claria_six_color_extended_channels[] = +{ + &claria_black_channel, + &claria_cyan_channel, &extended_claria_cyan_channel, + &claria_magenta_channel, &extended_claria_magenta_channel, + &claria_yellow_channel +}; +DECLARE_CHANNEL_SET(claria_six_color_extended); + +static const escp2_inkname_t claria_six_color_extended_inkset = +{ + "PhysicalCcMmYK", N_("Six Color Raw"), INKSET_EXTENDED, + &claria_six_color_extended_channel_set +}; + + static const ink_channel_t *const j_seven_color_extended_channels[] = { &photo_black_channel, @@ -2176,14 +2339,26 @@ static const shade_set_t quadtone_shades = /* Some kind of quadtone ink */ { 1, { 1.0 }}, }; +static const shade_set_t claria_shades = /* Stylus R260 and newer */ +{ + { 1, { 1.0 }}, + { 2, { 1.0, 0.35 }}, + { 2, { 1.0, 0.33 }}, + { 1, { 1.0 }}, + { 1, { 1.0 }}, + { 1, { 1.0 }}, + { 1, { 1.0 }}, + { 1, { 1.0 }}, +}; + #define DECLARE_INKLIST(tname, name, inks, text, papers, adjustments, shades) \ static const inklist_t name##_inklist = \ { \ tname, \ text, \ inks##_ink_types, \ - &stpi_escp2_##papers##_paper_list, \ - &stpi_escp2_##adjustments##_paper_adjustment_list, \ + #papers, \ + #adjustments, \ &shades##_shades, \ sizeof(inks##_ink_types) / sizeof(escp2_inkname_t *), \ } @@ -2209,6 +2384,8 @@ static const escp2_inkname_t *const standard_ink_types[] = DECLARE_INKLIST("None", standard, standard, N_("EPSON Standard Inks"), standard, standard, standard); +DECLARE_INKLIST("None", photo_gen3_4, standard, N_("EPSON Standard Inks"), + standard, photo3, standard); static const escp2_inkname_t *const quadtone_ink_types[] = { @@ -2351,6 +2528,22 @@ static const escp2_inkname_t *const f360_photo_ink_types[] = DECLARE_INKLIST("None", f360_photo, f360_photo, N_("EPSON Standard Inks"), standard, sp960, esp960); +static const escp2_inkname_t *const claria_ink_types[] = +{ + &claria_six_color_photo_inkset, + &claria_five_color_photo_composite_inkset, + &claria_four_color_standard_inkset, + &claria_three_color_composite_inkset, + &one_color_extended_inkset, + &claria_three_color_extended_inkset, + &claria_four_color_extended_inkset, + &claria_five_color_extended_inkset, + &claria_six_color_extended_inkset, +}; + +DECLARE_INKLIST("None", claria, claria, N_("EPSON Standard Inks"), + standard, claria, claria); + static const escp2_inkname_t *const f360_photo7_japan_ink_types[] = { &f360_j_seven_color_enhanced_inkset, @@ -2483,7 +2676,7 @@ DECLARE_INKLIST("picturemate", picturemate, picturemate_photo, #define DECLARE_INKGROUP(name) \ -const inkgroup_t stpi_escp2_##name##_inkgroup = \ +static const inkgroup_t name##_inkgroup = \ { \ #name, \ name##_group, \ @@ -2576,6 +2769,14 @@ static const inklist_t *const photo_gen3_group[] = DECLARE_INKGROUP(photo_gen3); +static const inklist_t *const photo_gen3_4_group[] = +{ + &photo_gen3_4_inklist, + &quadtone_inklist +}; + +DECLARE_INKGROUP(photo_gen3_4); + static const inklist_t *const photo_pigment_group[] = { &pigment_inklist @@ -2635,3 +2836,236 @@ static const inklist_t *const picturemate_group[] = }; DECLARE_INKGROUP(picturemate); + +static const inklist_t *const claria_group[] = +{ + &claria_inklist, +}; + +DECLARE_INKGROUP(claria); + +typedef struct +{ + const char *name; + const inkgroup_t *inkgroup; +} ink_t; + +static const ink_t the_inks[] = +{ + { "cmy", &cmy_inkgroup }, + { "standard", &standard_inkgroup }, + { "c80", &c80_inkgroup }, + { "c82", &c82_inkgroup }, + { "c64", &c64_inkgroup }, + { "f360", &f360_inkgroup }, + { "cx3650", &cx3650_inkgroup }, + { "x80", &x80_inkgroup }, + { "photo_gen1", &photo_gen1_inkgroup }, + { "photo_gen2", &photo_gen2_inkgroup }, + { "photo_gen3", &photo_gen3_inkgroup }, + { "photo_gen3_4", &photo_gen3_4_inkgroup }, + { "photo_pigment", &photo_pigment_inkgroup }, + { "ultrachrome", &ultrachrome_inkgroup }, + { "f360_photo", &f360_photo_inkgroup }, + { "f360_photo7_japan", &f360_photo7_japan_inkgroup }, + { "f360_ultrachrome", &f360_ultrachrome_inkgroup }, + { "f360_ultrachrome_k3", &f360_ultrachrome_k3_inkgroup }, + { "cmykrb", &cmykrb_inkgroup }, + { "picturemate", &picturemate_inkgroup }, + { "claria", &claria_inkgroup }, +}; + +const inkgroup_t * +stpi_escp2_get_inkgroup_named(const char *n) +{ + int i; + if (n) + for (i = 0; i < sizeof(the_inks) / sizeof(ink_t); i++) + { + if (strcmp(n, the_inks[i].name) == 0) + return the_inks[i].inkgroup; + } + return NULL; +} + +const escp2_inkname_t * +stpi_escp2_get_default_black_inkset(void) +{ + return &stpi_escp2_default_black_inkset; +} + + +#define DECLARE_CHANNEL_LIST(name) \ +static const channel_name_t name##_channel_name_list = \ +{ \ + #name, \ + sizeof(name##_channel_names) / sizeof(const char *), \ + name##_channel_names \ +} + +static const char *standard_channel_names[] = +{ + N_("Black"), + N_("Cyan"), + N_("Magenta"), + N_("Yellow") +}; + +DECLARE_CHANNEL_LIST(standard); + +static const char *cx3800_channel_names[] = +{ + N_("Cyan"), + N_("Yellow"), + N_("Magenta"), + N_("Black") +}; + +DECLARE_CHANNEL_LIST(cx3800); + +static const char *mfp2005_channel_names[] = +{ + N_("Cyan"), + N_("Magenta"), + N_("Yellow"), + N_("Black") +}; + +DECLARE_CHANNEL_LIST(mfp2005); + +static const char *photo_channel_names[] = +{ + N_("Black"), + N_("Cyan"), + N_("Magenta"), + N_("Yellow"), + N_("Light Cyan"), + N_("Light Magenta"), +}; + +DECLARE_CHANNEL_LIST(photo); + +static const char *rx700_channel_names[] = +{ + N_("Black"), + N_("Cyan"), + N_("Light Cyan"), + N_("Magenta"), + N_("Light Magenta"), + N_("Yellow"), +}; + +DECLARE_CHANNEL_LIST(rx700); + +static const char *sp2200_channel_names[] = +{ + N_("Black"), + N_("Cyan"), + N_("Magenta"), + N_("Yellow"), + N_("Light Cyan"), + N_("Light Magenta"), + N_("Light Black"), +}; + +DECLARE_CHANNEL_LIST(sp2200); + +static const char *pm_950c_channel_names[] = +{ + N_("Black"), + N_("Cyan"), + N_("Magenta"), + N_("Yellow"), + N_("Light Cyan"), + N_("Light Magenta"), + N_("Dark Yellow"), +}; + +DECLARE_CHANNEL_LIST(pm_950c); + +static const char *sp960_channel_names[] = +{ + N_("Black"), + N_("Cyan"), + N_("Magenta"), + N_("Yellow"), + N_("Light Cyan"), + N_("Light Magenta"), + N_("Black"), +}; + +DECLARE_CHANNEL_LIST(sp960); + +static const char *r800_channel_names[] = +{ + N_("Yellow"), + N_("Magenta"), + N_("Cyan"), + N_("Matte Black"), + N_("Photo Black"), + N_("Red"), + N_("Blue"), + N_("Gloss Optimizer"), +}; + +DECLARE_CHANNEL_LIST(r800); + +static const char *picturemate_channel_names[] = +{ + N_("Yellow"), + N_("Magenta"), + N_("Cyan"), + N_("Black"), + N_("Red"), + N_("Blue"), +}; + +DECLARE_CHANNEL_LIST(picturemate); + +static const char *r2400_channel_names[] = +{ + N_("Light Light Black"), + N_("Light Magenta"), + N_("Light Cyan"), + N_("Light Black"), + N_("Black"), + N_("Cyan"), + N_("Magenta"), + N_("Yellow"), +}; + +DECLARE_CHANNEL_LIST(r2400); + +typedef struct +{ + const char *name; + const channel_name_t *channel_name; +} channel_t; + +static const channel_t the_channels[] = +{ + { "cx3800", &cx3800_channel_name_list }, + { "mfp2005", &mfp2005_channel_name_list }, + { "photo", &photo_channel_name_list }, + { "picturemate", &picturemate_channel_name_list }, + { "pm_950c", &pm_950c_channel_name_list }, + { "r2400", &r2400_channel_name_list }, + { "r800", &r800_channel_name_list }, + { "rx700", &rx700_channel_name_list }, + { "sp2200", &sp2200_channel_name_list }, + { "sp960", &sp960_channel_name_list }, + { "standard", &standard_channel_name_list }, +}; + +const channel_name_t * +stpi_escp2_get_channel_names_named(const char *n) +{ + int i; + if (n) + for (i = 0; i < sizeof(the_channels) / sizeof(channel_t); i++) + { + if (strcmp(n, the_channels[i].name) == 0) + return the_channels[i].channel_name; + } + return NULL; +} |