split freq and cpu % on 2 rows if cpufreq overlay is on
This commit is contained in:
parent
c4ac095568
commit
dc4e297024
|
@ -29,18 +29,22 @@ typedef struct _Color_Point {
|
||||||
} Color_Point;
|
} Color_Point;
|
||||||
|
|
||||||
// config for colors/sizing
|
// config for colors/sizing
|
||||||
|
#define COLOR_CPU_NUM 5
|
||||||
static const Color_Point cpu_colormap_in[] = {
|
static const Color_Point cpu_colormap_in[] = {
|
||||||
{ 0, 0xff202020 }, // 0
|
{ 0, 0xff202020 }, // 0
|
||||||
{ 33, 0xff2030a0 }, // 1
|
{ 25, 0xff2030a0 }, // 1
|
||||||
{ 66, 0xffa040a0 }, // 2
|
{ 50, 0xffa040a0 }, // 2
|
||||||
{ 100, 0xffff9040 }, // 3
|
{ 75, 0xffff9040 }, // 3
|
||||||
{ 256, 0xffff9040 } // overflow to avoid if's
|
{ 100, 0xffffffff }, // 4
|
||||||
|
{ 256, 0xffffffff } // overflow to avoid if's
|
||||||
};
|
};
|
||||||
|
#define COLOR_FREQ_NUM 4
|
||||||
static const Color_Point freq_colormap_in[] = {
|
static const Color_Point freq_colormap_in[] = {
|
||||||
{ 0, 0x00000000 }, // 0
|
{ 0, 0xff202020 }, // 0
|
||||||
{ 50, 0x00105020 }, // 1
|
{ 33, 0xff285020 }, // 1
|
||||||
{ 100, 0x002060c0 }, // 2
|
{ 67, 0xff30a060 }, // 2
|
||||||
{ 256, 0x002060c0 } // overflow to avoid if's
|
{ 100, 0xffa0ff80 }, // 3
|
||||||
|
{ 256, 0xffa0ff80 } // overflow to avoid if's
|
||||||
};
|
};
|
||||||
#define BAR_HEIGHT 2
|
#define BAR_HEIGHT 2
|
||||||
#define COLORS_HEIGHT 20
|
#define COLORS_HEIGHT 20
|
||||||
|
@ -153,7 +157,7 @@ _update(Animate *ad, Core *cores)
|
||||||
// new size and mark it for clearing when we fill
|
// new size and mark it for clearing when we fill
|
||||||
if (iw != w)
|
if (iw != w)
|
||||||
{
|
{
|
||||||
evas_object_image_size_set(obj, w, ad->cpu_count);
|
evas_object_image_size_set(obj, w, ad->cpu_count * 2);
|
||||||
clear = EINA_TRUE;
|
clear = EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,32 +172,31 @@ _update(Animate *ad, Core *cores)
|
||||||
{
|
{
|
||||||
Core *core = &(cores[y]);
|
Core *core = &(cores[y]);
|
||||||
unsigned int c1, c2;
|
unsigned int c1, c2;
|
||||||
unsigned int a, r, g, b;
|
|
||||||
unsigned int a2, r2, g2, b2;
|
|
||||||
|
|
||||||
// our pix ptr is the pixel row and y is both y pixel coord and core
|
// our pix ptr is the pixel row and y is both y pixel coord and core
|
||||||
pix = &(pixels[y * (stride / 4)]);
|
|
||||||
if (clear)
|
if (clear)
|
||||||
{
|
{
|
||||||
// clear/fill with 0 value from colormap
|
// clear/fill with 0 value from colormap
|
||||||
|
pix = &(pixels[(y * 2) * (stride / 4)]);
|
||||||
for (x = 0; x < (w - 1); x++) pix[x] = cpu_colormap[0];
|
for (x = 0; x < (w - 1); x++) pix[x] = cpu_colormap[0];
|
||||||
|
pix = &(pixels[((y * 2) + 1) * (stride / 4)]);
|
||||||
|
for (x = 0; x < (w - 1); x++) pix[x] = freq_colormap[0];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// scroll pixels 1 to the left
|
// scroll pixels 1 to the left
|
||||||
|
pix = &(pixels[(y * 2) * (stride / 4)]);
|
||||||
|
for (x = 0; x < (w - 1); x++) pix[x] = pix[x + 1];
|
||||||
|
pix = &(pixels[((y * 2) + 1) * (stride / 4)]);
|
||||||
for (x = 0; x < (w - 1); x++) pix[x] = pix[x + 1];
|
for (x = 0; x < (w - 1); x++) pix[x] = pix[x + 1];
|
||||||
}
|
}
|
||||||
// final pixel on end of each row... set it to a new value
|
// final pixel on end of each row... set it to a new value
|
||||||
// get color from cpu colormap and decompose to rgb
|
// get color from cpu colormap
|
||||||
|
// last pixel == resulting pixel color
|
||||||
c1 = cpu_colormap[core->percent & 0xff];
|
c1 = cpu_colormap[core->percent & 0xff];
|
||||||
a = AVAL(c1);
|
pix = &(pixels[(y * 2) * (stride / 4)]);
|
||||||
r = RVAL(c1);
|
pix[x] = c1;
|
||||||
g = GVAL(c1);
|
// 2nd row of pixles for freq
|
||||||
b = BVAL(c1);
|
|
||||||
// if we overlay freq, then we will do argb addition of freq color
|
|
||||||
// and cpu percent usage color. designed to affect mostly different
|
|
||||||
// rgb channels so you can see when freq goes up but not cpu % or
|
|
||||||
// vice-versa
|
|
||||||
if ((ad->show_cpufreq) && (ad->cpu_freq))
|
if ((ad->show_cpufreq) && (ad->cpu_freq))
|
||||||
{
|
{
|
||||||
int v = core->freq - ad->freq_min;
|
int v = core->freq - ad->freq_min;
|
||||||
|
@ -208,30 +211,23 @@ _update(Animate *ad, Core *cores)
|
||||||
// v now is 0->100 as a percentage of possible frequency
|
// v now is 0->100 as a percentage of possible frequency
|
||||||
// the cpu can do
|
// the cpu can do
|
||||||
c2 = freq_colormap[v & 0xff];
|
c2 = freq_colormap[v & 0xff];
|
||||||
a2 = AVAL(c2);
|
|
||||||
r2 = RVAL(c2);
|
|
||||||
g2 = GVAL(c2);
|
|
||||||
b2 = BVAL(c2);
|
|
||||||
// do argb add and then limit arb to max of 0xff since
|
|
||||||
// the add can overflow 0xff
|
|
||||||
a += a2;
|
|
||||||
r += r2;
|
|
||||||
g += g2;
|
|
||||||
b += b2;
|
|
||||||
if (a > 0xff) a = 0xff;
|
|
||||||
if (r > 0xff) r = 0xff;
|
|
||||||
if (g > 0xff) g = 0xff;
|
|
||||||
if (b > 0xff) b = 0xff;
|
|
||||||
}
|
}
|
||||||
|
else c2 = freq_colormap[0];
|
||||||
|
pix = &(pixels[((y * 2) + 1) * (stride / 4)]);
|
||||||
|
pix[x] = c2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// no freq show - then just repeat cpu usage color
|
||||||
|
pix = &(pixels[((y * 2) + 1) * (stride / 4)]);
|
||||||
|
pix[x] = c1;
|
||||||
}
|
}
|
||||||
// last pixel == resulting pixel color
|
|
||||||
pix[x] = ARGB(a, r, g, b);
|
|
||||||
}
|
}
|
||||||
// hand back pixel data ptr so evas knows we are done with it
|
// hand back pixel data ptr so evas knows we are done with it
|
||||||
evas_object_image_data_set(obj, pixels);
|
evas_object_image_data_set(obj, pixels);
|
||||||
// now add update region for all pixels in the image at the end as we
|
// now add update region for all pixels in the image at the end as we
|
||||||
// changed everything
|
// changed everything
|
||||||
evas_object_image_data_update_add(obj, 0, 0, w, ad->cpu_count);
|
evas_object_image_data_update_add(obj, 0, 0, w, ad->cpu_count * 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -304,8 +300,8 @@ _graph(Ui *ui, Evas_Object *parent)
|
||||||
system_cpu_frequency_min_max_get(&ad->freq_min, &ad->freq_max);
|
system_cpu_frequency_min_max_get(&ad->freq_min, &ad->freq_max);
|
||||||
|
|
||||||
// init colormaps from a small # of points
|
// init colormaps from a small # of points
|
||||||
_color_init(cpu_colormap_in, 4, cpu_colormap);
|
_color_init(cpu_colormap_in, COLOR_CPU_NUM, cpu_colormap);
|
||||||
_color_init(freq_colormap_in, 3, freq_colormap);
|
_color_init(freq_colormap_in, COLOR_FREQ_NUM, freq_colormap);
|
||||||
|
|
||||||
box = parent;
|
box = parent;
|
||||||
|
|
||||||
|
@ -337,7 +333,7 @@ _graph(Ui *ui, Evas_Object *parent)
|
||||||
{
|
{
|
||||||
rec = evas_object_rectangle_add(evas_object_evas_get(parent));
|
rec = evas_object_rectangle_add(evas_object_evas_get(parent));
|
||||||
evas_object_color_set(rec, 0, 0, 0, 0);
|
evas_object_color_set(rec, 0, 0, 0, 0);
|
||||||
evas_object_size_hint_min_set(rec, ELM_SCALE_SIZE(24), ELM_SCALE_SIZE(24));
|
evas_object_size_hint_min_set(rec, ELM_SCALE_SIZE(8), ELM_SCALE_SIZE(8));
|
||||||
evas_object_size_hint_weight_set(rec, 0.0, EXPAND);
|
evas_object_size_hint_weight_set(rec, 0.0, EXPAND);
|
||||||
elm_table_pack(tbl, rec, 0, i, 1, 1);
|
elm_table_pack(tbl, rec, 0, i, 1, 1);
|
||||||
|
|
||||||
|
@ -356,12 +352,12 @@ _graph(Ui *ui, Evas_Object *parent)
|
||||||
|
|
||||||
rec = evas_object_rectangle_add(evas_object_evas_get(parent));
|
rec = evas_object_rectangle_add(evas_object_evas_get(parent));
|
||||||
evas_object_color_set(rec, 0, 0, 0, 0);
|
evas_object_color_set(rec, 0, 0, 0, 0);
|
||||||
evas_object_size_hint_min_set(rec, ELM_SCALE_SIZE(24), ELM_SCALE_SIZE(24));
|
evas_object_size_hint_min_set(rec, ELM_SCALE_SIZE(8), ELM_SCALE_SIZE(8));
|
||||||
evas_object_size_hint_weight_set(rec, 0.0, EXPAND);
|
evas_object_size_hint_weight_set(rec, 0.0, EXPAND);
|
||||||
elm_table_pack(tbl, rec, 2, i, 1, 1);
|
elm_table_pack(tbl, rec, 2, i, 1, 1);
|
||||||
|
|
||||||
lb = elm_label_add(parent);
|
lb = elm_label_add(parent);
|
||||||
snprintf(buf, sizeof(buf), "<b>%i</>", i);
|
snprintf(buf, sizeof(buf), "<b><color=#fff>%i</></>", i);
|
||||||
elm_object_text_set(lb, buf);
|
elm_object_text_set(lb, buf);
|
||||||
evas_object_size_hint_align_set(lb, 1.0, 0.5);
|
evas_object_size_hint_align_set(lb, 1.0, 0.5);
|
||||||
evas_object_size_hint_weight_set(lb, 0.0, EXPAND);
|
evas_object_size_hint_weight_set(lb, 0.0, EXPAND);
|
||||||
|
@ -404,7 +400,7 @@ _graph(Ui *ui, Evas_Object *parent)
|
||||||
evas_object_show(colors);
|
evas_object_show(colors);
|
||||||
|
|
||||||
lb = elm_label_add(parent);
|
lb = elm_label_add(parent);
|
||||||
elm_object_text_set(lb, "<b>0%</>");
|
elm_object_text_set(lb, "<b><color=#fff>0%</></>");
|
||||||
evas_object_size_hint_align_set(lb, 0.0, 0.5);
|
evas_object_size_hint_align_set(lb, 0.0, 0.5);
|
||||||
evas_object_size_hint_weight_set(lb, EXPAND, EXPAND);
|
evas_object_size_hint_weight_set(lb, EXPAND, EXPAND);
|
||||||
elm_table_pack(tbl, lb, 0, 0, 1, 1);
|
elm_table_pack(tbl, lb, 0, 0, 1, 1);
|
||||||
|
@ -413,9 +409,9 @@ _graph(Ui *ui, Evas_Object *parent)
|
||||||
lb = elm_label_add(parent);
|
lb = elm_label_add(parent);
|
||||||
f = (ad->freq_min + 500) / 1000;
|
f = (ad->freq_min + 500) / 1000;
|
||||||
if (f < 1000)
|
if (f < 1000)
|
||||||
snprintf(buf, sizeof(buf), "<b>%iMHz</>", f);
|
snprintf(buf, sizeof(buf), "<b><color=#fff>%iMHz</></>", f);
|
||||||
else
|
else
|
||||||
snprintf(buf, sizeof(buf), "<b>%1.1fGHz</>", ((double)f + 0.05) / 1000.0);
|
snprintf(buf, sizeof(buf), "<b><color=#fff>%1.1fGHz</></>", ((double)f + 0.05) / 1000.0);
|
||||||
elm_object_text_set(lb, buf);
|
elm_object_text_set(lb, buf);
|
||||||
evas_object_size_hint_align_set(lb, 0.0, 0.5);
|
evas_object_size_hint_align_set(lb, 0.0, 0.5);
|
||||||
evas_object_size_hint_weight_set(lb, EXPAND, EXPAND);
|
evas_object_size_hint_weight_set(lb, EXPAND, EXPAND);
|
||||||
|
@ -423,7 +419,7 @@ _graph(Ui *ui, Evas_Object *parent)
|
||||||
evas_object_show(lb);
|
evas_object_show(lb);
|
||||||
|
|
||||||
lb = elm_label_add(parent);
|
lb = elm_label_add(parent);
|
||||||
elm_object_text_set(lb, "<b>100%</>");
|
elm_object_text_set(lb, "<b><color=#fff>100%</></>");
|
||||||
evas_object_size_hint_align_set(lb, 1.0, 0.5);
|
evas_object_size_hint_align_set(lb, 1.0, 0.5);
|
||||||
evas_object_size_hint_weight_set(lb, EXPAND, EXPAND);
|
evas_object_size_hint_weight_set(lb, EXPAND, EXPAND);
|
||||||
elm_table_pack(tbl, lb, 1, 0, 1, 1);
|
elm_table_pack(tbl, lb, 1, 0, 1, 1);
|
||||||
|
@ -432,9 +428,9 @@ _graph(Ui *ui, Evas_Object *parent)
|
||||||
lb = elm_label_add(parent);
|
lb = elm_label_add(parent);
|
||||||
f = (ad->freq_max + 500) / 1000;
|
f = (ad->freq_max + 500) / 1000;
|
||||||
if (f < 1000)
|
if (f < 1000)
|
||||||
snprintf(buf, sizeof(buf), "<b>%iMHz</>", f);
|
snprintf(buf, sizeof(buf), "<b><color=#fff>%iMHz</></>", f);
|
||||||
else
|
else
|
||||||
snprintf(buf, sizeof(buf), "<b>%1.1fGHz</>", ((double)f + 0.05) / 1000.0);
|
snprintf(buf, sizeof(buf), "<b><color=#fff>%1.1fGHz</></>", ((double)f + 0.05) / 1000.0);
|
||||||
elm_object_text_set(lb, buf);
|
elm_object_text_set(lb, buf);
|
||||||
evas_object_size_hint_align_set(lb, 1.0, 0.5);
|
evas_object_size_hint_align_set(lb, 1.0, 0.5);
|
||||||
evas_object_size_hint_weight_set(lb, EXPAND, EXPAND);
|
evas_object_size_hint_weight_set(lb, EXPAND, EXPAND);
|
||||||
|
|
Loading…
Reference in New Issue