/** * @brief timer_get_timeout Return current timeout value * * @param h timer module handle * * @return current timeout value otherwise (in milliseconds) */ int timer_get_timeout(timer_handle_t *h) { int min = TIMER_INFINITE; mmgr_timer_t *t = (mmgr_timer_t *)h; ASSERT(t != NULL); if (t->type != 0x0) { int i = 0; struct timespec cur; clock_gettime(CLOCK_BOOTTIME, &cur); for (i = 0; i < E_TIMER_NUM; i++) { if (t->type & (0x1 << i)) { long diff = timer_get_elapsed(cur, t->end[i]); if (diff < 0) diff = 0; if (min == TIMER_INFINITE) min = diff; else if (min > diff) min = diff; } } } LOG_DEBUG("timeout: %d ms", min); return min; }
/** * Checks if timer has elapsed for a specific timer */ static inline bool timer_is_elapsed(mmgr_timer_t *t, e_timer_type_t type, struct timespec *cur) { return (t->type & (0x1 << type)) && (timer_get_elapsed(*cur, t->end[type]) <= 0); }
double rth_ui_get_render_time(rthdata* rth) { timer_stop(&rth->data->timing_info); return timer_get_elapsed(&rth->data->timing_info) / (double)1e6; }