Refactoring and fixing stuff.
This commit is contained in:
parent
f5a1292c39
commit
45b3dcfa87
|
@ -6,6 +6,10 @@ This is a process monitor and system monitor.
|
||||||
|
|
||||||
Currently have full engines for Linux, FreeBSD, OpenBSD and MacOS.
|
Currently have full engines for Linux, FreeBSD, OpenBSD and MacOS.
|
||||||
|
|
||||||
|
The plan is to rewrite the whole program to log system information
|
||||||
|
over time to disk so we can do nice things with E and displaying
|
||||||
|
system information (not duplicating loads of code).
|
||||||
|
|
||||||
REQUIREMENTS:
|
REQUIREMENTS:
|
||||||
|
|
||||||
An installation of EFL (v1.19.0+). Remember to set your PKG_CONFIG_PATH environment
|
An installation of EFL (v1.19.0+). Remember to set your PKG_CONFIG_PATH environment
|
||||||
|
|
|
@ -265,3 +265,4 @@ disks_get(void)
|
||||||
return NULL;
|
return NULL;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,5 +13,4 @@ disk_mount_point_get(const char *path);
|
||||||
Eina_List *
|
Eina_List *
|
||||||
disks_get(void);
|
disks_get(void);
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
13
src/system.c
13
src/system.c
|
@ -155,7 +155,11 @@ _sysctlfromname(const char *name, void *mib, int depth, size_t *len)
|
||||||
static int
|
static int
|
||||||
cpu_count(void)
|
cpu_count(void)
|
||||||
{
|
{
|
||||||
int cores = 0;
|
static int cores = 0;
|
||||||
|
|
||||||
|
if (cores != 0)
|
||||||
|
return cores;
|
||||||
|
|
||||||
#if defined(__linux__)
|
#if defined(__linux__)
|
||||||
char buf[4096];
|
char buf[4096];
|
||||||
FILE *f;
|
FILE *f;
|
||||||
|
@ -1124,7 +1128,6 @@ system_power_state_get(power_t *power)
|
||||||
_power_state_get(power);
|
_power_state_get(power);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
system_network_transfer_get(unsigned long *incoming, unsigned long *outgoing)
|
system_network_transfer_get(unsigned long *incoming, unsigned long *outgoing)
|
||||||
{
|
{
|
||||||
|
@ -1176,13 +1179,14 @@ system_cpu_memory_get(double *percent_cpu, long *memory_total, long *memory_used
|
||||||
return results.cpu_count;
|
return results.cpu_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *_network_transfer_get_thread_cb(void *arg)
|
static void *
|
||||||
|
_network_transfer_get_thread_cb(void *arg)
|
||||||
{
|
{
|
||||||
results_t *results = arg;
|
results_t *results = arg;
|
||||||
|
|
||||||
_network_transfer_get(results);
|
_network_transfer_get(results);
|
||||||
|
|
||||||
return ((void *) 0);
|
return (void *)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -1214,4 +1218,3 @@ system_stats_all_get(results_t *results)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
69
src/ui.c
69
src/ui.c
|
@ -251,9 +251,11 @@ _data_unit_symbol_get(Data_Unit unit)
|
||||||
case DATA_UNIT_KB:
|
case DATA_UNIT_KB:
|
||||||
symbol = "K";
|
symbol = "K";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DATA_UNIT_MB:
|
case DATA_UNIT_MB:
|
||||||
symbol = "M";
|
symbol = "M";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DATA_UNIT_GB:
|
case DATA_UNIT_GB:
|
||||||
symbol = "G";
|
symbol = "G";
|
||||||
break;
|
break;
|
||||||
|
@ -265,13 +267,13 @@ _data_unit_symbol_get(Data_Unit unit)
|
||||||
static void
|
static void
|
||||||
_fields_append(Ui *ui, Proc_Stats *proc)
|
_fields_append(Ui *ui, Proc_Stats *proc)
|
||||||
{
|
{
|
||||||
const char *format;
|
const char *symbol;
|
||||||
int64_t mem_size, mem_rss;
|
int64_t mem_size, mem_rss;
|
||||||
|
|
||||||
if (ui->program_pid == proc->pid)
|
if (ui->program_pid == proc->pid)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
format = _data_unit_symbol_get(ui->data_unit);
|
symbol = _data_unit_symbol_get(ui->data_unit);
|
||||||
|
|
||||||
mem_size = proc->mem_size;
|
mem_size = proc->mem_size;
|
||||||
mem_rss = proc->mem_rss;
|
mem_rss = proc->mem_rss;
|
||||||
|
@ -284,7 +286,7 @@ _fields_append(Ui *ui, Proc_Stats *proc)
|
||||||
else if (ui->data_unit == DATA_UNIT_MB)
|
else if (ui->data_unit == DATA_UNIT_MB)
|
||||||
{
|
{
|
||||||
mem_size >>= 20;
|
mem_size >>= 20;
|
||||||
mem_rss >>= 10;
|
mem_rss >>= 20;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -294,8 +296,8 @@ _fields_append(Ui *ui, Proc_Stats *proc)
|
||||||
|
|
||||||
eina_strlcat(ui->fields[PROCESS_INFO_FIELD_PID], eina_slstr_printf("<link>%d</link> <br>", proc->pid), TEXT_FIELD_MAX);
|
eina_strlcat(ui->fields[PROCESS_INFO_FIELD_PID], eina_slstr_printf("<link>%d</link> <br>", proc->pid), TEXT_FIELD_MAX);
|
||||||
eina_strlcat(ui->fields[PROCESS_INFO_FIELD_UID], eina_slstr_printf("%d <br>", proc->uid), TEXT_FIELD_MAX);
|
eina_strlcat(ui->fields[PROCESS_INFO_FIELD_UID], eina_slstr_printf("%d <br>", proc->uid), TEXT_FIELD_MAX);
|
||||||
eina_strlcat(ui->fields[PROCESS_INFO_FIELD_SIZE], eina_slstr_printf("%lld %c<br>", mem_size, *format), TEXT_FIELD_MAX);
|
eina_strlcat(ui->fields[PROCESS_INFO_FIELD_SIZE], eina_slstr_printf("%lld %c<br>", mem_size, *symbol), TEXT_FIELD_MAX);
|
||||||
eina_strlcat(ui->fields[PROCESS_INFO_FIELD_RSS], eina_slstr_printf("%lld %c<br>", mem_rss, *format), TEXT_FIELD_MAX);
|
eina_strlcat(ui->fields[PROCESS_INFO_FIELD_RSS], eina_slstr_printf("%lld %c<br>", mem_rss, *symbol), TEXT_FIELD_MAX);
|
||||||
eina_strlcat(ui->fields[PROCESS_INFO_FIELD_COMMAND], eina_slstr_printf("%s<br>", proc->command), TEXT_FIELD_MAX);
|
eina_strlcat(ui->fields[PROCESS_INFO_FIELD_COMMAND], eina_slstr_printf("%s<br>", proc->command), TEXT_FIELD_MAX);
|
||||||
eina_strlcat(ui->fields[PROCESS_INFO_FIELD_STATE], eina_slstr_printf("%s <br>", proc->state), TEXT_FIELD_MAX);
|
eina_strlcat(ui->fields[PROCESS_INFO_FIELD_STATE], eina_slstr_printf("%s <br>", proc->state), TEXT_FIELD_MAX);
|
||||||
eina_strlcat(ui->fields[PROCESS_INFO_FIELD_CPU_USAGE], eina_slstr_printf("%.1f%% <br>", proc->cpu_usage), TEXT_FIELD_MAX);
|
eina_strlcat(ui->fields[PROCESS_INFO_FIELD_CPU_USAGE], eina_slstr_printf("%.1f%% <br>", proc->cpu_usage), TEXT_FIELD_MAX);
|
||||||
|
@ -534,7 +536,6 @@ _btn_uid_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info E
|
||||||
elm_scroller_page_bring_in(ui->scroller, 0, 0);
|
elm_scroller_page_bring_in(ui->scroller, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_btn_cpu_usage_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
_btn_cpu_usage_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||||
{
|
{
|
||||||
|
@ -628,18 +629,6 @@ _btn_quit_clicked_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
|
||||||
ui_shutdown(ui);
|
ui_shutdown(ui);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
_btn_about_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
|
||||||
{
|
|
||||||
Ui *ui;
|
|
||||||
Evas_Object *win;
|
|
||||||
|
|
||||||
ui = data;
|
|
||||||
win = ui->win;
|
|
||||||
|
|
||||||
printf("(c) Copyright 2018. Alastair Poole <netstar@gmail.com>\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_list_item_del_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
_list_item_del_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||||
{
|
{
|
||||||
|
@ -878,14 +867,15 @@ _disk_adjust(Data_Unit unit, unsigned long value)
|
||||||
{
|
{
|
||||||
if (unit == DATA_UNIT_KB)
|
if (unit == DATA_UNIT_KB)
|
||||||
{
|
{
|
||||||
value <<= 10;
|
value >>= 10;
|
||||||
}
|
}
|
||||||
else if (unit == DATA_UNIT_MB)
|
else if (unit == DATA_UNIT_MB)
|
||||||
{
|
{
|
||||||
|
value >>= 20;
|
||||||
}
|
}
|
||||||
else if (unit == DATA_UNIT_GB)
|
else if (unit == DATA_UNIT_GB)
|
||||||
{
|
{
|
||||||
value >>= 10;
|
value >>= 30;
|
||||||
}
|
}
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
|
@ -895,7 +885,7 @@ static void
|
||||||
_ui_disk_add(Ui *ui, const char *path, const char *mount, unsigned long total, unsigned long used)
|
_ui_disk_add(Ui *ui, const char *path, const char *mount, unsigned long total, unsigned long used)
|
||||||
{
|
{
|
||||||
Evas_Object *frame, *progress;
|
Evas_Object *frame, *progress;
|
||||||
const char *format;
|
const char *symbol;
|
||||||
double ratio, value;
|
double ratio, value;
|
||||||
|
|
||||||
frame = elm_frame_add(ui->disk_activity);
|
frame = elm_frame_add(ui->disk_activity);
|
||||||
|
@ -909,10 +899,13 @@ _ui_disk_add(Ui *ui, const char *path, const char *mount, unsigned long total, u
|
||||||
evas_object_size_hint_weight_set(progress, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
evas_object_size_hint_weight_set(progress, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
elm_progressbar_span_size_set(progress, 1.0);
|
elm_progressbar_span_size_set(progress, 1.0);
|
||||||
|
|
||||||
format = _data_unit_symbol_get(ui->data_unit);
|
symbol = _data_unit_symbol_get(ui->data_unit);
|
||||||
|
|
||||||
elm_progressbar_unit_format_set(progress,
|
elm_progressbar_unit_format_set(progress,
|
||||||
eina_slstr_printf("%lu%c of %lu%c", _disk_adjust(ui->data_unit, used), *format, _disk_adjust(ui->data_unit, total), *format));
|
eina_slstr_printf(
|
||||||
|
"%lu%c of %lu%c",
|
||||||
|
_disk_adjust(ui->data_unit, used), *symbol,
|
||||||
|
_disk_adjust(ui->data_unit, total), *symbol));
|
||||||
|
|
||||||
elm_object_content_set(frame, progress);
|
elm_object_content_set(frame, progress);
|
||||||
|
|
||||||
|
@ -949,7 +942,6 @@ _disk_view_update(Ui *ui)
|
||||||
{
|
{
|
||||||
if (disk_usage_get(mount, &total, &used))
|
if (disk_usage_get(mount, &total, &used))
|
||||||
{
|
{
|
||||||
total >>= 20; used >>= 20;
|
|
||||||
_ui_disk_add(ui, path, mount, total, used);
|
_ui_disk_add(ui, path, mount, total, used);
|
||||||
}
|
}
|
||||||
free(mount);
|
free(mount);
|
||||||
|
@ -1088,7 +1080,7 @@ static void
|
||||||
_memory_view_update(Ui *ui, results_t *results)
|
_memory_view_update(Ui *ui, results_t *results)
|
||||||
{
|
{
|
||||||
Evas_Object *box, *frame, *progress;
|
Evas_Object *box, *frame, *progress;
|
||||||
const char *format;
|
const char *symbol;
|
||||||
double ratio, value;
|
double ratio, value;
|
||||||
|
|
||||||
if (!ui->mem_visible)
|
if (!ui->mem_visible)
|
||||||
|
@ -1096,7 +1088,7 @@ _memory_view_update(Ui *ui, results_t *results)
|
||||||
|
|
||||||
elm_box_clear(ui->mem_activity);
|
elm_box_clear(ui->mem_activity);
|
||||||
|
|
||||||
format = _data_unit_symbol_get(ui->data_unit);
|
symbol = _data_unit_symbol_get(ui->data_unit);
|
||||||
|
|
||||||
box = elm_box_add(ui->content);
|
box = elm_box_add(ui->content);
|
||||||
evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
|
@ -1113,7 +1105,11 @@ _memory_view_update(Ui *ui, results_t *results)
|
||||||
evas_object_size_hint_weight_set(progress, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
evas_object_size_hint_weight_set(progress, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
elm_progressbar_span_size_set(progress, 1.0);
|
elm_progressbar_span_size_set(progress, 1.0);
|
||||||
elm_progressbar_unit_format_set(progress,
|
elm_progressbar_unit_format_set(progress,
|
||||||
eina_slstr_printf("%lu %c / %lu %c", _mem_adjust(ui->data_unit, results->memory.used), *format, _mem_adjust(ui->data_unit, results->memory.total), *format));
|
eina_slstr_printf(
|
||||||
|
"%lu %c / %lu %c",
|
||||||
|
_mem_adjust(ui->data_unit, results->memory.used), *symbol,
|
||||||
|
_mem_adjust(ui->data_unit, results->memory.total), *symbol));
|
||||||
|
|
||||||
ratio = results->memory.total / 100.0;
|
ratio = results->memory.total / 100.0;
|
||||||
value = results->memory.used / ratio;
|
value = results->memory.used / ratio;
|
||||||
elm_progressbar_value_set(progress, value / 100);
|
elm_progressbar_value_set(progress, value / 100);
|
||||||
|
@ -1130,8 +1126,11 @@ _memory_view_update(Ui *ui, results_t *results)
|
||||||
evas_object_size_hint_align_set(progress, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
evas_object_size_hint_align_set(progress, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
evas_object_size_hint_weight_set(progress, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
evas_object_size_hint_weight_set(progress, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
elm_progressbar_span_size_set(progress, 1.0);
|
elm_progressbar_span_size_set(progress, 1.0);
|
||||||
elm_progressbar_unit_format_set(progress,
|
elm_progressbar_unit_format_set(progress, eina_slstr_printf(
|
||||||
eina_slstr_printf("%lu %c / %lu %c", _mem_adjust(ui->data_unit, results->memory.cached), *format, _mem_adjust(ui->data_unit, results->memory.total), *format));
|
"%lu %c / %lu %c",
|
||||||
|
_mem_adjust(ui->data_unit, results->memory.cached), *symbol,
|
||||||
|
_mem_adjust(ui->data_unit, results->memory.total), *symbol));
|
||||||
|
|
||||||
ratio = results->memory.total / 100.0;
|
ratio = results->memory.total / 100.0;
|
||||||
value = results->memory.cached / ratio;
|
value = results->memory.cached / ratio;
|
||||||
elm_progressbar_value_set(progress, value / 100);
|
elm_progressbar_value_set(progress, value / 100);
|
||||||
|
@ -1149,7 +1148,11 @@ _memory_view_update(Ui *ui, results_t *results)
|
||||||
evas_object_size_hint_weight_set(progress, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
evas_object_size_hint_weight_set(progress, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
elm_progressbar_span_size_set(progress, 1.0);
|
elm_progressbar_span_size_set(progress, 1.0);
|
||||||
elm_progressbar_unit_format_set(progress,
|
elm_progressbar_unit_format_set(progress,
|
||||||
eina_slstr_printf("%lu %c / %lu %c", _mem_adjust(ui->data_unit, results->memory.buffered), *format, _mem_adjust(ui->data_unit, results->memory.total), *format));
|
eina_slstr_printf(
|
||||||
|
"%lu %c / %lu %c",
|
||||||
|
_mem_adjust(ui->data_unit, results->memory.buffered), *symbol,
|
||||||
|
_mem_adjust(ui->data_unit, results->memory.total), *symbol));
|
||||||
|
|
||||||
ratio = results->memory.total / 100.0;
|
ratio = results->memory.total / 100.0;
|
||||||
value = results->memory.buffered / ratio;
|
value = results->memory.buffered / ratio;
|
||||||
elm_progressbar_value_set(progress, value / 100);
|
elm_progressbar_value_set(progress, value / 100);
|
||||||
|
@ -1167,7 +1170,11 @@ _memory_view_update(Ui *ui, results_t *results)
|
||||||
evas_object_size_hint_weight_set(progress, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
evas_object_size_hint_weight_set(progress, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
elm_progressbar_span_size_set(progress, 1.0);
|
elm_progressbar_span_size_set(progress, 1.0);
|
||||||
elm_progressbar_unit_format_set(progress,
|
elm_progressbar_unit_format_set(progress,
|
||||||
eina_slstr_printf("%lu %c / %lu %c", _mem_adjust(ui->data_unit, results->memory.shared), *format, _mem_adjust(ui->data_unit, results->memory.total), *format));
|
eina_slstr_printf(
|
||||||
|
"%lu %c / %lu %c",
|
||||||
|
_mem_adjust(ui->data_unit, results->memory.shared), *symbol,
|
||||||
|
_mem_adjust(ui->data_unit, results->memory.total), *symbol));
|
||||||
|
|
||||||
ratio = results->memory.total / 100.0;
|
ratio = results->memory.total / 100.0;
|
||||||
value = results->memory.shared / ratio;
|
value = results->memory.shared / ratio;
|
||||||
elm_progressbar_value_set(progress, value / 100);
|
elm_progressbar_value_set(progress, value / 100);
|
||||||
|
|
2
src/ui.h
2
src/ui.h
|
@ -126,7 +126,6 @@ typedef struct Ui
|
||||||
Sort_Type sort_type;
|
Sort_Type sort_type;
|
||||||
Eina_Bool sort_reverse;
|
Eina_Bool sort_reverse;
|
||||||
Eina_Bool panel_visible;
|
Eina_Bool panel_visible;
|
||||||
|
|
||||||
} Ui;
|
} Ui;
|
||||||
|
|
||||||
Ui *
|
Ui *
|
||||||
|
@ -135,5 +134,4 @@ ui_add(Evas_Object *win);
|
||||||
void
|
void
|
||||||
ui_shutdown(Ui *ui);
|
ui_shutdown(Ui *ui);
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue