kopia lustrzana https://github.com/pimoroni/pimoroni-pico
ST7789: Simplify MicroPython bindings.
Kwargs should not be used unless there are non-required arguments with default values. Save ~290 bytes and a bunch of noisy lines of code.driver/sh1107
rodzic
7e4725d1cd
commit
cf6b6e04f4
|
@ -10,27 +10,27 @@ MP_DEFINE_CONST_FUN_OBJ_2(GenericST7789_set_backlight_obj, GenericST7789_set_bac
|
||||||
MP_DEFINE_CONST_FUN_OBJ_2(GenericST7789_set_framebuffer_obj, GenericST7789_set_framebuffer);
|
MP_DEFINE_CONST_FUN_OBJ_2(GenericST7789_set_framebuffer_obj, GenericST7789_set_framebuffer);
|
||||||
|
|
||||||
// Palette management
|
// Palette management
|
||||||
MP_DEFINE_CONST_FUN_OBJ_KW(GenericST7789_update_pen_obj, 4, GenericST7789_update_pen);
|
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(GenericST7789_update_pen_obj, 5, 5, GenericST7789_update_pen);
|
||||||
MP_DEFINE_CONST_FUN_OBJ_2(GenericST7789_reset_pen_obj, GenericST7789_reset_pen);
|
MP_DEFINE_CONST_FUN_OBJ_2(GenericST7789_reset_pen_obj, GenericST7789_reset_pen);
|
||||||
|
|
||||||
// Pen
|
// Pen
|
||||||
MP_DEFINE_CONST_FUN_OBJ_2(GenericST7789_set_pen_obj, GenericST7789_set_pen);
|
MP_DEFINE_CONST_FUN_OBJ_2(GenericST7789_set_pen_obj, GenericST7789_set_pen);
|
||||||
MP_DEFINE_CONST_FUN_OBJ_KW(GenericST7789_create_pen_obj, 3, GenericST7789_create_pen);
|
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(GenericST7789_create_pen_obj, 4, 4, GenericST7789_create_pen);
|
||||||
|
|
||||||
// Primitives
|
// Primitives
|
||||||
MP_DEFINE_CONST_FUN_OBJ_KW(GenericST7789_set_clip_obj, 1, GenericST7789_set_clip);
|
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(GenericST7789_set_clip_obj, 5, 5, GenericST7789_set_clip);
|
||||||
MP_DEFINE_CONST_FUN_OBJ_1(GenericST7789_remove_clip_obj, GenericST7789_remove_clip);
|
MP_DEFINE_CONST_FUN_OBJ_1(GenericST7789_remove_clip_obj, GenericST7789_remove_clip);
|
||||||
MP_DEFINE_CONST_FUN_OBJ_1(GenericST7789_clear_obj, GenericST7789_clear);
|
MP_DEFINE_CONST_FUN_OBJ_1(GenericST7789_clear_obj, GenericST7789_clear);
|
||||||
MP_DEFINE_CONST_FUN_OBJ_3(GenericST7789_pixel_obj, GenericST7789_pixel);
|
MP_DEFINE_CONST_FUN_OBJ_3(GenericST7789_pixel_obj, GenericST7789_pixel);
|
||||||
MP_DEFINE_CONST_FUN_OBJ_KW(GenericST7789_pixel_span_obj, 1, GenericST7789_pixel_span);
|
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(GenericST7789_pixel_span_obj, 4, 4, GenericST7789_pixel_span);
|
||||||
MP_DEFINE_CONST_FUN_OBJ_KW(GenericST7789_rectangle_obj, 1, GenericST7789_rectangle);
|
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(GenericST7789_rectangle_obj, 5, 5, GenericST7789_rectangle);
|
||||||
MP_DEFINE_CONST_FUN_OBJ_KW(GenericST7789_circle_obj, 1, GenericST7789_circle);
|
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(GenericST7789_circle_obj, 4, 4, GenericST7789_circle);
|
||||||
MP_DEFINE_CONST_FUN_OBJ_KW(GenericST7789_character_obj, 1, GenericST7789_character);
|
MP_DEFINE_CONST_FUN_OBJ_KW(GenericST7789_character_obj, 1, GenericST7789_character);
|
||||||
MP_DEFINE_CONST_FUN_OBJ_KW(GenericST7789_text_obj, 1, GenericST7789_text);
|
MP_DEFINE_CONST_FUN_OBJ_KW(GenericST7789_text_obj, 1, GenericST7789_text);
|
||||||
MP_DEFINE_CONST_FUN_OBJ_KW(GenericST7789_measure_text_obj, 1, GenericST7789_measure_text);
|
MP_DEFINE_CONST_FUN_OBJ_KW(GenericST7789_measure_text_obj, 1, GenericST7789_measure_text);
|
||||||
MP_DEFINE_CONST_FUN_OBJ_KW(GenericST7789_polygon_obj, 2, GenericST7789_polygon);
|
MP_DEFINE_CONST_FUN_OBJ_KW(GenericST7789_polygon_obj, 2, GenericST7789_polygon);
|
||||||
MP_DEFINE_CONST_FUN_OBJ_KW(GenericST7789_triangle_obj, 1, GenericST7789_triangle);
|
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(GenericST7789_triangle_obj, 7, 7, GenericST7789_triangle);
|
||||||
MP_DEFINE_CONST_FUN_OBJ_KW(GenericST7789_line_obj, 1, GenericST7789_line);
|
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(GenericST7789_line_obj, 5, 5, GenericST7789_line);
|
||||||
|
|
||||||
// Utility
|
// Utility
|
||||||
MP_DEFINE_CONST_FUN_OBJ_1(GenericST7789_get_bounds_obj, GenericST7789_get_bounds);
|
MP_DEFINE_CONST_FUN_OBJ_1(GenericST7789_get_bounds_obj, GenericST7789_get_bounds);
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
#include "micropython/modules/util.hpp"
|
#include "micropython/modules/util.hpp"
|
||||||
|
|
||||||
#ifndef PICO_GRAPHICS_PEN_TYPE
|
#ifndef PICO_GRAPHICS_PEN_TYPE
|
||||||
#define PICO_GRAPHICS_PEN_TYPE PenP4
|
#define PICO_GRAPHICS_PEN_TYPE PenRGB332
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
using namespace pimoroni;
|
using namespace pimoroni;
|
||||||
|
@ -181,49 +181,30 @@ mp_obj_t GenericST7789_reset_pen(mp_obj_t self_in, mp_obj_t pen) {
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
|
|
||||||
mp_obj_t GenericST7789_update_pen(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
mp_obj_t GenericST7789_update_pen(size_t n_args, const mp_obj_t *args) {
|
||||||
enum { ARG_self, ARG_i, ARG_r, ARG_g, ARG_b };
|
enum { ARG_self, ARG_i, ARG_r, ARG_g, ARG_b };
|
||||||
static const mp_arg_t allowed_args[] = {
|
|
||||||
{ MP_QSTR_, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
|
||||||
{ MP_QSTR_i, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_r, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_g, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_b, MP_ARG_REQUIRED | MP_ARG_INT }
|
|
||||||
};
|
|
||||||
|
|
||||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
GenericST7789_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self], GenericST7789_obj_t);
|
||||||
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
|
||||||
|
|
||||||
GenericST7789_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self].u_obj, GenericST7789_obj_t);
|
|
||||||
|
|
||||||
self->st7789->update_pen(
|
self->st7789->update_pen(
|
||||||
args[ARG_i].u_int & 0xff,
|
mp_obj_get_int(args[ARG_i]) & 0xff,
|
||||||
args[ARG_r].u_int & 0xff,
|
mp_obj_get_int(args[ARG_r]) & 0xff,
|
||||||
args[ARG_g].u_int & 0xff,
|
mp_obj_get_int(args[ARG_g]) & 0xff,
|
||||||
args[ARG_b].u_int & 0xff
|
mp_obj_get_int(args[ARG_b]) & 0xff
|
||||||
);
|
);
|
||||||
|
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
|
|
||||||
mp_obj_t GenericST7789_create_pen(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
mp_obj_t GenericST7789_create_pen(size_t n_args, const mp_obj_t *args) {
|
||||||
enum { ARG_self, ARG_r, ARG_g, ARG_b };
|
enum { ARG_self, ARG_r, ARG_g, ARG_b };
|
||||||
static const mp_arg_t allowed_args[] = {
|
|
||||||
{ MP_QSTR_, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
|
||||||
{ MP_QSTR_r, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_g, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_b, MP_ARG_REQUIRED | MP_ARG_INT }
|
|
||||||
};
|
|
||||||
|
|
||||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
GenericST7789_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self], GenericST7789_obj_t);
|
||||||
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
|
||||||
|
|
||||||
GenericST7789_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self].u_obj, GenericST7789_obj_t);
|
|
||||||
|
|
||||||
int result = self->st7789->create_pen(
|
int result = self->st7789->create_pen(
|
||||||
args[ARG_r].u_int & 0xff,
|
mp_obj_get_int(args[ARG_r]) & 0xff,
|
||||||
args[ARG_g].u_int & 0xff,
|
mp_obj_get_int(args[ARG_g]) & 0xff,
|
||||||
args[ARG_b].u_int & 0xff
|
mp_obj_get_int(args[ARG_b]) & 0xff
|
||||||
);
|
);
|
||||||
|
|
||||||
if (result == -1) mp_raise_ValueError("create_pen failed. No matching colour or space in palette!");
|
if (result == -1) mp_raise_ValueError("create_pen failed. No matching colour or space in palette!");
|
||||||
|
@ -231,33 +212,24 @@ mp_obj_t GenericST7789_create_pen(size_t n_args, const mp_obj_t *pos_args, mp_ma
|
||||||
return mp_obj_new_int(result);
|
return mp_obj_new_int(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
mp_obj_t GenericST7789_set_clip(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
mp_obj_t GenericST7789_set_clip(size_t n_args, const mp_obj_t *args) {
|
||||||
enum { ARG_self, ARG_x, ARG_y, ARG_w, ARG_h };
|
enum { ARG_self, ARG_x, ARG_y, ARG_w, ARG_h };
|
||||||
static const mp_arg_t allowed_args[] = {
|
|
||||||
{ MP_QSTR_, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
|
||||||
{ MP_QSTR_x, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_y, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_w, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_h, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
};
|
|
||||||
|
|
||||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
GenericST7789_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self], GenericST7789_obj_t);
|
||||||
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
|
||||||
|
|
||||||
GenericST7789_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self].u_obj, GenericST7789_obj_t);
|
self->st7789->set_clip({
|
||||||
|
mp_obj_get_int(args[ARG_x]),
|
||||||
int x = args[ARG_x].u_int;
|
mp_obj_get_int(args[ARG_y]),
|
||||||
int y = args[ARG_y].u_int;
|
mp_obj_get_int(args[ARG_w]),
|
||||||
int w = args[ARG_w].u_int;
|
mp_obj_get_int(args[ARG_h])
|
||||||
int h = args[ARG_h].u_int;
|
});
|
||||||
|
|
||||||
self->st7789->set_clip({x, y, w, h});
|
|
||||||
|
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
|
|
||||||
mp_obj_t GenericST7789_remove_clip(mp_obj_t self_in) {
|
mp_obj_t GenericST7789_remove_clip(mp_obj_t self_in) {
|
||||||
GenericST7789_obj_t *self = MP_OBJ_TO_PTR2(self_in, GenericST7789_obj_t);
|
GenericST7789_obj_t *self = MP_OBJ_TO_PTR2(self_in, GenericST7789_obj_t);
|
||||||
|
|
||||||
self->st7789->remove_clip();
|
self->st7789->remove_clip();
|
||||||
|
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
|
@ -265,6 +237,7 @@ mp_obj_t GenericST7789_remove_clip(mp_obj_t self_in) {
|
||||||
|
|
||||||
mp_obj_t GenericST7789_clear(mp_obj_t self_in) {
|
mp_obj_t GenericST7789_clear(mp_obj_t self_in) {
|
||||||
GenericST7789_obj_t *self = MP_OBJ_TO_PTR2(self_in, GenericST7789_obj_t);
|
GenericST7789_obj_t *self = MP_OBJ_TO_PTR2(self_in, GenericST7789_obj_t);
|
||||||
|
|
||||||
self->st7789->clear();
|
self->st7789->clear();
|
||||||
|
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
|
@ -281,73 +254,43 @@ mp_obj_t GenericST7789_pixel(mp_obj_t self_in, mp_obj_t x, mp_obj_t y) {
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
|
|
||||||
mp_obj_t GenericST7789_pixel_span(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
mp_obj_t GenericST7789_pixel_span(size_t n_args, const mp_obj_t *args) {
|
||||||
enum { ARG_self, ARG_x, ARG_y, ARG_l };
|
enum { ARG_self, ARG_x, ARG_y, ARG_l };
|
||||||
static const mp_arg_t allowed_args[] = {
|
|
||||||
{ MP_QSTR_, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
|
||||||
{ MP_QSTR_x, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_y, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_l, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
};
|
|
||||||
|
|
||||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
GenericST7789_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self], GenericST7789_obj_t);
|
||||||
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
|
||||||
|
|
||||||
GenericST7789_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self].u_obj, GenericST7789_obj_t);
|
self->st7789->pixel_span({
|
||||||
|
mp_obj_get_int(args[ARG_x]),
|
||||||
int x = args[ARG_x].u_int;
|
mp_obj_get_int(args[ARG_y])
|
||||||
int y = args[ARG_y].u_int;
|
}, mp_obj_get_int(args[ARG_l]));
|
||||||
int l = args[ARG_l].u_int;
|
|
||||||
|
|
||||||
self->st7789->pixel_span({x, y}, l);
|
|
||||||
|
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
|
|
||||||
mp_obj_t GenericST7789_rectangle(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
mp_obj_t GenericST7789_rectangle(size_t n_args, const mp_obj_t *args) {
|
||||||
enum { ARG_self, ARG_x, ARG_y, ARG_w, ARG_h };
|
enum { ARG_self, ARG_x, ARG_y, ARG_w, ARG_h };
|
||||||
static const mp_arg_t allowed_args[] = {
|
|
||||||
{ MP_QSTR_, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
|
||||||
{ MP_QSTR_x, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_y, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_w, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_h, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
};
|
|
||||||
|
|
||||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
GenericST7789_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self], GenericST7789_obj_t);
|
||||||
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
|
||||||
|
|
||||||
GenericST7789_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self].u_obj, GenericST7789_obj_t);
|
self->st7789->rectangle({
|
||||||
|
mp_obj_get_int(args[ARG_x]),
|
||||||
int x = args[ARG_x].u_int;
|
mp_obj_get_int(args[ARG_y]),
|
||||||
int y = args[ARG_y].u_int;
|
mp_obj_get_int(args[ARG_w]),
|
||||||
int w = args[ARG_w].u_int;
|
mp_obj_get_int(args[ARG_h])
|
||||||
int h = args[ARG_h].u_int;
|
});
|
||||||
|
|
||||||
self->st7789->rectangle({x, y, w, h});
|
|
||||||
|
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
|
|
||||||
mp_obj_t GenericST7789_circle(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
mp_obj_t GenericST7789_circle(size_t n_args, const mp_obj_t *args) {
|
||||||
enum { ARG_self, ARG_x, ARG_y, ARG_r };
|
enum { ARG_self, ARG_x, ARG_y, ARG_r };
|
||||||
static const mp_arg_t allowed_args[] = {
|
|
||||||
{ MP_QSTR_, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
|
||||||
{ MP_QSTR_x, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_y, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_r, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
};
|
|
||||||
|
|
||||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
GenericST7789_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self], GenericST7789_obj_t);
|
||||||
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
|
||||||
|
|
||||||
GenericST7789_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self].u_obj, GenericST7789_obj_t);
|
self->st7789->circle({
|
||||||
|
mp_obj_get_int(args[ARG_x]),
|
||||||
int x = args[ARG_x].u_int;
|
mp_obj_get_int(args[ARG_y])
|
||||||
int y = args[ARG_y].u_int;
|
}, mp_obj_get_int(args[ARG_r]));
|
||||||
int r = args[ARG_r].u_int;
|
|
||||||
|
|
||||||
self->st7789->circle({x, y}, r);
|
|
||||||
|
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
|
@ -481,56 +424,34 @@ mp_obj_t GenericST7789_polygon(size_t n_args, const mp_obj_t *pos_args, mp_map_t
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
|
|
||||||
mp_obj_t GenericST7789_triangle(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
mp_obj_t GenericST7789_triangle(size_t n_args, const mp_obj_t *args) {
|
||||||
enum { ARG_self, ARG_x1, ARG_y1, ARG_x2, ARG_y2, ARG_x3, ARG_y3 };
|
enum { ARG_self, ARG_x1, ARG_y1, ARG_x2, ARG_y2, ARG_x3, ARG_y3 };
|
||||||
static const mp_arg_t allowed_args[] = {
|
|
||||||
{ MP_QSTR_, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
|
||||||
{ MP_QSTR_x1, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_y1, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_x2, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_y2, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_x3, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_y3, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
};
|
|
||||||
|
|
||||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
GenericST7789_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self], GenericST7789_obj_t);
|
||||||
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
|
||||||
|
|
||||||
GenericST7789_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self].u_obj, GenericST7789_obj_t);
|
self->st7789->triangle(
|
||||||
|
{mp_obj_get_int(args[ARG_x1]),
|
||||||
int x1 = args[ARG_x1].u_int;
|
mp_obj_get_int(args[ARG_y1])},
|
||||||
int y1 = args[ARG_y1].u_int;
|
{mp_obj_get_int(args[ARG_x2]),
|
||||||
int x2 = args[ARG_x2].u_int;
|
mp_obj_get_int(args[ARG_y2])},
|
||||||
int y2 = args[ARG_y2].u_int;
|
{mp_obj_get_int(args[ARG_x3]),
|
||||||
int x3 = args[ARG_x3].u_int;
|
mp_obj_get_int(args[ARG_y3])}
|
||||||
int y3 = args[ARG_y3].u_int;
|
);
|
||||||
|
|
||||||
self->st7789->triangle({x1, y1}, {x2, y2}, {x3, y3});
|
|
||||||
|
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
|
|
||||||
mp_obj_t GenericST7789_line(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
mp_obj_t GenericST7789_line(size_t n_args, const mp_obj_t *args) {
|
||||||
enum { ARG_self, ARG_x1, ARG_y1, ARG_x2, ARG_y2 };
|
enum { ARG_self, ARG_x1, ARG_y1, ARG_x2, ARG_y2 };
|
||||||
static const mp_arg_t allowed_args[] = {
|
|
||||||
{ MP_QSTR_, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
|
||||||
{ MP_QSTR_x1, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_y1, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_x2, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
{ MP_QSTR_y2, MP_ARG_REQUIRED | MP_ARG_INT },
|
|
||||||
};
|
|
||||||
|
|
||||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
GenericST7789_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self], GenericST7789_obj_t);
|
||||||
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
|
||||||
|
|
||||||
GenericST7789_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self].u_obj, GenericST7789_obj_t);
|
self->st7789->line(
|
||||||
|
{mp_obj_get_int(args[ARG_x1]),
|
||||||
int x1 = args[ARG_x1].u_int;
|
mp_obj_get_int(args[ARG_y1])},
|
||||||
int y1 = args[ARG_y1].u_int;
|
{mp_obj_get_int(args[ARG_x2]),
|
||||||
int x2 = args[ARG_x2].u_int;
|
mp_obj_get_int(args[ARG_y2])}
|
||||||
int y2 = args[ARG_y2].u_int;
|
);
|
||||||
|
|
||||||
self->st7789->line({x1, y1}, {x2, y2});
|
|
||||||
|
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,34 +20,32 @@ extern mp_obj_t GenericST7789_module_RGB565(mp_obj_t r, mp_obj_t g, mp_obj_t b);
|
||||||
|
|
||||||
// Class methods
|
// Class methods
|
||||||
extern mp_obj_t GenericST7789_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *all_args);
|
extern mp_obj_t GenericST7789_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *all_args);
|
||||||
extern mp_obj_t GenericST7789SPI_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *all_args);
|
|
||||||
extern mp_obj_t GenericST7789Parallel_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *all_args);
|
|
||||||
|
|
||||||
extern mp_obj_t GenericST7789_update(mp_obj_t self_in);
|
extern mp_obj_t GenericST7789_update(mp_obj_t self_in);
|
||||||
extern mp_obj_t GenericST7789_set_backlight(mp_obj_t self_in, mp_obj_t brightness);
|
extern mp_obj_t GenericST7789_set_backlight(mp_obj_t self_in, mp_obj_t brightness);
|
||||||
|
|
||||||
// Palette management
|
// Palette management
|
||||||
extern mp_obj_t GenericST7789_update_pen(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
extern mp_obj_t GenericST7789_update_pen(size_t n_args, const mp_obj_t *args);
|
||||||
extern mp_obj_t GenericST7789_reset_pen(mp_obj_t self_in, mp_obj_t pen);
|
extern mp_obj_t GenericST7789_reset_pen(mp_obj_t self_in, mp_obj_t pen);
|
||||||
|
|
||||||
// Pen
|
// Pen
|
||||||
extern mp_obj_t GenericST7789_set_pen(mp_obj_t self_in, mp_obj_t pen);
|
extern mp_obj_t GenericST7789_set_pen(mp_obj_t self_in, mp_obj_t pen);
|
||||||
extern mp_obj_t GenericST7789_create_pen(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
extern mp_obj_t GenericST7789_create_pen(size_t n_args, const mp_obj_t *args);
|
||||||
|
|
||||||
// Primitives
|
// Primitives
|
||||||
extern mp_obj_t GenericST7789_set_clip(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
extern mp_obj_t GenericST7789_set_clip(size_t n_args, const mp_obj_t *args);
|
||||||
extern mp_obj_t GenericST7789_remove_clip(mp_obj_t self_in);
|
extern mp_obj_t GenericST7789_remove_clip(mp_obj_t self_in);
|
||||||
extern mp_obj_t GenericST7789_clear(mp_obj_t self_in);
|
extern mp_obj_t GenericST7789_clear(mp_obj_t self_in);
|
||||||
extern mp_obj_t GenericST7789_pixel(mp_obj_t self_in, mp_obj_t x, mp_obj_t y);
|
extern mp_obj_t GenericST7789_pixel(mp_obj_t self_in, mp_obj_t x, mp_obj_t y);
|
||||||
extern mp_obj_t GenericST7789_pixel_span(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
extern mp_obj_t GenericST7789_pixel_span(size_t n_args, const mp_obj_t *args);
|
||||||
extern mp_obj_t GenericST7789_rectangle(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
extern mp_obj_t GenericST7789_rectangle(size_t n_args, const mp_obj_t *args);
|
||||||
extern mp_obj_t GenericST7789_circle(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
extern mp_obj_t GenericST7789_circle(size_t n_args, const mp_obj_t *args);
|
||||||
extern mp_obj_t GenericST7789_character(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
extern mp_obj_t GenericST7789_character(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
||||||
extern mp_obj_t GenericST7789_text(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
extern mp_obj_t GenericST7789_text(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
||||||
extern mp_obj_t GenericST7789_measure_text(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
extern mp_obj_t GenericST7789_measure_text(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
||||||
extern mp_obj_t GenericST7789_polygon(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
extern mp_obj_t GenericST7789_polygon(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
||||||
extern mp_obj_t GenericST7789_triangle(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
extern mp_obj_t GenericST7789_triangle(size_t n_args, const mp_obj_t *args);
|
||||||
extern mp_obj_t GenericST7789_line(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
extern mp_obj_t GenericST7789_line(size_t n_args, const mp_obj_t *args);
|
||||||
|
|
||||||
// Utility
|
// Utility
|
||||||
extern mp_obj_t GenericST7789_get_bounds(mp_obj_t self_in);
|
extern mp_obj_t GenericST7789_get_bounds(mp_obj_t self_in);
|
||||||
|
|
Ładowanie…
Reference in New Issue