// 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 _BC_SYMBOLINFO_H_ | |
#define _BC_SYMBOLINFO_H_ | |
class CBC_SymbolShapeHint; | |
class CBC_Dimension; | |
class CBC_SymbolInfo; | |
class CBC_SymbolInfo : public CBC_SymbolShapeHint { | |
public: | |
CBC_SymbolInfo(FX_BOOL rectangular, | |
int32_t dataCapacity, | |
int32_t errorCodewords, | |
int32_t matrixWidth, | |
int32_t matrixHeight, | |
int32_t dataRegions); | |
virtual ~CBC_SymbolInfo(); | |
static void Initialize(); | |
static void Finalize(); | |
static void overrideSymbolSet(CBC_SymbolInfo* override); | |
static CBC_SymbolInfo* lookup(int32_t dataCodewords, int32_t& e); | |
static CBC_SymbolInfo* lookup(int32_t dataCodewords, | |
SymbolShapeHint shape, | |
int32_t& e); | |
static CBC_SymbolInfo* lookup(int32_t dataCodewords, | |
FX_BOOL allowRectangular, | |
FX_BOOL fail, | |
int32_t& e); | |
static CBC_SymbolInfo* lookup(int32_t dataCodewords, | |
SymbolShapeHint shape, | |
FX_BOOL fail, | |
int32_t& e); | |
static CBC_SymbolInfo* lookup(int32_t dataCodewords, | |
SymbolShapeHint shape, | |
CBC_Dimension* minSize, | |
CBC_Dimension* maxSize, | |
FX_BOOL fail, | |
int32_t& e); | |
int32_t getHorizontalDataRegions(int32_t& e); | |
int32_t getVerticalDataRegions(int32_t& e); | |
int32_t getSymbolDataWidth(int32_t& e); | |
int32_t getSymbolDataHeight(int32_t& e); | |
int32_t getSymbolWidth(int32_t& e); | |
int32_t getSymbolHeight(int32_t& e); | |
int32_t getCodewordCount(); | |
int32_t getInterleavedBlockCount(); | |
int32_t getDataLengthForInterleavedBlock(int32_t index); | |
int32_t getErrorLengthForInterleavedBlock(int32_t index); | |
CFX_WideString toString(int32_t& e); | |
public: | |
int32_t m_dataCapacity; | |
int32_t m_errorCodewords; | |
int32_t m_matrixWidth; | |
int32_t m_matrixHeight; | |
int32_t m_rsBlockData; | |
int32_t m_rsBlockError; | |
static CBC_SymbolInfo* m_PROD_SYMBOLS[30]; | |
private: | |
static CBC_SymbolInfo* m_symbols[30]; | |
FX_BOOL m_rectangular; | |
int32_t m_dataRegions; | |
private: | |
CBC_SymbolInfo(FX_BOOL rectangular, | |
int32_t dataCapacity, | |
int32_t errorCodewords, | |
int32_t matrixWidth, | |
int32_t matrixHeight, | |
int32_t dataRegions, | |
int32_t rsBlockData, | |
int32_t rsBlockError); | |
}; | |
#endif |