wonx/WWTimer.c
Hiroaki Sakai f25d7235fb Changed official name from Wonx to WonX.
Add MANUAL file.

Added sentences to OMAKE.jpn.

Version 1.0 - from wonx-1.0.tar.gz
2018-03-07 23:06:54 +00:00

115 lines
3.8 KiB
C

/*****************************************************************************/
/* ここから */
/*****************************************************************************/
#include "WWTimerP.h"
#include "etc.h"
/*****************************************************************************/
/* メンバ関数の定義 */
/*****************************************************************************/
int WWTimer_ON( WWTimer ww_timer) { return (ww_timer->timer_on = 1); }
int WWTimer_OFF( WWTimer ww_timer) { return (ww_timer->timer_on = 0); }
int WWTimer_IsON( WWTimer ww_timer) { return (ww_timer->timer_on != 0); }
int WWTimer_IsOFF(WWTimer ww_timer) { return (ww_timer->timer_on == 0); }
int WWTimer_GetAutoPreset(WWTimer ww_timer)
{ return (ww_timer->auto_preset); }
int WWTimer_GetPresetCounter(WWTimer ww_timer)
{ return (ww_timer->preset_counter); }
int WWTimer_GetCounter(WWTimer ww_timer)
{ return (ww_timer->counter); }
int WWTimer_IsAutoPresetOFF(WWTimer ww_timer)
{ return (WWTimer_GetAutoPreset(ww_timer) == 0); }
int WWTimer_IsAutoPresetON(WWTimer ww_timer)
{ return (WWTimer_GetAutoPreset(ww_timer) == 1); }
int WWTimer_SetAutoPreset(WWTimer ww_timer, int auto_preset)
{ return (ww_timer->auto_preset = auto_preset); }
int WWTimer_SetPresetCounter(WWTimer ww_timer, int preset_counter)
{ return (ww_timer->preset_counter = preset_counter); }
int WWTimer_SetCounter(WWTimer ww_timer, int counter)
{ return (ww_timer->counter = counter); }
int WWTimer_SetAutoPresetOFF(WWTimer ww_timer)
{ return (WWTimer_SetAutoPreset(ww_timer, 0)); }
int WWTimer_SetAutoPresetON(WWTimer ww_timer)
{ return (WWTimer_SetAutoPreset(ww_timer, 1)); }
int WWTimer_Reset(WWTimer ww_timer)
{
int counter;
counter = WWTimer_GetCounter(ww_timer);
WWTimer_SetCounter(ww_timer, WWTimer_GetPresetCounter(ww_timer));
return (counter);
}
int WWTimer_Count(WWTimer ww_timer)
{
int ret;
int counter;
if (WWTimer_IsOFF(ww_timer)) return (0);
counter = WWTimer_GetCounter(ww_timer);
counter--;
if (counter <= 0) {
ret = 1;
if (WWTimer_IsAutoPresetON(ww_timer))
WWTimer_Reset(ww_timer);
else
WWTimer_OFF(ww_timer);
} else {
ret = 0;
WWTimer_SetCounter(ww_timer, counter);
}
return (ret);
}
/*---------------------------------------------------------------------------*/
/* オブジェクトの作成 */
/*---------------------------------------------------------------------------*/
WWTimer WWTimer_Create(int auto_preset, int preset)
{
WWTimer ww_timer;
ww_timer = (WWTimer)malloc(sizeof(_WWTimer));
if (ww_timer == NULL)
WonX_Error("WWTimer_Create", "Cannot allocate memory.");
WWTimer_OFF(ww_timer);
WWTimer_SetAutoPreset(ww_timer, auto_preset);
WWTimer_SetPresetCounter(ww_timer, preset);
WWTimer_Reset(ww_timer);
return (ww_timer);
}
/*---------------------------------------------------------------------------*/
/* オブジェクトの削除 */
/*---------------------------------------------------------------------------*/
WWTimer WWTimer_Destroy(WWTimer ww_timer)
{
if (ww_timer == NULL)
WonX_Error("WWTimer_Destroy", "Object is not created.");
free(ww_timer);
return (NULL);
}
/*****************************************************************************/
/* ここまで */
/*****************************************************************************/
/*****************************************************************************/
/* End of File. */
/*****************************************************************************/