From 983d54f2719b7986e611be0cb7ca9fbfb0dd1f85 Mon Sep 17 00:00:00 2001 From: Thomas Farstrike Date: Wed, 11 Mar 2026 11:57:42 +0100 Subject: [PATCH] Rename mpong to breakout --- c_mpos/{mpong => breakout}/Makefile | 4 +-- c_mpos/{mpong/mpong.c => breakout/breakout.c} | 21 +----------- c_mpos/{mpong => breakout}/build.sh | 2 +- .../META-INF/MANIFEST.JSON | 10 +++--- .../assets/breakout.py | 30 ++++++++++-------- .../res/mipmap-mdpi/icon_64x64.png | Bin 6 files changed, 26 insertions(+), 41 deletions(-) rename c_mpos/{mpong => breakout}/Makefile (94%) rename c_mpos/{mpong/mpong.c => breakout/breakout.c} (90%) rename c_mpos/{mpong => breakout}/build.sh (73%) rename internal_filesystem/apps/{com.micropythonos.mpong => com.micropythonos.breakout}/META-INF/MANIFEST.JSON (56%) rename internal_filesystem/apps/{com.micropythonos.mpong => com.micropythonos.breakout}/assets/breakout.py (91%) rename internal_filesystem/apps/{com.micropythonos.mpong => com.micropythonos.breakout}/res/mipmap-mdpi/icon_64x64.png (100%) diff --git a/c_mpos/mpong/Makefile b/c_mpos/breakout/Makefile similarity index 94% rename from c_mpos/mpong/Makefile rename to c_mpos/breakout/Makefile index 2b45c47b..7149b873 100644 --- a/c_mpos/mpong/Makefile +++ b/c_mpos/breakout/Makefile @@ -1,10 +1,10 @@ MPY_DIR = ../../lvgl_micropython/lib/micropython/ # Name of module -MOD = mpong +MOD = breakout # Source files (.c or .py) -SRC = mpong.c +SRC = breakout.c # Link runtime libraries (needed for memset on xtensawin) LINK_RUNTIME = 1 diff --git a/c_mpos/mpong/mpong.c b/c_mpos/breakout/breakout.c similarity index 90% rename from c_mpos/mpong/mpong.c rename to c_mpos/breakout/breakout.c index 01516a0c..2337ea0f 100644 --- a/c_mpos/mpong/mpong.c +++ b/c_mpos/breakout/breakout.c @@ -32,24 +32,6 @@ uint32_t g_fps_frames; #define BRICK_COLS 8 uint8_t g_bricks[BRICK_ROWS][BRICK_COLS]; -// readfile(filename): return first 10 bytes of a file as bytes -static mp_obj_t readfile(mp_obj_t filename_obj) { - mp_obj_t open_fun = mp_load_global(MP_QSTR_open); - mp_obj_t open_args[2] = { filename_obj, mp_obj_new_str("rb", 2) }; - mp_obj_t file_obj = mp_call_function_n_kw(open_fun, 2, 0, open_args); - - mp_obj_t read_fun = mp_load_attr(file_obj, MP_QSTR_read); - mp_obj_t read_args[1] = { mp_obj_new_int(10) }; - mp_obj_t data_obj = mp_call_function_n_kw(read_fun, 1, 0, read_args); - - mp_obj_t close_fun = mp_load_attr(file_obj, MP_QSTR_close); - mp_obj_t close_args[1]; - mp_call_function_n_kw(close_fun, 0, 0, close_args); - - return data_obj; -} -static MP_DEFINE_CONST_FUN_OBJ_1(readfile_obj, readfile); - static uint32_t ticks_ms(void) { mp_obj_t time_mod = mp_import_name(MP_QSTR_time, mp_const_none, MP_OBJ_NEW_SMALL_INT(0)); mp_obj_t ticks_fun = mp_load_attr(time_mod, MP_QSTR_ticks_ms); @@ -157,7 +139,7 @@ static mp_obj_t render(void) { const uint32_t elapsed_ms = now_ms - g_fps_last_ms; if (elapsed_ms >= 1000) { const uint32_t fps = (g_fps_frames * 1000) / elapsed_ms; - mp_printf(&mp_plat_print, "mpong fps: %lu\n", (unsigned long)fps); + mp_printf(&mp_plat_print, "breakout.c fps: %lu\n", (unsigned long)fps); g_fps_last_ms = now_ms; g_fps_frames = 0; } @@ -277,7 +259,6 @@ mp_obj_t mpy_init(mp_obj_fun_bc_t *self, size_t n_args, size_t n_kw, mp_obj_t *a mp_store_global(MP_QSTR_init, MP_OBJ_FROM_PTR(&init_obj)); mp_store_global(MP_QSTR_render, MP_OBJ_FROM_PTR(&render_obj)); mp_store_global(MP_QSTR_move_paddle, MP_OBJ_FROM_PTR(&move_paddle_obj)); - mp_store_global(MP_QSTR_readfile, MP_OBJ_FROM_PTR(&readfile_obj)); // This must be last, it restores the globals dict MP_DYNRUNTIME_INIT_EXIT diff --git a/c_mpos/mpong/build.sh b/c_mpos/breakout/build.sh similarity index 73% rename from c_mpos/mpong/build.sh rename to c_mpos/breakout/build.sh index 3f3115fb..32c187ea 100755 --- a/c_mpos/mpong/build.sh +++ b/c_mpos/breakout/build.sh @@ -10,4 +10,4 @@ rm *.mpy PATH=~/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/:$PATH make 1000ms on emulator lv.timer_create(self.startit, 5000, None).set_repeat_count(1) # this needs to be delayed, otherwise the whole thing hangs #lv.async_call(self.startit, None) @@ -113,9 +117,9 @@ class Breakout(Activity): def startit(self, arg1=None): print("starting it!") - mpong.init(mpos.ui.main_display._frame_buffer1, self.hor_res, self.ver_res) # stays black + breakout.init(mpos.ui.main_display._frame_buffer1, self.hor_res, min(self.ver_res, 230)) mpos.ui.main_display._data_bus.register_callback(self.flush_ready_cb) - self.refresh_timer = lv.timer_create(self.run_mpong, 20, None) # max 1000ms/50fps = 20ms/frame + self.refresh_timer = lv.timer_create(self.drawframe, 20, None) # max 1000ms/50fps = 20ms/frame #self.refresh_timer = lv.timer_create(self.run_mpong, 33, None).set_repeat_count(1) # max 1000ms/60fps = 16ms/frame #lv.async_call(self.run_mpong, None) @@ -128,18 +132,18 @@ class Breakout(Activity): self.render_next = True def move_left(self): - mpong.move_paddle(-self.paddle_move_step) + breakout.move_paddle(-self.paddle_move_step) def move_right(self): - mpong.move_paddle(self.paddle_move_step) + breakout.move_paddle(self.paddle_move_step) def move_left_unfocus(self): self.unfocus() - mpong.move_paddle(-self.paddle_move_step) + breakout.move_paddle(-self.paddle_move_step) def move_right_unfocus(self): self.unfocus() - mpong.move_paddle(self.paddle_move_step) + breakout.move_paddle(self.paddle_move_step) # This only works with the PREV/pageup and NEXT/pagedown buttons, # because the focus_direction handling of the arrow keys uses a trick to move focus (focus_next) @@ -186,11 +190,11 @@ class Breakout(Activity): True, ) - def run_mpong(self, arg1=None, arg2=None): + def drawframe(self, arg1=None, arg2=None): if self.render_next == False: return self.render_next = False - mpong.render() + breakout.render() #self.play_button.set_style_opa(lv.OPA.TRANSP, lv.PART.MAIN) # works to force refresh on desktop but not esp32 #self.screen.invalidate() #lv.refr_now(None) @@ -231,7 +235,7 @@ class Breakout(Activity): if self.touch_last_x is not None: delta = x - self.touch_last_x if delta: - mpong.move_paddle(delta) + breakout.move_paddle(delta) self.touch_last_x = x return diff --git a/internal_filesystem/apps/com.micropythonos.mpong/res/mipmap-mdpi/icon_64x64.png b/internal_filesystem/apps/com.micropythonos.breakout/res/mipmap-mdpi/icon_64x64.png similarity index 100% rename from internal_filesystem/apps/com.micropythonos.mpong/res/mipmap-mdpi/icon_64x64.png rename to internal_filesystem/apps/com.micropythonos.breakout/res/mipmap-mdpi/icon_64x64.png