8787//| with audiobusio.PDMIn(board.MICROPHONE_CLOCK, board.MICROPHONE_DATA, sample_rate=16000, bit_depth=16) as mic:
8888//| mic.record(b, len(b))
8989//|
90- STATIC mp_obj_t audiobusio_pdmin_make_new (const mp_obj_type_t * type , size_t n_args , size_t n_kw , const mp_obj_t * pos_args ) {
91- enum { ARG_sample_rate , ARG_bit_depth , ARG_mono , ARG_oversample , ARG_startup_delay };
92- mp_map_t kw_args ;
93- mp_map_init_fixed_table (& kw_args , n_kw , pos_args + n_args );
90+ STATIC mp_obj_t audiobusio_pdmin_make_new (const mp_obj_type_t * type , size_t n_args , const mp_obj_t * pos_args , mp_map_t * kw_args ) {
91+ enum { ARG_clock_pin , ARG_data_pin , ARG_sample_rate , ARG_bit_depth , ARG_mono , ARG_oversample , ARG_startup_delay };
9492 static const mp_arg_t allowed_args [] = {
95- { MP_QSTR_sample_rate , MP_ARG_KW_ONLY | MP_ARG_INT , {.u_int = 16000 } },
93+ { MP_QSTR_clock_pin , MP_ARG_REQUIRED | MP_ARG_OBJ },
94+ { MP_QSTR_data_pin , MP_ARG_REQUIRED | MP_ARG_OBJ },
95+ { MP_QSTR_sample_rate , MP_ARG_KW_ONLY | MP_ARG_INT , {.u_int = 16000 } },
9696 { MP_QSTR_bit_depth , MP_ARG_KW_ONLY | MP_ARG_INT , {.u_int = 8 } },
9797 { MP_QSTR_mono , MP_ARG_KW_ONLY | MP_ARG_BOOL ,{.u_bool = true} },
9898 { MP_QSTR_oversample , MP_ARG_KW_ONLY | MP_ARG_INT , {.u_int = 64 } },
@@ -102,14 +102,14 @@ STATIC mp_obj_t audiobusio_pdmin_make_new(const mp_obj_type_t *type, size_t n_ar
102102 static const float STARTUP_DELAY_DEFAULT = 0.110F ;
103103
104104 mp_arg_val_t args [MP_ARRAY_SIZE (allowed_args )];
105- mp_arg_parse_all (n_args - 2 , pos_args + 2 , & kw_args , MP_ARRAY_SIZE (allowed_args ), allowed_args , args );
105+ mp_arg_parse_all (n_args , pos_args , kw_args , MP_ARRAY_SIZE (allowed_args ), allowed_args , args );
106106
107- mp_obj_t clock_pin_obj = pos_args [ 0 ] ;
107+ mp_obj_t clock_pin_obj = args [ ARG_clock_pin ]. u_obj ;
108108 assert_pin (clock_pin_obj , false);
109109 const mcu_pin_obj_t * clock_pin = MP_OBJ_TO_PTR (clock_pin_obj );
110110 assert_pin_free (clock_pin );
111111
112- mp_obj_t data_pin_obj = pos_args [ 1 ] ;
112+ mp_obj_t data_pin_obj = args [ ARG_data_pin ]. u_obj ;
113113 assert_pin (data_pin_obj , false);
114114 const mcu_pin_obj_t * data_pin = MP_OBJ_TO_PTR (data_pin_obj );
115115 assert_pin_free (data_pin );
0 commit comments