2011-06-28 05:34:52 -07:00
|
|
|
#ifdef HAVE_CONFIG_H
|
|
|
|
# include <config.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <stdlib.h>
|
2013-01-10 12:25:26 -08:00
|
|
|
#include <unistd.h>
|
2011-06-28 05:34:52 -07:00
|
|
|
|
|
|
|
#include "Ecore.h"
|
|
|
|
#include "ecore_private.h"
|
|
|
|
|
|
|
|
static int throttle_val = 0;
|
|
|
|
|
|
|
|
EAPI void
|
|
|
|
ecore_throttle_adjust(double amount)
|
|
|
|
{
|
2012-03-29 01:52:25 -07:00
|
|
|
EINA_MAIN_LOOP_CHECK_RETURN;
|
2011-06-28 05:34:52 -07:00
|
|
|
int adj = amount * 1000000.0;
|
|
|
|
throttle_val += adj;
|
|
|
|
if (throttle_val < 0) throttle_val = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
EAPI double
|
|
|
|
ecore_throttle_get(void)
|
|
|
|
{
|
2012-03-29 01:52:25 -07:00
|
|
|
EINA_MAIN_LOOP_CHECK_RETURN_VAL(0.0);
|
2011-06-28 05:34:52 -07:00
|
|
|
return (double)throttle_val / 1000000.0;
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
_ecore_throttle(void)
|
|
|
|
{
|
|
|
|
if (throttle_val <= 0) return;
|
2015-05-10 03:05:54 -07:00
|
|
|
eina_evlog("+throttle", NULL, 0.0, NULL);
|
2011-06-28 05:34:52 -07:00
|
|
|
usleep(throttle_val);
|
2015-05-10 03:05:54 -07:00
|
|
|
eina_evlog("-throttle", NULL, 0.0, NULL);
|
2011-06-28 05:34:52 -07:00
|
|
|
}
|
2011-10-20 22:40:39 -07:00
|
|
|
|