AudioPlayer流程分析

static void mmi_audply_update_main(void)

|

|

void mmi_audply_show_mainscreen(U16 title, U16 left_softkey, U16 right_softkey, S8 skin) { mmi_audply_redraw_main_screen(); }

/* show main screen */

|

|

mmi_audply_show_mainscreen(STR_ID_AUDPLY_TITLE,STR_ID_AUDPLY_LIST, STR_GLOBAL_BACK, g_audply.skin);

|

|

void mmi_audply_init_main_screen_images(S8 skin){= g_audply_skins[skin] }

 

const audply_skin_struct   g_audply_skins[]

audply_skin_struct中是坐标值、图片的ID

resource_audply_skins.c文件中定义了各个skin的详细值

  

skin的赋值追踪:

   mmi_audply_read_settings(){   g_audply.skin = 0;} ßßßßßßßßßvoid InitAudioPlayerApp(void)

ßßßßßßßßßvoid mmi_fng_init_app(void)ß ßßßßßßßß void InitAllApplications(void)    {MMI_APP_INIT(mmi_fng_init_app());}ßßßßßßßßMMI_task()

所以在audPlayer高亮时设断点无法追踪界面的初始化,因为这些在开机时就已经初始化过了

 

 

 

MoDIS/WIN32FS/DRIVE_D 模拟 Phone

MoDIS/WIN32FS/DRIVE_E 模拟Memory Card

 

 

 

resource_audply_skins.c文件存在以下三个目录中:

1.       plutommi/Customer/CustResource/PLUTO_MMI

2.       plutommi/Customer/CustResource

3.       plutommi/Customer/CustResource/BackUpRes

关系:

       Resgen时,将2拷贝到3中备份,再将1拷贝到2中,所有这些拷贝都是文件替换,而非改写文件

VC中只加载2,其他两个不加载

所以:

       1是最根本,修改1必须resgen(以替换2),在到VC下编译,才会有效果!

如果修改2,则不用resgen,可以直接在VC下编译就会有效果,但是new后又以1中的为准,所有修改都不存在了。(血的教训在2中修改了大量图片的坐标,下班前new了一下,第二天回来,昨天的工作前功尽弃!!!因为当时修改后直接在VC下编译可以看到效果,没注意这三者的关系而且dos下删除的文件不会进回收站,无法恢复!)。建议:若是有大量的细微改动且要马上看效果,可以在2中改,然后直接在VC编译就可,确定以后再将2拷贝到1中,再resgenVC下编译、看效果。

 

类似的文件还有VC编译的头文件是mcu/header_temp,若一个头文件在此目录下,则必须在另一目录下修改,修改此目录中的头文件只能在VC下看临时效果,最终必须将修改拷贝至另一目录,这些文件有gui_switch.hwgui.h……而且拷贝动作是在NEW时,resgen并不拷贝

 

mmi_audply_update_main中注册按键事件 触摸屏按键

触摸屏按键的处理在AudioPlayerMainScreen.c

mmi_audply_pen_down_hdlr

mmi_audply_pen_move_hdlr

mmi_audply_pen_up_hdlr

。。。

大体思想是:在down时判断按下的图片按钮(这一过程很是复杂,swithAUDPLY_PEN_STATE列举的按钮中逐个判断),并将最终确定的按钮名称保存在audply_pen_event_on_object,在moveup时还要拿来使用,down时一般只重画,up时除重画还要有相应的动作

 

 

生成PlayList的过程G3506项目,此项目与其他是不同的,全在宏__HCT_AUDPLY_ALBUM_DISPLAY__的控制之下)

hct_mmi_audply_gen_playlist();

    hct_mmi_audply_playlist_listmgr_create(search_name) search_name=music

            create  D:/@playlist/music.mal

          mmi_audply_playlist_create(path) path=D:/@playlist/music.mal 向此文件写

hct_mmi_audply_playlist_load_first_list();

你可能感兴趣的:(AudioPlayer流程分析)