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中,再resgen、VC下编译、看效果。
类似的文件还有VC编译的头文件是mcu/header_temp,若一个头文件在此目录下,则必须在另一目录下修改,修改此目录中的头文件只能在VC下看临时效果,最终必须将修改拷贝至另一目录,这些文件有gui_switch.h、wgui.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时判断按下的图片按钮(这一过程很是复杂,swith在AUDPLY_PEN_STATE列举的按钮中逐个判断),并将最终确定的按钮名称保存在audply_pen_event_on_object,在move、up时还要拿来使用,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();