forked from enlightenment/evisum
background: move this to its own namespace.
This commit is contained in:
parent
e906cfffc8
commit
58a039a820
|
@ -0,0 +1,78 @@
|
|||
#include "evisum_background.h"
|
||||
#include "../system/filesystems.h"
|
||||
#include "../ui/evisum_ui.h"
|
||||
|
||||
#include <Eina.h>
|
||||
|
||||
void
|
||||
background_poller_cb(void *data, Ecore_Thread *thread)
|
||||
{
|
||||
meminfo_t memory;
|
||||
power_t power;
|
||||
int32_t poll_count = 0;
|
||||
Battery *bat;
|
||||
Evisum_Ui *ui = data;
|
||||
|
||||
system_memory_usage_get(&memory);
|
||||
ui->mem_total = memory.total;
|
||||
ui->mem_used = memory.used;
|
||||
|
||||
system_power_state_get(&power);
|
||||
if (power.battery_count)
|
||||
{
|
||||
ui->have_power = power.have_ac;
|
||||
for (int i = 0; i < power.battery_count; i++)
|
||||
{
|
||||
if (!power.batteries[i]->present) continue;
|
||||
bat = calloc(1, sizeof(Battery));
|
||||
bat->index = i;
|
||||
snprintf(bat->model, sizeof(bat->model), "%s", power.batteries[i]->model);
|
||||
snprintf(bat->vendor, sizeof(bat->vendor), "%s", power.batteries[i]->vendor);
|
||||
bat->usage = power.batteries[i]->percent;
|
||||
ui->batteries = eina_list_append(ui->batteries, bat);
|
||||
}
|
||||
}
|
||||
system_power_state_free(&power);
|
||||
|
||||
while (!ecore_thread_check(thread))
|
||||
{
|
||||
int ncpu;
|
||||
double percent = 0.0;
|
||||
cpu_core_t **cores = system_cpu_usage_delayed_get(&ncpu, 250000);
|
||||
for (int i = 0; i < ncpu; i++)
|
||||
{
|
||||
percent += cores[i]->percent;
|
||||
free(cores[i]);
|
||||
}
|
||||
free(cores);
|
||||
|
||||
system_memory_usage_get(&memory);
|
||||
ui->mem_used = memory.used;
|
||||
if (file_system_in_use("ZFS"))
|
||||
ui->mem_used += memory.zfs_arc_used;
|
||||
|
||||
ui->cpu_usage = percent / system_cpu_online_count_get();
|
||||
|
||||
if ((!(poll_count % 4)) && (ui->batteries))
|
||||
{
|
||||
Eina_List *l;
|
||||
system_power_state_get(&power);
|
||||
ui->have_power = power.have_ac;
|
||||
for (int i = 0; i < power.battery_count; i++)
|
||||
{
|
||||
if (!power.batteries[i]->present) continue;
|
||||
l = eina_list_nth_list(ui->batteries, i);
|
||||
if (!l) continue;
|
||||
bat = eina_list_data_get(l);
|
||||
bat->usage = power.batteries[i]->percent;
|
||||
}
|
||||
system_power_state_free(&power);
|
||||
}
|
||||
|
||||
poll_count++;
|
||||
}
|
||||
|
||||
EINA_LIST_FREE(ui->batteries, bat)
|
||||
free(bat);
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
#ifndef EVISUM_BACKGROUND_H
|
||||
#define EVISUM_BACKGROUND_H
|
||||
|
||||
#include <Ecore.h>
|
||||
|
||||
void
|
||||
background_poller_cb(void *data, Ecore_Thread *thread);
|
||||
|
||||
#endif
|
|
@ -0,0 +1,4 @@
|
|||
src += files([
|
||||
'evisum_background.c',
|
||||
'evisum_background.h',
|
||||
])
|
|
@ -8,7 +8,7 @@
|
|||
#include "evisum_config.h"
|
||||
#include "evisum_server.h"
|
||||
#include "ui/evisum_ui.h"
|
||||
#include "system/filesystems.h"
|
||||
#include "background/evisum_background.h"
|
||||
|
||||
static Eina_Bool
|
||||
_shutdown_cb(void *data, int type, void *event EINA_UNUSED)
|
||||
|
@ -30,79 +30,6 @@ _signals(Evisum_Ui *ui)
|
|||
ui->handler_sig = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, _shutdown_cb, ui);
|
||||
}
|
||||
|
||||
// XXX!!!
|
||||
static void
|
||||
_background_poller_cb(void *data, Ecore_Thread *thread)
|
||||
{
|
||||
meminfo_t memory;
|
||||
power_t power;
|
||||
int32_t poll_count = 0;
|
||||
Battery *bat;
|
||||
Evisum_Ui *ui = data;
|
||||
|
||||
system_memory_usage_get(&memory);
|
||||
ui->mem_total = memory.total;
|
||||
ui->mem_used = memory.used;
|
||||
|
||||
system_power_state_get(&power);
|
||||
if (power.battery_count)
|
||||
{
|
||||
ui->have_power = power.have_ac;
|
||||
for (int i = 0; i < power.battery_count; i++)
|
||||
{
|
||||
if (!power.batteries[i]->present) continue;
|
||||
bat = calloc(1, sizeof(Battery));
|
||||
bat->index = i;
|
||||
snprintf(bat->model, sizeof(bat->model), "%s", power.batteries[i]->model);
|
||||
snprintf(bat->vendor, sizeof(bat->vendor), "%s", power.batteries[i]->vendor);
|
||||
bat->usage = power.batteries[i]->percent;
|
||||
ui->batteries = eina_list_append(ui->batteries, bat);
|
||||
}
|
||||
}
|
||||
system_power_state_free(&power);
|
||||
|
||||
while (!ecore_thread_check(thread))
|
||||
{
|
||||
int ncpu;
|
||||
double percent = 0.0;
|
||||
cpu_core_t **cores = system_cpu_usage_delayed_get(&ncpu, 250000);
|
||||
for (int i = 0; i < ncpu; i++)
|
||||
{
|
||||
percent += cores[i]->percent;
|
||||
free(cores[i]);
|
||||
}
|
||||
free(cores);
|
||||
|
||||
system_memory_usage_get(&memory);
|
||||
ui->mem_used = memory.used;
|
||||
if (file_system_in_use("ZFS"))
|
||||
ui->mem_used += memory.zfs_arc_used;
|
||||
|
||||
ui->cpu_usage = percent / system_cpu_online_count_get();
|
||||
|
||||
if ((!(poll_count % 4)) && (ui->batteries))
|
||||
{
|
||||
Eina_List *l;
|
||||
system_power_state_get(&power);
|
||||
ui->have_power = power.have_ac;
|
||||
for (int i = 0; i < power.battery_count; i++)
|
||||
{
|
||||
if (!power.batteries[i]->present) continue;
|
||||
l = eina_list_nth_list(ui->batteries, i);
|
||||
if (!l) continue;
|
||||
bat = eina_list_data_get(l);
|
||||
bat->usage = power.batteries[i]->percent;
|
||||
}
|
||||
system_power_state_free(&power);
|
||||
}
|
||||
|
||||
poll_count++;
|
||||
}
|
||||
|
||||
EINA_LIST_FREE(ui->batteries, bat)
|
||||
free(bat);
|
||||
}
|
||||
|
||||
int
|
||||
elm_main(int argc, char **argv)
|
||||
{
|
||||
|
@ -182,7 +109,7 @@ elm_main(int argc, char **argv)
|
|||
evisum_server_init(ui);
|
||||
evisum_ui_activate(ui, action, pid);
|
||||
|
||||
ui->background_poll_thread = ecore_thread_run(_background_poller_cb, NULL, NULL, ui);
|
||||
ui->background_poll_thread = ecore_thread_run(background_poller_cb, NULL, NULL, ui);
|
||||
|
||||
ecore_main_loop_begin();
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ src = []
|
|||
|
||||
subdir('system')
|
||||
subdir('ui')
|
||||
subdir('background')
|
||||
|
||||
src += files([
|
||||
'main.c',
|
||||
|
|
|
@ -1285,15 +1285,8 @@ _process_list_feedback_cb(void *data, Ecore_Thread *thread EINA_UNUSED,
|
|||
eina_list_free(real);
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
printf("active %d and inactive %d => %d (realized)\n",
|
||||
eina_list_count(wd->cache->active),
|
||||
eina_list_count(wd->cache->inactive), n);
|
||||
#endif
|
||||
if (wd->first_run)
|
||||
{
|
||||
_first_run_tasks(wd);
|
||||
}
|
||||
_first_run_tasks(wd);
|
||||
|
||||
wd->poll_count++;
|
||||
|
||||
|
|
Loading…
Reference in New Issue