1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-23 00:43:28 +00:00

- Improve papersize handling of LIPS driver

PR:		ports/64766
Submitted by:	Ports Fury
This commit is contained in:
Kirill Ponomarev 2004-03-26 14:43:45 +00:00
parent b1e24043d2
commit c7d0e51fb8
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=105337
8 changed files with 262 additions and 28 deletions

View File

@ -1,5 +1,27 @@
--- lips/gdevl4r.c.orig Thu Nov 2 12:09:18 2000
+++ lips/gdevl4r.c Fri Sep 12 09:22:08 2003
+++ lips/gdevl4r.c Tue Jan 13 01:28:40 2004
@@ -53,8 +53,8 @@
#define lips_device(dtype, procs, dname, xdpi, ydpi, lm, bm, rm, tm, color_bits,\
print_page_copies, image_out, cassetFeed, username)\
{ std_device_std_color_full_body(dtype, &procs, dname,\
- (int)((long)(DEFAULT_WIDTH_10THS) * (xdpi) / 10),\
- (int)((long)(DEFAULT_HEIGHT_10THS) * (ydpi) / 10),\
+ (int)((long)((DEFAULT_WIDTH_10THS) * (xdpi)) / 10),\
+ (int)((long)((DEFAULT_HEIGHT_10THS) * (ydpi)) / 10),\
xdpi, ydpi, color_bits,\
-(lm) * (xdpi), -(tm) * (ydpi),\
(lm) * 72.0, (bm) * 72.0,\
@@ -68,8 +68,8 @@
#define lips4_device(dtype, procs, dname, xdpi, ydpi, lm, bm, rm, tm, color_bits,\
print_page_copies, image_out, cassetFeed, username)\
{ std_device_std_color_full_body(dtype, &procs, dname,\
- (int)((long)(DEFAULT_WIDTH_10THS) * (xdpi) / 10),\
- (int)((long)(DEFAULT_HEIGHT_10THS) * (ydpi) / 10),\
+ (int)((long)((DEFAULT_WIDTH_10THS) * (xdpi)) / 10),\
+ (int)((long)((DEFAULT_HEIGHT_10THS) * (ydpi)) / 10),\
xdpi, ydpi, color_bits,\
-(lm) * (xdpi), -(tm) * (ydpi),\
(lm) * 72.0, (bm) * 72.0,\
@@ -178,8 +178,13 @@
private int lips4c_output_page(gx_device_printer * pdev, FILE * prn_stream);
private int lips_delta_encode(byte * inBuff, byte * prevBuff, byte * outBuff, byte * diffBuff, int Length);
@ -14,26 +36,47 @@
private int lips4type_print_page_copies(gx_device_printer * pdev, FILE * prn_stream, int num_copies, int ptype);
private int
@@ -1065,11 +1070,11 @@
@@ -1065,11 +1070,25 @@
if (paper_size == USER_SIZE) {
fprintf(prn_stream, "%c2 I", LIPS_CSI);
fprintf(prn_stream, "%c80;%d;%dp", LIPS_CSI,
- width * 10, height * 10);
+ height * 10, width * 10);
+ /* modified by shige 06/27 2003
+ width * 10, height * 10); */
+ /* modified by shige 11/09 2003
+ height * 10, width * 10); */
+ (height * 10 > LIPS_HEIGHT_MAX_720)?
+ LIPS_HEIGHT_MAX_720 : (height * 10),
+ (width * 10 > LIPS_WIDTH_MAX_720)?
+ LIPS_WIDTH_MAX_720 : (width * 10));
} else if (paper_size == USER_SIZE + LANDSCAPE) {
fprintf(prn_stream, "%c2 I", LIPS_CSI);
fprintf(prn_stream, "%c81;%d;%dp", LIPS_CSI,
- height * 10, width * 10);
+ width * 10, height * 10);
+ /* modified by shige 06/27 2003
+ width * 10, height * 10); */
+ /* modified by shige 11/09 2003
+ width * 10, height * 10); */
+ (width * 10 > LIPS_HEIGHT_MAX_720)?
+ LIPS_HEIGHT_MAX_720 : (width * 10),
+ (height * 10 > LIPS_WIDTH_MAX_720)?
+ LIPS_WIDTH_MAX_720 : (height * 10));
} else {
fprintf(prn_stream, "%c%dp", LIPS_CSI, paper_size);
}
@@ -1078,14 +1083,14 @@
@@ -1078,14 +1097,28 @@
prev_paper_height != height) {
fprintf(prn_stream, "%c2 I", LIPS_CSI);
fprintf(prn_stream, "%c80;%d;%dp", LIPS_CSI,
- width * 10, height * 10);
+ height * 10, width * 10);
+ /* modified by shige 06/27 2003
+ width * 10, height * 10); */
+ /* modified by shige 11/09 2003
+ height * 10, width * 10); */
+ (height * 10 > LIPS_HEIGHT_MAX_720)?
+ LIPS_HEIGHT_MAX_720 : (height * 10),
+ (width * 10 > LIPS_WIDTH_MAX_720)?
+ LIPS_WIDTH_MAX_720 : (width * 10));
}
} else if (paper_size == USER_SIZE + LANDSCAPE) {
if (prev_paper_width != width ||
@ -41,7 +84,14 @@
fprintf(prn_stream, "%c2 I", LIPS_CSI);
fprintf(prn_stream, "%c81;%d;%dp", LIPS_CSI,
- height * 10, width * 10);
+ width * 10, height * 10);
+ /* modified by shige 06/27 2003
+ height * 10, width * 10); */
+ /* modified by shige 11/09 2003
+ width * 10, height * 10); */
+ (width * 10 > LIPS_HEIGHT_MAX_720)?
+ LIPS_HEIGHT_MAX_720 : (width * 10),
+ (height * 10 > LIPS_WIDTH_MAX_720)?
+ LIPS_WIDTH_MAX_720 : (height * 10));
}
}
/* desired number of copies */

