Tizen 2.1 base
[platform/upstream/hplip.git] / prnt / hpijs / hpiom.h
1 /*****************************************************************************\
2
3   hpiom.h - HP I/O message handler
4  
5   (c) 2003-2004 Copyright Hewlett-Packard Development Company, LP
6
7   Redistribution and use in source and binary forms, with or without
8   modification, are permitted provided that the following conditions
9   are met:
10   1. Redistributions of source code must retain the above copyright
11      notice, this list of conditions and the following disclaimer.
12   2. Redistributions in binary form must reproduce the above copyright
13      notice, this list of conditions and the following disclaimer in the
14      documentation and/or other materials provided with the distribution.
15   3. Neither the name of Hewlett-Packard nor the names of its
16      contributors may be used to endorse or promote products derived
17      from this software without specific prior written permission.
18
19   THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
20   WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21   MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
22   NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
24   TO, PATENT INFRINGEMENT; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
25   OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
26   ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
30 \*****************************************************************************/
31
32 #ifndef hpiom_INCLUDED
33 #define hpiom_INCLUDED
34
35 /*
36  * LIDIL Definitions.
37  */
38
39 enum ePACKETTYPE{ eCommand
40                 , eDisablePacing
41                 , eEnablePacing
42                 , eResumeNormalOperation
43                 , eDiableResponses
44                 , eEnableResponses
45                 , eResetLidil
46                 , eSynch
47                 , eSynchComplete
48                 , eResponseCommandExecuted = 16
49                 , eResponseCommandDiscarded
50                 , eResponseCommandNotSupported
51                 , eResponseUnitNumberNotSupported
52                 , eResponseCommandLengthNotSupported
53                 , eResponseDataLengthNotSupported
54                 , eResponseCommandError
55                 , eResponseProtocalError
56                 , eResponseAuto
57                 , eOperationComplete
58                 , eAbsoluteCredit = 32
59                 , eCredit 
60                 , ePacketUnknown
61                 };
62
63 enum eCOMMANDNUMBER{ eJobControl
64                    , eLoadPage
65                    , eEjectPage
66                    , ePrintSweep
67                    , eLoadSweepData
68                    , eQuery
69                    , eComment               = 7
70                    , eHandlePen
71                    , eUnderware             = 11
72                    , eDeviceControlCommand
73                    , eCommandUnknown
74                    };
75
76 typedef struct
77 {
78    unsigned char start_frame;
79    unsigned short cmd_length;
80    unsigned char unit_num;
81    unsigned char packet_type;
82    unsigned char cmd_num;
83    unsigned short ref_num;
84    unsigned short data_length;
85    unsigned char response_cmp;
86    unsigned char pad[4];
87    unsigned char end_frame;
88 } __attribute__((packed)) LDLResponseHeader;
89
90 typedef struct
91 {
92    LDLResponseHeader h;
93    unsigned short colors;
94    char k[3];     /* 0=vertical 1=horizontal 2=bi */
95    char c[3];     /* c=m=y */
96    char m[3];
97    char y[3];
98 } __attribute__((packed)) LDLResponseAlign038;
99
100 typedef struct
101 {
102   char color;   /* 0=black 1=color 2=photo */
103   char vert;    /* vertical alignment offset */
104   char horz;    /* horizontal alignment offset */
105   char bi;      /* bi-directional offset */
106 } __attribute__((packed)) LDLPen;
107
108 typedef struct
109 {
110    unsigned char nPens;   /* number of pens */
111    LDLPen pen[3];
112 } __attribute__((packed)) LDLGenAlign;
113
114 typedef struct
115 {
116    LDLResponseHeader h;
117    LDLGenAlign g;
118 } __attribute__((packed)) LDLResponseAlign043;
119
120 typedef struct
121 {
122    LDLResponseHeader h;
123    uint32_t ldlversion;
124    char firmversion[8];
125 } __attribute__((packed)) LDLResponseVersion;
126
127 #ifdef __cplusplus
128 extern "C" {
129 #endif
130
131 extern int ReadHPVertAlign(int hd);
132
133 #ifdef __cplusplus
134 }
135 #endif
136
137 #endif    /* hpiom_INCLUDED */
138
139