From 0a13d9ec3e2148a4818b9a62b709f820141f2e54 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Tue, 19 Apr 2005 03:51:49 +0000 Subject: [PATCH] fix fade out for if you dont have cpufreq control :) SVN revision: 14234 --- data/themes/default_cpufreq.edc | 36 +++++++++++++++++++++++++++++- src/modules/cpufreq/e_mod_main.c | 38 +++++++++++++++++++++++--------- src/modules/cpufreq/e_mod_main.h | 3 ++- 3 files changed, 64 insertions(+), 13 deletions(-) diff --git a/data/themes/default_cpufreq.edc b/data/themes/default_cpufreq.edc index 723715b33..fd654335a 100644 --- a/data/themes/default_cpufreq.edc +++ b/data/themes/default_cpufreq.edc @@ -100,6 +100,8 @@ group { part { name: "meter"; type: IMAGE; + clip_to: "fade_clip"; + mouse_events: 0; description { state: "default" 0.0; @@ -191,6 +193,7 @@ group { name: "decrease_button"; type: IMAGE; mouse_events: 1; + clip_to: "fade_clip"; description { state: "default" 0.0; @@ -224,6 +227,7 @@ group { name: "increase_button"; type: IMAGE; mouse_events: 1; + clip_to: "fade_clip"; description { state: "default" 0.0; @@ -257,7 +261,7 @@ group { name: "cpu"; type: IMAGE; mouse_events: 1; - + clip_to: "fade_clip"; description { state: "default" 0.0; rel1 { @@ -286,6 +290,7 @@ group { type: TEXT; effect: SOFT_SHADOW; mouse_events: 0; + clip_to: "fade_clip"; description { state: "default" 0.0; rel1 { @@ -311,6 +316,7 @@ group { part { name: "decrease"; type: RECT; + clip_to: "fade_clip"; description { state: "default" 0.0; visible: 1; @@ -334,6 +340,7 @@ group { part { name: "increase"; type: RECT; + clip_to: "fade_clip"; description { state: "default" 0.0; visible: 1; @@ -353,6 +360,19 @@ group { visible: 0; } } + part { + name: "fade_clip"; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + color: 255 255 255 255; + } + description { + state: "faded" 0.0; + color: 255 255 255 128; + } + } } /* end parts */ @@ -417,5 +437,19 @@ group { action: STATE_SET "default" 0.0; target: "decrease_button"; } + program { + name: "enabled"; + signal: "active"; + source: ""; + action: STATE_SET "default" 0.0; + target: "fade_clip"; + } + program { + name: "disabled"; + signal: "passive"; + source: ""; + action: STATE_SET "faded" 0.0; + target: "fade_clip"; + } } } diff --git a/src/modules/cpufreq/e_mod_main.c b/src/modules/cpufreq/e_mod_main.c index fd4bd27d7..3ccad43fd 100644 --- a/src/modules/cpufreq/e_mod_main.c +++ b/src/modules/cpufreq/e_mod_main.c @@ -2,10 +2,9 @@ #include #include "e_mod_main.h" -/* FIXME: need to handle performance and powersave convernors (only auto/manual now) - * FIXME: check permissions (can execute) before trying +/* FIXME: need to handle performance and powersave gonvernors (only auto(ondemand)/manual(userspace) supported now) + * FIXME: check permissions (can execute) setfreq before trying * FIXME: display throttling state - * FIXME: if system doesnt support cpufreq - fade out */ static Cpufreq *_cpufreq_new(E_Module *module); @@ -496,9 +495,10 @@ _cpufreq_cb_check(void *data) Cpufreq *e; Cpufreq_Face *face; Evas_List *l; - + int active; + e = data; - + active = e->status->active; if (_cpufreq_status_check_current(e->status)) { for (l = e->faces; l; l = l->next) @@ -506,7 +506,18 @@ _cpufreq_cb_check(void *data) face = l->data; _cpufreq_face_update_current(face); } - } + } + if (active != e->status->active) + { + for (l = e->faces; l; l = l->next) + { + face = l->data; + if (e->status->active == 0) + edje_object_signal_emit(face->freq_object, "passive", ""); + else if (e->status->active == 1) + edje_object_signal_emit(face->freq_object, "active", ""); + } + } return 1; } @@ -524,6 +535,7 @@ _cpufreq_status_new() e->cur_frequency = 0; e->can_set_frequency = 0; e->cur_governor = NULL; + e->active = -1; return e; } @@ -649,17 +661,20 @@ _cpufreq_status_check_current(Status *e) int frequency; ret = 0; + e->active = 0; f = fopen("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq", "r"); if (f) { - fgets(buf, sizeof(buf), f); buf[sizeof(buf) - 1] = 0; + fgets(buf, sizeof(buf), f); + buf[sizeof(buf) - 1] = 0; fclose(f); frequency = atoi(buf); - if(frequency != e->cur_frequency) + if (frequency != e->cur_frequency) ret = 1; e->cur_frequency = frequency; + e->active = 1; } f = fopen("/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed", "r"); @@ -676,14 +691,15 @@ _cpufreq_status_check_current(Status *e) f = fopen("/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor", "r"); if (f) { - fgets(buf, sizeof(buf), f); buf[sizeof(buf) - 1] = 0; + fgets(buf, sizeof(buf), f); + buf[sizeof(buf) - 1] = 0; fclose(f); if ((e->cur_governor == NULL) || (strcmp(buf, e->cur_governor))) { ret = 1; - if(e->cur_governor) + if (e->cur_governor) free(e->cur_governor); e->cur_governor = strdup(buf); @@ -696,7 +712,7 @@ _cpufreq_status_check_current(Status *e) } } } - + return ret; } diff --git a/src/modules/cpufreq/e_mod_main.h b/src/modules/cpufreq/e_mod_main.h index 667df298c..3d10753ad 100644 --- a/src/modules/cpufreq/e_mod_main.h +++ b/src/modules/cpufreq/e_mod_main.h @@ -17,6 +17,7 @@ struct _Status int cur_frequency; int can_set_frequency; char *cur_governor; + unsigned char active; }; struct _Config @@ -41,7 +42,7 @@ struct _Cpufreq Config *conf; Status *status; - char *set_exe_path; + char *set_exe_path; Ecore_Timer *frequency_check_timer; };