Tizen 2.0 Release
[external/epson-laser-printer-escpage.git] / lib / epson-escpr-pvt.h
1 /*_____________________________   epson-escpr-pvt.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 Private Data Definitions                         */\r
19 /*                                                                                      */\r
20 /*******************************************|********************************************/\r
21 #ifndef __EPSON_ESCPR_PVT_H__\r
22 #define __EPSON_ESCPR_PVT_H__\r
23 #ifdef __cplusplus\r
24 extern "C" {\r
25 #endif\r
26 \r
27 /*------------------------------  Local Compiler Switch  -------------------------------*/\r
28 /*******************************************|********************************************/\r
29 \r
30 /*------------------------------------  Includes   -------------------------------------*/\r
31 /*******************************************|********************************************/\r
32 #include "epson-typedefs.h"\r
33 #include "epson-escpr-def.h"\r
34 \r
35 /*------------------------------------- Data Types -------------------------------------*/\r
36 /*******************************************|********************************************/\r
37 typedef void*          EPS_HANDLE;              /* handle                                       */\r
38 \r
39 /*--------------------------------------  Macros   -------------------------------------*/\r
40 /*******************************************|********************************************/\r
41 \r
42 \r
43 /*-----------------------------------  Definitions  ------------------------------------*/\r
44 /*******************************************|********************************************/\r
45  \r
46     /*** API Initialization States                                                      */\r
47     /*** -------------------------------------------------------------------------------*/\r
48 #define EPS_STATUS_NOT_INITIALIZED      0\r
49 #define EPS_STATUS_INITIALIZED          1\r
50 #define EPS_STATUS_ESTABLISHED          2\r
51 #define EPS_STATUS_PROCCESSING          3\r
52 \r
53         /*** Definitions for pm string data                                                 */\r
54     /*** -------------------------------------------------------------------------------*/\r
55 #define EPS_PM_MAXSIZE                                  512\r
56 #define EPS_PM_HEADER_LEN               9\r
57 #define EPS_PM2_HEADER_LEN              10\r
58 #define EPS_PM_TERMINATOR_LEN           2\r
59 #define EPS_PM_DATA_LEN               (EPS_PM_MAXSIZE - EPS_PM_HEADER_LEN)\r
60 \r
61     /*** Definitions for device id string data                                          */\r
62     /*** -------------------------------------------------------------------------------*/\r
63 #define EPS_DI_MAXSIZE                512\r
64 \r
65         /*** reset command states                                                           */\r
66     /*** -------------------------------------------------------------------------------*/\r
67 #define EPS_RESET_NOT_SENT              0\r
68 #define EPS_RESET_SENT                  1\r
69 \r
70     /*** I/O port states                                                                */\r
71     /*** -------------------------------------------------------------------------------*/\r
72 #define EPS_IO_NOT_OPEN                 0\r
73 #define EPS_IO_OPEN                     1\r
74 \r
75     /*** pm Date States                                                                 */\r
76     /*** -------------------------------------------------------------------------------*/\r
77 #define EPS_PM_STATE_NOT_FILTERED       0\r
78 #define EPS_PM_STATE_FILTERED           1\r
79 \r
80 \r
81     /*** CBT Channel                                                                    */\r
82     /*** -------------------------------------------------------------------------------*/\r
83 #define EPS_CBTCHANNEL_CTRL           0x01           /* Control Channel                  */\r
84 #define EPS_CBTCHANNEL_DATA           0x00           /* Data Channel                     */\r
85 \r
86     /*** CBT Mechanical Commands                                                        */\r
87     /*** -------------------------------------------------------------------------------*/\r
88 #define EPS_CBTCOM_CH                    0\r
89 #define EPS_CBTCOM_NC                    1\r
90 #define EPS_CBTCOM_EI                    2\r
91 #define EPS_CBTCOM_CSA                   3\r
92 #define EPS_CBTCOM_CSB                   4\r
93 #define EPS_CBTCOM_CX                    5\r
94 #define EPS_CBTCOM_XIA                   6\r
95 #define EPS_CBTCOM_XIB                   7\r
96 #define EPS_CBTCOM_PE                    8\r
97 #define EPS_CBTCOM_PJ                    9\r
98 #define EPS_CBTCOM_ST                   10\r
99 #define EPS_CBTCOM_XIA2                 12\r
100 #define EPS_CBTCOM_XIA3                 13\r
101 #define EPS_CBTCOM_PM                   14\r
102 #define EPS_CBTCOM_DI                   15\r
103 #define EPS_CBTCOM_PM2                  16\r
104 #define EPS_CBTCOM_RJ                   17\r
105 \r
106 \r
107     /*** CBT Error Code                                                                 */\r
108     /*** -------------------------------------------------------------------------------*/\r
109 #define EPCBT_ERR_NONE                  0       /* Normal End                           */\r
110 \r
111 #define EPSCBT_ERR_INITDENIED           -1       /* Printer Result=0x01                 */\r
112 #define EPSCBT_ERR_VERSION              -2       /* Printer Result=0x02                 */\r
113 #define EPSCBT_ERR_CLOSEDENIED          -3       /* Printer Result=0x03                 */\r
114 #define EPSCBT_ERR_RESOURCE             -4       /* Printer Result=0x04                 */\r
115 #define EPSCBT_ERR_OPENCHANNEL          -5       /* Printer Result=0x05                 */\r
116 #define EPSCBT_ERR_CHOPENDED            -6       /* Printer Result=0x06                 */\r
117 #define EPSCBT_ERR_CREDITOVF            -7       /* Printer Result=0x07                 */\r
118 #define EPSCBT_ERR_CMDDENIED            -8       /* Printer Result=0x08                 */\r
119 #define EPSCBT_ERR_CHNOTSUPPORT         -9       /* Printer Result=0x09                 */\r
120 #define EPSCBT_ERR_NOSERVICE           -10       /* Printer Result=0x0A                 */\r
121 #define EPSCBT_ERR_INITFAILED          -11       /* Printer Result=0x0B                 */\r
122 #define EPSCBT_ERR_PACKETSIZE          -12       /* Printer Result=0x0C                 */\r
123 #define EPSCBT_ERR_NULLPACKETSZ        -13       /* Printer Result=0x0D                 */\r
124 \r
125 #define EPSCBT_ERR_PARAM               -20       /* parameter error                     */\r
126 #define EPSCBT_ERR_NOTOPEN             -22       /* Port Not open                       */\r
127 #define EPSCBT_ERR_2NDOPEN             -23       /* Port open second                    */\r
128 #define EPSCBT_ERR_CHNOTOPEN           -24       /* Channel not open or close           */\r
129 #define EPSCBT_ERR_CH2NDOPEN           -25       /* Channel open second                 */\r
130 #define EPSCBT_ERR_RPLYPSIZE           -28       /* OpenChannel Paket Size Fail         */\r
131 #define EPSCBT_ERR_WRITEERROR          -31       /* Write Error                         */\r
132 #define EPSCBT_ERR_READERROR           -32       /* Read Error                          */\r
133 #define EPSCBT_ERR_FNCDISABLE          -33       /* Not send or receive                 */\r
134 \r
135 #define EPSCBT_ERR_FATAL               -50       /* FATAL Error                         */\r
136 #define EPSCBT_ERR_CBTDISABLE          -52       /* fail EpsonPackingCommand            */\r
137 #define EPSCBT_ERR_NOREPLY             -55       /* no Reply                            */\r
138 \r
139 #define EPSCBT_ERR_MULFORMEDPACKET     -80       /* packet data fail                    */\r
140 #define EPSCBT_ERR_UEREPLY             -82       /* miss match reply data               */\r
141 #define EPSCBT_ERR_UERESULT            -85       /* Not Result value                    */\r
142 \r
143     /*** Service Pack Error                                                             */\r
144     /*** -------------------------------------------------------------------------------*/\r
145 #define EPS_ERR_SP_INVALID_POINTER      -200\r
146 #define EPS_ERR_SP_INVALID_HEADER       -201\r
147 #define EPS_ERR_SP_INVALID_TERMINATOR   -202\r
148 #define EPS_ERR_SP_NO_VALID_FIELD       -203\r
149 \r
150     /*** Misc                                                                           */\r
151     /*** -------------------------------------------------------------------------------*/\r
152 #define MERGED_FIELD                 0xFF\r
153 \r
154     /*** Save process for continue                                                      */\r
155     /*** -------------------------------------------------------------------------------*/\r
156 #define EPS_SAVEP_NONE                      0\r
157 #define EPS_SAVEP_START_PAGE            1\r
158 #define EPS_SAVEP_END_PAGE                              2\r
159 #define EPS_SAVEP_LEFTOVERS                             3\r
160 \r
161 \r
162 /*---------------------------  Data Structure Declarations   ---------------------------*/\r
163 /*******************************************|********************************************/\r
164     /*** Printer Status                                                                 */\r
165     /*** -------------------------------------------------------------------------------*/\r
166 typedef struct _tagEPS_STATUS_INFO_ {\r
167     EPS_INT32   nState;\r
168     EPS_INT32   nError;\r
169     EPS_INT32   nWarn;\r
170     EPS_INT32   nCancel;\r
171     EPS_INT32   nPrepare;\r
172     EPS_INT32   nInkNo;\r
173     EPS_INT32   nInkError;\r
174     EPS_INT32   nColor[EPS_INK_NUM];\r
175     EPS_INT32   nColorType[EPS_INK_NUM];\r
176 } EPS_STATUS_INFO;\r
177 \r
178     /*** Basic Rect Object                                                              */\r
179     /*** -------------------------------------------------------------------------------*/\r
180 typedef struct _tagEPS_RECT_ {\r
181     EPS_INT32   top;\r
182     EPS_INT32   left;\r
183     EPS_INT32   bottom;\r
184     EPS_INT32   right;\r
185 } EPS_RECT;\r
186 \r
187 typedef struct _tagEPS_LINE_SEGMENT_ {\r
188     EPS_INT32   start;\r
189     EPS_INT32   length;\r
190 } EPS_LINE_SEGMENT;\r
191 \r
192     /*** BMP Band Data                                                                  */\r
193     /*** -------------------------------------------------------------------------------*/\r
194 typedef struct _tagEPS_BANDBMP_ {\r
195     EPS_UINT32   widthBytes;             /* number of bytes in each scan line            */\r
196     const EPS_UINT8*  bits;              /* pointer to the the bit values for the bitmap */\r
197 } EPS_BANDBMP;\r
198 \r
199     /*** Base Point                                                                     */\r
200     /*** -------------------------------------------------------------------------------*/\r
201 typedef struct _tagEPS_BASEPOINT_ {\r
202     EPS_RECT    border;\r
203     EPS_RECT    borderless;\r
204     EPS_RECT    pad;\r
205 } EPS_BASEPT;\r
206 \r
207     /*** "pm" Command Reply Data                                                        */\r
208     /*** -------------------------------------------------------------------------------*/\r
209 typedef struct _tagEPS_PM_DATA_ {\r
210     EPS_INT32   state;\r
211     EPS_UINT8   pmString[EPS_PM_MAXSIZE];\r
212 } EPS_PM_DATA;\r
213 \r
214 \r
215     /*** Printer Infomation                                                             */\r
216     /*** -------------------------------------------------------------------------------*/\r
217 typedef struct _tagEPS_PRINTER_INN_ {\r
218         EPS_INT32       protocol;                                   /* Communication protocol               */\r
219         EPS_INT32           supportFunc;\r
220         EPS_INT8        manufacturerName[EPS_NAME_BUFFSIZE];\r
221         EPS_INT8        modelName[EPS_NAME_BUFFSIZE];         \r
222         EPS_INT8                friendlyName[EPS_NAME_BUFFSIZE];\r
223         EPS_INT8        location[EPS_ADDR_BUFFSIZE];\r
224         /* unused EPS_INT8              serial[EPS_NAME_BUFFSIZE];*/\r
225         EPS_INT8                printerID[EPS_PRNID_BUFFSIZE];\r
226         /* unused EPS_BOOL              needUpgrade; */\r
227         EPS_HANDLE              protocolInfo;\r
228         EPS_UINT16          printPort;\r
229 \r
230         EPS_UINT32              language;                               /* print language */\r
231         EPS_INT8        macAddress[EPS_ADDR_BUFFSIZE];\r
232 \r
233         /*** Supported Media                                                                */\r
234     /*** -------------------------------------------------------------------------------*/\r
235     EPS_SUPPORTED_MEDIA supportedMedia;\r
236     EPS_INT32       JpgMax;\r
237 \r
238     /*** Original PM reply                                                              */\r
239     /*** -------------------------------------------------------------------------------*/\r
240     EPS_PM_DATA pmData;\r
241 \r
242         EPS_UINT8        feedDir;\r
243 } EPS_PRINTER_INN;\r
244 \r
245 \r
246     /*** Printer List                                                                   */\r
247     /*** -------------------------------------------------------------------------------*/\r
248 typedef struct _tagEPS_PL_NODE_ {\r
249         EPS_PRINTER_INN*                        printer;\r
250         /* unused EPS_BOOL                                      notified; */\r
251         struct _tagEPS_PL_NODE_*        next;\r
252 }EPS_PL_NODE;\r
253 \r
254 typedef struct _tagEPS_PRINTER_LIST_ {\r
255         EPS_INT32               num;            /* printer count of espFindPrinter result   */\r
256         EPS_PL_NODE*            root;           /* printer list of espFindPrinter result    */\r
257 }EPS_PRINTER_LIST;\r
258 \r
259 /*---------------------------  Internal Print Job Structure   --------------------------*/\r
260 /*******************************************|********************************************/\r
261 typedef struct _tagEPS_PRINT_JOB_ {\r
262 \r
263     /*** Job / Page Status State                                                        */\r
264     /*** -------------------------------------------------------------------------------*/\r
265     EPS_INT32   jobStatus;                  /*  Job status                              */\r
266     EPS_INT32   pageStatus;                 /*  Page status                             */\r
267     EPS_INT32   findStatus;                 /*  Find status                             */\r
268 \r
269     /*** Communication Mode                                                             */\r
270     /*** -------------------------------------------------------------------------------*/\r
271     EPS_INT32   commMode;                   /* Computer byte storage order              */\r
272 \r
273     /*** Platform Specifics                                                             */\r
274     /*** -------------------------------------------------------------------------------*/\r
275 #ifdef GCOMSW_EPSON_SLEEP\r
276     EPS_INT32   sleepSteps;                 /* Sleep loop value                         */\r
277 #endif\r
278 \r
279         /*** Page Attributes                                                                */\r
280     /*** -------------------------------------------------------------------------------*/\r
281     EPS_JOB_ATTRIB attr;\r
282 \r
283         /*** Run-Time Job Printing Parameters                                               */\r
284     /*** -------------------------------------------------------------------------------*/\r
285     EPS_INT32   verticalOffset;\r
286     EPS_UINT32  jpegSize;\r
287     \r
288     /*** Borderless Printing Parameters                                                 */\r
289     /*** -------------------------------------------------------------------------------*/\r
290     EPS_INT32   borderlessMode;             /* Borderless mode selected                 */\r
291     /* unused EPS_INT32   topCnt;              Counter - many top    rasters saved      */\r
292     /* unused EPS_INT32   botCnt;              Counter - many bottom rasters saved      */\r
293     /* unused EPS_BOOL    topFlushed;          Flag to determine if top to be flushed   */\r
294     /* unused EPS_BASEPT  basePt;                                                       */\r
295 \r
296     EPS_RECT    border;                     /* Border     Base Point                    */\r
297     EPS_RECT    borderless;                 /* Borderless Base Point                    */\r
298     EPS_RECT    pad;                        /* Pad        Base Point                    */\r
299 \r
300         /*** Media                                                                          */\r
301     /*** -------------------------------------------------------------------------------*/\r
302     EPS_INT32   paperWidth;                 /* Width of Media                           */\r
303     EPS_INT32   paperHeight;                /* Height of Media                          */\r
304 \r
305     /*** Margins - based on Media and border Mode                                       */\r
306     /*** -------------------------------------------------------------------------------*/\r
307     EPS_INT32   topMargin;                  /* Media/Border-Mode Top    Margin          */\r
308     EPS_INT32   leftMargin;                 /* Media/Border-Mode Left   Margin          */\r
309     EPS_INT32   bottomMargin;               /* Media/Border-Mode Bottom Margin          */\r
310     EPS_INT32   rightMargin;                /* Media/Border-Mode Right  Margin          */\r
311 \r
312     /*** Printable                                                                      */\r
313     /*** -------------------------------------------------------------------------------*/\r
314     EPS_UINT32  printableAreaWidth;         /* users setting                            */\r
315     EPS_UINT32  printableAreaHeight;        /* users setting                            */\r
316     EPS_UINT8   bpp;                        /* 3 for RGB, 1 for 256                     */\r
317     EPS_INT16   offset_x;                   /* offset to be used. calculated when       */\r
318     EPS_INT16   offset_y;                   /* changing basepoint                       */\r
319 \r
320     /*** Print Band Information                                                         */\r
321     /*** -------------------------------------------------------------------------------*/\r
322     /* unused const EPS_UINT8*  printBandData;        Print Band Data                   */\r
323     /* unused EPS_UINT32  printBandWidth;             Print Band Width in Pixels        */\r
324     EPS_UINT32  printBandHeight;            /* Print Band Height in image lines         */\r
325     /* unused EPS_UINT32  printBandBPL;               Print Band Bytes Per Line         */\r
326     /* unused EPS_RECT    printBandRect;              Rect for print band               */\r
327 \r
328     /*** Job Trarget Printer                                                            */\r
329     /*** -------------------------------------------------------------------------------*/\r
330         EPS_PRINTER_INN* printer;\r
331 \r
332     /*** Protocol depend info                                                           */\r
333     /*** -------------------------------------------------------------------------------*/\r
334         EPS_HANDLE      hProtInfo;\r
335 \r
336     /*** Reset State Flag                                                               */\r
337     /*** -------------------------------------------------------------------------------*/\r
338         EPS_INT32       resetSent;      /* sent */\r
339         EPS_BOOL                resetReq;       /* reqest from printer */\r
340         EPS_BOOL                sendJS;\r
341 \r
342         /*** Communication                                                                  */\r
343     /*** -------------------------------------------------------------------------------*/\r
344         EPS_BOOL                bComm;\r
345         EPS_BOOL        transmittable;                  /* possible to transmit */\r
346         EPS_BOOL                bJpgLimit;\r
347 \r
348 #if 0 /* DEL */\r
349         /*** Additional data                                                                */\r
350     /*** -------------------------------------------------------------------------------*/\r
351         EPS_UINT32              additional;\r
352         struct {                                                                /* QR Code */\r
353                 EPS_INT32   cellNum;\r
354                 EPS_UINT8*      bits;\r
355                 EPS_INT32       dpc;                                    /* Dots per Cell */\r
356                 EPS_RECT        rc;\r
357         } qrcode;\r
358 #endif\r
359 \r
360         /*** Misc                                                                           */\r
361     /*** -------------------------------------------------------------------------------*/\r
362     EPS_UINT8           whiteColorValue;        /* Define white value or index              */\r
363         EPS_BOOL                needBand;\r
364         EPS_UINT8               platform;\r
365         EPS_INT32               pageCount;\r
366 \r
367         struct {                                                                /* Leftovers */\r
368                 EPS_INT32   lastError;\r
369                 EPS_INT32   savePoint;\r
370                 EPS_INT32   saveStep;\r
371                 const EPS_UINT8*        sendData;               /* buffer */\r
372                 EPS_UINT32      sendDataSize;                   /* Data size */\r
373                 EPS_UINT32      jpgSize;                                /* Jpeg Leftovers size */\r
374                 EPS_BOOL    nextPage;\r
375                 EPS_INT32   epRetry;\r
376                 EPS_BOOL        skipLine;\r
377         } contData;\r
378 \r
379 }EPS_PRINT_JOB;\r
380 \r
381 /*--------------------------  Public Function Declarations   ---------------------------*/\r
382 /*******************************************|********************************************/\r
383 EPS_ERR_CODE SendCommand        (const EPS_UINT8 *Buffer, EPS_UINT32, EPS_UINT32*, EPS_BOOL );\r
384 \r
385 \r
386 #ifdef __cplusplus\r
387 }\r
388 #endif\r
389 \r
390 #endif    /* def __EPSON_ESCPR_PVT_H__ */\r
391 \r
392 /*________________________________  epson-escpr-pvt.h  _________________________________*/\r
393   \r
394 /*34567890123456789012345678901234567890123456789012345678901234567890123456789012345678*/\r
395 /*       1         2         3         4         5         6         7         8        */\r
396 /*******************************************|********************************************/\r
397 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/\r
398 /***** End of File *** End of File *** End of File *** End of File *** End of File ******/\r
399 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/\r
400 \r