• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *
3  * (C) Copyright IBM Corp. and others 1998-2013 - All Rights Reserved
4  *
5  */
6 
7 #ifndef __STATETABLES_H
8 #define __STATETABLES_H
9 
10 /**
11  * \file
12  * \internal
13  */
14 
15 #include "LETypes.h"
16 #include "LayoutTables.h"
17 
18 U_NAMESPACE_BEGIN
19 
20 struct StateTableHeader
21 {
22     le_int16 stateSize;
23     ByteOffset classTableOffset;
24     ByteOffset stateArrayOffset;
25     ByteOffset entryTableOffset;
26 };
27 
28 struct StateTableHeader2
29 {
30     le_uint32 nClasses;
31     le_uint32 classTableOffset;
32     le_uint32 stateArrayOffset;
33     le_uint32 entryTableOffset;
34 };
35 
36 enum ClassCodes
37 {
38     classCodeEOT = 0,
39     classCodeOOB = 1,
40     classCodeDEL = 2,
41     classCodeEOL = 3,
42     classCodeFirstFree = 4,
43     classCodeMAX = 0xFF
44 };
45 
46 typedef le_uint8 ClassCode;
47 
48 struct ClassTable
49 {
50     TTGlyphID firstGlyph;
51     le_uint16 nGlyphs;
52     ClassCode classArray[ANY_NUMBER];
53 };
54 
55 enum StateNumber
56 {
57     stateSOT        = 0,
58     stateSOL        = 1,
59     stateFirstFree  = 2,
60     stateMAX        = 0xFF
61 };
62 
63 typedef le_uint8 EntryTableIndex;
64 
65 struct StateEntry
66 {
67     ByteOffset  newStateOffset;
68     le_int16    flags;
69 };
70 
71 typedef le_uint16 EntryTableIndex2;
72 
73 struct StateEntry2 // same struct different interpretation
74 {
75     le_uint16    newStateIndex;
76     le_uint16    flags;
77 };
78 
79 U_NAMESPACE_END
80 #endif
81 
82