taler-mdb

GNU Taler Extensions and Integrations
Log | Files | Refs | Submodules | README | LICENSE

commit eca20f0a874ebb73e55c243882c10c44b5e50b9e
parent 62c43ee9b56097dcb78caddf21f678fb1234909b
Author: Boss Marco <bossm8@students.bfh.ch>
Date:   Fri, 15 Nov 2019 09:48:53 +0100

no bugs with uint8_t, but display is divided in 4 pieces

Diffstat:
Msrc/main.c | 29++++++++++++++---------------
1 file changed, 14 insertions(+), 15 deletions(-)

diff --git a/src/main.c b/src/main.c @@ -138,7 +138,7 @@ struct Display { int devicefd; - uint16_t *memory; + uint8_t *memory; struct fb_var_screeninfo orig_vinfo; @@ -190,12 +190,11 @@ show_qrcode (const char *uri) { QRinput *qri; QRcode *qrc; - uint16_t *pixels; + uint8_t *pixels; unsigned int size; char *upper; - /* FIXME ? SEGSEV on line 277 when size >= 5 */ - const unsigned int scale = 4; + const unsigned int scale = 8; const unsigned int n_channels = 3; /* open the framebuffer device */ @@ -219,10 +218,10 @@ show_qrcode (const char *uri) &qrDisplay.var_info, sizeof(struct fb_var_screeninfo)); - if (qrDisplay.var_info.bits_per_pixel != 16) + if (qrDisplay.var_info.bits_per_pixel != 8) { /* Change variable info to 8bit per pixel */ - qrDisplay.var_info.bits_per_pixel = 16; + qrDisplay.var_info.bits_per_pixel = 8; if (0 > ioctl (qrDisplay.devicefd, FBIOPUT_VSCREENINFO, &qrDisplay.var_info)) @@ -242,11 +241,11 @@ show_qrcode (const char *uri) } /* get pointer onto frame buffer */ - qrDisplay.memory = (uint16_t *) mmap (NULL, - qrDisplay.fix_info.smem_len, - PROT_READ | PROT_WRITE, MAP_SHARED, - qrDisplay.devicefd, - 0); + qrDisplay.memory = (uint8_t *) mmap (NULL, + qrDisplay.fix_info.smem_len, + PROT_READ | PROT_WRITE, MAP_SHARED, + qrDisplay.devicefd, + 0); if (0 > qrDisplay.devicefd) { printf ("failed to map display memory\n"); @@ -301,11 +300,11 @@ show_qrcode (const char *uri) (x * qrc->width / size) + (y * qrc->width / size) * qrc->width; for (unsigned int c = 0; c < n_channels; c++) pixels[(y * size + x) * n_channels + c] = - (0 == (qrc->data[off] & 1)) ? 0xFFFF : 0x0000; + (0 == (qrc->data[off] & 1)) ? 0xFF : 0x00; } - /* FIXME ? free errors */ - // QRcode_free (qrc); - // QRinput_free (qri); + + QRcode_free (qrc); + QRinput_free (qri); /* show the qrcode */ size_t width = qrDisplay.var_info.xres;