summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorOlliver Schinagl <o.schinagl@ultimaker.com>2015-06-21 14:43:35 (GMT)
committerOlliver Schinagl <o.schinagl@ultimaker.com>2015-06-21 14:43:35 (GMT)
commitc17a6252cd24686ee9dd4a106b52171590a2ce5d (patch)
treef8bf2b5b28f6cc2bb3a3dcfcd1d3efe3113c4182 /src
parent60125d43e66623e3cd3a2721327cb2ebf622b00f (diff)
downloadeulogium-c17a6252cd24686ee9dd4a106b52171590a2ce5d.zip
eulogium-c17a6252cd24686ee9dd4a106b52171590a2ce5d.tar.gz
eulogium-c17a6252cd24686ee9dd4a106b52171590a2ce5d.tar.bz2
add networkinfo get/set
Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>
Diffstat (limited to 'src')
-rw-r--r--src/eulogium.c2
-rw-r--r--src/eulogium.h21
-rw-r--r--src/widget_data.h7
3 files changed, 30 insertions, 0 deletions
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[];
};