fontservices/textshaperplugin/IcuSource/layout/NonContextualGlyphSubstProc.cpp
changeset 0 1fb32624e06b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fontservices/textshaperplugin/IcuSource/layout/NonContextualGlyphSubstProc.cpp	Tue Feb 02 02:02:46 2010 +0200
@@ -0,0 +1,60 @@
+/*
+ *
+ * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
+ *
+ */
+
+#include "LETypes.h"
+#include "MorphTables.h"
+#include "SubtableProcessor.h"
+#include "NonContextualGlyphSubst.h"
+#include "NonContextualGlyphSubstProc.h"
+#include "SimpleArrayProcessor.h"
+#include "SegmentSingleProcessor.h"
+#include "SegmentArrayProcessor.h"
+#include "SingleTableProcessor.h"
+#include "TrimmedArrayProcessor.h"
+#include "LESwaps.h"
+
+U_NAMESPACE_BEGIN
+
+NonContextualGlyphSubstitutionProcessor::NonContextualGlyphSubstitutionProcessor()
+{
+}
+
+NonContextualGlyphSubstitutionProcessor::NonContextualGlyphSubstitutionProcessor(const MorphSubtableHeader *morphSubtableHeader)
+    : SubtableProcessor(morphSubtableHeader)
+{
+}
+
+NonContextualGlyphSubstitutionProcessor::~NonContextualGlyphSubstitutionProcessor()
+{
+}
+
+SubtableProcessor *NonContextualGlyphSubstitutionProcessor::createInstance(const MorphSubtableHeader *morphSubtableHeader)
+{
+    const NonContextualGlyphSubstitutionHeader *header = (const NonContextualGlyphSubstitutionHeader *) morphSubtableHeader;
+
+    switch (SWAPW(header->table.format))
+    {
+    case ltfSimpleArray:
+        return new SimpleArrayProcessor(morphSubtableHeader);
+
+    case ltfSegmentSingle:
+        return new SegmentSingleProcessor(morphSubtableHeader);
+
+    case ltfSegmentArray:
+        return new SegmentArrayProcessor(morphSubtableHeader);
+
+    case ltfSingleTable:
+        return new SingleTableProcessor(morphSubtableHeader);
+
+    case ltfTrimmedArray:
+        return new TrimmedArrayProcessor(morphSubtableHeader);
+
+    default:
+        return NULL;
+    }
+}
+
+U_NAMESPACE_END