return ECORE_CALLBACK_CANCEL;
}
+void _timer_reset(struct timeout_handler *handle)
+{
+ if (handle->timer)
+ ecore_timer_reset(handle->timer);
+ else
+ handle->timer = ecore_timer_add(handle->timeout,
+ _timer_cb, handle);
+}
+
static Eina_Bool _event_occured(void *data, int type, void *event)
{
struct timeout_handler *handle;
handle->event_cb(handle->event_data, type, event);
- timeout_handler_reset(handle);
+ _timer_reset(handle);
return ECORE_CALLBACK_PASS_ON;
}
{
handle->enable = enable;
- if (!enable) {
+ if (enable) {
+ _timer_reset(handle);
+ } else {
ecore_timer_del(handle->timer);
handle->timer = NULL;
}
}
-void timeout_handler_reset(struct timeout_handler *handle)
-{
- if (!handle) {
- _ERR("invalid parameter");
- return;
- }
-
- if (handle->timer)
- ecore_timer_reset(handle->timer);
- else
- handle->timer = ecore_timer_add(handle->timeout,
- _timer_cb, handle);
-}
-
struct timeout_handler *timeout_handler_init(double timeout,
timeout_event_cb timeout_cb, void *timeout_data,
timeout_event_cb event_cb, void *event_data)
handle->list = eina_list_append(handle->list, ev);
}
- handle->timer = ecore_timer_add(timeout, _timer_cb, handle);
- if (!handle->timer)
- goto error;
-
handle->event_cb = event_cb;
handle->event_data = event_data;
handle->timeout_cb = timeout_cb;