summaryrefslogtreecommitdiff
path: root/fxbarcode/datamatrix/BC_EncoderContext.h
diff options
context:
space:
mode:
Diffstat (limited to 'fxbarcode/datamatrix/BC_EncoderContext.h')
-rw-r--r--fxbarcode/datamatrix/BC_EncoderContext.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/fxbarcode/datamatrix/BC_EncoderContext.h b/fxbarcode/datamatrix/BC_EncoderContext.h
new file mode 100644
index 0000000000..6be824116f
--- /dev/null
+++ b/fxbarcode/datamatrix/BC_EncoderContext.h
@@ -0,0 +1,56 @@
+// 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 FXBARCODE_DATAMATRIX_BC_ENCODERCONTEXT_H_
+#define FXBARCODE_DATAMATRIX_BC_ENCODERCONTEXT_H_
+
+#include "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);
+ ~CBC_EncoderContext() override;
+
+ void setSymbolShape(SymbolShapeHint shape);
+ void setSizeConstraints(CBC_Dimension* minSize, CBC_Dimension* maxSize);
+ CFX_WideString getMessage();
+ void setSkipAtEnd(int32_t count);
+ wchar_t getCurrentChar();
+ wchar_t getCurrent();
+ void writeCodewords(CFX_WideString codewords);
+ void writeCodeword(wchar_t codeword);
+ int32_t getCodewordCount();
+ void signalEncoderChange(int32_t encoding);
+ void resetEncoderSignal();
+ 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 // FXBARCODE_DATAMATRIX_BC_ENCODERCONTEXT_H_