View File

@ -1,5 +1,5 @@
--- lips/gdevl4v.c.orig Thu Nov 2 12:09:18 2000
+++ lips/gdevl4v.c Wed Dec 10 19:42:42 2003
+++ lips/gdevl4v.c Tue Jan 13 01:30:38 2004
@@ -230,41 +230,66 @@
};
@ -92,31 +92,63 @@
private int lips4v_setlinewidth(gx_device_vector * vdev, floatp width);
private int lips4v_setlinecap(gx_device_vector * vdev, gs_line_cap cap);
private int lips4v_setlinejoin(gx_device_vector * vdev, gs_line_join join);
@@ -758,10 +783,10 @@
@@ -758,10 +783,26 @@
/* Íѻ極¥¤¥º */
if (pdev->prev_paper_size != paper_size) {
if (paper_size == USER_SIZE) {
- sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10);
+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10);
+ /* modified by shige 06/27 2003
+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10); */
+ /* modified by shige 11/09 2003
+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10); */
+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
+ (height * 10 > LIPS_HEIGHT_MAX_720)?
+ LIPS_HEIGHT_MAX_720 : (height * 10),
+ (width * 10 > LIPS_WIDTH_MAX_720)?
+ LIPS_WIDTH_MAX_720 : (width * 10));
lputs(s, paper);
} else if (paper_size == USER_SIZE + LANDSCAPE) {
- sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10);
+ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10);
+ /* modified by shige 06/27 2003
+ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10); */
+ /* modified by shige 11/09 2003
+ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10); */
+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
+ (width * 10 > LIPS_HEIGHT_MAX_720)?
+ LIPS_HEIGHT_MAX_720 : (width * 10),
+ (height * 10 > LIPS_WIDTH_MAX_720)?
+ LIPS_WIDTH_MAX_720 : (height * 10));
lputs(s, paper);
} else {
sprintf(paper, "%c%dp", LIPS_CSI, paper_size);
@@ -770,12 +795,12 @@
@@ -770,12 +811,28 @@
} else if (paper_size == USER_SIZE) {
if (pdev->prev_paper_width != width ||
pdev->prev_paper_height != height)
- sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10);
+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10);
+ /* modified by shige 06/27 2003
+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10); */
+ /* modified by shige 11/09 2003
+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10); */
+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
+ (height * 10 > LIPS_HEIGHT_MAX_720)?
+ LIPS_HEIGHT_MAX_720 : (height * 10),
+ (width * 10 > LIPS_WIDTH_MAX_720)?
+ LIPS_WIDTH_MAX_720 : (width * 10));
lputs(s, paper);
} else if (paper_size == USER_SIZE + LANDSCAPE) {
if (pdev->prev_paper_width != width ||
pdev->prev_paper_height != height)
- sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10);
+ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10);
+ /* modified by shige 06/27 2003
+ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10); */
+ /* modified by shige 11/09 2003
+ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10); */
+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
+ (width * 10 > LIPS_HEIGHT_MAX_720)?
+ LIPS_HEIGHT_MAX_720 : (width * 10),
+ (height * 10 > LIPS_WIDTH_MAX_720)?
+ LIPS_WIDTH_MAX_720 : (height * 10));
lputs(s, paper);
}
pdev->prev_paper_size = paper_size;

