Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

LookupTables.h

Go to the documentation of this file.
00001 /*
00002  * @(#)LookupTables.h   1.5 00/03/15
00003  *
00004  * (C) Copyright IBM Corp. 1998, 1999, 2000 - All Rights Reserved
00005  *
00006  */
00007 
00008 #ifndef __LOOKUPTABLES_H
00009 #define __LOOKUPTABLES_H
00010 
00011 #include "LETypes.h"
00012 #include "LayoutTables.h"
00013 
00014 enum LookupTableFormat
00015 {
00016     ltfSimpleArray      = 0,
00017     ltfSegmentSingle    = 2,
00018     ltfSegmentArray     = 4,
00019     ltfSingleTable      = 6,
00020     ltfTrimmedArray     = 8
00021 };
00022 
00023 typedef le_int16 LookupValue;
00024 
00025 struct LookupTable
00026 {
00027     le_int16 format;
00028 };
00029 
00030 struct LookupSegment
00031 {
00032     le_int16 lastGlyph;
00033     le_int16 firstGlyph;
00034     LookupValue value;
00035 };
00036 
00037 struct LookupSingle
00038 {
00039     le_int16 glyph;
00040     LookupValue value;
00041 };
00042 
00043 struct BinarySearchLookupTable : LookupTable
00044 {
00045     le_int16 unitSize;
00046     le_int16 nUnits;
00047     le_int16 searchRange;
00048     le_int16 entrySelector;
00049     le_int16 rangeShift;
00050 
00051     LookupSegment *lookupSegment(LookupSegment *segments, le_uint32 glyph);
00052 
00053     LookupSingle *lookupSingle(LookupSingle *entries, le_uint32 glyph);
00054 };
00055 
00056 struct SimpleArrayLookupTable : LookupTable
00057 {
00058     LookupValue valueArray[ANY_NUMBER];
00059 };
00060 
00061 struct SegmentSingleLookupTable : BinarySearchLookupTable
00062 {
00063     LookupSegment segments[ANY_NUMBER];
00064 };
00065 
00066 struct SegmentArrayLookupTable : BinarySearchLookupTable
00067 {
00068     LookupSegment segments[ANY_NUMBER];
00069 };
00070 
00071 struct SingleTableLookupTable : BinarySearchLookupTable
00072 {
00073     LookupSingle entries[ANY_NUMBER];
00074 };
00075 
00076 struct TrimmedArrayLookupTable : LookupTable
00077 {
00078     le_int16 firstGlyph;
00079     le_int16 glyphCount;
00080     LookupValue valueArray[ANY_NUMBER];
00081 };
00082 
00083 #endif

Generated at Tue Dec 5 18:13:02 2000 for ICU by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000