Skip to content

Commit 88b4e38

Browse files
committed
Moved DemuxKeyMatrix in the keypaddemux module
1 parent d7bc2c2 commit 88b4e38

File tree

11 files changed

+125
-73
lines changed

11 files changed

+125
-73
lines changed

docs/shared_bindings_matrix.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878
"keypad.KeyMatrix": "CIRCUITPY_KEYPAD_KEYMATRIX",
7979
"keypad.Keys": "CIRCUITPY_KEYPAD_KEYS",
8080
"keypad.ShiftRegisterKeys": "CIRCUITPY_KEYPAD_SHIFTREGISTERKEYS",
81-
"keypad.DemuxKeyMatrix": "CIRCUITPY_KEYPAD_DEMUXKEYMATRIX",
81+
"keypaddemux.DemuxKeyMatrix": "CIRCUITPY_KEYPAD_DEMUX",
8282
"os.getenv": "CIRCUITPY_OS_GETENV",
8383
"select": "MICROPY_PY_SELECT_SELECT",
8484
"sys": "CIRCUITPY_SYS",

ports/atmel-samd/mpconfigport.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ CIRCUITPY_ROTARYIO_SOFTENCODER = 1
1111
CIRCUITPY_OPTIMIZE_PROPERTY_FLASH_SIZE ?= 1
1212
CIRCUITPY_LTO = 1
1313

14-
CIRCUITPY_KEYPAD_DEMUXKEYMATRIX ?= 0
14+
CIRCUITPY_KEYPAD_DEMUX ?= 0
1515

1616
######################################################################
1717
# Put samd21-only choices here.

py/circuitpy_defns.mk

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,9 @@ endif
252252
ifeq ($(CIRCUITPY_KEYPAD),1)
253253
SRC_PATTERNS += keypad/%
254254
endif
255+
ifeq ($(CIRCUITPY_KEYPAD_DEMUX),1)
256+
SRC_PATTERNS += keypaddemux/%
257+
endif
255258
ifeq ($(CIRCUITPY_LOCALE),1)
256259
SRC_PATTERNS += locale/%
257260
endif
@@ -739,9 +742,10 @@ SRC_SHARED_MODULE_ALL += \
739742
ssl/SSLSocket.c
740743
endif
741744

742-
ifeq ($(CIRCUITPY_KEYPAD_DEMUXKEYMATRIX),1)
745+
ifeq ($(CIRCUITPY_KEYPAD_DEMUX),1)
743746
SRC_SHARED_MODULE_ALL += \
744-
keypad/DemuxKeyMatrix.c
747+
keypaddemux/__init__.c \
748+
keypaddemux/DemuxKeyMatrix.c
745749
endif
746750

747751
# If supporting _bleio via HCI, make devices/ble_hci/common-hal/_bleio be includable,

py/circuitpy_mpconfig.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -345,8 +345,8 @@ CFLAGS += -DCIRCUITPY_KEYPAD_KEYMATRIX=$(CIRCUITPY_KEYPAD_KEYMATRIX)
345345
CIRCUITPY_KEYPAD_SHIFTREGISTERKEYS ?= $(CIRCUITPY_KEYPAD)
346346
CFLAGS += -DCIRCUITPY_KEYPAD_SHIFTREGISTERKEYS=$(CIRCUITPY_KEYPAD_SHIFTREGISTERKEYS)
347347

348-
CIRCUITPY_KEYPAD_DEMUXKEYMATRIX ?= $(CIRCUITPY_KEYPAD)
349-
CFLAGS += -DCIRCUITPY_KEYPAD_DEMUXKEYMATRIX=$(CIRCUITPY_KEYPAD_DEMUXKEYMATRIX)
348+
CIRCUITPY_KEYPAD_DEMUX ?= $(CIRCUITPY_KEYPAD)
349+
CFLAGS += -DCIRCUITPY_KEYPAD_DEMUX=$(CIRCUITPY_KEYPAD_DEMUX)
350350

351351
CIRCUITPY_LOCALE ?= $(CIRCUITPY_FULL_BUILD)
352352
CFLAGS += -DCIRCUITPY_LOCALE=$(CIRCUITPY_LOCALE)

