summaryrefslogtreecommitdiff
path: root/src/main/escp2-channels.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/escp2-channels.c')
-rw-r--r--src/main/escp2-channels.c448
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;
+}