1 /* 2 * 3 * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved 4 * 5 */ 6 7 #include "LETypes.h" 8 #include "MorphTables.h" 9 #include "SubtableProcessor.h" 10 #include "NonContextualGlyphSubst.h" 11 #include "NonContextualGlyphSubstProc.h" 12 #include "SimpleArrayProcessor.h" 13 #include "SegmentSingleProcessor.h" 14 #include "SegmentArrayProcessor.h" 15 #include "SingleTableProcessor.h" 16 #include "TrimmedArrayProcessor.h" 17 #include "LESwaps.h" 18 19 U_NAMESPACE_BEGIN 20 21 NonContextualGlyphSubstitutionProcessor::NonContextualGlyphSubstitutionProcessor() 22 { 23 } 24 25 NonContextualGlyphSubstitutionProcessor::NonContextualGlyphSubstitutionProcessor(const MorphSubtableHeader *morphSubtableHeader) 26 : SubtableProcessor(morphSubtableHeader) 27 { 28 } 29 30 NonContextualGlyphSubstitutionProcessor::~NonContextualGlyphSubstitutionProcessor() 31 { 32 } 33 34 SubtableProcessor *NonContextualGlyphSubstitutionProcessor::createInstance(const MorphSubtableHeader *morphSubtableHeader) 35 { 36 const NonContextualGlyphSubstitutionHeader *header = (const NonContextualGlyphSubstitutionHeader *) morphSubtableHeader; 37 38 switch (SWAPW(header->table.format)) 39 { 40 case ltfSimpleArray: 41 return new SimpleArrayProcessor(morphSubtableHeader); 42 43 case ltfSegmentSingle: 44 return new SegmentSingleProcessor(morphSubtableHeader); 45 46 case ltfSegmentArray: 47 return new SegmentArrayProcessor(morphSubtableHeader); 48 49 case ltfSingleTable: 50 return new SingleTableProcessor(morphSubtableHeader); 51 52 case ltfTrimmedArray: 53 return new TrimmedArrayProcessor(morphSubtableHeader); 54 55 default: 56 return NULL; 57 } 58 } 59 60 U_NAMESPACE_END 61