diff --git a/python/Makefile b/python/Makefile index 7db8f4931..1209b218d 100644 --- a/python/Makefile +++ b/python/Makefile @@ -129,8 +129,8 @@ port_objs += $(addprefix python/port/,\ port.o \ builtins.o\ helpers.o \ - modkandinsky.o \ - modkandinsky_impl.o \ + mod/kandinsky/modkandinsky.o \ + mod/kandinsky/modkandinsky_table.o \ mod/time/modtime.o \ mod/time/modtime_table.o \ mphalport.o \ diff --git a/python/port/modkandinsky_impl.cpp b/python/port/mod/kandinsky/modkandinsky.cpp similarity index 81% rename from python/port/modkandinsky_impl.cpp rename to python/port/mod/kandinsky/modkandinsky.cpp index adfc61cc5..e36b5a462 100644 --- a/python/port/modkandinsky_impl.cpp +++ b/python/port/mod/kandinsky/modkandinsky.cpp @@ -10,7 +10,7 @@ extern "C" { * the stackViewController and forces the window to redraw itself. * KDIonContext::sharedContext is set to the frame of the last object drawn. */ -mp_obj_t kandinsky_color(mp_obj_t red, mp_obj_t green, mp_obj_t blue) { +mp_obj_t modkandinsky_color(mp_obj_t red, mp_obj_t green, mp_obj_t blue) { return MP_OBJ_NEW_SMALL_INT( KDColor::RGB888( @@ -21,14 +21,14 @@ mp_obj_t kandinsky_color(mp_obj_t red, mp_obj_t green, mp_obj_t blue) { ); } -mp_obj_t kandinsky_get_pixel(mp_obj_t x, mp_obj_t y) { +mp_obj_t modkandinsky_get_pixel(mp_obj_t x, mp_obj_t y) { KDColor c = KDIonContext::sharedContext()->getPixel( KDPoint(mp_obj_get_int(x), mp_obj_get_int(y)) ); return MP_OBJ_NEW_SMALL_INT(c); } -mp_obj_t kandinsky_set_pixel(mp_obj_t x, mp_obj_t y, mp_obj_t color) { +mp_obj_t modkandinsky_set_pixel(mp_obj_t x, mp_obj_t y, mp_obj_t color) { MicroPython::ExecutionEnvironment::currentExecutionEnvironment()->displaySandbox(); KDIonContext::sharedContext()->setPixel( KDPoint(mp_obj_get_int(x), mp_obj_get_int(y)), @@ -37,7 +37,7 @@ mp_obj_t kandinsky_set_pixel(mp_obj_t x, mp_obj_t y, mp_obj_t color) { return mp_const_none; } -mp_obj_t kandinsky_draw_string(mp_obj_t text, mp_obj_t x, mp_obj_t y) { +mp_obj_t modkandinsky_draw_string(mp_obj_t text, mp_obj_t x, mp_obj_t y) { MicroPython::ExecutionEnvironment::currentExecutionEnvironment()->displaySandbox(); KDIonContext::sharedContext()->drawString( mp_obj_str_get_str(text), diff --git a/python/port/mod/kandinsky/modkandinsky.h b/python/port/mod/kandinsky/modkandinsky.h new file mode 100644 index 000000000..c9dc84989 --- /dev/null +++ b/python/port/mod/kandinsky/modkandinsky.h @@ -0,0 +1,6 @@ +#include + +mp_obj_t modkandinsky_color(mp_obj_t red, mp_obj_t green, mp_obj_t blue); +mp_obj_t modkandinsky_get_pixel(mp_obj_t x, mp_obj_t y); +mp_obj_t modkandinsky_set_pixel(mp_obj_t x, mp_obj_t y, mp_obj_t color); +mp_obj_t modkandinsky_draw_string(mp_obj_t text, mp_obj_t x, mp_obj_t y); diff --git a/python/port/mod/kandinsky/modkandinsky_table.c b/python/port/mod/kandinsky/modkandinsky_table.c new file mode 100644 index 000000000..ee402fd09 --- /dev/null +++ b/python/port/mod/kandinsky/modkandinsky_table.c @@ -0,0 +1,21 @@ +#include "modkandinsky.h" + +STATIC MP_DEFINE_CONST_FUN_OBJ_3(modkandinsky_color_obj, modkandinsky_color); +STATIC MP_DEFINE_CONST_FUN_OBJ_2(modkandinsky_get_pixel_obj, modkandinsky_get_pixel); +STATIC MP_DEFINE_CONST_FUN_OBJ_3(modkandinsky_set_pixel_obj, modkandinsky_set_pixel); +STATIC MP_DEFINE_CONST_FUN_OBJ_3(modkandinsky_draw_string_obj, modkandinsky_draw_string); + +STATIC const mp_rom_map_elem_t modkandinsky_module_globals_table[] = { + { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_kandinsky) }, + { MP_ROM_QSTR(MP_QSTR_color), (mp_obj_t)&modkandinsky_color_obj }, + { MP_ROM_QSTR(MP_QSTR_get_pixel), (mp_obj_t)&modkandinsky_get_pixel_obj }, + { MP_ROM_QSTR(MP_QSTR_set_pixel), (mp_obj_t)&modkandinsky_set_pixel_obj }, + { MP_ROM_QSTR(MP_QSTR_draw_string), (mp_obj_t)&modkandinsky_draw_string_obj }, +}; + +STATIC MP_DEFINE_CONST_DICT(modkandinsky_module_globals, modkandinsky_module_globals_table); + +const mp_obj_module_t modkandinsky_module = { + .base = { &mp_type_module }, + .globals = (mp_obj_dict_t*)&modkandinsky_module_globals, +}; diff --git a/python/port/modkandinsky.c b/python/port/modkandinsky.c deleted file mode 100644 index b24064436..000000000 --- a/python/port/modkandinsky.c +++ /dev/null @@ -1,23 +0,0 @@ -#include "py/obj.h" -#include "py/mphal.h" -#include "modkandinsky.h" - -STATIC MP_DEFINE_CONST_FUN_OBJ_3(kandinsky_color_obj, kandinsky_color); -STATIC MP_DEFINE_CONST_FUN_OBJ_2(kandinsky_get_pixel_obj, kandinsky_get_pixel); -STATIC MP_DEFINE_CONST_FUN_OBJ_3(kandinsky_set_pixel_obj, kandinsky_set_pixel); -STATIC MP_DEFINE_CONST_FUN_OBJ_3(kandinsky_draw_string_obj, kandinsky_draw_string); - -STATIC const mp_rom_map_elem_t kandinsky_module_globals_table[] = { - { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_kandinsky) }, - { MP_ROM_QSTR(MP_QSTR_color), (mp_obj_t)&kandinsky_color_obj }, - { MP_ROM_QSTR(MP_QSTR_get_pixel), (mp_obj_t)&kandinsky_get_pixel_obj }, - { MP_ROM_QSTR(MP_QSTR_set_pixel), (mp_obj_t)&kandinsky_set_pixel_obj }, - { MP_ROM_QSTR(MP_QSTR_draw_string), (mp_obj_t)&kandinsky_draw_string_obj }, -}; - -STATIC MP_DEFINE_CONST_DICT(kandinsky_module_globals, kandinsky_module_globals_table); - -const mp_obj_module_t kandinsky_module = { - .base = { &mp_type_module }, - .globals = (mp_obj_dict_t*)&kandinsky_module_globals, -}; diff --git a/python/port/modkandinsky.h b/python/port/modkandinsky.h deleted file mode 100644 index 185951b43..000000000 --- a/python/port/modkandinsky.h +++ /dev/null @@ -1,13 +0,0 @@ -#include "py/obj.h" - -/* - * kandinsky.color(12,0,233); - * kandinsky.getPixel(x, y); - * kandinsky.setPixel(x, y, color); - * kandinsky.drawString(text, x, y); - */ - -mp_obj_t kandinsky_color(mp_obj_t red, mp_obj_t green, mp_obj_t blue); -mp_obj_t kandinsky_get_pixel(mp_obj_t x, mp_obj_t y); -mp_obj_t kandinsky_set_pixel(mp_obj_t x, mp_obj_t y, mp_obj_t color); -mp_obj_t kandinsky_draw_string(mp_obj_t text, mp_obj_t x, mp_obj_t y); diff --git a/python/port/mpconfigport.h b/python/port/mpconfigport.h index 798f264a0..ad88e0292 100644 --- a/python/port/mpconfigport.h +++ b/python/port/mpconfigport.h @@ -106,9 +106,9 @@ typedef long mp_off_t; #define MP_STATE_PORT MP_STATE_VM -extern const struct _mp_obj_module_t kandinsky_module; +extern const struct _mp_obj_module_t modkandinsky_module; extern const struct _mp_obj_module_t modtime_module; #define MICROPY_PORT_BUILTIN_MODULES \ - { MP_ROM_QSTR(MP_QSTR_kandinsky), MP_ROM_PTR(&kandinsky_module) }, \ + { MP_ROM_QSTR(MP_QSTR_kandinsky), MP_ROM_PTR(&modkandinsky_module) }, \ { MP_ROM_QSTR(MP_QSTR_time), MP_ROM_PTR(&modtime_module) },