netstar pushed a commit to branch master.

http://git.enlightenment.org/apps/evisum.git/commit/?id=712708e55591fbd9a3323f9902954ed1664a9a7e

commit 712708e55591fbd9a3323f9902954ed1664a9a7e
Author: Alastair Poole <nets...@gmail.com>
Date:   Tue Jan 5 16:52:45 2021 +0000

    memory: --vectors.
    
    Vector on the roof. **** off vector.
---
 src/bin/ui/ui_memory.c | 254 ++-----------------------------------------------
 1 file changed, 7 insertions(+), 247 deletions(-)

diff --git a/src/bin/ui/ui_memory.c b/src/bin/ui/ui_memory.c
index c1c5e1f..10b2895 100644
--- a/src/bin/ui/ui_memory.c
+++ b/src/bin/ui/ui_memory.c
@@ -6,7 +6,6 @@
 typedef struct  {
    Ecore_Thread *thread;
    Evas_Object  *win;
-   Evas_Object  *bg;
 
    Evas_Object  *used;
    Evas_Object  *cached;
@@ -15,46 +14,9 @@ typedef struct  {
    Evas_Object  *swap;
    Evas_Object  *video[MEM_VIDEO_CARD_MAX];
 
-   int           pos;
-
    Ui           *ui;
 } Ui_Data;
 
-static Eina_Bool starting = 1;
-
-#define STEP      1
-#define MAX_HIST  2048
-#define UPOLLTIME 250000
-
-#define GR_USED   0
-#define GR_CACHED 1
-#define GR_BUFFER 2
-#define GR_SHARED 3
-
-#define COLOR_USED   206, 70, 93, 255
-#define COLOR_CACHED 135, 190, 85, 255
-#define COLOR_BUFFER 100, 177, 242, 255
-#define COLOR_SHARED 225, 107, 62, 255
-#define COLOR_NONE   0, 0, 0, 0
-
-#if !defined(__OpenBSD__)
-static
-#endif
-Eina_Lock _mlock;
-
-typedef struct
-{
-   Eina_List *blocks;
-   int        pos;
-   double     history[MAX_HIST];
-   int        r, g, b, a;
-} Graph;
-
-#if !defined(__OpenBSD__)
-static
-#endif
-Graph graphs[4];
-
 static Evas_Object *
 _label_mem(Evas_Object *parent, const char *text)
 {
@@ -79,89 +41,6 @@ _progress_add(Evas_Object *parent)
    return pb;
 }
 
-static Evas_Object *
-vg_add(Evas_Object *w)
-{
-   Evas_Object *o;
-   Evas_Vg_Container *con;
-   Evas_Vg_Shape *sh;
-
-   o = evas_object_vg_add(evas_object_evas_get(w));
-   con = evas_vg_container_add(o);
-   sh = evas_vg_shape_add(con);
-   evas_object_show(o);
-   evas_object_vg_root_node_set(o, con);
-   evas_object_data_set(o, "con", con);
-   evas_object_data_set(o, "shape", sh);
-   return o;
-}
-
-static void
-vg_fill(Evas_Object *o, Ui_Data *pd, int w, int h, double *pt, int r, int g, 
int b, int a)
-{
-   Evas_Vg_Shape *sh;
-   int i;
-   double v;
-   Evas_Vg_Node *n;
-
-   evas_object_resize(o, w, h);
-   sh = evas_object_data_get(o, "shape");
-   evas_vg_shape_reset(sh);
-   evas_vg_shape_append_move_to(sh, 0, h);
-   for (i = 0; i < w; i++)
-     {
-        v = (h / 100) * pt[i];
-        if      (v < -h) v = -h;
-        else if (v >  h) v = h;
-        evas_vg_shape_append_line_to(sh, i, h - v);
-     }
-   evas_vg_shape_append_line_to(sh, pd->pos, h);
-   n = evas_object_data_get(sh, "shape");
-   evas_vg_shape_fill_set(sh, n);
-   evas_vg_node_color_set(sh, r, g, b, a);
-   evas_vg_node_origin_set(n, 0, 0);
-}
-
-static void
-position_shrink_list(Eina_List *list)
-{
-   Evas_Object *o;
-   Eina_List *l, *ll;
-   int i = 0;
-
-   EINA_LIST_FOREACH_SAFE(list, l, ll, o)
-     {
-        if (i++ > 0)
-          {
-             evas_object_del(o);
-             list = eina_list_remove_list(list, l);
-          }
-     }
-}
-
-static void
-position_gr_list(Eina_List *list, int w, int h, int offset)
-{
-   Evas_Object *o;
-   Eina_List *l, *ll;
-   int x = w - offset;
-
-   EINA_LIST_FOREACH_SAFE(list, l, ll, o)
-     {
-        if (x + w < 0)
-          {
-             evas_object_del(o);
-             list = eina_list_remove_list(list, l);
-          }
-        else
-          {
-             evas_object_move(o, x, 0);
-             evas_object_resize(o, w, h);
-          }
-        x -= (w - STEP);
-     }
-}
-
 static void
 _mem_usage_main_cb(void *data EINA_UNUSED, Ecore_Thread *thread)
 {
@@ -175,7 +54,7 @@ _mem_usage_main_cb(void *data EINA_UNUSED, Ecore_Thread 
*thread)
           memory.used += memory.zfs_arc_used;
 
         ecore_thread_feedback(thread, &memory);
-        usleep(UPOLLTIME);
+        usleep(1000000);
      }
 }
 
