From 39be71e4add03a3e82720b85cc472de65c4fd467 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Andr=C3=A9=20Santoni?= Date: Wed, 21 Sep 2016 18:51:40 +0200 Subject: [PATCH] Correctly save and load WiFi driver from the config file --- configuration.c | 25 +++++++++++++++++++++++++ configuration.h | 9 +++++++++ menu/menu_setting.c | 4 ++-- 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/configuration.c b/configuration.c index 6515f5bb9c..8878259b7c 100644 --- a/configuration.c +++ b/configuration.c @@ -436,6 +436,26 @@ const char *config_get_default_camera(void) return "null"; } +/** + * config_get_default_wifi: + * + * Gets default wifi driver. + * + * Returns: Default wifi driver. + **/ +const char *config_get_default_wifi(void) +{ + switch (WIFI_DEFAULT_DRIVER) + { + case WIFI_CONNMANCTL: + return "connmanctl"; + default: + break; + } + + return "null"; +} + /** * config_get_default_location: * @@ -523,6 +543,7 @@ static int populate_settings_array(settings_t *settings, struct config_array_set SETTING_ARRAY("video_driver", settings->video.driver, false, NULL, true); SETTING_ARRAY("record_driver", settings->record.driver, false, NULL, true); SETTING_ARRAY("camera_driver", settings->camera.driver, false, NULL, true); + SETTING_ARRAY("wifi_driver", settings->wifi.driver, false, NULL, true); SETTING_ARRAY("location_driver", settings->location.driver,false, NULL, true); #ifdef HAVE_MENU SETTING_ARRAY("menu_driver", settings->menu.driver, false, NULL, true); @@ -946,6 +967,7 @@ static void config_set_defaults(void) const char *def_menu = config_get_default_menu(); #endif const char *def_camera = config_get_default_camera(); + const char *def_wifi = config_get_default_wifi(); const char *def_location = config_get_default_location(); const char *def_record = config_get_default_record(); struct config_bool_setting *bool_settings = NULL; @@ -979,6 +1001,9 @@ static void config_set_defaults(void) if (def_camera) strlcpy(settings->camera.driver, def_camera, sizeof(settings->camera.driver)); + if (def_wifi) + strlcpy(settings->wifi.driver, + def_wifi, sizeof(settings->wifi.driver)); if (def_location) strlcpy(settings->location.driver, def_location, sizeof(settings->location.driver)); diff --git a/configuration.h b/configuration.h index 8fa9185c13..679cc27829 100644 --- a/configuration.h +++ b/configuration.h @@ -472,6 +472,15 @@ typedef struct settings **/ const char *config_get_default_camera(void); +/** + * config_get_default_wifi: + * + * Gets default wifi driver. + * + * Returns: Default wifi driver. + **/ +const char *config_get_default_wifi(void); + /** * config_get_default_location: * diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 8d47f840b5..361da8ad1f 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -2665,8 +2665,8 @@ static bool setting_append_list( sizeof(settings->wifi.driver), msg_hash_to_str(MENU_ENUM_LABEL_WIFI_DRIVER), msg_hash_to_str(MENU_ENUM_LABEL_VALUE_WIFI_DRIVER), - config_get_default_camera(), - config_get_camera_driver_options(), + config_get_default_wifi(), + config_get_wifi_driver_options(), &group_info, &subgroup_info, parent_group,