QRencode QR Code encoder

qrencode.h
Go to the documentation of this file.
1
99 #ifndef QRENCODE_H
100 #define QRENCODE_H
101
102 #if defined(__cplusplus)
103 extern "C" {
104 #endif
105
109 typedef enum {
110 QR_MODE_NUL = -1,
111 QR_MODE_NUM = 0,
112 QR_MODE_AN,
113 QR_MODE_8,
114 QR_MODE_KANJI,
115 QR_MODE_STRUCTURE,
116 QR_MODE_ECI,
117 QR_MODE_FNC1FIRST,
118 QR_MODE_FNC1SECOND,
119 } QRencodeMode;
120
124 typedef enum {
125 QR_ECLEVEL_L = 0,
126 QR_ECLEVEL_M,
127 QR_ECLEVEL_Q,
128 QR_ECLEVEL_H
129 } QRecLevel;
130
134 #define QRSPEC_VERSION_MAX 40
135
139 #define MQRSPEC_VERSION_MAX 4
140
141
142 /******************************************************************************
143 * Input data (qrinput.c)
144 *****************************************************************************/
145
152 typedef struct _QRinput QRinput;
153
161 extern QRinput *QRinput_new(void);
162
172 extern QRinput *QRinput_new2(int version, QRecLevel level);
173
184 extern QRinput *QRinput_newMQR(int version, QRecLevel level);
185
200 extern int QRinput_append(QRinput *input, QRencodeMode mode, int size, const unsigned char *data);
201
213 extern int QRinput_appendECIheader(QRinput *input, unsigned int ecinum);
214
220 extern int QRinput_getVersion(QRinput *input);
221
230 extern int QRinput_setVersion(QRinput *input, int version);
231
237 extern QRecLevel QRinput_getErrorCorrectionLevel(QRinput *input);
238
247 extern int QRinput_setErrorCorrectionLevel(QRinput *input, QRecLevel level);
248
258 extern int QRinput_setVersionAndErrorCorrectionLevel(QRinput *input, int version, QRecLevel level);
259
265 extern void QRinput_free(QRinput *input);
266
275 extern int QRinput_check(QRencodeMode mode, int size, const unsigned char *data);
276
280 typedef struct _QRinput_Struct QRinput_Struct;
281
288 extern QRinput_Struct *QRinput_Struct_new(void);
289
295 extern void QRinput_Struct_setParity(QRinput_Struct *s, unsigned char parity);
296
308 extern int QRinput_Struct_appendInput(QRinput_Struct *s, QRinput *input);
309
314 extern void QRinput_Struct_free(QRinput_Struct *s);
315
328 extern QRinput_Struct *QRinput_splitQRinputToStruct(QRinput *input);
329
340 extern int QRinput_Struct_insertStructuredAppendHeaders(QRinput_Struct *s);
341
345 extern int QRinput_setFNC1First(QRinput *input);
346
350 extern int QRinput_setFNC1Second(QRinput *input, unsigned char appid);
351
352 /******************************************************************************
353 * QRcode output (qrencode.c)
354 *****************************************************************************/
355
375 typedef struct {
376 int version;
377 int width;
378 unsigned char *data;
379 } QRcode;
380
385 typedef struct _QRcode_List {
386 QRcode *code;
387 struct _QRcode_List *next;
388 } QRcode_List;
389
401 extern QRcode *QRcode_encodeInput(QRinput *input);
402
426 extern QRcode *QRcode_encodeString(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive);
427
432 extern QRcode *QRcode_encodeString8bit(const char *string, int version, QRecLevel level);
433
438 extern QRcode *QRcode_encodeStringMQR(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive);
439
444 extern QRcode *QRcode_encodeString8bitMQR(const char *string, int version, QRecLevel level);
445
458 extern QRcode *QRcode_encodeData(int size, const unsigned char *data, int version, QRecLevel level);
459
464 extern QRcode *QRcode_encodeDataMQR(int size, const unsigned char *data, int version, QRecLevel level);
465
470 extern void QRcode_free(QRcode *qrcode);
471
478 extern QRcode_List *QRcode_encodeInputStructured(QRinput_Struct *s);
479
499 extern QRcode_List *QRcode_encodeStringStructured(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive);
500
505 extern QRcode_List *QRcode_encodeString8bitStructured(const char *string, int version, QRecLevel level);
506
520 extern QRcode_List *QRcode_encodeDataStructured(int size, const unsigned char *data, int version, QRecLevel level);
521
527 extern int QRcode_List_size(QRcode_List *qrlist);
528
533 extern void QRcode_List_free(QRcode_List *qrlist);
534
535
536 /******************************************************************************
537 * System utilities
538 *****************************************************************************/
539
546 extern void QRcode_APIVersion(int *major_version, int *minor_version, int *micro_version);
547
553 extern char *QRcode_APIVersionString(void);
554
558 #ifndef _MSC_VER
559 extern void QRcode_clearCache(void) __attribute__ ((deprecated));
560 #else
561 extern void QRcode_clearCache(void);
562 #endif
563
564 #if defined(__cplusplus)
565 }
566 #endif
567
568 #endif /* QRENCODE_H */
QRinput_Struct_new
QRinput_Struct * QRinput_Struct_new(void)
Instantiate a set of input data object.
QRcode::version
int version
version of the symbol
Definition: qrencode.h:376
QRinput_new
QRinput * QRinput_new(void)
Instantiate an input data object.
QR_MODE_ECI
ECI mode.
Definition: qrencode.h:116
QRinput_Struct_setParity
void QRinput_Struct_setParity(QRinput_Struct *s, unsigned char parity)
Set parity of structured symbols.
QRcode_encodeInputStructured
QRcode_List * QRcode_encodeInputStructured(QRinput_Struct *s)
Create structured symbols from the input data.
QRcode
QRcode class.
Definition: qrencode.h:375
QR_ECLEVEL_H
highest
Definition: qrencode.h:128
QR_MODE_FNC1FIRST
FNC1, first position.
Definition: qrencode.h:117
QRcode_encodeInput
QRcode * QRcode_encodeInput(QRinput *input)
Create a symbol from the input data.
QRinput_splitQRinputToStruct
QRinput_Struct * QRinput_splitQRinputToStruct(QRinput *input)
Split a QRinput to QRinput_Struct.
QR_MODE_NUM
Numeric mode.
Definition: qrencode.h:111
QRinput_getErrorCorrectionLevel
QRecLevel QRinput_getErrorCorrectionLevel(QRinput *input)
Get current error correction level.
QRinput_free
void QRinput_free(QRinput *input)
Free the input object.
QRcode_List::code
QRcode * code
Definition: qrencode.h:386
QRinput_Struct_free
void QRinput_Struct_free(QRinput_Struct *s)
Free all of QRinput in the set.
QRcode_APIVersionString
char * QRcode_APIVersionString(void)
Return a string that identifies the library version.
QR_MODE_FNC1SECOND
FNC1, second position.
Definition: qrencode.h:118
QRcode_List::next
struct _QRcode_List * next
Definition: qrencode.h:387
QRecLevel
QRecLevel
Level of error correction.
Definition: qrencode.h:124
QR_MODE_8
8-bit data mode
Definition: qrencode.h:113
QRcode_encodeStringMQR
QRcode * QRcode_encodeStringMQR(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive)
Micro QR Code version of QRcode_encodeString().
QR_ECLEVEL_M
Definition: qrencode.h:126
QRcode_clearCache
void QRcode_clearCache(void) __attribute__((deprecated))
QRcode_encodeString8bit
QRcode * QRcode_encodeString8bit(const char *string, int version, QRecLevel level)
Same to QRcode_encodeString(), but encode whole data in 8-bit mode.
QRcode_List
Singly-linked list of QRcode.
Definition: qrencode.h:385
QRcode_encodeString8bitMQR
QRcode * QRcode_encodeString8bitMQR(const char *string, int version, QRecLevel level)
Micro QR Code version of QRcode_encodeString8bit().
QRcode_encodeStringStructured
QRcode_List * QRcode_encodeStringStructured(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive)
Create structured symbols from the string.
QRcode_encodeDataStructured
QRcode_List * QRcode_encodeDataStructured(int size, const unsigned char *data, int version, QRecLevel level)
Create structured symbols from byte stream (may include &#39;\0&#39;).
QRcode::data
unsigned char * data
symbol data
Definition: qrencode.h:378
QRencodeMode
QRencodeMode
Encoding mode.
Definition: qrencode.h:109
QRinput_setFNC1Second
int QRinput_setFNC1Second(QRinput *input, unsigned char appid)
Set FNC1-2nd position flag and application identifier.
QRcode_encodeDataMQR
QRcode * QRcode_encodeDataMQR(int size, const unsigned char *data, int version, QRecLevel level)
Micro QR Code version of QRcode_encodeData().
QRinput_setErrorCorrectionLevel
int QRinput_setErrorCorrectionLevel(QRinput *input, QRecLevel level)
Set error correction level of the QR code that is to be encoded.
QRinput
struct _QRinput QRinput
Singly linked list to contain input strings.
Definition: qrencode.h:152
QRcode_encodeString8bitStructured
QRcode_List * QRcode_encodeString8bitStructured(const char *string, int version, QRecLevel level)
Same to QRcode_encodeStringStructured(), but encode whole data in 8-bit mode.
QRinput_setVersion
int QRinput_setVersion(QRinput *input, int version)
Set version of the QR code that is to be encoded.
QRinput_new2
QRinput * QRinput_new2(int version, QRecLevel level)
Instantiate an input data object.
QRcode_free
void QRcode_free(QRcode *qrcode)
Free the instance of QRcode class.
QR_MODE_KANJI
Kanji (shift-jis) mode.
Definition: qrencode.h:114
QRcode_List_size
int QRcode_List_size(QRcode_List *qrlist)
Return the number of symbols included in a QRcode_List.
QRinput_setVersionAndErrorCorrectionLevel
int QRinput_setVersionAndErrorCorrectionLevel(QRinput *input, int version, QRecLevel level)
Set version and error correction level of the QR code at once.
QR_ECLEVEL_L
lowest
Definition: qrencode.h:125
QR_MODE_AN
Alphabet-numeric mode.
Definition: qrencode.h:112
QRinput_Struct
struct _QRinput_Struct QRinput_Struct
Set of QRinput for structured symbols.
Definition: qrencode.h:280
QRcode_List_free
void QRcode_List_free(QRcode_List *qrlist)
Free the QRcode_List.
QRcode::width
int width
width of the symbol
Definition: qrencode.h:377
QRinput_Struct_insertStructuredAppendHeaders
int QRinput_Struct_insertStructuredAppendHeaders(QRinput_Struct *s)
Insert structured-append headers to the input structure.
QRinput_append
int QRinput_append(QRinput *input, QRencodeMode mode, int size, const unsigned char *data)
Append data to an input object.
QRinput_appendECIheader
int QRinput_appendECIheader(QRinput *input, unsigned int ecinum)
Append ECI header.
QRinput_check
int QRinput_check(QRencodeMode mode, int size, const unsigned char *data)
Validate the input data.
QRcode_APIVersion
void QRcode_APIVersion(int *major_version, int *minor_version, int *micro_version)
Return a string that identifies the library version.
QRcode_encodeString
QRcode * QRcode_encodeString(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive)
Create a symbol from the string.
QRinput_Struct_appendInput
int QRinput_Struct_appendInput(QRinput_Struct *s, QRinput *input)
Append a QRinput object to the set.
QRcode_encodeData
QRcode * QRcode_encodeData(int size, const unsigned char *data, int version, QRecLevel level)
Encode byte stream (may include &#39;\0&#39;) in 8-bit mode.
QR_MODE_STRUCTURE
Internal use only.
Definition: qrencode.h:115
QRinput_newMQR
QRinput * QRinput_newMQR(int version, QRecLevel level)
Instantiate an input data object.
QR_MODE_NUL
Terminator (NUL character). Internal use only.
Definition: qrencode.h:110
QRinput_setFNC1First
int QRinput_setFNC1First(QRinput *input)
Set FNC1-1st position flag.
QR_ECLEVEL_Q
Definition: qrencode.h:127
QRinput_getVersion
int QRinput_getVersion(QRinput *input)
Get current version.