libwebsockets
Lightweight C library for HTML5 websockets
Loading...
Searching...
No Matches
qrcodegen.h File Reference
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
+ Include dependency graph for qrcodegen.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  qrcodegen_Segment
 

Macros

#define qrcodegen_VERSION_MIN   1
 
#define qrcodegen_VERSION_MAX   40
 
#define qrcodegen_BUFFER_LEN_FOR_VERSION(n)
 
#define qrcodegen_BUFFER_LEN_MAX   qrcodegen_BUFFER_LEN_FOR_VERSION(qrcodegen_VERSION_MAX)
 

Enumerations

enum  qrcodegen_Ecc { qrcodegen_Ecc_LOW = 0 , qrcodegen_Ecc_MEDIUM , qrcodegen_Ecc_QUARTILE , qrcodegen_Ecc_HIGH }
 
enum  qrcodegen_Mask {
  qrcodegen_Mask_AUTO = -1 , qrcodegen_Mask_0 = 0 , qrcodegen_Mask_1 , qrcodegen_Mask_2 ,
  qrcodegen_Mask_3 , qrcodegen_Mask_4 , qrcodegen_Mask_5 , qrcodegen_Mask_6 ,
  qrcodegen_Mask_7
}
 
enum  qrcodegen_Mode {
  qrcodegen_Mode_NUMERIC = 0x1 , qrcodegen_Mode_ALPHANUMERIC = 0x2 , qrcodegen_Mode_BYTE = 0x4 , qrcodegen_Mode_KANJI = 0x8 ,
  qrcodegen_Mode_ECI = 0x7
}
 

Functions

LWS_VISIBLE bool qrcodegen_encodeText (const char *text, uint8_t tempBuffer[], uint8_t qrcode[], enum qrcodegen_Ecc ecl, int minVersion, int maxVersion, enum qrcodegen_Mask mask, bool boostEcl)
 
LWS_VISIBLE bool qrcodegen_encodeBinary (uint8_t dataAndTemp[], size_t dataLen, uint8_t qrcode[], enum qrcodegen_Ecc ecl, int minVersion, int maxVersion, enum qrcodegen_Mask mask, bool boostEcl)
 
LWS_VISIBLE bool qrcodegen_encodeSegments (const struct qrcodegen_Segment segs[], size_t len, enum qrcodegen_Ecc ecl, uint8_t tempBuffer[], uint8_t qrcode[])
 
LWS_VISIBLE bool qrcodegen_encodeSegmentsAdvanced (const struct qrcodegen_Segment segs[], size_t len, enum qrcodegen_Ecc ecl, int minVersion, int maxVersion, enum qrcodegen_Mask mask, bool boostEcl, uint8_t tempBuffer[], uint8_t qrcode[])
 
LWS_VISIBLE bool qrcodegen_isNumeric (const char *text)
 
LWS_VISIBLE bool qrcodegen_isAlphanumeric (const char *text)
 
LWS_VISIBLE size_t qrcodegen_calcSegmentBufferSize (enum qrcodegen_Mode mode, size_t numChars)
 
LWS_VISIBLE struct qrcodegen_Segment qrcodegen_makeBytes (const uint8_t data[], size_t len, uint8_t buf[])
 
LWS_VISIBLE struct qrcodegen_Segment qrcodegen_makeNumeric (const char *digits, uint8_t buf[])
 
LWS_VISIBLE struct qrcodegen_Segment qrcodegen_makeAlphanumeric (const char *text, uint8_t buf[])
 
LWS_VISIBLE struct qrcodegen_Segment qrcodegen_makeEci (long assignVal, uint8_t buf[])
 
LWS_VISIBLE int qrcodegen_getSize (const uint8_t qrcode[])
 
LWS_VISIBLE bool qrcodegen_getModule (const uint8_t qrcode[], int x, int y)
 

Data Structure Documentation

◆ qrcodegen_Segment

struct qrcodegen_Segment

Definition at line 109 of file qrcodegen.h.

