1 /*________________________________  epson-escpr-def.h   ________________________________*/
2 
3 /*       1         2         3         4         5         6         7         8        */
4 /*34567890123456789012345678901234567890123456789012345678901234567890123456789012345678*/
5 /*******************************************|********************************************/
6 /*
7  *   Copyright (c) 2009  Seiko Epson Corporation                 All rights reserved.
8  *
9  *   Copyright protection claimed includes all forms and matters of
10  *   copyrightable material and information now allowed by statutory or judicial
11  *   law or hereinafter granted, including without limitation, material generated
12  *   from the software programs which are displayed on the screen such as icons,
13  *   screen display looks, etc.
14  *
15  */
16 /*******************************************|********************************************/
17 /*                                                                                      */
18 /*                           Epson ESC/PR External Definitions                          */
19 /*                                                                                      */
20 /*******************************************|********************************************/
21 #ifndef __EPSON_ESCPR_DEF_H__
22 #define __EPSON_ESCPR_DEF_H__
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /*------------------------------------  Includes   -------------------------------------*/
28 /*******************************************|********************************************/
29 #include "epson-typedefs.h"
30 
31 /*------------------------------  Local Compiler Switch  -------------------------------*/
32 /*******************************************|********************************************/
33 /* Network Intarface bind option. following items are only either one in effect. */
34 #define LCOMSW_BINDIF_IF_NEED		0	/* 1: bind interface when send find packet error*/
35 #define LCOMSW_USE_MULTI_IF			0	/* 1: bind multi interface                      */
36 
37 /*------------------------------------- Data Types -------------------------------------*/
38 /*******************************************|********************************************/
39 
40 /*----------------------------------  Generic Macros   ---------------------------------*/
41 /*******************************************|********************************************/
42 
43 /*-----------------------------------  Definitions  ------------------------------------*/
44 /*******************************************|********************************************/
45 
46 #define EPS_IFNAME_LEN	(16)
47 
48     /*** Maximum Ink Cartridge Number                                                   */
49     /*** -------------------------------------------------------------------------------*/
50 #define EPS_INK_NUM                 20
51 
52     /*** Maximum PaperSource Number                                                     */
53     /*** -------------------------------------------------------------------------------*/
54 #define EPS_PAPERSOURCE_NUM         20
55 
56     /*** Buffer size for manufacter name and model name                                 */
57     /*** -------------------------------------------------------------------------------*/
58 #define EPS_NAME_BUFFSIZE           64
59 #define EPS_PRNID_BUFFSIZE          128
60 #define EPS_ADDR_BUFFSIZE           32
61 
62     /*** Communication Mode                                                             */
63     /*** -------------------------------------------------------------------------------*/
64 #define EPS_COMM_UNID			0x00000001  /* Uni-Directional Communication            */
65 #define EPS_COMM_BID			0x00000002  /* Bi-Directional Communication             */
66 
67 	/*** print protocol                                                                 */
68     /*** -------------------------------------------------------------------------------*/
69 #define EPS_PROTOCOL_INVALID	0x00000000	/* Invalid                                  */
70 #define EPS_PROTOCOL_USB		0x00000010  /* USB                                      */
71 /*#define EPS_PROTOCOL_UPNP		0x00000020     UPnP                                     */
72 #define EPS_PROTOCOL_LPR		0x00000040  /* LPR                                      */
73 #define EPS_PROTOCOL_RAW		0x00000080  /* RAW Port                                 */
74 #define EPS_PROTOCOL_NET        (EPS_PROTOCOL_LPR | EPS_PROTOCOL_RAW)	/* All Network  */
75 #define EPS_PROTOCOL_ALL        (EPS_PROTOCOL_USB | EPS_PROTOCOL_NET)	/* All          */
76 
77 #define EPS_COMM_USB_UNID   (EPS_COMM_UNID | EPS_PROTOCOL_USB )  /* USB Uni-Directional Communication  */
78 #define EPS_COMM_USB_BID    (EPS_COMM_BID  | EPS_PROTOCOL_USB )  /* USB Bi-Directional Communication   */
79 #define EPS_COMM_LPR_UNID   (EPS_COMM_UNID | EPS_PROTOCOL_LPR )  /* LPR Uni-Directional Communication  */
80 #define EPS_COMM_LPR_BID    (EPS_COMM_BID  | EPS_PROTOCOL_LPR )  /* LPR Bi-Directional Communication   */
81 #define EPS_COMM_RAW_UNID   (EPS_COMM_UNID | EPS_PROTOCOL_RAW )  /* RAW Uni-Directional Communication  */
82 #define EPS_COMM_RAW_BID    (EPS_COMM_BID  | EPS_PROTOCOL_RAW )  /* RAW Bi-Directional Communication   */
83 #define EPS_COMM_NET_UNID   (EPS_COMM_UNID | EPS_PROTOCOL_NET )  /* Net Uni-Directional Communication  */
84 #define EPS_COMM_NET_BID    (EPS_COMM_BID  | EPS_PROTOCOL_NET )  /* Net Bi-Directional Communication   */
85 #define EPS_COMM_ALL_UNID   (EPS_COMM_USB_UNID | EPS_COMM_NET_UNID)  /* USB & Net Uni-Directional Communication */
86 #define EPS_COMM_ALL_BID    (EPS_COMM_USB_BID  | EPS_COMM_NET_BID)  /* USB & Net Bi-Directional Communication */
87 
88 	/*** sub protocol                                                                   */
89     /*** -------------------------------------------------------------------------------*/
90 #define EPS_SUBPROTOCOL_PCDEV	0x00001000	/* UPnP PC device                           */
91 
92 	  /* mask                                                                           */
93 #define EPS_PRT_MASK_DIRECTION		0x0000000F
94 #define EPS_PRT_MASK_PROTOCOL		0x00000FF0
95 #define EPS_PRT_MASK_SUBPROTOCOL	0x0000F000
96 
97 #define EPS_PRT_DIRECTION(p)		( (p) & EPS_PRT_MASK_DIRECTION )
98 #define EPS_PRT_PROTOCOL(p)			( (p) & EPS_PRT_MASK_PROTOCOL )
99 #define EPS_PRT_SUBPROTOCOL(p)		( (p) & EPS_PRT_MASK_SUBPROTOCOL )
100 #define EPS_PRT_PROTOCOL_EX(p)		( (p) & (EPS_PRT_MASK_PROTOCOL | EPS_PRT_MASK_SUBPROTOCOL) )
101 #define EPS_IS_BI_PROTOCOL(p)       ( ( (p) & EPS_COMM_BID) == EPS_COMM_BID )
102 
103 
104 	/*** print language                                                                  */
105     /*** -------------------------------------------------------------------------------*/
106 #define EPS_LANG_UNKNOWN			(0)
107 #define EPS_LANG_ESCPR				(1)			/* ESC/P-R */
108 #define EPS_LANG_ESCPAGE			(2)			/* ESC/Page(Mono) */
109 #define EPS_LANG_ESCPAGE_COLOR		(3)			/* ESC/Page-Color */
110 
111 	/*** probe method                                                                   */
112     /*** -------------------------------------------------------------------------------*/
113 #define EPS_PRB_BYID               1		/* probe by ID string                       */
114 #define EPS_PRB_BYADDR             2		/* probe by IP Address                      */
115 
116 
117 	/*** Supported functions                                                            */
118     /*** -------------------------------------------------------------------------------*/
119 #define EPS_SPF_RGBPRINT        0x0001      /* bitmap print.                            */
120 #define EPS_SPF_JPGPRINT        0x0002      /* jpeg print.                              */
121 /*#define EPS_SPF_PAPERSOURCE     0x0004       Specify the Paper source. epsStatPage() */
122 
123 
124     /*** Print Page Attribute Values                                                    */
125     /*** -------------------------------------------------------------------------------*/
126         /*** Media Size                                                                 */
127         /*** ---------------------------------------------------------------------------*/
128 /*** See EPS_MSID_* in epson-escpr-media.h                                              */
129 
130         /*** Media Type                                                                 */
131         /*** ---------------------------------------------------------------------------*/
132 /*** See EPS_MTID_* in epson-escpr-media.h                                              */
133 
134         /*** Border Mode                                                                */
135         /*** ---------------------------------------------------------------------------*/
136 /*** See EPS_MTID_* in epson-escpr-media.h                                              */
137 
138         /*** Print Quality                                                              */
139         /*** ---------------------------------------------------------------------------*/
140 /*** See EPS_MTID_* in epson-escpr-media.h                                              */
141 
142         /*** Color Mode                                                                 */
143         /*** ---------------------------------------------------------------------------*/
144 #define EPS_CM_COLOR                0       /* Color                                    */
145 #define EPS_CM_MONOCHROME           1       /* Monochrome                               */
146 #define EPS_CM_SEPIA                2       /* Sepia                                    */
147 
148 
149         /*** In (input image) Resolution                                                */
150         /*** ---------------------------------------------------------------------------*/
151 #define EPS_IR_360X360              (1 << 0)	/* 360 x 360 dpi                        */
152 #define EPS_IR_720X720              (1 << 1) 	/* 720 x 720 dpi				        */
153 #define EPS_IR_150X150              (1 << 2)    /* 150 x 150 dpi                        */
154 #define EPS_IR_300X300              (1 << 3)    /* 300 x 300 dpi                        */
155 #define EPS_IR_600X600              (1 << 4)	/* 600 x 600 dpi                        */
156 
157         /*** Print Direction                                                            */
158         /*** ---------------------------------------------------------------------------*/
159 #define EPS_PD_BIDIREC              0       /* Bi-direction                             */
160 #define EPS_PD_UNIDIREC             1       /* Uni-direction                            */
161 
162         /*** Color Plane                                                                */
163         /*** ---------------------------------------------------------------------------*/
164 #define EPS_CP_FULLCOLOR            0       /* Full Color                               */
165 #define EPS_CP_256COLOR             1       /* 256 Color                                */
166 #define EPS_CP_JPEG                 2       /* Jpeg                                     */
167 #define EPS_CP_PRINTCMD             3       /* Print command                            */
168 
169         /*** Command data type                                                          */
170         /*** ---------------------------------------------------------------------------*/
171 #define EPS_MNT_UNKNOWN              0       /* invalid type                            */
172 #define EPS_MNT_CUSTOM               1       /* Cusutom data                            */
173 #define EPS_MNT_CLEANING             2       /* Cleaning command data                   */
174 #define EPS_MNT_NOZZLE               3       /* NozzleCheck command data                */
175 
176 		/*** Palette Size                                                               */
177         /*** ---------------------------------------------------------------------------*/
178 /*** Specified in Developer code                                                        */
179 
180         /*** Palette Data                                                               */
181         /*** ---------------------------------------------------------------------------*/
182 /*** Specified in Developer code                                                        */
183 
184         /*** Brightness (range: -50 <= brightness <= 50)                                */
185         /*** ---------------------------------------------------------------------------*/
186 /*** Specified in Developer code                                                        */
187 
188         /*** Contrast   (range: -50 <= contrast   <= 50)                                */
189         /*** ---------------------------------------------------------------------------*/
190 /*** Specified in Developer code                                                        */
191 
192         /*** Saturation (range: -50 <= saturation <= 50)                                */
193         /*** ---------------------------------------------------------------------------*/
194 /*** Specified in Developer code                                                        */
195 
196         /*** Top Margin                                                                 */
197         /*** ---------------------------------------------------------------------------*/
198 /*** Specified in Developer code                                                        */
199 
200         /*** Left Margin                                                                */
201         /*** ---------------------------------------------------------------------------*/
202 /*** Specified in Developer code                                                        */
203 
204         /*** Bottom Margin                                                              */
205         /*** ---------------------------------------------------------------------------*/
206 /*** Specified in Developer code                                                        */
207 
208         /*** Right Margin                                                               */
209         /*** ---------------------------------------------------------------------------*/
210 /*** Specified in Developer code                                                        */
211 
212         /*** CD/DVD Inside Dimameter                                                    */
213         /*** ---------------------------------------------------------------------------*/
214 #define EPS_CDDIM_IN_MIN			18
215 #define EPS_CDDIM_IN_MAX			46
216 #define EPS_CDDIM_IN_DEF			43
217 
218         /*** CD/DVD Outside Dimameter                                                   */
219         /*** ---------------------------------------------------------------------------*/
220 #define EPS_CDDIM_OUT_MIN			114
221 #define EPS_CDDIM_OUT_MAX			120
222 #define EPS_CDDIM_OUT_DEF			116
223 
224 		/*** APF Automatic Correction                                                   */
225         /*** ---------------------------------------------------------------------------*/
226 #define EPS_APF_ACT_NOTHING         0       /* Nothing                                  */
227 #define EPS_APF_ACT_STANDARD        1       /* Standard (use Exif)                      */
228 #define EPS_APF_ACT_PIM             2       /* use PIM                                  */
229 #define EPS_APF_ACT_PORTRATE        3       /* Portrate                                 */
230 #define EPS_APF_ACT_VIEW	        4       /* View										*/
231 #define EPS_APF_ACT_NIGHTVIEW       5       /* Night View                               */
232 
233         /*** APF Redeye                                                                 */
234         /*** ---------------------------------------------------------------------------*/
235 #define EPS_APF_RDE_NOTHING         0       /* Nothing                                  */
236 #define EPS_APF_RDE_CORRECT         1       /* MoreSoft                                 */
237 
238         /*** max Jpeg data size                                                         */
239         /*** ---------------------------------------------------------------------------*/
240 #define EPS_JPEG_SIZE_MAX           (1024*1024*3)   /* 3MB                              */
241 #define EPS_JPEG_PIXEL_MAX          (9600)
242 #define EPS_JPEG_CHUNK_SIZE_MAX		(1024*64-1)		/* 0xFFFF max short */
243 #define EPS_JPEG_SIZE_UNLIMIT       ~(1<<(sizeof(EPS_INT32)*8-1))   /* 2GB              */
244 
245 
246     /*** Layout template value                                                          */
247     /*** -------------------------------------------------------------------------------*/
248 #define EPS_POS_HLEFT			(-1)
249 #define EPS_POS_HRIGHT			(-2)
250 #define EPS_POS_HCENTER			(-3)
251 #define EPS_POS_VTOP			(-1)
252 #define EPS_POS_VBOTTOM			(-2)
253 #define EPS_POS_VMIDDLE			(-3)
254 
255 
256 	/*** duplex                                                                         */
257     /*** -------------------------------------------------------------------------------*/
258 #define EPS_DUPLEX_NONE			(0)
259 #define EPS_DUPLEX_LONG			(1 << 0)
260 #define EPS_DUPLEX_SHORT		(1 << 1)
261 
262 
263 	/*** feed direction                                                                 */
264     /*** -------------------------------------------------------------------------------*/
265 #define EPS_FEEDDIR_PORTRAIT	(0)
266 #define EPS_FEEDDIR_LANDSCAPE	(1)
267 
268 
269     /*** Ink Color                                                                      */
270     /*** -------------------------------------------------------------------------------*/
271 enum EPS_COLOR {
272     EPS_COLOR_BLACK,
273     EPS_COLOR_CYAN,
274     EPS_COLOR_MAGENTA,
275     EPS_COLOR_YELLOW,
276     EPS_COLOR_LIGHTCYAN,
277     EPS_COLOR_LIGHTMAGENTA,
278     EPS_COLOR_LIGHTYELLOW,
279     EPS_COLOR_DARKYELLOW,
280     EPS_COLOR_LIGHTBLACK,
281     EPS_COLOR_RED,
282     EPS_COLOR_VIOLET,
283     EPS_COLOR_MATTEBLACK,
284 	EPS_COLOR_LIGHTLIGHTBLACK,
285     EPS_COLOR_PHOTOBLACK,
286     EPS_COLOR_CLEAR,
287     EPS_COLOR_GRAY,
288     EPS_COLOR_UNKNOWN,
289 
290 	/* add ver5.0*/
291     EPS_COLOR_BLACK2,
292 	EPS_COLOR_ORANGE,
293 	EPS_COLOR_GREEN,
294 	EPS_COLOR_WHITE,
295 	EPS_COLOR_CLEAN,
296 
297 	/* add ver5.4*/
298 	EPS_COLOR_COMPOSITE,
299 };
300 
301     /*** Power info                                                                     */
302     /*** -------------------------------------------------------------------------------*/
303 enum EPS_POWER_SOUECE {
304     EPS_POWER_SOUECE_NOT_SUPPORTED = -1,
305     EPS_POWER_SOUECE_UNKNOWN       = 0,
306     EPS_POWER_SOUECE_AC,
307     EPS_POWER_SOUECE_BATTERY,
308 };
309 
310 enum EPS_CHARGE_STATE {
311     EPS_CHARGE_STATE_NONE,
312     EPS_CHARGE_STATE_CHARGING,
313 };
314 
315 
316 /*---------------------------  Data Structure Declarations   ---------------------------*/
317 /*******************************************|********************************************/
318 
319     /*** Basic Rect Object                                                              */
320     /*** -------------------------------------------------------------------------------*/
321 typedef struct _tagEPS_POS_ {
322     EPS_INT32   x;
323     EPS_INT32   y;
324 } EPS_POS;
325 
326     /*** Printer Infomation                                                             */
327     /*** -------------------------------------------------------------------------------*/
328 typedef struct _tagEPS_PRINTER_ {
329 	EPS_UINT32			supportFunc;
330 	EPS_INT8            manufacturerName[EPS_NAME_BUFFSIZE];
331 	EPS_INT8            modelName[EPS_NAME_BUFFSIZE];
332 	EPS_INT8			friendlyName[EPS_NAME_BUFFSIZE];
333 	EPS_INT8            location[EPS_ADDR_BUFFSIZE];
334 	EPS_INT8		    printerID[EPS_PRNID_BUFFSIZE];
335 	/* ver 4.2 */
336 	EPS_INT32			protocol;			    /* Communication protocol               */
337 	/* ver 5.0 */
338 	EPS_UINT32			language;				/* print language */
339 	EPS_INT8            macAddress[EPS_ADDR_BUFFSIZE];
340 	/* ver 5.2 */
341 	EPS_INT8            serialNo[EPS_ADDR_BUFFSIZE];
342 } EPS_PRINTER;
343 
344 
345 	/*** Job Attributes                                                                 */
346     /*** -------------------------------------------------------------------------------*/
347 typedef struct _tagEPS_JOB_ATTRIB_ {
348 	EPS_UINT16			version;			/* structure version                        */
349 
350 	/*** ------------------------------------------------------------------------------ */
351 	/*** Source Image Attribute                                                         */
352     EPS_UINT8           colorPlane;         /* Image color plane                        */
353     EPS_UINT16          paletteSize;        /* Palette Size (if present)                */
354     EPS_UINT8*          paletteData;        /* Palette Data (if present)                */
355     EPS_UINT8           inputResolution;    /* Input Image Resolution                   */
356 
357 	/*** ------------------------------------------------------------------------------ */
358 	/*** Output Attribute                                                               */
359     EPS_INT32           mediaSizeIdx;       /* Media Size Index (EPS_MSID_*)            */
360                                             /* (see epson-escpr-media.h)                */
361     EPS_INT32           mediaTypeIdx;       /* Media Type Index (EPS_MTID_*)            */
362                                             /* (see epson-escpr-media.h)                */
363 
364 	EPS_UINT32          printLayout;        /* Print Layout                             */
365     EPS_UINT32          printQuality;       /* Print Quality                            */
366     EPS_UINT32          paperSource;        /* Paper Source (Lv1 ext)                   */
367     EPS_UINT8           printDirection;     /* Printing Direction                       */
368 
369     EPS_UINT8           colorMode;          /* Color Mode                               */
370     EPS_INT8            brightness;         /* Print Brightness                         */
371     EPS_INT8            contrast;           /* Print Contrast                           */
372     EPS_INT8            saturation;         /* Print Saturation                         */
373     EPS_UINT8           apfAutoCorrect;     /* APF Automatic  (Jpeg only)               */
374     EPS_INT8            sharpness;          /* sharpness      (Jpeg only)               */
375     EPS_UINT8           redeye;             /* redeye correct (Jpeg only)               */
376 
377 	/*** Custom border ***/
378     EPS_INT16           topMargin;          /* Desired Top    print margin              */
379     EPS_INT16           leftMargin;         /* Desired Left   print margin              */
380     EPS_INT16           bottomMargin;       /* Desired Bottom print margin              */
381     EPS_INT16           rightMargin;        /* Desired Right  print margin              */
382 
383 	/*** CD/DVD Label ***/
384 	EPS_UINT8           cdDimIn;            /* CD Diameter Inside                       */
385     EPS_UINT8           cdDimOut;           /* CD Diameter Outside                      */
386 
387 	/* -------------------------------------------------------------------------------- */
388 	/* Ver 2                                                                            */
389 	EPS_INT32           cmdType;            /* Print command type                       */
390 
391 	/* -------------------------------------------------------------------------------- */
392 	/* Ver 3                                                                            */
393 	EPS_INT32			duplex;             /* Duplex print                             */
394 	EPS_INT32           copies;             /* copies count                             */
395 	EPS_INT32           feedDirection;      /* paper feed direction                     */
396 
397 	/* -------------------------------------------------------------------------------- */
398 	/* Ver 4                                                                            */
399 	EPS_UINT32			userDefWidth;       /* user defined width                       */
400 	EPS_UINT32			userDefHeight;      /* user defined height                      */
401 	EPS_INT32			pageNum;            /* amount of pages                          */
402 } EPS_JOB_ATTRIB;
403 
404 #define EPS_JOB_ATTRIB_VER_1		1
405 #define EPS_JOB_ATTRIB_VER_2		2
406 #define EPS_JOB_ATTRIB_VER_3		3
407 #define EPS_JOB_ATTRIB_VER_4		4
408 #define EPS_JOB_ATTRIB_VER_CUR	EPS_JOB_ATTRIB_VER_4
409 
410 
411 	/*** Page Attributes                                                                */
412     /*** -------------------------------------------------------------------------------*/
413 typedef struct _tagEPS_PAGE_ATTRIB_ {
414 	EPS_UINT16				version;		/* structure version                        */
415 } EPS_PAGE_ATTRIB;
416 #define EPS_PAGE_ATTRIB_VERS_0	0
417 #define EPS_PAGE_ATTRIB_VER_CUR	EPS_PAGE_ATTRIB_VER_0
418 
419 
420 	/*** Print Data                                                                     */
421     /*** -------------------------------------------------------------------------------*/
422 typedef union _tagEPS_PRN_DATA_ {
423 	EPS_UINT16				version;		/* structure version                        */
424 
425 	struct {
426 		EPS_UINT16			version;
427 		const EPS_UINT8*	data;
428 		EPS_UINT32			heightPixels;
429 		EPS_UINT32			widthPixels;
430 	} band;
431 
432 	struct {
433 		EPS_UINT16			version;
434 		const EPS_UINT8*	data;
435 		EPS_UINT32			dataSize;
436 	} chunk;
437 } EPS_PRN_DATA;
438 #define EPS_PRN_DATA_VER_1	1
439 #define EPS_PRN_DATA_VER_CUR	EPS_PRN_DATA_VER_1
440 
441 
442     /*** Printer Status                                                                 */
443     /*** -------------------------------------------------------------------------------*/
444 typedef struct _tagEPS_STATUS_ {
445     EPS_INT32           printerStatus;
446     EPS_INT32           errorCode;
447 	EPS_BOOL			jobContinue;
448 } EPS_STATUS;
449 
450     /*** Ink infomation                                                                 */
451     /*** -------------------------------------------------------------------------------*/
452 typedef struct _tagEPS_INK_INFO_ {
453     EPS_INT32           number;
454     EPS_INT32           colors[EPS_INK_NUM];
455     EPS_INT32           remaining[EPS_INK_NUM];
456     EPS_INT32           status[EPS_INK_NUM];
457 } EPS_INK_INFO;
458 
459     /*** Paper setting infomation                                                       */
460     /*** -------------------------------------------------------------------------------*/
461 typedef struct _tagEPS_PAPERSOURCE_INFO_ {
462     EPS_INT32			number;
463     EPS_UINT32          id[EPS_PAPERSOURCE_NUM];
464     EPS_INT32           mediaSizeID[EPS_PAPERSOURCE_NUM];
465     EPS_INT32           mediaTypeID[EPS_PAPERSOURCE_NUM];
466 } EPS_PAPERSOURCE_INFO;
467 
468     /*** Power source infomation                                                        */
469     /*** -------------------------------------------------------------------------------*/
470 typedef struct _tagEPS_POWERSOURCE_INFO_ {
471     EPS_UINT32			type;
472     EPS_UINT32          chargeState;
473     EPS_INT32           remaining;
474 } EPS_POWERSOURCE_INFO;
475 
476     /*** supplies infomation                                                            */
477     /*** -------------------------------------------------------------------------------*/
478 typedef struct _tagEPS_SUPPLY_INFO_ {
479 	EPS_INK_INFO			ink;
480 	EPS_PAPERSOURCE_INFO	paperSource;
481     EPS_POWERSOURCE_INFO	powerSource;
482 } EPS_SUPPLY_INFO;
483 
484 	/*** Supported Media Information                                                    */
485     /*** -------------------------------------------------------------------------------*/
486         /* Media Type and Printing Modes                                                */
487         /* (Container for media type information (nested inside EPS_MEDIA_SIZE) )       */
488 typedef struct _tagEPS_MEDIA_TYPE_V1_ {
489     EPS_INT32           mediaTypeID;
490     EPS_UINT32          layout;
491     EPS_UINT32          quality;
492     EPS_UINT32          paperSource;        /* Paper Source                             */
493 }EPS_MEDIA_TYPE_V1;
494 
495 typedef struct _tagEPS_MEDIA_TYPE_V2_ {
496     EPS_INT32           mediaTypeID;
497     EPS_UINT32          layout;
498     EPS_UINT32          quality;
499     EPS_UINT32          paperSource;        /* Paper Source                             */
500     EPS_UINT32          duplex;				/* duplex print support                     */
501 }EPS_MEDIA_TYPE_V2;
502 #define EPS_MEDIA_TYPE	EPS_MEDIA_TYPE_V2
503 
504         /* Media Size                                                                   */
505         /* (Container for media size information (nested inside EPS_CAPABILITIES) )     */
506 typedef struct _tagEPS_MEDIA_SIZE_ {
507     EPS_INT32           mediaSizeID;
508     EPS_INT32           numTypes;
509     EPS_MEDIA_TYPE*     typeList;
510 }EPS_MEDIA_SIZE;
511 
512         /* Supported Media                                                              */
513 typedef struct _tagEPS_SUPPORTED_MEDIA_ {
514     EPS_INT32           JpegSizeLimit;
515     EPS_INT32           numSizes;
516     EPS_MEDIA_SIZE*     sizeList;
517     EPS_UINT32          resolution;			/* supported input resolution */
518 }EPS_SUPPORTED_MEDIA;
519 
520 
521 	/*** Print Area Information                                                         */
522     /*** -------------------------------------------------------------------------------*/
523 typedef struct _tagEPS_MARGIN_ {
524     EPS_INT32   top;
525     EPS_INT32   left;
526     EPS_INT32   bottom;
527     EPS_INT32   right;
528 } EPS_MARGIN;
529 
530 typedef struct _tagEPS_LAYOUT_INFO_ {
531     EPS_UINT32          layout;
532     EPS_MARGIN          margin;
533 }EPS_LAYOUT_INFO;
534 
535 typedef struct _tagEPS_LAYOUTSIZE_INFO_ {
536     EPS_INT32           mediaSizeID;
537     EPS_UINT32          paperWidth;
538     EPS_UINT32          paperHeight;
539     EPS_INT32           numLayouts;
540     EPS_LAYOUT_INFO*    layoutList;
541 }EPS_LAYOUTSIZE_INFO;
542 
543 typedef struct _tagEPS_PRINT_AREA_INFO_ {
544     EPS_INT32				numSizes;
545     EPS_LAYOUTSIZE_INFO*	sizeList;
546 }EPS_PRINT_AREA_INFO;
547 
548 
549 	/*** USB device Information                                                         */
550     /*** -------------------------------------------------------------------------------*/
551 typedef struct _tagEPS_USB_DEVICE_ {
552     EPS_UINT32          vid;		/* vender ID */
553     EPS_UINT32          pid;		/* product ID */
554     EPS_UINT32          port;		/* port number */
555 }EPS_USB_DEVICE;
556 
557 
558     /*** Probe printer parameter                                                        */
559     /*** -------------------------------------------------------------------------------*/
560 typedef struct tagEPS_PROBE_ {
561     EPS_INT32   version;                    /* this version                             */
562 	EPS_INT32   method;
563     EPS_UINT32  timeout;
564 	union{
565 		EPS_INT8	identify[EPS_PRNID_BUFFSIZE];
566 		struct {
567 			EPS_INT32   protocol;
568 			EPS_INT8	address[EPS_ADDR_BUFFSIZE];
569 		} addr;
570 	} dsc;
571 }EPS_PROBE;
572 #define EPS_PROBE_VER_1		1
573 #define EPS_PROBE_VER_CUR	EPS_PROBE_VER_1
574 
575     /* Local time                                                                       */
576     /*** -------------------------------------------------------------------------------*/
577 typedef struct _tagEPS_LOCAL_TIME_ {
578     EPS_UINT16          year;
579     EPS_UINT8           mon;
580     EPS_UINT8           day;
581     EPS_UINT8           hour;
582     EPS_UINT8           min;
583     EPS_UINT8           sec;
584 }EPS_LOCAL_TIME;
585 
586 
587 /*--------------------------  External Function Definitions   --------------------------*/
588 /*******************************************|********************************************/
589 
590     /*** Common Function Definitions                                                    */
591     /*** -------------------------------------------------------------------------------*/
592 typedef EPS_INT32   (*EPS_FindCallback  )(EPS_PRINTER                      );
593 typedef EPS_INT32   (*EPS_StateCallback )(EPS_INT32, EPS_INT32             );
594 typedef void*       (*EPS_MemAlloc      )(size_t                           );
595 typedef void        (*EPS_MemFree       )(void*                            );
596     /* ESC/P-R Lib ignores sleep function return value, so any sleep function can be used. */
597 typedef EPS_INT32   (*EPS_Sleep         )(EPS_UINT32                       );
598 /*typedef void      (*EPS_Sleep         )(EPS_UINT32                       );*/
599 typedef EPS_UINT32	(*EPS_GetTime       )(void                             );
600 typedef EPS_UINT32	(*EPS_GetLocalTime  )(EPS_LOCAL_TIME*                  );
601 typedef EPS_INT32	(*EPS_LockSync      )(void                             );
602 typedef EPS_INT32	(*EPS_UnlockSync    )(void                             );
603 
604 
605     /*** USB Function Definitions                                                       */
606     /*** -------------------------------------------------------------------------------*/
607 typedef EPS_FILEDSC (*EPS_FindFirstPort )(EPS_USB_DEVICE*                               );
608 typedef EPS_BOOL    (*EPS_FindNextPort  )(EPS_FILEDSC, EPS_USB_DEVICE*                  );
609 typedef EPS_BOOL    (*EPS_FindClose     )(EPS_FILEDSC                                   );
610 typedef EPS_FILEDSC (*EPS_OpenPortal    )(const EPS_USB_DEVICE*                         );
611 typedef EPS_INT32   (*EPS_ClosePortal   )(EPS_FILEDSC                                   );
612 typedef EPS_INT32   (*EPS_ReadPortal    )(EPS_FILEDSC, EPS_UINT8*, EPS_INT32, EPS_INT32*);
613 typedef EPS_INT32   (*EPS_WritePortal   )(EPS_FILEDSC, const EPS_UINT8*, EPS_INT32, EPS_INT32*);
614 typedef EPS_INT32   (*EPS_GetDeviceID   )(EPS_FILEDSC, EPS_INT8*, EPS_INT32*            );
615 typedef EPS_INT32   (*EPS_SoftReset     )(EPS_FILEDSC                                   );
616 
617 
618     /*** Sockets Function Definitions                                                   */
619     /*** -------------------------------------------------------------------------------*/
620 typedef EPS_SOCKET  (*EPS_NetSocket            )(EPS_INT32, EPS_INT32, EPS_INT32        );
621 typedef EPS_INT32   (*EPS_NetClose             )(EPS_SOCKET                             );
622 typedef EPS_INT32	(*EPS_NetConnect	       )(EPS_SOCKET, const EPS_INT8*, EPS_UINT16);
623 typedef EPS_INT32	(*EPS_NetShutdown          )(EPS_SOCKET, EPS_INT32                  );
624 typedef EPS_INT32	(*EPS_NetBind	           )(EPS_SOCKET, EPS_UINT16, EPS_UINT16*    );
625 typedef EPS_INT32	(*EPS_NetListen            )(EPS_SOCKET, EPS_INT32                  );
626 typedef EPS_INT32	(*EPS_NetAccept            )(EPS_SOCKET, EPS_UINT32, EPS_SOCKET*,
627                                                  EPS_INT8*, EPS_UINT16*                 );
628 typedef EPS_INT32	(*EPS_NetSend		       )(EPS_SOCKET, const void*, EPS_INT32, EPS_UINT32);
629 typedef EPS_INT32	(*EPS_NetSendTo	           )(EPS_SOCKET, const void*, EPS_INT32,
630                                                  const EPS_INT8*, EPS_UINT16, EPS_UINT32 );
631 typedef EPS_INT32	(*EPS_NetReceive	       )(EPS_SOCKET, void*, EPS_INT32, EPS_UINT32);
632 typedef EPS_INT32	(*EPS_NetReceiveFrom       )(EPS_SOCKET, void*, EPS_INT32,
633 						                         EPS_INT8*, EPS_UINT16*, EPS_UINT32     );
634 typedef EPS_INT32	(*EPS_NetGetSockName       )(EPS_SOCKET, EPS_INT8*, EPS_UINT16*     );
635 typedef EPS_INT32	(*EPS_NetSetMulticastTTL   )(EPS_SOCKET, EPS_INT32                  );
636 typedef EPS_INT32	(*EPS_NetSetBroadCast      )(EPS_SOCKET                             );
637 #if LCOMSW_USE_MULTI_IF
638 typedef EPS_INT32	(*EPS_NetEnumInterface     )(EPS_UINT8*, EPS_UINT32                 );
639 typedef EPS_INT32	(*EPS_NetBindInterface     )(EPS_SOCKET, const EPS_UINT8*           );
640 #elif LCOMSW_BINDIF_IF_NEED
641 typedef EPS_INT32	(*EPS_NetBindInterface     )(EPS_SOCKET                             );
642 #endif
643 
644     /*** External Function Definitions                                                  */
645     /*** -------------------------------------------------------------------------------*/
646 typedef struct _tagEPS_CMN_FUNC_ {
647     EPS_INT32			version;            /* this version                             */
648     EPS_FindCallback    findCallback;       /* Find Notification Callback Function      */
649     EPS_StateCallback   stateCallback;      /* unused */
650     EPS_MemAlloc        memAlloc;           /* Allocate Memory Function                 */
651     EPS_MemFree         memFree;            /* Free Memory Function                     */
652     EPS_Sleep           sleep;              /* Sleep Function                           */
653     EPS_GetTime         getTime;            /* GetTime Function                         */
654 	EPS_GetLocalTime    getLocalTime;       /* Get Local Time Function                  */
655 	EPS_LockSync		lockSync;	    	/* Thread lock Function                     */
656 	EPS_UnlockSync		unlockSync; 		/* Thread unlock Function                   */
657 } EPS_CMN_FUNC;
658 
659 #define EPS_CMNFUNC_VER_1		1
660 #define EPS_CMNFUNC_VER_CUR		EPS_CMNFUNC_VER_1
661 
662     /*** USB External Function Definitions                                              */
663     /*** -------------------------------------------------------------------------------*/
664 typedef struct _tagEPS_USB_FUNC_ {
665     EPS_INT32			version;            /* this version                             */
666     EPS_OpenPortal      openPortal;         /* Open I/O Function                        */
667     EPS_ClosePortal     closePortal;        /* Close I/O Function                       */
668     EPS_ReadPortal      readPortal;         /* Read Data Function                       */
669     EPS_WritePortal     writePortal;        /* Write Data Function                      */
670 	EPS_FindFirstPort	findFirst;          /* Find usb device start Function           */
671 	EPS_FindNextPort	findNext;           /* Find next usb device Function            */
672 	EPS_FindClose		findClose;          /* Find process end Function                */
673     EPS_GetDeviceID     getDeviceID;        /* Get Device ID Function                   */
674 	EPS_SoftReset       softReset;          /* USB soft reset Function                  */
675 } EPS_USB_FUNC;
676 
677 #define EPS_USBFUNC_VER_1		1
678 #define EPS_USBFUNC_VER_CUR		EPS_USBFUNC_VER_1
679 
680     /*** NET External Function Definitions                                              */
681     /*** -------------------------------------------------------------------------------*/
682 typedef struct _tagEPS_NET_FUNC_ {
683     EPS_INT32				version;            /* this version                         */
684 	EPS_NetSocket           socket;             /* create socket Function               */
685 	EPS_NetClose            close;              /* close Function                       */
686 	EPS_NetConnect          connect;            /* connect Function                     */
687 	EPS_NetShutdown         shutdown;           /* shutdown Function                    */
688 	EPS_NetBind             bind;               /* bind Function                        */
689 	EPS_NetListen           listen;             /* listen Function                      */
690 	EPS_NetAccept           accept;             /* accept Function                      */
691 	EPS_NetSend             send;               /* send Function                        */
692 	EPS_NetSendTo           sendTo;             /* sendto Function                      */
693 	EPS_NetReceive          receive;            /* recv Function                        */
694 	EPS_NetReceiveFrom      receiveFrom;        /* revcfrom Function                    */
695 	EPS_NetGetSockName      getsockname;        /* getsockname Function                 */
696 	EPS_NetSetMulticastTTL  setMulticastTTL;    /* Set Multicast TTL Function           */
697 	EPS_NetSetBroadCast     setBroadcast;       /* Set enable broadcast Function        */
698 #if LCOMSW_USE_MULTI_IF
699 	EPS_NetEnumInterface    enumInterface;
700 	EPS_NetBindInterface    bindInterface;
701 #elif LCOMSW_BINDIF_IF_NEED
702 	EPS_NetBindInterface    bindInterface;
703 #endif
704 } EPS_NET_FUNC;
705 #define EPS_NETFUNC_VER_1		1
706 #define EPS_NETFUNC_VER_CUR		EPS_USBFUNC_VER_1
707 
708 #ifdef __cplusplus
709 }
710 #endif
711 
712 #endif  /* def __EPSON_ESCPR_DEF_H__ */
713 
714 /*________________________________  epson-escpr-def.h   ________________________________*/
715 
716 /*34567890123456789012345678901234567890123456789012345678901234567890123456789012345678*/
717 /*       1         2         3         4         5         6         7         8        */
718 /*******************************************|********************************************/
719 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
720 /***** End of File *** End of File *** End of File *** End of File *** End of File ******/
721 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
722