@@ -252,100 +131,18 @@ _update_widgets(Ui_Data *pd, meminfo_t *memory)
      }
 }
 
-static void
-_reverse(double *arr, int n)
-{
-   for (int i = 0, j = n - 1; i < j; i++, j--)
-     {
-        double tmp = arr[i];
-        arr[i] = arr[j];
-        arr[j] = tmp;
-     }
-}
-
-static void
-_update_graph(Graph *graph, double perc, Ui_Data *pd, Evas_Coord w, Evas_Coord 
h)
-{
-   int i, r, g, b, a;
-   Evas_Object *o;
-
-   r = graph->r; g = graph->g; b = graph->b; a = graph->a;
-
-   if (graph->pos == 0)
-     {
-        if (starting)
-          for (i = 0; i < MAX_HIST; i++)
-            graph->history[i] = 0;
-        else
-          _reverse(graph->history, MAX_HIST);
-
-        o = vg_add(pd->bg);
-        graph->blocks = eina_list_prepend(graph->blocks, o);
-     }
-   o = graph->blocks->data;
-   graph->history[graph->pos] = perc;
-   pd->pos = graph->pos;
-   vg_fill(o, pd, w, h, graph->history, r, g, b, a);
-   position_gr_list(graph->blocks, w, h, graph->pos);
-
-   graph->pos += STEP;
-   if (graph->pos >= w) graph->pos = 0;
-}
-
 static void
 _mem_usage_feedback_cb(void *data, Ecore_Thread *thread EINA_UNUSED, void 
*msgdata)
 {
-   Evas_Coord w, h;
    Ui_Data *pd;
    meminfo_t *memory;
-   double ratio;
 
    pd = data;
    memory = msgdata;
 
    if (ecore_thread_check(thread)) return;
 
-   ratio = memory->total / 100.0;
-   if (ratio == 0.0) return;
-
    _update_widgets(pd, memory);
-
-   evas_object_geometry_get(pd->bg, NULL, NULL, &w, &h);
-
-   eina_lock_take(&_mlock);
-
-   _update_graph(&graphs[GR_USED], memory->used / ratio, pd, w, h);
-   _update_graph(&graphs[GR_CACHED], memory->cached / ratio, pd, w, h);
-   _update_graph(&graphs[GR_BUFFER], memory->buffered / ratio, pd, w, h);
-   _update_graph(&graphs[GR_SHARED], memory->shared / ratio, pd, w, h);
-
-   if (starting) starting = 0;
-   eina_lock_release(&_mlock);
-}
-
-static void
-_graph_init(Graph *graph, int r, int g, int b, int a)
-{
-   memset(graph, 0, sizeof(Graph));
-   graph->r = r; graph->g = g; graph->b = b, graph->a = a;
-}
-
-static Evas_Object *
-_graph_guide(Evas_Object *parent, int r, int g, int b, int a)
-{
-   Evas_Object *btn, *rec;;
-
-   btn = elm_button_add(parent);
-   evas_object_show(btn);
-
-   rec = evas_object_rectangle_add(parent);
-   evas_object_color_set(rec, r, g, b, a);
-   evas_object_size_hint_min_set(rec, ELM_SCALE_SIZE(16), ELM_SCALE_SIZE(16));
-   evas_object_size_hint_max_set(rec, ELM_SCALE_SIZE(16), ELM_SCALE_SIZE(16));
-   evas_object_show(rec);
-   elm_object_part_content_set(btn, "elm.swallow.content", rec);
-
-   return btn;
 }
 
 static void
@@ -369,22 +166,21 @@ _win_move_cb(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj, void *event_info
 {
    Ui_Data *pd;
    Ui *ui;
-   Evas_Coord x = 0, y = 0;
 
    pd = data;
    ui = pd->ui;
 
-   evas_object_geometry_get(obj, &x, &y, NULL, NULL);
-   ui->mem.x = x;
-   ui->mem.y = y;
+   evas_object_geometry_get(obj, &ui->mem.x, &ui->mem.y, NULL, NULL);
 }
 
 static void
 _win_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj,
             void *event_info EINA_UNUSED)
 {
+   Ui *ui;
    Ui_Data *pd = data;
-   Ui *ui = pd->ui;
+
+   ui = pd->ui;
 
    evisum_ui_config_save(ui);
    ecore_thread_cancel(pd->thread);
@@ -393,31 +189,20 @@ _win_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj,
    evas_object_del(obj);
    ui->mem.win = NULL;
    free(pd);
-   eina_lock_free(&_mlock);
 }
 
 static void
 _win_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
    Ui_Data *pd = data;