+ Collaboration diagram for qrcodegen_Segment:
Data Fields
enum qrcodegen_Mode mode
int numChars
uint8_t * data
int bitLength

Macro Definition Documentation

◆ qrcodegen_VERSION_MIN

#define qrcodegen_VERSION_MIN   1

Definition at line 132 of file qrcodegen.h.

◆ qrcodegen_VERSION_MAX

#define qrcodegen_VERSION_MAX   40

Definition at line 133 of file qrcodegen.h.

◆ qrcodegen_BUFFER_LEN_FOR_VERSION

#define qrcodegen_BUFFER_LEN_FOR_VERSION ( n)
Value:
((((n) * 4 + 17) * ((n) * 4 + 17) + 7) / 8 + 1)

Definition at line 139 of file qrcodegen.h.

◆ qrcodegen_BUFFER_LEN_MAX

#define qrcodegen_BUFFER_LEN_MAX   qrcodegen_BUFFER_LEN_FOR_VERSION(qrcodegen_VERSION_MAX)

Definition at line 144 of file qrcodegen.h.

Enumeration Type Documentation

◆ qrcodegen_Ecc

Enumerator
qrcodegen_Ecc_LOW 
qrcodegen_Ecc_MEDIUM 
qrcodegen_Ecc_QUARTILE 
qrcodegen_Ecc_HIGH 

Definition at line 57 of file qrcodegen.h.

57 {
58 // Must be declared in ascending order of error protection
59 // so that an internal qrcodegen function works properly
60 qrcodegen_Ecc_LOW = 0 , // The QR Code can tolerate about 7% erroneous codewords
61 qrcodegen_Ecc_MEDIUM , // The QR Code can tolerate about 15% erroneous codewords
62 qrcodegen_Ecc_QUARTILE, // The QR Code can tolerate about 25% erroneous codewords
63 qrcodegen_Ecc_HIGH , // The QR Code can tolerate about 30% erroneous codewords
64};
@ qrcodegen_Ecc_MEDIUM
Definition qrcodegen.h:61
@ qrcodegen_Ecc_HIGH
Definition qrcodegen.h:63
@ qrcodegen_Ecc_QUARTILE
Definition qrcodegen.h:62
@ qrcodegen_Ecc_LOW
Definition qrcodegen.h:60

◆ qrcodegen_Mask

Enumerator
qrcodegen_Mask_AUTO 
qrcodegen_Mask_0 
qrcodegen_Mask_1 
qrcodegen_Mask_2 
qrcodegen_Mask_3 
qrcodegen_Mask_4 
qrcodegen_Mask_5 
qrcodegen_Mask_6 
qrcodegen_Mask_7 

Definition at line 70 of file qrcodegen.h.

70 {
71 // A special value to tell the QR Code encoder to
72 // automatically select an appropriate mask pattern
74 // The eight actual mask patterns
83};
@ qrcodegen_Mask_1
Definition qrcodegen.h:76
@ qrcodegen_Mask_0
Definition qrcodegen.h:75
@ qrcodegen_Mask_2
Definition qrcodegen.h:77
@ qrcodegen_Mask_6
Definition qrcodegen.h:81
@ qrcodegen_Mask_AUTO
Definition qrcodegen.h:73
@ qrcodegen_Mask_7
Definition qrcodegen.h:82
@ qrcodegen_Mask_4
Definition qrcodegen.h:79
@ qrcodegen_Mask_5
Definition qrcodegen.h:80
@ qrcodegen_Mask_3
Definition qrcodegen.h:78

◆ qrcodegen_Mode

Enumerator
qrcodegen_Mode_NUMERIC 
qrcodegen_Mode_ALPHANUMERIC 
qrcodegen_Mode_BYTE 
qrcodegen_Mode_KANJI 
qrcodegen_Mode_ECI 

Definition at line 89 of file qrcodegen.h.

