CDC Badge OS
Firmware for the CDC Badge v1.0 hardware security key
Loading...
Searching...
No Matches
host_api_qr.cpp
Go to the documentation of this file.
1
8
10#include "cdc_views/QrRaster.h"
11
12namespace qr = cdc::ui::qr;
13
14extern "C" {
15
16int host_qr_measure(const char* data, uint8_t max_version, uint8_t ecc,
17 uint16_t* out_modules) {
18 if (!data || !data[0] || !out_modules) return HOST_ERR_INVALID_ARG;
19 int rc = qr::measure(data, max_version, ecc, out_modules);
20 if (rc == -2) return HOST_ERR_INVALID_ARG;
21 return rc == 0 ? HOST_OK : HOST_ERR_GENERIC;
22}
23
24int host_qr_render_bitmap(const char* data, uint8_t max_version, uint8_t ecc,
25 uint8_t scale, uint8_t quiet_modules,
26 uint8_t* out, size_t out_size,
27 uint16_t* out_stride_bytes, uint16_t* out_height_px) {
28 if (!data || !data[0] || !out || !out_stride_bytes || !out_height_px) {
30 }
31 int rc = qr::render(data, max_version, ecc, scale, quiet_modules,
32 out, out_size, out_stride_bytes, out_height_px);
33 switch (rc) {
34 case 0: return HOST_OK;
35 case -2: return HOST_ERR_INVALID_ARG;
36 case -3: return HOST_ERR_NO_MEMORY;
37 default: return HOST_ERR_GENERIC;
38 }
39}
40
41} // extern "C"
QR encoding into a caller-provided 1-bpp packed raster (no display).
int host_qr_render_bitmap(const char *data, uint8_t max_version, uint8_t ecc, uint8_t scale, uint8_t quiet_modules, uint8_t *out, size_t out_size, uint16_t *out_stride_bytes, uint16_t *out_height_px)
Encode data into a packed 1-bpp QR raster.
int host_qr_measure(const char *data, uint8_t max_version, uint8_t ecc, uint16_t *out_modules)
Measure the QR module count for data without rendering.
CDC Badge OS plugin host API - canonical C ABI contract.
#define HOST_OK
Definition host_api.h:37
#define HOST_ERR_INVALID_ARG
Definition host_api.h:39
#define HOST_ERR_NO_MEMORY
Definition host_api.h:43
#define HOST_ERR_GENERIC
Definition host_api.h:38
int measure(const char *data, uint8_t max_version, uint8_t ecc, uint16_t *out_modules)
Measures the module count for data without rendering.
Definition QrRaster.cpp:73
int render(const char *data, uint8_t max_version, uint8_t ecc, uint8_t scale, uint8_t quiet_modules, uint8_t *out, size_t out_size, uint16_t *out_stride_bytes, uint16_t *out_height_px)
Encodes data and packs it into a 1-bpp raster.
Definition QrRaster.cpp:84