Enlightenment - Sysinfo Gadget - Allow configuring of max speeds for netstatus gadget.

This commit is contained in:
Stephen 'Okra' Houston 2017-01-19 14:17:05 -06:00
parent ba7e910f9c
commit 6ebb68777c
8 changed files with 346 additions and 39 deletions

View File

@ -298,6 +298,7 @@ _cpumonitor_created_cb(void *data, Evas_Object *obj, void *event_data EINA_UNUSE
e_gadget_configure_cb_set(inst->o_main, _cpumonitor_configure_cb);
inst->cfg->cpumonitor.o_gadget = elm_box_add(inst->o_main);
elm_box_padding_set(inst->cfg->cpumonitor.o_gadget, 0, 0);
if (orient == E_GADGET_SITE_ORIENT_VERTICAL)
elm_box_horizontal_set(inst->cfg->cpumonitor.o_gadget, EINA_FALSE);
else

View File

@ -1,5 +1,7 @@
#include "sysinfo.h"
#define CONFIG_VERSION 1
static E_Config_DD *conf_edd = NULL;
static E_Config_DD *conf_item_edd = NULL;
Eina_List *sysinfo_instances = NULL;
@ -9,12 +11,16 @@ Config *sysinfo_config = NULL;
EINTERN void
sysinfo_init(void)
{
Eina_List *l;
Config_Item *ci;
conf_item_edd = E_CONFIG_DD_NEW("Sysinfo_Config_Item", Config_Item);
#undef T
#undef D
#define T Config_Item
#define D conf_item_edd
E_CONFIG_VAL(D, T, id, INT);
E_CONFIG_VAL(D, T, version, INT);
E_CONFIG_VAL(D, T, esm, INT);
E_CONFIG_VAL(D, T, batman.poll_interval, INT);
E_CONFIG_VAL(D, T, batman.alert, INT);
@ -22,7 +28,7 @@ sysinfo_init(void)
E_CONFIG_VAL(D, T, batman.alert_timeout, INT);
E_CONFIG_VAL(D, T, batman.suspend_below, INT);
E_CONFIG_VAL(D, T, batman.force_mode, INT);
#if defined HAVE_EEZE || defined __OpenBSD__ || defined __NetBSD__
#if defined HAVE_EEZE || defined __OpenBSD__ || defined __NetBSD__
E_CONFIG_VAL(D, T, batman.fuzzy, INT);
#endif
E_CONFIG_VAL(D, T, batman.desktop_notifications, INT);
@ -42,6 +48,11 @@ sysinfo_init(void)
E_CONFIG_VAL(D, T, cpumonitor.poll_interval, INT);
E_CONFIG_VAL(D, T, memusage.poll_interval, INT);
E_CONFIG_VAL(D, T, netstatus.poll_interval, INT);
E_CONFIG_VAL(D, T, netstatus.automax, INT);
E_CONFIG_VAL(D, T, netstatus.inmax, INT);
E_CONFIG_VAL(D, T, netstatus.receive_units, INT);
E_CONFIG_VAL(D, T, netstatus.outmax, INT);
E_CONFIG_VAL(D, T, netstatus.send_units, INT);
conf_edd = E_CONFIG_DD_NEW("Sysinfo_Config", Config);
#undef T
@ -54,11 +65,10 @@ sysinfo_init(void)
if (!sysinfo_config)
{
Config_Item *ci;
sysinfo_config = E_NEW(Config, 1);
ci = E_NEW(Config_Item, 1);
ci->id = 0;
ci->version = CONFIG_VERSION;
ci->esm = E_SYSINFO_MODULE_NONE;
ci->batman.poll_interval = 512;
@ -102,6 +112,9 @@ sysinfo_init(void)
ci->memusage.popup = NULL;
ci->memusage.configure = NULL;
ci->netstatus.poll_interval = 32;
ci->netstatus.automax = EINA_TRUE;
ci->netstatus.receive_units = NETSTATUS_UNIT_BYTES;
ci->netstatus.send_units = NETSTATUS_UNIT_BYTES;
ci->netstatus.in = 0;
ci->netstatus.out = 0;
ci->netstatus.inmax = 0;
@ -133,6 +146,19 @@ sysinfo_init(void)
sysinfo_config->items = eina_list_append(sysinfo_config->items, ci);
}
EINA_LIST_FOREACH(sysinfo_config->items, l, ci)
{
if (ci->esm == E_SYSINFO_MODULE_NETSTATUS || ci->esm == E_SYSINFO_MODULE_SYSINFO)
{
if (ci->version < CONFIG_VERSION)
{
ci->version = CONFIG_VERSION;
ci->netstatus.automax = EINA_TRUE;
ci->netstatus.receive_units = NETSTATUS_UNIT_BYTES;
ci->netstatus.send_units = NETSTATUS_UNIT_BYTES;
}
}
}
e_gadget_type_add("Batman", batman_create, NULL);
e_gadget_type_add("Thermal", thermal_create, NULL);
e_gadget_type_add("CpuClock", cpuclock_create, NULL);

View File

@ -206,9 +206,6 @@ _netstatus_created_cb(void *data, Evas_Object *obj, void *event_data EINA_UNUSED
e_gadget_configure_cb_set(inst->o_main, _netstatus_configure_cb);
inst->cfg->netstatus.inmax = 0;
inst->cfg->netstatus.outmax = 0;
inst->cfg->netstatus.o_gadget = elm_layout_add(inst->o_main);
e_theme_edje_object_set(inst->cfg->netstatus.o_gadget, "base/theme/modules/netstatus",
"e/modules/netstatus/main");
@ -224,9 +221,6 @@ _netstatus_created_cb(void *data, Evas_Object *obj, void *event_data EINA_UNUSED
Evas_Object *
sysinfo_netstatus_create(Evas_Object *parent, Instance *inst)
{
inst->cfg->netstatus.inmax = 0;
inst->cfg->netstatus.outmax = 0;
inst->cfg->netstatus.o_gadget = elm_layout_add(parent);
e_theme_edje_object_set(inst->cfg->netstatus.o_gadget, "base/theme/modules/netstatus",
"e/modules/netstatus/main");
@ -260,10 +254,13 @@ _conf_item_get(int *id)
ci->esm = E_SYSINFO_MODULE_NETSTATUS;
ci->netstatus.poll_interval = 32;
ci->netstatus.in = 0;
ci->netstatus.out = 0;
ci->netstatus.automax = EINA_TRUE;
ci->netstatus.inmax = 0;
ci->netstatus.outmax = 0;
ci->netstatus.receive_units = NETSTATUS_UNIT_BYTES;
ci->netstatus.send_units = NETSTATUS_UNIT_BYTES;
ci->netstatus.in = 0;
ci->netstatus.out = 0;
ci->netstatus.incurrent = 0;
ci->netstatus.outcurrent = 0;
ci->netstatus.inpercent = 0;
@ -287,8 +284,6 @@ netstatus_create(Evas_Object *parent, int *id, E_Gadget_Site_Orient orient EINA_
*id = inst->cfg->id;
inst->cfg->netstatus.in = 0;
inst->cfg->netstatus.out = 0;
inst->cfg->netstatus.inmax = 0;
inst->cfg->netstatus.outmax = 0;
inst->cfg->netstatus.incurrent = 0;
inst->cfg->netstatus.outcurrent = 0;
inst->cfg->netstatus.inpercent = 0;

View File

@ -3,6 +3,19 @@
#include "../sysinfo.h"
typedef struct _Netstatus_Config Netstatus_Config;
struct _Netstatus_Config
{
Instance *inst;
Evas_Object *transfer_check;
Evas_Object *receive_max;
Evas_Object *receive_units;
Evas_Object *send_max;
Evas_Object *send_units;
int receive_unit_adjust;
int send_unit_adjust;
};
void _netstatus_config_updated(Instance *inst);
void _netstatus_proc_getrstatus(Instance *inst);
void _netstatus_proc_gettstatus(Instance *inst);

View File

@ -3,16 +3,19 @@
static void
_config_close(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Instance *inst = data;
Netstatus_Config *nc = data;
Instance *inst = nc->inst;
E_FREE_FUNC(inst->cfg->netstatus.configure, evas_object_del);
E_FREE_FUNC(nc, free);
e_config_save_queue();
}
static void
_config_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
_poll_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
Instance *inst = data;
Netstatus_Config *nc = data;
Instance *inst = nc->inst;
int value = elm_radio_value_get(obj);
switch(value)
@ -35,44 +38,159 @@ _config_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
default:
inst->cfg->netstatus.poll_interval = 32;
}
e_config_save_queue();
_netstatus_config_updated(inst);
}
static void
_update_receive_maximums(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Netstatus_Config *nc = data;
Instance *inst = nc->inst;
int value = elm_slider_value_get(nc->receive_max);
inst->cfg->netstatus.inmax = value * nc->receive_unit_adjust;
e_config_save_queue();
_netstatus_config_updated(inst);
}
static void
_update_send_maximums(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Netstatus_Config *nc = data;
Instance *inst = nc->inst;
int value = elm_slider_value_get(nc->send_max);
inst->cfg->netstatus.outmax = value * nc->send_unit_adjust;
e_config_save_queue();
_netstatus_config_updated(inst);
}
static void
_receive_hover_changed(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
{
Netstatus_Config *nc = data;
Instance *inst = nc->inst;
const char *txt = elm_object_item_text_get(event_info);
if (!strcmp(txt, _("Bytes")))
{
inst->cfg->netstatus.receive_units = NETSTATUS_UNIT_BYTES;
nc->receive_unit_adjust = 1;
}
if (!strcmp(txt, _("KB")))
{
inst->cfg->netstatus.receive_units = NETSTATUS_UNIT_KB;
nc->receive_unit_adjust = 1024;
}
if (!strcmp(txt, _("MB")))
{
inst->cfg->netstatus.receive_units = NETSTATUS_UNIT_MB;
nc->receive_unit_adjust = 2048;
}
if (!strcmp(txt, _("GB")))
{
inst->cfg->netstatus.receive_units = NETSTATUS_UNIT_GB;
nc->receive_unit_adjust = 3072;
}
_update_receive_maximums(nc, NULL, NULL);
}
static void
_send_hover_changed(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
{
Netstatus_Config *nc = data;
Instance *inst = nc->inst;
const char *txt = elm_object_item_text_get(event_info);
if (!strcmp(txt, _("Bytes")))
{
inst->cfg->netstatus.send_units = NETSTATUS_UNIT_BYTES;
nc->send_unit_adjust = 1;
}
if (!strcmp(txt, _("KB")))
{
inst->cfg->netstatus.send_units = NETSTATUS_UNIT_KB;
nc->send_unit_adjust = 1024;
}
if (!strcmp(txt, _("MB")))
{
inst->cfg->netstatus.send_units = NETSTATUS_UNIT_MB;
nc->send_unit_adjust = 2048;
}
if (!strcmp(txt, _("GB")))
{
inst->cfg->netstatus.send_units = NETSTATUS_UNIT_GB;
nc->send_unit_adjust = 3072;
}
_update_send_maximums(nc, NULL, NULL);
}
static void
_check_changed(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Netstatus_Config *nc = data;
Instance *inst = nc->inst;
if (elm_check_state_get(nc->transfer_check))
{
elm_object_disabled_set(nc->receive_max, EINA_TRUE);
elm_object_disabled_set(nc->receive_units, EINA_TRUE);
elm_object_disabled_set(nc->send_max, EINA_TRUE);
elm_object_disabled_set(nc->send_units, EINA_TRUE);
inst->cfg->netstatus.automax = EINA_TRUE;
}
else
{
elm_object_disabled_set(nc->receive_max, EINA_FALSE);
elm_object_disabled_set(nc->receive_units, EINA_FALSE);
elm_object_disabled_set(nc->send_max, EINA_FALSE);
elm_object_disabled_set(nc->send_units, EINA_FALSE);\
inst->cfg->netstatus.automax = EINA_FALSE;
_update_receive_maximums(nc, NULL, NULL);
_update_send_maximums(nc, NULL, NULL);
}
}
Evas_Object *
netstatus_configure(Instance *inst)
{
Evas_Object *popup, *frame, *box, *o, *group, *lbl;
Evas_Object *popup, *frame, *main_box, *box, *o, *group, *lbl;
Evas_Object *hover, *slider, *check;
E_Zone *zone = e_zone_current_get();
Netstatus_Config *nc = E_NEW(Netstatus_Config, 1);
nc->inst = inst;
popup = elm_popup_add(e_comp->elm);
E_EXPAND(popup);
elm_popup_allow_events_set(popup, 1);
elm_popup_scrollable_set(popup, 1);
box = elm_box_add(popup);
elm_box_horizontal_set(box, EINA_FALSE);
E_EXPAND(box);
E_FILL(box);
evas_object_show(box);
elm_object_content_set(popup, box);
main_box = elm_box_add(popup);
elm_box_horizontal_set(main_box, EINA_FALSE);
E_EXPAND(main_box);
E_FILL(main_box);
evas_object_show(main_box);
elm_object_content_set(popup, main_box);
lbl = elm_label_add(box);
lbl = elm_label_add(main_box);
evas_object_size_hint_weight_set(lbl, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(lbl, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_style_set(lbl, "marker");
elm_object_text_set(lbl, _("NetStatus Configuration"));
elm_box_pack_end(box, lbl);
elm_box_pack_end(main_box, lbl);
evas_object_show(lbl);
frame = elm_frame_add(box);
frame = elm_frame_add(main_box);
elm_object_text_set(frame, _("Update Poll Interval"));
E_EXPAND(frame);
E_FILL(frame);
elm_box_pack_end(box, frame);
elm_box_pack_end(main_box, frame);
evas_object_show(frame);
box = elm_box_add(popup);
box = elm_box_add(frame);
elm_box_horizontal_set(box, EINA_FALSE);
E_EXPAND(box);
evas_object_show(box);
@ -83,7 +201,7 @@ netstatus_configure(Instance *inst)
E_ALIGN(o, 0, 0);
elm_object_text_set(o, _("Fast (4 ticks)"));
elm_box_pack_end(box, o);
evas_object_smart_callback_add(o, "changed", _config_changed, inst);
evas_object_smart_callback_add(o, "changed", _poll_changed, inst);
evas_object_show(o);
group = o;
@ -94,7 +212,7 @@ netstatus_configure(Instance *inst)
E_ALIGN(o, 0, 0);
elm_object_text_set(o, _("Medium (8 ticks)"));
elm_box_pack_end(box, o);
evas_object_smart_callback_add(o, "changed", _config_changed, inst);
evas_object_smart_callback_add(o, "changed", _poll_changed, inst);
evas_object_show(o);
o = elm_radio_add(box);
@ -104,7 +222,7 @@ netstatus_configure(Instance *inst)
E_ALIGN(o, 0, 0);
elm_object_text_set(o, _("Normal (32 ticks)"));
elm_box_pack_end(box, o);
evas_object_smart_callback_add(o, "changed", _config_changed, inst);
evas_object_smart_callback_add(o, "changed", _poll_changed, inst);
evas_object_show(o);
o = elm_radio_add(box);
@ -113,7 +231,7 @@ netstatus_configure(Instance *inst)
E_ALIGN(o, 0, 0);
elm_object_text_set(o, _("Slow (64 ticks)"));
elm_box_pack_end(box, o);
evas_object_smart_callback_add(o, "changed", _config_changed, inst);
evas_object_smart_callback_add(o, "changed", _poll_changed, inst);
evas_object_show(o);
o = elm_radio_add(box);
@ -123,7 +241,7 @@ netstatus_configure(Instance *inst)
E_ALIGN(o, 0, 0);
elm_object_text_set(o, _("Very Slow (256 ticks)"));
elm_box_pack_end(box, o);
evas_object_smart_callback_add(o, "changed", _config_changed, inst);
evas_object_smart_callback_add(o, "changed", _poll_changed, inst);
evas_object_show(o);
switch(inst->cfg->netstatus.poll_interval)
@ -147,6 +265,136 @@ netstatus_configure(Instance *inst)
elm_radio_value_set(group, 2);
}
elm_object_content_set(frame, box);
frame = elm_frame_add(main_box);
elm_object_text_set(frame, _("Maximum Transfer Speed"));
E_EXPAND(frame);
E_FILL(frame);
elm_box_pack_end(main_box, frame);
evas_object_show(frame);
box = elm_box_add(frame);
elm_box_horizontal_set(box, EINA_FALSE);
E_EXPAND(box);
evas_object_show(box);
check = elm_check_add(box);
elm_object_text_set(check, _("Use Automatic Maximums"));
elm_check_state_set(check, inst->cfg->netstatus.automax);
evas_object_size_hint_align_set(check, EVAS_HINT_FILL, 0.5);
evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, 0.0);
evas_object_smart_callback_add(check, "changed", _check_changed, nc);
elm_box_pack_end(box, check);
evas_object_show(check);
nc->transfer_check = check;
slider = elm_slider_add(box);
elm_object_text_set(slider, _("Receive:"));
elm_slider_unit_format_set(slider, "%1.0f");
elm_slider_indicator_format_set(slider, "%1.0f");
elm_slider_min_max_set(slider, 0, 1000);
elm_slider_value_set(slider, inst->cfg->netstatus.inmax);
elm_slider_step_set(slider, 10);
elm_slider_span_size_set(slider, 100);
evas_object_size_hint_align_set(slider, EVAS_HINT_FILL, 0.5);
evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND, 0.0);
evas_object_smart_callback_add(slider, "delay,changed", _update_receive_maximums, nc);
if (inst->cfg->netstatus.automax) elm_object_disabled_set(slider, EINA_TRUE);
elm_box_pack_end(box, slider);
evas_object_show(slider);
nc->receive_max = slider;
hover = elm_hoversel_add(box);
elm_hoversel_auto_update_set(hover, EINA_TRUE);
elm_hoversel_hover_parent_set(hover, popup);
elm_hoversel_item_add(hover, _("Bytes"), NULL, ELM_ICON_NONE, NULL, NULL);
if (inst->cfg->netstatus.receive_units == NETSTATUS_UNIT_BYTES)
{
elm_object_text_set(hover, _("Bytes"));
nc->receive_unit_adjust = 1;
}
elm_hoversel_item_add(hover, _("KB"), NULL, ELM_ICON_NONE, NULL, NULL);
if (inst->cfg->netstatus.receive_units == NETSTATUS_UNIT_KB)
{
elm_object_text_set(hover, _("KB"));
nc->receive_unit_adjust = 1024;
}
elm_hoversel_item_add(hover, _("MB"), NULL, ELM_ICON_NONE, NULL, NULL);
if (inst->cfg->netstatus.receive_units == NETSTATUS_UNIT_MB)
{
elm_object_text_set(hover, _("MB"));
nc->receive_unit_adjust = 2048;
}
elm_hoversel_item_add(hover, _("GB"), NULL, ELM_ICON_NONE, NULL, NULL);
if (inst->cfg->netstatus.receive_units == NETSTATUS_UNIT_GB)
{
elm_object_text_set(hover, _("GB"));
nc->receive_unit_adjust = 3072;
}
evas_object_size_hint_align_set(hover, EVAS_HINT_FILL, 0.5);
evas_object_size_hint_weight_set(hover, EVAS_HINT_EXPAND, 0.0);
if (inst->cfg->netstatus.automax) elm_object_disabled_set(hover, EINA_TRUE);
evas_object_smart_callback_add(hover, "selected", _receive_hover_changed, nc);
elm_box_pack_end(box, hover);
evas_object_show(hover);
nc->receive_units = hover;
elm_slider_value_set(nc->receive_max, ceil(inst->cfg->netstatus.inmax / nc->receive_unit_adjust));
slider = elm_slider_add(box);
elm_object_text_set(slider, _("Send:"));
elm_slider_unit_format_set(slider, "%1.0f");
elm_slider_indicator_format_set(slider, "%1.0f");
elm_slider_min_max_set(slider, 0, 1000);
elm_slider_value_set(slider, inst->cfg->netstatus.outmax);
elm_slider_step_set(slider, 10);
elm_slider_span_size_set(slider, 100);
evas_object_size_hint_align_set(slider, EVAS_HINT_FILL, 0.5);
evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND, 0.0);
evas_object_smart_callback_add(slider, "delay,changed", _update_send_maximums, nc);
if (inst->cfg->netstatus.automax) elm_object_disabled_set(slider, EINA_TRUE);
elm_box_pack_end(box, slider);
evas_object_show(slider);
nc->send_max = slider;
hover = elm_hoversel_add(box);
elm_hoversel_auto_update_set(hover, EINA_TRUE);
elm_hoversel_hover_parent_set(hover, popup);
elm_hoversel_item_add(hover, _("Bytes"), NULL, ELM_ICON_NONE, NULL, nc);
if (inst->cfg->netstatus.send_units == NETSTATUS_UNIT_BYTES)
{
elm_object_text_set(hover, _("Bytes"));
nc->send_unit_adjust = 1;
}
elm_hoversel_item_add(hover, _("KB"), NULL, ELM_ICON_NONE, NULL, nc);
if (inst->cfg->netstatus.send_units == NETSTATUS_UNIT_KB)
{
elm_object_text_set(hover, _("KB"));
nc->send_unit_adjust = 1024;
}
elm_hoversel_item_add(hover, _("MB"), NULL, ELM_ICON_NONE, NULL, nc);
if (inst->cfg->netstatus.send_units == NETSTATUS_UNIT_MB)
{
elm_object_text_set(hover, _("MB"));
nc->send_unit_adjust = 2048;
}
elm_hoversel_item_add(hover, _("GB"), NULL, ELM_ICON_NONE, NULL, nc);
if (inst->cfg->netstatus.send_units == NETSTATUS_UNIT_GB)
{
elm_object_text_set(hover, _("GB"));
nc->send_unit_adjust = 3072;
}
evas_object_size_hint_align_set(hover, EVAS_HINT_FILL, 0.5);
evas_object_size_hint_weight_set(hover, EVAS_HINT_EXPAND, 0.0);
if (inst->cfg->netstatus.automax) elm_object_disabled_set(hover, EINA_TRUE);
evas_object_smart_callback_add(hover, "selected", _send_hover_changed, nc);
elm_box_pack_end(box, hover);
evas_object_show(hover);
nc->send_units = hover;
elm_slider_value_set(nc->send_max, ceil(inst->cfg->netstatus.outmax / nc->send_unit_adjust));
elm_object_content_set(frame, box);
popup = e_comp_object_util_add(popup, E_COMP_OBJECT_TYPE_NONE);
evas_object_layer_set(popup, E_LAYER_POPUP);
@ -154,7 +402,7 @@ netstatus_configure(Instance *inst)
e_comp_object_util_center_on_zone(popup, zone);
evas_object_show(popup);
e_comp_object_util_autoclose(popup, NULL, e_comp_object_util_autoclose_on_escape, NULL);
evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, _config_close, inst);
evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, _config_close, nc);
return inst->cfg->netstatus.configure = popup;
}

View File

@ -29,8 +29,11 @@ _netstatus_proc_getrstatus(Instance *inst)
else
{
inst->cfg->netstatus.in = tot_in;
if (diffin > inst->cfg->netstatus.inmax)
inst->cfg->netstatus.inmax = diffin;
if (inst->cfg->netstatus.automax)
{
if (diffin > inst->cfg->netstatus.inmax)
inst->cfg->netstatus.inmax = diffin;
}
inst->cfg->netstatus.incurrent = diffin;
if (inst->cfg->netstatus.inmax > 0)
percent = 100 * ((float)inst->cfg->netstatus.incurrent / (float)inst->cfg->netstatus.inmax);
@ -84,8 +87,11 @@ _netstatus_proc_gettstatus(Instance *inst)
else
{
inst->cfg->netstatus.out = tot_out;
if (diffout > inst->cfg->netstatus.outmax)
inst->cfg->netstatus.outmax = diffout;
if (inst->cfg->netstatus.automax)
{
if (diffout > inst->cfg->netstatus.outmax)
inst->cfg->netstatus.outmax = diffout;
}
inst->cfg->netstatus.outcurrent = diffout;
if (inst->cfg->netstatus.outcurrent > 0)
percent = 100 * ((float)inst->cfg->netstatus.outcurrent / (float)inst->cfg->netstatus.outmax);

View File

@ -135,6 +135,11 @@ _conf_item_get(int *id)
ci->netstatus.outstring = NULL;
ci->netstatus.popup = NULL;
ci->netstatus.configure = NULL;
ci->netstatus.automax = EINA_TRUE;
ci->netstatus.inmax = 0;
ci->netstatus.outmax = 0;
ci->netstatus.receive_units = NETSTATUS_UNIT_BYTES;
ci->netstatus.send_units = NETSTATUS_UNIT_BYTES;
sysinfo_config->items = eina_list_append(sysinfo_config->items, ci);

View File

@ -27,6 +27,15 @@ enum _E_Sysinfo_Module
E_SYSINFO_MODULE_SYSINFO
};
typedef enum _Netstatus_Unit Netstatus_Unit;
enum _Netstatus_Unit
{
NETSTATUS_UNIT_BYTES = 0,
NETSTATUS_UNIT_KB,
NETSTATUS_UNIT_MB,
NETSTATUS_UNIT_GB
};
typedef enum _Sensor_Type
{
SENSOR_TYPE_NONE,
@ -112,6 +121,7 @@ struct _Config
struct _Config_Item
{
int id;
int version;
E_Sysinfo_Module esm;
struct
{
@ -203,6 +213,9 @@ struct _Config_Item
Evas_Object *o_gadget;
Evas_Object *popup;
Evas_Object *configure;
Eina_Bool automax;
Netstatus_Unit receive_units;
Netstatus_Unit send_units;
int poll_interval;
long in;
long out;