summaryrefslogtreecommitdiff
path: root/xfa/fxbarcode/pdf417/BC_PDF417.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fxbarcode/pdf417/BC_PDF417.cpp')
-rw-r--r--xfa/fxbarcode/pdf417/BC_PDF417.cpp50
1 files changed, 23 insertions, 27 deletions
diff --git a/xfa/fxbarcode/pdf417/BC_PDF417.cpp b/xfa/fxbarcode/pdf417/BC_PDF417.cpp
index 317a1cb92b..843ee23364 100644
--- a/xfa/fxbarcode/pdf417/BC_PDF417.cpp
+++ b/xfa/fxbarcode/pdf417/BC_PDF417.cpp
@@ -380,35 +380,23 @@ const int32_t CBC_PDF417::CODEWORD_TABLE[][929] = {
0x11f1a, 0x13f3a, 0x103ac, 0x103a6, 0x107a8, 0x183d6, 0x107a4, 0x107a2,
0x10396, 0x107b6, 0x187d4, 0x187d2, 0x10794, 0x10fb4, 0x10792, 0x10fb2,
0x1c7ea}};
-FX_FLOAT CBC_PDF417::PREFERRED_RATIO = 3.0f;
-FX_FLOAT CBC_PDF417::DEFAULT_MODULE_WIDTH = 0.357f;
-FX_FLOAT CBC_PDF417::HEIGHT = 2.0f;
-CBC_PDF417::CBC_PDF417() {
- m_compact = FALSE;
- m_compaction = AUTO;
- m_minCols = 1;
- m_maxCols = 30;
- m_maxRows = 90;
- m_minRows = 3;
- m_barcodeMatrix = nullptr;
-}
-CBC_PDF417::CBC_PDF417(FX_BOOL compact) {
- m_compact = compact;
- m_compaction = AUTO;
- m_minCols = 1;
- m_maxCols = 30;
- m_maxRows = 90;
- m_minRows = 3;
- m_barcodeMatrix = nullptr;
-}
-CBC_PDF417::~CBC_PDF417() {
- delete m_barcodeMatrix;
-}
+CBC_PDF417::CBC_PDF417() : CBC_PDF417(FALSE) {}
+
+CBC_PDF417::CBC_PDF417(FX_BOOL compact)
+ : m_compact(compact),
+ m_compaction(AUTO),
+ m_minCols(1),
+ m_maxCols(30),
+ m_maxRows(90),
+ m_minRows(3) {}
+
+CBC_PDF417::~CBC_PDF417() {}
CBC_BarcodeMatrix* CBC_PDF417::getBarcodeMatrix() {
- return m_barcodeMatrix;
+ return m_barcodeMatrix.get();
}
+
void CBC_PDF417::generateBarcodeLogic(CFX_WideString msg,
int32_t errorCorrectionLevel,
int32_t& e) {
@@ -444,10 +432,11 @@ void CBC_PDF417::generateBarcodeLogic(CFX_WideString msg,
dataCodewords, errorCorrectionLevel, e);
BC_EXCEPTION_CHECK_ReturnVoid(e);
CFX_WideString fullCodewords = dataCodewords + ec;
- m_barcodeMatrix = new CBC_BarcodeMatrix(rows, cols);
+ m_barcodeMatrix.reset(new CBC_BarcodeMatrix(rows, cols));
encodeLowLevel(fullCodewords, cols, rows, errorCorrectionLevel,
- m_barcodeMatrix);
+ m_barcodeMatrix.get());
}
+
void CBC_PDF417::setDimensions(int32_t maxCols,
int32_t minCols,
int32_t maxRows,
@@ -457,12 +446,15 @@ void CBC_PDF417::setDimensions(int32_t maxCols,
m_maxRows = maxRows;
m_minRows = minRows;
}
+
void CBC_PDF417::setCompaction(Compaction compaction) {
m_compaction = compaction;
}
+
void CBC_PDF417::setCompact(FX_BOOL compact) {
m_compact = compact;
}
+
int32_t CBC_PDF417::calculateNumberOfRows(int32_t m, int32_t k, int32_t c) {
int32_t r = ((m + 1 + k) / c) + 1;
if (c * r >= (m + 1 + k + c)) {
@@ -470,6 +462,7 @@ int32_t CBC_PDF417::calculateNumberOfRows(int32_t m, int32_t k, int32_t c) {
}
return r;
}
+
int32_t CBC_PDF417::getNumberOfPadCodewords(int32_t m,
int32_t k,
int32_t c,
@@ -477,6 +470,7 @@ int32_t CBC_PDF417::getNumberOfPadCodewords(int32_t m,
int32_t n = c * r - k;
return n > m + 1 ? n - m - 1 : 0;
}
+
void CBC_PDF417::encodeChar(int32_t pattern,
int32_t len,
CBC_BarcodeRow* logic) {
@@ -496,6 +490,7 @@ void CBC_PDF417::encodeChar(int32_t pattern,
}
logic->addBar(last, width);
}
+
void CBC_PDF417::encodeLowLevel(CFX_WideString fullCodewords,
int32_t c,
int32_t r,
@@ -534,6 +529,7 @@ void CBC_PDF417::encodeLowLevel(CFX_WideString fullCodewords,
}
}
}
+
CFX_Int32Array* CBC_PDF417::determineDimensions(
int32_t sourceCodeWords,
int32_t errorCorrectionCodeWords,