Esempio n. 1
0
static void rotate_update(void)
{
    if (rotationspeed < 0)
	direction = -1;
    else
	direction = 1;
    tl_set_interval(rotatetimer, 1000000 / rotationspeed * direction);
}
Esempio n. 2
0
File: bb.c Progetto: stroucki/bb
void timestuff(int rate, void (*control) (int), void (*draw) (void), int maxtime)
{
    int waitmode = 0, t;
    tl_timer *timer;
    bbupdate();
    /*starttime = TIME; */
    endtime = starttime + maxtime;
    timer = tl_create_timer();
    if (control == NULL) {
	rate = -40;
    }
    if (rate < 0) {
	waitmode = 1, rate = -rate;
	control1 = control;
	tl_set_multihandler(timer, mycontrol);
    }
    else
	tl_set_multihandler(timer, control);
    tl_set_interval(timer, 1000000 / rate);
    tl_add_timer(syncgroup, timer);
    tl_reset_timer(timer);
    if (control != NULL)
	control(1);
    while (!finish_stuff && TIME < endtime) {
	called = 0;
	t = tl_process_group(syncgroup);
	bbupdate();
	if (TIME > endtime)
	    break;
#ifdef __DJGPP__
	if (0)
#else
	if (!called && waitmode)
#endif
	    tl_sleep(t);
	else {
	    if (draw != NULL)
		draw();
	}
    }
    starttime = endtime;
    tl_free_timer(timer);
}
Esempio n. 3
0
static int
uih_message1 (uih_context * c, CONST char *message, int type)
{
  static int pid;
  int i;
  for (i = 0; i < NMESSAGES && c->messg.message[i] != NULL; i++);
  if (i == NMESSAGES)
    uih_scrollup (c), i--;
  c->messg.message[i] = mystrdup (message);
  c->messg.messagetype[i] = type;
  c->messg.messagetimer[i] = tl_create_timer ();
  tl_reset_timer (c->messg.messagetimer[i]);
  tl_set_interval (c->messg.messagetimer[i], 1);;
  tl_slowdown_timer (c->messg.messagetimer[i], EXPIRETIME);;
  tl_set_handler (c->messg.messagetimer[i], (void (*)(void *)) uih_scrollup,
		  c);
  tl_add_timer (syncgroup, c->messg.messagetimer[i]);
  /*tl_remove_timer (c->messg.messagetimer[i]); */
  c->messg.pid[i] = ++pid;
  c->display = 1;
  return (pid);
}