⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 draw_logo.c

📁 action mp3 devo,eki e,eikf, kdife l
💻 C
字号:
/*
*******************************************************************************
*                ACTOS AP
*        main ap of sdk 3.0
*
*        (c) Copyright, Actions Co,Ld.                             
*             All Right Reserved                          
*
*******************************************************************************
*/ 
#include "actos.h"
#include "ap_common.h"

extern comval_t g_comval;  //use at:"sKY_SetBLightColor(g_comval.BLightColor);"add by ccm

//char logo_buf[512];
//char file_buf[512];

/* 使用 logo.res, id: 1~14
const WORD system_logo[] = 
{
    BOOT1, BOOT2, BOOT3, BOOT4, BOOT5, BOOT6, BOOT7,
    BOOT8, BOOT9, BOOT10, BOOT11, BOOT12, BOOT13, BOOT14
};
*/
const WORD staff[] = 
{
    STAFF1, STAFF2, STAFF3, STAFF4, STAFF5, STAFF6, 
    STAFF7, STAFF8, STAFF9, STAFF10, STAFF11, STAFF12
};

/*
********************************************************************************
* Description : todo
*
* Arguments   :
*
* Returns     :
*
* Notes       :
        convert file_buf -> logo_buf
*
********************************************************************************
*/
void convert_bmp(int width)
{
}
/*
********************************************************************************
* Description : todo
*
* Arguments   :
*
* Returns     :
*
* Notes       :
        read logo.bmp
        width = 128
        height = n*32
*
********************************************************************************
*/
BOOL draw_user_logo(BOOL wait_key_up)
{
    int i;
    int height;

    //check if user file exist
    return FALSE;
    
    //read bmp header

    //parse format

    for(i=0; i<height/32; i++)
    {
        //read bit stream

        //convert it

        //show it    
    }
}
/*
********************************************************************************
* Description : 显示系统开机动画
*
* Arguments   : wait_key_up, 是否要等待按键
*
* Returns     : TRUE, 正常
        FALSE, 资源文件格式错误
*
* Notes       :
*
********************************************************************************
*/
BOOL draw_system_logo(BOOL wait_key_up)
{
    int i;
    int result;
    //int logo_num = sizeof(system_logo)/sizeof(system_logo[0]);
    WORD timer;
    BOOL need_wait_keyup=wait_key_up;
    char key;

    //use logo.res
    ResClose(res_fp);
        res_fp = ResOpen("logo.res");
        ASSERT( res_fp != NULL);
    
    for(i=1; i<=14; i++)
    {
        result = ResShowLogo(i);
        
        //sKY_SetBLightColor((i-1)/2);  //变换7彩背光颜色值(变换14次:"(i-1)%7" ; 7次:"(i-1)/2")。 for s2 by ccm
        sKY_OpenBacklight();          //点亮"(i-1)%7"对应的彩色背光.for s2 by ccm
        
        if(result == 0)
        {
            //sKY_SetBLightColor(g_comval.BLightColor);  //退出前恢复系统设置的背光颜色。for s2 add by ccm
                
            return FALSE;    //format error
        }

        //result = ap_sleep(1);
        //if(result != 0) return TRUE;    //user press keys

        //software timer
        timer = 6000;
        while(--timer > 0)
        {
            key = ap_get_message();

            //check key up
            if( (key & AP_KEY_UP) != 0 )
            {
                need_wait_keyup = FALSE;

                //user press mode to skip
                if(key == (AP_KEY_MODE | AP_KEY_UP)) break;
            }
        }
        if(timer != 0) break;    //user skip
    }

    //use ui30.res
    ResClose(res_fp);
        res_fp = ResOpen("ui30.res");
        ASSERT( res_fp != NULL);

    //wait for key up
    if(need_wait_keyup)
    {
        while((ap_get_message() & AP_KEY_UP) == 0) {;}
    }    
    else ap_sleep(2);
    
    //sKY_SetBLightColor(g_comval.BLightColor);  //恢复系统设置的背光颜色。for s2 add by ccm

    return TRUE;
}
/*
********************************************************************************
* Description : 按照以下优先级, 显示系统开机画面
        1. 用户自定义动画
        2. 系统开机动画
        3. 系统开机画面
*
* Arguments   : wait_key_up, 是否要等待按键
*
* Returns     :
*
* Notes       :
*
********************************************************************************
*/
void draw_logo(BOOL wait_key_up)
{
    
    //try to show user logo
    if(draw_user_logo(wait_key_up)) return;

    //try to show system logo
    else if(draw_system_logo(wait_key_up)) return;
    
    //try to show BOOTLOGO
    else
    {
        ResShowLogo(BOOTLOGO);    
        ap_sleep(2);        
    }
}
/*
********************************************************************************
* Description : 显示制作人员信息
*
* Arguments   :
*
* Returns     :
*
* Notes       :
*
********************************************************************************
*/
void draw_staff(void)
{
    int i;
    int total;

    total = sizeof(staff)/sizeof(staff[0]);

    ui_auto_update = FALSE;
    for(i=0; i<total - 1; i++)
    {
        ClearScreen(NULL);

        ResShowString(staff[i], 0, 0);
        ResShowString(staff[i+1], 0, 16);        
        
        UpdateScreen(NULL);
        
        if(ap_sleep(6) != 0) break;
    }
    ui_auto_update = TRUE;
    

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -