|
3 | 3 | *
|
4 | 4 | * SHA2017 Badge Firmware https://wiki.sha2017.org/w/Projects:Badge/MicroPython
|
5 | 5 | *
|
6 |
| - * Based on work by EMF for their TiLDA 3 badge |
| 6 | + * Based on work by EMF for their TiLDA MK3 badge |
7 | 7 | * https://github.com/emfcamp/micropython/tree/tilda-master/stmhal
|
8 | 8 | *
|
9 | 9 | * The MIT License (MIT)
|
|
37 | 37 | #include "board_framebuffer.h"
|
38 | 38 | #include "gfx.h"
|
39 | 39 | #include "gfxconf.h"
|
| 40 | +#include "ginput_lld_toggle_config.h" |
40 | 41 |
|
41 | 42 | #include "py/mperrno.h"
|
42 | 43 | #include "py/mphal.h"
|
@@ -523,6 +524,22 @@ STATIC mp_obj_t ugfx_fill_rounded_box(mp_uint_t n_args, const mp_obj_t *args) {
|
523 | 524 | STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(ugfx_fill_rounded_box_obj, 6, 6,
|
524 | 525 | ugfx_fill_rounded_box);
|
525 | 526 |
|
| 527 | +// INPUT |
| 528 | + |
| 529 | +/// \method poll() |
| 530 | +/// |
| 531 | +/// calls gfxYield, which will handle widget redrawing when for inputs. |
| 532 | +/// Register as follows: |
| 533 | +/// tim = pyb.Timer(3) |
| 534 | +/// tim.init(freq=60) |
| 535 | +/// tim.callback(lambda t:ugfx.poll()) |
| 536 | +/// |
| 537 | +STATIC mp_obj_t ugfx_poll(void) { |
| 538 | + gfxYield(); |
| 539 | + return mp_const_none; |
| 540 | +} |
| 541 | +STATIC MP_DEFINE_CONST_FUN_OBJ_0(ugfx_poll_obj, ugfx_poll); |
| 542 | + |
526 | 543 | // DEMO
|
527 | 544 |
|
528 | 545 | STATIC mp_obj_t ugfx_demo(mp_obj_t hacking) {
|
@@ -580,8 +597,26 @@ STATIC const mp_rom_map_elem_t ugfx_module_globals_table[] = {
|
580 | 597 | MP_OBJ_NEW_SMALL_INT(justifyCenter)},
|
581 | 598 | {MP_OBJ_NEW_QSTR(MP_QSTR_justifyRight), MP_OBJ_NEW_SMALL_INT(justifyRight)},
|
582 | 599 |
|
| 600 | + {MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON_UP), MP_OBJ_NEW_SMALL_INT(BADGE_BUTTON_UP)}, |
| 601 | + {MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON_DOWN), |
| 602 | + MP_OBJ_NEW_SMALL_INT(BADGE_BUTTON_DOWN)}, |
| 603 | + {MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON_LEFT), |
| 604 | + MP_OBJ_NEW_SMALL_INT(BADGE_BUTTON_LEFT)}, |
| 605 | + {MP_OBJ_NEW_QSTR(MP_QSTR_BUTTON_RIGHT), |
| 606 | + MP_OBJ_NEW_SMALL_INT(BADGE_BUTTON_RIGHT)}, |
| 607 | + {MP_OBJ_NEW_QSTR(MP_QSTR_BTN_MID), MP_OBJ_NEW_SMALL_INT(BADGE_BUTTON_MID)}, |
| 608 | + {MP_OBJ_NEW_QSTR(MP_QSTR_BTN_A), MP_OBJ_NEW_SMALL_INT(BADGE_BUTTON_A)}, |
| 609 | + {MP_OBJ_NEW_QSTR(MP_QSTR_BTN_B), MP_OBJ_NEW_SMALL_INT(BADGE_BUTTON_B)}, |
| 610 | + {MP_OBJ_NEW_QSTR(MP_QSTR_BTN_SELECT), |
| 611 | + MP_OBJ_NEW_SMALL_INT(BADGE_BUTTON_SELECT)}, |
| 612 | + {MP_OBJ_NEW_QSTR(MP_QSTR_BTN_START), |
| 613 | + MP_OBJ_NEW_SMALL_INT(BADGE_BUTTON_START)}, |
| 614 | + {MP_OBJ_NEW_QSTR(MP_QSTR_BTN_FLASH), |
| 615 | + MP_OBJ_NEW_SMALL_INT(BADGE_BUTTON_FLASH)}, |
| 616 | + |
583 | 617 | {MP_OBJ_NEW_QSTR(MP_QSTR_clear), (mp_obj_t)&ugfx_clear_obj},
|
584 | 618 | {MP_OBJ_NEW_QSTR(MP_QSTR_flush), (mp_obj_t)&ugfx_flush_obj},
|
| 619 | + {MP_OBJ_NEW_QSTR(MP_QSTR_poll), (mp_obj_t)&ugfx_poll_obj}, |
585 | 620 |
|
586 | 621 | {MP_OBJ_NEW_QSTR(MP_QSTR_get_string_width),
|
587 | 622 | (mp_obj_t)&ugfx_get_string_width_obj},
|
@@ -614,6 +649,5 @@ STATIC const mp_rom_map_elem_t ugfx_module_globals_table[] = {
|
614 | 649 | STATIC MP_DEFINE_CONST_DICT(ugfx_module_globals, ugfx_module_globals_table);
|
615 | 650 |
|
616 | 651 | const mp_obj_module_t ugfx_module = {
|
617 |
| - .base = {&mp_type_module}, |
618 |
| - .globals = (mp_obj_dict_t *)&ugfx_module_globals, |
| 652 | + .base = {&mp_type_module}, .globals = (mp_obj_dict_t *)&ugfx_module_globals, |
619 | 653 | };
|
0 commit comments