4 #include <drivers/fatfs/ff.h>
6 static uint8_t badge_framebuffer_render_char_with_fd(badge_framebuffer
*fb
, int8_t pos_x
, int8_t pos_y
, char c
, FIL
*fd
) {
8 uint8_t buffer
[BADGE_FONT_WIDTH
];
11 // intentionally left empty.
13 FR_OK
== f_lseek(fd
, (c
- 33) * BADGE_FONT_WIDTH
) &&
14 FR_OK
== f_read(fd
, buffer
, sizeof(buffer
), &readbytes
)) {
15 badge_sprite sp
= { BADGE_FONT_WIDTH
, BADGE_FONT_HEIGHT
, buffer
};
16 badge_framebuffer_blt(fb
, pos_x
, pos_y
, &sp
, 0);
24 static FRESULT
open_font_file(FIL
*fd
) {
25 return f_open(fd
, "font.dat", FA_OPEN_EXISTING
| FA_READ
);
28 uint8_t badge_framebuffer_render_char(badge_framebuffer
*fb
, int8_t pos_x
, int8_t pos_y
, char c
) {
31 if(FR_OK
== open_font_file(&fd
)) {
32 badge_framebuffer_render_char_with_fd(fb
, pos_x
, pos_y
, c
, &fd
);
40 uint8_t badge_framebuffer_render_text(badge_framebuffer
*fb
, int8_t pos_x
, int8_t pos_y
, char const *text
) {
44 if(FR_OK
== open_font_file(&fd
)) {
46 if(0 != badge_framebuffer_render_char_with_fd(fb
, pos_x
, pos_y
, *text
, &fd
)) {
52 pos_x
+= BADGE_FONT_WIDTH
;
61 static uint8_t badge_framebuffer_render_number_with_fd(badge_framebuffer
*fb
, int8_t *pos_x
, int8_t pos_y
, uint8_t number
, FIL
*fd
) {
63 badge_framebuffer_render_number_with_fd(fb
, pos_x
, pos_y
, number
/ 10, fd
);
66 uint8_t err
= badge_framebuffer_render_char_with_fd(fb
, *pos_x
, pos_y
, '0' + number
% 10, fd
);
68 if(err
!= 0) return err
;
70 *pos_x
+= BADGE_FONT_WIDTH
;
74 uint8_t badge_framebuffer_render_number(badge_framebuffer
*fb
, int8_t pos_x
, int8_t pos_y
, uint8_t number
) {
77 if(FR_OK
== open_font_file(&fd
)) {
78 uint8_t err
= badge_framebuffer_render_number_with_fd(fb
, &pos_x
, pos_y
, number
, &fd
);
This page took 0.056835 seconds and 5 git commands to generate.