proper handling of target config between NVS and dedicated - release

This commit is contained in:
Philippe G
2022-01-26 14:51:08 -08:00
parent 7bfaa05ad2
commit 3d8c3ae776
5 changed files with 49 additions and 50 deletions

View File

@@ -509,11 +509,8 @@ static esp_err_t actrls_init_json(const char *profile_name, bool create) {
const cJSON *button;
if (!profile_name) return ESP_OK;
config = config_alloc_get_str(profile_name, NULL, CONFIG_AUDIO_CONTROLS);
if (!config) return ESP_FAIL;
else if (!*config) return ESP_OK;
if ((config = config_alloc_get_str(profile_name, NULL, CONFIG_AUDIO_CONTROLS)) == NULL) return ESP_FAIL;
if (!*config) goto exit;
ESP_LOGD(TAG,"Parsing JSON structure %s", config);
cJSON *buttons = cJSON_Parse(config);
@@ -528,8 +525,8 @@ 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;
err = ESP_FAIL;
goto exit;
}
ESP_LOGD(TAG,"Processing button definitions. ");
cJSON_ArrayForEach(button, buttons){
@@ -560,6 +557,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;
exit:
free(config);
return err;
}

View File

@@ -48,7 +48,7 @@ static void battery_svc(float value);
static bool init(void);
static void set_battery_led(float value);
const struct target_s target_muse = { "muse", init };
const struct target_s target_muse = { .model = "muse", .init = init };
static bool init(void) {
battery_handler_chain = battery_handler_svc;

View File

@@ -4,7 +4,7 @@
const struct target_s *target_set[] = { &target_muse, NULL };
void target_init(char *target) {
for (int i = 0; target_set[i]; i++) if (strcasestr(target_set[i]->model, target)) {
for (int i = 0; *target && target_set[i]; i++) if (strcasestr(target_set[i]->model, target)) {
target_set[i]->init();
break;
}