summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'devices/gdevclj.c')
-rw-r--r--devices/gdevclj.c65
1 files changed, 32 insertions, 33 deletions
diff --git a/devices/gdevclj.c b/devices/gdevclj.c
index 5edac41e..4d4d9c71 100644
--- a/devices/gdevclj.c
+++ b/devices/gdevclj.c
@@ -515,38 +515,32 @@ xit:
}
/* CLJ device methods */
-#define CLJ_PROCS(get_params, put_params)\
- gdev_prn_open, /* open_device */\
- clj_get_initial_matrix, /* get_initial matrix */\
- NULL, /* sync_output */\
-/* Since the print_page doesn't alter the device, this device can print in the background */\
- gdev_prn_bg_output_page, /* output_page */\
- gdev_prn_close, /* close_device */\
- gdev_pcl_3bit_map_rgb_color, /* map_rgb_color */\
- gdev_pcl_3bit_map_color_rgb, /* map_color_rgb */\
- NULL, /* fill_rectangle */\
- NULL, /* tile_rectangle */\
- NULL, /* copy_mono */\
- NULL, /* copy_color */\
- NULL, /* obsolete draw_line */\
- NULL, /* get_bits */\
- get_params, /* get_params */\
- put_params, /* put_params */\
- NULL, /* map_cmyk_color */\
- NULL, /* get_xfont_procs */\
- NULL, /* get_xfont_device */\
- NULL, /* map_rgb_alpha_color */\
- gx_page_device_get_page_device /* get_page_device */
-
-static gx_device_procs cljet5_procs = {
- CLJ_PROCS(clj_get_params, clj_put_params)
-};
+static void
+clj_initialize_device_procs(gx_device *dev)
+{
+ gdev_prn_initialize_device_procs_bg(dev);
+
+ set_dev_proc(dev, get_initial_matrix, clj_get_initial_matrix);
+ set_dev_proc(dev, map_rgb_color, gdev_pcl_3bit_map_rgb_color);
+ set_dev_proc(dev, map_color_rgb, gdev_pcl_3bit_map_color_rgb);
+ set_dev_proc(dev, encode_color, gdev_pcl_3bit_map_rgb_color);
+ set_dev_proc(dev, decode_color, gdev_pcl_3bit_map_color_rgb);
+}
+
+static void
+cljet5_initialize_device_procs(gx_device *dev)
+{
+ clj_initialize_device_procs(dev);
+
+ set_dev_proc(dev, get_params, clj_get_params);
+ set_dev_proc(dev, put_params, clj_put_params);
+}
/* CLJ device structure */
-#define CLJ_DEVICE_BODY(procs, dname, rotated)\
+#define CLJ_DEVICE_BODY(init, dname, rotated)\
prn_device_body(\
gx_device_clj,\
- procs, /* procedures */\
+ init, /* initialize */\
dname, /* device name */\
110, /* width - will be overridden subsequently */\
85, /* height - will be overridden subsequently */\
@@ -562,7 +556,7 @@ static gx_device_procs cljet5_procs = {
rotated /* rotated - may be overridden subsequently */
gx_device_clj gs_cljet5_device = {
- CLJ_DEVICE_BODY(cljet5_procs, "cljet5", 0 /*false*/)
+ CLJ_DEVICE_BODY(cljet5_initialize_device_procs, "cljet5", 0 /*false*/)
};
/* ---------------- Driver with page rotation ---------------- */
@@ -677,11 +671,16 @@ clj_pr_put_params(
}
/* CLJ device methods -- se above for CLJ_PROCS */
-static gx_device_procs cljet5pr_procs = {
- CLJ_PROCS(clj_pr_get_params, clj_pr_put_params)
-};
+static void
+cljet5pr_initialize_device_procs(gx_device *dev)
+{
+ clj_initialize_device_procs(dev);
+
+ set_dev_proc(dev, get_params, clj_pr_get_params);
+ set_dev_proc(dev, put_params, clj_pr_put_params);
+}
/* CLJ device structure -- see above for CLJ_DEVICE_BODY */
gx_device_clj gs_cljet5pr_device = {
- CLJ_DEVICE_BODY(cljet5pr_procs, "cljet5pr", 1 /*true*/)
+ CLJ_DEVICE_BODY(cljet5pr_initialize_device_procs, "cljet5pr", 1 /*true*/)
};