icon_animation.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #pragma once
  2. #include <stdint.h>
  3. #include <stdbool.h>
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. #include <assets_icons.h>
  8. typedef struct IconAnimation IconAnimation;
  9. /*
  10. * Allocate icon animation instance with const icon data.
  11. * always returns Icon or stops system if not enough memory
  12. */
  13. IconAnimation* icon_animation_alloc(const Icon* icon);
  14. /*
  15. * Release icon animation instance
  16. */
  17. void icon_animation_free(IconAnimation* instance);
  18. /*
  19. * Get icon animation width
  20. */
  21. uint8_t icon_animation_get_width(IconAnimation* instance);
  22. /*
  23. * Get icon animation height
  24. */
  25. uint8_t icon_animation_get_height(IconAnimation* instance);
  26. /*
  27. * Check if icon is animated
  28. */
  29. bool icon_animation_is_animated(IconAnimation* instance);
  30. /*
  31. * Check if icon animation is active
  32. */
  33. bool icon_animation_is_animating(IconAnimation* instance);
  34. /*
  35. * Start icon animation
  36. */
  37. void icon_animation_start(IconAnimation* instance);
  38. /*
  39. * Stop icon animation
  40. */
  41. void icon_animation_stop(IconAnimation* instance);
  42. /*
  43. * Get current frame
  44. */
  45. uint8_t icon_animation_get_current_frame(IconAnimation* instance);
  46. /*
  47. * Returns true if current frame is a last one
  48. */
  49. bool icon_animation_is_last_frame(IconAnimation* instance);
  50. #ifdef __cplusplus
  51. }
  52. #endif