netstar pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=2915a51a931011c749876ffc917ac2bc36ab4b82

commit 2915a51a931011c749876ffc917ac2bc36ab4b82
Author: Alastair Poole <nets...@gmail.com>
Date:   Mon Mar 29 14:02:31 2021 +0100

    procstats: send message to theme edje object.
---
 src/modules/procstats/e_mod_main.c | 26 +++++++++++++++++++++-----
 1 file changed, 21 insertions(+), 5 deletions(-)

diff --git a/src/modules/procstats/e_mod_main.c 
b/src/modules/procstats/e_mod_main.c
index d8c2ede77..a9bff7ff7 100644
--- a/src/modules/procstats/e_mod_main.c
+++ b/src/modules/procstats/e_mod_main.c
@@ -257,28 +257,32 @@ _proc_stats_item_children_update(Eina_List *children, 
Proc_Stats *item)
 static char *
 _size_format(unsigned long long bytes)
 {
-   const char *units = "BKMGTPEZY";
    char buf[1024];
    unsigned long powi = 1;
    unsigned long long value;
    unsigned int precision = 2, powj = 1;
+   int i = 0;
+   const char *units[8] = {
+      _("B"), _("KiB"), _("MiB"), _("GiB"),
+      _("TiB"), _("PiB"), _("EiB"), _("ZiB"),
+   };
 
    value = bytes;
    while (value > 1024)
      {
        if ((value / 1024) < powi) break;
        powi *= 1024;
-       ++units;
-       if (units[1] == '\0') break;
+       ++i;
+       if (i == 7) break;
      }
-   if (*units == 'B') precision = 0;
+   if (!i) precision = 0;
    while (precision > 0)
      {
         powj *= 10;
         if ((value / powi) < powj) break;
         --precision;
      }
-   snprintf(buf, sizeof(buf), "%1.*f%c", precision, (double) value / powi, 
*units);
+   snprintf(buf, sizeof(buf), "%1.*f%s", precision, (double) value / powi, 
units[i]);
 
    return strdup(buf);
 }
@@ -286,6 +290,7 @@ _size_format(unsigned long long bytes)
 static void
 _proc_stats_item_display(Proc_Stats *item)
 {
+   Edje_Message_Int_Set *msg;
    Evas_Object *pb;
    Eina_Strbuf *buf;
    char *s;
@@ -296,6 +301,17 @@ _proc_stats_item_display(Proc_Stats *item)
 
    if (!item->cpu_time_prev) item->cpu_time_prev = item->cpu_time;
 
+   msg = malloc(sizeof(Edje_Message_Int_Set) + (sizeof(int) * 4));
+   EINA_SAFETY_ON_NULL_RETURN(msg);
+   msg->count = 5;
+   msg->val[0] = eina_cpu_count();
+   msg->val[1] = (item->cpu_time - item->cpu_time_prev) / POLL_TIME;
+   msg->val[2] = (int) _mem_total / 4096;
+   msg->val[3] = (int) item->mem_size / 4096;
+   msg->val[4] = 0;
+   edje_object_message_send(item->obj, EDJE_MESSAGE_INT_SET, 1, msg);
+   free(msg);
+
    if (!item->popup) return;
 
    pb = evas_object_data_get(item->popup, "pb_cpu");

-- 


Reply via email to