mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
[python] Moved get_keys to ion module
This commit is contained in:
@@ -340,6 +340,7 @@ Q(version_info)
|
||||
Q(zip)
|
||||
|
||||
// Ion QSTR
|
||||
Q(get_keys)
|
||||
Q(ion)
|
||||
Q(keydown)
|
||||
Q(battery)
|
||||
@@ -406,7 +407,6 @@ Q(set_pixel)
|
||||
Q(large_font)
|
||||
Q(small_font)
|
||||
Q(wait_vblank)
|
||||
Q(get_keys)
|
||||
Q(get_palette)
|
||||
|
||||
Q(PrimaryText)
|
||||
|
||||
@@ -18,9 +18,88 @@ mp_obj_t modion_battery() {
|
||||
}
|
||||
|
||||
mp_obj_t modion_battery_level(){
|
||||
return mp_obj_new_int(static_cast<int>(Ion::Battery::level()));
|
||||
return mp_obj_new_int(static_cast<int>(Ion::Battery::level()));
|
||||
}
|
||||
|
||||
mp_obj_t modion_battery_ischarging(){
|
||||
return mp_obj_new_bool(Ion::Battery::isCharging());
|
||||
}
|
||||
return mp_obj_new_bool(Ion::Battery::isCharging());
|
||||
}
|
||||
|
||||
struct key2mp
|
||||
{
|
||||
Ion::Keyboard::Key key;
|
||||
mp_obj_t string;
|
||||
};
|
||||
|
||||
const static key2mp keyMapping[] =
|
||||
{
|
||||
{ Ion::Keyboard::Key::Left, MP_ROM_QSTR(MP_QSTR_left) },
|
||||
{ Ion::Keyboard::Key::Right, MP_ROM_QSTR(MP_QSTR_right) },
|
||||
{ Ion::Keyboard::Key::Down, MP_ROM_QSTR(MP_QSTR_down) },
|
||||
{ Ion::Keyboard::Key::Up, MP_ROM_QSTR(MP_QSTR_up) },
|
||||
{ Ion::Keyboard::Key::OK, MP_ROM_QSTR(MP_QSTR_OK) },
|
||||
{ Ion::Keyboard::Key::Back, MP_ROM_QSTR(MP_QSTR_back) },
|
||||
|
||||
{ Ion::Keyboard::Key::Home, MP_ROM_QSTR(MP_QSTR_home) },
|
||||
{ Ion::Keyboard::Key::OnOff, MP_ROM_QSTR(MP_QSTR_onOff) },
|
||||
|
||||
{ Ion::Keyboard::Key::Shift, MP_ROM_QSTR(MP_QSTR_shift) },
|
||||
{ Ion::Keyboard::Key::Alpha, MP_ROM_QSTR(MP_QSTR_alpha) },
|
||||
{ Ion::Keyboard::Key::XNT, MP_ROM_QSTR(MP_QSTR_xnt) },
|
||||
{ Ion::Keyboard::Key::Var, MP_ROM_QSTR(MP_QSTR_var) },
|
||||
{ Ion::Keyboard::Key::Toolbox, MP_ROM_QSTR(MP_QSTR_toolbox) },
|
||||
{ Ion::Keyboard::Key::Backspace, MP_ROM_QSTR(MP_QSTR_backspace) },
|
||||
|
||||
{ Ion::Keyboard::Key::Exp, MP_ROM_QSTR(MP_QSTR_exp) },
|
||||
{ Ion::Keyboard::Key::Ln, MP_ROM_QSTR(MP_QSTR_ln) },
|
||||
{ Ion::Keyboard::Key::Log, MP_ROM_QSTR(MP_QSTR_log) },
|
||||
{ Ion::Keyboard::Key::Imaginary, MP_ROM_QSTR(MP_QSTR_imaginary) },
|
||||
{ Ion::Keyboard::Key::Comma, MP_ROM_QSTR(MP_QSTR_comma) },
|
||||
{ Ion::Keyboard::Key::Power, MP_ROM_QSTR(MP_QSTR_power) },
|
||||
|
||||
{ Ion::Keyboard::Key::Sine, MP_ROM_QSTR(MP_QSTR_sin) },
|
||||
{ Ion::Keyboard::Key::Cosine, MP_ROM_QSTR(MP_QSTR_cos) },
|
||||
{ Ion::Keyboard::Key::Tangent, MP_ROM_QSTR(MP_QSTR_tan) },
|
||||
{ Ion::Keyboard::Key::Pi, MP_ROM_QSTR(MP_QSTR_pi) },
|
||||
{ Ion::Keyboard::Key::Sqrt, MP_ROM_QSTR(MP_QSTR_sqrt) },
|
||||
{ Ion::Keyboard::Key::Square, MP_ROM_QSTR(MP_QSTR_square) },
|
||||
|
||||
{ Ion::Keyboard::Key::Seven, MP_ROM_QSTR(MP_QSTR_7) },
|
||||
{ Ion::Keyboard::Key::Eight, MP_ROM_QSTR(MP_QSTR_8) },
|
||||
{ Ion::Keyboard::Key::Nine, MP_ROM_QSTR(MP_QSTR_9) },
|
||||
{ Ion::Keyboard::Key::RightParenthesis, MP_ROM_QSTR(MP_QSTR__paren_open_) },
|
||||
{ Ion::Keyboard::Key::LeftParenthesis, MP_ROM_QSTR(MP_QSTR__paren_close_) },
|
||||
|
||||
{ Ion::Keyboard::Key::Four, MP_ROM_QSTR(MP_QSTR_4) },
|
||||
{ Ion::Keyboard::Key::Five, MP_ROM_QSTR(MP_QSTR_5) },
|
||||
{ Ion::Keyboard::Key::Six, MP_ROM_QSTR(MP_QSTR_6) },
|
||||
{ Ion::Keyboard::Key::Multiplication, MP_ROM_QSTR(MP_QSTR__star_) },
|
||||
{ Ion::Keyboard::Key::Division, MP_ROM_QSTR(MP_QSTR__slash_) },
|
||||
|
||||
{ Ion::Keyboard::Key::One, MP_ROM_QSTR(MP_QSTR_1) },
|
||||
{ Ion::Keyboard::Key::Two, MP_ROM_QSTR(MP_QSTR_2) },
|
||||
{ Ion::Keyboard::Key::Three, MP_ROM_QSTR(MP_QSTR_3) },
|
||||
{ Ion::Keyboard::Key::Plus, MP_ROM_QSTR(MP_QSTR__plus_) },
|
||||
{ Ion::Keyboard::Key::Minus, MP_ROM_QSTR(MP_QSTR__hyphen_) },
|
||||
|
||||
{ Ion::Keyboard::Key::Zero, MP_ROM_QSTR(MP_QSTR_0) },
|
||||
{ Ion::Keyboard::Key::Dot, MP_ROM_QSTR(MP_QSTR__dot_) },
|
||||
{ Ion::Keyboard::Key::EE, MP_ROM_QSTR(MP_QSTR_EE) },
|
||||
{ Ion::Keyboard::Key::Ans, MP_ROM_QSTR(MP_QSTR_Ans) },
|
||||
{ Ion::Keyboard::Key::EXE, MP_ROM_QSTR(MP_QSTR_EXE) },
|
||||
};
|
||||
|
||||
mp_obj_t modion_get_keys() {
|
||||
micropython_port_interrupt_if_needed();
|
||||
|
||||
Ion::Keyboard::State keys = Ion::Keyboard::scan();
|
||||
mp_obj_t result = mp_obj_new_set(0, nullptr);
|
||||
|
||||
for (unsigned i = 0; i < sizeof(keyMapping)/sizeof(key2mp); i++) {
|
||||
if (keys.keyDown(keyMapping[i].key)) {
|
||||
mp_obj_set_store(result, keyMapping[i].string);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -4,4 +4,5 @@ mp_obj_t modion_keyboard_keydown(mp_obj_t key_o);
|
||||
mp_obj_t modion_battery();
|
||||
mp_obj_t modion_battery_level();
|
||||
mp_obj_t modion_battery_ischarging();
|
||||
extern const mp_obj_type_t file_type;
|
||||
mp_obj_t modion_get_keys();
|
||||
extern const mp_obj_type_t file_type;
|
||||
|
||||
@@ -16,6 +16,11 @@ const mp_obj_fun_builtin_fixed_t modion_keyboard_keydown_obj = {
|
||||
{(mp_fun_0_t)modion_keyboard_keydown}
|
||||
};
|
||||
|
||||
const mp_obj_fun_builtin_fixed_t modion_get_keys_obj = {
|
||||
{&mp_type_fun_builtin_0},
|
||||
{(mp_fun_0_t)modion_get_keys}
|
||||
};
|
||||
|
||||
const mp_obj_fun_builtin_fixed_t modion_battery_obj = {
|
||||
{&mp_type_fun_builtin_0},
|
||||
{(mp_fun_0_t)modion_battery}
|
||||
@@ -37,6 +42,7 @@ extern "C" const mp_rom_map_elem_t modion_module_globals_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_battery_level), MP_ROM_PTR(&modion_battery_level_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_battery_ischarging), MP_ROM_PTR(&modion_battery_ischarging_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_keydown), MP_ROM_PTR(&modion_keyboard_keydown_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_get_keys), MP_ROM_PTR(&modion_get_keys_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_KEY_LEFT), MP_OBJ_NEW_SMALL_INT(Ion::Keyboard::Key::Left) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_KEY_UP), MP_OBJ_NEW_SMALL_INT(Ion::Keyboard::Key::Up) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_KEY_DOWN), MP_OBJ_NEW_SMALL_INT(Ion::Keyboard::Key::Down) },
|
||||
|
||||
@@ -164,85 +164,6 @@ mp_obj_t modkandinsky_wait_vblank() {
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
struct key2mp
|
||||
{
|
||||
Ion::Keyboard::Key key;
|
||||
mp_obj_t string;
|
||||
};
|
||||
|
||||
const static key2mp keyMapping[] =
|
||||
{
|
||||
{ Ion::Keyboard::Key::Left, MP_ROM_QSTR(MP_QSTR_left) },
|
||||
{ Ion::Keyboard::Key::Right, MP_ROM_QSTR(MP_QSTR_right) },
|
||||
{ Ion::Keyboard::Key::Down, MP_ROM_QSTR(MP_QSTR_down) },
|
||||
{ Ion::Keyboard::Key::Up, MP_ROM_QSTR(MP_QSTR_up) },
|
||||
{ Ion::Keyboard::Key::OK, MP_ROM_QSTR(MP_QSTR_OK) },
|
||||
{ Ion::Keyboard::Key::Back, MP_ROM_QSTR(MP_QSTR_back) },
|
||||
|
||||
{ Ion::Keyboard::Key::Home, MP_ROM_QSTR(MP_QSTR_home) },
|
||||
{ Ion::Keyboard::Key::OnOff, MP_ROM_QSTR(MP_QSTR_onOff) },
|
||||
|
||||
{ Ion::Keyboard::Key::Shift, MP_ROM_QSTR(MP_QSTR_shift) },
|
||||
{ Ion::Keyboard::Key::Alpha, MP_ROM_QSTR(MP_QSTR_alpha) },
|
||||
{ Ion::Keyboard::Key::XNT, MP_ROM_QSTR(MP_QSTR_xnt) },
|
||||
{ Ion::Keyboard::Key::Var, MP_ROM_QSTR(MP_QSTR_var) },
|
||||
{ Ion::Keyboard::Key::Toolbox, MP_ROM_QSTR(MP_QSTR_toolbox) },
|
||||
{ Ion::Keyboard::Key::Backspace, MP_ROM_QSTR(MP_QSTR_backspace) },
|
||||
|
||||
{ Ion::Keyboard::Key::Exp, MP_ROM_QSTR(MP_QSTR_exp) },
|
||||
{ Ion::Keyboard::Key::Ln, MP_ROM_QSTR(MP_QSTR_ln) },
|
||||
{ Ion::Keyboard::Key::Log, MP_ROM_QSTR(MP_QSTR_log) },
|
||||
{ Ion::Keyboard::Key::Imaginary, MP_ROM_QSTR(MP_QSTR_imaginary) },
|
||||
{ Ion::Keyboard::Key::Comma, MP_ROM_QSTR(MP_QSTR_comma) },
|
||||
{ Ion::Keyboard::Key::Power, MP_ROM_QSTR(MP_QSTR_power) },
|
||||
|
||||
{ Ion::Keyboard::Key::Sine, MP_ROM_QSTR(MP_QSTR_sin) },
|
||||
{ Ion::Keyboard::Key::Cosine, MP_ROM_QSTR(MP_QSTR_cos) },
|
||||
{ Ion::Keyboard::Key::Tangent, MP_ROM_QSTR(MP_QSTR_tan) },
|
||||
{ Ion::Keyboard::Key::Pi, MP_ROM_QSTR(MP_QSTR_pi) },
|
||||
{ Ion::Keyboard::Key::Sqrt, MP_ROM_QSTR(MP_QSTR_sqrt) },
|
||||
{ Ion::Keyboard::Key::Square, MP_ROM_QSTR(MP_QSTR_square) },
|
||||
|
||||
{ Ion::Keyboard::Key::Seven, MP_ROM_QSTR(MP_QSTR_7) },
|
||||
{ Ion::Keyboard::Key::Eight, MP_ROM_QSTR(MP_QSTR_8) },
|
||||
{ Ion::Keyboard::Key::Nine, MP_ROM_QSTR(MP_QSTR_9) },
|
||||
{ Ion::Keyboard::Key::RightParenthesis, MP_ROM_QSTR(MP_QSTR__paren_open_) },
|
||||
{ Ion::Keyboard::Key::LeftParenthesis, MP_ROM_QSTR(MP_QSTR__paren_close_) },
|
||||
|
||||
{ Ion::Keyboard::Key::Four, MP_ROM_QSTR(MP_QSTR_4) },
|
||||
{ Ion::Keyboard::Key::Five, MP_ROM_QSTR(MP_QSTR_5) },
|
||||
{ Ion::Keyboard::Key::Six, MP_ROM_QSTR(MP_QSTR_6) },
|
||||
{ Ion::Keyboard::Key::Multiplication, MP_ROM_QSTR(MP_QSTR__star_) },
|
||||
{ Ion::Keyboard::Key::Division, MP_ROM_QSTR(MP_QSTR__slash_) },
|
||||
|
||||
{ Ion::Keyboard::Key::One, MP_ROM_QSTR(MP_QSTR_1) },
|
||||
{ Ion::Keyboard::Key::Two, MP_ROM_QSTR(MP_QSTR_2) },
|
||||
{ Ion::Keyboard::Key::Three, MP_ROM_QSTR(MP_QSTR_3) },
|
||||
{ Ion::Keyboard::Key::Plus, MP_ROM_QSTR(MP_QSTR__plus_) },
|
||||
{ Ion::Keyboard::Key::Minus, MP_ROM_QSTR(MP_QSTR__hyphen_) },
|
||||
|
||||
{ Ion::Keyboard::Key::Zero, MP_ROM_QSTR(MP_QSTR_0) },
|
||||
{ Ion::Keyboard::Key::Dot, MP_ROM_QSTR(MP_QSTR__dot_) },
|
||||
{ Ion::Keyboard::Key::EE, MP_ROM_QSTR(MP_QSTR_EE) },
|
||||
{ Ion::Keyboard::Key::Ans, MP_ROM_QSTR(MP_QSTR_Ans) },
|
||||
{ Ion::Keyboard::Key::EXE, MP_ROM_QSTR(MP_QSTR_EXE) },
|
||||
};
|
||||
|
||||
mp_obj_t modkandinsky_get_keys() {
|
||||
micropython_port_interrupt_if_needed();
|
||||
|
||||
Ion::Keyboard::State keys = Ion::Keyboard::scan();
|
||||
mp_obj_t result = mp_obj_new_set(0, nullptr);
|
||||
|
||||
for (unsigned i = 0; i < sizeof(keyMapping)/sizeof(key2mp); i++) {
|
||||
if (keys.keyDown(keyMapping[i].key)) {
|
||||
mp_obj_set_store(result, keyMapping[i].string);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
mp_obj_t modkandinsky_get_palette() {
|
||||
mp_obj_t modkandinsky_palette_table = mp_obj_new_dict(0);
|
||||
mp_obj_dict_store(modkandinsky_palette_table, MP_ROM_QSTR(MP_QSTR_PrimaryText), TupleForKDColor(Palette::PrimaryText));
|
||||
|
||||
@@ -10,7 +10,6 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(modkandinsky_fill_rect_obj, 5, 5, mod
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(modkandinsky_fill_circle_obj, 4, 4, modkandinsky_fill_circle);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(modkandinsky_fill_polygon_obj, 2, 2, modkandinsky_fill_polygon);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(modkandinsky_wait_vblank_obj, modkandinsky_wait_vblank);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(modkandinsky_get_keys_obj, modkandinsky_get_keys);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(modkandinsky_get_palette_obj, modkandinsky_get_palette);
|
||||
|
||||
STATIC const mp_rom_map_elem_t modkandinsky_module_globals_table[] = {
|
||||
@@ -27,7 +26,6 @@ STATIC const mp_rom_map_elem_t modkandinsky_module_globals_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_large_font), mp_const_true },
|
||||
{ MP_ROM_QSTR(MP_QSTR_small_font), mp_const_false },
|
||||
{ MP_ROM_QSTR(MP_QSTR_wait_vblank), (mp_obj_t)&modkandinsky_wait_vblank_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_get_keys), (mp_obj_t)&modkandinsky_get_keys_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_get_palette), (mp_obj_t)&modkandinsky_get_palette_obj },
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user