-   Ui *ui = pd->ui;
-
-   eina_lock_take(&_mlock);
-
-   position_shrink_list((&graphs[GR_USED])->blocks);
-   position_shrink_list((&graphs[GR_CACHED])->blocks);
-   position_shrink_list((&graphs[GR_BUFFER])->blocks);
-   position_shrink_list((&graphs[GR_SHARED])->blocks);
 
-   eina_lock_release(&_mlock);
-
-   evisum_ui_config_save(ui);
+   evisum_ui_config_save(pd->ui);
 }
 
 void
 ui_win_memory_add(Ui *ui)
 {
-   Evas_Object *win, *lb, *bx, *tbl, *rec, *pb;
+   Evas_Object *win, *lb, *bx, *tbl, *pb;
    Evas_Object *fr;
    int i;
    meminfo_t memory;
@@ -432,8 +217,6 @@ ui_win_memory_add(Ui *ui)
    if (!pd) return;
    pd->ui = ui;
 
-   eina_lock_new(&_mlock);
-
    memset(&memory, 0, sizeof(memory));
    system_memory_usage_get(&memory);
 
@@ -445,27 +228,12 @@ ui_win_memory_add(Ui *ui)
    evisum_ui_background_random_add(win,
                                    evisum_ui_backgrounds_enabled_get());
 
-   _graph_init(&graphs[GR_USED],   COLOR_USED);
-   _graph_init(&graphs[GR_CACHED], COLOR_CACHED);
-   _graph_init(&graphs[GR_BUFFER], COLOR_BUFFER);
-   _graph_init(&graphs[GR_SHARED], COLOR_SHARED);
-
    bx = elm_box_add(win);
    evas_object_size_hint_weight_set(bx, EXPAND, 0);
    evas_object_size_hint_align_set(bx, FILL, FILL);
    evas_object_show(bx);
    elm_object_content_set(win, bx);
 
-   pd->bg = rec = evas_object_rectangle_add(evas_object_evas_get(win));
-   evas_object_size_hint_weight_set(rec, EXPAND, EXPAND);
-   evas_object_size_hint_align_set(rec, FILL, FILL);
-   evas_object_color_set(rec, 32, 32, 32, 255);
-   evas_object_size_hint_min_set(rec, 1, ELM_SCALE_SIZE(200));
-   evas_object_size_hint_max_set(rec, MAX_HIST, ELM_SCALE_SIZE(480));
-   evas_object_show(rec);
-
-   elm_box_pack_end(bx, rec);
-
    fr = elm_frame_add(win);
    evas_object_size_hint_weight_set(fr, EXPAND, EXPAND);
    evas_object_size_hint_align_set(fr, FILL, FILL);
@@ -483,29 +251,21 @@ ui_win_memory_add(Ui *ui)
 
    lb = _label_mem(tbl, _("Used"));
    pd->used = pb = _progress_add(tbl);
-   rec = _graph_guide(tbl, COLOR_USED);
-   elm_table_pack(tbl, rec, 0, 1, 1, 1);
    elm_table_pack(tbl, lb, 1, 1, 1, 1);
    elm_table_pack(tbl, pb, 2, 1, 1, 1);
 
    lb = _label_mem(tbl, _("Cached"));
    pd->cached = pb = _progress_add(tbl);
-   rec = _graph_guide(tbl, COLOR_CACHED);
-   elm_table_pack(tbl, rec, 0, 2, 1, 1);
    elm_table_pack(tbl, lb, 1, 2, 1, 1);
    elm_table_pack(tbl, pb, 2, 2, 1, 1);
 
    lb = _label_mem(tbl, _("Buffered"));
    pd->buffered = pb = _progress_add(tbl);
-   rec = _graph_guide(tbl, COLOR_BUFFER);
-   elm_table_pack(tbl, rec, 0, 3, 1, 1);
    elm_table_pack(tbl, lb, 1, 3, 1, 1);
    elm_table_pack(tbl, pb, 2, 3, 1, 1);
 
    lb = _label_mem(tbl, _("Shared"));
    pd->shared = pb = _progress_add(tbl);
-   rec = _graph_guide(tbl, COLOR_SHARED);
-   elm_table_pack(tbl, rec, 0, 4, 1, 1);
    elm_table_pack(tbl, lb, 1, 4, 1, 1);
    elm_table_pack(tbl, pb, 2, 4, 1, 1);
 

-- 


Reply via email to