aboutsummaryrefslogtreecommitdiff
path: root/lpg/libqr/qr/data.h
diff options
context:
space:
mode:
Diffstat (limited to 'lpg/libqr/qr/data.h')
-rw-r--r--lpg/libqr/qr/data.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/lpg/libqr/qr/data.h b/lpg/libqr/qr/data.h
new file mode 100644
index 0000000..06600ab
--- /dev/null
+++ b/lpg/libqr/qr/data.h
@@ -0,0 +1,41 @@
+#ifndef QR_DATA_H
+#define QR_DATA_H
+
+#include <stddef.h>
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct qr_data {
+ int version; /* 1 ~ 40 */
+ enum qr_ec_level ec;
+ struct qr_bitstream * bits;
+ size_t offset;
+};
+
+struct qr_data * qr_data_create(int format, /* 1 ~ 40; 0=auto */
+ enum qr_ec_level ec,
+ enum qr_data_type type,
+ const char * input,
+ size_t length);
+
+void qr_data_destroy(struct qr_data *);
+
+enum qr_data_type qr_data_type(const struct qr_data *);
+
+size_t qr_data_length(const struct qr_data *);
+size_t qr_data_size_field_length(int version, enum qr_data_type);
+size_t qr_data_dpart_length(enum qr_data_type type, size_t nchars);
+
+enum qr_data_type qr_parse_data(const struct qr_data * input,
+ char ** output,
+ size_t * length);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+