+ecore_timer_reset

SVN revision: 65876
This commit is contained in:
Mike Blumenkrantz 2011-12-04 23:12:06 +00:00
parent ba15384eaf
commit 955e23a8a9
4 changed files with 37 additions and 0 deletions

View File

@ -377,3 +377,6 @@
* Fix the modifiers value (Windows XP)
2011-12-04 Mike Blumenkrantz
* added ecore_timer_reset()

View File

@ -4,6 +4,8 @@ Changes since Ecore 1.1.0:
--------------------------
Additions:
* ecore
- ecore_timer_reset()
* ecore_x:
- ecore_x_randr_output_backlight_available()

View File

@ -1226,6 +1226,7 @@ EAPI double ecore_timer_interval_get(Ecore_Timer *timer);
EAPI void ecore_timer_freeze(Ecore_Timer *timer);
EAPI void ecore_timer_thaw(Ecore_Timer *timer);
EAPI void ecore_timer_delay(Ecore_Timer *timer, double add);
EAPI void ecore_timer_reset(Ecore_Timer *timer);
EAPI double ecore_timer_pending_get(Ecore_Timer *timer);
EAPI double ecore_timer_precision_get(void);
EAPI void ecore_timer_precision_set(double precision);

View File

@ -258,6 +258,37 @@ ecore_timer_delay(Ecore_Timer *timer,
_ecore_unlock();
}
/**
* Reset a timer to its full interval
* This doesn't affect the interval of a timer
* @param timer The timer
* @since 1.2
* @note This is equivalent to (but faster than)
* @code
* ecore_timer_delay(timer, ecore_timer_interval_get(timer) - ecore_timer_pending_get(timer));
* @endcode
*/
EAPI void
ecore_timer_reset(Ecore_Timer *timer)
{
double now, add;
if (!ECORE_MAGIC_CHECK(timer, ECORE_MAGIC_TIMER))
{
ECORE_MAGIC_FAIL(timer, ECORE_MAGIC_TIMER,
__func__);
return;
}
_ecore_lock();
now = ecore_time_get();
if (timer->frozen)
add = timer->pending;
else
add = timer->at - now;
_ecore_timer_delay(timer, add);
_ecore_unlock();
}
/**
* Get the pending time regarding a timer.
*