diff options
Diffstat (limited to 'brailleboi.c')
| -rw-r--r-- | brailleboi.c | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/brailleboi.c b/brailleboi.c deleted file mode 100644 index 82fbeeb..0000000 --- a/brailleboi.c +++ /dev/null @@ -1,56 +0,0 @@ -#include <stdlib.h> -#include <stdio.h> -#include <wchar.h> -#include <locale.h> - -#include "brailleboi.h" - -int brailleInit(int width, int height, image_buffer* buf) -{ - setlocale(LC_ALL, ""); - buf->width = width; - buf->height = height; - buf->char_width = (width+1)/2; - buf->char_height = (height+1)/2; - buf->contents = malloc((buf->char_width * buf->char_height) * sizeof(int)); - return 0; -} - -int brailleStop(image_buffer* buf) -{ - free(buf->contents); - return 0; -} - -int brailleReorganizeBits(int old) -{ - //Reorganizes bits because the unicode standard for 8 dotted braille is weird - int new = (old&0x87) | // 0b10000111 - (old&0x70)>>1 | // 0b01110000 - (old&0x08)<<3; // 0b00001000 - return new; -} - -void braillePrint(int data) -{ - wprintf(L"%lc", (0x2800|data)); -} - -int braillePlot(int x, int y, image_buffer* buf) -{ - //Check if plot is within bounds - if ((x>buf->width) | (y>buf->height)) - return 1; - buf->contents[(y-1)/4 * buf->char_width + (x-1)/2] |= 1<<((y-1)%4+(1-x%2)*4); - return 0; -} - -void brailleUpdateScreen(image_buffer* buf) -{ - for (int x=0;x<buf->char_width;x++) { - for (int y=0;y<buf->char_height;y++) { - wprintf(L"\e[%d;%dH", y+1, x+1); - braillePrint(brailleReorganizeBits(buf->contents[y * buf->char_width + x])); - } - } -} |
