@@ -81,6 +81,13 @@ STATIC uint8_t sound_event_from_obj(mp_obj_t sound) {
81
81
mp_raise_ValueError (MP_ERROR_TEXT ("invalid sound" ));
82
82
}
83
83
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
+
84
91
STATIC mp_obj_t microbit_microphone_set_threshold (mp_obj_t self_in , mp_obj_t sound_in , mp_obj_t value_in ) {
85
92
(void )self_in ;
86
93
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) {
228
235
static MP_DEFINE_CONST_FUN_OBJ_1 (microbit_microphone_stop_recording_obj , microbit_microphone_stop_recording ) ;
229
236
230
237
STATIC 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 ) },
231
240
{ MP_ROM_QSTR (MP_QSTR_set_threshold ), MP_ROM_PTR (& microbit_microphone_set_threshold_obj ) },
232
241
{ MP_ROM_QSTR (MP_QSTR_sound_level ), MP_ROM_PTR (& microbit_microphone_sound_level_obj ) },
233
242
{ 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[] = {
238
247
{ MP_ROM_QSTR (MP_QSTR_record_into ), MP_ROM_PTR (& microbit_microphone_record_into_obj ) },
239
248
{ MP_ROM_QSTR (MP_QSTR_is_recording ), MP_ROM_PTR (& microbit_microphone_is_recording_obj ) },
240
249
{ 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 ) },
241
255
};
242
256
STATIC MP_DEFINE_CONST_DICT (microbit_microphone_locals_dict , microbit_microphone_locals_dict_table );
243
257
0 commit comments