summaryrefslogtreecommitdiff
path: root/xfa/fxbarcode/datamatrix/BC_EncoderContext.h
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fxbarcode/datamatrix/BC_EncoderContext.h')
-rw-r--r--xfa/fxbarcode/datamatrix/BC_EncoderContext.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/xfa/fxbarcode/datamatrix/BC_EncoderContext.h b/xfa/fxbarcode/datamatrix/BC_EncoderContext.h
new file mode 100644
index 0000000000..ddc6988dc3
--- /dev/null
+++ b/xfa/fxbarcode/datamatrix/BC_EncoderContext.h
@@ -0,0 +1,55 @@
+// Copyright 2014 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXBARCODE_DATAMATRIX_BC_ENCODERCONTEXT_H_
+#define XFA_FXBARCODE_DATAMATRIX_BC_ENCODERCONTEXT_H_
+
+#include "xfa/fxbarcode/datamatrix/BC_SymbolShapeHint.h"
+
+class CBC_SymbolInfo;
+class CBC_Dimension;
+
+class CBC_EncoderContext : public CBC_SymbolShapeHint {
+ public:
+ CBC_EncoderContext(const CFX_WideString msg,
+ CFX_WideString ecLevel,
+ int32_t& e);
+ virtual ~CBC_EncoderContext();
+ void setSymbolShape(SymbolShapeHint shape);
+ void setSizeConstraints(CBC_Dimension* minSize, CBC_Dimension* maxSize);
+ CFX_WideString getMessage();
+ void setSkipAtEnd(int32_t count);
+ FX_WCHAR getCurrentChar();
+ FX_WCHAR getCurrent();
+ void writeCodewords(CFX_WideString codewords);
+ void writeCodeword(FX_WCHAR codeword);
+ int32_t getCodewordCount();
+ void signalEncoderChange(int32_t encoding);
+ void resetEncoderSignal();
+ FX_BOOL hasMoreCharacters();
+ int32_t getRemainingCharacters();
+ void updateSymbolInfo(int32_t& e);
+ void updateSymbolInfo(int32_t len, int32_t& e);
+ void resetSymbolInfo();
+
+ public:
+ CFX_WideString m_msg;
+ CFX_WideString m_codewords;
+ int32_t m_pos;
+ int32_t m_newEncoding;
+ CBC_SymbolInfo* m_symbolInfo;
+
+ private:
+ int32_t getTotalMessageCharCount();
+
+ private:
+ SymbolShapeHint m_shape;
+ CBC_Dimension* m_minSize;
+ CBC_Dimension* m_maxSize;
+ int32_t m_skipAtEnd;
+};
+
+#endif // XFA_FXBARCODE_DATAMATRIX_BC_ENCODERCONTEXT_H_