diff --git a/components/services/audio_controls.c b/components/services/audio_controls.c index 397a698c..4104c561 100644 --- a/components/services/audio_controls.c +++ b/components/services/audio_controls.c @@ -157,7 +157,7 @@ esp_err_t actrls_init(const char *profile_name) { // set infrared GPIO if any parse_set_GPIO(set_ir_gpio); - + if (!err) return actrls_init_json(profile_name, true); else return err; } @@ -508,11 +508,13 @@ static esp_err_t actrls_init_json(const char *profile_name, bool create) { char *config; const cJSON *button; - if (!profile_name || !*profile_name) return ESP_OK; + if (!profile_name) return ESP_OK; - config = config_alloc_get_default(NVS_TYPE_STR, profile_name, NULL, 0); - if(!config) return ESP_FAIL; - + config = config_alloc_get_str(profile_name, NULL, CONFIG_AUDIO_CONTROLS); + + if (!config) return ESP_FAIL; + else if (!*config) return ESP_OK; + ESP_LOGD(TAG,"Parsing JSON structure %s", config); cJSON *buttons = cJSON_Parse(config); if (buttons == NULL) { @@ -526,6 +528,7 @@ static esp_err_t actrls_init_json(const char *profile_name, bool create) { if(!cur_config) { ESP_LOGE(TAG,"Config buffer was empty. "); cJSON_Delete(buttons); + free(config); return ESP_FAIL; } ESP_LOGD(TAG,"Processing button definitions. "); @@ -557,6 +560,7 @@ static esp_err_t actrls_init_json(const char *profile_name, bool create) { // the last init that completes will assigh the first json config object found, which will match // the default config from nvs. json_config = config_root; + free(config); return err; } diff --git a/main/esp_app_main.c b/main/esp_app_main.c index aa29835f..76856ee1 100644 --- a/main/esp_app_main.c +++ b/main/esp_app_main.c @@ -481,7 +481,7 @@ void app_main() if(!is_recovery_running){ ESP_LOGD(TAG,"Getting audio control mapping "); - char *actrls_config = config_alloc_get_default(NVS_TYPE_STR, "actrls_config", CONFIG_AUDIO_CONTROLS, 0); + char *actrls_config = config_alloc_get_default(NVS_TYPE_STR, "actrls_config", "", 0); if (actrls_init(actrls_config) == ESP_OK) { ESP_LOGD(TAG,"Initializing audio control buttons type %s", actrls_config); } else {