@@ -107,6 +107,25 @@ MP_PROPERTY_GETSET(audiomixer_mixervoice_level_obj,
107
107
(mp_obj_t )& audiomixer_mixervoice_get_level_obj ,
108
108
(mp_obj_t )& audiomixer_mixervoice_set_level_obj );
109
109
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
+
110
129
//| playing: bool
111
130
//| """True when this voice is being output. (read-only)"""
112
131
//|
@@ -130,6 +149,7 @@ static const mp_rom_map_elem_t audiomixer_mixervoice_locals_dict_table[] = {
130
149
// Properties
131
150
{ MP_ROM_QSTR (MP_QSTR_playing ), MP_ROM_PTR (& audiomixer_mixervoice_playing_obj ) },
132
151
{ 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 ) },
133
153
};
134
154
static MP_DEFINE_CONST_DICT (audiomixer_mixervoice_locals_dict , audiomixer_mixervoice_locals_dict_table ) ;
135
155
0 commit comments