Display WiFi menu title and perform a scan before calling the services

This commit is contained in:
Jean-André Santoni 2016-09-22 11:55:12 +02:00 committed by twinaphex
parent d493273bcf
commit 339de94095
5 changed files with 31 additions and 8 deletions

View File

@ -2312,6 +2312,8 @@ static const char *menu_hash_to_str_us_label_enum(enum msg_hash_enums msg)
return "scan_directory"; return "scan_directory";
case MENU_ENUM_LABEL_ADD_CONTENT_LIST: case MENU_ENUM_LABEL_ADD_CONTENT_LIST:
return "add_content"; return "add_content";
case MENU_ENUM_LABEL_CONNECT_WIFI:
return "connect_wifi";
case MENU_ENUM_LABEL_OVERLAY_AUTOLOAD_PREFERRED: case MENU_ENUM_LABEL_OVERLAY_AUTOLOAD_PREFERRED:
return "overlay_autoload_preferred"; return "overlay_autoload_preferred";
case MENU_ENUM_LABEL_INFORMATION: case MENU_ENUM_LABEL_INFORMATION:

View File

@ -275,6 +275,13 @@ static int action_get_retro_achievements_settings_list(const char *path, const c
return 0; return 0;
} }
static int action_get_wifi_settings_list(const char *path, const char *label,
unsigned menu_type, char *s, size_t len)
{
sanitize_to_string(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_WIFI_SETTINGS), len);
return 0;
}
static int action_get_network_settings_list(const char *path, const char *label, static int action_get_network_settings_list(const char *path, const char *label,
unsigned menu_type, char *s, size_t len) unsigned menu_type, char *s, size_t len)
{ {
@ -950,6 +957,12 @@ static int menu_cbs_init_bind_title_compare_label(menu_file_list_cbs_t *cbs,
return 0; return 0;
} }
if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_WIFI_SETTINGS_LIST)))
{
BIND_ACTION_GET_TITLE(cbs, action_get_wifi_settings_list);
return 0;
}
if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_UPDATER_SETTINGS_LIST))) if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_UPDATER_SETTINGS_LIST)))
{ {
BIND_ACTION_GET_TITLE(cbs, action_get_updater_settings_list); BIND_ACTION_GET_TITLE(cbs, action_get_updater_settings_list);

View File

@ -4681,9 +4681,9 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
const char *ssid = ssid_list->elems[i].data; const char *ssid = ssid_list->elems[i].data;
menu_entries_append_enum(info->list, menu_entries_append_enum(info->list,
ssid, ssid,
msg_hash_to_str(MENU_ENUM_LABEL_LOAD_CONTENT), msg_hash_to_str(MENU_ENUM_LABEL_CONNECT_WIFI),
MENU_ENUM_LABEL_LOAD_CONTENT, MENU_ENUM_LABEL_CONNECT_WIFI,
MENU_SETTING_ACTION, 0, 0); 0, 0, 0);
} }
} }

View File

@ -722,6 +722,8 @@ enum msg_hash_enums
MENU_ENUM_LABEL_DIRECTORY_SETTINGS, MENU_ENUM_LABEL_DIRECTORY_SETTINGS,
MENU_ENUM_LABEL_PRIVACY_SETTINGS, MENU_ENUM_LABEL_PRIVACY_SETTINGS,
MENU_ENUM_LABEL_CONNECT_WIFI,
MENU_ENUM_LABEL_MENU_ENUM_LINEAR_FILTER, MENU_ENUM_LABEL_MENU_ENUM_LINEAR_FILTER,
MENU_ENUM_LABEL_VALUE_MENU_ENUM_LINEAR_FILTER, MENU_ENUM_LABEL_VALUE_MENU_ENUM_LINEAR_FILTER,

View File

@ -15,6 +15,7 @@
#include "../wifi_driver.h" #include "../wifi_driver.h"
#include <file/file_path.h> #include <file/file_path.h>
#include <compat/strl.h>
static void *connmanctl_init(const char *device, uint64_t caps, static void *connmanctl_init(const char *device, uint64_t caps,
unsigned width, unsigned height) unsigned width, unsigned height)
@ -43,13 +44,18 @@ static void connmanctl_scan(struct string_list *list)
{ {
union string_list_elem_attr attr; union string_list_elem_attr attr;
attr.i = RARCH_FILETYPE_UNSET; attr.i = RARCH_FILETYPE_UNSET;
char ssid[512]; char line[512];
FILE* file = popen("connmanctl services", "r"); pclose(popen("connmanctl scan wifi", "r"));
while (fgets (ssid, 512, file) != NULL)
FILE* serv_file = popen("connmanctl services", "r");
while (fgets (line, 512, serv_file) != NULL)
{
char ssid[20];
strlcpy(ssid, line+4, sizeof(ssid));
string_list_append(list, ssid, attr); string_list_append(list, ssid, attr);
}
pclose(file); pclose(serv_file);
} }
wifi_driver_t wifi_connmanctl = { wifi_driver_t wifi_connmanctl = {