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