mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
ports/nrf: Refactor arg parsing.
This commit is contained in:
parent
22c6c1a74a
commit
88845c573e
@ -64,11 +64,21 @@ static void nrfx_pdm_event_handler(nrfx_pdm_evt_t const *evt) {
|
||||
}
|
||||
}
|
||||
|
||||
static mp_obj_t py_audio_init(uint n_args, const mp_obj_t *args, mp_map_t *kw_args) {
|
||||
// Read Args.
|
||||
g_channels = py_helper_keyword_int(n_args, args, 0, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_channels), 2);
|
||||
uint32_t frequency = py_helper_keyword_int(n_args, args, 1, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_frequency), 16000);
|
||||
int gain_db = py_helper_keyword_int(n_args, args, 2, kw_args, MP_OBJ_NEW_QSTR(MP_QSTR_gain_db), PDM_DEFAULT_GAIN);
|
||||
static mp_obj_t py_audio_init(uint n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||
enum { ARG_channels, ARG_frequency, ARG_gain_db };
|
||||
static const mp_arg_t allowed_args[] = {
|
||||
{ MP_QSTR_channels, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 2 } },
|
||||
{ MP_QSTR_frequency, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 16000 } },
|
||||
{ MP_QSTR_gain_db, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = PDM_DEFAULT_GAIN } },
|
||||
};
|
||||
|
||||
// Parse args.
|
||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
||||
|
||||
g_channels = args[ARG_channels].u_int;
|
||||
uint32_t frequency = args[ARG_frequency].u_int;
|
||||
int gain_db = args[ARG_gain_db].u_int;
|
||||
|
||||
nrfx_pdm_config_t nrfx_pdm_config = {
|
||||
.pin_clk = PDM_CLK_PIN,
|
||||
@ -123,6 +133,7 @@ static mp_obj_t py_audio_init(uint n_args, const mp_obj_t *args, mp_map_t *kw_ar
|
||||
nrfx_pdm_init(&nrfx_pdm_config, nrfx_pdm_event_handler);
|
||||
return mp_const_none;
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(py_audio_init_obj, 0, py_audio_init);
|
||||
|
||||
void py_audio_deinit() {
|
||||
// Disable PDM and IRQ
|
||||
@ -161,6 +172,7 @@ static mp_obj_t py_audio_start_streaming(mp_obj_t callback_obj) {
|
||||
|
||||
return mp_const_none;
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(py_audio_start_streaming_obj, py_audio_start_streaming);
|
||||
|
||||
static mp_obj_t py_audio_stop_streaming() {
|
||||
// Stop PDM.
|
||||
@ -168,9 +180,6 @@ static mp_obj_t py_audio_stop_streaming() {
|
||||
g_audio_callback = mp_const_none;
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(py_audio_init_obj, 0, py_audio_init);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(py_audio_start_streaming_obj, py_audio_start_streaming);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(py_audio_stop_streaming_obj, py_audio_stop_streaming);
|
||||
|
||||
static const mp_rom_map_elem_t globals_dict_table[] = {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user