BitMatrixParser.h Example File
appdemos/qtws/QZXing/zxing/zxing/pdf417/decoder/BitMatrixParser.h
#ifndef __BIT_MATRIX_PARSER__PDF_H__
#define __BIT_MATRIX_PARSER__PDF_H__
#include <zxing/ReaderException.h>
#include <zxing/FormatException.h>
#include <zxing/common/BitMatrix.h>
#include <zxing/common/Counted.h>
#include <zxing/common/Array.h>
#include <stdint.h>
namespace zxing {
namespace pdf417 {
namespace decoder {
class BitMatrixParser : public Counted {
private:
static const int MAX_ROWS;
static const int MAX_CW_CAPACITY;
static const int MODULES_IN_SYMBOL;
Ref<BitMatrix> bitMatrix_;
int rows_;
int leftColumnECData_;
int rightColumnECData_;
int aLeftColumnTriple_[3];
int aRightColumnTriple_[3];
int eraseCount_;
ArrayRef<int> erasures_;
int ecLevel_;
public:
static const int SYMBOL_TABLE[];
static const int SYMBOL_TABLE_LENGTH;
static const int CODEWORD_TABLE[];
public:
BitMatrixParser(Ref<BitMatrix> bitMatrix);
ArrayRef<int> getErasures() const {return erasures_;}
int getECLevel() const {return ecLevel_;}
int getEraseCount() const {return eraseCount_;}
ArrayRef<int> readCodewords();
static int getCodeword(int64_t symbol, int *pi = NULL);
private:
bool VerifyOuterColumns(int rownumber);
static ArrayRef<int> trimArray(ArrayRef<int> array, int size);
static int findCodewordIndex(int64_t symbol);
int processRow(int rowNumber,
ArrayRef<int> codewords, int next);
int processRow(ArrayRef<int> rowCounters, int rowNumber, int rowHeight,
ArrayRef<int> codewords, int next);
protected:
bool IsEqual(int &a, int &b, int rownumber);
};
}
}
}
#endif // __BIT_MATRIX_PARSER__PDF_H__