diff options
Diffstat (limited to 'xfa/fxbarcode/datamatrix/BC_DataMatrixDecodedBitStreamParser.h')
-rw-r--r-- | xfa/fxbarcode/datamatrix/BC_DataMatrixDecodedBitStreamParser.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/xfa/fxbarcode/datamatrix/BC_DataMatrixDecodedBitStreamParser.h b/xfa/fxbarcode/datamatrix/BC_DataMatrixDecodedBitStreamParser.h new file mode 100644 index 0000000000..415e27b166 --- /dev/null +++ b/xfa/fxbarcode/datamatrix/BC_DataMatrixDecodedBitStreamParser.h @@ -0,0 +1,58 @@ +// 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 XFA_FXBARCODE_DATAMATRIX_BC_DATAMATRIXDECODEDBITSTREAMPARSER_H_ +#define XFA_FXBARCODE_DATAMATRIX_BC_DATAMATRIXDECODEDBITSTREAMPARSER_H_ +class CBC_CommonDecoderResult; +class CBC_CommonBitSource; +class CBC_DataMatrixDecodedBitStreamParser { + public: + CBC_DataMatrixDecodedBitStreamParser(); + virtual ~CBC_DataMatrixDecodedBitStreamParser(); + static CBC_CommonDecoderResult* Decode(CFX_ByteArray& bytes, int32_t& e); + + private: + static int32_t DecodeAsciiSegment(CBC_CommonBitSource* bits, + CFX_ByteString& result, + CFX_ByteString& resultTrailer, + int32_t& e); + static void DecodeC40Segment(CBC_CommonBitSource* bits, + CFX_ByteString& result, + int32_t& e); + static void DecodeTextSegment(CBC_CommonBitSource* bits, + CFX_ByteString& result, + int32_t& e); + static void DecodeAnsiX12Segment(CBC_CommonBitSource* bits, + CFX_ByteString& result, + int32_t& e); + static void ParseTwoBytes(int32_t firstByte, + int32_t secondByte, + CFX_Int32Array& result); + static void DecodeEdifactSegment(CBC_CommonBitSource* bits, + CFX_ByteString& result, + int32_t& e); + static void DecodeBase256Segment(CBC_CommonBitSource* bits, + CFX_ByteString& result, + CFX_Int32Array& byteSegments, + int32_t& e); + static uint8_t Unrandomize255State(int32_t randomizedBase256Codeword, + int32_t base256CodewordPosition); + + static const FX_CHAR C40_BASIC_SET_CHARS[]; + static const FX_CHAR C40_SHIFT2_SET_CHARS[]; + + static const FX_CHAR TEXT_BASIC_SET_CHARS[]; + static const FX_CHAR TEXT_SHIFT3_SET_CHARS[]; + static const int32_t PAD_ENCODE; + static const int32_t ASCII_ENCODE; + static const int32_t C40_ENCODE; + static const int32_t TEXT_ENCODE; + static const int32_t ANSIX12_ENCODE; + static const int32_t EDIFACT_ENCODE; + static const int32_t BASE256_ENCODE; +}; + +#endif // XFA_FXBARCODE_DATAMATRIX_BC_DATAMATRIXDECODEDBITSTREAMPARSER_H_ |