| // 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_QRCODE_BC_QRDECODEDBITSTREAMPARSER_H_ |
| #define XFA_FXBARCODE_QRCODE_BC_QRDECODEDBITSTREAMPARSER_H_ |
| |
| class CBC_CommonDecoderResult; |
| class CBC_QRCoderErrorCorrectionLevel; |
| class CBC_CommonBitSource; |
| class CBC_QRCoderVersion; |
| class CBC_CommonCharacterSetECI; |
| class CBC_QRDecodedBitStreamParser { |
| private: |
| static const FX_CHAR ALPHANUMERIC_CHARS[45]; |
| static const FX_CHAR* UTF_8; |
| CBC_QRDecodedBitStreamParser(); |
| |
| public: |
| virtual ~CBC_QRDecodedBitStreamParser(); |
| static CBC_CommonDecoderResult* Decode( |
| CFX_ByteArray* bytes, |
| CBC_QRCoderVersion* version, |
| CBC_QRCoderErrorCorrectionLevel* ecLevel, |
| int32_t byteModeDecode, |
| int32_t& e); |
| |
| static const CFX_ByteString GuessEncoding(CFX_ByteArray* bytes); |
| static int32_t ParseECIValue(CBC_CommonBitSource* bits, int32_t& e); |
| static void DecodeGBKSegment(CBC_CommonBitSource* bits, |
| CFX_ByteString& result, |
| int32_t count, |
| int32_t& e); |
| static void DecodeKanjiSegment(CBC_CommonBitSource* bits, |
| CFX_ByteString& result, |
| int32_t count, |
| int32_t& e); |
| static void DecodeNumericSegment(CBC_CommonBitSource* bits, |
| CFX_ByteString& result, |
| int32_t count, |
| int32_t& e); |
| static void DecodeAlphanumericSegment(CBC_CommonBitSource* bits, |
| CFX_ByteString& result, |
| int32_t count, |
| FX_BOOL fac1InEffect, |
| int32_t& e); |
| static void DecodeByteSegment( |
| CBC_CommonBitSource* bits, |
| CFX_ByteString& result, |
| int32_t count, |
| CBC_CommonCharacterSetECI* currentCharacterSetECI, |
| CFX_Int32Array* byteSegments, |
| int32_t byteModeDecode, |
| int32_t& e); |
| }; |
| |
| #endif // XFA_FXBARCODE_QRCODE_BC_QRDECODEDBITSTREAMPARSER_H_ |