Skip to content

Commit b0ab2cb

Browse files
committed
codal_port/modaudio: Add audio.set_rate() function.
Signed-off-by: Damien George <damien@micropython.org>
1 parent d55f725 commit b0ab2cb

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/codal_port/modaudio.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,16 @@ void microbit_audio_play_source(mp_obj_t src, mp_obj_t pin_select, bool wait, ui
246246
}
247247
}
248248

249+
STATIC mp_obj_t microbit_audio_set_rate(mp_obj_t sample_rate_in) {
250+
mp_float_t sample_rate = mp_obj_get_float(sample_rate_in);
251+
if (sample_rate <= 0) {
252+
mp_raise_ValueError(MP_ERROR_TEXT("invalid sample rate"));
253+
}
254+
microbit_hal_audio_raw_set_rate(sample_rate);
255+
return mp_const_none;
256+
}
257+
MP_DEFINE_CONST_FUN_OBJ_1(microbit_audio_set_rate_obj, microbit_audio_set_rate);
258+
249259
STATIC mp_obj_t stop(void) {
250260
microbit_audio_stop();
251261
return mp_const_none;
@@ -285,6 +295,7 @@ MP_DEFINE_CONST_FUN_OBJ_0(microbit_audio_is_playing_obj, is_playing);
285295

286296
STATIC const mp_rom_map_elem_t audio_globals_table[] = {
287297
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_audio) },
298+
{ MP_ROM_QSTR(MP_QSTR_set_rate), MP_ROM_PTR(&microbit_audio_set_rate_obj) },
288299
{ MP_ROM_QSTR(MP_QSTR_stop), MP_ROM_PTR(&microbit_audio_stop_obj) },
289300
{ MP_ROM_QSTR(MP_QSTR_play), MP_ROM_PTR(&microbit_audio_play_obj) },
290301
{ MP_ROM_QSTR(MP_QSTR_is_playing), MP_ROM_PTR(&microbit_audio_is_playing_obj) },

0 commit comments

Comments
 (0)