developer-toolkit-v1.01/installed/TIMER.H
UTF-8 rendering of a DOS-encoded (CP437 / CRLF) file. Byte-for-byte original:
TIMER.H.
#ifndef _TIMERDRV_H
#define _TIMERDRV_H
/***************************************************************************
Definitions
***************************************************************************/
/*
* When setting an event those definitions set the mode. ONESHOT will be
* executed only one time. PERIODIC will be repeat periodically until the
* application calls the routine ResetTimerEvent()
*/
enum timerEventType {
TIME_ONESHOT,
TIME_PERIODIC,
NO_TIME_EVENT
};
/*
* fix names for all timers
*/
enum TimerName {
OPL3Timer1,
OPL3Timer2,
MMATimer0,
MMATimer1,
MMATimer2,
MMABaseCounter,
};
/*
* List of services offered thru the "TimerDrvService" routine
*/
/*
* Values returned by the timer driver set of routines
*/
enum TimerErrorList {
// Timer drivers functions ERROR codes
TIMER_NO_ERROR, // no error
TIMER_FUNCTION_ERROR, // reported by the almost all functions
// WORD SetTimerEvent ERROR codes
TIMER_ARGUMENT_ERROR, // invalid input arguments
TIMER_NOT_AVAILABLE, // no timer available for scheduling
TIMER_EVENT_USED, // another event is already posted
// WORD ResetTimerEvent ERROR codes
TIMER_NO_EVENT, // won't reset because no event was scheduled
TIMER_AUTO_RESET, // the interrupt will reset the event
};
/****************************************************************************
Structure
*****************************************************************************/
/****************************************************************************
PUBLIC functions
*****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
CallbackProc TimerDrvIntEntry(void);
WORD InitTimerDriver(void);
WORD CloseTimerDriver(void);
WORD AllocateOPL3Timer1(void);
WORD FreeOPL3Timer1(void);
WORD AllocateOPL3Timer2(void);
WORD FreeOPL3Timer2(void);
WORD AllocateMMATimer0(void);
WORD FreeMMATimer0(void);
WORD AllocateMMATimer1(void);
WORD FreeMMATimer1(void);
WORD AllocateMMATimer2(void);
WORD FreeMMATimer2(void);
WORD AllocateMMABaseCounter(void);
WORD FreeMMABaseCounter(void);
WORD EnableOPL3Timer1(void);
WORD DisableOPL3Timer1(void);
WORD EnableOPL3Timer2(void);
WORD DisableOPL3Timer2(void);
WORD EnableMMATimer0(void);
WORD DisableMMATimer0(void);
WORD EnableMMATimer1(void);
WORD DisableMMATimer1(void);
WORD EnableMMATimer2(void);
WORD DisableMMATimer2(void);
WORD LoadStartOPL3Timer1(void);
WORD StopOPL3Timer1(void);
WORD LoadStartOPL3Timer2(void);
WORD StopOPL3Timer2(void);
WORD LoadStartMMATimer0(void);
WORD StopMMATimer0(void);
WORD LoadStartMMATimer1(void);
WORD StopMMATimer1(void);
WORD LoadStartMMATimer2(void);
WORD StopMMATimer2(void);
WORD LoadStartMMABaseCounter(void);
WORD StopMMABaseCounter(void);
WORD AssignOPL3Timer1IntService(CallbackPtr function);
WORD AssignOPL3Timer2IntService(CallbackPtr function);
WORD AssignMMATimer0IntService(CallbackPtr function);
WORD AssignMMATimer1IntService(CallbackPtr function);
WORD AssignMMATimer2IntService(CallbackPtr function);
WORD RestoreOPL3Timer1IntService(void);
WORD RestoreOPL3Timer2IntService(void);
WORD RestoreMMATimer0IntService(void);
WORD RestoreMMATimer1IntService(void);
WORD RestoreMMATimer2IntService(void);
WORD SetOPL3Timer1Counter(BYTE wPeriod);
WORD SetOPL3Timer2Counter(BYTE wPeriod);
WORD SetMMATimer0Counter(WORD wPeriod);
WORD SetMMATimer1Counter(BYTE wPeriod);
WORD SetMMATimer2Counter(WORD wPeriod);
WORD SetMMABaseCounterCounter(WORD wPeriod);
WORD ResetOPL3LastTimerInt(void);
WORD GetOPL3TimerIntStatus(void);
WORD GetMMATimerIntStatus(void);
WORD GetMMATimer2Content(void);
WORD SetOPL3Timer1Period(DWORD lPeriod);
WORD SetOPL3Timer2Period(DWORD lPeriod);
WORD SetMMATimer0Period(DWORD lPeriod);
WORD SetMMATimer1Period(DWORD lPeriod);
WORD SetMMATimer2Period(DWORD lPeriod);
WORD SetMMABaseCounterPeriod(DWORD lPeriod);
WORD GetOPL3Timer1Caps(DWORD far *lPeriodMin, DWORD far *lPeriodMax);
WORD GetOPL3Timer2Caps(DWORD far *lPeriodMin, DWORD far *lPeriodMax);
WORD GetMMATimer0Caps(DWORD far *lPeriodMin, DWORD far *lPeriodMax);
WORD GetMMATimer1Caps(DWORD far *lPeriodMin, DWORD far *lPeriodMax);
WORD GetMMATimer2Caps(DWORD far *lPeriodMin, DWORD far *lPeriodMax);
WORD SetAvailableTimerEvent(CallbackPtr function, DWORD period, WORD mode);
WORD ResetAvailableTimerEvent(void);
WORD SetTimerEvent(BYTE timer, CallbackPtr function, DWORD period, WORD mode);
WORD ResetTimerEvent(BYTE timer);
#ifdef __cplusplus
};
#endif
#endif