Skip to content

Commit 571b530

Browse files
committed
Preliminary ugfx input things
1 parent 2b37612 commit 571b530

File tree

3 files changed

+39
-3
lines changed

3 files changed

+39
-3
lines changed

esp32/ginput_lld_toggle.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../components/ugfx/ginput_lld_toggle.c

esp32/ginput_lld_toggle_config.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../components/ugfx/ginput_lld_toggle_config.h

esp32/modugfx.c

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*
44
* SHA2017 Badge Firmware https://wiki.sha2017.org/w/Projects:Badge/MicroPython
55
*
6-
* Based on work by EMF for their TiLDA 3 badge
6+
* Based on work by EMF for their TiLDA MK3 badge
77
* https://github.com/emfcamp/micropython/tree/tilda-master/stmhal
88
*
99
* The MIT License (MIT)
@@ -37,6 +37,7 @@
3737
#include "board_framebuffer.h"
3838
#include "gfx.h"
3939
#include "gfxconf.h"
40+
#include "ginput_lld_toggle_config.h"
4041

4142
#include "py/mperrno.h"
4243
#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) {
523524
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(ugfx_fill_rounded_box_obj, 6, 6,
524525
ugfx_fill_rounded_box);
525526

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+
526543
// DEMO
527544

528545
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[] = {
580597
MP_OBJ_NEW_SMALL_INT(justifyCenter)},
581598
{MP_OBJ_NEW_QSTR(MP_QSTR_justifyRight), MP_OBJ_NEW_SMALL_INT(justifyRight)},
582599

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+
583617
{MP_OBJ_NEW_QSTR(MP_QSTR_clear), (mp_obj_t)&ugfx_clear_obj},
584618
{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},
585620

586621
{MP_OBJ_NEW_QSTR(MP_QSTR_get_string_width),
587622
(mp_obj_t)&ugfx_get_string_width_obj},
@@ -614,6 +649,5 @@ STATIC const mp_rom_map_elem_t ugfx_module_globals_table[] = {
614649
STATIC MP_DEFINE_CONST_DICT(ugfx_module_globals, ugfx_module_globals_table);
615650

616651
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,
619653
};

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy