Tizen 2.0 Release
[external/epson-laser-printer-escpage.git] / lib / epson-cbt.h
1 /*___________________________________  epson-cbt.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 CBT Module Definitions                             */\r
19 /*                                                                                      */\r
20 /*******************************************|********************************************/\r
21 #ifndef _EPSON_CBT_H_\r
22 #define _EPSON_CBT_H_\r
23 #ifdef    __cplusplus\r
24 extern "C" {\r
25 #endif    /* def __cplusplus    */\r
26 \r
27 /*------------------------------------  Includes   -------------------------------------*/\r
28 /*******************************************|********************************************/\r
29 #include "epson-typedefs.h"\r
30 #include "epson-escpr-def.h"\r
31 \r
32 /*------------------------------------- Data Types -------------------------------------*/\r
33 /*******************************************|********************************************/\r
34 \r
35 /*----------------------------------  Generic Macros   ---------------------------------*/\r
36 /*******************************************|********************************************/\r
37 \r
38 /*-----------------------------------  Definitions  ------------------------------------*/\r
39 /*******************************************|********************************************/\r
40 \r
41     /*** Socket ID                                                                      */\r
42     /*** -------------------------------------------------------------------------------*/\r
43 #define CBT_CBTCH_DATA               0x40    /* CBT Data Channel                         */\r
44 #define CBT_CBTCH_CTRL               0x02    /* CBT Control Channel                      */\r
45 \r
46     /*** CBT Module Global Variables                                                    */\r
47     /*** -------------------------------------------------------------------------------*/\r
48 #define CBT_MAX_CH                     3    /* Channel Count                            */\r
49 #define CBT_MAX_RTMP                 512    /* receive data work buffer size            */\r
50 \r
51 #define CBT_SID_MAIN                0x00    /* Main Channel                             */\r
52 #define CBT_SID_CTRL                0x02    /* Control Channel                          */\r
53 #define CBT_SID_DATA                0x40    /* data channel (40H)                       */\r
54 \r
55 #define CBT_TXPSIZE                 4096    /* JOB data packet size (4090+6)            */\r
56 #define CBT_RXPSIZE                  512    /* ReverseData packet size                  */\r
57 \r
58 #define CBT_CREDIT_LPT            0x0080    /* Printer credit                           */\r
59 #define CBT_CREDIT_DEF            0x0008    /* Host Credit                              */\r
60 \r
61 #define CBT_CMDREPLY_BUFFSZ           64    /* Command Reply Data Buffer size           */\r
62 \r
63 #define CBT_READ_DMY                   0    /* Read Option: Dummy Read                  */\r
64 #define CBT_READ_NORMAL                1    /* Read Option: Normal Read                 */\r
65 \r
66     /*** CBT Mode                                                                       */\r
67     /*** -------------------------------------------------------------------------------*/\r
68 #define CBT_MODE_CBTOFF                0    /* CBT Mode Off                             */\r
69 #define CBT_MODE_CBTON                 1    /* CBT Mode On                              */\r
70 #define CBT_MODE_REQOFF                2    /* Request Off                              */\r
71 #define CBT_MODE_CBTERR                3    /* CBT Error                                */\r
72 \r
73     /*** Command Packet Length                                                          */\r
74     /*** -------------------------------------------------------------------------------*/\r
75 #define CBT_CMD_SIZE_INIT           0x08    /* Init Command                             */\r
76 #define CBT_CMD_SIZE_OPENCHANNEL    0x11    /* OpenChannel Command                      */\r
77 #define CBT_CMD_SIZE_CLOSECHANNEL   0x0A    /* CloseChannel Command                     */\r
78 #define CBT_CMD_SIZE_CREDIT         0x0B    /* Credit Command                           */\r
79 #define CBT_CMD_SIZE_CREDITREQUEST  0x0D    /* CreditRequest Command                    */\r
80 #define CBT_CMD_SIZE_EXIT           0x07    /* Exit Command                             */\r
81 #define CBT_CMD_SIZE_GETSOCKETID    0x07    /* GetSoketID Command (7-47)                */\r
82 #define CBT_CMD_SIZE_GETSERVICENAME 0x08    /* GetServiceName Command                   */\r
83 #define CBT_CMD_SIZE_ERROR          0x0A    /* Error Command                            */\r
84 #define CBT_CMD_SIZE_EPSONPACKING   0x1B    /* EpsonPackingCommand Command              */\r
85 \r
86 #define CBT_RPY_SIZE_INIT           0x09    /* InitReply                                */\r
87 #define CBT_RPY_SIZE_OPENCHANNEL    0x10    /* OpenChannelReply                         */\r
88 #define CBT_RPY_SIZE_CLOSECHANNEL   0x0A    /* CloseChannelReply                        */\r
89 #define CBT_RPY_SIZE_CREDIT         0x0A    /* CreditReply                              */\r
90 #define CBT_RPY_SIZE_CREDITREQUEST  0x0C    /* CreditRequestReply                       */\r
91 #define CBT_RPY_SIZE_EXIT           0x08    /* ExitReply                                */\r
92 #define CBT_RPY_SIZE_GETSOCKETID    0x09    /* GetSoketIDReply                          */\r
93 #define CBT_RPY_SIZE_GETSERVICENAME 0x09    /* GetServiceNameReply                      */\r
94 #define CBT_RPY_SIZE_EPSONPACKING   0x08    /* EpsonPackingCommandReply                 */\r
95 \r
96     /*** CBT Command                                                                    */\r
97     /*** -------------------------------------------------------------------------------*/\r
98 #define CBT_CMD_INIT                0x00\r
99 #define CBT_CMD_OPENCHANNEL         0x01\r
100 #define CBT_CMD_CLOSECHANNEL        0x02\r
101 #define CBT_CMD_CREDIT              0x03\r
102 #define CBT_CMD_CREDITREQUEST       0x04\r
103 #define CBT_CMD_DEBIT               0x05\r
104 #define CBT_CMD_DEBITREQUEST        0x06\r
105 #define CBT_CMD_CONFIGSOCKET        0x07\r
106 #define CBT_CMD_EXIT                0x08\r
107 #define CBT_CMD_GETSOCKETID         0x09\r
108 #define CBT_CMD_GETSERVICENAME      0x0A\r
109 #define CBT_CMD_EPSONPACKING        0x45\r
110 #define CBT_CMD_CBT_ERROR           0x7F\r
111 #define CBT_CMD_CBT_NONE            0xFF\r
112 \r
113     /*** Reply Command                                                                  */\r
114     /*** -------------------------------------------------------------------------------*/\r
115 #define CBT_RPY_INIT                0x80\r
116 #define CBT_RPY_OPENCHANNEL         0x81\r
117 #define CBT_RPY_CLOSECHANNEL        0x82\r
118 #define CBT_RPY_CREDIT              0x83\r
119 #define CBT_RPY_CREDITREQUEST       0x84\r
120 #define CBT_RPY_DEBIT               0x85\r
121 #define CBT_RPY_DEBITREQUEST        0x86\r
122 #define CBT_RPY_CONFIGSOCKET        0x87\r
123 #define CBT_RPY_EXIT                0x88\r
124 #define CBT_RPY_GETSOCKETID         0x89\r
125 #define CBT_RPY_GETSERVICENAME      0x8A\r
126 #define CBT_RPY_EPSONPACKING        0xC5\r
127 \r
128 /*-----------------------------------  Error Code  -------------------------------------*/\r
129 /*******************************************|********************************************/\r
130 #define EPCBT_ERR_INITDENIED          -1    /* Printer Result=0x01                      */\r
131 #define EPCBT_ERR_VERSION             -2    /* Printer Result=0x02                      */\r
132 #define EPCBT_ERR_CLOSEDENIED         -3    /* Printer Result=0x03                      */\r
133 #define EPCBT_ERR_RESOURCE            -4    /* Printer Result=0x04                      */\r
134 #define EPCBT_ERR_OPENCHANNEL         -5    /* Printer Result=0x05                      */\r
135 #define EPCBT_ERR_CHOPENDED           -6    /* Printer Result=0x06                      */\r
136 #define EPCBT_ERR_CREDITOVF           -7    /* Printer Result=0x07                      */\r
137 #define EPCBT_ERR_CMDDENIED           -8    /* Printer Result=0x08                      */\r
138 #define EPCBT_ERR_CHNOTSUPPORT        -9    /* Printer Result=0x09                      */\r
139 #define EPCBT_ERR_NOSERVICE          -10    /* Printer Result=0x0A                      */\r
140 #define EPCBT_ERR_INITFAILED         -11    /* Printer Result=0x0B                      */\r
141 #define EPCBT_ERR_PACKETSIZE         -12    /* Printer Result=0x0C                      */\r
142 #define EPCBT_ERR_NULLPACKETSZ       -13    /* Printer Result=0x0D                      */\r
143 \r
144 #define EPCBT_ERR_PARAM              -20    /* Parameter Error                          */\r
145 #define EPCBT_ERR_MEMORY             -21    /* Memory Error                             */\r
146 #define EPCBT_ERR_CBTNOTOPEN         -22    /* Port Not Open                            */\r
147 #define EPCBT_ERR_CBT2NDOPEN         -23    /* Port end Open error                      */\r
148 #define EPCBT_ERR_CHNOTOPEN          -24    /* Channel Not Open or Close                */\r
149 #define EPCBT_ERR_CH2NDOPEN          -25    /* Channel end Open                         */\r
150 #define EPCBT_ERR_RPLYPSIZE          -28    /* OpenChannel return Paket Size Fail       */\r
151 #define EPCBT_ERR_WRITEERROR         -31    /* Write Error                              */\r
152 #define EPCBT_ERR_READERROR          -32    /* Read Error                               */\r
153 #define EPCBT_ERR_FNCDISABLE         -33    /* Not send or receive                      */\r
154 \r
155 #define EPCBT_ERR_FATAL              -50    /* FATAL Error                              */\r
156 #define EPCBT_ERR_CBTDISABLE         -52    /* EpsonPackingCommand Fail                 */\r
157 #define EPCBT_ERR_NOREPLY            -55    /* Reply Time out                           */\r
158 \r
159 #define EPCBT_ERR_MULFORMEDPACKET    -80    /* receibe paket data Fail                  */\r
160 #define EPCBT_ERR_UEREPLY            -82    /* miss match Reply                         */\r
161 #define EPCBT_ERR_UERESULT           -85    /* no define Result value                   */\r
162 \r
163 /*---------------------------  Data Structure Declarations   ---------------------------*/\r
164 /*******************************************|********************************************/\r
165 \r
166     /*** Channel Information                                                            */\r
167     /*** -------------------------------------------------------------------------------*/\r
168 typedef struct _tagCBTS_CHINFO_ {\r
169     EPS_UINT8       No;                 /* Channel No                                   */\r
170     EPS_INT32       PtSsize;            /* Packet Size (PC -> Printer)                  */\r
171     EPS_INT32       StPsize;            /* Packet Size (Printer -> PC)                  */\r
172     EPS_INT32       CreditP;            /* receive credit from printer                  */\r
173     EPS_INT32       CreditH;            /* send credit from host                        */\r
174     EPS_INT32       ReadSize;           /* receive packet data size                     */\r
175     EPS_UINT8*      ReadBuff;           /* receive packet data buffer                   */\r
176     EPS_UINT8*      RTmpBuff;           /* receive data work buffer                     */\r
177     EPS_INT32       RTmpTop;            /* receive data work buffer, start data point   */\r
178     EPS_INT32       RTmpEnd;            /* receive data work buffer, end data point     */\r
179     EPS_INT32       RTmpCnt;            /* receive data work buffer, data size          */\r
180 } CBTS_CHINFO;\r
181 \r
182     /*** Printer Status                                                                 */\r
183     /*** -------------------------------------------------------------------------------*/\r
184 typedef struct _tagCBTS_PRNINFO_ {\r
185     EPS_INT16       Mode;                   /* CBT Mode                                 */\r
186     void*           pPortInfo;              /* Port Info                                */\r
187     EPS_WritePortal pCbtWRtnFnc;            /* Write Func                               */\r
188     EPS_ReadPortal  pCbtRRtnFnc;            /* Read Func                                */\r
189     EPS_UINT8*      pWriteBuff;             /* Write Work                               */\r
190     EPS_UINT8*      pCbtReadRtnBuff;        /* Read Work 1                              */\r
191     EPS_UINT8*      pCbtDataReadBuff;       /* Read Work 2                              */\r
192     CBTS_CHINFO     Chinfo[CBT_MAX_CH];     /* Channel information                      */\r
193 } CBTS_PRNINFO;\r
194 \r
195 /*--------------------------  Public Function Declarations   ---------------------------*/\r
196 /*******************************************|********************************************/\r
197 extern EPS_INT32    cbtCommOpen         (const EPS_USB_DEVICE*, EPS_FILEDSC*            );\r
198 extern EPS_INT32    cbtCommClose        (EPS_FILEDSC                                    );\r
199 extern EPS_INT32    cbtCommChannelOpen  (EPS_FILEDSC, EPS_INT32, EPS_BOOL               );\r
200 extern EPS_INT32    cbtCommChannelClose (EPS_FILEDSC, EPS_INT32                         );\r
201 extern EPS_INT32    cbtCommReadData     (EPS_FILEDSC, EPS_INT32, EPS_UINT8*, EPS_INT32, EPS_INT32*);\r
202 extern EPS_INT32    cbtCommWriteData    (EPS_FILEDSC, EPS_INT32, const EPS_UINT8*, EPS_INT32, EPS_INT32* );\r
203 \r
204 \r
205 #ifdef    __cplusplus\r
206 }\r
207 #endif    /* def __cplusplus    */\r
208 \r
209 #endif    /* def _EPSON_CBT_H_ */\r
210 \r
211 /*___________________________________  epson-cbt.h  ____________________________________*/\r
212 \r
213 /*34567890123456789012345678901234567890123456789012345678901234567890123456789012345678*/\r
214 /*       1         2         3         4         5         6         7         8        */\r
215 /*******************************************|********************************************/\r
216 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/\r
217 /***** End of File *** End of File *** End of File *** End of File *** End of File ******/\r
218 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/\r