LCD 移植
static const s_lcd_probe gLcdProbe[] = {
...
{"ILI9328", LCD_IsILI9328, &LCD_func_ILI9328},
{"LP4948", NULL, &LCD_func_LP4948},
}
原来{"LP4948", NULL, &LCD_func_LP4948}, 放在{"ILI9328", LCD_IsILI9328, &LCD_func_ILI9328} ,前面导致开机白屏,原因是
void LCD_FunConfigNew(void)
{
#if 1
kal_uint32 i;
for (i = 0; i < LCD_PROBE_NUM; i ++) {
if ((gLcdProbe[i].lcd_probe == NULL) || (KAL_TRUE == (gLcdProbe[i].lcd_probe)())) {
break;
}
}
gLcdSeq = i;
MainLCD = gLcdProbe[gLcdSeq].lcd_func;
#endif
// MainLCD = &LCD_func_ILI9225;
}
当走到"LP4948" 项时,由于其对应的lcd_probe 为"NULL", 导致退出循环,使得LCD 相应的功能函数都指向"LP4948" 对应的函数。
双卡改单卡。 SINGLE_SIM_MMI_ONLY
某个菜单项STR_ID 不显示。 原来是其子菜单个数与实际个数不相符。
键盘定义
Custom/drv/Drv_tool/DrvGen.exe
Custom/drv/misc_drv/MT6225_08A_GEMMI_BB/Codegen/codegen.dws
分布式编译某个模块出问题了。
May.20
1. 移植中间件
2. 改信号图标
双卡
I:/GP_DM2577/X4_20100121/plutommi/Customer/Images/PLUTO240X320/MainLCD/IdleScreen/Statusicons/DualSIM/Master
单卡
I:/GP_DM2577/X4_20100121/plutommi/Customer/Images/PLUTO240X320/MainLCD/IdleScreen/Statusicons/signal
May.24
拨号盘背景图片
MainLCD////DialingScreen////DualSIM////DUALMODE_TH_DIALING_SCREEN.GIF
gui_inputs.c
dialing_key_image[] 数组为键盘IMG_ID 数组。
gui_dialing_key_select() 处理判断获得的是哪个键,获得其image_id 并将其显示出来。各键的坐标信息则由全局变量 dialing_keypad 获得。
gui_dialing_screen_translate_pen_position() 获得item_index ,即判断是哪个键。
gui_dialing_screen_translate_pen_event() 触屏按键响应
gui_show_dialer_input_box_ext() 显示按的数字
wgui_categories_CM.c
ShowCategory16Screen()
DrawCate16CategoryControlArea()
DrawCate16CategoryControlArea_touch() 显示拨号盘背景
Cate16CategoryControlAreaPenDownHandler() 注册的触屏响应函数
setup_dialing_keypad() 设置拨号盘位置摆布参数
wgui.h 拨号盘位置参数设置
MMI_DIALING_KEYPAD_FUNC_Y // 这个参数为从拨号键盘处开始算
// 实际功能键坐标等于 MMI_DIALING_KEYPAD_LAYER_Y+ MMI_DIALING_KEYPAD_FUNC_Y
如宏MMI_DIALING_KEYPAD_COLOMNS
IdleApp.c 设置拨号盘功能键对应功能
IdleScreenDigitHandler() 进入拨号界面
SetDialingKeypadPhonebookHandler()
mmi_idle_set_dual_sim_dialing_keypad_call_handler()
wgui.c
dialer_inputbox_handle_key_down()
redraw_dialer_inputbox()
wgui_inputs.c
MMI_dialer_inputbox 参数 存储有关拨号盘中已按下的号码,文字显示方式等参数
ThemeRes.c 有关手机更菜单下采用的方格设置
Themecomponents.h
dialer_inputbox_background_filler_defaultTheme 拨号盘显示区填充风格
gui_inputs.c
gui_show_dialer_input_box_ext()
wgui_setup_dialer_inputbox() line 4518
ShowCategory16Screen() line 2607 + 60 bytes
IdleScreenDigitHandler() line 6825 + 30 bytes
HandleIdleScreenDigitEntry() line 7024
dialer_input_box_change_callback() 按下的按键变化时调用
register_dialer_inputbox_keys()
register_dialer_inputbox_dialer_keys()
redraw_dialer_inputbox() line 7470
dialer_inputbox_direct_input(unsigned short 56) line 7731
dialer_inputbox_handle_key_down(int 8) line 3811 + 12 bytes
May.25
custimgdatahw.h
好像所有图片数据都能在这找到
gif 图片为
其中的图片数组头,
0x03, 0x01, 0x8C, 0x07, 0x00, 0x27, 0x00, 0x05,
其他就是图片的二进制数据。
bmp 图片的数据则肉眼看不出与文件的二进制数据的联系,好像经过处理
EntryPhnsetWallpaperSys() 系统墙纸列表
EntryPhnsetWallpaperSysView () 查看墙纸
IMG_ID_DISPCHAR_THEME_WALLPAPER
ShowCategory130Screen ()
img_main_menu_bkg_filler_defaultTheme 主菜单背景样式
main_menu_bkg_filler_defaultTheme
sub_menu_bkg_filler_defaultTheme
idle_bkg_filler_defaultTheme
__MMI_FMGR_MULTI_SELECT_SUPPORT__ 文件多选宏
img_list_selected_defaultTheme LIST 菜单选中条样式
scrollbar_background_filler_defaultTheme 滚动条背景
scrollbar_indicator_filler_defaultTheme 滚动条选中区
gui_draw_filled_area(S32 x1, S32 y1, S32 x2, S32 y2, UI_filled_area * f)
May.26
gui_scrollbar_draw_button() 画滚动条
current_vertical_progress_indicator_theme
gui_themes.c
MMI_features.h
CFG_MMI_UI_SCROLLBAR_DEFAULT_STYLE
gui_config.h
定义滚动条显示样式
current_MMI_theme
gui_config.h UI_SCROLLBAR_STYLE_1 UI_SCROLLBAR_STYLE_2 ...
一共好像有6 种风格,但改成3 ,5 模拟器跑到有滚动条的地方就卡住,
gui_scrollbars_post_oem.h
gui_scrollbar_draw_button(int 1,) line 760
gui_show_vertical_scrollbar_style_6() line 6894 + 14 bytes
gui_show_fixed_list_menu() line 1948 + 15 bytes
show_fixed_list() line 876 + 10 bytes
dm_setup_and_draw_fixed_list() line 2902
MMI_fixed_list_menu
create_fixed_list ()创建list, 初始化MMI_fixed_list_menu 参数
gui_create_vertical_scrollbar() 创建vertical_scrollbar ,初始化滚动条参数
gui_show_vertical_scrollbar = gui_show_vertical_scrollbar_style_6;
current_fixed_list_menu_theme ->vbar_width 决定vbar 宽度
gui_themes.c
gui_initialize_default_themes ()
current_fixed_list_menu_theme = &MMI_fixed_list_menu_theme ;
scroll_button
current_vertical_scrollbar_theme
void set_MMI_theme(MMI_theme *t)
current_vertical_scrollbar_theme = current_UI_theme->vertical_scrollbar_theme;
void gui_initialize_default_themes(void)
current_vertical_scrollbar_theme = &MMI_vertical_scrollbar_theme;
在void wgui_init(void) 中,调用的情况如下:
set_MMI_theme((MMI_theme*) MMI_themes[0]);
gui_initialize_default_themes();
MMI_scrollbar_normal_filler
gui_scrollbar_draw_button(GUI_SCROLLBAR_BUTTON_VERTICAL_SCROLL , &v->scroll_button); 画中间的矩形块
gui_create_vertical_scrollbar() line 393
gui_create_fixed_list_menu() line 455 + 57 bytes
create_fixed_list() line 610 + 36 bytes
wgui_init() line 1601
initialize_UI_demo() line 1809
InitializeAll() line 3781
mmi_frm_power_on_init_procedure() line 1829
list_background_filler_defaultTheme
set_MMI_fixed_list_menu_theme()
set_MMI_list_main_menu_theme()
set_MMI_list_sub_menu_theme()
MMI_apply_current_theme()
StandaloneRes.c
void InitializeResourceVariables(void)
ThemeRes.c
const MMI_theme theme_defaultTheme={
/*scrollbar_size*/
UI_SCROLLBAR_WIDTH,
gui_config.h
#define UI_SCROLLBAR_WIDTH CFG_UI_SCROLLBAR_WIDTH
gui_switch.h
CFG_UI_SCROLLBAR_WIDTH 为滚动条中 中间方块的宽度
gui_fixed_menuitems.c
gui_show_fixed_icontext_menuitem() 显示宫格菜单文字
gui_show_fixed_icontext_list_menuitem() line:5649
gui_show_fixed_twostate_menuitem()
gui_shortcut_show() //image viewer. line 501
wgui_cat213_fmgr_draw_menuitem()// line 5025
将显示的菜单项的文字加上黑边。
gui_set_line_height(sh); //kevin_ma modify 090218
#ifdef __NOKIA_SEA_THEME_STYLE__
gui_set_text_border_color();
gui_print_bordered_text(_sub_text); // 原来为gui_print_text(_sub_text)
#else
#endif
line:3405 line:3250 line:2428 二级菜单打印文字
May.27
wgui_categories_idlescreen.c
setup_tab_idle_screen_shortcuts()
ShowCategory33Screen_ext() 中调用初始化TAB ICON 的函数
#ifndef MMI_TAB_IDLE_ICON_SHORTCUTS 此宏成立时
touch_tab_idle_shortcuts 全局变量 用来存储位置参数
gui_tab_idle_touch_screen_display_pressed_shorcut_item ()显示被按下的ICON
touch_tab_idle_screen_highlighted_shortcut 全局变量
display_touch_tab_no_idle_screen_shortcuts ()
gui_tab_idle_touch_screen_display_shorcut_item() line 1335
display_touch_tab_no_idle_screen_shortcuts() line 1411 + 9 bytes// 第一次跑这个
idle_screen_show_card2_network_name(int 0) line 435 // 显示SIM 卡信息
idle_screen_show_network_details() line 3652 + 50 bytes
wgui_cat033_redraw() line 6068 6037
dm_category_33_controlled_area() line 6123
dm_setup_and_draw_category_controlled_area() line 3738 + 12 bytes
dm_redraw_category_screen() line 7466 + 9 bytes
ShowCategory33Screen() line 6692
mmi_idle_entry_idle_screen() line 3280 + 30 bytes
EntryIdleScreen() line 5286
待机界面SIM 卡信息位置参数
MMI_IDLE_NETWORK_NAME_Y
MMI_IDLE_NETWORK_NAME_ICON_GAP
MMI_IDLE_TEXT_ALIGN_TYPE (IDLE_TEXT_CENTER_ALIGN )
wgui_categories_idlescreen.c Line:3091(text) 3139(icon1)
MMI_IDLE_SIM2_NETWORK_NAME_Y
set_arrow_key_hanler_function () line 1608 // 设置方向键响应
ShowCategory33Screen_ext() line 6335
ShowCategory33Screen() line 6675 + 29 bytes
mmi_idle_entry_idle_screen() line 3280 + 30 bytes
EntryIdleScreen() line 5286
mmi_bootup_entry_idle_screen() line 1953
mmi_bootup_exit_network_searching() line 1930
set_arrow_key_hanler_function()
wgui_cat033_display_shortcut_item() 显示桌面图标
WGUI_CAT033_MAX_SHORTCUTS_NUM 宏 桌面底部快捷图标个数
CFG_MMI_TOUCH_IDLESCREEN_SHORTCUTS 宏 将其关闭后,桌面不再显示两个快捷图标
gui_idle_menu_unselected_draw 绘制音乐播放器及FM 图标
桌面时钟
#ifndef INIDLE_SCREEN_MOVE_CLOCK 此条件下才能显示钟
#ifndef __MOVE_CLOCK__
#ifdef __MMI_UI_TECHNO_IDLESCREEN_BAR__
__MMI_DIGITAL_CLOCK_IMAGE_NUMBER__
__MMI_UI_TECHNO_IDLESCREEN_BAR__ 把这个关了
Plutommi/Customer/CustResource/MMI_features_switchPLUTO.h
Plutommi/mmi/inc/MMI_features_switch.h // 模拟器中好像改了这个才有反应
2577 项目3.0V 类型的SIM 卡读不了
Pmic_custom.c
Pmic_customization_init() 中添加
Pmic_vsim_sel(vsim_3)
打开中文
项目.mak
CHINESE_VERSION = TRUE
MMI_features_switch.h
#ifdef __CHINESE_VERSION__
#define CFG_MMI_LANG_ENGLISH (__ON__)
#define CFG_MMI_LANG_SM_CHINESE (__ON__)
#define CFG_MMI_LANG_THAI (__ON__)
#define CFG_MMI_LANG_HINDI (__ON__)
#elif defined(__HINDI_VERSION__)
…
Camera
SENSOR_TYPE 其不为NONE 时,CMOS SENSOR 不能为NONE
CMOS_SENSOR NONE
LENS_MODULE CMOS_SENSOR 为NONE 时,其必须为NONE
WEBCAM_SUPPORT CMOS_SENSOR 为NONE 时,其必须为NONE
ISP_SUPPORT CMOS_SENSOR 为NONE 时,其必须为FALSE
MJPG_SUPPORT ISP_SUPPORT 为NONE ,其必须为FALSE
__MMI_VIDEO_PLAYER__ MJPG_SUPPORT 对其进行控制
蓝牙
BT_SEQ_SUPPORT
BT_HFG_PROFILE
BT_FTS_PROFILE
BT_FTC_PROFILE
BT_OPP_PROFILE
BT_DUN_PROFILE
BT_SPP_SERVER
BT_SPP_CLIENT
# If BLUETOOTH_SUPPORT is not BTMTK_MT6601, its value must be NONE
BT_A2DP_PROFILE
BLUETOOTH_SUPPORT
BLUETOOTH_VERSION
MERCURY_SLAVE_BT_SUPPORT BLUETOOTH_SUPPORT 为NONE 时,其必须为FALSE
FM
FM_RADIO_CHIP
编到最后出了很多link 错误,把 __MMI_DSM_NEW__ 宏关掉
改IDLE 桌面
gui_idle_menu_unselected_draw
改了驱动后做以下动作就行
emiclean
emigen
c,r custom drv init l1audio
MTK-M100 滚动条问题
1. 在/M100 sico/plutommi/Customer/Images/PLUTO240X320/MainLCD/UIElement/Scrollbar 这个目录下,插入三个图片:v_bar_bottom.bmp ,v_bar_middle.bmp ,v_bar_top.bmp ,这三个图片是作为滚动条背景用的。
2. 改变Gui_scrollbars.c(plutommi/mmi/gui/gui_src) 中改变一下几处:
1). static void gui_scrollbar_precache_image_size(void) 函数中改
g_mmi_gui_scrollbar_width = iw; 为g_mmi_gui_scrollbar_width = iw-5;
2). static void gui_scrollbar_draw_region(gui_scrollbar_region_enum type, S32 x, S32 y, S32 width, S32 height) 函数中改:
y1 = y + g_mmi_gui_scrollbar_bar_size1;
y2 = y + height - g_mmi_gui_scrollbar_bar_size3 - 1;
May.28
wingui.c
setup_UI_wrappers()
gui_print_text = UI_print_text;
KeyBrd.c
ExecuteCurrKeyHandler
May.29
换宫格图片后,进入宫格界面卡死,原来是宫格图片大小与原来的不一样。
gui_switch.h
调整宫格大小参数
CFG_UI_MAIN_MENU_HIGHLIGHTED_IMAGE_WIDTH
Calculator.h
计算器布局
setup_calculator_keypad ()
播放器
mmi_audply_app_pre_entry ()入口函数
mmi_audply_redraw_main_buttons ()
audply_main_buttons 全局变量
mmi_audply_init_main_screen_images ()初始化图片ID ,位置等参数
resource_audply_skins.c
位置参数文件
gui_redraw_scrolling_text ()//s->flags & UI_SCROLLING_TEXT_BORDERED_TEXT 此参数决定是否显示带边框的滚动文字。
待机界面显示播放器信息
gui_create_scrolling_text() line 875
wgui_cat033_show_extra_information() line 3540 + 83 bytes
idle_screen_show_network_details() line 3701
wgui_cat033_redraw() line 6067
dm_category_33_controlled_area(dm_coordinates * 0x0651fca8) line 6156
dm_setup_and_draw_category_controlled_area() line 3738 + 12 bytes
dm_redraw_category_screen() line 7466 + 9 bytes
ShowCategory33Screen() line 6726
mmi_idle_entry_idle_screen() line 3280 + 30 bytes
EntryIdleScreen() line 5286
wgui_cat033_get_extra_text(); 获得(当前在播放的音乐名称)
y = MMI_IDLE_EXTRA_Y+55; IDLE 界面音乐信息位置参数
二级菜单图标是否全用数字
__MMI_SLIM_LISTMENU_NUMBER__ 此宏打开,则全为数字
May.31
屏闪(开机屏闪/ 通话屏闪)射频需降低功率/ 导。C 文件
开关机
Active/Poweronoff
FUNANDGAME 游戏
SubMenu//FunANDGame//SB_FGGAME.PBM
Theme//SB_FTH.PBM (Motion Application )
WAP
WAP//SB_WAP.PBM
数据帐户
submenu//services//DataAccount//SB_DATA.PBM
工具箱
日历
Calendar/SB_OCDAR.pbm
ClndrPreEntryApp ()
EntryClndrScreen ()
GetDateTime(¤tTime);
ToDoList/SB_OLIST.PBM (Tasks)
Alarm/SB_OAM.pbm(Alarm)
Worldclock/SB_WORLD.pbm (World Clock)
g_clndr_cntx->info_box_text[1] 日历下方的第二栏文字
附加功能
Calculator/SB_OCACU.pbm
通话记录 (2 个)
Call//CallCenter//CC_callhistory.pbm
电话本
Phonebook
短信
SMS
通话中心
Call/CallCenter
设置
Submenu/Settings
多媒体
Video//VideoRecorder//SB_VR.pbm
June.1
开关机铃声
tools/AudioResGen
sound.txt 写上待转换的文件路径。将所有txt 文件清空后,运行AudioResGen.exe 将生成三个文件。将resource_audio.c 中的数组复制到resource_audio.c 。修改引用到的地方的类型说明。示例如下:
// 其中的类型,mp3 为5 ,其他为17
const audio_resource_struct mtk_resource_message_sounds[]={
resource_audio.c 开关机铃声等
const device_tones_struct *mtk_resource_tones[]=
__align(2) static const unsigned char cs07_mid[] = {
custpack_audio.c 来电铃声
nvram_common_config.c
查看默认的音频设置
typedef struct
{
kal_uint8 ringVolumeLevel;
kal_uint8 keypadVolumeLevel;
kal_uint8 loudSpeakerVolumeLevel;
MMI_ALERT_TYPE mtCallAlertTypeEnum;
LIGHT light;
kal_uint8 impsStatus;
kal_uint8 ringTypeEnum;
TONE_SETUP toneSetup;
MMI_ANSWERING_MODE answeringMode;
kal_uint8 fontSizeEnum;
MMI_INTELLIGENT_CALL_ALERT_TYPE intelligentCallAlert;
EXTRA_TONE extraTone;
} PROFILE;
typedef struct
{
kal_uint16 ringTone; //1
kal_uint16 videoCallTone;
kal_uint16 IMPSContactOnlineTone;
kal_uint16 IMPSNewMessageTone;
kal_uint16 IMPSNewInvitationTone; //5
kal_uint16 IMPSChatroomNotificationTone;
kal_int16 powerOffTone; //7
kal_int16 powerOnTone; //8
kal_int16 coverOpenTone;
kal_int16 coverCloseTone;
kal_int16 messageTone;
kal_int16 mmsTone;
kal_int16 smsTone;
kal_int16 emailTone;
kal_int16 voiceTone;
kal_uint8 keypadTone;
kal_uint16 alarmTone;
kal_uint16 card2_ringTone;
kal_int16 card2_messageTone;
} TONE_SETUP;
static PROFILE const NVRAM_PROFILES_DEFAULT [MAX_ELEMENTS] =
wingui.c
gui_print_bordered_text
UI_print_bordered_text
IDLE 显示日期
MENU_SETTING_SHOW_DT_TIME // Setting/Phone setup/show date and time 菜单
g_phnset_cntx_p->curShowDtStatus 是否显示的数据
June.2
卡1 ,卡2 反了
custom_drv_init.c
void custom_drv_init(void)
{…
sim_switchPhysicalSlotMapping(KAL_TRUE) ;
}
May.3
桌面显示快捷方式(KEYPAD,PHONEBOOK,MAINMENU )
__MMI_TOUCH_IDLESCREEN_SHORTCUTS__ 控制桌面是否显示快捷方式
wgui_cat033_display_shortcut ()
wgui_cat033_display_shortcut_item ()
MMI_features_switch.h
MMI_features_switchPLUTO.h
wingui.c
设置下面软键高度参数
Wingui.c
MMI_button_bar_height = MMI_BUTTON_BAR_HEIGHT;
gui_switch.h
CFG_UI_BUTTON_BAR_HEIGHT
dm_setup_and_draw_matrix_menu() 设置宫格参数
gui_show_fixed_icontext_menuitem() line 2629
gui_show_fixed_matrix_menu() line 5036 + 45 bytes
show_fixed_matrix() line 2177 + 10 bytes
dm_setup_and_draw_matrix_menu() line 3130
dm_redraw_category_screen() line 7495 + 9 bytes
ShowCategory14Screen() line 2833 + 5 bytes
goto_main_menu() line 1815 + 65 bytes
EntryMainMenuFromIdleScreen() line 1338
void gui_setup_default_layout(void) 初始化布局
#define MMI_CONTENT_Y (MMI_TITLE_HEIGHT)
gui_switch.h
#define CFG_UI_THIN_TITLE_HEIGHT (46) 标题栏高度
wgui_draw_manager.c
dm_setup_and_draw_matrix_menu ()
#ifdef __KAIXIN_FARM_THEME__
resize_fixed_matrix(240, 254); // 设置主菜单宽度,高度
#else
void EnableCenterSoftkey(U16 s, U16 i) //IDLE 中间按键响应是否打开
wgui_fixed_menus.c
create_fixed_list ()
MMI_fixed_list_menu
May.7
跑resgen 时,还没怎么开始就报错,make: *** [ckmake] Error 255
原来是plutommi /Customer 下的bat 文件也许由于病毒的原由,文件大小变成0, 从正常的地方copy 过来即可。
改射频
l1d_custom_rf.h
#define GSM850_GSM900_SWAP 1 //0 //wxx
#define DCS1800_PCS1900_SWAP 1 //0 //wxx