Don't need tempget for udev processing.
Don't need exe data handlers for udev processing. Cut down on the number of rogue tempget processes (if using Internal method). Fix some formatting. Use PATH_MAX and E_FREE. SVN revision: 49167
This commit is contained in:
parent
131a5b9fca
commit
8b97b2ee11
|
@ -92,22 +92,30 @@ _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style)
|
||||||
#ifdef HAVE_EEZE
|
#ifdef HAVE_EEZE
|
||||||
if (inst->backend == TEMPGET)
|
if (inst->backend == TEMPGET)
|
||||||
{
|
{
|
||||||
#endif
|
|
||||||
inst->tempget_data_handler =
|
inst->tempget_data_handler =
|
||||||
ecore_event_handler_add(ECORE_EXE_EVENT_DATA,
|
ecore_event_handler_add(ECORE_EXE_EVENT_DATA,
|
||||||
_temperature_cb_exe_data, inst);
|
_temperature_cb_exe_data, inst);
|
||||||
inst->tempget_del_handler =
|
inst->tempget_del_handler =
|
||||||
ecore_event_handler_add(ECORE_EXE_EVENT_DEL,
|
ecore_event_handler_add(ECORE_EXE_EVENT_DEL,
|
||||||
_temperature_cb_exe_del, inst);
|
_temperature_cb_exe_del, inst);
|
||||||
#ifdef HAVE_EEZE
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
eeze_init();
|
eeze_init();
|
||||||
inst->temp_poller = ecore_poller_add(ECORE_POLLER_CORE, inst->poll_interval, temperature_udev_update_poll, inst);
|
inst->temp_poller =
|
||||||
|
ecore_poller_add(ECORE_POLLER_CORE, inst->poll_interval,
|
||||||
|
temperature_udev_update_poll, inst);
|
||||||
temperature_udev_update(inst);
|
temperature_udev_update(inst);
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
inst->tempget_data_handler =
|
||||||
|
ecore_event_handler_add(ECORE_EXE_EVENT_DATA,
|
||||||
|
_temperature_cb_exe_data, inst);
|
||||||
|
inst->tempget_del_handler =
|
||||||
|
ecore_event_handler_add(ECORE_EXE_EVENT_DEL,
|
||||||
|
_temperature_cb_exe_del, inst);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
temperature_face_update_config(inst);
|
temperature_face_update_config(inst);
|
||||||
|
|
||||||
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN,
|
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN,
|
||||||
|
@ -168,7 +176,7 @@ static Evas_Object *
|
||||||
_gc_icon(E_Gadcon_Client_Class *client_class, Evas *evas)
|
_gc_icon(E_Gadcon_Client_Class *client_class, Evas *evas)
|
||||||
{
|
{
|
||||||
Evas_Object *o;
|
Evas_Object *o;
|
||||||
char buf[4096];
|
char buf[PATH_MAX];
|
||||||
|
|
||||||
o = edje_object_add(evas);
|
o = edje_object_add(evas);
|
||||||
snprintf(buf, sizeof(buf), "%s/e-module-temperature.edj",
|
snprintf(buf, sizeof(buf), "%s/e-module-temperature.edj",
|
||||||
|
@ -202,8 +210,6 @@ _gc_id_new(E_Gadcon_Client_Class *client_class)
|
||||||
return inst->id;
|
return inst->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_temperature_face_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
_temperature_face_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||||
{
|
{
|
||||||
|
@ -234,7 +240,7 @@ _temperature_face_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *eve
|
||||||
e_menu_activate_mouse(mn,
|
e_menu_activate_mouse(mn,
|
||||||
e_util_zone_current_get(e_manager_current_get()),
|
e_util_zone_current_get(e_manager_current_get()),
|
||||||
cx + ev->output.x, cy + ev->output.y, 1, 1,
|
cx + ev->output.x, cy + ev->output.y, 1, 1,
|
||||||
E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
|
E_MENU_POP_DIRECTION_AUTO, ev->timestamp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -282,11 +288,12 @@ _temperature_face_shutdown(const Eina_Hash *hash __UNUSED__, const void *key __U
|
||||||
if (inst->tempdevs)
|
if (inst->tempdevs)
|
||||||
{
|
{
|
||||||
const char *s;
|
const char *s;
|
||||||
|
|
||||||
EINA_LIST_FREE(inst->tempdevs, s)
|
EINA_LIST_FREE(inst->tempdevs, s)
|
||||||
eina_stringshare_del(s);
|
eina_stringshare_del(s);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
free(inst);
|
E_FREE(inst);
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -324,7 +331,8 @@ temperature_face_update_config(Config_Face *inst)
|
||||||
ecore_poller_del(inst->temp_poller);
|
ecore_poller_del(inst->temp_poller);
|
||||||
inst->temp_poller = NULL;
|
inst->temp_poller = NULL;
|
||||||
}
|
}
|
||||||
#endif
|
if (!inst->tempget_exe)
|
||||||
|
{
|
||||||
snprintf(buf, sizeof(buf),
|
snprintf(buf, sizeof(buf),
|
||||||
"%s/%s/tempget %i \"%s\" %i",
|
"%s/%s/tempget %i \"%s\" %i",
|
||||||
e_module_dir_get(temperature_config->module), MODULE_ARCH,
|
e_module_dir_get(temperature_config->module), MODULE_ARCH,
|
||||||
|
@ -332,13 +340,12 @@ temperature_face_update_config(Config_Face *inst)
|
||||||
(inst->sensor_name != NULL ? inst->sensor_name : "(null)"),
|
(inst->sensor_name != NULL ? inst->sensor_name : "(null)"),
|
||||||
inst->poll_interval);
|
inst->poll_interval);
|
||||||
inst->tempget_exe =
|
inst->tempget_exe =
|
||||||
ecore_exe_pipe_run(buf,
|
ecore_exe_pipe_run(buf, ECORE_EXE_PIPE_READ |
|
||||||
ECORE_EXE_PIPE_READ |
|
|
||||||
ECORE_EXE_PIPE_READ_LINE_BUFFERED |
|
ECORE_EXE_PIPE_READ_LINE_BUFFERED |
|
||||||
ECORE_EXE_NOT_LEADER, inst);
|
ECORE_EXE_NOT_LEADER, inst);
|
||||||
#ifdef HAVE_EEZE
|
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
|
else if (inst->backend == UDEV)
|
||||||
{
|
{
|
||||||
/*avoid creating a new poller if possible*/
|
/*avoid creating a new poller if possible*/
|
||||||
if (inst->temp_poller)
|
if (inst->temp_poller)
|
||||||
|
@ -351,6 +358,20 @@ temperature_face_update_config(Config_Face *inst)
|
||||||
temperature_udev_update_poll, inst);
|
temperature_udev_update_poll, inst);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
if (!inst->tempget_exe)
|
||||||
|
{
|
||||||
|
snprintf(buf, sizeof(buf),
|
||||||
|
"%s/%s/tempget %i \"%s\" %i",
|
||||||
|
e_module_dir_get(temperature_config->module), MODULE_ARCH,
|
||||||
|
inst->sensor_type,
|
||||||
|
(inst->sensor_name != NULL ? inst->sensor_name : "(null)"),
|
||||||
|
inst->poll_interval);
|
||||||
|
inst->tempget_exe =
|
||||||
|
ecore_exe_pipe_run(buf, ECORE_EXE_PIPE_READ |
|
||||||
|
ECORE_EXE_PIPE_READ_LINE_BUFFERED |
|
||||||
|
ECORE_EXE_NOT_LEADER, inst);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -61,6 +61,7 @@ typedef enum _Backend
|
||||||
TEMPGET,
|
TEMPGET,
|
||||||
UDEV
|
UDEV
|
||||||
} Backend;
|
} Backend;
|
||||||
|
|
||||||
int temperature_udev_update_poll(void *data);
|
int temperature_udev_update_poll(void *data);
|
||||||
void temperature_udev_update(void *data);
|
void temperature_udev_update(void *data);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
#include "e.h"
|
#include "e.h"
|
||||||
#include "e_mod_main.h"
|
#include "e_mod_main.h"
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
_temperature_cb_exe_data(void *data, int type, void *event)
|
_temperature_cb_exe_data(void *data, int type, void *event)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue