summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gdevbjc_.c')
-rw-r--r--contrib/gdevbjc_.c79
1 files changed, 59 insertions, 20 deletions
diff --git a/contrib/gdevbjc_.c b/contrib/gdevbjc_.c
index a661ba0d..a880aaa1 100644
--- a/contrib/gdevbjc_.c
+++ b/contrib/gdevbjc_.c
@@ -211,13 +211,22 @@ static media_t media_codes[] = {
/* ------------------------- 1 bit Monochrome ---------------------------- */
/***************************************************************************/
-static const gx_device_procs bjcmono_procs =
-prn_color_params_procs(gdev_prn_open, gdev_prn_output_page, gdev_prn_close,
- NULL, NULL,
- gdev_bjc_get_params, gdev_bjc_put_params);
+static void
+bjcmono_initialize_device_procs(gx_device *dev)
+{
+ gdev_prn_initialize_device_procs(dev);
+
+ set_dev_proc(dev, get_params, gdev_bjc_get_params);
+ set_dev_proc(dev, put_params, gdev_bjc_put_params);
+ set_dev_proc(dev, map_color_rgb, gx_default_w_b_map_color_rgb);
+ set_dev_proc(dev, map_rgb_color, gx_default_gray_fast_encode);
+ set_dev_proc(dev, encode_color, gx_default_gray_fast_encode);
+ set_dev_proc(dev, decode_color, gx_default_w_b_map_color_rgb);
+}
+
const gx_device_bjc_printer gs_bjcmono_device =
-bjc_device(bjcmono_procs, "bjcmono",
+bjc_device(bjcmono_initialize_device_procs, "bjcmono",
DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS,
X_DPI, Y_DPI,
(float)(3.4 / 25.4), (float)(7.0 / 25.4),
@@ -234,13 +243,23 @@ bjc_device(bjcmono_procs, "bjcmono",
/* -------------------------- 8 bit Grayscale ---------------------------- */
/***************************************************************************/
-static const gx_device_procs bjcgray_procs =
-prn_color_params_procs(gdev_prn_open, gdev_prn_output_page, gdev_prn_close,
- gx_default_gray_map_rgb_color, gx_default_gray_map_color_rgb,
- gdev_bjc_get_params, gdev_bjc_put_params);
+static void
+bjcgray_initialize_device_procs(gx_device *dev)
+{
+ gdev_prn_initialize_device_procs_gray(dev);
+
+ set_dev_proc(dev, get_params, gdev_bjc_get_params);
+ set_dev_proc(dev, put_params, gdev_bjc_put_params);
+
+ /* The prn macros used in previous versions of the code leave
+ * encode_color and decode_color set to NULL (which are then rewritten
+ * by the system to the default. For compatibility we do the same. */
+ set_dev_proc(dev, encode_color, NULL);
+ set_dev_proc(dev, decode_color, NULL);
+}
const gx_device_bjc_printer gs_bjcgray_device =
-bjc_device(bjcgray_procs, "bjcgray",
+bjc_device(bjcgray_initialize_device_procs, "bjcgray",
DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS,
X_DPI, Y_DPI,
(float)(3.4 / 25.4), (float)(7.0 / 25.4),
@@ -257,13 +276,23 @@ bjc_device(bjcgray_procs, "bjcgray",
/* --------------------------- 3 bit CMYK Color -------------------------- */
/***************************************************************************/
-static const gx_device_procs bjc_cmykcolor_procs =
-bjc_cmyk_param_procs(gdev_prn_open, gdev_prn_output_page, gdev_prn_close,
- cmyk_1bit_map_color_rgb, cmyk_1bit_map_cmyk_color,
- gdev_bjc_get_params, gdev_bjc_put_params);
+static void
+bjccmyk_initialize_device_procs(gx_device *dev)
+{
+ gdev_prn_initialize_device_procs_cmyk1(dev);
+
+ set_dev_proc(dev, get_params, gdev_bjc_get_params);
+ set_dev_proc(dev, put_params, gdev_bjc_put_params);
+
+ /* The prn macros used in previous versions of the code leave
+ * encode_color and decode_color set to NULL (which are then rewritten
+ * by the system to the default. For compatibility we do the same. */
+ set_dev_proc(dev, encode_color, NULL);
+ set_dev_proc(dev, decode_color, NULL);
+}
const gx_device_bjc_printer gs_bjccmyk_device =
-bjc_device(bjc_cmykcolor_procs, "bjccmyk",
+bjc_device(bjccmyk_initialize_device_procs, "bjccmyk",
DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS,
X_DPI, Y_DPI,
(float)(3.4 / 25.4), (float)(7.0 / 25.4),
@@ -280,13 +309,23 @@ bjc_device(bjc_cmykcolor_procs, "bjccmyk",
/* --------------------------- 24 bit TrueColor -------------------------- */
/***************************************************************************/
-static const gx_device_procs bjc_truecolor_procs =
-bjc_cmyk_param_procs(gdev_prn_open, gdev_prn_output_page, gdev_prn_close,
- cmyk_8bit_map_color_rgb, cmyk_8bit_map_cmyk_color,
- gdev_bjc_get_params, gdev_bjc_put_params);
+static void
+bjc_truecolor_initialize_device_procs(gx_device *dev)
+{
+ gdev_prn_initialize_device_procs_cmyk8(dev);
+
+ set_dev_proc(dev, get_params, gdev_bjc_get_params);
+ set_dev_proc(dev, put_params, gdev_bjc_put_params);
+
+ /* The prn macros used in previous versions of the code leave
+ * encode_color and decode_color set to NULL (which are then rewritten
+ * by the system to the default. For compatibility we do the same. */
+ set_dev_proc(dev, encode_color, NULL);
+ set_dev_proc(dev, decode_color, NULL);
+}
const gx_device_bjc_printer gs_bjccolor_device =
-bjc_device(bjc_truecolor_procs, "bjccolor",
+bjc_device(bjc_truecolor_initialize_device_procs, "bjccolor",
DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS,
X_DPI, Y_DPI,
(float)(3.4 / 25.4), (float)(7.0 / 25.4),