Skip to content

Commit 1f9cb44

Browse files
committed
Expose rotation with a property
1 parent 741cd9c commit 1f9cb44

4 files changed

Lines changed: 25 additions & 1 deletion

File tree

shared-bindings/displayio/Display.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,23 @@ const mp_obj_property_t displayio_display_height_obj = {
329329
(mp_obj_t)&mp_const_none_obj},
330330
};
331331

332+
//| .. attribute:: rotation
333+
//|
334+
//| The rotation of the display as an int in degrees.
335+
//|
336+
STATIC mp_obj_t displayio_display_obj_get_rotation(mp_obj_t self_in) {
337+
displayio_display_obj_t *self = native_display(self_in);
338+
return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_display_get_rotation(self));
339+
}
340+
MP_DEFINE_CONST_FUN_OBJ_1(displayio_display_get_rotation_obj, displayio_display_obj_get_rotation);
341+
342+
const mp_obj_property_t displayio_display_rotation_obj = {
343+
.base.type = &mp_type_property,
344+
.proxy = {(mp_obj_t)&displayio_display_get_rotation_obj,
345+
(mp_obj_t)&mp_const_none_obj,
346+
(mp_obj_t)&mp_const_none_obj},
347+
};
348+
332349
//| .. attribute:: bus
333350
//|
334351
//| The bus being used by the display
@@ -479,6 +496,7 @@ STATIC const mp_rom_map_elem_t displayio_display_locals_dict_table[] = {
479496

480497
{ MP_ROM_QSTR(MP_QSTR_width), MP_ROM_PTR(&displayio_display_width_obj) },
481498
{ MP_ROM_QSTR(MP_QSTR_height), MP_ROM_PTR(&displayio_display_height_obj) },
499+
{ MP_ROM_QSTR(MP_QSTR_rotation), MP_ROM_PTR(&displayio_display_rotation_obj) },
482500
{ MP_ROM_QSTR(MP_QSTR_bus), MP_ROM_PTR(&displayio_display_bus_obj) },
483501
// { MP_ROM_QSTR(MP_QSTR_screenshot), MP_ROM_PTR(&displayio_display_screenshot_obj) },
484502
};

shared-bindings/displayio/Display.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ void common_hal_displayio_display_set_auto_brightness(displayio_display_obj_t* s
6868

6969
uint16_t common_hal_displayio_display_get_width(displayio_display_obj_t* self);
7070
uint16_t common_hal_displayio_display_get_height(displayio_display_obj_t* self);
71+
uint16_t common_hal_displayio_display_get_rotation(displayio_display_obj_t* self);
7172

7273
mp_float_t common_hal_displayio_display_get_brightness(displayio_display_obj_t* self);
7374
bool common_hal_displayio_display_set_brightness(displayio_display_obj_t* self, mp_float_t brightness);

shared-module/displayio/Display.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ void common_hal_displayio_display_construct(displayio_display_obj_t* self,
119119

120120
self->width = width;
121121
self->height = height;
122-
rotation = rotation % 360;
122+
self->rotation = rotation % 360;
123123
self->transform.x = 0;
124124
self->transform.y = 0;
125125
self->transform.scale = 1;
@@ -242,6 +242,10 @@ uint16_t common_hal_displayio_display_get_height(displayio_display_obj_t* self){
242242
return self->height;
243243
}
244244

245+
uint16_t common_hal_displayio_display_get_rotation(displayio_display_obj_t* self){
246+
return self->rotation;
247+
}
248+
245249
void common_hal_displayio_display_set_auto_brightness(displayio_display_obj_t* self, bool auto_brightness) {
246250
self->auto_brightness = auto_brightness;
247251
}

shared-module/displayio/Display.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ typedef struct {
5555
mp_float_t current_brightness;
5656
uint16_t width;
5757
uint16_t height;
58+
uint16_t rotation;
5859
_displayio_colorspace_t colorspace;
5960
int16_t colstart;
6061
int16_t rowstart;

0 commit comments

Comments
 (0)