@@ -114,6 +114,31 @@ MP_PROPERTY_GETSET(audiomixer_mixervoice_level_obj,
114
114
(mp_obj_t )& audiomixer_mixervoice_get_level_obj ,
115
115
(mp_obj_t )& audiomixer_mixervoice_set_level_obj );
116
116
117
+ //| panning: synthio.BlockInput
118
+ //| """Defines the channel(s) in which the voice appears, as a floating point number between
119
+ //| -1 and 1. If your board does not support synthio, this property will only accept a float
120
+ //| value. This property is ignored if ``audiomixer.Mixer.channel_count=1``.
121
+ //|
122
+ //| -1 is left channel only, 0 is both channels, and 1 is right channel. For fractional values,
123
+ //| the note plays at full amplitude in one channel and partial amplitude in the other channel.
124
+ //| For instance -.5 plays at full amplitude in the left channel and 1/2 amplitude in the right
125
+ //| channel."""
126
+ static mp_obj_t audiomixer_mixervoice_obj_get_panning (mp_obj_t self_in ) {
127
+ return common_hal_audiomixer_mixervoice_get_panning (self_in );
128
+ }
129
+ MP_DEFINE_CONST_FUN_OBJ_1 (audiomixer_mixervoice_get_panning_obj , audiomixer_mixervoice_obj_get_panning );
130
+
131
+ static mp_obj_t audiomixer_mixervoice_obj_set_panning (mp_obj_t self_in , mp_obj_t panning_in ) {
132
+ audiomixer_mixervoice_obj_t * self = MP_OBJ_TO_PTR (self_in );
133
+ common_hal_audiomixer_mixervoice_set_panning (self , panning_in );
134
+ return mp_const_none ;
135
+ }
136
+ MP_DEFINE_CONST_FUN_OBJ_2 (audiomixer_mixervoice_set_panning_obj , audiomixer_mixervoice_obj_set_panning );
137
+
138
+ MP_PROPERTY_GETSET (audiomixer_mixervoice_panning_obj ,
139
+ (mp_obj_t )& audiomixer_mixervoice_get_panning_obj ,
140
+ (mp_obj_t )& audiomixer_mixervoice_set_panning_obj );
141
+
117
142
//| loop: bool
118
143
//| """Get or set the loop status of the currently playing sample."""
119
144
static mp_obj_t audiomixer_mixervoice_obj_get_loop (mp_obj_t self_in ) {
@@ -158,6 +183,7 @@ static const mp_rom_map_elem_t audiomixer_mixervoice_locals_dict_table[] = {
158
183
// Properties
159
184
{ MP_ROM_QSTR (MP_QSTR_playing ), MP_ROM_PTR (& audiomixer_mixervoice_playing_obj ) },
160
185
{ MP_ROM_QSTR (MP_QSTR_level ), MP_ROM_PTR (& audiomixer_mixervoice_level_obj ) },
186
+ { MP_ROM_QSTR (MP_QSTR_panning ), MP_ROM_PTR (& audiomixer_mixervoice_panning_obj ) },
161
187
{ MP_ROM_QSTR (MP_QSTR_loop ), MP_ROM_PTR (& audiomixer_mixervoice_loop_obj ) },
162
188
};
163
189
static MP_DEFINE_CONST_DICT (audiomixer_mixervoice_locals_dict , audiomixer_mixervoice_locals_dict_table ) ;
0 commit comments