summaryrefslogtreecommitdiff
path: root/src/main/escp2-inks.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/escp2-inks.c')
-rw-r--r--src/main/escp2-inks.c160
1 files changed, 143 insertions, 17 deletions
diff --git a/src/main/escp2-inks.c b/src/main/escp2-inks.c
index 6a5ee2e..309a40e 100644
--- a/src/main/escp2-inks.c
+++ b/src/main/escp2-inks.c
@@ -1,5 +1,5 @@
/*
- * "$Id: escp2-inks.c,v 1.46 2006/01/07 02:43:28 rlk Exp $"
+ * "$Id: escp2-inks.c,v 1.46.10.2 2007/05/29 01:47:28 rlk Exp $"
*
* Print plug-in EPSON ESC/P2 driver for the GIMP.
*
@@ -135,6 +135,64 @@ static const escp2_dropsize_t escp2_r300_2880_dropsizes =
static const escp2_dropsize_t escp2_r300_2880_1440_dropsizes =
{ "r300_2880_1440", 1, { 1.0 } };
+/* Claria inks */
+
+/*
+ * Tested relative drop sizes:
+ * S M L
+ *
+ * 0x21 3 4 5
+ * 0x23 2 3 4
+ * 0x24 1 3 5
+ * 0x25 1 2 3
+ * 0x26 2 3 5
+ * 0x33 1 3 5
+ *
+ * Therefore, there's no real point to use drop sizes other than 0x24
+ * and 0x25. The economy settings (0x10 and 0x0) don't provide any
+ * bigger drops. We get quite smooth output at 720x360 and 360 DPI, and
+ * even 360x180 is surprisingly smooth.
+ * Roy Harrington estimates the drop sizes are:
+ *
+ * 1 1.5 pl
+ * 2 2.4 pl
+ * 3 6.3 pl
+ * 4 12 pl (rlk estimate)
+ * 5 21 pl
+ */
+
+static const escp2_dropsize_t escp2_claria_720_dropsizes =
+ { "claria_720", 3, { 0.071, 0.3, 1.0 } };
+static const escp2_dropsize_t escp2_claria_1440_dropsizes =
+ { "claria_1440", 3, { 0.23, 0.37, 1.0 } };
+static const escp2_dropsize_t escp2_claria_2880_dropsizes =
+ { "claria_2880", 2, { 0.62, 1.0 } };
+static const escp2_dropsize_t escp2_claria_5760_dropsizes =
+ { "claria_5760", 1, { 1.0 } };
+
+/* Stylus Photo 1400 */
+
+/*
+ * Tested relative drop sizes:
+* S M L
+*
+* 0x21 3 4 5
+* 0x25 1 2 3
+* 0x33 1 3 5
+* 0x34 2 3 5
+*/
+
+static const escp2_dropsize_t escp2_claria_1400_720_dropsizes =
+ { "claria_1400_720", 3, { 0.3, 0.57, 1.0 } };
+static const escp2_dropsize_t escp2_claria_1400_1440_720_dropsizes =
+ { "claria_1400_1440_720", 3, { 0.071, 0.3, 1.0 } };
+static const escp2_dropsize_t escp2_claria_1400_1440_dropsizes =
+ { "claria_1400_1440", 3, { 0.23, 0.37, 1.0 } };
+static const escp2_dropsize_t escp2_claria_1400_2880_dropsizes =
+ { "claria_1400_2880", 2, { 0.62, 1.0 } };
+static const escp2_dropsize_t escp2_claria_1400_5760_dropsizes =
+ { "claria_1400_5760", 1, { 1.0 } };
+
/* Stylus Photo R2400 */
static const escp2_dropsize_t escp2_r2400_360_dropsizes =
{ "r2400_360", 1, { 1 } };
@@ -193,7 +251,7 @@ static const escp2_dropsize_t escp2_ultrachrome_2880_dropsizes =
static const escp2_dropsize_t escp2_spro10000_dropsizes =
{ "spro10000", 2, { 0.661, 1.0 } };
-const escp2_drop_list_t stpi_escp2_simple_drops =
+static const escp2_drop_list_t simple_drops =
{
&escp2_single_dropsizes,
&escp2_single_dropsizes,
@@ -206,7 +264,7 @@ const escp2_drop_list_t stpi_escp2_simple_drops =
&escp2_single_dropsizes,
};
-const escp2_drop_list_t stpi_escp2_variable_6pl_drops =
+static const escp2_drop_list_t variable_6pl_drops =
{
&escp2_6pl_dropsizes,
&escp2_6pl_dropsizes,
@@ -219,7 +277,7 @@ const escp2_drop_list_t stpi_escp2_variable_6pl_drops =
&escp2_6pl_2880_dropsizes,
};
-const escp2_drop_list_t stpi_escp2_variable_x80_6pl_drops =
+static const escp2_drop_list_t variable_x80_6pl_drops =
{
&escp2_x80_low_dropsizes,
&escp2_x80_low_dropsizes,
@@ -232,7 +290,7 @@ const escp2_drop_list_t stpi_escp2_variable_x80_6pl_drops =
&escp2_x80_2880_6pl_dropsizes,
};
-const escp2_drop_list_t stpi_escp2_variable_1440_4pl_drops =
+static const escp2_drop_list_t variable_1440_4pl_drops =
{
&escp2_low_dropsizes,
&escp2_low_dropsizes,
@@ -245,7 +303,7 @@ const escp2_drop_list_t stpi_escp2_variable_1440_4pl_drops =
&escp2_4pl_2880_dropsizes,
};
-const escp2_drop_list_t stpi_escp2_variable_2880_4pl_drops =
+static const escp2_drop_list_t variable_2880_4pl_drops =
{
&escp2_new_low_dropsizes,
&escp2_new_low_dropsizes,
@@ -258,7 +316,7 @@ const escp2_drop_list_t stpi_escp2_variable_2880_4pl_drops =
&escp2_4pl_2880_dropsizes,
};
-const escp2_drop_list_t stpi_escp2_variable_3pl_drops =
+static const escp2_drop_list_t variable_3pl_drops =
{
&escp2_low_dropsizes,
&escp2_low_dropsizes,
@@ -271,7 +329,7 @@ const escp2_drop_list_t stpi_escp2_variable_3pl_drops =
&escp2_3pl_2880_dropsizes,
};
-const escp2_drop_list_t stpi_escp2_variable_2pl_drops =
+static const escp2_drop_list_t variable_2pl_drops =
{
&escp2_2pl_360_dropsizes,
&escp2_2pl_360_dropsizes,
@@ -284,7 +342,7 @@ const escp2_drop_list_t stpi_escp2_variable_2pl_drops =
&escp2_2pl_2880_dropsizes,
};
-const escp2_drop_list_t stpi_escp2_variable_3pl_pmg_drops =
+static const escp2_drop_list_t variable_3pl_pmg_drops =
{
&escp2_r300_360_dropsizes,
&escp2_r300_360_dropsizes,
@@ -297,7 +355,33 @@ const escp2_drop_list_t stpi_escp2_variable_3pl_pmg_drops =
&escp2_r300_2880_1440_dropsizes,
};
-const escp2_drop_list_t stpi_escp2_variable_r2400_drops =
+static const escp2_drop_list_t claria_drops =
+{
+ &escp2_claria_720_dropsizes,
+ &escp2_claria_720_dropsizes,
+ &escp2_claria_720_dropsizes,
+ &escp2_claria_720_dropsizes,
+ &escp2_claria_720_dropsizes,
+ &escp2_claria_1440_dropsizes,
+ &escp2_claria_1440_dropsizes,
+ &escp2_claria_2880_dropsizes,
+ &escp2_claria_5760_dropsizes,
+};
+
+static const escp2_drop_list_t claria_1400_drops =
+{
+ &escp2_claria_1400_1440_720_dropsizes,
+ &escp2_claria_1400_1440_720_dropsizes,
+ &escp2_claria_1400_720_dropsizes,
+ &escp2_claria_1400_720_dropsizes,
+ &escp2_claria_1400_1440_720_dropsizes,
+ &escp2_claria_1400_1440_dropsizes,
+ &escp2_claria_1400_1440_dropsizes,
+ &escp2_claria_1400_2880_dropsizes,
+ &escp2_claria_1400_5760_dropsizes,
+};
+
+static const escp2_drop_list_t variable_r2400_drops =
{
&escp2_r2400_360_dropsizes,
&escp2_r2400_360_dropsizes,
@@ -310,7 +394,7 @@ const escp2_drop_list_t stpi_escp2_variable_r2400_drops =
&escp2_r2400_2880_2880_dropsizes,
};
-const escp2_drop_list_t stpi_escp2_variable_picturemate_drops =
+static const escp2_drop_list_t variable_picturemate_drops =
{
&escp2_picturemate_1440_dropsizes,
&escp2_picturemate_1440_dropsizes,
@@ -323,7 +407,7 @@ const escp2_drop_list_t stpi_escp2_variable_picturemate_drops =
&escp2_picturemate_5760_dropsizes,
};
-const escp2_drop_list_t stpi_escp2_variable_1_5pl_drops =
+static const escp2_drop_list_t variable_1_5pl_drops =
{
&escp2_1_5pl_360_dropsizes,
&escp2_1_5pl_360_dropsizes,
@@ -336,7 +420,7 @@ const escp2_drop_list_t stpi_escp2_variable_1_5pl_drops =
&escp2_1_5pl_5760_dropsizes,
};
-const escp2_drop_list_t stpi_escp2_variable_2000p_drops =
+static const escp2_drop_list_t variable_2000p_drops =
{
&escp2_2000p_dropsizes,
&escp2_2000p_dropsizes,
@@ -349,7 +433,7 @@ const escp2_drop_list_t stpi_escp2_variable_2000p_drops =
&escp2_2000p_dropsizes
};
-const escp2_drop_list_t stpi_escp2_variable_ultrachrome_drops =
+static const escp2_drop_list_t variable_ultrachrome_drops =
{
&escp2_ultrachrome_low_dropsizes,
&escp2_ultrachrome_low_dropsizes,
@@ -362,7 +446,7 @@ const escp2_drop_list_t stpi_escp2_variable_ultrachrome_drops =
&escp2_ultrachrome_2880_dropsizes,
};
-const escp2_drop_list_t stpi_escp2_variable_3pl_pigment_drops =
+static const escp2_drop_list_t variable_3pl_pigment_drops =
{
&escp2_economy_pigment_dropsizes,
&escp2_low_pigment_dropsizes,
@@ -375,7 +459,7 @@ const escp2_drop_list_t stpi_escp2_variable_3pl_pigment_drops =
&escp2_3pl_pigment_5760_dropsizes,
};
-const escp2_drop_list_t stpi_escp2_variable_3pl_pigment_c66_drops =
+static const escp2_drop_list_t variable_3pl_pigment_c66_drops =
{
&escp2_economy_pigment_c66_dropsizes,
&escp2_low_pigment_c66_dropsizes,
@@ -388,7 +472,7 @@ const escp2_drop_list_t stpi_escp2_variable_3pl_pigment_c66_drops =
&escp2_3pl_pigment_c66_5760_dropsizes,
};
-const escp2_drop_list_t stpi_escp2_spro10000_drops =
+static const escp2_drop_list_t spro10000_drops =
{
&escp2_spro10000_dropsizes,
&escp2_spro10000_dropsizes,
@@ -400,3 +484,45 @@ const escp2_drop_list_t stpi_escp2_spro10000_drops =
&escp2_spro10000_dropsizes,
&escp2_spro10000_dropsizes
};
+
+
+typedef struct
+{
+ const char *name;
+ const escp2_drop_list_t *const drop_list;
+} drop_list_t;
+
+static const drop_list_t the_drop_lists[] =
+{
+ { "simple", &simple_drops },
+ { "spro10000", &spro10000_drops },
+ { "variable_1_5pl", &variable_1_5pl_drops },
+ { "variable_2pl", &variable_2pl_drops },
+ { "variable_3pl", &variable_3pl_drops },
+ { "variable_3pl_pigment", &variable_3pl_pigment_drops },
+ { "variable_3pl_pigment_c66", &variable_3pl_pigment_c66_drops },
+ { "variable_3pl_pmg", &variable_3pl_pmg_drops },
+ { "variable_claria", &claria_drops },
+ { "variable_claria_1400", &claria_1400_drops },
+ { "variable_r2400", &variable_r2400_drops },
+ { "variable_picturemate", &variable_picturemate_drops },
+ { "variable_1440_4pl", &variable_1440_4pl_drops },
+ { "variable_ultrachrome", &variable_ultrachrome_drops },
+ { "variable_2880_4pl", &variable_2880_4pl_drops },
+ { "variable_6pl", &variable_6pl_drops },
+ { "variable_2000p", &variable_2000p_drops },
+ { "variable_x80_6pl", &variable_x80_6pl_drops },
+};
+
+const escp2_drop_list_t *
+stpi_escp2_get_drop_list_named(const char *n)
+{
+ int i;
+ if (n)
+ for (i = 0; i < sizeof(the_drop_lists) / sizeof(drop_list_t); i++)
+ {
+ if (strcmp(n, the_drop_lists[i].name) == 0)
+ return the_drop_lists[i].drop_list;
+ }
+ return NULL;
+}