| 118 | } |
| 119 | |
| 120 | void EncodeECC200(ByteArray& codewords, const SymbolInfo& symbolInfo) |
| 121 | { |
| 122 | if (codewords.size() != (size_t)symbolInfo.dataCapacity()) { |
| 123 | throw std::invalid_argument("The number of codewords does not match the selected symbol"); |
| 124 | } |
| 125 | codewords.resize(symbolInfo.codewordCount(), 0); |
| 126 | int blockCount = symbolInfo.interleavedBlockCount(); |
| 127 | if (blockCount == 1) { |
| 128 | CreateECCBlock(codewords, 0, symbolInfo.dataCapacity(), symbolInfo.dataCapacity(), symbolInfo.errorCodewords(), 1); |
| 129 | } |
| 130 | else { |
| 131 | for (int block = 0; block < blockCount; block++) |
| 132 | CreateECCBlock(codewords, block, symbolInfo.dataLengthForInterleavedBlock(block + 1), |
| 133 | symbolInfo.dataCapacity() + block, symbolInfo.errorLengthForInterleavedBlock(), blockCount); |
| 134 | } |
| 135 | } |
| 136 | |
| 137 | } // namespace ZXing::DataMatrix |
no test coverage detected