89 {
95};
@ qrcodegen_Mode_NUMERIC
Definition qrcodegen.h:90
@ qrcodegen_Mode_ALPHANUMERIC
Definition qrcodegen.h:91
@ qrcodegen_Mode_BYTE
Definition qrcodegen.h:92
@ qrcodegen_Mode_KANJI
Definition qrcodegen.h:93
@ qrcodegen_Mode_ECI
Definition qrcodegen.h:94

Function Documentation

◆ qrcodegen_encodeText()

LWS_VISIBLE bool qrcodegen_encodeText ( const char * text,
uint8_t tempBuffer[],
uint8_t qrcode[],
enum qrcodegen_Ecc ecl,
int minVersion,
int maxVersion,
enum qrcodegen_Mask mask,
bool boostEcl )

References LWS_VISIBLE.

◆ qrcodegen_encodeBinary()

LWS_VISIBLE bool qrcodegen_encodeBinary ( uint8_t dataAndTemp[],
size_t dataLen,
uint8_t qrcode[],
enum qrcodegen_Ecc ecl,
int minVersion,
int maxVersion,
enum qrcodegen_Mask mask,
bool boostEcl )

References LWS_VISIBLE.

◆ qrcodegen_encodeSegments()

LWS_VISIBLE bool qrcodegen_encodeSegments ( const struct qrcodegen_Segment segs[],
size_t len,
enum qrcodegen_Ecc ecl,
uint8_t tempBuffer[],
uint8_t qrcode[] )

References LWS_VISIBLE.

◆ qrcodegen_encodeSegmentsAdvanced()

LWS_VISIBLE bool qrcodegen_encodeSegmentsAdvanced ( const struct qrcodegen_Segment segs[],
size_t len,
enum qrcodegen_Ecc ecl,
int minVersion,
int maxVersion,
enum qrcodegen_Mask mask,
bool boostEcl,
uint8_t tempBuffer[],
uint8_t qrcode[] )

References LWS_VISIBLE.

◆ qrcodegen_isNumeric()

LWS_VISIBLE bool qrcodegen_isNumeric ( const char * text)

References LWS_VISIBLE.

◆ qrcodegen_isAlphanumeric()

LWS_VISIBLE bool qrcodegen_isAlphanumeric ( const char * text)

References LWS_VISIBLE.

◆ qrcodegen_calcSegmentBufferSize()

LWS_VISIBLE size_t qrcodegen_calcSegmentBufferSize ( enum qrcodegen_Mode mode,
size_t numChars )

References LWS_VISIBLE.

◆ qrcodegen_makeBytes()

LWS_VISIBLE struct qrcodegen_Segment qrcodegen_makeBytes ( const uint8_t data[],
size_t len,
uint8_t buf[] )

References LWS_VISIBLE, and qrcodegen_makeBytes().

Referenced by qrcodegen_makeBytes().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ qrcodegen_makeNumeric()

LWS_VISIBLE struct qrcodegen_Segment qrcodegen_makeNumeric ( const char * digits,
uint8_t buf[] )

References LWS_VISIBLE, and qrcodegen_makeNumeric().

Referenced by qrcodegen_makeNumeric().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ qrcodegen_makeAlphanumeric()

LWS_VISIBLE struct qrcodegen_Segment qrcodegen_makeAlphanumeric ( const char * text,
uint8_t buf[] )

References LWS_VISIBLE, and qrcodegen_makeAlphanumeric().

Referenced by qrcodegen_makeAlphanumeric().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ qrcodegen_makeEci()

LWS_VISIBLE struct qrcodegen_Segment qrcodegen_makeEci ( long assignVal,
uint8_t buf[] )

References LWS_VISIBLE, and qrcodegen_makeEci().

Referenced by qrcodegen_makeEci().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ qrcodegen_getSize()

LWS_VISIBLE int qrcodegen_getSize ( const uint8_t qrcode[])

References LWS_VISIBLE.

◆ qrcodegen_getModule()

LWS_VISIBLE bool qrcodegen_getModule ( const uint8_t qrcode[],
int x,
int y )

References LWS_VISIBLE.