SVN revision: 17256
This commit is contained in:
sebastid 2005-10-06 23:55:44 +00:00 committed by sebastid
parent 05757dcf2f
commit 4f28361861
1 changed files with 47 additions and 35 deletions

View File

@ -736,44 +736,54 @@ _temperature_config_menu_new(Temperature *e)
{ {
FILE *f; FILE *f;
if (therms) ecore_list_destroy(therms);
f = fopen("/sys/devices/temperatures/cpu_temperature", "rb"); f = fopen("/sys/devices/temperatures/cpu_temperature", "rb");
if (f) fclose(f); if (f) fclose(f);
if (!f) if (!f)
{ {
if (therms) ecore_list_destroy(therms);
therms = ecore_file_ls("/sys/bus/i2c/devices"); therms = ecore_file_ls("/sys/bus/i2c/devices");
if (therms && !ecore_list_is_empty(therms)) if (therms)
{ {
mn = e_menu_new(); if (!ecore_list_is_empty(therms))
{
mi = e_menu_item_new(mn); mn = e_menu_new();
e_menu_item_label_set(mi, _("Temp1"));
e_menu_item_radio_set(mi, 1); mi = e_menu_item_new(mn);
e_menu_item_radio_group_set(mi, 1); e_menu_item_label_set(mi, _("Temp1"));
if ((!e->conf->sensor_name) || (!strcmp(e->conf->sensor_name, "temp1"))) e_menu_item_toggle_set(mi, 1); e_menu_item_radio_set(mi, 1);
e_menu_item_callback_set(mi, _temperature_menu_sensor_1, e); e_menu_item_radio_group_set(mi, 1);
if ((!e->conf->sensor_name) ||
mi = e_menu_item_new(mn); (!strcmp(e->conf->sensor_name, "temp1")))
e_menu_item_label_set(mi, _("Temp2")); e_menu_item_toggle_set(mi, 1);
e_menu_item_radio_set(mi, 1); e_menu_item_callback_set(mi, _temperature_menu_sensor_1, e);
e_menu_item_radio_group_set(mi, 1);
if ((e->conf->sensor_name) && (!strcmp(e->conf->sensor_name, "temp2"))) e_menu_item_toggle_set(mi, 1); mi = e_menu_item_new(mn);
e_menu_item_callback_set(mi, _temperature_menu_sensor_2, e); e_menu_item_label_set(mi, _("Temp2"));
e_menu_item_radio_set(mi, 1);
mi = e_menu_item_new(mn); e_menu_item_radio_group_set(mi, 1);
e_menu_item_label_set(mi, _("Temp3")); if ((e->conf->sensor_name) &&
e_menu_item_radio_set(mi, 1); (!strcmp(e->conf->sensor_name, "temp2")))
e_menu_item_radio_group_set(mi, 1); e_menu_item_toggle_set(mi, 1);
if ((e->conf->sensor_name) && (!strcmp(e->conf->sensor_name, "temp3"))) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _temperature_menu_sensor_2, e);
e_menu_item_callback_set(mi, _temperature_menu_sensor_3, e);
mi = e_menu_item_new(mn);
e->config_menu_sensor = mn; e_menu_item_label_set(mi, _("Temp3"));
e_menu_item_radio_set(mi, 1);
e_menu_item_radio_group_set(mi, 1);
if ((e->conf->sensor_name) &&
(!strcmp(e->conf->sensor_name, "temp3")))
e_menu_item_toggle_set(mi, 1);
e_menu_item_callback_set(mi, _temperature_menu_sensor_3, e);
e->config_menu_sensor = mn;
}
ecore_list_destroy(therms);
} }
} }
} }
if (therms) ecore_list_destroy(therms);
#endif #endif
/* Main */ /* Main */
@ -991,6 +1001,8 @@ _temperature_cb_check(void *data)
{ {
FILE *f; FILE *f;
if (therms) ecore_list_destroy(therms);
f = fopen("/sys/devices/temperatures/cpu_temperature", "rb"); f = fopen("/sys/devices/temperatures/cpu_temperature", "rb");
if (f) if (f)
{ {
@ -1001,31 +1013,30 @@ _temperature_cb_check(void *data)
} }
else else
{ {
if (therms) ecore_list_destroy(therms);
therms = ecore_file_ls("/sys/bus/i2c/devices"); therms = ecore_file_ls("/sys/bus/i2c/devices");
if ((therms) && (!ecore_list_is_empty(therms))) if (therms)
{ {
char *name, *sensor; char *name, *sensor;
sensor = ef->conf->sensor_name; sensor = ef->conf->sensor_name;
if (!sensor) sensor = "temp1"; if (!sensor) sensor = "temp1";
while ((name = ecore_list_next(therms))) while ((name = ecore_list_next(therms)))
{ {
char fname[1024]; char fname[1024];
sprintf(fname, "/sys/bus/i2c/devices/%s/%s_input", sprintf(fname, "/sys/bus/i2c/devices/%s/%s_input",
name, sensor); name, sensor);
if (ecore_file_exists(fname)) if (ecore_file_exists(fname))
{ {
FILE *f; FILE *f;
f = fopen(fname,"r"); f = fopen(fname,"r");
if (f) if (f)
{ {
fgets(buf, sizeof(buf), f); fgets(buf, sizeof(buf), f);
buf[sizeof(buf) - 1] = 0; buf[sizeof(buf) - 1] = 0;
/* actuallty read the temp */ /* actuallty read the temp */
if (sscanf(buf, "%i", &temp) == 1) if (sscanf(buf, "%i", &temp) == 1)
ret = 1; ret = 1;
@ -1042,6 +1053,7 @@ _temperature_cb_check(void *data)
else else
{ {
char *name; char *name;
while ((name = ecore_list_next(therms))) while ((name = ecore_list_next(therms)))
{ {
char units[32]; char units[32];