home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 19
/
CD_ASCQ_19_010295.iso
/
dos
/
prg
/
midas
/
timer.h
< prev
next >
Wrap
C/C++ Source or Header
|
1994-08-06
|
6KB
|
197 lines
/* TIMER.H
*
* TempoTimer, v1.10
*
* Copyright 1994 Petteri Kangaslampi and Jarno Paananen
*
* 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(ushort *scrSync);
*
* Description: Calculates the screen synchronization value for timer
*
* Input: ushort *scrSync pointer to screen synchronization
* value
*
* Returns: MIDAS error code.
* Screen syncronization value used with tmrSyncScr() is stored
* in *scrSync.
*
\****************************************************************************/
int CALLING tmrGetScrSync(ushort *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 tmrPlay(void (*play)(), SoundDevice *SD);
*
* Description: Starts playing music with the timer. Update rate set to 50Hz.
*
* Input: void (*play)() Music playing function
* SoundDevice *SD Sound Device used for playing
*
* Returns: MIDAS error code
*
\****************************************************************************/
int CALLING tmrPlay(void (*play)(), SoundDevice *SD);
/****************************************************************************\
*
* Function: int tmrStop(void);
*
* Description: Stops playing music with the timer.
*
* Returns: MIDAS error code
*
\****************************************************************************/
int CALLING tmrStop(void);
/****************************************************************************\
*
* Function: int tmrSyncScr(ushort sync, void (*preVR)(), void (*immVR)(),
* void (*inVR)());
*
* Description: Synchronizes the timer to screen refresh.
*
* Input: ushort 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.
*
\****************************************************************************/
int CALLING tmrSyncScr(ushort sync, void (*preVR)(), void (*immVR)(),
void (*inVR)());
/****************************************************************************\
*
* Function: int tmrStopScrSync(void);
*
* Description: Stops synchronizing the timer to the screen.
*
* Returns: MIDAS error code
*
\****************************************************************************/
int CALLING tmrStopScrSync(void);
/****************************************************************************\
*
* Function: int tmrSetUpdRate(ushort updRate);
*
* Description: Sets the timer update rate, ie. the rate at which the music
* playing routine is called
*
* Input: ushort updRate updating rate, in 100*Hz (5000=50Hz)
*
* Returns: MIDAS error code
*
\****************************************************************************/
int CALLING tmrSetUpdRate(ushort updRate);
#ifdef __cplusplus
}
#endif
/****************************************************************************\
* enum tmrFunctIDs
* ----------------
* Description: ID numbers for TempoTimer functions
\****************************************************************************/
enum tmrFunctIDs
{
ID_tmrGetScrSync = ID_tmr,
ID_tmrInit,
ID_tmrClose,
ID_tmrPlay,
ID_tmrStop,
ID_tmrSyncScr,
ID_tmrStopScrSync,
ID_tmrSetUpdRate
};
#endif