1 /*
2  * Epson Inkjet Printer Driver (ESC/P-R) for Linux
3  * Copyright (C) Seiko Epson Corporation 2002-2013.
4  *
5  *  This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA.
18  */
19 
20 #ifndef PIPSDEF_H
21 #define PIPSDEF_H
22 
23 #ifdef HAVE_CONFIG_H
24 #  include <config.h>
25 #endif
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif /* __cplusplus */
30 
31 	typedef unsigned char UCHAR;
32 	typedef unsigned short USHORT;
33 	typedef unsigned int UINT;
34 	typedef unsigned long ULONG;
35 	typedef int BOOL;
36 	typedef void* HANDLE;
37 
38 #ifdef __cplusplus
39 }
40 #endif /* __cplusplus */
41 
42 
43 #define MODE_ITEM 4
44 
45 enum MODE_OFSET
46 {
47   MOFS_PAPER_SIZE = 0,
48   MOFS_MEDIA,
49   MOFS_QUALITY,
50   MOFS_BORDERLESS_PRINT
51 };
52 
53 /* output type */
54 enum eOUTPUT_FORMAT
55 {
56   PIPS_OUTPUT_MONO = 1,
57   PIPS_OUTPUT_CMYKcm = 0
58 };
59 
60 /* media size */
61 #define	    PM_MSID_A4                  0x00
62 #define	    PM_MSID_LETTER              0x01
63 #define	    PM_MSID_LEGAL               0x02
64 #define	    PM_MSID_A5                  0x03
65 #define	    PM_MSID_A6                  0x04
66 #define	    PM_MSID_B5                  0x05
67 #define	    PM_MSID_EXECUTIVE           0x06
68 #define	    PM_MSID_HALFLETTER          0x07
69 #define	    PM_MSID_PANORAMIC           0x08
70 #define	    PM_MSID_TRIM_4X6            0x09
71 #define	    PM_MSID_4X6                 0x0A
72 #define	    PM_MSID_5X8                 0x0B
73 #define	    PM_MSID_8X10                0x0C
74 #define	    PM_MSID_10X15               0x0D
75 #define	    PM_MSID_200X300             0x0E
76 #define	    PM_MSID_L                   0x0F
77 #define	    PM_MSID_POSTCARD            0x10
78 #define	    PM_MSID_DBLPOSTCARD         0x11
79 #define	    PM_MSID_ENV_10_L            0x12
80 #define	    PM_MSID_ENV_C6_L            0x13
81 #define	    PM_MSID_ENV_DL_L            0x14
82 #define	    PM_MSID_NEWEVN_L            0x15
83 #define	    PM_MSID_CHOKEI_3            0x16
84 #define	    PM_MSID_CHOKEI_4            0x17
85 #define	    PM_MSID_YOKEI_1             0x18
86 #define	    PM_MSID_YOKEI_2             0x19
87 #define	    PM_MSID_YOKEI_3             0x1A
88 #define	    PM_MSID_YOKEI_4             0x1B
89 #define	    PM_MSID_2L                  0x1C
90 #define	    PM_MSID_ENV_10              0x1D	// ENV_10_P
91 #define	    PM_MSID_ENV_C6              0x1E	// ENV_C6_P
92 #define	    PM_MSID_ENV_DL              0x1F	// ENV_DL_P
93 #define	    PM_MSID_NEWENV              0x20	// NEWENV_P
94 #define	    PM_MSID_BUZCARD_89X55       0x21	// MEISHI [ 89.000, 55.000]
95 #define     PM_MSID_BUZCARD_89X50       0x22	// [ 89.000, 50.000]
96 #define	    PM_MSID_CARD_54X86          0x23
97 #define	    PM_MSID_BUZCARD_55X91       0x24
98 #define     PM_MSID_ALBUM_L             0x25	// [127.000,198.000]
99 #define	    PM_MSID_ALBUM_A5            0x26	// [210.000,321.000]
100 #define	    PM_MSID_PALBUM_L_L          0x27
101 #define	    PM_MSID_PALBUM_2L           0x28
102 #define	    PM_MSID_PALBUM_A5_L         0x29
103 #define	    PM_MSID_PALBUM_A4           0x2A
104 #define	    PM_MSID_4X7                 0x2B	// HIVISION
105 
106 #define	    PM_MSID_KAKU_2              0x2C	// Lib5.6 [240.000,332.000]
107 #define	    PM_MSID_ENV_C4_P            0x2D	// Lib5.6 [229.000,324.000]
108 #define	    PM_MSID_B6                  0x2E	// Lib5.6 [128.000,182.000]
109 #define	    PM_MSID_KAKU_20             0x2F	// Lib5.6 [229.000,324.000]
110 #define	    PM_MSID_A5_24HOLE           0x30	// Lib5.6 [148.000,210.000]
111 #define	    PM_MSID_CHOKEI_40           0x34	// Lib5.6 [ 90.000,225.000]
112 
113 #define	    PM_MSID_A3NOBI              0x3D
114 #define	    PM_MSID_A3                  0x3E
115 #define	    PM_MSID_B4                  0x3F
116 #define	    PM_MSID_USB	                0x40
117 #define	    PM_MSID_11X14               0x41
118 #define	    PM_MSID_B3                  0x42
119 #define	    PM_MSID_A2                  0x43
120 #define	    PM_MSID_USC                 0x44
121 #define     PM_MSID_10X12               0x45
122 #define     PM_MSID_12X12               0x46
123 
124 #define     PM_MSID_SP1			        0x47	// Lib5.6 [210.000,270.000]
125 #define     PM_MSID_SP2                 0x48	// Lib5.6 [210.000,149.000]
126 #define     PM_MSID_SP3                 0x49	// Lib5.6 [100.000,170.000]
127 #define     PM_MSID_SP4                 0x4A	// Lib5.6 [130.000,182.000]
128 #define     PM_MSID_SP5                 0x4B	// Lib5.6 [192.000,132.000]
129 #define     PM_MSID_16K                 0x4C	// Lib5.6 [195.000,270.000]
130 #define     PM_MSID_8K                  0x4D	// Lib5.6 [270.000,390.000]
131 
132 #define	    PM_MSID_USER                0x63
133 
134 #define	    PM_MSID_HALFCUT             0x80	// Lib5.6 [356.000,432.000]
135 #define	    PM_MSID_16X20               0x81	// Lib5.6 [406.400,508.000]
136 
137 #define	    PM_MSID_UNKNOWN             -2
138 
139 
140 /* Support media type id */
141 #define	    PM_MTID_PLAIN               0x00
142 #define	    PM_MTID_360INKJET           0x01
143 #define	    PM_MTID_IRON                0x02
144 #define	    PM_MTID_PHOTOINKJET         0x03
145 #define	    PM_MTID_PHOTOADSHEET        0x04
146 #define	    PM_MTID_MATTE               0x05
147 #define	    PM_MTID_PHOTO               0x06
148 #define	    PM_MTID_PHOTOFILM           0x07
149 #define	    PM_MTID_MINIPHOTO           0x08
150 #define	    PM_MTID_OHP                 0x09
151 #define	    PM_MTID_BACKLIGHT           0x0A
152 #define	    PM_MTID_PGPHOTO             0x0B
153 #define	    PM_MTID_PSPHOTO             0x0C
154 #define	    PM_MTID_PLPHOTO             0x0D
155 #define	    PM_MTID_MCGLOSSY            0x0E
156 #define	    PM_MTID_ARCHMATTE           0x0F
157 #define	    PM_MTID_WATERCOLOR          0x10
158 #define	    PM_MTID_PROGLOSS            0x11
159 #define	    PM_MTID_MATTEBOARD          0x12
160 #define	    PM_MTID_PHOTOGLOSS          0x13
161 #define	    PM_MTID_SEMIPROOF           0x14
162 #define	    PM_MTID_SUPERFINE2          0x15
163 #define	    PM_MTID_DSMATTE             0x16
164 #define	    PM_MTID_CLPHOTO             0x17
165 #define	    PM_MTID_ECOPHOTO            0x18
166 #define	    PM_MTID_VELVETFINEART       0x19
167 #define	    PM_MTID_PROOFSEMI           0x1A
168 #define	    PM_MTID_HAGAKIRECL          0x1B
169 #define	    PM_MTID_HAGAKIINKJET        0x1C
170 #define	    PM_MTID_PHOTOINKJET2        0x1D
171 #define	    PM_MTID_DURABRITE           0x1E
172 #define	    PM_MTID_MATTEMEISHI         0x1F
173 #define	    PM_MTID_HAGAKIATENA         0x20
174 #define	    PM_MTID_PHOTOALBUM          0x21
175 #define	    PM_MTID_PHOTOSTAND          0x22
176 #define	    PM_MTID_RCB                 0x23
177 #define	    PM_MTID_PGPHOTOEG           0x24
178 #define	    PM_MTID_ENVELOPE            0x25
179 #define	    PM_MTID_PLATINA             0x26
180 #define	    PM_MTID_ULTRASMOOTH         0x27
181 /* add Wed Jan 28 2009 v */
182 #define     PM_MTID_SFHAGAKI            0x28  /* "Super Fine Postcard\0"                       */
183 #define     PM_MTID_PHOTOSTD            0x29  /* "Premium Glossy Photo Paper (Standard)\0"     */
184 #define     PM_MTID_GLOSSYHAGAKI        0x2A  /* "Glossy Postcard\0"                           */
185 #define     PM_MTID_GLOSSYPHOTO         0x2B  /* "Glossy Photo Paper\0"                        */
186 #define     PM_MTID_GLOSSYCAST	        0x2C  /* "Epson Photo\0"							   */
187 #define     PM_MTID_BUSINESSCOAT        0x2D  /* "Business Ink Jet Coat Paper\0"			   */
188 /* add Wed Jan 28 2009 ^ */
189 /* del Wed Jan 28 2009 #define	    PM_MTID_GPHOTO              0x2B*/
190 /* del Wed Jan 28 2009 #define	    PM_MTID_PHOTOEGCP           0x2C*/
191 //#define	    PM_MTID_HAGAKIATENA         0x20	// defined twice
192 
193 #define	    PM_MTID_MEDICINEBAG         0x2E	// Lib5.6  "Medicine bag\0"
194 
195 #define	    PM_MTID_THICKPAPER	        0x2F
196 
197 #define	    PM_MTID_BROCHURE            0x30	// Lib5.6 "Brochure & Flyer Paper Glossy Double-sided\0"
198 #define	    PM_MTID_MATTE_DS            0x31	// Lib5.6 "EPSON Matte Double-sided\0"
199 #define	    PM_MTID_BSMATTE_DS          0x32	// Lib5.6 "EPSON Bussines card Matte Double-sided\0"
200 #define	    PM_MTID_3D                  0x33	// Lib5.6 "3D media\0"
201 #define	    PM_MTID_LCPP                0x34	// Lib5.6 "Photo Paper Glossy\0"
202 
203 #define	    PM_MTID_PREPRINTED          0x35
204 #define	    PM_MTID_LETTERHEAD          0x36
205 #define	    PM_MTID_RECYCLED	        0x37
206 #define	    PM_MTID_COLORPAPER          0x38	// COLOR
207 
208 #define	    PM_MTID_BUSINESS_PLAIN      0x39	// Lib5.6 "Business Plain Paper\0"
209 
210 #define	    PM_MTID_PLAIN_ROLL_STICKER  0x3B	// Lib5.6 "Plain Roll Sticker\0"
211 #define	    PM_MTID_GROSSY_ROLL_STICKER 0x3C	// Lib5.6 "Glossy Roll Sticker\0"
212 
213 #define		PM_MTID_THICKPAPER1			0x41	// Lib5.6 "Thick Paper 1\0"
214 #define		PM_MTID_THICKPAPER2			0x42	// Lib5.6 "Thick Paper 2\0"
215 #define		PM_MTID_THICKPAPER3			0x43	// Lib5.6 "Thick Paper 3\0"
216 
217 #define	    PM_MTID_HIGHQUALITY_PLAIN   0x46	// Lib5.6 "High Quality Plain Paper\0"
218 #define	    PM_MTID_BS_HALFGLOSSY_DS    0x47	// Lib5.6 "Bussines card Harf Glossy Double-sided\0"
219 
220 #define	    PM_MTID_CDDVD               0x5B
221 #define	    PM_MTID_CDDVDHIGH           0x5C
222 
223 #define	    PM_MTID_CDDVDGLOSSY         0x5D	// Lib5.6 "CD/DVD Glossy Surface\0"
224 
225 #define	    PM_MTID_CLEANING            0x63
226 
227 #define	    PM_MTID_PLOOFING_WHITE_MAT  0x8E	// Lib5.6 "Proofing Paper White Semimatte\0"
228 
229 #define		PM_MTID_AUTO_PLAIN			0xFD	// Lib5.6 "Auto Select(Plain Paper)"
230 
231 #define	    PM_MTID_UNKNOWN             -2
232 
233 
234 #define	SILENT_MASK 0x10000000
235 
236 
237 /* quality level set pattern bits */
238 enum eQUALITY
239 {
240   PIPS_LV_DRAFT = 0,
241   PIPS_LV_NORMAL = 1,
242   PIPS_LV_HIGH = 2
243 
244 };
245 
246 /* Ink status */
247 enum eINK_STATUS
248 {
249   ST_INK_NORMAL = 0,
250   ST_INK_LOW,
251   ST_INK_END
252 };
253 
254 /* Fit to page */
255 enum eFIT_PAGE
256 {
257 	PIPS_FP_OFF = 0,
258 	PIPS_FP_ON
259 };
260 
261 /* Multi page */
262 enum eMULTI_PAGE
263 {
264 	PIPS_MP_1 = 0,
265 	PIPS_MP_2,
266 	PIPS_MP_4
267 };
268 
269 /* Borderless Print */
270 enum eBORDERLESS_PRINT
271 {
272 	PIPS_BL_OFF = 0,
273 	PIPS_BL_ON
274 };
275 
276 typedef int (*func_t)(UCHAR *, void *, void *, void *);
277 
278 
279 #endif /* PIPSDEF_H */
280