diff options
Diffstat (limited to 'fxbarcode/datamatrix/BC_EncoderContext.h')
-rw-r--r-- | fxbarcode/datamatrix/BC_EncoderContext.h | 56 |
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_ |