diff options
Diffstat (limited to 'src/main/escp2-inks.c')
-rw-r--r-- | src/main/escp2-inks.c | 160 |
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; +} |