View File

@ -0,0 +1,18 @@
--- lips/gdevlips.c.orig Thu Nov 2 12:09:18 2000
+++ lips/gdevlips.c Tue Jan 13 01:23:47 2004
@@ -62,7 +62,15 @@
height = tmp;
}
for (pt = lips_paper_table; pt->num_unit < 80; pt++)
+/* add by shige 11/06 2003 */
+#ifdef USE_LIPS_SIZE_ERROR
+ if(pt->width+LIPS_SIZE_ERROR_VALUE>=width
+ && pt->width-LIPS_SIZE_ERROR_VALUE<=width
+ && pt->height+LIPS_SIZE_ERROR_VALUE>=height
+ && pt->height-LIPS_SIZE_ERROR_VALUE<=height)
+#else
if (pt->width == width && pt->height == height)
+#endif
break;
return pt->num_unit + landscape;

View File

@ -0,0 +1,17 @@
--- lips/gdevlips.h.orig Thu Nov 2 12:09:18 2000
+++ lips/gdevlips.h Tue Jan 13 01:23:47 2004
@@ -188,6 +188,14 @@
bool faceup;\
char mediaType[LIPS_MEDIACHAR_MAX];
+/* added by shige 11/06 2003 */
+#define USE_LIPS_SIZE_ERROR
+#define LIPS_SIZE_ERROR_VALUE 2
+
+/* added by shige 11/09 2003 */
+#define LIPS_HEIGHT_MAX_720 11906
+#define LIPS_WIDTH_MAX_720 8419
+
int lips_media_selection(int width, int height);
int lips_packbits_encode(byte * inBuff, byte * outBuff, int Length);
int lips_mode3format_encode(byte * inBuff, byte * outBuff, int Length);

View File

