|
QRencode
QR Code encoder
|
Go to the source code of this file.
Data Structures | |
| struct | QRcode |
| QRcode class. More... | |
| struct | QRcode_List |
| Singly-linked list of QRcode. More... | |
Macros | |
| #define | QRSPEC_VERSION_MAX 40 |
| Maximum version (size) of QR-code symbol. | |
| #define | MQRSPEC_VERSION_MAX 4 |
| Maximum version (size) of QR-code symbol. | |
Typedefs | |
| typedef struct _QRinput | QRinput |
| Singly linked list to contain input strings. | |
| typedef struct _QRinput_Struct | QRinput_Struct |
| Set of QRinput for structured symbols. | |
Enumerations | |
| enum | QRencodeMode { QR_MODE_NUL = -1 , QR_MODE_NUM = 0 , QR_MODE_AN , QR_MODE_8 , QR_MODE_KANJI , QR_MODE_STRUCTURE , QR_MODE_ECI , QR_MODE_FNC1FIRST , QR_MODE_FNC1SECOND } |
| Encoding mode. More... | |
| enum | QRecLevel { QR_ECLEVEL_L = 0 , QR_ECLEVEL_M , QR_ECLEVEL_Q , QR_ECLEVEL_H } |
| Level of error correction. More... | |
Functions | |
| QRinput * | QRinput_new (void) |
| Instantiate an input data object. | |
| QRinput * | QRinput_new2 (int version, QRecLevel level) |
| Instantiate an input data object. | |
| QRinput * | QRinput_newMQR (int version, QRecLevel level) |
| Instantiate an input data object. | |
| int | QRinput_append (QRinput *input, QRencodeMode mode, int size, const unsigned char *data) |
| Append data to an input object. | |
| int | QRinput_appendECIheader (QRinput *input, unsigned int ecinum) |
| Append ECI header. | |
| int | QRinput_getVersion (QRinput *input) |
| Get current version. | |
| int | QRinput_setVersion (QRinput *input, int version) |
| Set version of the QR code that is to be encoded. | |
| QRecLevel | QRinput_getErrorCorrectionLevel (QRinput *input) |
| Get current error correction level. | |
| int | QRinput_setErrorCorrectionLevel (QRinput *input, QRecLevel level) |
| Set error correction level of the QR code that is to be encoded. | |
| int | QRinput_setVersionAndErrorCorrectionLevel (QRinput *input, int version, QRecLevel level) |
| Set version and error correction level of the QR code at once. | |
| void | QRinput_free (QRinput *input) |
| Free the input object. | |
| int | QRinput_check (QRencodeMode mode, int size, const unsigned char *data) |
| Validate the input data. | |
| QRinput_Struct * | QRinput_Struct_new (void) |
| Instantiate a set of input data object. | |
| void | QRinput_Struct_setParity (QRinput_Struct *s, unsigned char parity) |
| Set parity of structured symbols. | |
| int | QRinput_Struct_appendInput (QRinput_Struct *s, QRinput *input) |
| Append a QRinput object to the set. | |
| void | QRinput_Struct_free (QRinput_Struct *s) |
| Free all of QRinput in the set. | |
| QRinput_Struct * | QRinput_splitQRinputToStruct (QRinput *input) |
| Split a QRinput to QRinput_Struct. | |
| int | QRinput_Struct_insertStructuredAppendHeaders (QRinput_Struct *s) |
| Insert structured-append headers to the input structure. | |
| int | QRinput_setFNC1First (QRinput *input) |
| Set FNC1-1st position flag. | |
| int | QRinput_setFNC1Second (QRinput *input, unsigned char appid) |
| Set FNC1-2nd position flag and application identifier. | |
| QRcode * | QRcode_encodeInput (QRinput *input) |
| Create a symbol from the input data. | |
| QRcode * | QRcode_encodeString (const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive) |
| Create a symbol from the string. | |
| QRcode * | QRcode_encodeString8bit (const char *string, int version, QRecLevel level) |
| Same to QRcode_encodeString(), but encode whole data in 8-bit mode. | |
| QRcode * | QRcode_encodeStringMQR (const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive) |
| Micro QR Code version of QRcode_encodeString(). | |
| QRcode * | QRcode_encodeString8bitMQR (const char *string, int version, QRecLevel level) |
| Micro QR Code version of QRcode_encodeString8bit(). | |
| QRcode * | QRcode_encodeData (int size, const unsigned char *data, int version, QRecLevel level) |
| Encode byte stream (may include '\0') in 8-bit mode. | |
| QRcode * | QRcode_encodeDataMQR (int size, const unsigned char *data, int version, QRecLevel level) |
| Micro QR Code version of QRcode_encodeData(). | |
| void | QRcode_free (QRcode *qrcode) |
| Free the instance of QRcode class. | |
| QRcode_List * | QRcode_encodeInputStructured (QRinput_Struct *s) |
| Create structured symbols from the input data. | |
| QRcode_List * | QRcode_encodeStringStructured (const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive) |
| Create structured symbols from the string. | |
| QRcode_List * | QRcode_encodeString8bitStructured (const char *string, int version, QRecLevel level) |
| Same to QRcode_encodeStringStructured(), but encode whole data in 8-bit mode. | |
| QRcode_List * | QRcode_encodeDataStructured (int size, const unsigned char *data, int version, QRecLevel level) |
| Create structured symbols from byte stream (may include '\0'). | |
| int | QRcode_List_size (QRcode_List *qrlist) |
| Return the number of symbols included in a QRcode_List. | |
| void | QRcode_List_free (QRcode_List *qrlist) |
| Free the QRcode_List. | |
| void | QRcode_APIVersion (int *major_version, int *minor_version, int *micro_version) |
| Return a string that identifies the library version. | |
| char * | QRcode_APIVersionString (void) |
| Return a string that identifies the library version. | |
| void | QRcode_clearCache (void) __attribute__((deprecated)) |
| #define QRSPEC_VERSION_MAX 40 |
Maximum version (size) of QR-code symbol.
| #define MQRSPEC_VERSION_MAX 4 |
Maximum version (size) of QR-code symbol.
| typedef struct _QRinput QRinput |
Singly linked list to contain input strings.
An instance of this class contains its version and error correction level too. It is required to set them by QRinput_setVersion() and QRinput_setErrorCorrectionLevel(), or use QRinput_new2() to instantiate an object.
| typedef struct _QRinput_Struct QRinput_Struct |
Set of QRinput for structured symbols.
| enum QRencodeMode |
Encoding mode.
| enum QRecLevel |
|
extern |
Instantiate an input data object.
The version is set to 0 (auto-select) and the error correction level is set to QR_ECLEVEL_L.
| ENOMEM | unable to allocate memory. |
Instantiate an input data object.
| version | version number. |
| level | Error correction level. |
| ENOMEM | unable to allocate memory for input objects. |
| EINVAL | invalid arguments. |
Instantiate an input data object.
Object's Micro QR Code flag is set. Unlike with full-sized QR Code, version number must be specified (>0).
| version | version number (1–4). |
| level | Error correction level. |
| ENOMEM | unable to allocate memory for input objects. |
| EINVAL | invalid arguments. |
|
extern |
Append data to an input object.
The data is copied and appended to the input object.
| input | input object. |
| mode | encoding mode. |
| size | size of data (byte). |
| data | a pointer to the memory area of the input data. |
| 0 | success. |
| -1 | an error occurred and errno is set to indeicate the error. See Execptions for the details. |
| ENOMEM | unable to allocate memory. |
| EINVAL | input data is invalid. |
|
extern |
Append ECI header.
| input | input object. |
| ecinum | ECI indicator number (0 - 999999) |
| 0 | success. |
| -1 | an error occurred and errno is set to indeicate the error. See Execptions for the details. |
| ENOMEM | unable to allocate memory. |
| EINVAL | input data is invalid. |
|
extern |
Get current version.
| input | input object. |
|
extern |
Set version of the QR code that is to be encoded.
This function cannot be applied to Micro QR Code.
| input | input object. |
| version | version number (0 = auto) |
| 0 | success. |
| -1 | invalid argument. |
Get current error correction level.
| input | input object. |
Set error correction level of the QR code that is to be encoded.
This function cannot be applied to Micro QR Code.
| input | input object. |
| level | Error correction level. |
| 0 | success. |
| -1 | invalid argument. |
|
extern |
Set version and error correction level of the QR code at once.
This function is recommened for Micro QR Code.
| input | input object. |
| version | version number (0 = auto) |
| level | Error correction level. |
| 0 | success. |
| -1 | invalid argument. |
|
extern |
Free the input object.
All of data chunks in the input object are freed too.
| input | input object. |
|
extern |
Validate the input data.
| mode | encoding mode. |
| size | size of data (byte). |
| data | a pointer to the memory area of the input data. |
| 0 | success. |
| -1 | invalid arguments. |
|
extern |
Instantiate a set of input data object.
| ENOMEM | unable to allocate memory. |
|
extern |
Set parity of structured symbols.
| s | structured input object. |
| parity | parity of s. |
|
extern |
Append a QRinput object to the set.
QRinput created by QRinput_newMQR() will be rejected.
| s | structured input object. |
| input | an input object. |
| >0 | number of input objects in the structure. |
| -1 | an error occurred. See Exceptions for the details. |
| ENOMEM | unable to allocate memory. |
| EINVAL | invalid arguments. |
|
extern |
Free all of QRinput in the set.
| s | a structured input object. |
|
extern |
Split a QRinput to QRinput_Struct.
It calculates a parity, set it, then insert structured-append headers. QRinput created by QRinput_newMQR() will be rejected.
| input | input object. Version number and error correction level must be set. |
| ERANGE | input data is too large. |
| EINVAL | invalid input data. |
| ENOMEM | unable to allocate memory. |
|
extern |
Insert structured-append headers to the input structure.
It calculates a parity and set it if the parity is not set yet.
| s | input structure |
| 0 | success. |
| -1 | an error occurred and errno is set to indeicate the error. See Execptions for the details. |
| EINVAL | invalid input object. |
| ENOMEM | unable to allocate memory. |
|
extern |
Set FNC1-1st position flag.
|
extern |
Set FNC1-2nd position flag and application identifier.
Create a symbol from the input data.
| input | input data. |
| EINVAL | invalid input object. |
| ENOMEM | unable to allocate memory for input objects. |
|
extern |
Create a symbol from the string.
The library automatically parses the input string and encodes in a QR Code symbol.
| string | input string. It must be NUL terminated. |
| version | version of the symbol. If 0, the library chooses the minimum version for the given input data. |
| level | error correction level. |
| hint | tell the library how Japanese Kanji characters should be encoded. If QR_MODE_KANJI is given, the library assumes that the given string contains Shift-JIS characters and encodes them in Kanji-mode. If QR_MODE_8 is given, all of non-alphanumerical characters will be encoded as is. If you want to embed UTF-8 string, choose this. Other mode will cause EINVAL error. |
| casesensitive | case-sensitive(1) or not(0). |
| EINVAL | invalid input object. |
| ENOMEM | unable to allocate memory for input objects. |
| ERANGE | input data is too large. |
Same to QRcode_encodeString(), but encode whole data in 8-bit mode.
|
extern |
Micro QR Code version of QRcode_encodeString().
Micro QR Code version of QRcode_encodeString8bit().
|
extern |
Encode byte stream (may include '\0') in 8-bit mode.
| size | size of the input data. |
| data | input data. |
| version | version of the symbol. If 0, the library chooses the minimum version for the given input data. |
| level | error correction level. |
| EINVAL | invalid input object. |
| ENOMEM | unable to allocate memory for input objects. |
| ERANGE | input data is too large. |
|
extern |
Micro QR Code version of QRcode_encodeData().
|
extern |
|
extern |
Create structured symbols from the input data.
| s | input data, structured. |
|
extern |
Create structured symbols from the string.
The library automatically parses the input string and encodes in a QR Code symbol.
| string | input string. It must be NUL terminated. |
| version | version of the symbol. |
| level | error correction level. |
| hint | tell the library how Japanese Kanji characters should be encoded. If QR_MODE_KANJI is given, the library assumes that the given string contains Shift-JIS characters and encodes them in Kanji-mode. If QR_MODE_8 is given, all of non-alphanumerical characters will be encoded as is. If you want to embed UTF-8 string, choose this. Other mode will cause EINVAL error. |
| casesensitive | case-sensitive(1) or not(0). |
| EINVAL | invalid input object. |
| ENOMEM | unable to allocate memory for input objects. |
|
extern |
Same to QRcode_encodeStringStructured(), but encode whole data in 8-bit mode.
|
extern |
Create structured symbols from byte stream (may include '\0').
Wholde data are encoded in 8-bit mode.
| size | size of the input data. |
| data | input dat. |
| version | version of the symbol. |
| level | error correction level. |
| EINVAL | invalid input object. |
| ENOMEM | unable to allocate memory for input objects. |
|
extern |
Return the number of symbols included in a QRcode_List.
| qrlist | a head entry of a QRcode_List. |
|
extern |
Free the QRcode_List.
| qrlist | a head entry of a QRcode_List. |
|
extern |
Return a string that identifies the library version.
| major_version | major version number |
| minor_version | minor version number |
| micro_version | micro version number |
|
extern |
Return a string that identifies the library version.
|
extern |