@@ -107,6 +107,25 @@ MP_PROPERTY_GETSET(audiomixer_mixervoice_level_obj,
107107 (mp_obj_t )& audiomixer_mixervoice_get_level_obj ,
108108 (mp_obj_t )& audiomixer_mixervoice_set_level_obj );
109109
110+ //| loop: bool
111+ //| """Get or set the loop status of the currently playing sample."""
112+ static mp_obj_t audiomixer_mixervoice_obj_get_loop (mp_obj_t self_in ) {
113+ return mp_obj_new_bool (common_hal_audiomixer_mixervoice_get_loop (self_in ));
114+ }
115+ MP_DEFINE_CONST_FUN_OBJ_1 (audiomixer_mixervoice_get_loop_obj , audiomixer_mixervoice_obj_get_loop );
116+
117+ static mp_obj_t audiomixer_mixervoice_obj_set_loop (mp_obj_t self_in , mp_obj_t loop_in ) {
118+ audiomixer_mixervoice_obj_t * self = MP_OBJ_TO_PTR (self_in );
119+ bool loop = mp_obj_is_true (loop_in );
120+ common_hal_audiomixer_mixervoice_set_loop (self , loop );
121+ return mp_const_none ;
122+ }
123+ MP_DEFINE_CONST_FUN_OBJ_2 (audiomixer_mixervoice_set_loop_obj , audiomixer_mixervoice_obj_set_loop );
124+
125+ MP_PROPERTY_GETSET (audiomixer_mixervoice_loop_obj ,
126+ (mp_obj_t )& audiomixer_mixervoice_get_loop_obj ,
127+ (mp_obj_t )& audiomixer_mixervoice_set_loop_obj );
128+
110129//| playing: bool
111130//| """True when this voice is being output. (read-only)"""
112131//|
@@ -130,6 +149,7 @@ static const mp_rom_map_elem_t audiomixer_mixervoice_locals_dict_table[] = {
130149 // Properties
131150 { MP_ROM_QSTR (MP_QSTR_playing ), MP_ROM_PTR (& audiomixer_mixervoice_playing_obj ) },
132151 { MP_ROM_QSTR (MP_QSTR_level ), MP_ROM_PTR (& audiomixer_mixervoice_level_obj ) },
152+ { MP_ROM_QSTR (MP_QSTR_loop ), MP_ROM_PTR (& audiomixer_mixervoice_loop_obj ) },
133153};
134154static MP_DEFINE_CONST_DICT (audiomixer_mixervoice_locals_dict , audiomixer_mixervoice_locals_dict_table ) ;
135155
0 commit comments