@@ -38,10 +38,10 @@ typedef struct _microbit_microphone_obj_t {
3838 mp_obj_base_t base ;
3939} microbit_microphone_obj_t ;
4040
41- static const qstr sound_event_name_map [] = {
42- [SOUND_EVENT_NONE ] = MP_QSTR_ ,
43- [SOUND_EVENT_LOUD ] = MP_QSTR_loud ,
44- [SOUND_EVENT_QUIET ] = MP_QSTR_quiet ,
41+ static const mp_const_obj_t sound_event_obj_map [] = {
42+ [SOUND_EVENT_NONE ] = MP_ROM_NONE ,
43+ [SOUND_EVENT_LOUD ] = MP_ROM_PTR ( & microbit_soundevent_loud_obj ) ,
44+ [SOUND_EVENT_QUIET ] = MP_ROM_PTR ( & microbit_soundevent_quiet_obj ) ,
4545};
4646
4747static uint8_t sound_event_current = 0 ;
@@ -72,10 +72,9 @@ STATIC void microphone_init(void) {
7272 microbit_hal_microphone_init ();
7373}
7474
75- STATIC uint8_t sound_event_from_obj (mp_obj_t sound_in ) {
76- qstr sound = mp_obj_str_get_qstr (sound_in );
77- for (uint8_t i = 0 ; i < MP_ARRAY_SIZE (sound_event_name_map ); ++ i ) {
78- if (sound == sound_event_name_map [i ]) {
75+ STATIC uint8_t sound_event_from_obj (mp_obj_t sound ) {
76+ for (uint8_t i = 0 ; i < MP_ARRAY_SIZE (sound_event_obj_map ); ++ i ) {
77+ if (sound == sound_event_obj_map [i ]) {
7978 return i ;
8079 }
8180 }
@@ -110,7 +109,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(microbit_microphone_sound_level_obj, microbit_m
110109STATIC mp_obj_t microbit_microphone_current_event (mp_obj_t self_in ) {
111110 (void )self_in ;
112111 microphone_init ();
113- return MP_OBJ_NEW_QSTR ( sound_event_name_map [sound_event_current ]) ;
112+ return ( mp_obj_t ) sound_event_obj_map [sound_event_current ];
114113}
115114STATIC MP_DEFINE_CONST_FUN_OBJ_1 (microbit_microphone_current_event_obj , microbit_microphone_current_event );
116115
@@ -145,7 +144,7 @@ STATIC mp_obj_t microbit_microphone_get_events(mp_obj_t self_in) {
145144 mp_obj_tuple_t * o = (mp_obj_tuple_t * )mp_obj_new_tuple (sound_event_history_index , NULL );
146145 for (size_t i = 0 ; i < sound_event_history_index ; ++ i ) {
147146 uint8_t sound = sound_event_history_array [i ];
148- o -> items [i ] = MP_OBJ_NEW_QSTR ( sound_event_name_map [sound ]) ;
147+ o -> items [i ] = ( mp_obj_t ) sound_event_obj_map [sound ];
149148 }
150149 sound_event_history_index = 0 ;
151150 return o ;
@@ -159,9 +158,6 @@ STATIC const mp_rom_map_elem_t microbit_microphone_locals_dict_table[] = {
159158 { MP_ROM_QSTR (MP_QSTR_is_event ), MP_ROM_PTR (& microbit_microphone_is_event_obj ) },
160159 { MP_ROM_QSTR (MP_QSTR_was_event ), MP_ROM_PTR (& microbit_microphone_was_event_obj ) },
161160 { MP_ROM_QSTR (MP_QSTR_get_events ), MP_ROM_PTR (& microbit_microphone_get_events_obj ) },
162-
163- { MP_ROM_QSTR (MP_QSTR_LOUD ), MP_ROM_QSTR (MP_QSTR_loud ) },
164- { MP_ROM_QSTR (MP_QSTR_QUIET ), MP_ROM_QSTR (MP_QSTR_quiet ) },
165161};
166162STATIC MP_DEFINE_CONST_DICT (microbit_microphone_locals_dict , microbit_microphone_locals_dict_table );
167163
0 commit comments