@@ -139,6 +139,21 @@ STATIC void check_for_deinit(keypad_shiftregisterkeys_obj_t *self) {
139139 }
140140}
141141
142+ //| def reset(self) -> None:
143+ //| """Reset the internal state of the scanner to assume that all keys are now released.
144+ //| Any key that is already pressed at the time of this call will therefore immediately cause
145+ //| a new key-pressed event to occur.
146+ //| """
147+ //| ...
148+ //|
149+ STATIC mp_obj_t keypad_shiftregisterkeys_reset (mp_obj_t self_in ) {
150+ keypad_shiftregisterkeys_obj_t * self = MP_OBJ_TO_PTR (self_in );
151+
152+ common_hal_keypad_shiftregisterkeys_reset (self );
153+ return MP_ROM_NONE ;
154+ }
155+ MP_DEFINE_CONST_FUN_OBJ_1 (keypad_shiftregisterkeys_reset_obj , keypad_shiftregisterkeys_reset );
156+
142157//| key_count: int
143158//| """The number of keys that are being scanned. (read-only)
144159//| """
@@ -223,9 +238,10 @@ STATIC const mp_rom_map_elem_t keypad_shiftregisterkeys_locals_dict_table[] = {
223238 { MP_ROM_QSTR (MP_QSTR___exit__ ), MP_ROM_PTR (& keypad_shiftregisterkeys___exit___obj ) },
224239
225240 { MP_ROM_QSTR (MP_QSTR_events ), MP_ROM_PTR (& keypad_shiftregisterkeys_events_obj ) },
226- { MP_ROM_QSTR (MP_QSTR_key_count ), MP_ROM_PTR (& keypad_shiftregisterkeys_key_count_obj ) },
227- { MP_ROM_QSTR (MP_QSTR_pressed ), MP_ROM_PTR (& keypad_shiftregisterkeys_pressed_obj ) },
228241 { MP_ROM_QSTR (MP_QSTR_get_states_into ), MP_ROM_PTR (& keypad_shiftregisterkeys_get_states_into_obj ) },
242+ { MP_ROM_QSTR (MP_QSTR_key_count ), MP_ROM_PTR (& keypad_shiftregisterkeys_key_count_obj ) },
243+ { MP_ROM_QSTR (MP_QSTR_pressed ), MP_ROM_PTR (& keypad_shiftregisterkeys_pressed_obj ) },
244+ { MP_ROM_QSTR (MP_QSTR_reset ), MP_ROM_PTR (& keypad_shiftregisterkeys_reset_obj ) },
229245};
230246
231247STATIC MP_DEFINE_CONST_DICT (keypad_shiftregisterkeys_locals_dict , keypad_shiftregisterkeys_locals_dict_table );
0 commit comments