互芯平台播放动画完毕后多播一帧的问题修改

修改次void mmi_pwron_entry_animation_screen(void)下的一项值的大小

/* not set in NVRAM, use defulat 20 sec limit */
if(force_stop_time == 0xffff)
{
force_stop_time = 5*1000;//20000;//改到动画长度就可以了
}
还看到以下代码
static void mmi_pwron_froce_terminate_display(void)
{
   /*----------------------------------------------------------------*/
   /* Code Body                                                      */
   /*----------------------------------------------------------------*/


MMI_TRACE((MMI_TRACE_G7_MISC, MMI_POWER_ON_ANIMATION_TIMEOUT));
mmi_trace(1," mmi_pwron_froce_terminate_display");
/* if never successfully play once, force stop */
if(!g_pwron_is_successful_play)
{
g_pwron_is_terminate_diplay = TRUE;
g_pwron_is_successful_play = TRUE;


/* mimic gif last frame callback */
CallBackPowerOnAnimationComplete(GDI_GIF_LAST_FRAME);//播放失败就放最后一帧


/* start another timer to try */
coolsand_UI_start_timer(200, mmi_pwron_froce_terminate_display);
}
}

论坛朋友介绍了一个不用改这里面数值的方法,如下

尝试如下修改:
RedrawCategory166Screen函数:
...
        /* source from id */
        if (cat166_is_gif_anim)
        {
            /* animation, use GDI's auto play animation */
            gdi_image_set_animation_last_frame_callback(cat166_animation_complete_callback);
            TRACE_SYS_FUNCTION();
            result = gdi_image_draw_animation_once(cat166_image_offset_x, cat166_image_offset_y, (U8*) GetImage(cat166_animation_id), NULL); //gdi_image_draw_animation
...

BV4的工程还需要在mmi_pwron_show_image_callback函数增加(bv5的工程可以不增加):
        else
        {
                /* play finish successfully */
                g_pwron_is_successful_play = TRUE;

                /* call before access NVRAM */
                CallBackPowerOnAnimationComplete(GDI_SUCCEED);

                g_pwr_context[0].PowerOnAnimationComplete = 1;        }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值