Skip to content

Commit 78ccac9

Browse files
committed
Add .busy property to EPaperDisplay
1 parent 8d4296f commit 78ccac9

File tree

3 files changed

+24
-0
lines changed

3 files changed

+24
-0
lines changed

shared-bindings/displayio/EPaperDisplay.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,23 @@ const mp_obj_property_t displayio_epaperdisplay_time_to_refresh_obj = {
245245
(mp_obj_t)&mp_const_none_obj},
246246
};
247247

248+
//| busy: bool
249+
//| """True when the display is refreshing. This uses the ``busy_pin`` when available or the
250+
//| ``refresh_time`` otherwise."""
251+
//|
252+
STATIC mp_obj_t displayio_epaperdisplay_obj_get_busy(mp_obj_t self_in) {
253+
displayio_epaperdisplay_obj_t *self = native_display(self_in);
254+
return mp_obj_new_bool(common_hal_displayio_epaperdisplay_get_busy(self));
255+
}
256+
MP_DEFINE_CONST_FUN_OBJ_1(displayio_epaperdisplay_get_busy_obj, displayio_epaperdisplay_obj_get_busy);
257+
258+
const mp_obj_property_t displayio_epaperdisplay_busy_obj = {
259+
.base.type = &mp_type_property,
260+
.proxy = {(mp_obj_t)&displayio_epaperdisplay_get_busy_obj,
261+
(mp_obj_t)&mp_const_none_obj,
262+
(mp_obj_t)&mp_const_none_obj},
263+
};
264+
248265
//| width: int
249266
//| """Gets the width of the display in pixels"""
250267
//|
@@ -301,6 +318,7 @@ STATIC const mp_rom_map_elem_t displayio_epaperdisplay_locals_dict_table[] = {
301318
{ MP_ROM_QSTR(MP_QSTR_width), MP_ROM_PTR(&displayio_epaperdisplay_width_obj) },
302319
{ MP_ROM_QSTR(MP_QSTR_height), MP_ROM_PTR(&displayio_epaperdisplay_height_obj) },
303320
{ MP_ROM_QSTR(MP_QSTR_bus), MP_ROM_PTR(&displayio_epaperdisplay_bus_obj) },
321+
{ MP_ROM_QSTR(MP_QSTR_busy), MP_ROM_PTR(&displayio_epaperdisplay_busy_obj) },
304322
{ MP_ROM_QSTR(MP_QSTR_time_to_refresh), MP_ROM_PTR(&displayio_epaperdisplay_time_to_refresh_obj) },
305323
};
306324
STATIC MP_DEFINE_CONST_DICT(displayio_epaperdisplay_locals_dict, displayio_epaperdisplay_locals_dict_table);

shared-bindings/displayio/EPaperDisplay.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ bool common_hal_displayio_epaperdisplay_show(displayio_epaperdisplay_obj_t* self
5252

5353
// Returns time in milliseconds.
5454
uint32_t common_hal_displayio_epaperdisplay_get_time_to_refresh(displayio_epaperdisplay_obj_t* self);
55+
bool common_hal_displayio_epaperdisplay_get_busy(displayio_epaperdisplay_obj_t* self);
5556

5657
uint16_t common_hal_displayio_epaperdisplay_get_width(displayio_epaperdisplay_obj_t* self);
5758
uint16_t common_hal_displayio_epaperdisplay_get_height(displayio_epaperdisplay_obj_t* self);

shared-module/displayio/EPaperDisplay.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,11 @@ void displayio_epaperdisplay_background(displayio_epaperdisplay_obj_t* self) {
360360
}
361361
}
362362

363+
bool common_hal_displayio_epaperdisplay_get_busy(displayio_epaperdisplay_obj_t* self) {
364+
displayio_epaperdisplay_background(self);
365+
return self->refreshing;
366+
}
367+
363368
void release_epaperdisplay(displayio_epaperdisplay_obj_t* self) {
364369
if (self->refreshing) {
365370
wait_for_busy(self);

0 commit comments

Comments
 (0)