Lines Matching refs:qrcode
66 testable void initializeFunctionModules(int version, uint8_t qrcode[]);
67 static void drawLightFunctionModules(uint8_t qrcode[], int version);
68 static void drawFormatBits(enum qrcodegen_Ecc ecl, enum qrcodegen_Mask mask, uint8_t qrcode[]);
70 static void fillRectangle(int left, int top, int width, int height, uint8_t qrcode[]);
72 static void drawCodewords(const uint8_t data[], int dataLen, uint8_t qrcode[]);
73 static void applyMask(const uint8_t functionModules[], uint8_t qrcode[], enum qrcodegen_Mask mask);
74 static long getPenaltyScore(const uint8_t qrcode[]);
79 testable bool getModule(const uint8_t qrcode[], int x, int y);
80 testable void setModule(uint8_t qrcode[], int x, int y, bool isDark);
81 testable void setModuleBounded(uint8_t qrcode[], int x, int y, bool isDark);
129 bool qrcodegen_encodeText(const char *text, uint8_t tempBuffer[], uint8_t qrcode[], in qrcodegen_encodeText() argument
134 …n_encodeSegmentsAdvanced(NULL, 0, ecl, minVersion, maxVersion, mask, boostEcl, tempBuffer, qrcode); in qrcodegen_encodeText()
158 …n_encodeSegmentsAdvanced(&seg, 1, ecl, minVersion, maxVersion, mask, boostEcl, tempBuffer, qrcode); in qrcodegen_encodeText()
161 qrcode[0] = 0; // Set size to invalid value for safety in qrcodegen_encodeText()
167 bool qrcodegen_encodeBinary(uint8_t dataAndTemp[], size_t dataLen, uint8_t qrcode[], in qrcodegen_encodeBinary() argument
174 qrcode[0] = 0; // Set size to invalid value for safety in qrcodegen_encodeBinary()
179 …_encodeSegmentsAdvanced(&seg, 1, ecl, minVersion, maxVersion, mask, boostEcl, dataAndTemp, qrcode); in qrcodegen_encodeBinary()
197 enum qrcodegen_Ecc ecl, uint8_t tempBuffer[], uint8_t qrcode[]) { in qrcodegen_encodeSegments() argument
199 qrcodegen_VERSION_MIN, qrcodegen_VERSION_MAX, qrcodegen_Mask_AUTO, true, tempBuffer, qrcode); in qrcodegen_encodeSegments()
205 … int maxVersion, enum qrcodegen_Mask mask, bool boostEcl, uint8_t tempBuffer[], uint8_t qrcode[]) { in qrcodegen_encodeSegmentsAdvanced() argument
218 qrcode[0] = 0; // Set size to invalid value for safety in qrcodegen_encodeSegmentsAdvanced()
231 memset(qrcode, 0, (size_t)qrcodegen_BUFFER_LEN_FOR_VERSION(version) * sizeof(qrcode[0])); in qrcodegen_encodeSegmentsAdvanced()
235 appendBitsToBuffer((unsigned int)seg->mode, 4, qrcode, &bitLen); in qrcodegen_encodeSegmentsAdvanced()
236 …appendBitsToBuffer((unsigned int)seg->numChars, numCharCountBits(seg->mode, version), qrcode, &bit… in qrcodegen_encodeSegmentsAdvanced()
239 appendBitsToBuffer((unsigned int)bit, 1, qrcode, &bitLen); in qrcodegen_encodeSegmentsAdvanced()
250 appendBitsToBuffer(0, terminatorBits, qrcode, &bitLen); in qrcodegen_encodeSegmentsAdvanced()
251 appendBitsToBuffer(0, (8 - bitLen % 8) % 8, qrcode, &bitLen); in qrcodegen_encodeSegmentsAdvanced()
256 appendBitsToBuffer(padByte, 8, qrcode, &bitLen); in qrcodegen_encodeSegmentsAdvanced()
259 addEccAndInterleave(qrcode, version, ecl, tempBuffer); in qrcodegen_encodeSegmentsAdvanced()
260 initializeFunctionModules(version, qrcode); in qrcodegen_encodeSegmentsAdvanced()
261 drawCodewords(tempBuffer, getNumRawDataModules(version) / 8, qrcode); in qrcodegen_encodeSegmentsAdvanced()
262 drawLightFunctionModules(qrcode, version); in qrcodegen_encodeSegmentsAdvanced()
270 applyMask(tempBuffer, qrcode, msk); in qrcodegen_encodeSegmentsAdvanced()
271 drawFormatBits(ecl, msk, qrcode); in qrcodegen_encodeSegmentsAdvanced()
272 long penalty = getPenaltyScore(qrcode); in qrcodegen_encodeSegmentsAdvanced()
277 applyMask(tempBuffer, qrcode, msk); // Undoes the mask due to XOR in qrcodegen_encodeSegmentsAdvanced()
281 applyMask(tempBuffer, qrcode, mask); in qrcodegen_encodeSegmentsAdvanced()
282 drawFormatBits(ecl, mask, qrcode); in qrcodegen_encodeSegmentsAdvanced()
418 testable void initializeFunctionModules(int version, uint8_t qrcode[]) { in initializeFunctionModules() argument
421 memset(qrcode, 0, (size_t)((qrsize * qrsize + 7) / 8 + 1) * sizeof(qrcode[0])); in initializeFunctionModules()
422 qrcode[0] = (uint8_t)qrsize; in initializeFunctionModules()
425 fillRectangle(6, 0, 1, qrsize, qrcode); in initializeFunctionModules()
426 fillRectangle(0, 6, qrsize, 1, qrcode); in initializeFunctionModules()
429 fillRectangle(0, 0, 9, 9, qrcode); in initializeFunctionModules()
430 fillRectangle(qrsize - 8, 0, 8, 9, qrcode); in initializeFunctionModules()
431 fillRectangle(0, qrsize - 8, 9, 8, qrcode); in initializeFunctionModules()
440 fillRectangle(alignPatPos[i] - 2, alignPatPos[j] - 2, 5, 5, qrcode); in initializeFunctionModules()
446 fillRectangle(qrsize - 11, 0, 3, 6, qrcode); in initializeFunctionModules()
447 fillRectangle(0, qrsize - 11, 6, 3, qrcode); in initializeFunctionModules()
455 static void drawLightFunctionModules(uint8_t qrcode[], int version) { in drawLightFunctionModules() argument
457 int qrsize = qrcodegen_getSize(qrcode); in drawLightFunctionModules()
459 setModule(qrcode, 6, i, false); in drawLightFunctionModules()
460 setModule(qrcode, i, 6, false); in drawLightFunctionModules()
470 setModuleBounded(qrcode, 3 + dx, 3 + dy, false); in drawLightFunctionModules()
471 setModuleBounded(qrcode, qrsize - 4 + dx, 3 + dy, false); in drawLightFunctionModules()
472 setModuleBounded(qrcode, 3 + dx, qrsize - 4 + dy, false); in drawLightFunctionModules()
486 setModule(qrcode, alignPatPos[i] + dx, alignPatPos[j] + dy, dx == 0 && dy == 0); in drawLightFunctionModules()
504 setModule(qrcode, k, i, (bits & 1) != 0); in drawLightFunctionModules()
505 setModule(qrcode, i, k, (bits & 1) != 0); in drawLightFunctionModules()
516 static void drawFormatBits(enum qrcodegen_Ecc ecl, enum qrcodegen_Mask mask, uint8_t qrcode[]) { in drawFormatBits() argument
529 setModule(qrcode, 8, i, getBit(bits, i)); in drawFormatBits()
530 setModule(qrcode, 8, 7, getBit(bits, 6)); in drawFormatBits()
531 setModule(qrcode, 8, 8, getBit(bits, 7)); in drawFormatBits()
532 setModule(qrcode, 7, 8, getBit(bits, 8)); in drawFormatBits()
534 setModule(qrcode, 14 - i, 8, getBit(bits, i)); in drawFormatBits()
537 int qrsize = qrcodegen_getSize(qrcode); in drawFormatBits()
539 setModule(qrcode, qrsize - 1 - i, 8, getBit(bits, i)); in drawFormatBits()
541 setModule(qrcode, 8, qrsize - 15 + i, getBit(bits, i)); in drawFormatBits()
542 setModule(qrcode, 8, qrsize - 8, true); // Always dark in drawFormatBits()
564 static void fillRectangle(int left, int top, int width, int height, uint8_t qrcode[]) { in fillRectangle() argument
567 setModule(qrcode, left + dx, top + dy, true); in fillRectangle()
577 static void drawCodewords(const uint8_t data[], int dataLen, uint8_t qrcode[]) { in drawCodewords() argument
578 int qrsize = qrcodegen_getSize(qrcode); in drawCodewords()
589 if (!getModule(qrcode, x, y) && i < dataLen * 8) { in drawCodewords()
591 setModule(qrcode, x, y, dark); in drawCodewords()
608 static void applyMask(const uint8_t functionModules[], uint8_t qrcode[], enum qrcodegen_Mask mask) { in applyMask() argument
610 int qrsize = qrcodegen_getSize(qrcode); in applyMask()
627 bool val = getModule(qrcode, x, y); in applyMask()
628 setModule(qrcode, x, y, val ^ invert); in applyMask()
636 static long getPenaltyScore(const uint8_t qrcode[]) { in getPenaltyScore() argument
637 int qrsize = qrcodegen_getSize(qrcode); in getPenaltyScore()
646 if (getModule(qrcode, x, y) == runColor) { in getPenaltyScore()
656 runColor = getModule(qrcode, x, y); in getPenaltyScore()
668 if (getModule(qrcode, x, y) == runColor) { in getPenaltyScore()
678 runColor = getModule(qrcode, x, y); in getPenaltyScore()
688 bool color = getModule(qrcode, x, y); in getPenaltyScore()
689 if ( color == getModule(qrcode, x + 1, y) && in getPenaltyScore()
690 color == getModule(qrcode, x, y + 1) && in getPenaltyScore()
691 color == getModule(qrcode, x + 1, y + 1)) in getPenaltyScore()
700 if (getModule(qrcode, x, y)) in getPenaltyScore()
750 int qrcodegen_getSize(const uint8_t qrcode[]) { in qrcodegen_getSize() argument
751 assert(qrcode != NULL); in qrcodegen_getSize()
752 int result = qrcode[0]; in qrcodegen_getSize()
760 bool qrcodegen_getModule(const uint8_t qrcode[], int x, int y) { in qrcodegen_getModule() argument
761 assert(qrcode != NULL); in qrcodegen_getModule()
762 int qrsize = qrcode[0]; in qrcodegen_getModule()
763 return (0 <= x && x < qrsize && 0 <= y && y < qrsize) && getModule(qrcode, x, y); in qrcodegen_getModule()
768 testable bool getModule(const uint8_t qrcode[], int x, int y) { in getModule() argument
769 int qrsize = qrcode[0]; in getModule()
772 return getBit(qrcode[(index >> 3) + 1], index & 7); in getModule()
777 testable void setModule(uint8_t qrcode[], int x, int y, bool isDark) { in setModule() argument
778 int qrsize = qrcode[0]; in setModule()
784 qrcode[byteIndex] |= 1 << bitIndex; in setModule()
786 qrcode[byteIndex] &= (1 << bitIndex) ^ 0xFF; in setModule()
791 testable void setModuleBounded(uint8_t qrcode[], int x, int y, bool isDark) { in setModuleBounded() argument
792 int qrsize = qrcode[0]; in setModuleBounded()
794 setModule(qrcode, x, y, isDark); in setModuleBounded()