@@ -94,6 +94,25 @@ MP_PROPERTY_GETSET(audiomixer_mixervoice_level_obj,
94
94
(mp_obj_t )& audiomixer_mixervoice_get_level_obj ,
95
95
(mp_obj_t )& audiomixer_mixervoice_set_level_obj );
96
96
97
+ //| loop: bool
98
+ //| """Get or set the loop status of the currently playing sample."""
99
+ static mp_obj_t audiomixer_mixervoice_obj_get_loop (mp_obj_t self_in ) {
100
+ return mp_obj_new_bool (common_hal_audiomixer_mixervoice_get_loop (self_in ));
101
+ }
102
+ MP_DEFINE_CONST_FUN_OBJ_1 (audiomixer_mixervoice_get_loop_obj , audiomixer_mixervoice_obj_get_loop );
103
+
104
+ static mp_obj_t audiomixer_mixervoice_obj_set_loop (mp_obj_t self_in , mp_obj_t loop_in ) {
105
+ audiomixer_mixervoice_obj_t * self = MP_OBJ_TO_PTR (self_in );
106
+ bool loop = mp_obj_is_true (loop_in );
107
+ common_hal_audiomixer_mixervoice_set_loop (self , loop );
108
+ return mp_const_none ;
109
+ }
110
+ MP_DEFINE_CONST_FUN_OBJ_2 (audiomixer_mixervoice_set_loop_obj , audiomixer_mixervoice_obj_set_loop );
111
+
112
+ MP_PROPERTY_GETSET (audiomixer_mixervoice_loop_obj ,
113
+ (mp_obj_t )& audiomixer_mixervoice_get_loop_obj ,
114
+ (mp_obj_t )& audiomixer_mixervoice_set_loop_obj );
115
+
97
116
//| playing: bool
98
117
//| """True when this voice is being output. (read-only)"""
99
118
//|
@@ -117,6 +136,7 @@ static const mp_rom_map_elem_t audiomixer_mixervoice_locals_dict_table[] = {
117
136
// Properties
118
137
{ MP_ROM_QSTR (MP_QSTR_playing ), MP_ROM_PTR (& audiomixer_mixervoice_playing_obj ) },
119
138
{ MP_ROM_QSTR (MP_QSTR_level ), MP_ROM_PTR (& audiomixer_mixervoice_level_obj ) },
139
+ { MP_ROM_QSTR (MP_QSTR_loop ), MP_ROM_PTR (& audiomixer_mixervoice_loop_obj ) },
120
140
};
121
141
static MP_DEFINE_CONST_DICT (audiomixer_mixervoice_locals_dict , audiomixer_mixervoice_locals_dict_table ) ;
122
142
0 commit comments