#include "systime.h"
#include <stdio.h>
#include <sys/time.h>

double get_system_time()
{
	static struct timeval tv;
	gettimeofday(&tv, NULL);
	double sec = tv.tv_sec;
	double ms = (double)tv.tv_usec;
	ms /= 1000000.0;
	return sec + ms;
}

void report_frame_every_second()
{
	static double last_time = 0;
	static int frame_count = 0;
	double current_time = get_system_time();
	frame_count++;
	if (current_time - last_time >= 1.0)
	{
		double frame_rate = (double)frame_count / (current_time - last_time);
		last_time = current_time;
		frame_count = 0;
		fprintf(stdout, "%f fps\n", (float)frame_rate);
	}
}

double elapsed_time(void (*function)(), void *args)
{
	double start_time = get_system_time();
	(*(function))(args);
	return get_system_time() - start_time;
}

