mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
[python] Add an ion module
This commit is contained in:
committed by
LeaNumworks
parent
190e31ef4a
commit
9d66b23848
@@ -130,6 +130,8 @@ port_src += $(addprefix python/port/,\
|
||||
port.c \
|
||||
builtins.c \
|
||||
helpers.c \
|
||||
mod/ion/modion.cpp \
|
||||
mod/ion/modion_table.cpp \
|
||||
mod/kandinsky/modkandinsky.cpp \
|
||||
mod/kandinsky/modkandinsky_table.c \
|
||||
mod/time/modtime.c \
|
||||
|
||||
@@ -15,6 +15,10 @@
|
||||
QCFG(BYTES_IN_LEN, (1))
|
||||
QCFG(BYTES_IN_HASH, (2))
|
||||
|
||||
// Ion QSTR
|
||||
Q(ion)
|
||||
Q(keydown)
|
||||
|
||||
// Kandinsky QSTRs
|
||||
Q(kandinsky)
|
||||
Q(color)
|
||||
|
||||
13
python/port/mod/ion/modion.cpp
Normal file
13
python/port/mod/ion/modion.cpp
Normal file
@@ -0,0 +1,13 @@
|
||||
extern "C" {
|
||||
#include "modion.h"
|
||||
#include <py/objtuple.h>
|
||||
#include <py/runtime.h>
|
||||
}
|
||||
#include <ion.h>
|
||||
#include "port.h"
|
||||
|
||||
mp_obj_t modion_keyboard_keydown(mp_obj_t key_o) {
|
||||
Ion::Keyboard::Key key = static_cast<Ion::Keyboard::Key>(mp_obj_get_int(key_o));
|
||||
Ion::Keyboard::State state = Ion::Keyboard::scan();
|
||||
return MP_OBJ_NEW_SMALL_INT(state.keyDown(key));
|
||||
}
|
||||
3
python/port/mod/ion/modion.h
Normal file
3
python/port/mod/ion/modion.h
Normal file
@@ -0,0 +1,3 @@
|
||||
#include <py/obj.h>
|
||||
|
||||
mp_obj_t modion_keyboard_keydown(mp_obj_t key_o);
|
||||
15
python/port/mod/ion/modion_table.c
Normal file
15
python/port/mod/ion/modion_table.c
Normal file
@@ -0,0 +1,15 @@
|
||||
#include "modion.h"
|
||||
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(modion_keyboard_keydown_obj, modion_keyboard_keydown);
|
||||
|
||||
STATIC const mp_rom_map_elem_t modion_module_globals_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_ion) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_keydown), MP_ROM_PTR(&modion_keyboard_keydown_obj) },
|
||||
};
|
||||
|
||||
STATIC MP_DEFINE_CONST_DICT(modion_module_globals, modion_module_globals_table);
|
||||
|
||||
const mp_obj_module_t modion_module = {
|
||||
.base = { &mp_type_module },
|
||||
.globals = (mp_obj_dict_t*)&modion_module_globals,
|
||||
};
|
||||
@@ -112,11 +112,13 @@ typedef long mp_off_t;
|
||||
|
||||
#define MP_STATE_PORT MP_STATE_VM
|
||||
|
||||
extern const struct _mp_obj_module_t modion_module;
|
||||
extern const struct _mp_obj_module_t modkandinsky_module;
|
||||
extern const struct _mp_obj_module_t modtime_module;
|
||||
extern const struct _mp_obj_module_t modturtle_module;
|
||||
|
||||
#define MICROPY_PORT_BUILTIN_MODULES \
|
||||
{ MP_ROM_QSTR(MP_QSTR_ion), MP_ROM_PTR(&modion_module) }, \
|
||||
{ MP_ROM_QSTR(MP_QSTR_kandinsky), MP_ROM_PTR(&modkandinsky_module) }, \
|
||||
{ MP_ROM_QSTR(MP_QSTR_time), MP_ROM_PTR(&modtime_module) }, \
|
||||
{ MP_ROM_QSTR(MP_QSTR_turtle), MP_ROM_PTR(&modturtle_module) }, \
|
||||
|
||||
Reference in New Issue
Block a user