BC_EncoderContext.h revision 4d3acf4ec42bf6e838f9060103aff98fbf170794
1// Copyright 2014 PDFium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7#ifndef XFA_FXBARCODE_DATAMATRIX_BC_ENCODERCONTEXT_H_ 8#define XFA_FXBARCODE_DATAMATRIX_BC_ENCODERCONTEXT_H_ 9 10#include "xfa/fxbarcode/datamatrix/BC_SymbolShapeHint.h" 11 12class CBC_SymbolInfo; 13class CBC_Dimension; 14 15class CBC_EncoderContext : public CBC_SymbolShapeHint { 16 public: 17 CBC_EncoderContext(const CFX_WideString msg, 18 CFX_WideString ecLevel, 19 int32_t& e); 20 ~CBC_EncoderContext() override; 21 22 void setSymbolShape(SymbolShapeHint shape); 23 void setSizeConstraints(CBC_Dimension* minSize, CBC_Dimension* maxSize); 24 CFX_WideString getMessage(); 25 void setSkipAtEnd(int32_t count); 26 FX_WCHAR getCurrentChar(); 27 FX_WCHAR getCurrent(); 28 void writeCodewords(CFX_WideString codewords); 29 void writeCodeword(FX_WCHAR codeword); 30 int32_t getCodewordCount(); 31 void signalEncoderChange(int32_t encoding); 32 void resetEncoderSignal(); 33 bool hasMoreCharacters(); 34 int32_t getRemainingCharacters(); 35 void updateSymbolInfo(int32_t& e); 36 void updateSymbolInfo(int32_t len, int32_t& e); 37 void resetSymbolInfo(); 38 39 public: 40 CFX_WideString m_msg; 41 CFX_WideString m_codewords; 42 int32_t m_pos; 43 int32_t m_newEncoding; 44 CBC_SymbolInfo* m_symbolInfo; 45 46 private: 47 int32_t getTotalMessageCharCount(); 48 49 private: 50 SymbolShapeHint m_shape; 51 CBC_Dimension* m_minSize; 52 CBC_Dimension* m_maxSize; 53 int32_t m_skipAtEnd; 54}; 55 56#endif // XFA_FXBARCODE_DATAMATRIX_BC_ENCODERCONTEXT_H_ 57