/*  GadTools layout toolkit
**
**  Copyright © 1993-1995 by Olaf `Olsen' Barthel
**  Freely distributable.
*/

#include "gtlayout_global.h"

VOID __regargs
LTP_Delay(ULONG Seconds,ULONG Micros)
{
	struct MsgPort __aligned	TimePort;
	struct timerequest __aligned	TimeRequest;

	memset(&TimePort,0,sizeof(TimePort));

	NewList(&TimePort . mp_MsgList);

	TimePort . mp_Flags	= PA_SIGNAL;
	TimePort . mp_SigBit	= SIGB_SINGLE;
	TimePort . mp_SigTask	= SysBase -> ThisTask;

	memset(&TimeRequest,0,sizeof(TimeRequest));

	TimeRequest . tr_node . io_Message . mn_ReplyPort = &TimePort;

	if(!OpenDevice(TIMERNAME,UNIT_VBLANK,&TimeRequest,NULL))
	{
		TimeRequest . tr_node . io_Command	= TR_ADDREQUEST;
		TimeRequest . tr_time . tv_secs 	= Seconds;
		TimeRequest . tr_time . tv_micro	= Micros;

		SetSignal(0,SIGF_SINGLE);
		SendIO(&TimeRequest);
		WaitIO(&TimeRequest);

		CloseDevice(&TimeRequest);
	}
}