@ -1,5 +1,27 @@
--- lips/gdevl4r.c.orig Thu Nov 2 12:09:18 2000
+++ lips/gdevl4r.c Fri Sep 12 09:22:08 2003
+++ lips/gdevl4r.c Tue Jan 13 01:28:40 2004
@@ -53,8 +53,8 @@
#define lips_device(dtype, procs, dname, xdpi, ydpi, lm, bm, rm, tm, color_bits,\
print_page_copies, image_out, cassetFeed, username)\
{ std_device_std_color_full_body(dtype, &procs, dname,\
- (int)((long)(DEFAULT_WIDTH_10THS) * (xdpi) / 10),\
- (int)((long)(DEFAULT_HEIGHT_10THS) * (ydpi) / 10),\
+ (int)((long)((DEFAULT_WIDTH_10THS) * (xdpi)) / 10),\
+ (int)((long)((DEFAULT_HEIGHT_10THS) * (ydpi)) / 10),\
xdpi, ydpi, color_bits,\
-(lm) * (xdpi), -(tm) * (ydpi),\
(lm) * 72.0, (bm) * 72.0,\
@@ -68,8 +68,8 @@
#define lips4_device(dtype, procs, dname, xdpi, ydpi, lm, bm, rm, tm, color_bits,\
print_page_copies, image_out, cassetFeed, username)\
{ std_device_std_color_full_body(dtype, &procs, dname,\
- (int)((long)(DEFAULT_WIDTH_10THS) * (xdpi) / 10),\
- (int)((long)(DEFAULT_HEIGHT_10THS) * (ydpi) / 10),\
+ (int)((long)((DEFAULT_WIDTH_10THS) * (xdpi)) / 10),\
+ (int)((long)((DEFAULT_HEIGHT_10THS) * (ydpi)) / 10),\
xdpi, ydpi, color_bits,\
-(lm) * (xdpi), -(tm) * (ydpi),\
(lm) * 72.0, (bm) * 72.0,\
@@ -178,8 +178,13 @@
private int lips4c_output_page(gx_device_printer * pdev, FILE * prn_stream);
private int lips_delta_encode(byte * inBuff, byte * prevBuff, byte * outBuff, byte * diffBuff, int Length);
@ -14,26 +36,47 @@
private int lips4type_print_page_copies(gx_device_printer * pdev, FILE * prn_stream, int num_copies, int ptype);
private int
@@ -1065,11 +1070,11 @@
@@ -1065,11 +1070,25 @@
if (paper_size == USER_SIZE) {
fprintf(prn_stream, "%c2 I", LIPS_CSI);
fprintf(prn_stream, "%c80;%d;%dp", LIPS_CSI,
- width * 10, height * 10);
+ height * 10, width * 10);
+ /* modified by shige 06/27 2003
+ width * 10, height * 10); */
+ /* modified by shige 11/09 2003
+ height * 10, width * 10); */
+ (height * 10 > LIPS_HEIGHT_MAX_720)?
+ LIPS_HEIGHT_MAX_720 : (height * 10),
+ (width * 10 > LIPS_WIDTH_MAX_720)?
+ LIPS_WIDTH_MAX_720 : (width * 10));
} else if (paper_size == USER_SIZE + LANDSCAPE) {
fprintf(prn_stream, "%c2 I", LIPS_CSI);
fprintf(prn_stream, "%c81;%d;%dp", LIPS_CSI,
- height * 10, width * 10);
+ width * 10, height * 10);
+ /* modified by shige 06/27 2003
+ width * 10, height * 10); */
+ /* modified by shige 11/09 2003
+ width * 10, height * 10); */
+ (width * 10 > LIPS_HEIGHT_MAX_720)?
+ LIPS_HEIGHT_MAX_720 : (width * 10),
+ (height * 10 > LIPS_WIDTH_MAX_720)?
+ LIPS_WIDTH_MAX_720 : (height * 10));
} else {
fprintf(prn_stream, "%c%dp", LIPS_CSI, paper_size);
}
@@ -1078,14 +1083,14 @@
@@ -1078,14 +1097,28 @@
prev_paper_height != height) {
fprintf(prn_stream, "%c2 I", LIPS_CSI);
fprintf(prn_stream, "%c80;%d;%dp", LIPS_CSI,
- width * 10, height * 10);
+ height * 10, width * 10);
+ /* modified by shige 06/27 2003
+ width * 10, height * 10); */
+ /* modified by shige 11/09 2003
+ height * 10, width * 10); */
+ (height * 10 > LIPS_HEIGHT_MAX_720)?
+ LIPS_HEIGHT_MAX_720 : (height * 10),
+ (width * 10 > LIPS_WIDTH_MAX_720)?
+ LIPS_WIDTH_MAX_720 : (width * 10));
}
} else if (paper_size == USER_SIZE + LANDSCAPE) {
if (prev_paper_width != width ||
@ -41,7 +84,14 @@
fprintf(prn_stream, "%c2 I", LIPS_CSI);
fprintf(prn_stream, "%c81;%d;%dp", LIPS_CSI,
- height * 10, width * 10);
+ width * 10, height * 10);
+ /* modified by shige 06/27 2003
+ height * 10, width * 10); */
+ /* modified by shige 11/09 2003
+ width * 10, height * 10); */
+ (width * 10 > LIPS_HEIGHT_MAX_720)?
+ LIPS_HEIGHT_MAX_720 : (width * 10),
+ (height * 10 > LIPS_WIDTH_MAX_720)?
+ LIPS_WIDTH_MAX_720 : (height * 10));
}
}
/* desired number of copies */

View File

