00001
00099 #ifndef __QRENCODE_H__
00100 #define __QRENCODE_H__
00101
00102 #if defined(__cplusplus)
00103 extern "C" {
00104 #endif
00105
00109 typedef enum {
00110 QR_MODE_NUL = -1,
00111 QR_MODE_NUM = 0,
00112 QR_MODE_AN,
00113 QR_MODE_8,
00114 QR_MODE_KANJI,
00115 QR_MODE_STRUCTURE,
00116 } QRencodeMode;
00117
00121 typedef enum {
00122 QR_ECLEVEL_L = 0,
00123 QR_ECLEVEL_M,
00124 QR_ECLEVEL_Q,
00125 QR_ECLEVEL_H
00126 } QRecLevel;
00127
00128
00129
00130
00131
00138 typedef struct _QRinput QRinput;
00139
00147 extern QRinput *QRinput_new(void);
00148
00158 extern QRinput *QRinput_new2(int version, QRecLevel level);
00159
00174 extern int QRinput_append(QRinput *input, QRencodeMode mode, int size, const unsigned char *data);
00175
00181 extern int QRinput_getVersion(QRinput *input);
00182
00190 extern int QRinput_setVersion(QRinput *input, int version);
00191
00197 extern QRecLevel QRinput_getErrorCorrectionLevel(QRinput *input);
00198
00206 extern int QRinput_setErrorCorrectionLevel(QRinput *input, QRecLevel level);
00207
00213 extern void QRinput_free(QRinput *input);
00214
00223 extern int QRinput_check(QRencodeMode mode, int size, const unsigned char *data);
00224
00228 typedef struct _QRinput_Struct QRinput_Struct;
00229
00236 extern QRinput_Struct *QRinput_Struct_new(void);
00237
00243 extern void QRinput_Struct_setParity(QRinput_Struct *s, unsigned char parity);
00244
00254 extern int QRinput_Struct_appendInput(QRinput_Struct *s, QRinput *input);
00255
00260 extern void QRinput_Struct_free(QRinput_Struct *s);
00261
00273 extern QRinput_Struct *QRinput_splitQRinputToStruct(QRinput *input);
00274
00285 extern int QRinput_Struct_insertStructuredAppendHeaders(QRinput_Struct *s);
00286
00287
00288
00289
00290
00310 typedef struct {
00311 int version;
00312 int width;
00313 unsigned char *data;
00314 } QRcode;
00315
00320 typedef struct _QRcode_List QRcode_List;
00321
00322 struct _QRcode_List {
00323 QRcode *code;
00324 QRcode_List *next;
00325 };
00326
00338 extern QRcode *QRcode_encodeInput(QRinput *input);
00339
00361 extern QRcode *QRcode_encodeString(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive);
00362
00367 extern QRcode *QRcode_encodeString8bit(const char *string, int version, QRecLevel level);
00368
00373 extern void QRcode_free(QRcode *qrcode);
00374
00381 extern QRcode_List *QRcode_encodeInputStructured(QRinput_Struct *s);
00382
00401 extern QRcode_List *QRcode_encodeStringStructured(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive);
00402
00407 extern QRcode_List *QRcode_encodeString8bitStructured(const char *string, int version, QRecLevel level);
00408
00414 extern int QRcode_List_size(QRcode_List *qrlist);
00415
00420 extern void QRcode_List_free(QRcode_List *qrlist);
00421
00422 #if defined(__cplusplus)
00423 }
00424 #endif
00425
00426 #endif