1# -*- coding: utf-8 -*-
2#
3# (c) Copyright 2003-2015 HP Development Company, L.P.
4#
5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation; either version 2 of the License, or
8# (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13# GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with this program; if not, write to the Free Software
17# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
18#
19# Author: Don Welch
20#
21
22# For type 3 color cal and alignemnt types 5 and 7
23COLOR_ALIGN_TABLE = ((71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71),
24                        (71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71),
25                        (71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71),
26                        (71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71),
27                        (77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77),
28                        (83, 85, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83),
29                        (86, 85, 86, 88, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86),
30                        (89, 89, 89, 88, 89, 91, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89),
31                        (93, 93, 93, 93, 93, 91, 93, 94, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93),
32                        (96, 96, 96, 96, 96, 96, 96, 94, 96, 98, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96),
33                        (100, 100, 100, 100, 100, 100, 100, 100, 100, 98, 100, 102, 100, 100, 100, 100, 100, 100, 100, 100, 100),
34                        (104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 102, 104, 106, 104, 104, 104, 104, 104, 104, 104),
35                        (109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 106, 109, 111, 109, 109, 109, 109, 109),
36                        (114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 111, 114, 116, 114, 114, 114),
37                        (119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 116, 119, 122, 119),
38                        (125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 122, 125),
39                        (132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132),
40                        (139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139),
41                        (147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147),
42                        (156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156),
43                        (167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167)
44                    )
45
46PHOTO_ALIGN_TABLE = ((167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167),
47                        (167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167),
48                        (167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167),
49                        (167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167),
50                        (143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143),
51                        (125, 122, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125),
52                        (119, 122, 119, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119),
53                        (114, 114, 114, 116, 114, 111, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114),
54                        (109, 109, 109, 109, 109, 111, 109, 106, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109),
55                        (104, 104, 104, 104, 104, 104, 104, 106, 104, 102, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104),
56                        (100, 100, 100, 100, 100, 100, 100, 100, 100, 102, 100, 98, 100, 100, 100, 100, 100, 100, 100, 100, 100),
57                        (96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 98, 96, 94, 96, 96, 96, 96, 96, 96, 96),
58                        (93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 94, 93, 91, 93, 93, 93, 93, 93),
59                        (89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 91, 89, 88, 89, 89, 89),
60                        (86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 88, 86, 85, 86),
61                        (83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 85, 83),
62                        (81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81),
63                        (80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80),
64                        (78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78),
65                        (74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74),
66                        (71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71)
67                    )
68
69
70COLOR_CAL_TABLE = (# For color cal type 2
71    127, 127, 127, 127,
72    0,  -40,  40,  0,
73    0,  -30,  40,  0,
74    0,  -20,  40,  0,
75    0,  -10,  40,  0,
76    0,   0,   40,  0,
77    0,   10,  40,  0,
78    0,   20,  40,  0,
79    0,   30,  40,  0,
80    0,   40,  40,  0,
81    0,  -40,  30,  0,
82    0,  -30,  30,  0,
83    0,  -20,  30,  0,
84    0,  -10,  30,  0,
85    0,   0,   30,  0,
86    0,   10,  30,  0,
87    0,   20,  30,  0,
88    0,   30,  30,  0,
89    0,   40,  30,  0,
90    0,  -40,  20,  0,
91    0,  -30,  20,  0,
92    0,  -20,  20,  0,
93    0,  -10,  20,  0,
94    0,   0,   20,  0,
95    0,   10,  20,  0,
96    0,   20,  20,  0,
97    0,   30,  20,  0,
98    0,   40,  20,  0,
99    0,  -40,  10,  0,
100    0,  -30,  10,  0,
101    0,  -20,  10,  0,
102    0,  -10,  10,  0,
103    0,   0,   10,  0,
104    0,   10,  10,  0,
105    0,   20,  10,  0,
106    0,   30,  10,  0,
107    0,   40,  10,  0,
108    0,  -40,  0,   0,
109    0,  -30,  0,   0,
110    0,  -20,  0,   0,
111    0,  -10,  0,   0,
112    0,   0,   0,   0,
113    0,   10,  0,   0,
114    0,   20,  0,   0,
115    0,   30,  0,   0,
116    0,   40,  0,   0,
117    0,  -40, -10,  0,
118    0,  -30, -10,  0,
119    0,  -20, -10,  0,
120    0,  -10, -10,  0,
121    0,   0,  -10,  0,
122    0,   10, -10,  0,
123    0,   20, -10,  0,
124    0,   30, -10,  0,
125    0,   40, -10,  0,
126    0,  -40, -20,  0,
127    0,  -30, -20,  0,
128    0,  -20, -20,  0,
129    0,  -10, -20,  0,
130    0,   0,  -20,  0,
131    0,   10, -20,  0,
132    0,   20, -20,  0,
133    0,   30, -20,  0,
134    0,   40, -20,  0,
135    0,  -40, -30,  0,
136    0,  -30, -30,  0,
137    0,  -20, -30,  0,
138    0,  -10, -30,  0,
139    0,   0,  -30,  0,
140    0,   10, -30,  0,
141    0,   20, -30,  0,
142    0,   30, -30,  0,
143    0,   40, -30,  0,
144    0,  -40, -40,  0,
145    0,  -30, -40,  0,
146    0,  -20, -40,  0,
147    0,  -10, -40,  0,
148    0,   0,  -40,  0,
149    0,   10, -40,  0,
150    0,   20, -40,  0,
151    0,   30, -40,  0,
152    0,   40, -40,  0
153)
154
155
156# Type 4 manual color calibration table
157
158TYPE_4_C_TABLE = \
159(
160    (32,   32,   32,   32,   32,   32,   32,   32,   32,   32,   32,   32,   32,   32,),
161    (32,   32,   32,   32,   32,   32,   32,   32,   32,   32,   32,   32,   32,   32,),
162    (21,   21,   21,   21,   21,   21,   21,   21,   21,   21,   21,   21,   21,   21,),
163    (21,   21,   21,   21,   21,   21,   21,   21,   21,   21,   21,   21,   21,   21,),
164    (11,   11,   11,   11,   11,   11,   11,   11,   11,   11,   11,   11,   11,   11,),
165    (11,   11,   11,   11,   11,   11,   11,   11,   11,   11,   11,   11,   11,   11,),
166    (0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,),
167    (0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,),
168    (-11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,),
169    (-11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,),
170    (-21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,),
171    (-21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,),
172    (-32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,),
173    (-32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,),
174)
175
176TYPE_4_M_TABLE = \
177(
178    (-30,  -30,  -20,  -20,  -10,  -10,  0,  0,  10,  10,  20,  20,  30,  30,),
179    (-30,  -30,  -20,  -20,  -10,  -10,  0,  0,  10,  10,  20,  20,  30,  30,),
180    (-30,  -30,  -20,  -20,  -10,  -10,  0,  0,  10,  10,  20,  20,  30,  30,),
181    (-30,  -30,  -20,  -20,  -10,  -10,  0,  0,  10,  10,  20,  20,  30,  30,),
182    (-30,  -30,  -20,  -20,  -10,  -10,  0,  0,  10,  10,  20,  20,  30,  30,),
183    (-30,  -30,  -20,  -20,  -10,  -10,  0,  0,  10,  10,  20,  20,  30,  30,),
184    (-30,  -30,  -20,  -20,  -10,  -10,  0,  0,  10,  10,  20,  20,  30,  30,),
185    (-30,  -30,  -20,  -20,  -10,  -10,  0,  0,  10,  10,  20,  20,  30,  30,),
186    (-30,  -30,  -20,  -20,  -10,  -10,  0,  0,  10,  10,  20,  20,  30,  30,),
187    (-30,  -30,  -20,  -20,  -10,  -10,  0,  0,  10,  10,  20,  20,  30,  30,),
188    (-30,  -30,  -20,  -20,  -10,  -10,  0,  0,  10,  10,  20,  20,  30,  30,),
189    (-30,  -30,  -20,  -20,  -10,  -10,  0,  0,  10,  10,  20,  20,  30,  30,),
190    (-30,  -30,  -20,  -20,  -10,  -10,  0,  0,  10,  10,  20,  20,  30,  30,),
191    (-30,  -30,  -20,  -20,  -10,  -10,  0,  0,  10,  10,  20,  20,  30,  30,),
192)
193
194TYPE_4_Y_TABLE = \
195(
196    (-28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,),
197    (8,  28,  8,  28,  8,  28,  8,  28,  8,  28,  8,  28,  8,  28,),
198    (-28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,),
199    (8,  28,  8,  28,  8,  28,  8,  28,  8,  28,  8,  28,  8,  28,),
200    (-28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,),
201    (8,  28,  8,  28,  8,  28,  8,  28,  8,  28,  8,  28,  8,  28,),
202    (-28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,),
203    (-28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,),
204    (8,  28,  8,  28,  8,  28,  8,  28,  8,  28,  8,  28,  8,  28,),
205    (-28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,),
206    (8,  28,  8,  28,  8,  28,  8,  28,  8,  28,  8,  28,  8,  28,),
207    (-28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,),
208    (8,  28,  8,  28,  8,  28,  8,  28,  8,  28,  8,  28,  8,  28,),
209    (-28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,  -28,  -8,),
210)
211
212TYPE_4_LC_TABLE = \
213(
214    (-31,  -21,  -10,  0,  10,  21,  31,),
215    (-31,  -21,  -10,  0,  10,  21,  31,),
216    (-31,  -21,  -10,  0,  10,  21,  31,),
217    (-31,  -21,  -10,  0,  10,  21,  31,),
218    (-31,  -21,  -10,  0,  10,  21,  31,),
219    (-31,  -21,  -10,  0,  10,  21,  31,),
220    (-31,  -21,  -10,  0,  10,  21,  31,),
221)
222
223TYPE_4_LM_TABLE = \
224(
225    (29,   29,   29,   29,   29,   29,   29,),
226    (19,   19,   19,   19,   19,   19,   19,),
227    (10,   10,   10,   10,   10,   10,   10,),
228    (0,    0,    0,    0,    0,    0,    0,),
229    (-10,  -10,  -10,  -10,  -10,  -10,  -10,),
230    (-19,  -19,  -19,  -19,  -19,  -19,  -19,),
231    (-29,  -29,  -29,  -29,  -29,  -29,  -29,),
232)
233