Mercurial > MadButterfly
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 */ |