@@ -81,6 +81,13 @@ STATIC uint8_t sound_event_from_obj(mp_obj_t sound) {
8181 mp_raise_ValueError (MP_ERROR_TEXT ("invalid sound" ));
8282}
8383
84+ STATIC mp_obj_t microbit_microphone_set_sensitivity (mp_obj_t self_in , mp_obj_t value_in ) {
85+ (void )self_in ;
86+ microbit_hal_microphone_set_sensitivity (mp_obj_get_float (value_in ));
87+ return mp_const_none ;
88+ }
89+ STATIC MP_DEFINE_CONST_FUN_OBJ_2 (microbit_microphone_set_sensitivity_obj , microbit_microphone_set_sensitivity );
90+
8491STATIC mp_obj_t microbit_microphone_set_threshold (mp_obj_t self_in , mp_obj_t sound_in , mp_obj_t value_in ) {
8592 (void )self_in ;
8693 uint8_t sound = sound_event_from_obj (sound_in );
@@ -228,6 +235,8 @@ static mp_obj_t microbit_microphone_stop_recording(mp_obj_t self_in) {
228235static MP_DEFINE_CONST_FUN_OBJ_1 (microbit_microphone_stop_recording_obj , microbit_microphone_stop_recording ) ;
229236
230237STATIC const mp_rom_map_elem_t microbit_microphone_locals_dict_table [] = {
238+ // Methods.
239+ { MP_ROM_QSTR (MP_QSTR_set_sensitivity ), MP_ROM_PTR (& microbit_microphone_set_sensitivity_obj ) },
231240 { MP_ROM_QSTR (MP_QSTR_set_threshold ), MP_ROM_PTR (& microbit_microphone_set_threshold_obj ) },
232241 { MP_ROM_QSTR (MP_QSTR_sound_level ), MP_ROM_PTR (& microbit_microphone_sound_level_obj ) },
233242 { MP_ROM_QSTR (MP_QSTR_current_event ), MP_ROM_PTR (& microbit_microphone_current_event_obj ) },
@@ -238,6 +247,11 @@ STATIC const mp_rom_map_elem_t microbit_microphone_locals_dict_table[] = {
238247 { MP_ROM_QSTR (MP_QSTR_record_into ), MP_ROM_PTR (& microbit_microphone_record_into_obj ) },
239248 { MP_ROM_QSTR (MP_QSTR_is_recording ), MP_ROM_PTR (& microbit_microphone_is_recording_obj ) },
240249 { MP_ROM_QSTR (MP_QSTR_stop_recording ), MP_ROM_PTR (& microbit_microphone_stop_recording_obj ) },
250+
251+ // Constants.
252+ { MP_ROM_QSTR (MP_QSTR_SENSITIVITY_LOW ), MP_ROM_INT (0.079 ) },
253+ { MP_ROM_QSTR (MP_QSTR_SENSITIVITY_MEDIUM ), MP_ROM_INT (0.2 ) },
254+ { MP_ROM_QSTR (MP_QSTR_SENSITIVITY_HIGH ), MP_ROM_INT (1.0 ) },
241255};
242256STATIC MP_DEFINE_CONST_DICT (microbit_microphone_locals_dict , microbit_microphone_locals_dict_table );
243257
0 commit comments