OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #ifndef _BC_QRCODERENCODER_H_ | 7 #ifndef _BC_QRCODERENCODER_H_ |
8 #define _BC_QRCODERENCODER_H_ | 8 #define _BC_QRCODERENCODER_H_ |
9 class Make_Pair; | 9 class Make_Pair; |
10 class CBC_QRCoder; | 10 class CBC_QRCoder; |
11 class CBC_QRCoderErrorCorrectionLevel; | 11 class CBC_QRCoderErrorCorrectionLevel; |
12 class CBC_QRCoderMode; | 12 class CBC_QRCoderMode; |
13 class CBC_QRCoderBitVector; | 13 class CBC_QRCoderBitVector; |
14 class CBC_CommonByteArray; | 14 class CBC_CommonByteArray; |
15 class CBC_CommonByteMatrix; | 15 class CBC_CommonByteMatrix; |
16 class CBC_QRCoderEncoder; | 16 class CBC_QRCoderEncoder; |
17 class CBC_QRCoderEncoder | 17 class CBC_QRCoderEncoder |
18 { | 18 { |
19 private: | 19 private: |
20 const static FX_INT32 m_alphaNumbericTable[96]; | 20 const static int32_t m_alphaNumbericTable[96]; |
21 public: | 21 public: |
22 CBC_QRCoderEncoder(); | 22 CBC_QRCoderEncoder(); |
23 virtual ~CBC_QRCoderEncoder(); | 23 virtual ~CBC_QRCoderEncoder(); |
24 | 24 |
25 static void Encode(const CFX_ByteString &content, CBC_QRCoderErrorCorrection
Level* ecLevel, CBC_QRCoder *qrCode, FX_INT32 &e, FX_INT32 versionSpecify = 0); | 25 static void Encode(const CFX_ByteString &content, CBC_QRCoderErrorCorrection
Level* ecLevel, CBC_QRCoder *qrCode, int32_t &e, int32_t versionSpecify = 0); |
26 static void Encode(const CFX_WideString &content, CBC_QRCoderErrorCorrection
Level* ecLevel, CBC_QRCoder *qrCode, FX_INT32 &e); | 26 static void Encode(const CFX_WideString &content, CBC_QRCoderErrorCorrection
Level* ecLevel, CBC_QRCoder *qrCode, int32_t &e); |
27 static void EncodeWithSpecifyVersion(const CFX_ByteString &content, CBC_QRCo
derErrorCorrectionLevel* ecLevel, | 27 static void EncodeWithSpecifyVersion(const CFX_ByteString &content, CBC_QRCo
derErrorCorrectionLevel* ecLevel, |
28 CBC_QRCoder *qrCode, FX_INT32 versionSp
ecify, FX_INT32 &e); | 28 CBC_QRCoder *qrCode, int32_t versionSpe
cify, int32_t &e); |
29 static void EncodeWithAutoVersion(const CFX_ByteString &content, CBC_QRCoder
ErrorCorrectionLevel* ecLevel, CBC_QRCoder *qrCode, FX_INT32 &e); | 29 static void EncodeWithAutoVersion(const CFX_ByteString &content, CBC_QRCoder
ErrorCorrectionLevel* ecLevel, CBC_QRCoder *qrCode, int32_t &e); |
30 static CBC_QRCoderMode* ChooseMode(const CFX_ByteString & content, CFX_ByteS
tring encoding); | 30 static CBC_QRCoderMode* ChooseMode(const CFX_ByteString & content, CFX_ByteS
tring encoding); |
31 static FX_INT32 GetAlphaNumericCode(FX_INT32 code); | 31 static int32_t GetAlphaNumericCode(int32_t code); |
32 static void AppendECI(CBC_QRCoderBitVector* bits); | 32 static void AppendECI(CBC_QRCoderBitVector* bits); |
33 static void AppendBytes(const CFX_ByteString &content, CBC_QRCoderMode* mode
, CBC_QRCoderBitVector* bits, CFX_ByteString encoding, FX_INT32 &e); | 33 static void AppendBytes(const CFX_ByteString &content, CBC_QRCoderMode* mode
, CBC_QRCoderBitVector* bits, CFX_ByteString encoding, int32_t &e); |
34 static void AppendNumericBytes(const CFX_ByteString &content, CBC_QRCoderBit
Vector* bits, FX_INT32 &e); | 34 static void AppendNumericBytes(const CFX_ByteString &content, CBC_QRCoderBit
Vector* bits, int32_t &e); |
35 static void AppendAlphaNumericBytes(const CFX_ByteString &content, CBC_QRCod
erBitVector* bits, FX_INT32 &e); | 35 static void AppendAlphaNumericBytes(const CFX_ByteString &content, CBC_QRCod
erBitVector* bits, int32_t &e); |
36 static void Append8BitBytes(const CFX_ByteString &content, CBC_QRCoderBitVec
tor* bits, CFX_ByteString encoding, FX_INT32 &e); | 36 static void Append8BitBytes(const CFX_ByteString &content, CBC_QRCoderBitVec
tor* bits, CFX_ByteString encoding, int32_t &e); |
37 static void Append8BitBytes(CFX_ByteArray &bytes, CBC_QRCoderBitVector *bits
, FX_INT32 &e); | 37 static void Append8BitBytes(CFX_ByteArray &bytes, CBC_QRCoderBitVector *bits
, int32_t &e); |
38 static void AppendKanjiBytes(const CFX_ByteString &content, CBC_QRCoderBitVe
ctor* bits, FX_INT32 &e); | 38 static void AppendKanjiBytes(const CFX_ByteString &content, CBC_QRCoderBitVe
ctor* bits, int32_t &e); |
39 static void AppendGBKBytes(const CFX_ByteString &content, CBC_QRCoderBitVect
or* bits, FX_INT32 &e); | 39 static void AppendGBKBytes(const CFX_ByteString &content, CBC_QRCoderBitVect
or* bits, int32_t &e); |
40 static void InitQRCode(FX_INT32 numInputBytes, FX_INT32 versionNumber, | 40 static void InitQRCode(int32_t numInputBytes, int32_t versionNumber, |
41 CBC_QRCoderErrorCorrectionLevel* ecLevel, CBC_QRCoder
Mode* mode, CBC_QRCoder* qrCode, FX_INT32 &e); | 41 CBC_QRCoderErrorCorrectionLevel* ecLevel, CBC_QRCoder
Mode* mode, CBC_QRCoder* qrCode, int32_t &e); |
42 static void InitQRCode(FX_INT32 numInputBytes, CBC_QRCoderErrorCorrectionLev
el* ecLevel, CBC_QRCoderMode* mode, CBC_QRCoder* qrCode, FX_INT32 &e); | 42 static void InitQRCode(int32_t numInputBytes, CBC_QRCoderErrorCorrectionLeve
l* ecLevel, CBC_QRCoderMode* mode, CBC_QRCoder* qrCode, int32_t &e); |
43 static void AppendModeInfo(CBC_QRCoderMode* mode, CBC_QRCoderBitVector* bits
, FX_INT32 &e); | 43 static void AppendModeInfo(CBC_QRCoderMode* mode, CBC_QRCoderBitVector* bits
, int32_t &e); |
44 static void AppendLengthInfo(FX_INT32 numLetters, FX_INT32 version, CBC_QRCo
derMode* mode, CBC_QRCoderBitVector* bits, FX_INT32 &e); | 44 static void AppendLengthInfo(int32_t numLetters, int32_t version, CBC_QRCode
rMode* mode, CBC_QRCoderBitVector* bits, int32_t &e); |
45 | 45 |
46 static void InterleaveWithECBytes(CBC_QRCoderBitVector* bits, FX_INT32 numTo
talBytes, FX_INT32 numDataBytes, FX_INT32 numRSBlocks, CBC_QRCoderBitVector* res
ult, FX_INT32 &e); | 46 static void InterleaveWithECBytes(CBC_QRCoderBitVector* bits, int32_t numTot
alBytes, int32_t numDataBytes, int32_t numRSBlocks, CBC_QRCoderBitVector* result
, int32_t &e); |
47 static void GetNumDataBytesAndNumECBytesForBlockID(FX_INT32 numTotalBytes, F
X_INT32 numDataBytes, | 47 static void GetNumDataBytesAndNumECBytesForBlockID(int32_t numTotalBytes, in
t32_t numDataBytes, |
48 FX_INT32 numRSBlocks, FX_INT32 blockID, | 48 int32_t numRSBlocks, int32_t blockID, |
49 FX_INT32 &numDataBytesInBlock, FX_INT32& numECBytesInBlocks); | 49 int32_t &numDataBytesInBlock, int32_t& numECBytesInBlocks); |
50 static CBC_CommonByteArray* GenerateECBytes(CBC_CommonByteArray* dataBytes,
FX_INT32 numEcBytesInBlock, FX_INT32 &e); | 50 static CBC_CommonByteArray* GenerateECBytes(CBC_CommonByteArray* dataBytes,
int32_t numEcBytesInBlock, int32_t &e); |
51 static FX_INT32 ChooseMaskPattern(CBC_QRCoderBitVector* bits, CBC_QRCoderErr
orCorrectionLevel* ecLevel, | 51 static int32_t ChooseMaskPattern(CBC_QRCoderBitVector* bits, CBC_QRCoderErro
rCorrectionLevel* ecLevel, |
52 FX_INT32 version, CBC_CommonByteMatrix* ma
trix, FX_INT32 &e); | 52 int32_t version, CBC_CommonByteMatrix* mat
rix, int32_t &e); |
53 static FX_INT32 CalculateMaskPenalty(CBC_CommonByteMatrix* matrix); | 53 static int32_t CalculateMaskPenalty(CBC_CommonByteMatrix* matrix); |
54 static void TerminateBits(FX_INT32 numDataBytes, CBC_QRCoderBitVector* bits,
FX_INT32 &e); | 54 static void TerminateBits(int32_t numDataBytes, CBC_QRCoderBitVector* bits,
int32_t &e); |
55 static FX_INT32 GetSpanByVersion(CBC_QRCoderMode *modeFirst, CBC_QRCoderMode
*modeSecond, FX_INT32 versionNum, FX_INT32 &e); | 55 static int32_t GetSpanByVersion(CBC_QRCoderMode *modeFirst, CBC_QRCoderMode
*modeSecond, int32_t versionNum, int32_t &e); |
56 static void MergeString(CFX_PtrArray &result, FX_INT32 versionNum, FX_INT32
&e); | 56 static void MergeString(CFX_PtrArray &result, int32_t versionNum, int32_t &e
); |
57 static void SplitString(const CFX_ByteString &content, CFX_PtrArray &result)
; | 57 static void SplitString(const CFX_ByteString &content, CFX_PtrArray &result)
; |
58 static void AppendDataModeLenghInfo(CFX_PtrArray &splitResult, CBC_QRCoderBi
tVector &headerAndDataBits,» CBC_QRCoderMode *tempMode, CBC_QRCoder *qrCode,
CFX_ByteString &encoding, FX_INT32 &e); | 58 static void AppendDataModeLenghInfo(CFX_PtrArray &splitResult, CBC_QRCoderBi
tVector &headerAndDataBits,» CBC_QRCoderMode *tempMode, CBC_QRCoder *qrCode,
CFX_ByteString &encoding, int32_t &e); |
59 }; | 59 }; |
60 #endif | 60 #endif |
OLD | NEW |