/*
* This file is part of the MLV Library.
*
* Copyright (C) 2010,2011,2012 Adrien Boussicault, Marc Zipstein
*
*
* This Library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This Library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this Library. If not, see .
*/
#include "MLV_time.h"
#include "platform.h"
#ifndef MEMORY_DEBUG
#if defined( OS_WINDOWS )
# include
# include
#elif defined( OS_APPLE )
# include
# include
#else
# include
# include
#endif
#else
#include "memory_debug.h"
#endif
#include
#include "warning_error.h"
#include "memory_management.h"
#include "data_structure.h"
extern DataMLV* MLV_data;
void MLV_wait_milliseconds(int milliseconds){
SDL_Delay( milliseconds );
}
void MLV_wait_seconds(int seconds){
SDL_Delay( seconds * 1000 );
}
int MLV_get_time(){
return SDL_GetTicks();
}
int MLV_get_date(
int* seconds, int* minutes, int* hours,
int* day, int* month, int* year,
int* day_of_the_week
){
time_t current_time;
time(¤t_time);
struct tm * timeinfo = localtime (¤t_time);
if( seconds ){
*seconds = timeinfo->tm_sec;
}
if( minutes ){
*minutes = timeinfo->tm_min;
}
if( hours ){
*hours = timeinfo->tm_hour;
}
if( day ){
*day = timeinfo->tm_mday;
}
if( month ){
*month = timeinfo->tm_mon;
}
if( year ){
*year = timeinfo->tm_year+1900;
}
if( day_of_the_week ){
*day_of_the_week = timeinfo->tm_wday;
}
return timeinfo->tm_isdst;
}
void MLV_change_frame_rate( int rate ){
SDL_setFramerate( &(MLV_data->frame_rate_manager), rate );
}
int MLV_get_frame_rate( ){
return( SDL_getFramerate( &(MLV_data->frame_rate_manager) ) );
}
void MLV_delay_according_to_frame_rate( ){
SDL_framerateDelay( &(MLV_data->frame_rate_manager) );
}