14
14
#include "shared-bindings/tilepalettemapper/TilePaletteMapper.h"
15
15
16
16
static mp_obj_t tilepalettemapper_tilepalettemapper_make_new (const mp_obj_type_t * type , size_t n_args , size_t n_kw , const mp_obj_t * all_args ) {
17
- enum { ARG_palette , ARG_width , ARG_height };
18
- static const mp_arg_t allowed_args [] = {
19
- { MP_QSTR_palette , MP_ARG_OBJ | MP_ARG_REQUIRED },
20
- { MP_QSTR_width , MP_ARG_INT | MP_ARG_REQUIRED , {.u_int = 1 } },
21
- { MP_QSTR_height , MP_ARG_INT | MP_ARG_REQUIRED , {.u_int = 1 } },
22
- };
23
- mp_arg_val_t args [MP_ARRAY_SIZE (allowed_args )];
24
- mp_arg_parse_all_kw_array (n_args , n_kw , all_args , MP_ARRAY_SIZE (allowed_args ), allowed_args , args );
25
- mp_obj_t palette = args [ARG_palette ].u_obj ;
26
- if (!mp_obj_is_type (palette , & displayio_palette_type )) {
27
- mp_raise_TypeError_varg (MP_ERROR_TEXT ("unsupported %q type" ), MP_QSTR_pixel_shader );
28
- }
29
- tilepalettemapper_tilepalettemapper_t * self = mp_obj_malloc (tilepalettemapper_tilepalettemapper_t , & tilepalettemapper_tilepalettemapper_type );
30
- common_hal_tilepalettemapper_tilepalettemapper_construct (self , palette , args [ARG_width ].u_int , args [ARG_height ].u_int );
31
-
32
- return MP_OBJ_FROM_PTR (self );
17
+ enum { ARG_palette , ARG_width , ARG_height };
18
+ static const mp_arg_t allowed_args [] = {
19
+ { MP_QSTR_palette , MP_ARG_OBJ | MP_ARG_REQUIRED },
20
+ { MP_QSTR_width , MP_ARG_INT | MP_ARG_REQUIRED , {.u_int = 1 } },
21
+ { MP_QSTR_height , MP_ARG_INT | MP_ARG_REQUIRED , {.u_int = 1 } },
22
+ };
23
+ mp_arg_val_t args [MP_ARRAY_SIZE (allowed_args )];
24
+ mp_arg_parse_all_kw_array (n_args , n_kw , all_args , MP_ARRAY_SIZE (allowed_args ), allowed_args , args );
25
+ mp_obj_t palette = args [ARG_palette ].u_obj ;
26
+ if (!mp_obj_is_type (palette , & displayio_palette_type )) {
27
+ mp_raise_TypeError_varg (MP_ERROR_TEXT ("unsupported %q type" ), MP_QSTR_pixel_shader );
28
+ }
29
+ tilepalettemapper_tilepalettemapper_t * self = mp_obj_malloc (tilepalettemapper_tilepalettemapper_t , & tilepalettemapper_tilepalettemapper_type );
30
+ common_hal_tilepalettemapper_tilepalettemapper_construct (self , palette , args [ARG_width ].u_int , args [ARG_height ].u_int );
31
+
32
+ return MP_OBJ_FROM_PTR (self );
33
33
}
34
34
35
35
//| width: int
36
36
//| """Width of the tile palette mapper in tiles."""
37
37
static mp_obj_t tilepalettemapper_tilepalettemapper_obj_get_width (mp_obj_t self_in ) {
38
- tilepalettemapper_tilepalettemapper_t * self = MP_OBJ_TO_PTR (self_in );
39
- return MP_OBJ_NEW_SMALL_INT (common_hal_tilepalettemapper_tilepalettemapper_get_width (self ));
38
+ tilepalettemapper_tilepalettemapper_t * self = MP_OBJ_TO_PTR (self_in );
39
+ return MP_OBJ_NEW_SMALL_INT (common_hal_tilepalettemapper_tilepalettemapper_get_width (self ));
40
40
}
41
41
MP_DEFINE_CONST_FUN_OBJ_1 (tilepalettemapper_tilepalettemapper_get_width_obj , tilepalettemapper_tilepalettemapper_obj_get_width );
42
42
@@ -46,8 +46,8 @@ MP_PROPERTY_GETTER(tilepalettemapper_tilepalettemapper_width_obj,
46
46
//| height: int
47
47
//| """Height of the tile palette mapper in tiles."""
48
48
static mp_obj_t tilepalettemapper_tilepalettemapper_obj_get_height (mp_obj_t self_in ) {
49
- tilepalettemapper_tilepalettemapper_t * self = MP_OBJ_TO_PTR (self_in );
50
- return MP_OBJ_NEW_SMALL_INT (common_hal_tilepalettemapper_tilepalettemapper_get_height (self ));
49
+ tilepalettemapper_tilepalettemapper_t * self = MP_OBJ_TO_PTR (self_in );
50
+ return MP_OBJ_NEW_SMALL_INT (common_hal_tilepalettemapper_tilepalettemapper_get_height (self ));
51
51
}
52
52
MP_DEFINE_CONST_FUN_OBJ_1 (tilepalettemapper_tilepalettemapper_get_height_obj , tilepalettemapper_tilepalettemapper_obj_get_height );
53
53
@@ -58,8 +58,8 @@ MP_PROPERTY_GETTER(tilepalettemapper_tilepalettemapper_height_obj,
58
58
//| palette: displayio.Palette
59
59
//| """The palette that the mapper uses."""
60
60
static mp_obj_t tilepalettemapper_tilepalettemapper_obj_get_palette (mp_obj_t self_in ) {
61
- tilepalettemapper_tilepalettemapper_t * self = MP_OBJ_TO_PTR (self_in );
62
- return common_hal_tilepalettemapper_tilepalettemapper_get_palette (self );
61
+ tilepalettemapper_tilepalettemapper_t * self = MP_OBJ_TO_PTR (self_in );
62
+ return common_hal_tilepalettemapper_tilepalettemapper_get_palette (self );
63
63
}
64
64
MP_DEFINE_CONST_FUN_OBJ_1 (tilepalettemapper_tilepalettemapper_get_palette_obj , tilepalettemapper_tilepalettemapper_obj_get_palette );
65
65
@@ -91,51 +91,51 @@ MP_PROPERTY_GETTER(tilepalettemapper_tilepalettemapper_palette_obj,
91
91
//|
92
92
//|
93
93
static mp_obj_t tilepalettemapper_subscr (mp_obj_t self_in , mp_obj_t index_obj , mp_obj_t value_obj ) {
94
- tilepalettemapper_tilepalettemapper_t * self = MP_OBJ_TO_PTR (self_in );
95
- if (mp_obj_is_type (index_obj , & mp_type_slice )) {
96
- mp_raise_NotImplementedError (MP_ERROR_TEXT ("Slices not supported" ));
97
- } else {
98
- uint16_t x = 0 ;
99
- uint16_t y = 0 ;
100
- if (mp_obj_is_small_int (index_obj )) {
101
- mp_int_t i = MP_OBJ_SMALL_INT_VALUE (index_obj );
102
- uint16_t width = common_hal_tilepalettemapper_tilepalettemapper_get_width (self );
103
- x = i % width ;
104
- y = i / width ;
94
+ tilepalettemapper_tilepalettemapper_t * self = MP_OBJ_TO_PTR (self_in );
95
+ if (mp_obj_is_type (index_obj , & mp_type_slice )) {
96
+ mp_raise_NotImplementedError (MP_ERROR_TEXT ("Slices not supported" ));
105
97
} else {
106
- mp_obj_t * items ;
107
- mp_obj_get_array_fixed_n (index_obj , 2 , & items );
108
- x = mp_obj_get_int (items [0 ]);
109
- y = mp_obj_get_int (items [1 ]);
110
- }
111
- if (x >= common_hal_tilepalettemapper_tilepalettemapper_get_width (self ) ||
112
- y >= common_hal_tilepalettemapper_tilepalettemapper_get_height (self )) {
113
- mp_raise_IndexError (MP_ERROR_TEXT ("Tile index out of bounds" ));
98
+ uint16_t x = 0 ;
99
+ uint16_t y = 0 ;
100
+ if (mp_obj_is_small_int (index_obj )) {
101
+ mp_int_t i = MP_OBJ_SMALL_INT_VALUE (index_obj );
102
+ uint16_t width = common_hal_tilepalettemapper_tilepalettemapper_get_width (self );
103
+ x = i % width ;
104
+ y = i / width ;
105
+ } else {
106
+ mp_obj_t * items ;
107
+ mp_obj_get_array_fixed_n (index_obj , 2 , & items );
108
+ x = mp_obj_get_int (items [0 ]);
109
+ y = mp_obj_get_int (items [1 ]);
110
+ }
111
+ if (x >= common_hal_tilepalettemapper_tilepalettemapper_get_width (self ) ||
112
+ y >= common_hal_tilepalettemapper_tilepalettemapper_get_height (self )) {
113
+ mp_raise_IndexError (MP_ERROR_TEXT ("Tile index out of bounds" ));
114
114
}
115
115
116
- if (value_obj == MP_OBJ_SENTINEL ) {
117
- // load
118
- return common_hal_tilepalettemapper_tilepalettemapper_get_mapping (self , x , y );
119
- } else if (value_obj == mp_const_none ) {
120
- return MP_OBJ_NULL ; // op not supported
121
- } else {
122
- size_t len = 0 ;
123
- mp_obj_t * items ;
124
- mp_obj_list_get (value_obj , & len , & items );
125
- uint32_t palette_len = common_hal_displayio_palette_get_len (self -> palette );
126
-
127
- mp_arg_validate_int_range (len , 0 , palette_len , MP_QSTR_mapping_length );
128
- common_hal_tilepalettemapper_tilepalettemapper_set_mapping (self , x , y , len , items );
116
+ if (value_obj == MP_OBJ_SENTINEL ) {
117
+ // load
118
+ return common_hal_tilepalettemapper_tilepalettemapper_get_mapping (self , x , y );
119
+ } else if (value_obj == mp_const_none ) {
120
+ return MP_OBJ_NULL ; // op not supported
121
+ } else {
122
+ size_t len = 0 ;
123
+ mp_obj_t * items ;
124
+ mp_obj_list_get (value_obj , & len , & items );
125
+ uint32_t palette_len = common_hal_displayio_palette_get_len (self -> palette );
126
+
127
+ mp_arg_validate_int_range (len , 0 , palette_len , MP_QSTR_mapping_length );
128
+ common_hal_tilepalettemapper_tilepalettemapper_set_mapping (self , x , y , len , items );
129
+ }
129
130
}
130
- }
131
- return mp_const_none ;
131
+ return mp_const_none ;
132
132
}
133
133
134
134
135
135
static const mp_rom_map_elem_t tilepalettemapper_tilepalettemapper_locals_dict_table [] = {
136
- { MP_ROM_QSTR (MP_QSTR_width ), MP_ROM_PTR (& tilepalettemapper_tilepalettemapper_width_obj ) },
137
- { MP_ROM_QSTR (MP_QSTR_height ), MP_ROM_PTR (& tilepalettemapper_tilepalettemapper_height_obj ) },
138
- { MP_ROM_QSTR (MP_QSTR_palette ), MP_ROM_PTR (& tilepalettemapper_tilepalettemapper_palette_obj ) },
136
+ { MP_ROM_QSTR (MP_QSTR_width ), MP_ROM_PTR (& tilepalettemapper_tilepalettemapper_width_obj ) },
137
+ { MP_ROM_QSTR (MP_QSTR_height ), MP_ROM_PTR (& tilepalettemapper_tilepalettemapper_height_obj ) },
138
+ { MP_ROM_QSTR (MP_QSTR_palette ), MP_ROM_PTR (& tilepalettemapper_tilepalettemapper_palette_obj ) },
139
139
};
140
140
static MP_DEFINE_CONST_DICT (tilepalettemapper_tilepalettemapper_locals_dict , tilepalettemapper_tilepalettemapper_locals_dict_table ) ;
141
141
0 commit comments