1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/***************************************************************************
2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*
359d709d503bab6e2b61931737e662dd293b40578ccornelius*   Copyright (C) 1998-2013, International Business Machines
4ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*   Corporation and others.  All Rights Reserved.
5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*
6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru************************************************************************/
7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifndef __SFNT_H
9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define __SFNT_H
10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
1159d709d503bab6e2b61931737e662dd293b40578ccornelius#include "layout/LETypes.h"
12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_NAMESPACE_USE
14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifndef ANY_NUMBER
16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define ANY_NUMBER 1
17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct DirectoryEntry
20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   tag;
22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   checksum;
23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   offset;
24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   length;
25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
2783a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef __cplusplus
28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct DirectoryEntry DirectoryEntry;
29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct SFNTDirectory
32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32       scalerType;
34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16       numTables;
35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16       searchRange;
36ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16       entrySelector;
37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16       rangeShift;
38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    DirectoryEntry  tableDirectory[ANY_NUMBER];
39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
4183a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef __cplusplus
42ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct SFNTDirectory SFNTDirectory;
43ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
44ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
45ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
46ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct CMAPEncodingSubtableHeader
47ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
48ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   platformID;
49ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   platformSpecificID;
50ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   encodingOffset;
51ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
52ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
5383a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef __cplusplus
54ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct CMAPEncodingSubtableHeader CMAPEncodingSubtableHeader;
55ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
56ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
57ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct CMAPTable
58ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
59ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   version;
60ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   numberSubtables;
61ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    CMAPEncodingSubtableHeader encodingSubtableHeaders[ANY_NUMBER];
62ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
63ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
6483a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef __cplusplus
65ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct CMAPTable CMAPTable;
66ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
67ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
68ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct CMAPEncodingSubtable
69ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
70ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   format;
71ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   length;
72ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   language;
73ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
74ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
7583a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef __cplusplus
76ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct CMAPEncodingSubtable CMAPEncodingSubtable;
77ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
78ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
7983a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifdef __cplusplus
80ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct CMAPFormat0Encoding : CMAPEncodingSubtable
81ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
82ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint8    glyphIndexArray[256];
83ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
84ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#else
85ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct CMAPFormat0Encoding
86ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
87ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	CMAPEncodingSubtable base;
88ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
89ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	le_uint8 glyphIndexArray[256];
90ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
91ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
92ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct CMAPFormat0Encoding CMAPFormat0Encoding;
93ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
94ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
95ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct CMAPFormat2Subheader
96ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
97ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   firstCode;
98ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   entryCount;
99ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    idDelta;
100ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   idRangeOffset;
101ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
102ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
10383a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef __cplusplus
104ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct CMAPFormat2Subheader CMAPFormat2Subheader;
105ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
106ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
10783a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifdef __cplusplus
108ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct CMAPFormat2Encoding : CMAPEncodingSubtable
109ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
110ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16  subHeadKeys[256];
111ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    CMAPFormat2Subheader subheaders[ANY_NUMBER];
112ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
113ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#else
114ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct CMAPFormat2Encoding
115ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
116ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	CMAPEncodingSubtable base;
117ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
118ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16  subHeadKeys[256];
119ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    CMAPFormat2Subheader subheaders[ANY_NUMBER];
120ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
121ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
122ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct CMAPFormat2Encoding CMAPFormat2Encoding;
123ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
124ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
12583a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifdef __cplusplus
126ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct CMAPFormat4Encoding : CMAPEncodingSubtable
127ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
128ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   segCountX2;
129ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   searchRange;
130ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   entrySelector;
131ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   rangeShift;
132ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   endCodes[ANY_NUMBER];
133ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/*
134ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   reservedPad;
135ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   startCodes[ANY_NUMBER];
136ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   idDelta[ANY_NUMBER];
137ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   idRangeOffset[ANY_NUMBER];
138ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   glyphIndexArray[ANY_NUMBER];
139ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*/
140ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
141ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#else
142ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct CMAPFormat4Encoding
143ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
144ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	CMAPEncodingSubtable base;
145ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
146ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   segCountX2;
147ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   searchRange;
148ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   entrySelector;
149ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   rangeShift;
150ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   endCodes[ANY_NUMBER];
151ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/*
152ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru//  le_uint16   reservedPad;
153ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru//  le_uint16   startCodes[ANY_NUMBER];
154ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru//  le_uint16   idDelta[ANY_NUMBER];
155ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru//  le_uint16   idRangeOffset[ANY_NUMBER];
156ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru//  le_uint16   glyphIndexArray[ANY_NUMBER];
157ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru*/
158ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
159ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
160ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct CMAPFormat4Encoding CMAPFormat4Encoding;
161ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
162ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
16383a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifdef __cplusplus
164ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct CMAPFormat6Encoding : CMAPEncodingSubtable
165ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
166ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   firstCode;
167ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   entryCount;
168ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   glyphIndexArray[ANY_NUMBER];
169ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
170ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#else
171ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct CMAPFormat6Encoding
172ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
173ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	CMAPEncodingSubtable base;
174ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
175ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   firstCode;
176ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   entryCount;
177ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   glyphIndexArray[ANY_NUMBER];
178ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
179ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
180ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct CMAPFormat6Encoding CMAPFormat6Encoding;
181ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
182ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
183ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct CMAPEncodingSubtable32
184ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
185ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   format;
186ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   length;
187ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   language;
188ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
189ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
19083a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef __cplusplus
191ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct CMAPEncodingSubtable32 CMAPEncodingSubtable32;
192ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
193ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
194ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct CMAPGroup
195ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
196ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   startCharCode;
197ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   endCharCode;
198ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   startGlyphCode;
199ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
200ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
20183a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef __cplusplus
202ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct CMAPGroup CMAPGroup;
203ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
204ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
20583a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifdef __cplusplus
206ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct CMAPFormat8Encoding : CMAPEncodingSubtable32
207ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
208ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   is32[65536/32];
209ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   nGroups;
210ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    CMAPGroup   groups[ANY_NUMBER];
211ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
212ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#else
213ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct CMAPFormat8Encoding
214ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
215ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	CMAPEncodingSubtable32 base;
216ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
217ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   is32[65536/32];
218ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   nGroups;
219ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    CMAPGroup   groups[ANY_NUMBER];
220ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
221ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
222ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct CMAPFormat8Encoding CMAPFormat8Encoding;
223ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
224ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
22583a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifdef __cplusplus
226ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct CMAPFormat10Encoding : CMAPEncodingSubtable32
227ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
228ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   startCharCode;
229ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   numCharCodes;
230ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   glyphs[ANY_NUMBER];
231ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
232ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#else
233ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct CMAPFormat10Encoding
234ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
235ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	CMAPEncodingSubtable32 base;
236ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
237ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   startCharCode;
238ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   numCharCodes;
239ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   glyphs[ANY_NUMBER];
240ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
241ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
242ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct CMAPFormat10Encoding CMAPFormat10Encoding;
243ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
244ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
24583a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifdef __cplusplus
246ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct CMAPFormat12Encoding : CMAPEncodingSubtable32
247ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
248ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   nGroups;
249ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    CMAPGroup   groups[ANY_NUMBER];
250ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
251ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#else
252ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct CMAPFormat12Encoding
253ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
254ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	CMAPEncodingSubtable32 base;
255ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
256ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   nGroups;
257ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    CMAPGroup   groups[ANY_NUMBER];
258ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
259ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
260ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct CMAPFormat12Encoding CMAPFormat12Encoding;
261ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
262ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
263ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef le_int32 fixed;
264ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
265ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct BigDate
266ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
267ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   bc;
268ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   ad;
269ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
270ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
27183a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef __cplusplus
272ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct BigDate BigDate;
273ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
274ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
275ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct HEADTable
276ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
277ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fixed       version;
278ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fixed       fontRevision;
279ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   checksumAdjustment;
280ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint32   magicNumber;
281ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   flags;
282ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   unitsPerEm;
283ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    BigDate     created;
284ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    BigDate     modified;
285ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    xMin;
286ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    yMin;
287ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    xMax;
288ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    yMax;
289ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    lowestRecPPEM;
290ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    fontDirectionHint;
291ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    indexToLocFormat;
292ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    glyphDataFormat;
293ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
294ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
29583a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef __cplusplus
296ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct HEADTable HEADTable;
297ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
298ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
299ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct MAXPTable
300ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
301ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fixed       version;
302ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   numGlyphs;
303ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   maxPoints;
304ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   maxContours;
305ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   maxComponentPoints;
306ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   maxComponentContours;
307ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   maxZones;
308ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   maxTwilightPoints;
309ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   maxStorage;
310ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   maxFunctionDefs;
311ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   maxInstructionDefs;
312ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   maxStackElements;
313ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   maxSizeOfInstructions;
314ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   maxComponentElements;
315ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   maxComponentDepth;
316ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
317ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
31883a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef __cplusplus
319ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct MAXPTable MAXPTable;
320ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
321ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
322ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct HHEATable
323ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
324ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fixed       version;
325ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    ascent;
326ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    descent;
327ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    lineGap;
328ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   advanceWidthMax;
329ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    minLeftSideBearing;
330ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    minRightSideBearing;
331ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    xMaxExtent;
332ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    caretSlopeRise;
333ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    caretSlopeRun;
334ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    caretOffset;
335ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    reserved1;
336ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    reserved2;
337ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    reserved3;
338ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    reserved4;
339ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    metricDataFormat;
340ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   numOfLongHorMetrics;
341ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
342ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
34383a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef __cplusplus
344ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct HHEATable HHEATable;
345ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
346ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
347ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct LongHorMetric
348ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
349ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16   advanceWidth;
350ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_int16    leftSideBearing;
351ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
352ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
35383a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef __cplusplus
354ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct LongHorMetric LongHorMetric;
355ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
356ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
357ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct HMTXTable
358ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
359ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    LongHorMetric hMetrics[ANY_NUMBER];       /* ANY_NUMBER = numOfLongHorMetrics from hhea table */
360ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/* le_int16        leftSideBearing[ANY_NUMBER];  ANY_NUMBER = numGlyphs - numOfLongHorMetrics     */
361ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
362ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
36383a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef __cplusplus
364ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct HMTXTable HMTXTable;
365ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
366ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
367ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruenum PlatformID
368ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
369ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    PLATFORM_UNICODE = 0,
370ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    PLATFORM_MACINTOSH = 1,
371ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    PLATFORM_ISO       = 2,
372ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    PLATFORM_MICROSOFT = 3,
373ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    PLATFORM_CUSTOM    = 4
374ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
375ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
376ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruenum MacintoshEncodingID
377ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
378ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    MACINTOSH_ROMAN = 0
379ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
380ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
381ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruenum MacintoshLanguageID
382ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
383ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    MACINTOSH_ENGLISH = 0
384ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
385ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
38685bf2e2fbc60a9f938064abc8127d61da7d19882Claire Hoenum MicrosoftEncodingID
38785bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho{
38885bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    MICROSOFT_UNICODE_BMP  =  1,
38985bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    MICROSOFT_UNICODE_FULL = 10
39085bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho};
39185bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
39285bf2e2fbc60a9f938064abc8127d61da7d19882Claire Hoenum MicrosoftLanguageID
39385bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho{
39485bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    MICROSOFT_ENGLISH = 0x409
39585bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho};
39685bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
397ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruenum NameID
398ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
399ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_COPYRIGHT_NOTICE     = 0,
400ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_FONT_FAMILY          = 1,
401ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_FONT_SUB_FAMILY      = 2,
402ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_UNIQUE_FONT_ID       = 3,
403ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_FULL_FONT_NAME       = 4,
404ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_VERSION_STRING       = 5,
405ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_POSTSCRIPT_NAME      = 6,
406ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_TRADEMARK            = 7,
407ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_MANUFACTURER         = 8,
408ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_DESIGNER             = 9,
409ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_DESCRIPTION          = 10,
410ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_VENDOR_URL           = 11,
411ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_DESIGNER_URL         = 12,
412ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_LICENSE_DESCRIPTION  = 13,
413ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_LICENSE_URL          = 14,
414ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_RESERVED             = 15,
415ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_PREFERRED_FAMILY     = 16,
416ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_PREFERRED_SUB_FAMILY = 17,
417ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_COMPATIBLE_FULL      = 18,
418ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_SAMPLE_TEXT          = 19,
419ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NAME_POSTSCRIPT_CID       = 20
420ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
421ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
422ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct NameRecord
423ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
424ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16 platformID;
425ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16 encodingID;
426ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16 languageID;
427ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16 nameID;
428ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16 length;
429ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16 offset;
430ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
431ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
43283a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef __cplusplus
433ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct NameRecord NameRecord;
434ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
435ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
436ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querustruct NAMETable
437ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
438ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16 version;
439ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16 count;
440ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    le_uint16 stringOffset;
441ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    NameRecord nameRecords[ANY_NUMBER];
442ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
443ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
44483a171d1a62abf406f7f44ae671823d5ec20db7dCraig Cornelius#ifndef __cplusplus
445ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querutypedef struct NAMETable NAMETable;
446ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
447ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
448ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
449ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
450