|
@@ -105,11 +105,14 @@ bool is_spdif_config_locked(){
|
|
|
* Set pin from config string
|
|
|
*/
|
|
|
static void set_i2s_pin(char *config, i2s_pin_config_t *pin_config) {
|
|
|
- char *p;
|
|
|
- pin_config->bck_io_num = pin_config->ws_io_num = pin_config->data_out_num = pin_config->data_in_num = -1;
|
|
|
- if ((p = strcasestr(config, "bck"))) sscanf(p, "bck%*[^=]=%d", &pin_config->bck_io_num);
|
|
|
- if ((p = strcasestr(config, "ws"))) sscanf(p, "ws%*[^=]=%d", &pin_config->ws_io_num);
|
|
|
- if ((p = strcasestr(config, "do"))) sscanf(p, "do%*[^=]=%d", &pin_config->data_out_num);
|
|
|
+ pin_config->bck_io_num = pin_config->ws_io_num = pin_config->data_out_num = pin_config->data_in_num = -1;
|
|
|
+ PARSE_PARAM(config, "bck", '=', pin_config->bck_io_num);
|
|
|
+ PARSE_PARAM(config, "ws", '=', pin_config->ws_io_num);
|
|
|
+ PARSE_PARAM(config, "do", '=', pin_config->data_out_num);
|
|
|
+#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 4, 0)
|
|
|
+ pin_config->mck_io_num = strcasestr(config, "mck") ? 0 : -1;
|
|
|
+ PARSE_PARAM(config, "mck", '=', pin_config->mck_io_num);
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
/****************************************************************************************
|