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