}
ani_info->frame_idx++;
- if (ani_info->frame_idx > ani_info->frame_max)
+ if (ani_info->frame_idx >= ani_info->frame_max)
{
ani_info->frame_idx = 0;
ani_info->repeat_cur++;
return e;
}
+void
+_ani_clear_led_clear(pui_ani_t *ani)
+{
+ pui_int_error e = PUI_INT_ERROR_NONE;
+ pui_ani_control_buffer *buffer = NULL;
+
+ buffer = pui_backend_ani_get_buffer(ani);
+
+ if (!buffer)
+ {
+ pui_err("Failed to get buffer !\n");
+ return;
+ }
+
+ for(int i = 0; i<12; i++)
+ {
+ buffer->ptr[4*i] = 0;
+ buffer->ptr[4*i + 1] = 0;//R
+ buffer->ptr[4*i + 2] = 0;//G
+ buffer->ptr[4*i + 3] = 0;//B
+ }
+
+ e = pui_backend_ani_set_buffer(ani, buffer);
+
+ if (e != PUI_INT_ERROR_NONE)
+ {
+ pui_err("Failed on setting buffer on animation !(e=%d)\n", e);
+ return;
+ }
+
+ e = pui_backend_ani_update(ani);
+
+ if (e != PUI_INT_ERROR_NONE)
+ {
+ pui_err("Failed on updating animation !(e=%d)\n", e);
+ return;
+ }
+}
+
pui_error
_ani_clear_fadeout_stop(pui_ani_t *ani, pui_bool force)
{
pui_backend_ani_remove_frame_cb(ani);
+ _ani_clear_led_clear(ani);
+
if (force)
pui_backend_ani_status_update(ani, PUI_ANI_STATUS_PAUSED);
else