2323 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2424 * THE SOFTWARE.
2525 */
26- #include "shared-bindings/audiocore /Mixer.h"
27- #include "shared-bindings/audiocore /MixerVoice.h"
28- #include "shared-module/audiocore /MixerVoice.h"
26+ #include "shared-bindings/audiomixer /Mixer.h"
27+ #include "shared-bindings/audiomixer /MixerVoice.h"
28+ #include "shared-module/audiomixer /MixerVoice.h"
2929
3030#include <stdint.h>
3131
3838#include "shared-bindings/util.h"
3939#include "supervisor/shared/translate.h"
4040
41- //| .. currentmodule:: audiocore
41+ //| .. currentmodule:: audiomixer
4242//|
4343//| :class:`Mixer` -- Mixes one or more audio samples together
4444//| ===========================================================
6262//| import board
6363//| import audioio
6464//| import audiocore
65+ //| import audiomixer
6566//| import digitalio
6667//|
6768//| # Required for CircuitPlayground Express
7071//|
7172//| music = audiocore.WaveFile(open("cplay-5.1-16bit-16khz.wav", "rb"))
7273//| drum = audiocore.WaveFile(open("drum.wav", "rb"))
73- //| mixer = audiocore .Mixer(voice_count=2, sample_rate=16000, channel_count=1,
74- //| bits_per_sample=16, samples_signed=True)
74+ //| mixer = audiomixer .Mixer(voice_count=2, sample_rate=16000, channel_count=1,
75+ //| bits_per_sample=16, samples_signed=True)
7576//| a = audioio.AudioOut(board.A0)
7677//|
7778//| print("playing")
8586//| time.sleep(1)
8687//| print("stopped")
8788//|
88- STATIC mp_obj_t audioio_mixer_make_new (const mp_obj_type_t * type , size_t n_args , const mp_obj_t * pos_args , mp_map_t * kw_args ) {
89+ STATIC mp_obj_t audiomixer_mixer_make_new (const mp_obj_type_t * type , size_t n_args , const mp_obj_t * pos_args , mp_map_t * kw_args ) {
8990 enum { ARG_voice_count , ARG_buffer_size , ARG_channel_count , ARG_bits_per_sample , ARG_samples_signed , ARG_sample_rate };
9091 static const mp_arg_t allowed_args [] = {
9192 { MP_QSTR_voice_count , MP_ARG_INT | MP_ARG_KW_ONLY , {.u_int = 2 } },
@@ -115,13 +116,13 @@ STATIC mp_obj_t audioio_mixer_make_new(const mp_obj_type_t *type, size_t n_args,
115116 if (bits_per_sample != 8 && bits_per_sample != 16 ) {
116117 mp_raise_ValueError (translate ("bits_per_sample must be 8 or 16" ));
117118 }
118- audioio_mixer_obj_t * self = m_new_obj_var (audioio_mixer_obj_t , mp_obj_t , voice_count );
119- self -> base .type = & audioio_mixer_type ;
120- common_hal_audioio_mixer_construct (self , voice_count , args [ARG_buffer_size ].u_int , bits_per_sample , args [ARG_samples_signed ].u_bool , channel_count , sample_rate );
119+ audiomixer_mixer_obj_t * self = m_new_obj_var (audiomixer_mixer_obj_t , mp_obj_t , voice_count );
120+ self -> base .type = & audiomixer_mixer_type ;
121+ common_hal_audiomixer_mixer_construct (self , voice_count , args [ARG_buffer_size ].u_int , bits_per_sample , args [ARG_samples_signed ].u_bool , channel_count , sample_rate );
121122
122123 for (int v = 0 ; v < voice_count ; v ++ ){
123- self -> voice [v ] = audioio_mixervoice_type .make_new (& audioio_mixervoice_type , 0 , 0 , NULL );
124- common_hal_audioio_mixervoice_set_parent (self -> voice [v ], self );
124+ self -> voice [v ] = audiomixer_mixervoice_type .make_new (& audiomixer_mixervoice_type , 0 , 0 , NULL );
125+ common_hal_audiomixer_mixervoice_set_parent (self -> voice [v ], self );
125126 }
126127 self -> voice_tuple = mp_obj_new_tuple (self -> voice_count , self -> voice );
127128
@@ -132,15 +133,15 @@ STATIC mp_obj_t audioio_mixer_make_new(const mp_obj_type_t *type, size_t n_args,
132133//|
133134//| Deinitialises the Mixer and releases any hardware resources for reuse.
134135//|
135- STATIC mp_obj_t audioio_mixer_deinit (mp_obj_t self_in ) {
136- audioio_mixer_obj_t * self = MP_OBJ_TO_PTR (self_in );
137- common_hal_audioio_mixer_deinit (self );
136+ STATIC mp_obj_t audiomixer_mixer_deinit (mp_obj_t self_in ) {
137+ audiomixer_mixer_obj_t * self = MP_OBJ_TO_PTR (self_in );
138+ common_hal_audiomixer_mixer_deinit (self );
138139 return mp_const_none ;
139140}
140- STATIC MP_DEFINE_CONST_FUN_OBJ_1 (audioio_mixer_deinit_obj , audioio_mixer_deinit );
141+ STATIC MP_DEFINE_CONST_FUN_OBJ_1 (audiomixer_mixer_deinit_obj , audiomixer_mixer_deinit );
141142
142- STATIC void check_for_deinit (audioio_mixer_obj_t * self ) {
143- if (common_hal_audioio_mixer_deinited (self )) {
143+ STATIC void check_for_deinit (audiomixer_mixer_obj_t * self ) {
144+ if (common_hal_audiomixer_mixer_deinited (self )) {
144145 raise_deinited_error ();
145146 }
146147}
@@ -156,27 +157,27 @@ STATIC void check_for_deinit(audioio_mixer_obj_t *self) {
156157//| Automatically deinitializes the hardware when exiting a context. See
157158//| :ref:`lifetime-and-contextmanagers` for more info.
158159//|
159- STATIC mp_obj_t audioio_mixer_obj___exit__ (size_t n_args , const mp_obj_t * args ) {
160+ STATIC mp_obj_t audiomixer_mixer_obj___exit__ (size_t n_args , const mp_obj_t * args ) {
160161 (void )n_args ;
161- common_hal_audioio_mixer_deinit (args [0 ]);
162+ common_hal_audiomixer_mixer_deinit (args [0 ]);
162163 return mp_const_none ;
163164}
164- STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN (audioio_mixer___exit___obj , 4 , 4 , audioio_mixer_obj___exit__ );
165+ STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN (audiomixer_mixer___exit___obj , 4 , 4 , audiomixer_mixer_obj___exit__ );
165166
166167//| .. attribute:: playing
167168//|
168169//| True when any voice is being output. (read-only)
169170//|
170- STATIC mp_obj_t audioio_mixer_obj_get_playing (mp_obj_t self_in ) {
171- audioio_mixer_obj_t * self = MP_OBJ_TO_PTR (self_in );
171+ STATIC mp_obj_t audiomixer_mixer_obj_get_playing (mp_obj_t self_in ) {
172+ audiomixer_mixer_obj_t * self = MP_OBJ_TO_PTR (self_in );
172173 check_for_deinit (self );
173- return mp_obj_new_bool (common_hal_audioio_mixer_get_playing (self ));
174+ return mp_obj_new_bool (common_hal_audiomixer_mixer_get_playing (self ));
174175}
175- MP_DEFINE_CONST_FUN_OBJ_1 (audioio_mixer_get_playing_obj , audioio_mixer_obj_get_playing );
176+ MP_DEFINE_CONST_FUN_OBJ_1 (audiomixer_mixer_get_playing_obj , audiomixer_mixer_obj_get_playing );
176177
177- const mp_obj_property_t audioio_mixer_playing_obj = {
178+ const mp_obj_property_t audiomixer_mixer_playing_obj = {
178179 .base .type = & mp_type_property ,
179- .proxy = {(mp_obj_t )& audioio_mixer_get_playing_obj ,
180+ .proxy = {(mp_obj_t )& audiomixer_mixer_get_playing_obj ,
180181 (mp_obj_t )& mp_const_none_obj ,
181182 (mp_obj_t )& mp_const_none_obj },
182183};
@@ -185,59 +186,59 @@ const mp_obj_property_t audioio_mixer_playing_obj = {
185186//|
186187//| 32 bit value that dictates how quickly samples are played in Hertz (cycles per second).
187188//|
188- STATIC mp_obj_t audioio_mixer_obj_get_sample_rate (mp_obj_t self_in ) {
189- audioio_mixer_obj_t * self = MP_OBJ_TO_PTR (self_in );
189+ STATIC mp_obj_t audiomixer_mixer_obj_get_sample_rate (mp_obj_t self_in ) {
190+ audiomixer_mixer_obj_t * self = MP_OBJ_TO_PTR (self_in );
190191 check_for_deinit (self );
191- return MP_OBJ_NEW_SMALL_INT (common_hal_audioio_mixer_get_sample_rate (self ));
192+ return MP_OBJ_NEW_SMALL_INT (common_hal_audiomixer_mixer_get_sample_rate (self ));
192193}
193- MP_DEFINE_CONST_FUN_OBJ_1 (audioio_mixer_get_sample_rate_obj , audioio_mixer_obj_get_sample_rate );
194+ MP_DEFINE_CONST_FUN_OBJ_1 (audiomixer_mixer_get_sample_rate_obj , audiomixer_mixer_obj_get_sample_rate );
194195
195- const mp_obj_property_t audioio_mixer_sample_rate_obj = {
196+ const mp_obj_property_t audiomixer_mixer_sample_rate_obj = {
196197 .base .type = & mp_type_property ,
197- .proxy = {(mp_obj_t )& audioio_mixer_get_sample_rate_obj ,
198+ .proxy = {(mp_obj_t )& audiomixer_mixer_get_sample_rate_obj ,
198199 (mp_obj_t )& mp_const_none_obj ,
199200 (mp_obj_t )& mp_const_none_obj },
200201};
201202
202203//| .. attribute:: voice
203204//|
204- //| A tuple of the mixer's `audioio .MixerVoice` object(s).
205+ //| A tuple of the mixer's `audiomixer .MixerVoice` object(s).
205206//|
206207//| .. code-block:: python
207208//|
208209//| >>> mixer.voice
209210//| (<MixerVoice>,)
210- STATIC mp_obj_t audioio_mixer_obj_get_voice (mp_obj_t self_in ) {
211- audioio_mixer_obj_t * self = MP_OBJ_TO_PTR (self_in );
211+ STATIC mp_obj_t audiomixer_mixer_obj_get_voice (mp_obj_t self_in ) {
212+ audiomixer_mixer_obj_t * self = MP_OBJ_TO_PTR (self_in );
212213 check_for_deinit (self );
213214 return self -> voice_tuple ;
214215}
215- MP_DEFINE_CONST_FUN_OBJ_1 (audioio_mixer_get_voice_obj , audioio_mixer_obj_get_voice );
216+ MP_DEFINE_CONST_FUN_OBJ_1 (audiomixer_mixer_get_voice_obj , audiomixer_mixer_obj_get_voice );
216217
217- const mp_obj_property_t audioio_mixer_voice_obj = {
218+ const mp_obj_property_t audiomixer_mixer_voice_obj = {
218219 .base .type = & mp_type_property ,
219- .proxy = {(mp_obj_t )& audioio_mixer_get_voice_obj ,
220+ .proxy = {(mp_obj_t )& audiomixer_mixer_get_voice_obj ,
220221 (mp_obj_t )& mp_const_none_obj ,
221222 (mp_obj_t )& mp_const_none_obj },
222223};
223224
224225
225- STATIC const mp_rom_map_elem_t audioio_mixer_locals_dict_table [] = {
226+ STATIC const mp_rom_map_elem_t audiomixer_mixer_locals_dict_table [] = {
226227 // Methods
227- { MP_ROM_QSTR (MP_QSTR_deinit ), MP_ROM_PTR (& audioio_mixer_deinit_obj ) },
228+ { MP_ROM_QSTR (MP_QSTR_deinit ), MP_ROM_PTR (& audiomixer_mixer_deinit_obj ) },
228229 { MP_ROM_QSTR (MP_QSTR___enter__ ), MP_ROM_PTR (& default___enter___obj ) },
229- { MP_ROM_QSTR (MP_QSTR___exit__ ), MP_ROM_PTR (& audioio_mixer___exit___obj ) },
230+ { MP_ROM_QSTR (MP_QSTR___exit__ ), MP_ROM_PTR (& audiomixer_mixer___exit___obj ) },
230231
231232 // Properties
232- { MP_ROM_QSTR (MP_QSTR_playing ), MP_ROM_PTR (& audioio_mixer_playing_obj ) },
233- { MP_ROM_QSTR (MP_QSTR_sample_rate ), MP_ROM_PTR (& audioio_mixer_sample_rate_obj ) },
234- { MP_ROM_QSTR (MP_QSTR_voice ), MP_ROM_PTR (& audioio_mixer_voice_obj ) }
233+ { MP_ROM_QSTR (MP_QSTR_playing ), MP_ROM_PTR (& audiomixer_mixer_playing_obj ) },
234+ { MP_ROM_QSTR (MP_QSTR_sample_rate ), MP_ROM_PTR (& audiomixer_mixer_sample_rate_obj ) },
235+ { MP_ROM_QSTR (MP_QSTR_voice ), MP_ROM_PTR (& audiomixer_mixer_voice_obj ) }
235236};
236- STATIC MP_DEFINE_CONST_DICT (audioio_mixer_locals_dict , audioio_mixer_locals_dict_table );
237+ STATIC MP_DEFINE_CONST_DICT (audiomixer_mixer_locals_dict , audiomixer_mixer_locals_dict_table );
237238
238- const mp_obj_type_t audioio_mixer_type = {
239+ const mp_obj_type_t audiomixer_mixer_type = {
239240 { & mp_type_type },
240241 .name = MP_QSTR_Mixer ,
241- .make_new = audioio_mixer_make_new ,
242- .locals_dict = (mp_obj_dict_t * )& audioio_mixer_locals_dict ,
242+ .make_new = audiomixer_mixer_make_new ,
243+ .locals_dict = (mp_obj_dict_t * )& audiomixer_mixer_locals_dict ,
243244};
0 commit comments