Fix manifests
[platform/upstream/epson-inkjet-printer-escpr.git] / lib / epson-protocol.h
1 /*________________________________  epson-protocol.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 Protocol layer Module Definitions                       */\r
19 /*                                                                                      */\r
20 /*******************************************|********************************************/\r
21 #ifndef _EPSON_PROROCOL_H_\r
22 #define _EPSON_PROROCOL_H_\r
23 #ifdef    __cplusplus\r
24 extern "C" {\r
25 #endif    /* def __cplusplus    */\r
26 \r
27 /*------------------------------- Local Compiler Switch --------------------------------*/\r
28 /*******************************************|********************************************/\r
29 /* #define GCOMSW_PRT_USE_USB           1*/             /* Use USB Communication */\r
30 /* #define GCOMSW_PRT_USE_LPR           1*/             /* Use LPR Communication */\r
31 /* #define GCOMSW_PRT_USE_RAW           1*/             /* Use RawPort Communication */\r
32 \r
33 #if defined(GCOMSW_PRT_USE_LPR) || defined(GCOMSW_PRT_USE_RAW)\r
34 #define GCOMSW_PRT_USE_NETWORK\r
35 #endif\r
36 \r
37 /*------------------------------------  Includes   -------------------------------------*/\r
38 /*******************************************|********************************************/\r
39 #include "epson-typedefs.h"\r
40 #include "epson-escpr-pvt.h"\r
41 \r
42 /*------------------------------------- Data Types -------------------------------------*/\r
43 /*******************************************|********************************************/\r
44 \r
45 /*-----------------------------------  Definitions  ------------------------------------*/\r
46 /*******************************************|********************************************/\r
47 #define EPS_USB_NAME                "USB"\r
48 \r
49 #define EPSNET_UDP_BROADCAST_ADDR       "255.255.255.255"\r
50 #define EPSNET_UPNP_MULTICAST_ADDR      "239.255.255.250"\r
51 #define EPSNET_NUM_DISCOVERIES          (3)                     /* times to send discovery msg          */\r
52 #define EPSNET_RECV_TIMEOUT                     (5000)          /* default receive tiomeout                             */\r
53 #define EPSNET_FIND_RECV_TIMEOUT        (100)           /* discover receive tiomeout                    */\r
54 #define EPSNET_STAT_RECV_TIMEOUT        (1000)          /* status receive tiomeout                          */\r
55 #define EPSNET_SEND_TIMEOUT                     (500)           /* default send tiomeout                */\r
56 #define EPSNET_BAND_SEND_TIMEOUT        (100)           /* band data send tiomeout                  */\r
57 #define EPSNET_BAND_SEND_TIMEOUTL       (3*60*1000)     /* band data send tiomeout                  */\r
58 #define EPSNET_FIND_REREQUEST_TIME      (500)           /* request re issue                     */\r
59 #define EPSNET_MAX_PATH                         (255)           /* path buffer length                       */\r
60 #define EPSNET_STAT_RETRY                       (5)                     /* getstatus retry count                            */\r
61 \r
62 \r
63     /*** PrinterID string format                                                        */\r
64     /*** -------------------------------------------------------------------------------*/\r
65 #define EPS_PID_PRT         "P"\r
66 #define EPS_PID_DEF         "D"\r
67 #define EPS_PID_SEP         "#"\r
68 #define EPS_PID_SEGNUM          (4)\r
69 #define EPS_PRINTER_ID_STR  EPS_PID_PRT EPS_PID_SEP "%04X" EPS_PID_SEP EPS_PID_DEF EPS_PID_SEP "%s"\r
70                                 /* P#xx#D#sssssssss */\r
71 \r
72         /* USB ID String 'D' parameter      */\r
73 #define EPS_USBID_SEP       "."\r
74 #define EPS_USBID_SEGNUM        (3)\r
75 #define EPS_USB_IDPRM_STR       "%04X" EPS_USBID_SEP "%04X" EPS_USBID_SEP "%s"  \r
76                                 /* [VID].[PID].[ModelName] */\r
77 \r
78         /* Net ID String 'D' parameter      */\r
79 #define EPS_NETID_SEP       "?"\r
80 #define EPS_NETID_SEGNUM        (2)\r
81 #define EPS_NET_IDPRM_STR       "%s" EPS_NETID_SEP "%s" \r
82                                 /* [ModelName]?[uuid] */\r
83 \r
84 /*-----------------------------------  Error Code  -------------------------------------*/\r
85 /*******************************************|********************************************/\r
86 #define EPS_COM_TINEOUT             (-2)        /* recv time out                        */\r
87 #define EPS_COM_READ_MORE           (-3)                /* need more receive                    */\r
88 #define EPS_COM_ERR_REPLY           (-4)                /* error reply                          */\r
89 #define EPS_COM_NEXT_RECORD         (-5)                /* mib next record received             */\r
90 #define EPS_COM_NOT_RECEIVE         (-6)                /* not recieve                          */\r
91 \r
92 /*---------------------------  Data Structure Declarations   ---------------------------*/\r
93 /*******************************************|********************************************/\r
94 \r
95 /* Print Job functions                                                                  */\r
96 typedef EPS_ERR_CODE    (*PRT_StartJob      )(void                                      );\r
97 typedef EPS_ERR_CODE    (*PRT_EndJob        )(void                                      );\r
98 typedef EPS_ERR_CODE    (*PRT_RestartJob    )(void                                      );\r
99 typedef EPS_ERR_CODE    (*PRT_WritePrintData)(const EPS_UINT8*, EPS_UINT32, EPS_UINT32* );\r
100 typedef EPS_ERR_CODE    (*PRT_ResetPrinter  )(void                                      );\r
101 typedef EPS_ERR_CODE    (*PRT_StartPage     )(void                                      );\r
102 typedef EPS_ERR_CODE    (*PRT_EndPage       )(void                                      );\r
103 typedef EPS_ERR_CODE    (*PRT_MonitorStatus )(EPS_STATUS_INFO*                          );\r
104 typedef EPS_ERR_CODE    (*PRT_GetStatus         )(EPS_STATUS_INFO*, EPS_BOOL*, EPS_BOOL*    );\r
105 \r
106 typedef struct tagEPS_JOB_FUNCS {\r
107         PRT_StartJob        StartJob;\r
108         PRT_EndJob          EndJob;\r
109         PRT_RestartJob      RestartJob;\r
110         PRT_WritePrintData  WriteData;\r
111         PRT_ResetPrinter    ResetPrinter;\r
112         PRT_StartPage       StartPage;\r
113         PRT_EndPage         EndPage;\r
114         PRT_MonitorStatus   MonitorStatus;\r
115         PRT_GetStatus           GetStatus;\r
116 }EPS_JOB_FUNCS;\r
117 \r
118 #define PRT_INVOKE_JOBFNC( f, prm )     ((NULL != f)?f prm:EPS_ERR_NONE)\r
119 \r
120 \r
121 /*--------------------------  Public Function Declarations   ---------------------------*/\r
122 /*******************************************|********************************************/\r
123     /*** Initialize                                                                     */\r
124     /*** -------------------------------------------------------------------------------*/\r
125 extern EPS_ERR_CODE prtFunctionCheck        (EPS_INT32, const EPS_USB_FUNC*, \r
126                                                                                          const EPS_NET_FUNC*, const EPS_CMN_FUNC*   );\r
127 \r
128     /*** Find                                                                           */\r
129     /*** -------------------------------------------------------------------------------*/\r
130 extern EPS_ERR_CODE prtFindPrinter          (EPS_INT32, EPS_UINT32                      );\r
131 extern EPS_ERR_CODE prtCancelFindPrinter    (void                                       );\r
132 extern EPS_ERR_CODE prtProbePrinterByID     (const EPS_PROBE*                           );\r
133 extern EPS_ERR_CODE prtProbePrinterByAddr   (const EPS_PROBE*                           );\r
134 \r
135     /*** Job                                                                            */\r
136     /*** -------------------------------------------------------------------------------*/\r
137 extern EPS_ERR_CODE prtSetupJobFunctions    (const EPS_PRINTER_INN*, EPS_JOB_FUNCS*     );\r
138 extern EPS_ERR_CODE prtRecoverPE                        (void                                       );\r
139 \r
140     /*** Information                                                                    */\r
141     /*** -------------------------------------------------------------------------------*/\r
142 extern EPS_ERR_CODE prtGetPMString          (const EPS_PRINTER_INN*, EPS_INT32, \r
143                                                                                          EPS_UINT8*, EPS_INT32*                     );\r
144 extern EPS_ERR_CODE prtGetInkInfo           (const EPS_PRINTER_INN*, EPS_INK_INFO*      );\r
145 \r
146     /*** Printer list                                                                   */\r
147     /*** -------------------------------------------------------------------------------*/\r
148 extern EPS_ERR_CODE prtRegPrinter               (EPS_PRINTER_INN*, EPS_BOOL                 );\r
149 extern EPS_BOOL     prtIsRegistered         (const EPS_INT8*, const EPS_INT8*, EPS_INT32);\r
150 extern void         prtClearPrinterList     (void                                       );\r
151 extern EPS_ERR_CODE prtDuplPrinterList      (void                                       );\r
152 extern EPS_ERR_CODE prtAddUsrPrinter            (const EPS_PRINTER*, EPS_PRINTER_INN**          );\r
153 extern EPS_PRINTER_INN* prtGetInnerPrinter  (const EPS_PRINTER*                         );\r
154 extern void         prtClearSupportedMedia  (EPS_PRINTER_INN*                           );\r
155 \r
156 extern void         prtSetIdStr             (EPS_PRINTER_INN*, const EPS_INT8*          );\r
157 \r
158 #ifdef    __cplusplus\r
159 }\r
160 #endif    /* def __cplusplus */\r
161 \r
162 #endif    /* def _EPSON_PROROCOL_H_ */\r
163 \r
164 /*________________________________  epson-protocol.h   _________________________________*/\r
165 \r
166 /*34567890123456789012345678901234567890123456789012345678901234567890123456789012345678*/\r
167 /*       1         2         3         4         5         6         7         8        */\r
168 /*******************************************|********************************************/\r
169 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/\r
170 /***** End of File *** End of File *** End of File *** End of File *** End of File ******/\r
171 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/\r