summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorRobin Watts <Robin.Watts@artifex.com>2021-03-22 18:16:20 +0000
committerRobin Watts <Robin.Watts@artifex.com>2021-04-20 15:03:02 +0100
commit1d9b79910d988d074f262c65d3559c5045a5343f (patch)
tree75c820d2965985d7ff74e6760d5c1a32b4d6a14d /contrib
parent6f332dd0baee0135ebff0bf25c56e9adff0f944a (diff)
downloadghostpdl-1d9b79910d988d074f262c65d3559c5045a5343f.tar.gz
Further rationalisation of device init.
Move the initialize procedure out of the device procs table, and into a bare function pointer at the start of the device proc. Devices just initialise this, and the rest should fall into place. This means changes to the device instantion macros (and all the uses thereof), but makes the code nicer overall. In particular, this removes the vestigial 'static_procs' structure.
Diffstat (limited to 'contrib')
-rw-r--r--contrib/eplaser/gdevescv.c160
-rw-r--r--contrib/gdevadmp.c8
-rw-r--r--contrib/gdevbjc_.c42
-rw-r--r--contrib/gdevbjc_.h8
-rw-r--r--contrib/gdevcd8.c51
-rw-r--r--contrib/gdevdj9.c11
-rw-r--r--contrib/gdevgdi.c7
-rw-r--r--contrib/gdevhl12.c5
-rw-r--r--contrib/gdevln03.c17
-rw-r--r--contrib/gdevlx32.c11
-rw-r--r--contrib/gdevlx7.c11
-rw-r--r--contrib/gdevmd2k.c11
-rw-r--r--contrib/gdevop4w.c5
-rw-r--r--contrib/gdevxes.c5
-rw-r--r--contrib/japanese/gdev10v.c73
-rw-r--r--contrib/japanese/gdevalps.c9
-rw-r--r--contrib/japanese/gdevespg.c10
-rw-r--r--contrib/japanese/gdevfmlbp.c28
-rw-r--r--contrib/japanese/gdevfmpr.c2
-rw-r--r--contrib/japanese/gdevj100.c2
-rw-r--r--contrib/japanese/gdevlbp3.c4
-rw-r--r--contrib/japanese/gdevmjc.c20
-rw-r--r--contrib/japanese/gdevml6.c5
-rw-r--r--contrib/japanese/gdevnpdl.c5
-rw-r--r--contrib/japanese/gdevp201.c8
-rw-r--r--contrib/japanese/gdevrpdl.c5
-rw-r--r--contrib/lips4/gdevl4r.c20
-rw-r--r--contrib/lips4/gdevl4v.c4
-rw-r--r--contrib/opvp/gdevopvp.c22
-rw-r--r--contrib/pcl3/src/gdevpcl3.c6
30 files changed, 262 insertions, 313 deletions
diff --git a/contrib/eplaser/gdevescv.c b/contrib/eplaser/gdevescv.c
index 3043130e8..5dd90f95a 100644
--- a/contrib/eplaser/gdevescv.c
+++ b/contrib/eplaser/gdevescv.c
@@ -76,18 +76,18 @@ gs_public_st_suffix_add0_final(st_device_escv, gx_device_escv,
** 原点の値を 0 とした場合,計算誤差?の問題から描画エリアが狂うため
** 原点を 0.001 としておく。
*/
-#define escv_device_full_body(dtype, pprocs, dname, stype, w, h, xdpi, ydpi, \
+#define escv_device_full_body(dtype, init, dname, stype, w, h, xdpi, ydpi, \
ncomp, depth, mg, mc, dg, dc, lm, bm, rm, tm)\
- std_device_part1_(dtype, pprocs, dname, stype, open_init_closed),\
+ std_device_part1_(dtype, init, dname, stype, open_init_closed),\
dci_values(ncomp, depth, mg, mc, dg, dc),\
std_device_part2_(w, h, xdpi, ydpi),\
offset_margin_values(0.001, 0.001, lm, 0, 0, tm),\
std_device_part3_()
/* for ESC/Page (Monochrome) */
-#define esmv_device_full_body(dtype, pprocs, dname, stype, w, h, xdpi, ydpi, \
+#define esmv_device_full_body(dtype, init, dname, stype, w, h, xdpi, ydpi, \
ncomp, depth, mg, mc, dg, dc, lm, bm, rm, tm)\
- std_device_part1_(dtype, pprocs, dname, stype, open_init_closed),\
+ std_device_part1_(dtype, init, dname, stype, open_init_closed),\
dci_values(ncomp, depth, mg, mc, dg, dc),\
std_device_part2_(w, h, xdpi, ydpi),\
offset_margin_values(-lm * xdpi / 72.0, -tm * ydpi / 72.0, 5.0 / (MMETER_PER_INCH / POINT),\
@@ -95,28 +95,36 @@ gs_public_st_suffix_add0_final(st_device_escv, gx_device_escv,
std_device_part3_()
/* for ESC/Page-Color */
-#define escv_device_body(name) \
- escv_device_full_body(gx_device_escv, 0, name, \
- &st_device_escv,\
-/* width & height */ ESCPAGE_DEFAULT_WIDTH, ESCPAGE_DEFAULT_HEIGHT,\
-/* default resolution */ X_DPI, Y_DPI,\
-/* color info */ 3, 24, 255, 255, 256, 256,\
- ESCPAGE_LEFT_MARGIN_DEFAULT,\
- ESCPAGE_BOTTOM_MARGIN_DEFAULT,\
- ESCPAGE_RIGHT_MARGIN_DEFAULT,\
- ESCPAGE_TOP_MARGIN_DEFAULT)
+#define escv_device_body(name) \
+{\
+ escv_device_full_body(gx_device_escv, escv_initialize, name, \
+ &st_device_escv,\
+/* width & height */ ESCPAGE_DEFAULT_WIDTH, ESCPAGE_DEFAULT_HEIGHT,\
+/* default resolution */X_DPI, Y_DPI,\
+/* color info */ 3, 24, 255, 255, 256, 256,\
+ ESCPAGE_LEFT_MARGIN_DEFAULT,\
+ ESCPAGE_BOTTOM_MARGIN_DEFAULT,\
+ ESCPAGE_RIGHT_MARGIN_DEFAULT,\
+ ESCPAGE_TOP_MARGIN_DEFAULT),\
+ { 0 },\
+ escv_init_code\
+}
/* for ESC/Page (Monochrome) */
-#define esmv_device_body(name) \
- esmv_device_full_body(gx_device_escv, 0, name, \
- &st_device_escv,\
-/* width & height */ ESCPAGE_DEFAULT_WIDTH, ESCPAGE_DEFAULT_HEIGHT,\
-/* default resolution */ X_DPI, Y_DPI,\
-/* color info */ 1, 8, 255, 255, 256, 256,\
- ESCPAGE_LEFT_MARGIN_DEFAULT,\
- ESCPAGE_BOTTOM_MARGIN_DEFAULT,\
- ESCPAGE_RIGHT_MARGIN_DEFAULT,\
- ESCPAGE_TOP_MARGIN_DEFAULT)
+#define esmv_device_body(name) \
+{\
+ esmv_device_full_body(gx_device_escv, esmv_initialize, name, \
+ &st_device_escv,\
+/* width & height */ ESCPAGE_DEFAULT_WIDTH, ESCPAGE_DEFAULT_HEIGHT,\
+/* default resolution */X_DPI, Y_DPI,\
+/* color info */ 1, 8, 255, 255, 256, 256,\
+ ESCPAGE_LEFT_MARGIN_DEFAULT,\
+ ESCPAGE_BOTTOM_MARGIN_DEFAULT,\
+ ESCPAGE_RIGHT_MARGIN_DEFAULT,\
+ ESCPAGE_TOP_MARGIN_DEFAULT),\
+ { 0 },\
+ esmv_init_code\
+}
static int
esc_initialize(gx_device *dev)
@@ -232,60 +240,60 @@ esmv_initialize(gx_device *dev)
escv_init_code_common
/* for ESC/Page (Monochrome) */
-gx_device_escv far_data gs_epl2050_device ={esmv_device_body("epl2050"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_epl2050p_device={esmv_device_body("epl2050p"),devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_epl2120_device ={esmv_device_body("epl2120"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_epl2500_device ={esmv_device_body("epl2500"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_epl2750_device ={esmv_device_body("epl2750"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_epl5800_device ={esmv_device_body("epl5800"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_epl5900_device ={esmv_device_body("epl5900"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_epl6100_device ={esmv_device_body("epl6100"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_epl6200_device ={esmv_device_body("epl6200"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp1800_device ={esmv_device_body("lp1800"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp1900_device ={esmv_device_body("lp1900"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp2200_device ={esmv_device_body("lp2200"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp2400_device ={esmv_device_body("lp2400"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp2500_device ={esmv_device_body("lp2500"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp7500_device ={esmv_device_body("lp7500"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp7700_device ={esmv_device_body("lp7700"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp7900_device ={esmv_device_body("lp7900"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp8100_device ={esmv_device_body("lp8100"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp8300f_device ={esmv_device_body("lp8300f"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp8400f_device ={esmv_device_body("lp8400f"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp8600_device ={esmv_device_body("lp8600"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp8600f_device ={esmv_device_body("lp8600f"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp8700_device ={esmv_device_body("lp8700"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp8900_device ={esmv_device_body("lp8900"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp9000b_device ={esmv_device_body("lp9000b"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp9100_device ={esmv_device_body("lp9100"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp9200b_device ={esmv_device_body("lp9200b"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp9300_device ={esmv_device_body("lp9300"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp9400_device ={esmv_device_body("lp9400"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp9600_device ={esmv_device_body("lp9600"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lp9600s_device ={esmv_device_body("lp9600s"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_lps4500_device ={esmv_device_body("lps4500"), devprocs_initialize(esmv_initialize), esmv_init_code};
-gx_device_escv far_data gs_eplmono_device ={esmv_device_body(ESCPAGE_DEVICENAME_MONO), devprocs_initialize(esmv_initialize), esmv_init_code};
+gx_device_escv far_data gs_epl2050_device = esmv_device_body("epl2050");
+gx_device_escv far_data gs_epl2050p_device= esmv_device_body("epl2050p");
+gx_device_escv far_data gs_epl2120_device = esmv_device_body("epl2120");
+gx_device_escv far_data gs_epl2500_device = esmv_device_body("epl2500");
+gx_device_escv far_data gs_epl2750_device = esmv_device_body("epl2750");
+gx_device_escv far_data gs_epl5800_device = esmv_device_body("epl5800");
+gx_device_escv far_data gs_epl5900_device = esmv_device_body("epl5900");
+gx_device_escv far_data gs_epl6100_device = esmv_device_body("epl6100");
+gx_device_escv far_data gs_epl6200_device = esmv_device_body("epl6200");
+gx_device_escv far_data gs_lp1800_device = esmv_device_body("lp1800");
+gx_device_escv far_data gs_lp1900_device = esmv_device_body("lp1900");
+gx_device_escv far_data gs_lp2200_device = esmv_device_body("lp2200");
+gx_device_escv far_data gs_lp2400_device = esmv_device_body("lp2400");
+gx_device_escv far_data gs_lp2500_device = esmv_device_body("lp2500");
+gx_device_escv far_data gs_lp7500_device = esmv_device_body("lp7500");
+gx_device_escv far_data gs_lp7700_device = esmv_device_body("lp7700");
+gx_device_escv far_data gs_lp7900_device = esmv_device_body("lp7900");
+gx_device_escv far_data gs_lp8100_device = esmv_device_body("lp8100");
+gx_device_escv far_data gs_lp8300f_device = esmv_device_body("lp8300f");
+gx_device_escv far_data gs_lp8400f_device = esmv_device_body("lp8400f");
+gx_device_escv far_data gs_lp8600_device = esmv_device_body("lp8600");
+gx_device_escv far_data gs_lp8600f_device = esmv_device_body("lp8600f");
+gx_device_escv far_data gs_lp8700_device = esmv_device_body("lp8700");
+gx_device_escv far_data gs_lp8900_device = esmv_device_body("lp8900");
+gx_device_escv far_data gs_lp9000b_device = esmv_device_body("lp9000b");
+gx_device_escv far_data gs_lp9100_device = esmv_device_body("lp9100");
+gx_device_escv far_data gs_lp9200b_device = esmv_device_body("lp9200b");
+gx_device_escv far_data gs_lp9300_device = esmv_device_body("lp9300");
+gx_device_escv far_data gs_lp9400_device = esmv_device_body("lp9400");
+gx_device_escv far_data gs_lp9600_device = esmv_device_body("lp9600");
+gx_device_escv far_data gs_lp9600s_device = esmv_device_body("lp9600s");
+gx_device_escv far_data gs_lps4500_device = esmv_device_body("lps4500");
+gx_device_escv far_data gs_eplmono_device = esmv_device_body(ESCPAGE_DEVICENAME_MONO);
/* for ESC/Page-Color */
-gx_device_escv far_data gs_alc1900_device ={escv_device_body("alc1900"), devprocs_initialize(escv_initialize), escv_init_code};
-gx_device_escv far_data gs_alc2000_device ={escv_device_body("alc2000"), devprocs_initialize(escv_initialize), escv_init_code};
-gx_device_escv far_data gs_alc4000_device ={escv_device_body("alc4000"), devprocs_initialize(escv_initialize), escv_init_code};
-gx_device_escv far_data gs_alc4100_device ={escv_device_body("alc4100"), devprocs_initialize(escv_initialize), escv_init_code};
-gx_device_escv far_data gs_alc8500_device ={escv_device_body("alc8500"), devprocs_initialize(escv_initialize), escv_init_code};
-gx_device_escv far_data gs_alc8600_device ={escv_device_body("alc8600"), devprocs_initialize(escv_initialize), escv_init_code};
-gx_device_escv far_data gs_alc9100_device ={escv_device_body("alc9100"), devprocs_initialize(escv_initialize), escv_init_code};
-gx_device_escv far_data gs_lp3000c_device ={escv_device_body("lp3000c"), devprocs_initialize(escv_initialize), escv_init_code};
-gx_device_escv far_data gs_lp8000c_device ={escv_device_body("lp8000c"), devprocs_initialize(escv_initialize), escv_init_code};
-gx_device_escv far_data gs_lp8200c_device ={escv_device_body("lp8200c"), devprocs_initialize(escv_initialize), escv_init_code};
-gx_device_escv far_data gs_lp8300c_device ={escv_device_body("lp8300c"), devprocs_initialize(escv_initialize), escv_init_code};
-gx_device_escv far_data gs_lp8500c_device ={escv_device_body("lp8500c"), devprocs_initialize(escv_initialize), escv_init_code};
-gx_device_escv far_data gs_lp8800c_device ={escv_device_body("lp8800c"), devprocs_initialize(escv_initialize), escv_init_code};
-gx_device_escv far_data gs_lp9000c_device ={escv_device_body("lp9000c"), devprocs_initialize(escv_initialize), escv_init_code};
-gx_device_escv far_data gs_lp9200c_device ={escv_device_body("lp9200c"), devprocs_initialize(escv_initialize), escv_init_code};
-gx_device_escv far_data gs_lp9500c_device ={escv_device_body("lp9500c"), devprocs_initialize(escv_initialize), escv_init_code};
-gx_device_escv far_data gs_lp9800c_device ={escv_device_body("lp9800c"), devprocs_initialize(escv_initialize), escv_init_code};
-gx_device_escv far_data gs_lps6500_device ={escv_device_body("lps6500"), devprocs_initialize(escv_initialize), escv_init_code};
-gx_device_escv far_data gs_eplcolor_device ={escv_device_body(ESCPAGE_DEVICENAME_COLOR), devprocs_initialize(escv_initialize), escv_init_code};
+gx_device_escv far_data gs_alc1900_device = escv_device_body("alc1900");
+gx_device_escv far_data gs_alc2000_device = escv_device_body("alc2000");
+gx_device_escv far_data gs_alc4000_device = escv_device_body("alc4000");
+gx_device_escv far_data gs_alc4100_device = escv_device_body("alc4100");
+gx_device_escv far_data gs_alc8500_device = escv_device_body("alc8500");
+gx_device_escv far_data gs_alc8600_device = escv_device_body("alc8600");
+gx_device_escv far_data gs_alc9100_device = escv_device_body("alc9100");
+gx_device_escv far_data gs_lp3000c_device = escv_device_body("lp3000c");
+gx_device_escv far_data gs_lp8000c_device = escv_device_body("lp8000c");
+gx_device_escv far_data gs_lp8200c_device = escv_device_body("lp8200c");
+gx_device_escv far_data gs_lp8300c_device = escv_device_body("lp8300c");
+gx_device_escv far_data gs_lp8500c_device = escv_device_body("lp8500c");
+gx_device_escv far_data gs_lp8800c_device = escv_device_body("lp8800c");
+gx_device_escv far_data gs_lp9000c_device = escv_device_body("lp9000c");
+gx_device_escv far_data gs_lp9200c_device = escv_device_body("lp9200c");
+gx_device_escv far_data gs_lp9500c_device = escv_device_body("lp9500c");
+gx_device_escv far_data gs_lp9800c_device = escv_device_body("lp9800c");
+gx_device_escv far_data gs_lps6500_device = escv_device_body("lps6500");
+gx_device_escv far_data gs_eplcolor_device= escv_device_body(ESCPAGE_DEVICENAME_COLOR);
/* Vector device implementation */
/* Page management */
diff --git a/contrib/gdevadmp.c b/contrib/gdevadmp.c
index 6648dffeb..840233baf 100644
--- a/contrib/gdevadmp.c
+++ b/contrib/gdevadmp.c
@@ -119,7 +119,7 @@ static dev_proc_print_page(dmp_print_page);
/* Standard DMP device */
const gx_device_printer far_data gs_appledmp_device =
-prn_device(prn_bg_procs, "appledmp", /* The print_page proc is compatible with allowing bg printing */
+prn_device(gdev_prn_initialize_mono_bg, "appledmp", /* The print_page proc is compatible with allowing bg printing */
85, /* width_10ths, 8.5" */
110, /* height_10ths, 11" */
120, 72, /* X_DPI, Y_DPI */
@@ -128,7 +128,7 @@ prn_device(prn_bg_procs, "appledmp", /* The print_page proc is compatible with a
/* lowrez Imagewriter device */
const gx_device_printer far_data gs_iwlo_device =
-prn_device(prn_bg_procs, "iwlo", /* The print_page proc is compatible with allowing bg printing */
+prn_device(gdev_prn_initialize_mono_bg, "iwlo", /* The print_page proc is compatible with allowing bg printing */
85, /* width_10ths, 8.5" */
110, /* height_10ths, 11" */
160, 72, /* X_DPI, Y_DPI */
@@ -137,7 +137,7 @@ prn_device(prn_bg_procs, "iwlo", /* The print_page proc is compatible with allow
/* hirez Imagewriter device */
const gx_device_printer far_data gs_iwhi_device =
-prn_device(prn_bg_procs, "iwhi", /* The print_page proc is compatible with allowing bg printing */
+prn_device(gdev_prn_initialize_mono_bg, "iwhi", /* The print_page proc is compatible with allowing bg printing */
85, /* width_10ths, 8.5" */
110, /* height_10ths, 11" */
160, 144, /* X_DPI, Y_DPI */
@@ -146,7 +146,7 @@ prn_device(prn_bg_procs, "iwhi", /* The print_page proc is compatible with allow
/* LQ hirez Imagewriter device */
const gx_device_printer far_data gs_iwlq_device =
-prn_device(prn_bg_procs, "iwlq", /* The print_page proc is compatible with allowing bg printing */
+prn_device(gdev_prn_initialize_mono_bg, "iwlq", /* The print_page proc is compatible with allowing bg printing */
85, /* width_10ths, 8.5" */
110, /* height_10ths, 11" */
320, 216,
diff --git a/contrib/gdevbjc_.c b/contrib/gdevbjc_.c
index e0ab67ce0..ae02d703a 100644
--- a/contrib/gdevbjc_.c
+++ b/contrib/gdevbjc_.c
@@ -221,16 +221,17 @@ bjcmono_initialize(gx_device *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, NULL);
+ set_dev_proc(dev, map_rgb_color, NULL);
+ set_dev_proc(dev, encode_color, NULL);
+ set_dev_proc(dev, decode_color, NULL);
return 0;
}
-static const gx_device_procs bjcmono_procs =
-devprocs_initialize(bjcmono_initialize);
-
const gx_device_bjc_printer gs_bjcmono_device =
-bjc_device(bjcmono_procs, "bjcmono",
+bjc_device(bjcmono_initialize, "bjcmono",
DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS,
X_DPI, Y_DPI,
(float)(3.4 / 25.4), (float)(7.0 / 25.4),
@@ -258,14 +259,17 @@ bjcgray_initialize(gx_device *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);
+
return 0;
}
-static const gx_device_procs bjcgray_procs =
-devprocs_initialize(bjcgray_initialize);
-
const gx_device_bjc_printer gs_bjcgray_device =
-bjc_device(bjcgray_procs, "bjcgray",
+bjc_device(bjcgray_initialize, "bjcgray",
DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS,
X_DPI, Y_DPI,
(float)(3.4 / 25.4), (float)(7.0 / 25.4),
@@ -293,14 +297,17 @@ bjccmyk_initialize(gx_device *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);
+
return 0;
}
-static const gx_device_procs bjc_cmykcolor_procs =
-devprocs_initialize(bjccmyk_initialize);
-
const gx_device_bjc_printer gs_bjccmyk_device =
-bjc_device(bjc_cmykcolor_procs, "bjccmyk",
+bjc_device(bjccmyk_initialize, "bjccmyk",
DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS,
X_DPI, Y_DPI,
(float)(3.4 / 25.4), (float)(7.0 / 25.4),
@@ -328,14 +335,17 @@ bjc_truecolor_initialize(gx_device *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);
+
return 0;
}
-static const gx_device_procs bjc_truecolor_procs =
-devprocs_initialize(bjc_truecolor_initialize);
-
const gx_device_bjc_printer gs_bjccolor_device =
-bjc_device(bjc_truecolor_procs, "bjccolor",
+bjc_device(bjc_truecolor_initialize, "bjccolor",
DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS,
X_DPI, Y_DPI,
(float)(3.4 / 25.4), (float)(7.0 / 25.4),
diff --git a/contrib/gdevbjc_.h b/contrib/gdevbjc_.h
index b40c6fc4f..fb6cfa5ff 100644
--- a/contrib/gdevbjc_.h
+++ b/contrib/gdevbjc_.h
@@ -168,14 +168,6 @@ typedef struct gx_device_bjc_printer_s gx_device_bjc_printer;
bjc_device_margins(procs, dname, w10, h10, xdpi, ydpi,\
lm, tm, lm, bm, rm, tm, ncomp, depth, mg, mc, dg, dc, print_page, def_ink)
-#define bjc_cmyk_param_procs(v_prn_open, v_prn_output_page, v_prn_close, \
- p_map_color_rgb, p_map_cmyk_color, \
- v_prn_get_params, v_prn_put_params)\
- {v_prn_open, NULL, NULL, v_prn_output_page, v_prn_close,\
- NULL, p_map_color_rgb, NULL, NULL, NULL, NULL, NULL, NULL,\
- v_prn_get_params, v_prn_put_params,\
- p_map_cmyk_color, NULL, NULL, NULL, gx_page_device_get_page_device}
-
/* There are the definitions of commands for the Canon BJC printers. */
#define BJC_BJL_CLEANING 0x00 /* "@Cleaning=1\n" */
diff --git a/contrib/gdevcd8.c b/contrib/gdevcd8.c
index f09123027..6b124adfc 100644
--- a/contrib/gdevcd8.c
+++ b/contrib/gdevcd8.c
@@ -783,6 +783,12 @@ cdj670_initialize(gx_device *dev)
set_dev_proc(dev, put_params, cdj850_put_params);
set_dev_proc(dev, map_cmyk_color, gdev_cmyk_map_cmyk_color);
+ /* The static init used in previous versions of the code leaves
+ * 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);
+
return 0;
}
@@ -801,6 +807,12 @@ cdj1600_initialize(gx_device *dev)
set_dev_proc(dev, put_params, cdj850_put_params);
set_dev_proc(dev, map_cmyk_color, NULL);
+ /* The static init 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);
+
return 0;
}
@@ -819,58 +831,45 @@ chp2200_initialize(gx_device *dev)
set_dev_proc(dev, put_params, cdj850_put_params);
set_dev_proc(dev, map_cmyk_color, NULL);
+ /* The static init 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);
+
return 0;
}
-static const gx_device_procs cdj670_procs =
- devprocs_initialize(cdj670_initialize);
-
-static const gx_device_procs cdj850_procs =
- devprocs_initialize(cdj670_initialize);
-
-static const gx_device_procs cdj880_procs =
- devprocs_initialize(cdj670_initialize);
-
-static const gx_device_procs cdj890_procs =
- devprocs_initialize(cdj670_initialize);
-
-static const gx_device_procs cdj1600_procs =
- devprocs_initialize(cdj1600_initialize);
-
-/* HP2200 and DNJ500 is a RGB printer */
-static const gx_device_procs chp2200_procs =
- devprocs_initialize(chp2200_initialize);
-
const gx_device_cdj850 gs_cdj670_device =
-cdj_850_device(cdj670_procs, "cdj670", 600, 600, 32, cdj850_print_page, 0,
+cdj_850_device(cdj670_initialize, "cdj670", 600, 600, 32, cdj850_print_page, 0,
PRESENTATION, PLAIN_PAPER, 2, DJ670C, 9,
1.0, 0.0, 0.0, 0.0, 0.0, 1.0,
cdj850_start_raster_mode, cdj850_print_non_blank_lines,
cdj850_terminate_page);
const gx_device_cdj850 gs_cdj850_device =
-cdj_850_device(cdj850_procs, "cdj850", 600, 600, 32, cdj850_print_page, 0,
+cdj_850_device(cdj670_initialize, "cdj850", 600, 600, 32, cdj850_print_page, 0,
PRESENTATION, PLAIN_PAPER, 4, DJ850C, 9,
1.0, 0.0, 0.0, 0.0, 0.0, 1.0,
cdj850_start_raster_mode, cdj850_print_non_blank_lines,
cdj850_terminate_page);
const gx_device_cdj850 gs_cdj880_device =
-cdj_850_device(cdj880_procs, "cdj880", 600, 600, 32, cdj850_print_page, 0,
+cdj_850_device(cdj670_initialize, "cdj880", 600, 600, 32, cdj850_print_page, 0,
PRESENTATION, PLAIN_PAPER, 4, DJ880C, 2,
1.0, 0.0, 0.0, 0.0, 0.0, 1.0,
cdj880_start_raster_mode, cdj880_print_non_blank_lines,
cdj880_terminate_page);
const gx_device_cdj850 gs_cdj890_device =
-cdj_850_device(cdj890_procs, "cdj890", 600, 600, 32, cdj850_print_page, 0,
+cdj_850_device(cdj670_initialize, "cdj890", 600, 600, 32, cdj850_print_page, 0,
PRESENTATION, PLAIN_PAPER, 4, DJ890C, 9,
1.0, 0.0, 0.0, 0.0, 0.0, 1.0,
cdj850_start_raster_mode, cdj850_print_non_blank_lines,
cdj850_terminate_page);
const gx_device_cdj850 gs_cdj1600_device =
-cdj_1600_device(cdj1600_procs, "cdj1600", 300, 300, 24, cdj850_print_page, 0,
+cdj_1600_device(cdj1600_initialize, "cdj1600", 300, 300, 24, cdj850_print_page, 0,
PRESENTATION, PLAIN_PAPER, 2, DJ1600C, 3,
1.0, 0.0, 0.0, 0.0, 0.0, 1.0,
cdj1600_start_raster_mode, cdj1600_print_non_blank_lines,
@@ -878,7 +877,7 @@ cdj_1600_device(cdj1600_procs, "cdj1600", 300, 300, 24, cdj850_print_page, 0,
/* HP2200 does not need color matching and halftoning parameters */
const gx_device_cdj850 gs_chp2200_device =
-chp_2200_device(chp2200_procs, "chp2200", 300, 300, 24, chp2200_print_page, 0,
+chp_2200_device(chp2200_initialize, "chp2200", 300, 300, 24, chp2200_print_page, 0,
NORMAL, PLAIN_PAPER, 0 /*unused*/, HP2200C, 10,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, /*all unused*/
chp2200_start_raster_mode, NULL /*unused*/,
@@ -886,7 +885,7 @@ chp_2200_device(chp2200_procs, "chp2200", 300, 300, 24, chp2200_print_page, 0,
/* DNJ500 does not need color matching and halftoning parameters */
const gx_device_cdj850 gs_cdnj500_device =
-chp_2200_device(chp2200_procs, "cdnj500", 300, 300, 24, cdnj500_print_page, 0,
+chp_2200_device(chp2200_initialize, "cdnj500", 300, 300, 24, cdnj500_print_page, 0,
NORMAL, PLAIN_PAPER, 0 /*unused*/, DNJ500C, 10,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, /*all unused*/
cdnj500_start_raster_mode, NULL /*unused*/,
diff --git a/contrib/gdevdj9.c b/contrib/gdevdj9.c
index 6e18924f0..a7d6ab915 100644
--- a/contrib/gdevdj9.c
+++ b/contrib/gdevdj9.c
@@ -526,6 +526,12 @@ cdj970_initialize(gx_device *dev)
set_dev_proc(dev, put_params, cdj970_put_params);
set_dev_proc(dev, map_cmyk_color, gdev_cmyk_map_cmyk_color);
+ /* The static init 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);
+
return 0;
}
@@ -542,11 +548,8 @@ cdj970_print_non_blank_lines(gx_device_printer * pdev,
static void
cdj970_terminate_page(gx_device_printer * pdev, gp_file * prn_stream);
-static const gx_device_procs cdj970_procs =
- devprocs_initialize(cdj970_initialize);
-
const gx_device_cdj970 gs_cdj970_device =
-cdj_970_device(cdj970_procs, "cdj970", 600, 600, 32, cdj970_print_page, 0,
+cdj_970_device(cdj970_initialize, "cdj970", 600, 600, 32, cdj970_print_page, 0,
NORMAL, PLAIN_PAPER, NONE, 4, DJ970C, 2,
1.0, 0.0, 0.0, 0.0, 0.0, 1.0,
cdj970_start_raster_mode, cdj970_print_non_blank_lines,
diff --git a/contrib/gdevgdi.c b/contrib/gdevgdi.c
index 7028bec78..ee30abf48 100644
--- a/contrib/gdevgdi.c
+++ b/contrib/gdevgdi.c
@@ -108,11 +108,8 @@ gdi_initialize(gx_device *dev)
return 0;
}
-static gx_device_procs prn_gdi_procs =
- devprocs_initialize(gdi_initialize);
-
gx_device_printer far_data gs_gdi_device =
- prn_device(prn_gdi_procs, "gdi",
+ prn_device(gdi_initialize, "gdi",
DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS, /* paper size (unit : 10/72 inch size) */
X_DPI2, Y_DPI2,
0.20, 0.25, 0.25, 0.25, /* margins filled in by gdi_open */
@@ -120,7 +117,7 @@ gx_device_printer far_data gs_gdi_device =
gdi_print_page);
gx_device_printer far_data gs_samsunggdi_device =
- prn_device(prn_gdi_procs, "samsunggdi",
+ prn_device(gdi_initialize, "samsunggdi",
DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS, /* paper size (unit : 10/72 inch size) */
X_DPI2, Y_DPI2,
0.20, 0.25, 0.25, 0.25, /* margins filled in by gdi_open */
diff --git a/contrib/gdevhl12.c b/contrib/gdevhl12.c
index 46b4aae0d..3cf4272c5 100644
--- a/contrib/gdevhl12.c
+++ b/contrib/gdevhl12.c
@@ -175,11 +175,8 @@ hl1250_initialize(gx_device *dev)
return 0;
}
-static const gx_device_procs prn_hl1250_procs =
- devprocs_initialize(hl1250_initialize);
-
#define hl1250_device_copies(dname, xdpi, ydpi)\
-{ prn_device_std_body_copies(gx_device_hl1250, prn_hl1250_procs,\
+{ prn_device_std_body_copies(gx_device_hl1250, hl1250_initialize,\
dname,\
DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS,\
xdpi, ydpi,\
diff --git a/contrib/gdevln03.c b/contrib/gdevln03.c
index 29580b112..f569a695f 100644
--- a/contrib/gdevln03.c
+++ b/contrib/gdevln03.c
@@ -64,16 +64,13 @@ sixel_initialize(gx_device *dev)
return 0;
}
-static gx_device_procs sixel_procs =
- devprocs_initialize(sixel_initialize);
-
#ifdef A4
# define BOTTOM_MARGIN 0.5
#else
# define BOTTOM_MARGIN 0.4
#endif
gx_device_printer gs_ln03_device =
- prn_device(sixel_procs, "ln03",
+ prn_device(sixel_initialize, "ln03",
DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS,
300, 300, /* x_dpi, y_dpi */
0, BOTTOM_MARGIN, 0, 0, /* left, bottom, right, top margin */
@@ -110,7 +107,7 @@ ln03_print_page(gx_device_printer *pdev, gp_file *prn_stream)
*/
static dev_proc_print_page(dl2100_print_page);
gx_device_printer gs_dl2100_device =
- prn_device(sixel_procs, "dl2100",
+ prn_device(sixel_initialize, "dl2100",
DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS,
300, 300, /* x_dpi, y_dpi */
0, 0, 0, 0, /* left, bottom, right, top margin */
@@ -135,7 +132,7 @@ dl2100_print_page(gx_device_printer *pdev, gp_file *prn_stream)
*/
static dev_proc_print_page(la50_print_page);
gx_device_printer gs_la50_device =
- prn_device(sixel_procs, "la50",
+ prn_device(sixel_initialize, "la50",
85,
110,
144, 72,
@@ -162,7 +159,7 @@ la50_print_page(gx_device_printer *pdev, gp_file *prn_stream)
*/
static dev_proc_print_page(la70_print_page);
gx_device_printer gs_la70_device =
- prn_device(sixel_procs, "la70",
+ prn_device(sixel_initialize, "la70",
85,
110,
144, 144,
@@ -188,7 +185,7 @@ la70_print_page(gx_device_printer *pdev, gp_file *prn_stream)
*/
static dev_proc_print_page(la75_print_page);
gx_device_printer gs_la75_device =
- prn_device(sixel_procs, "la75",
+ prn_device(sixel_initialize, "la75",
85,
110,
144, 72,
@@ -215,7 +212,7 @@ la75_print_page(gx_device_printer *pdev, gp_file *prn_stream)
*/
static dev_proc_print_page(la75plus_print_page);
gx_device_printer gs_la75plus_device =
- prn_device(sixel_procs, "la75plus",
+ prn_device(sixel_initialize, "la75plus",
85,
110,
180, 180,
@@ -249,7 +246,7 @@ la75plus_print_page(gx_device_printer *pdev, gp_file *prn_stream)
*/
static dev_proc_print_page(sxlcrt_print_page);
gx_device_printer gs_sxlcrt_device =
- prn_device(sixel_procs,
+ prn_device(sixel_initialize,
"sxlcrt",
180,
110,
diff --git a/contrib/gdevlx32.c b/contrib/gdevlx32.c
index fe2076cb8..12ff12532 100644
--- a/contrib/gdevlx32.c
+++ b/contrib/gdevlx32.c
@@ -271,12 +271,15 @@ lxm3200_initialize(gx_device *dev)
set_dev_proc(dev, get_params, lxm3200_get_params);
set_dev_proc(dev, put_params, lxm3200_put_params);
+ /* The static init 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);
+
return 0;
}
-static gx_device_procs lxm3200_procs =
- devprocs_initialize(lxm3200_initialize);
-
/* Define an extension (subclass) of gx_device_printer. */
struct lxm_device_s
{
@@ -323,7 +326,7 @@ struct lxm_device_s
lxm_device far_data gs_lxm3200_device =
{
prn_device_body(lxm_device,
- lxm3200_procs,
+ lxm3200_initialize,
"lxm3200",
DEFAULT_WIDTH_10THS,
DEFAULT_HEIGHT_10THS,
diff --git a/contrib/gdevlx7.c b/contrib/gdevlx7.c
index 56b232577..7412244e3 100644
--- a/contrib/gdevlx7.c
+++ b/contrib/gdevlx7.c
@@ -121,9 +121,6 @@ lxm7000m_initialize(gx_device *dev)
return 0;
}
-static const gx_device_procs lxm7000m_procs =
- devprocs_initialize(lxm7000m_initialize);
-
/* The device descriptors */
/* define a subclass with useful state in it. */
@@ -153,7 +150,7 @@ typedef struct lxm_device_s { /* a sub-class of gx_device_printer */
#define LXR_1200 2
lxm_device far_data gs_lex7000_device = {
- prn_device_std_body(lxm_device, lxm7000m_procs, "lex7000",
+ prn_device_std_body(lxm_device, lxm7000m_initialize, "lex7000",
DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS,
/* total width & height in 10x " - A4 or letter compiled in.
* may be overriden by -sPAPERSIZE=a4 of -sPAPERSIZE=letter
@@ -176,7 +173,7 @@ lxm_device far_data gs_lex7000_device = {
};
lxm_device far_data gs_lex5700_device = {
- prn_device_std_body(lxm_device, lxm7000m_procs, "lex5700",
+ prn_device_std_body(lxm_device, lxm7000m_initialize, "lex5700",
DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS,
/* total width & height in 10x " - A4 or letter compiled in.
* may be overriden by -sPAPERSIZE=a4 of -sPAPERSIZE=letter
@@ -199,7 +196,7 @@ lxm_device far_data gs_lex5700_device = {
};
lxm_device far_data gs_lex3200_device = {
- prn_device_std_body(lxm_device, lxm7000m_procs, "lex3200",
+ prn_device_std_body(lxm_device, lxm7000m_initialize, "lex3200",
DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS,
/* total width & height in 10x " - A4 or letter compiled in.
* may be overriden by -sPAPERSIZE=a4 of -sPAPERSIZE=letter
@@ -222,7 +219,7 @@ lxm_device far_data gs_lex3200_device = {
};
lxm_device far_data gs_lex2050_device = {
- prn_device_std_body(lxm_device, lxm7000m_procs, "lex2050",
+ prn_device_std_body(lxm_device, lxm7000m_initialize, "lex2050",
DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS,
/* total width & height in 10x " - A4 or letter compiled in.
* may be overriden by -sPAPERSIZE=a4 of -sPAPERSIZE=letter
diff --git a/contrib/gdevmd2k.c b/contrib/gdevmd2k.c
index 5b8d9fe24..0f1c2123f 100644
--- a/contrib/gdevmd2k.c
+++ b/contrib/gdevmd2k.c
@@ -78,15 +78,18 @@ alps_initialize(gx_device *dev)
set_dev_proc(dev, put_params, alps_put_params);
set_dev_proc(dev, map_cmyk_color, alps_map_cmyk_color);
+ /* The static init 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);
+
return 0;
}
-static gx_device_procs alps_procs =
- devprocs_initialize(alps_initialize);
-
#define alps_device(dname, print_page) \
{\
- prn_device_body(gx_device_alps, alps_procs, dname,\
+ prn_device_body(gx_device_alps, alps_initialize, dname,\
DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS,\
600, 600,\
0, 0, 0, 0, /* margin */\
diff --git a/contrib/gdevop4w.c b/contrib/gdevop4w.c
index 6d34df6ab..d6e3d7966 100644
--- a/contrib/gdevop4w.c
+++ b/contrib/gdevop4w.c
@@ -108,11 +108,8 @@ oki4w_initialize(gx_device *dev)
return 0;
}
-static gx_device_procs prn_hp_procs =
- devprocs_initialize(oki4w_initialize);
-
gx_device_printer far_data gs_oki4w_device =
- prn_device(prn_hp_procs, "oki4w",
+ prn_device(oki4w_initialize, "oki4w",
DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS,
X_DPI, Y_DPI,
0, 0, 0, 0, /* margins filled in by oki4w_open */
diff --git a/contrib/gdevxes.c b/contrib/gdevxes.c
index 025f927d7..cbe85d82e 100644
--- a/contrib/gdevxes.c
+++ b/contrib/gdevxes.c
@@ -63,9 +63,6 @@ sixel_initialize(gx_device *dev)
}
-static gx_device_procs xes_procs =
- devprocs_initialize(sixel_initialize);
-
#ifdef A4
# define BOTTOM_MARGIN 0.5
# define PAGE_LENGTH_PELS 3300
@@ -75,7 +72,7 @@ static gx_device_procs xes_procs =
#endif
gx_device_printer gs_xes_device =
- prn_device(xes_procs, "xes",
+ prn_device(sixel_initialize, "xes",
DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS,
300, 300, /* x_dpi, y_dpi */
0, BOTTOM_MARGIN, 0, 0, /* left, bottom, right, top margin */
diff --git a/contrib/japanese/gdev10v.c b/contrib/japanese/gdev10v.c
index d429c005e..6f341f43d 100644
--- a/contrib/japanese/gdev10v.c
+++ b/contrib/japanese/gdev10v.c
@@ -37,36 +37,8 @@ copies. */
No checking on resolutions are being made.
*/
-#if 0
-#define prn_matrix_procs(p_open, p_get_initial_matrix, p_output_page, p_close) {\
- p_open,\
- p_get_initial_matrix,\
- NULL, /* sync_output */\
- p_output_page,\
- p_close,\
- gdev_prn_map_rgb_color,\
- gdev_prn_map_color_rgb,\
- NULL, /* fill_rectangle */\
- NULL, /* tile_rectangle */\
- NULL, /* copy_mono */\
- NULL, /* copy_color */\
- NULL, /* draw_line */\
- NULL, /* get_bits */\
- gdev_prn_get_params,\
- gdev_prn_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\
-}
-#endif
-
/* The device descriptor */
static dev_proc_print_page(bj10v_print_page);
-#if 0
-static dev_proc_get_initial_matrix(bj10v_get_initial_matrix);
-#endif
static int
bj10v_open(gx_device * pdev)
@@ -82,10 +54,27 @@ bj10v_open(gx_device * pdev)
#if 0
-gx_device_procs prn_bj10v_procs =
- prn_matrix_procs(gdev_prn_open, bj10v_get_initial_matrix,
- gdev_prn_output_page, gdev_prn_close);
-#endif
+/* Shift the origin from the top left corner of the pysical page to the
+ first printable pixel, as defined by the top and left margins. */
+static void
+bj10v_get_initial_matrix(gx_device *dev, gs_matrix *pmat)
+{ gx_default_get_initial_matrix(dev, pmat);
+ pmat->tx -= dev_l_margin(dev) * dev->x_pixels_per_inch;
+ pmat->ty -= dev_t_margin(dev) * dev->y_pixels_per_inch;
+}
+
+static int
+bj10v_initialize(gx_device *dev)
+{
+ int code = gdev_prn_initialize_mono(dev);
+
+ set_dev_proc(dev, get_initial_matrix, bj10v_get_initial_matrix);
+
+ return 0;
+}
+
+#else
+
static int
bj10v_initialize(gx_device *dev)
{
@@ -99,11 +88,10 @@ bj10v_initialize(gx_device *dev)
return 0;
}
-gx_device_procs prn_bj10v_procs =
- devprocs_initialize(bj10v_initialize);
+#endif
gx_device_printer gs_bj10v_device =
- prn_device(prn_bj10v_procs, "bj10v",
+ prn_device(bj10v_initialize, "bj10v",
DEFAULT_WIDTH_10THS, /* width_10ths */
DEFAULT_HEIGHT_10THS, /* height_10ths */
360, /* x_dpi */
@@ -112,7 +100,7 @@ gx_device_printer gs_bj10v_device =
1, bj10v_print_page);
gx_device_printer gs_bj10vh_device =
- prn_device(prn_bj10v_procs, "bj10vh",
+ prn_device(bj10v_initialize, "bj10vh",
DEFAULT_WIDTH_10THS, /* width_10ths */
DEFAULT_HEIGHT_10THS, /* height_10ths */
360, /* x_dpi */
@@ -120,19 +108,6 @@ gx_device_printer gs_bj10vh_device =
0.134, 0.507, 0.166, 0.335, /* l, b, r, t margins */
1, bj10v_print_page);
-/* ------ Internal routines ------ */
-
-#if 0
-/* Shift the origin from the top left corner of the pysical page to the
- first printable pixel, as defined by the top and left margins. */
-static void
-bj10v_get_initial_matrix(gx_device *dev, gs_matrix *pmat)
-{ gx_default_get_initial_matrix(dev, pmat);
- pmat->tx -= dev_l_margin(dev) * dev->x_pixels_per_inch;
- pmat->ty -= dev_t_margin(dev) * dev->y_pixels_per_inch;
-}
-#endif
-
/* ---- Printer output routines ---- */
/* Note: Following code is stolen from gdevp201.c. On NEC PC9801 series,
diff --git a/contrib/japanese/gdevalps.c b/contrib/japanese/gdevalps.c
index badad8106..0af77999b 100644
--- a/contrib/japanese/gdevalps.c
+++ b/contrib/japanese/gdevalps.c
@@ -70,11 +70,8 @@ md_initialize(gx_device *dev)
return 0;
}
-static gx_device_procs prn_md_procs =
- devprocs_initialize(md_initialize);
-
gx_device_printer far_data gs_md50Mono_device =
- prn_device(prn_md_procs, "md50Mono",
+ prn_device(md_initialize, "md50Mono",
DEFAULT_WIDTH_10THS,
DEFAULT_HEIGHT_10THS,
600, /* x_dpi */
@@ -83,7 +80,7 @@ gx_device_printer far_data gs_md50Mono_device =
1, md50m_print_page);
gx_device_printer far_data gs_md50Eco_device =
- prn_device(prn_md_procs, "md50Eco",
+ prn_device(md_initialize, "md50Eco",
DEFAULT_WIDTH_10THS,
DEFAULT_HEIGHT_10THS,
600, /* x_dpi */
@@ -92,7 +89,7 @@ gx_device_printer far_data gs_md50Eco_device =
1, md50e_print_page);
gx_device_printer far_data gs_md1xMono_device =
- prn_device(prn_md_procs, "md1xMono",
+ prn_device(md_initialize, "md1xMono",
DEFAULT_WIDTH_10THS,
DEFAULT_HEIGHT_10THS,
600, /* x_dpi */
diff --git a/contrib/japanese/gdevespg.c b/contrib/japanese/gdevespg.c
index cc677a9a2..e312e3669 100644
--- a/contrib/japanese/gdevespg.c
+++ b/contrib/japanese/gdevespg.c
@@ -57,9 +57,6 @@ lp2000_initialize(gx_device *dev)
return code;
}
-static gx_device_procs lp2000_prn_procs =
- devprocs_initialize(lp2000_initialize);
-
static int
escpage_initialize(gx_device *dev)
{
@@ -76,16 +73,13 @@ escpage_initialize(gx_device *dev)
return code;
}
-static gx_device_procs escpage_prn_procs =
- devprocs_initialize(escpage_initialize);
-
gx_device_lprn far_data gs_lp2000_device =
-lprn_device(gx_device_lprn, lp2000_prn_procs, "lp2000",
+lprn_device(gx_device_lprn, lp2000_initialize, "lp2000",
DPI, DPI, 0.0, 0.0, 0.0, 0.0, 1,
lp2000_print_page_copies, escpage_image_out);
gx_device_lprn far_data gs_escpage_device =
-lprn_duplex_device(gx_device_lprn, escpage_prn_procs, "escpage",
+lprn_duplex_device(gx_device_lprn, escpage_initialize, "escpage",
DPI, DPI, 0.0, 0.0, 0.0, 0.0, 1,
escpage_print_page_copies, escpage_image_out);
diff --git a/contrib/japanese/gdevfmlbp.c b/contrib/japanese/gdevfmlbp.c
index 21d3b60bc..568f3c304 100644
--- a/contrib/japanese/gdevfmlbp.c
+++ b/contrib/japanese/gdevfmlbp.c
@@ -41,13 +41,6 @@ copies. */
/* The device descriptors */
static dev_proc_print_page(fmlbp_print_page);
-#ifdef FMLBP_NOADJUST_MARGIN
-#define PRNFML_INIT gdev_prn_initialize
-#else
-/* Adjust margin for ghostscript 2.6.1 */
-#define PRNFML_INIT fmlbp_initialize
-static dev_proc_get_initial_matrix(fmlbp_get_initial_matrix);
-
static int fmlbp_initialize(gx_device *dev)
{
int code = gdev_prn_initialize_mono(dev);
@@ -55,11 +48,18 @@ static int fmlbp_initialize(gx_device *dev)
if (code < 0)
return code;
- set_dev_proc(dev, get_initial_matrix, fmlbp_get_initial_matrix);
+ set_dev_proc(dev, encode_color, NULL);
+ set_dev_proc(dev, decode_color, NULL);
return 0;
}
+#ifdef FMLBP_NOADJUST_MARGIN
+#define PRNFML_INIT fmlbp_initialize
+#else
+/* Adjust margin for ghostscript 2.6.1 */
+#define PRNFML_INIT fmlbp_initialize_with_matrix
+
/* Shift the origin from the top left corner of the pysical page to the
first printable pixel, as defined by the top and left margins. */
/* modified from gdevsppr.c. */
@@ -69,6 +69,18 @@ fmlbp_get_initial_matrix(gx_device *dev, gs_matrix *pmat)
pmat->tx -= (dev->l_margin * dev->x_pixels_per_inch);
pmat->ty -= (dev->t_margin * dev->y_pixels_per_inch);
}
+
+static int fmlbp_initialize_with_matrix(gx_device *dev)
+{
+ int code = fmlbp_initialize(dev);
+
+ if (code < 0)
+ return code;
+
+ set_dev_proc(dev, get_initial_matrix, fmlbp_get_initial_matrix);
+
+ return 0;
+}
#endif/*FMLBP_NOADJUST_MARGIN*/
gx_device_printer gs_fmlbp_device =
diff --git a/contrib/japanese/gdevfmpr.c b/contrib/japanese/gdevfmpr.c
index cd34d4fd0..b134926de 100644
--- a/contrib/japanese/gdevfmpr.c
+++ b/contrib/japanese/gdevfmpr.c
@@ -30,7 +30,7 @@ static dev_proc_print_page(fmpr_print_page);
/* The device descriptor */
gx_device_printer gs_fmpr_device =
- prn_device(prn_std_procs, "fmpr",
+ prn_device(gdev_prn_initialize_mono, "fmpr",
DEFAULT_WIDTH_10THS,
DEFAULT_HEIGHT_10THS,
180, /* x_dpi */
diff --git a/contrib/japanese/gdevj100.c b/contrib/japanese/gdevj100.c
index f8a701794..6582cf33c 100644
--- a/contrib/japanese/gdevj100.c
+++ b/contrib/japanese/gdevj100.c
@@ -29,7 +29,7 @@ static dev_proc_print_page(jj100_print_page);
/* The device descriptor */
gx_device_printer gs_jj100_device =
- prn_device(prn_std_procs, "jj100",
+ prn_device(gdev_prn_initialize_mono, "jj100",
82, /* width_10ths, 8.2" = 210mm(A4) */
115 /*113, 117*/, /* height_10ths, 11.7" = 297mm(A4) */
360, /* x_dpi */
diff --git a/contrib/japanese/gdevlbp3.c b/contrib/japanese/gdevlbp3.c
index 8cbc2ce8b..ade84b210 100644
--- a/contrib/japanese/gdevlbp3.c
+++ b/contrib/japanese/gdevlbp3.c
@@ -15,7 +15,7 @@ static dev_proc_print_page(lbp310PrintPage);
static dev_proc_print_page(lbp320PrintPage);
gx_device_printer far_data gs_lbp310_device =
- prn_device(prn_std_procs,
+ prn_device(gdev_prn_initialize_mono,
"lbp310",
DEFAULT_WIDTH_10THS,
DEFAULT_HEIGHT_10THS,
@@ -27,7 +27,7 @@ gx_device_printer far_data gs_lbp310_device =
1, lbp310PrintPage);
gx_device_printer far_data gs_lbp320_device =
- prn_device(prn_std_procs,
+ prn_device(gdev_prn_initialize_mono,
"lbp320",
DEFAULT_WIDTH_10THS,
DEFAULT_HEIGHT_10THS,
diff --git a/contrib/japanese/gdevmjc.c b/contrib/japanese/gdevmjc.c
index 5cb33cd04..423e2de6f 100644
--- a/contrib/japanese/gdevmjc.c
+++ b/contrib/japanese/gdevmjc.c
@@ -239,9 +239,6 @@ mj700v2c_initialize(gx_device *dev)
return 0;
}
-static gx_device_procs mj700v2c_procs =
- devprocs_initialize(mj700v2c_initialize);
-
static int
mj500c_initialize(gx_device *dev)
{
@@ -256,9 +253,6 @@ mj500c_initialize(gx_device *dev)
return 0;
}
-static gx_device_procs mj500c_procs =
- devprocs_initialize(mj500c_initialize);
-
static int
mj6000c_initialize(gx_device *dev)
{
@@ -273,9 +267,6 @@ mj6000c_initialize(gx_device *dev)
return 0;
}
-static gx_device_procs mj6000c_procs =
- devprocs_initialize(mj6000c_initialize);
-
static int
mj8000c_initialize(gx_device *dev)
{
@@ -290,23 +281,20 @@ mj8000c_initialize(gx_device *dev)
return 0;
}
-static gx_device_procs mj8000c_procs =
- devprocs_initialize(mj8000c_initialize);
-
gx_device_mj far_data gs_mj700v2c_device =
-mjcmyk_device(mj700v2c_procs, "mj700v2c", 360, 360, BITSPERPIXEL,
+mjcmyk_device(mj700v2c_initialize, "mj700v2c", 360, 360, BITSPERPIXEL,
mj700v2c_print_page, 1024, 1024, 1024, 1024, 1024, 0, 1, 1);
gx_device_mj far_data gs_mj500c_device =
-mjcmy_device(mj500c_procs, "mj500c", 360, 360, BITSPERPIXEL,
+mjcmy_device(mj500c_initialize, "mj500c", 360, 360, BITSPERPIXEL,
mj500c_print_page, 1024, 1024, 1024, 1024, 1024, 0, 1, 1);
gx_device_mj far_data gs_mj6000c_device =
-mjcmyk_device(mj6000c_procs, "mj6000c", 360, 360, BITSPERPIXEL,
+mjcmyk_device(mj6000c_initialize, "mj6000c", 360, 360, BITSPERPIXEL,
mj6000c_print_page, 1024, 1024, 1024, 1024, 1024, 0, 1, 1);
gx_device_mj far_data gs_mj8000c_device =
-mjcmyk_device(mj8000c_procs, "mj8000c", 360, 360, BITSPERPIXEL,
+mjcmyk_device(mj8000c_initialize, "mj8000c", 360, 360, BITSPERPIXEL,
mj8000c_print_page, 1024, 1024, 1024, 1024, 1024, 0, 1, 1);
/* Get the paper size code, based on width and height. */
diff --git a/contrib/japanese/gdevml6.c b/contrib/japanese/gdevml6.c
index 60ab151fd..6aff86ae5 100644
--- a/contrib/japanese/gdevml6.c
+++ b/contrib/japanese/gdevml6.c
@@ -46,11 +46,8 @@ ml600_initialize(gx_device *dev)
return code;
}
-static gx_device_procs ml600_procs =
- devprocs_initialize(ml600_initialize);
-
gx_device_printer gs_ml600_device =
- prn_device(ml600_procs, "ml600",
+ prn_device(ml600_initialize, "ml600",
83, /* width_10ths, 8.3" */
117, /* height_10ths, 11.7" */
600, 600,
diff --git a/contrib/japanese/gdevnpdl.c b/contrib/japanese/gdevnpdl.c
index 98432b4fb..590510624 100644
--- a/contrib/japanese/gdevnpdl.c
+++ b/contrib/japanese/gdevnpdl.c
@@ -134,11 +134,8 @@ npdl_initialize(gx_device *dev)
return code;
}
-static gx_device_procs npdl_prn_procs =
- devprocs_initialize(npdl_initialize);
-
gx_device_lprn far_data gs_npdl_device =
-lprn_duplex_device(gx_device_lprn, npdl_prn_procs, "npdl",
+lprn_duplex_device(gx_device_lprn, npdl_initialize, "npdl",
X_DPI, Y_DPI, /* default resolution */
0.0, 0.0, 0.0, 0.0, /* margins */
1, npdl_print_page_copies, npdl_image_out);
diff --git a/contrib/japanese/gdevp201.c b/contrib/japanese/gdevp201.c
index c070679f3..dc8b368e3 100644
--- a/contrib/japanese/gdevp201.c
+++ b/contrib/japanese/gdevp201.c
@@ -41,7 +41,7 @@ static dev_proc_print_page(pr201_print_page);
/* The device descriptor */
gx_device_printer gs_pr201_device =
- prn_device(prn_std_procs, "pr201",
+ prn_device(gdev_prn_initialize_mono, "pr201",
WIDTH,
HEIGHT,
160,
@@ -50,7 +50,7 @@ gx_device_printer gs_pr201_device =
1, pr201_print_page);
gx_device_printer gs_pr1000_device =
- prn_device(prn_std_procs, "pr1000",
+ prn_device(gdev_prn_initialize_mono, "pr1000",
WIDTH,
HEIGHT,
240,
@@ -59,7 +59,7 @@ gx_device_printer gs_pr1000_device =
1, pr201_print_page);
gx_device_printer gs_pr150_device =
- prn_device(prn_std_procs, "pr150",
+ prn_device(gdev_prn_initialize_mono, "pr150",
WIDTH,
HEIGHT,
320,
@@ -68,7 +68,7 @@ gx_device_printer gs_pr150_device =
1, pr201_print_page);
gx_device_printer gs_pr1000_4_device =
- prn_device(prn_std_procs, "pr1000_4",
+ prn_device(gdev_prn_initialize, "pr1000_4",
WIDTH,
HEIGHT,
400,
diff --git a/contrib/japanese/gdevrpdl.c b/contrib/japanese/gdevrpdl.c
index 69c2b644c..05a83c600 100644
--- a/contrib/japanese/gdevrpdl.c
+++ b/contrib/japanese/gdevrpdl.c
@@ -50,11 +50,8 @@ rpdl_initialize(gx_device *dev)
return code;
}
-static gx_device_procs rpdl_prn_procs =
- devprocs_initialize(rpdl_initialize);
-
gx_device_lprn far_data gs_rpdl_device =
-lprn_device(gx_device_lprn, rpdl_prn_procs, "rpdl",
+lprn_device(gx_device_lprn, rpdl_initialize, "rpdl",
DPI, DPI, 0.0, 0.0, 0.0, 0.0, 1,
rpdl_print_page_copies, rpdl_image_out);
diff --git a/contrib/lips4/gdevl4r.c b/contrib/lips4/gdevl4r.c
index 3f077f486..e679791c9 100644
--- a/contrib/lips4/gdevl4r.c
+++ b/contrib/lips4/gdevl4r.c
@@ -163,20 +163,8 @@ lips4_initialize(gx_device *dev)
return 0;
};
-static gx_device_procs lips2p_prn_procs =
- devprocs_initialize(lips2p_initialize);
-
-static gx_device_procs lips3_prn_procs =
- devprocs_initialize(lips3_initialize);
-
-static gx_device_procs bjc880j_prn_color_procs =
- devprocs_initialize(bjc880j_initialize);
-
-static gx_device_procs lips4_prn_procs =
- devprocs_initialize(lips4_initialize);
-
gx_device_lips far_data gs_lips2p_device =
-lips_device(gx_device_lips, lips2p_prn_procs, "lips2p",
+lips_device(gx_device_lips, lips2p_initialize, "lips2p",
LIPS2P_DPI_DEFAULT,
LIPS2P_DPI_DEFAULT,
LIPS2P_LEFT_MARGIN_DEFAULT,
@@ -188,7 +176,7 @@ lips_device(gx_device_lips, lips2p_prn_procs, "lips2p",
LIPS_USERNAME_DEFAULT);
gx_device_lips far_data gs_lips3_device =
-lips_device(gx_device_lips, lips3_prn_procs, "lips3",
+lips_device(gx_device_lips, lips3_initialize, "lips3",
LIPS3_DPI_DEFAULT,
LIPS3_DPI_DEFAULT,
LIPS3_LEFT_MARGIN_DEFAULT,
@@ -200,7 +188,7 @@ lips_device(gx_device_lips, lips3_prn_procs, "lips3",
LIPS_USERNAME_DEFAULT);
gx_device_lips4 far_data gs_bjc880j_device =
-lips4_device(gx_device_lips4, bjc880j_prn_color_procs, "bjc880j",
+lips4_device(gx_device_lips4, bjc880j_initialize, "bjc880j",
BJC880J_DPI_DEFAULT,
BJC880J_DPI_DEFAULT,
BJC880J_LEFT_MARGIN_DEFAULT,
@@ -212,7 +200,7 @@ lips4_device(gx_device_lips4, bjc880j_prn_color_procs, "bjc880j",
LIPS_USERNAME_DEFAULT);
gx_device_lips4 far_data gs_lips4_device =
-lips4_device(gx_device_lips4, lips4_prn_procs, "lips4",
+lips4_device(gx_device_lips4, lips4_initialize, "lips4",
LIPS4_DPI_DEFAULT,
LIPS4_DPI_DEFAULT,
LIPS4_LEFT_MARGIN_DEFAULT,
diff --git a/contrib/lips4/gdevl4v.c b/contrib/lips4/gdevl4v.c
index cc7f5ae3a..b2ce2d6c0 100644
--- a/contrib/lips4/gdevl4v.c
+++ b/contrib/lips4/gdevl4v.c
@@ -145,7 +145,7 @@ gs_public_st_suffix_add0_final(st_device_lips4v, gx_device_lips4v,
std_device_part3_()
#define lips4v_device_body\
- lips_device_full_body(gx_device_lips4v, 0, "lips4v",\
+ lips_device_full_body(gx_device_lips4v, lips4v_initialize, "lips4v",\
&st_device_lips4v,\
DEFAULT_WIDTH_10THS * X_DPI / 10,\
DEFAULT_HEIGHT_10THS * Y_DPI / 10,\
@@ -184,7 +184,7 @@ lips4v_initialize(gx_device *dev)
gx_device_lips4v far_data gs_lips4v_device = {
lips4v_device_body,
- devprocs_initialize(lips4v_initialize),
+ { 0 },
vector_initial_values,
LIPS_CASSETFEED_DEFAULT,
LIPS_USERNAME_DEFAULT,
diff --git a/contrib/opvp/gdevopvp.c b/contrib/opvp/gdevopvp.c
index caade19fd..439bdd704 100644
--- a/contrib/opvp/gdevopvp.c
+++ b/contrib/opvp/gdevopvp.c
@@ -323,6 +323,12 @@ opvp_initialize(gx_device *dev)
set_dev_proc(dev, fill_triangle, gdev_vector_fill_triangle);
set_dev_proc(dev, begin_image, opvp_begin_image);
+ /* The static init 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);
+
return 0;
}
@@ -358,7 +364,7 @@ const gx_device_opvp gs_opvp_device =
{
std_device_dci_type_body(
gx_device_opvp,
- 0,
+ opvp_initialize,
"opvp",
&st_device_opvp,
DEFAULT_WIDTH_10THS_A4 * X_DPI / 10,
@@ -371,8 +377,7 @@ const gx_device_opvp gs_opvp_device =
255,
256,
256
- ),
- devprocs_initialize(opvp_initialize)
+ )
};
/* for inkjet */
@@ -392,17 +397,20 @@ oprp_initialize(gx_device *dev)
set_dev_proc(dev, get_params, oprp_get_params);
set_dev_proc(dev, put_params, oprp_put_params);
+ /* The static init 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);
+
return 0;
}
-static gx_device_procs prn_oprp_procs =
- devprocs_initialize(oprp_initialize);
-
const gx_device_oprp gs_oprp_device =
{
prn_device_std_margins_body(
gx_device_oprp,
- prn_oprp_procs,
+ oprp_initialize,
"oprp",
DEFAULT_WIDTH_10THS_A4,
DEFAULT_HEIGHT_10THS_A4,
diff --git a/contrib/pcl3/src/gdevpcl3.c b/contrib/pcl3/src/gdevpcl3.c
index c679fa038..2f964b4ae 100644
--- a/contrib/pcl3/src/gdevpcl3.c
+++ b/contrib/pcl3/src/gdevpcl3.c
@@ -114,10 +114,6 @@ eprn_initialize(gx_device *dev)
return 0;
};
-/* Device procedure table */
-static gx_device_procs pcl3_procs =
- devprocs_initialize(eprn_initialize);
-
/* prn procedure implementations */
#if !defined(GS_REVISION) || GS_REVISION >= 550
static prn_dev_proc_print_page(pcl3_print_page);
@@ -149,7 +145,7 @@ static void pcl3_flag_mismatch_reporter(
pcl3_Device gs_##dname##_device = { \
eprn_device_initdata( \
pcl3_Device, /* device type */ \
- pcl3_procs, /* static device procedure table */ \
+ eprn_initialize, /* initialize pointer */ \
#dname, /* device name */ \
300.0, 300.0, /* horizontal and vertical resolution */\
pcl3_print_page, /* print page routine */ \