@ -1,5 +1,5 @@
--- lips/gdevl4v.c.orig Thu Nov 2 12:09:18 2000
+++ lips/gdevl4v.c Wed Dec 10 19:42:42 2003
+++ lips/gdevl4v.c Tue Jan 13 01:30:38 2004
@@ -230,41 +230,66 @@
};
@ -92,31 +92,63 @@
private int lips4v_setlinewidth(gx_device_vector * vdev, floatp width);
private int lips4v_setlinecap(gx_device_vector * vdev, gs_line_cap cap);
private int lips4v_setlinejoin(gx_device_vector * vdev, gs_line_join join);
@@ -758,10 +783,10 @@
@@ -758,10 +783,26 @@
/* Íѻ極¥¤¥º */
if (pdev->prev_paper_size != paper_size) {
if (paper_size == USER_SIZE) {
- sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10);
+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10);
+ /* modified by shige 06/27 2003
+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10); */
+ /* modified by shige 11/09 2003
+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10); */
+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
+ (height * 10 > LIPS_HEIGHT_MAX_720)?
+ LIPS_HEIGHT_MAX_720 : (height * 10),
+ (width * 10 > LIPS_WIDTH_MAX_720)?
+ LIPS_WIDTH_MAX_720 : (width * 10));
lputs(s, paper);
} else if (paper_size == USER_SIZE + LANDSCAPE) {
- sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10);
+ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10);
+ /* modified by shige 06/27 2003
+ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10); */
+ /* modified by shige 11/09 2003
+ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10); */
+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
+ (width * 10 > LIPS_HEIGHT_MAX_720)?
+ LIPS_HEIGHT_MAX_720 : (width * 10),
+ (height * 10 > LIPS_WIDTH_MAX_720)?
+ LIPS_WIDTH_MAX_720 : (height * 10));
lputs(s, paper);
} else {
sprintf(paper, "%c%dp", LIPS_CSI, paper_size);
@@ -770,12 +795,12 @@
@@ -770,12 +811,28 @@
} else if (paper_size == USER_SIZE) {
if (pdev->prev_paper_width != width ||
pdev->prev_paper_height != height)
- sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10);
+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10);
+ /* modified by shige 06/27 2003
+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10); */
+ /* modified by shige 11/09 2003
+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10); */
+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
+ (height * 10 > LIPS_HEIGHT_MAX_720)?
+ LIPS_HEIGHT_MAX_720 : (height * 10),
+ (width * 10 > LIPS_WIDTH_MAX_720)?
+ LIPS_WIDTH_MAX_720 : (width * 10));
lputs(s, paper);
} else if (paper_size == USER_SIZE + LANDSCAPE) {
if (pdev->prev_paper_width != width ||
pdev->prev_paper_height != height)
- sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10);
+ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10);
+ /* modified by shige 06/27 2003
+ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10); */
+ /* modified by shige 11/09 2003
+ sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10); */
+ sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
+ (width * 10 > LIPS_HEIGHT_MAX_720)?
+ LIPS_HEIGHT_MAX_720 : (width * 10),
+ (height * 10 > LIPS_WIDTH_MAX_720)?
+ LIPS_WIDTH_MAX_720 : (height * 10));
lputs(s, paper);
}
pdev->prev_paper_size = paper_size;

View File

@ -0,0 +1,18 @@
--- lips/gdevlips.c.orig Thu Nov 2 12:09:18 2000
+++ lips/gdevlips.c Tue Jan 13 01:23:47 2004
@@ -62,7 +62,15 @@
height = tmp;
}
for (pt = lips_paper_table; pt->num_unit < 80; pt++)
+/* add by shige 11/06 2003 */
+#ifdef USE_LIPS_SIZE_ERROR
+ if(pt->width+LIPS_SIZE_ERROR_VALUE>=width
+ && pt->width-LIPS_SIZE_ERROR_VALUE<=width
+ && pt->height+LIPS_SIZE_ERROR_VALUE>=height
+ && pt->height-LIPS_SIZE_ERROR_VALUE<=height)
+#else
if (pt->width == width && pt->height == height)
+#endif
break;
return pt->num_unit + landscape;

View File

@ -0,0 +1,17 @@
--- lips/gdevlips.h.orig Thu Nov 2 12:09:18 2000
+++ lips/gdevlips.h Tue Jan 13 01:23:47 2004
@@ -188,6 +188,14 @@
bool faceup;\
char mediaType[LIPS_MEDIACHAR_MAX];
+/* added by shige 11/06 2003 */
+#define USE_LIPS_SIZE_ERROR
+#define LIPS_SIZE_ERROR_VALUE 2
+
+/* added by shige 11/09 2003 */
+#define LIPS_HEIGHT_MAX_720 11906
+#define LIPS_WIDTH_MAX_720 8419
+
int lips_media_selection(int width, int height);
int lips_packbits_encode(byte * inBuff, byte * outBuff, int Length);
int lips_mode3format_encode(byte * inBuff, byte * outBuff, int Length);