shared-bindings/keypad/__init__.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
#include "shared-bindings/keypad/KeyMatrix.h"
3333
#include "shared-bindings/keypad/Keys.h"
3434
#include "shared-bindings/keypad/ShiftRegisterKeys.h"
35-
#include "shared-bindings/keypad/DemuxKeyMatrix.h"
3635
#include "shared-bindings/util.h"
3736

3837
STATIC void check_for_deinit(keypad_keymatrix_obj_t *self) {
@@ -101,9 +100,6 @@ STATIC mp_rom_map_elem_t keypad_module_globals_table[] = {
101100
{ MP_ROM_QSTR(MP_QSTR_KeyMatrix), MP_OBJ_FROM_PTR(&keypad_keymatrix_type) },
102101
{ MP_ROM_QSTR(MP_QSTR_Keys), MP_OBJ_FROM_PTR(&keypad_keys_type) },
103102
{ MP_ROM_QSTR(MP_QSTR_ShiftRegisterKeys), MP_OBJ_FROM_PTR(&keypad_shiftregisterkeys_type) },
104-
#if CIRCUITPY_KEYPAD_DEMUXKEYMATRIX
105-
{ MP_ROM_QSTR(MP_QSTR_DemuxKeyMatrix), MP_OBJ_FROM_PTR(&keypad_demuxkeymatrix_type) },
106-
#endif
107103
};
108104

109105
STATIC MP_DEFINE_CONST_DICT(keypad_module_globals, keypad_module_globals_table);

shared-bindings/keypad/DemuxKeyMatrix.c renamed to shared-bindings/keypaddemux/DemuxKeyMatrix.c

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
#include "py/runtime.h"
3131
#include "shared-bindings/keypad/__init__.h"
3232
#include "shared-bindings/keypad/Event.h"
33-
#include "shared-bindings/keypad/DemuxKeyMatrix.h"
33+
#include "shared-bindings/keypaddemux/DemuxKeyMatrix.h"
3434
#include "shared-bindings/microcontroller/Pin.h"
3535
#include "shared-bindings/util.h"
3636

@@ -43,7 +43,7 @@
4343
//| <details>
4444
//| <summary>Available on these boards</summary>
4545
//| <ul>
46-
//| {% for board in support_matrix_reverse["keypad.DemuxKeyMatrix"] %}
46+
//| {% for board in support_matrix_reverse["keypaddemux.DemuxKeyMatrix"] %}
4747
//| <li> {{ board }}
4848
//| {% endfor %}
4949
//| </ul>
@@ -80,8 +80,8 @@
8080
//| """
8181
//| ...
8282

83-
STATIC mp_obj_t keypad_demuxkeymatrix_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *all_args) {
84-
keypad_demuxkeymatrix_obj_t *self = mp_obj_malloc(keypad_demuxkeymatrix_obj_t, &keypad_demuxkeymatrix_type);
83+
STATIC mp_obj_t keypad_demux_demuxkeymatrix_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *all_args) {
84+
keypad_demux_demuxkeymatrix_obj_t *self = mp_obj_malloc(keypad_demux_demuxkeymatrix_obj_t, &keypad_demux_demuxkeymatrix_type);
8585
enum { ARG_row_addr_pins, ARG_column_pins, ARG_interval, ARG_max_events };
8686
static const mp_arg_t allowed_args[] = {
8787
{ MP_QSTR_row_addr_pins, MP_ARG_REQUIRED | MP_ARG_OBJ },
@@ -120,19 +120,19 @@ STATIC mp_obj_t keypad_demuxkeymatrix_make_new(const mp_obj_type_t *type, size_t
120120
column_pins_array[column] = pin;
121121
}
122122

123-
common_hal_keypad_demuxkeymatrix_construct(self, num_row_addr_pins, row_addr_pins_array, num_column_pins, column_pins_array, interval, max_events);
123+
common_hal_keypad_demux_demuxkeymatrix_construct(self, num_row_addr_pins, row_addr_pins_array, num_column_pins, column_pins_array, interval, max_events);
124124
return MP_OBJ_FROM_PTR(self);
125125
}
126126

127127
//| def deinit(self) -> None:
128128
//| """Stop scanning and release the pins."""
129129
//| ...
130-
STATIC mp_obj_t keypad_demuxkeymatrix_deinit(mp_obj_t self_in) {
131-
keypad_demuxkeymatrix_obj_t *self = MP_OBJ_TO_PTR(self_in);
132-
common_hal_keypad_demuxkeymatrix_deinit(self);
130+
STATIC mp_obj_t keypad_demux_demuxkeymatrix_deinit(mp_obj_t self_in) {
131+
keypad_demux_demuxkeymatrix_obj_t *self = MP_OBJ_TO_PTR(self_in);
132+
common_hal_keypad_demux_demuxkeymatrix_deinit(self);
133133
return MP_ROM_NONE;
134134
}
135-
MP_DEFINE_CONST_FUN_OBJ_1(keypad_demuxkeymatrix_deinit_obj, keypad_demuxkeymatrix_deinit);
135+
MP_DEFINE_CONST_FUN_OBJ_1(keypad_demux_demuxkeymatrix_deinit_obj, keypad_demux_demuxkeymatrix_deinit);
136136

137137
//| def __enter__(self) -> KeyMatrix:
138138
//| """No-op used by Context Managers."""
@@ -143,14 +143,14 @@ MP_DEFINE_CONST_FUN_OBJ_1(keypad_demuxkeymatrix_deinit_obj, keypad_demuxkeymatri
143143
//| """Automatically deinitializes when exiting a context. See
144144
//| :ref:`lifetime-and-contextmanagers` for more info."""
145145
//| ...
146-
STATIC mp_obj_t keypad_demuxkeymatrix___exit__(size_t n_args, const mp_obj_t *args) {
146+
STATIC mp_obj_t keypad_demux_demuxkeymatrix___exit__(size_t n_args, const mp_obj_t *args) {
147147
(void)n_args;
148-
common_hal_keypad_demuxkeymatrix_deinit(args[0]);
148+
common_hal_keypad_demux_demuxkeymatrix_deinit(args[0]);
149149
return MP_ROM_NONE;
150150
}
151-
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(keypad_demuxkeymatrix___exit___obj, 4, 4, keypad_demuxkeymatrix___exit__);
151+
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(keypad_demux_demuxkeymatrix___exit___obj, 4, 4, keypad_demux_demuxkeymatrix___exit__);
152152

153-
STATIC void check_for_deinit(keypad_demuxkeymatrix_obj_t *self) {
153+
STATIC void check_for_deinit(keypad_demux_demuxkeymatrix_obj_t *self) {
154154
if (common_hal_keypad_deinited(self)) {
155155
raise_deinited_error();
156156
}
@@ -176,8 +176,8 @@ STATIC void check_for_deinit(keypad_demuxkeymatrix_obj_t *self) {
176176
//| :rtype: Tuple[int]
177177
//| """
178178
//| ...
179-
STATIC mp_obj_t keypad_demuxkeymatrix_key_number_to_row_column(mp_obj_t self_in, mp_obj_t key_number_in) {
180-
keypad_demuxkeymatrix_obj_t *self = MP_OBJ_TO_PTR(self_in);
179+
STATIC mp_obj_t keypad_demux_demuxkeymatrix_key_number_to_row_column(mp_obj_t self_in, mp_obj_t key_number_in) {
180+
keypad_demux_demuxkeymatrix_obj_t *self = MP_OBJ_TO_PTR(self_in);
181181
check_for_deinit(self);
182182

183183
const mp_uint_t key_number = (mp_uint_t)mp_arg_validate_int_range(
@@ -187,59 +187,59 @@ STATIC mp_obj_t keypad_demuxkeymatrix_key_number_to_row_column(mp_obj_t self_in,
187187

188188
mp_uint_t row;
189189
mp_uint_t column;
190-
common_hal_keypad_demuxkeymatrix_key_number_to_row_column(self, key_number, &row, &column);
190+
common_hal_keypad_demux_demuxkeymatrix_key_number_to_row_column(self, key_number, &row, &column);
191191

192192
mp_obj_t row_column[2];
193193
row_column[0] = MP_OBJ_NEW_SMALL_INT(row);
194194
row_column[1] = MP_OBJ_NEW_SMALL_INT(column);
195195

196196
return mp_obj_new_tuple(2, row_column);
197197
}
198-
MP_DEFINE_CONST_FUN_OBJ_2(keypad_demuxkeymatrix_key_number_to_row_column_obj, keypad_demuxkeymatrix_key_number_to_row_column);
198+
MP_DEFINE_CONST_FUN_OBJ_2(keypad_demux_demuxkeymatrix_key_number_to_row_column_obj, keypad_demux_demuxkeymatrix_key_number_to_row_column);
199199

200200
//| def row_column_to_key_number(self, row: int, column: int) -> int:
201201
//| """Return the key number for a given row and column.
202202
//| The key number is ``row * len(column_pins) + column``.
203203
//| """
204204
//| ...
205-
STATIC mp_obj_t keypad_demuxkeymatrix_row_column_to_key_number(mp_obj_t self_in, mp_obj_t row_in, mp_obj_t column_in) {
206-
keypad_demuxkeymatrix_obj_t *self = MP_OBJ_TO_PTR(self_in);
205+
STATIC mp_obj_t keypad_demux_demuxkeymatrix_row_column_to_key_number(mp_obj_t self_in, mp_obj_t row_in, mp_obj_t column_in) {
206+
keypad_demux_demuxkeymatrix_obj_t *self = MP_OBJ_TO_PTR(self_in);
207207
check_for_deinit(self);
208208

209209
const mp_uint_t row = (mp_uint_t)mp_arg_validate_int_range(
210-
mp_obj_get_int(row_in), 0, (mp_int_t)common_hal_keypad_demuxkeymatrix_get_row_count(self), MP_QSTR_row);
210+
mp_obj_get_int(row_in), 0, (mp_int_t)common_hal_keypad_demux_demuxkeymatrix_get_row_count(self), MP_QSTR_row);
211211

212212
const mp_int_t column = (mp_uint_t)mp_arg_validate_int_range(
213-
mp_obj_get_int(column_in), 0, (mp_int_t)common_hal_keypad_demuxkeymatrix_get_column_count(self), MP_QSTR_column);
213+
mp_obj_get_int(column_in), 0, (mp_int_t)common_hal_keypad_demux_demuxkeymatrix_get_column_count(self), MP_QSTR_column);
214214

215215
return MP_OBJ_NEW_SMALL_INT(
216-
(mp_int_t)common_hal_keypad_demuxkeymatrix_row_column_to_key_number(self, row, column));
216+
(mp_int_t)common_hal_keypad_demux_demuxkeymatrix_row_column_to_key_number(self, row, column));
217217
}
218-
MP_DEFINE_CONST_FUN_OBJ_3(keypad_demuxkeymatrix_row_column_to_key_number_obj, keypad_demuxkeymatrix_row_column_to_key_number);
218+
MP_DEFINE_CONST_FUN_OBJ_3(keypad_demux_demuxkeymatrix_row_column_to_key_number_obj, keypad_demux_demuxkeymatrix_row_column_to_key_number);
219219

220220
//| events: EventQueue
221221
//| """The `EventQueue` associated with this `Keys` object. (read-only)
222222
//| """
223223
//|
224224

225-
STATIC const mp_rom_map_elem_t keypad_demuxkeymatrix_locals_dict_table[] = {
226-
{ MP_ROM_QSTR(MP_QSTR_deinit), MP_ROM_PTR(&keypad_demuxkeymatrix_deinit_obj) },
225+
STATIC const mp_rom_map_elem_t keypad_demux_demuxkeymatrix_locals_dict_table[] = {
226+
{ MP_ROM_QSTR(MP_QSTR_deinit), MP_ROM_PTR(&keypad_demux_demuxkeymatrix_deinit_obj) },
227227
{ MP_ROM_QSTR(MP_QSTR___enter__), MP_ROM_PTR(&default___enter___obj) },
228-
{ MP_ROM_QSTR(MP_QSTR___exit__), MP_ROM_PTR(&keypad_demuxkeymatrix___exit___obj) },
228+
{ MP_ROM_QSTR(MP_QSTR___exit__), MP_ROM_PTR(&keypad_demux_demuxkeymatrix___exit___obj) },
229229

230230
{ MP_ROM_QSTR(MP_QSTR_events), MP_ROM_PTR(&keypad_generic_events_obj) },
231231
{ MP_ROM_QSTR(MP_QSTR_key_count), MP_ROM_PTR(&keypad_generic_key_count_obj) },
232232
{ MP_ROM_QSTR(MP_QSTR_reset), MP_ROM_PTR(&keypad_generic_reset_obj) },
233-
{ MP_ROM_QSTR(MP_QSTR_key_number_to_row_column), MP_ROM_PTR(&keypad_demuxkeymatrix_key_number_to_row_column_obj) },
234-
{ MP_ROM_QSTR(MP_QSTR_row_column_to_key_number), MP_ROM_PTR(&keypad_demuxkeymatrix_row_column_to_key_number_obj) },
233+
{ MP_ROM_QSTR(MP_QSTR_key_number_to_row_column), MP_ROM_PTR(&keypad_demux_demuxkeymatrix_key_number_to_row_column_obj) },
234+
{ MP_ROM_QSTR(MP_QSTR_row_column_to_key_number), MP_ROM_PTR(&keypad_demux_demuxkeymatrix_row_column_to_key_number_obj) },
235235
};
236236

237-
STATIC MP_DEFINE_CONST_DICT(keypad_demuxkeymatrix_locals_dict, keypad_demuxkeymatrix_locals_dict_table);
237+
STATIC MP_DEFINE_CONST_DICT(keypad_demux_demuxkeymatrix_locals_dict, keypad_demux_demuxkeymatrix_locals_dict_table);
238238

239239
MP_DEFINE_CONST_OBJ_TYPE(
240-
keypad_demuxkeymatrix_type,
241-
MP_QSTR_KeyMatrix,
240+
keypad_demux_demuxkeymatrix_type,
241+
MP_QSTR_DemuxKeyMatrix,
242242
MP_TYPE_FLAG_HAS_SPECIAL_ACCESSORS,
243-
make_new, keypad_demuxkeymatrix_make_new,
244-
locals_dict, &keypad_demuxkeymatrix_locals_dict
243+
make_new, keypad_demux_demuxkeymatrix_make_new,
244+
locals_dict, &keypad_demux_demuxkeymatrix_locals_dict
245245
);

shared-bindings/keypad/DemuxKeyMatrix.h renamed to shared-bindings/keypaddemux/DemuxKeyMatrix.h

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,22 @@
2424
* THE SOFTWARE.
2525
*/
2626

27-
#ifndef MICROPY_INCLUDED_SHARED_BINDINGS_KEYPAD_DEMUXKEYMATRIX_H
28-
#define MICROPY_INCLUDED_SHARED_BINDINGS_KEYPAD_DEMUXKEYMATRIX_H
27+
#ifndef MICROPY_INCLUDED_SHARED_BINDINGS_KEYPAD_DEMUX_DEMUXKEYMATRIX_H
28+
#define MICROPY_INCLUDED_SHARED_BINDINGS_KEYPAD_DEMUX_DEMUXKEYMATRIX_H
2929

3030
#include "py/objlist.h"
31-
#include "shared-module/keypad/DemuxKeyMatrix.h"
31+
#include "shared-module/keypaddemux/DemuxKeyMatrix.h"
3232

33-
extern const mp_obj_type_t keypad_demuxkeymatrix_type;
33+
extern const mp_obj_type_t keypad_demux_demuxkeymatrix_type;
3434

35-
void common_hal_keypad_demuxkeymatrix_construct(keypad_demuxkeymatrix_obj_t *self, mp_uint_t num_row_addr_pins, const mcu_pin_obj_t *row_addr_pins[], mp_uint_t num_column_pins, const mcu_pin_obj_t *column_pins[], mp_float_t interval, size_t max_events);
35+
void common_hal_keypad_demux_demuxkeymatrix_construct(keypad_demux_demuxkeymatrix_obj_t *self, mp_uint_t num_row_addr_pins, const mcu_pin_obj_t *row_addr_pins[], mp_uint_t num_column_pins, const mcu_pin_obj_t *column_pins[], mp_float_t interval, size_t max_events);
3636

37-
void common_hal_keypad_demuxkeymatrix_deinit(keypad_demuxkeymatrix_obj_t *self);
37+
void common_hal_keypad_demux_demuxkeymatrix_deinit(keypad_demux_demuxkeymatrix_obj_t *self);
3838

39-
void common_hal_keypad_demuxkeymatrix_key_number_to_row_column(keypad_demuxkeymatrix_obj_t *self, mp_uint_t key_number, mp_uint_t *row, mp_uint_t *column);
40-
mp_uint_t common_hal_keypad_demuxkeymatrix_row_column_to_key_number(keypad_demuxkeymatrix_obj_t *self, mp_uint_t row, mp_uint_t column);
39+
void common_hal_keypad_demux_demuxkeymatrix_key_number_to_row_column(keypad_demux_demuxkeymatrix_obj_t *self, mp_uint_t key_number, mp_uint_t *row, mp_uint_t *column);
40+
mp_uint_t common_hal_keypad_demux_demuxkeymatrix_row_column_to_key_number(keypad_demux_demuxkeymatrix_obj_t *self, mp_uint_t row, mp_uint_t column);
4141

42-
size_t common_hal_keypad_demuxkeymatrix_get_column_count(keypad_demuxkeymatrix_obj_t *self);
43-
size_t common_hal_keypad_demuxkeymatrix_get_row_count(keypad_demuxkeymatrix_obj_t *self);
42+
size_t common_hal_keypad_demux_demuxkeymatrix_get_column_count(keypad_demux_demuxkeymatrix_obj_t *self);
43+
size_t common_hal_keypad_demux_demuxkeymatrix_get_row_count(keypad_demux_demuxkeymatrix_obj_t *self);
4444

45-
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_KEYPAD_DEMUXKEYMATRIX_H
45+
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_KEYPAD_DEMUX_DEMUXKEYMATRIX_H
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*
2+
* This file is part of the MicroPython project, http://micropython.org/
3+
*
4+
* The MIT License (MIT)
5+
*
6+
* Copyright (c) 2024 CDarius
7+
*
8+
* Permission is hereby granted, free of charge, to any person obtaining a copy
9+
* of this software and associated documentation files (the "Software"), to deal
10+
* in the Software without restriction, including without limitation the rights
11+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12+
* copies of the Software, and to permit persons to whom the Software is
13+
* furnished to do so, subject to the following conditions:
14+
*
15+
* The above copyright notice and this permission notice shall be included in
16+
* all copies or substantial portions of the Software.
17+
*
18+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24+
* THE SOFTWARE.
25+
*/
26+
27+
#include "py/obj.h"
28+
29+
#include "shared-bindings/keypaddemux/DemuxKeyMatrix.h"
30+
#include "shared-bindings/util.h"
31+
32+
//| """Support for scanning key matrices that use a demultiplexer
33+
//|
34+
//| The `keypaddemux` module provides native support to scan sets of keys or buttons,
35+
//| connected in a row-and-column matrix.
36+
//|
37+
//| .. jinja
38+
//| """
39+
40+
STATIC mp_rom_map_elem_t keypad_demux_module_globals_table[] = {
41+
{ MP_ROM_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_keypaddemux) },
42+
{ MP_ROM_QSTR(MP_QSTR_DemuxKeyMatrix), MP_OBJ_FROM_PTR(&keypad_demux_demuxkeymatrix_type) },
43+
};
44+
45+
STATIC MP_DEFINE_CONST_DICT(keypad_demux_module_globals, keypad_demux_module_globals_table);
46+
47+
const mp_obj_module_t keypad_demux_module = {
48+
.base = { &mp_type_module },
49+
.globals = (mp_obj_dict_t *)&keypad_demux_module_globals,
50+
};
51+
52+
MP_REGISTER_MODULE(MP_QSTR_keypaddemux, keypad_demux_module);

0 commit comments

Comments
 (0)