| // Copyright 2014 The PDFium Authors |
| // 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 FXBARCODE_QRCODE_BC_QRCODERVERSION_H_ |
| #define FXBARCODE_QRCODE_BC_QRCODERVERSION_H_ |
| |
| #include <array> |
| #include <memory> |
| |
| #include "fxbarcode/qrcode/BC_QRCoderECBlockData.h" |
| |
| class CBC_QRCoderErrorCorrectionLevel; |
| |
| class CBC_QRCoderVersion { |
| public: |
| static constexpr int32_t kMaxVersion = 40; |
| |
| CBC_QRCoderVersion(int32_t versionNumber, const ECBlockDataRow& row); |
| ~CBC_QRCoderVersion(); |
| |
| static void Initialize(); |
| static void Finalize(); |
| |
| static const CBC_QRCoderVersion* GetVersionForNumber(int32_t versionNumber); |
| |
| int32_t GetVersionNumber() const; |
| int32_t GetTotalCodeWords() const; |
| int32_t GetDimensionForVersion() const; |
| const CBC_QRCoderECBlockData* GetECBlocksForLevel( |
| const CBC_QRCoderErrorCorrectionLevel& ecLevel) const; |
| |
| private: |
| const int32_t m_versionNumber; |
| int32_t m_totalCodeWords; |
| std::array<std::unique_ptr<CBC_QRCoderECBlockData>, 4> m_ecBlocksArray; |
| }; |
| |
| #endif // FXBARCODE_QRCODE_BC_QRCODERVERSION_H_ |