comparison src/animate.c @ 822:586e50f82c1f

Unify coding style tag for emacs and vim.
author Shih-Yuan Lee (FourDollars) <fourdollars@gmail.com>
date Tue, 14 Sep 2010 01:08:39 +0800
parents f90c60967a9c
children 9b5d4839c5bb
comparison
equal deleted inserted replaced
821:bfdc82bbd6e4 822:586e50f82c1f
1 // -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 4; -*-
2 // vim: sw=4:ts=8:sts=4
1 /*! \file 3 /*! \file
2 * \brief Animation tools. 4 * \brief Animation tools.
3 * 5 *
4 * \sa \ref ani 6 * \sa \ref ani
5 */ 7 */
39 * block, mb_progm_start() starts the program. 3rd argument of 41 * block, mb_progm_start() starts the program. 3rd argument of
40 * mb_progm_start() must be current wall time. 42 * mb_progm_start() must be current wall time.
41 * 43 *
42 * \code 44 * \code
43 * progm = mb_progm_new(10, &rdman); 45 * progm = mb_progm_new(10, &rdman);
44 * 46 *
45 * MB_TIMEVAL_SET(&start, 0, 0); 47 * MB_TIMEVAL_SET(&start, 0, 0);
46 * MB_TIMEVAL_SET(&playing, 1, 0); 48 * MB_TIMEVAL_SET(&playing, 1, 0);
47 * word = mb_progm_next_word(progm, &start, &playing); 49 * word = mb_progm_next_word(progm, &start, &playing);
48 * 50 *
49 * act = mb_shift_new(50, 50, coord1, word); 51 * act = mb_shift_new(50, 50, coord1, word);
286 if(progm->first_playing < progm->n_words) { 288 if(progm->first_playing < progm->n_words) {
287 word = progm->words + progm->first_playing; 289 word = progm->words + progm->first_playing;
288 if(MB_TIMEVAL_LATER(&word->abs_start, &next_tmo)) 290 if(MB_TIMEVAL_LATER(&word->abs_start, &next_tmo))
289 MB_TIMEVAL_CP(&next_tmo, &word->abs_start); 291 MB_TIMEVAL_CP(&next_tmo, &word->abs_start);
290 timer = mb_tman_timeout(progm->tman, &next_tmo, 292 timer = mb_tman_timeout(progm->tman, &next_tmo,
291 mb_progm_step, progm); 293 mb_progm_step, progm);
292 progm->cur_timer = timer; 294 progm->cur_timer = timer;
293 } else { 295 } else {
294 /* Make program to complete. */ 296 /* Make program to complete. */
295 #ifndef UNITTEST 297 #ifndef UNITTEST
296 comp_evt.event.type = EVT_PROGM_COMPLETE; 298 comp_evt.event.type = EVT_PROGM_COMPLETE;
325 327
326 if(MB_TIMEVAL_EQ(&progm->words[0].abs_start, now)) { 328 if(MB_TIMEVAL_EQ(&progm->words[0].abs_start, now)) {
327 mb_progm_step(now, now, progm); 329 mb_progm_step(now, now, progm);
328 return; 330 return;
329 } 331 }
330 332
331 timer = mb_tman_timeout(tman, &progm->words[0].abs_start, 333 timer = mb_tman_timeout(tman, &progm->words[0].abs_start,
332 mb_progm_step, progm); 334 mb_progm_step, progm);
333 ASSERT(timer != NULL); 335 ASSERT(timer != NULL);
334 336
335 /* We need timer to abort it. */ 337 /* We need timer to abort it. */
487 489
488 r = mb_tman_next_timeout(tman, &now, &tmo_after); 490 r = mb_tman_next_timeout(tman, &now, &tmo_after);
489 CU_ASSERT(r == 0); 491 CU_ASSERT(r == 0);
490 CU_ASSERT(MB_TIMEVAL_SEC(&tmo_after) == 0 && 492 CU_ASSERT(MB_TIMEVAL_SEC(&tmo_after) == 0 &&
491 MB_TIMEVAL_USEC(&tmo_after) == STEP_INTERVAL); 493 MB_TIMEVAL_USEC(&tmo_after) == STEP_INTERVAL);
492 494
493 /* 1.1s */ 495 /* 1.1s */
494 MB_TIMEVAL_ADD(&now, &tmo_after); 496 MB_TIMEVAL_ADD(&now, &tmo_after);
495 mb_tman_handle_timeout(tman, &now); 497 mb_tman_handle_timeout(tman, &now);
496 CU_ASSERT(logcnt == 4); 498 CU_ASSERT(logcnt == 4);
497 499
498 r = mb_tman_next_timeout(tman, &now, &tmo_after); 500 r = mb_tman_next_timeout(tman, &now, &tmo_after);
499 CU_ASSERT(r == 0); 501 CU_ASSERT(r == 0);
500 CU_ASSERT(MB_TIMEVAL_SEC(&tmo_after) == 0 && 502 CU_ASSERT(MB_TIMEVAL_SEC(&tmo_after) == 0 &&
501 MB_TIMEVAL_USEC(&tmo_after) == STEP_INTERVAL); 503 MB_TIMEVAL_USEC(&tmo_after) == STEP_INTERVAL);
502 504
503 /* 1.2s */ 505 /* 1.2s */
504 MB_TIMEVAL_ADD(&now, &tmo_after); 506 MB_TIMEVAL_ADD(&now, &tmo_after);
505 mb_tman_handle_timeout(tman, &now); 507 mb_tman_handle_timeout(tman, &now);
506 CU_ASSERT(logcnt == 6); 508 CU_ASSERT(logcnt == 6);
507 509
508 r = mb_tman_next_timeout(tman, &now, &tmo_after); 510 r = mb_tman_next_timeout(tman, &now, &tmo_after);
509 CU_ASSERT(r == 0); 511 CU_ASSERT(r == 0);
510 CU_ASSERT(MB_TIMEVAL_SEC(&tmo_after) == 0 && 512 CU_ASSERT(MB_TIMEVAL_SEC(&tmo_after) == 0 &&
511 MB_TIMEVAL_USEC(&tmo_after) == STEP_INTERVAL); 513 MB_TIMEVAL_USEC(&tmo_after) == STEP_INTERVAL);
512 514
513 /* 1.3s */ 515 /* 1.3s */
514 MB_TIMEVAL_ADD(&now, &tmo_after); 516 MB_TIMEVAL_ADD(&now, &tmo_after);
515 mb_tman_handle_timeout(tman, &now); 517 mb_tman_handle_timeout(tman, &now);
516 CU_ASSERT(logcnt == 8); 518 CU_ASSERT(logcnt == 8);
517 519
518 r = mb_tman_next_timeout(tman, &now, &tmo_after); 520 r = mb_tman_next_timeout(tman, &now, &tmo_after);
519 CU_ASSERT(r == 0); 521 CU_ASSERT(r == 0);
520 CU_ASSERT(MB_TIMEVAL_SEC(&tmo_after) == 0 && 522 CU_ASSERT(MB_TIMEVAL_SEC(&tmo_after) == 0 &&
521 MB_TIMEVAL_USEC(&tmo_after) == STEP_INTERVAL); 523 MB_TIMEVAL_USEC(&tmo_after) == STEP_INTERVAL);
522 524
523 /* 1.4s */ 525 /* 1.4s */
524 MB_TIMEVAL_ADD(&now, &tmo_after); 526 MB_TIMEVAL_ADD(&now, &tmo_after);
525 mb_tman_handle_timeout(tman, &now); 527 mb_tman_handle_timeout(tman, &now);
526 CU_ASSERT(logcnt == 9); 528 CU_ASSERT(logcnt == 9);
527 529
528 r = mb_tman_next_timeout(tman, &now, &tmo_after); 530 r = mb_tman_next_timeout(tman, &now, &tmo_after);
529 CU_ASSERT(r == 0); 531 CU_ASSERT(r == 0);
530 CU_ASSERT(MB_TIMEVAL_SEC(&tmo_after) == 0 && 532 CU_ASSERT(MB_TIMEVAL_SEC(&tmo_after) == 0 &&
531 MB_TIMEVAL_USEC(&tmo_after) == STEP_INTERVAL); 533 MB_TIMEVAL_USEC(&tmo_after) == STEP_INTERVAL);
532 534
533 /* 1.5s */ 535 /* 1.5s */
534 MB_TIMEVAL_ADD(&now, &tmo_after); 536 MB_TIMEVAL_ADD(&now, &tmo_after);
535 mb_tman_handle_timeout(tman, &now); 537 mb_tman_handle_timeout(tman, &now);
536 CU_ASSERT(logcnt == 10); 538 CU_ASSERT(logcnt == 10);
537 539
548 suite = CU_add_suite("Suite_animate", NULL, NULL); 550 suite = CU_add_suite("Suite_animate", NULL, NULL);
549 if(suite == NULL) 551 if(suite == NULL)
550 return NULL; 552 return NULL;
551 553
552 CU_ADD_TEST(suite, test_animate_words); 554 CU_ADD_TEST(suite, test_animate_words);
553 555
554 return suite; 556 return suite;
555 } 557 }
556 558
557 #endif /* UNITTEST */ 559 #endif /* UNITTEST */