/* TIMER.H * * TempoTimer * * $Id: timer.h,v 1.3 1997/01/16 18:41:59 pekangas Exp $ * * Copyright 1996,1997 Housemarque Inc. * * This file is part of the MIDAS Sound System, and may only be * used, modified and distributed under the terms of the MIDAS * Sound System license, LICENSE.TXT. By continuing to use, * modify or distribute this file you indicate that you have * read the license and understand and accept it fully. */ #ifndef __TIMER_H #define __TIMER_H #ifdef __cplusplus extern "C" { #endif /****************************************************************************\ * * Function: int tmrGetScrSync(unsigned *scrSync); * * Description: Calculates the screen synchronization value for timer * * Input: unsigned *scrSync pointer to screen synchronization * value * * Returns: MIDAS error code. * Screen syncronization value used with tmrSyncScr() is stored * in *scrSync. * \****************************************************************************/ int CALLING tmrGetScrSync(unsigned *scrSync); /****************************************************************************\ * * Function: int tmrInit(void); * * Description: Initializes TempoTimer. * * Returns: MIDAS error code * \****************************************************************************/ int CALLING tmrInit(void); /****************************************************************************\ * * Function: int tmrClose(void); * * Description: Uninitializes TempoTimer. MUST be called if and ONLY if * tmrInit() has been called. * * Returns: MIDAS error code * \****************************************************************************/ int CALLING tmrClose(void); /****************************************************************************\ * * Function: int tmrPlaySD(SoundDevice *SD); * * Description: Starts playing sound with a Sound Device ie. calling its * Play() function in the update rate, which is set to * 50Hz. * * Input: SoundDevice *SD Sound Device that will be used * * Returns: MIDAS error code. * \****************************************************************************/ int CALLING tmrPlaySD(SoundDevice *SD); /****************************************************************************\ * * Function: int tmrStopSD(void); * * Description: Stops playing sound with the Sound Device. * * Returns: MIDAS error code. * \****************************************************************************/ int CALLING tmrStopSD(void); /****************************************************************************\ * * Function: int tmrPlayMusic(void *play, int *playerNum); * * Description: Starts playing music with the timer. * * Input: void *play Pointer to music playing function, * must return MIDAS error codes * int *playerNum Pointer to player number, used * for stopping music * * Returns: MIDAS error code. Player number is written to *playerNum. * * Notes: There can be a maximum of 16 music players active at the * same time. * \****************************************************************************/ int CALLING tmrPlayMusic(int (CALLING *play)(), int *playerNum); /****************************************************************************\ * * Function: int tmrStopMusic(int playerNum); * * Description: Stops playing music with the timer. * * Input: int playerNum Number of player to be stopped. * * Returns: MIDAS error code * \****************************************************************************/ int CALLING tmrStopMusic(int playerNum); /****************************************************************************\ * * Function: int tmrSyncScr(unsigned sync, void (*preVR)(), * void (*immVR)(), void (*inVR)()); * * Description: Synchronizes the timer to screen refresh. * * Input: unsigned sync Screen synchronization value returned * by tmrGetScrSync(). * void (*preVR)() Pointer to the routine that will be * called BEFORE Vertical Retrace * void (*immVR)() Pointer to the routine that will be * called immediately after Vertical * Retrace starts * void (*inVR)() Pointer to the routine that will be * called some time during Vertical * Retrace * * Returns: MIDAS error code * * Notes: preVR() and immVR() functions must be as short as possible * and do nothing else than update counters or set some VGA * registers to avoid timer synchronization problems. inVR() * can take a longer time and can be used for, for example, * setting the palette. * * Remember to use the correct calling convention for the xxVR() * routines! (pascal for Pascal programs, cdecl otherwise). * \****************************************************************************/ int CALLING tmrSyncScr(unsigned sync, void (CALLING *preVR)(), void (CALLING *immVR)(), void (CALLING *inVR)()); /****************************************************************************\ * * Function: int tmrStopScrSync(void); * * Description: Stops synchronizing the timer to the screen. * * Returns: MIDAS error code * \****************************************************************************/ int CALLING tmrStopScrSync(void); /****************************************************************************\ * * Function: int tmrSetUpdRate(unsigned updRate); * * Description: Sets the timer update rate, ie. the rate at which the music * playing routines are called * * Input: unsigned updRate updating rate, in 100*Hz (5000=50Hz) * * Returns: MIDAS error code * \****************************************************************************/ int CALLING tmrSetUpdRate(unsigned updRate); #ifdef __cplusplus } #endif /****************************************************************************\ * enum tmrFunctIDs * ---------------- * Description: ID numbers for TempoTimer functions \****************************************************************************/ enum tmrFunctIDs { ID_tmrGetScrSync = ID_tmr, ID_tmrInit, ID_tmrClose, ID_tmrPlaySD, ID_tmrStopSD, ID_tmrPlayMusic, ID_tmrStopMusic, ID_tmrSyncScr, ID_tmrStopScrSync, ID_tmrSetUpdRate }; #endif /* * $Log: timer.h,v $ * Revision 1.3 1997/01/16 18:41:59 pekangas * Changed copyright messages to Housemarque * * Revision 1.2 1996/07/13 18:09:09 pekangas * Fixed to compile with Visual C * * Revision 1.1 1996/05/22 20:49:33 pekangas * Initial revision * */