Home | History | Annotate | Download | only in oned
      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