Files
snake2025/MLV/MLV_time.h
2025-03-26 09:05:12 +01:00

120 lines
3.8 KiB
C
Executable File

/*
* 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 <http://www.gnu.org/licenses/>.
*/
/** \~french
* \file MLV_time.h
*
* \author Adrien Boussicault
* \author Marc Zipstein
*
* \brief Ce fichier définit tous les prototypes des fonctions concernant la
* gestion du temps.
*
*/
#ifndef __MLV__MLV_TIME_H__
#define __MLV__MLV_TIME_H__
#ifdef __cplusplus
extern "C" {
#endif
/** \~french
* \brief Le programme s'intérompt pendant un nombre de milli-secondes donné
* en paramètre.
*
* \param milliseconds Le nombre de milli-secondes à attendre.
*/
void MLV_wait_milliseconds(int milliseconds);
/** \~french
* \brief Le programme s'intérompt pendant un nombre de secondes.
*
* \param seconds Le nombre de secondes à attendre.
*/
void MLV_wait_seconds(int seconds);
/** \~french
* \brief Renvoie le nombre de millisecondes écoulées depuis le début de
* l'initialisation de la bibliothèque MLV ( avec MLV_create_window ).
* \return Le temps écoulé depuis l'initialisation de la bibliothèque MLV.
*/
int MLV_get_time();
/** \~french
* \brief Donne la date du jour (seconde/heure/jour/mois/annee).
*
* L'année est donnée depuis l'an 0.
*
* Une valeur nulle peut être passée en paramètre de la fonction. Dans ce cas,
* le paramètre est ignoré par la fonction.
*
* \param seconds Le nombre de secondes écoulées depuis le dernier changement de
* minute.
* \param minutes Le nombre de minutes écoulées depuis le dernier changement
* d'heure
* \param hours Le nombre d'heures écoulées depuis minuit.
* \param day Le quantième du mois.
* \param month Le nombre de mois écoulés depuis le début de l'année.
* \param year Le nombre d'années depuis l'an 0.
* \param day_of_the_week Le jour de la semaine ( 0: Lundi, 1:Mardi, ...,
* 6:Dimanche).
* \return Renvoie 1 si le décalage heure d'hivers et heure d'été a été
* pris en compte, 0 si il ne l'a pas été et -1 si l'information
* n'est pas disponible.
*/
int MLV_get_date(
int* seconds, int* minutes, int* hours,
int* day, int* month, int* year,
int* day_of_the_week
);
/** \~french
* \brief Configure la fréquence de rafraichissement en Hz.
*
* La fréquence de rafraîchissement par defaut est de 100 Hz. Cela signifie
* que si l'on utilise MLV_delay_according_to_frame_rate() entre chaque
* rafraîchissement de la fenêtre graphique, on obtient un rafraichissement
* de 100 images par secondes.
*
* \param rate Fréquence de rafraîchissement.
*/
void MLV_change_frame_rate( int rate );
/** \~french
* \brief Donne la fréquence de rafraîchissement courante.
*
* \return La fréquence de rafraîchissement courante.
*/
int MLV_get_frame_rate( );
/** \~french
* \brief Suspend l'exécution du programme de façon à ce que le temps écoulé
* depuis le drenier appel à cette fonction, soit égale à la période de
* la fréquence de rafraîchissement configuré par MLV_change_frame_rate.
*/
void MLV_delay_according_to_frame_rate( );
#ifdef __cplusplus
}
#endif
#endif