aboutsummaryrefslogtreecommitdiff
path: root/lpg/libqr/qr/code.h
blob: 6ae1aa9734b4344cfe55a5be463cb9a3f0065d0e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#ifndef QR_CODE_H
#define QR_CODE_H

#include <stddef.h>
#include "types.h"

enum qr_ec_level {
        QR_EC_LEVEL_L,
        QR_EC_LEVEL_M,
        QR_EC_LEVEL_Q,
        QR_EC_LEVEL_H
};

struct qr_code * qr_code_create(enum qr_ec_level       ec,
                                const struct qr_data * data);

void qr_code_destroy(struct qr_code *);

int qr_code_width(const struct qr_code *);

struct qr_code * qr_code_parse(const void * buffer,
                               size_t       line_bits,
                               size_t       line_stride,
                               size_t       line_count);

void qr_code_render(const struct qr_code * code,
                    void *                 buffer,
                    size_t                 mod_bits,
                    size_t                 line_stride,
                    size_t                 line_repeat,
                    unsigned long          mark,
                    unsigned long          space);

#endif