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 _BC_ONEDCODA39READER_H_ 8 #define _BC_ONEDCODA39READER_H_ 9 class CBC_OneDReader; 10 class CBC_CommonBitArray; 11 class CBC_OnedCoda39Reader; 12 class CBC_OnedCode39Reader : public CBC_OneDReader { 13 public: 14 static const FX_CHAR* ALPHABET_STRING; 15 static const FX_CHAR* CHECKSUM_STRING; 16 const static int32_t CHARACTER_ENCODINGS[44]; 17 const static int32_t ASTERISK_ENCODING; 18 CBC_OnedCode39Reader(); 19 CBC_OnedCode39Reader(FX_BOOL usingCheckDigit); 20 CBC_OnedCode39Reader(FX_BOOL usingCheckDigit, FX_BOOL extendedMode); 21 virtual ~CBC_OnedCode39Reader(); 22 CFX_ByteString DecodeRow(int32_t rowNumber, 23 CBC_CommonBitArray* row, 24 int32_t hints, 25 int32_t& e); 26 27 private: 28 FX_BOOL m_usingCheckDigit; 29 FX_BOOL m_extendedMode; 30 CFX_Int32Array* FindAsteriskPattern(CBC_CommonBitArray* row, int32_t& e); 31 int32_t ToNarrowWidePattern(CFX_Int32Array* counters); 32 FX_CHAR PatternToChar(int32_t pattern, int32_t& e); 33 CFX_ByteString DecodeExtended(CFX_ByteString& encoded, int32_t& e); 34 }; 35 #endif 36