Home | History | Annotate | Download | only in layout
      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