From c17a6252cd24686ee9dd4a106b52171590a2ce5d Mon Sep 17 00:00:00 2001 From: Olliver Schinagl Date: Sun, 21 Jun 2015 16:43:35 +0200 Subject: add networkinfo get/set Signed-off-by: Olliver Schinagl --- src/eulogium.c | 2 ++ src/eulogium.h | 21 +++++++++++++++++++++ src/widget_data.h | 7 +++++++ 3 files changed, 30 insertions(+) diff --git a/src/eulogium.c b/src/eulogium.c index fb1cf9b..7111baf 100644 --- a/src/eulogium.c +++ b/src/eulogium.c @@ -3432,6 +3432,8 @@ static int eulogium_dbus_init(struct eulogium_data *eulogium) } _dbus_members_map(eulogium->dbus.proxy[NETWORK], menu_settings_network.entry); /* TODO: put signal/method name strings in macro/LUT */ + eldbus_proxy_call(eulogium->dbus.proxy[NETWORK], "getNetworkInfo", on_method_get_network_info_ret, eulogium, -1, ""); + eldbus_proxy_signal_handler_add(eulogium->dbus.proxy[NETWORK], "NetworkInfoChanged", on_signal_network_info_changed_ret, eulogium); eldbus_proxy_call(eulogium->dbus.proxy[PRINTER], "getError", _on_get_error_ret, eulogium, -1, ""); eldbus_proxy_signal_handler_add(eulogium->dbus.proxy[PRINTER], "onError", _on_error_ret, eulogium); diff --git a/src/eulogium.h b/src/eulogium.h index 67b58d4..8c3540b 100644 --- a/src/eulogium.h +++ b/src/eulogium.h @@ -19,6 +19,10 @@ #include "procedures.h" #include "widget_data.h" +#define IPV4_MAX_LEN 16 /* 255.255.255.255\0 */ +#define IPV6_MAX_LEN 40 /* ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff\0 */ +#define SSID_MAX_LEN 33 /* Section 7.3.2.1 SSID element of IEE802.11-2007 + \0 */ + enum screen_type { NONE, FUNC, @@ -57,6 +61,22 @@ struct mount_data { Eina_List **mounts; }; +#define _TECH_ETHERNET "ethernet" +#define _TECH_WIFI "wifi" + +enum network_tech { + ETHERNET, + WIFI, +}; + +struct network_data { + char *obj_path; + enum network_tech tech; + char ipv4[IPV4_MAX_LEN]; + char ipv6[IPV6_MAX_LEN]; + char ssid[SSID_MAX_LEN]; +}; + struct eulogium_data { Evas_Object *navi; Evas_Object *time; @@ -70,6 +90,7 @@ struct eulogium_data { struct dbus_data dbus; Eina_List *mounts; void *data; + struct network_data *networks; struct procedure_data *procedures; }; diff --git a/src/widget_data.h b/src/widget_data.h index dd6c936..bc50900 100644 --- a/src/widget_data.h +++ b/src/widget_data.h @@ -35,6 +35,11 @@ struct dir_entry_def { char *path; }; +struct wifi_entry_def { + void *data; + char *ssid; +}; + struct menu_entry_def { const char *icon; const char *label; @@ -51,6 +56,7 @@ struct menu_entry_def { enum list_type { LIST_MENU, LIST_FILE, + LIST_WIFI, }; struct menu_def { @@ -58,6 +64,7 @@ struct menu_def { enum list_type type; void *data; struct dir_entry_def dir; + struct wifi_entry_def wifi; /* TODO see if we can put this into a union somehow */ struct menu_entry_def entry[]; }; -- cgit v0.12