QRencode
QR Code encoder
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
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,
119 } QRencodeMode;
120 
124 typedef enum {
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 
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 
329 
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 {
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 
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 */