您的位置:首页 > 其它

mtk 6235/6253平台铃声的修改

2010-11-17 17:03 267 查看
一。添加铃声:
铃声资源:
plutommi/Customer/Audio/PLUTO文件夹下的audio.zip中添加相应的铃声资源。(具体目录:audio.zip/UserProfiles/Ring
(keypad、 Midi、Tone))

二。资源加载:
在Res_profiles.c文件中的PopulateUserProfilesAudioRes函数中加载铃声资源:
示例代码:
ADD_APPLICATION_AUDIO3(AUD_PROFILES_RING1,
CUST_ADO_PATH"////UserProfiles////Ring////s1imy01.imy",
"Ring1");

铃声对应个数的修改:
在Custom_user_profiles_defs.h文件中修改各铃声的个数:
MAX_RING_TONE_ID、MAX_MIDI_ID、MAX_SND_ID。

默认铃声设置:

在SettingProf.c文件中的initializeProfiles来设置默认铃声的缺少值。
gstartRingId =(MIN_RING_TONE_ID);
gtotalRingId = (MAX_RING_TONE_ID - MIN_RING_TONE_ID);
gstartMidiId = (MIN_MIDI_ID);
gtotalMidiId =(MAX_MIDI_ID - MIN_MIDI_ID);
gstartGeneralToneId =(MIN_SND_ID);
gtotalGeneralToneId = (MAX_SND_ID - MIN_SND_ID);

参照PopulateUserProfilesAudioRes函数中加载铃声的顺序来设置相应的值。

三。情景模式对应的缺少值修改。
修改Nvram_common_config.c文件中的NVRAM_PROFILES_DEFAULT来为
各情景模式设置缺省值。
static PROFILE const NVRAM_PROFILES_DEFAULT [MAX_ELEMENTS] =
{
#ifdef CUSTOM_USER_PROFILE_CONTENT_DEFAULT
CUSTOM_USER_PROFILE_CONTENT_DEFAULT
#else
{
LEVEL7, LEVEL4, LEVEL4, MMI_VIBRATION_AND_RING, {COLOR_PATTERN1, 3, 15}, 2, REPEAT,{101,101,101,110,101,101,155,205,153,203,110,110,110,110,110,KEYPAD_TONE,102,101,110},
{0, 0, 0}, THEME_DEFAULT, {0}, {0, 0, 0, 1}
},
{
LEVEL1, LEVEL1, LEVEL4, MMI_VIBRATION_ONLY, {COLOR_PATTERN1, 2, 15}, 3, SINGLE,{101,101,0,110,0,0,0, 0, 0, 0, 110,110,110,0,0,0,102,101,110},
{0, 0, 0}, THEME_DEFAULT, {0}, {0, 0, 0, 0}
},
{
LEVEL7, LEVEL7, LEVEL4, MMI_VIBRATION_AND_RING, {COLOR_PATTERN1, 4, 15}, 2, REPEAT,{101,101,101,110,101,101,155,205,153,203,110,110,110,110,110,KEYPAD_TONE,102,101,110},
{0, 0, 0}, THEME_DEFAULT, {0}, {1, 0, 0, 1}
},
{
LEVEL5, LEVEL3, LEVEL4, MMI_RING, {COLOR_PATTERN1, 2, 15}, 2, REPEAT,{101,101,101,110,101,101,155,205,153,203,110,110,110,110,110,KEYPAD_TONE,102,101,110},
{0, 0, 0}, THEME_DEFAULT, {0}, {1, 0, 0, 1}
},
{
LEVEL4, LEVEL2, LEVEL4, MMI_RING, {COLOR_PATTERN1, 2, 15}, 2, REPEAT,{101,101,101,110,101,101,155,205,153,203,110,110,110,110,110,KEYPAD_TONE,102,101,110},
{0, 0, 0}, THEME_DEFAULT, {0}, {0, 0, 0, 1}
},
{
LEVEL4, LEVEL2, LEVEL4, MMI_RING, {COLOR_PATTERN1, 1, 15}, 2, REPEAT,{101,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,102,101,0},
{0, 0, 0}, THEME_DEFAULT, {0}, {0, 0, 0, 0}
},
{
LEVEL7, LEVEL3, LEVEL4, MMI_RING, {COLOR_PATTERN1, 3, 15}, 2, REPEAT,{101,101,101,110,101,101,155,205,153,203,110,110,110,110,110,KEYPAD_TONE,102,101,110},
{0, 0, 0}, THEME_DEFAULT, {0}, {0, 0, 0, 1}
}
#endif /*CUSTOM_USER_PROFILE_CONTENT_DEFAULT*/
}

铃声的设置在结构PROFILE中的子结构TONE_SETUP toneSetup中。

四。initializeProfiles()中卫初始化各种情境模式下铃声的值,注意要与NVRAM_PROFILES_DEFAULT值相同。

五。别忘了修改UpdateDeleteExtMldToneSetup(U16 ToneId)函数

/*****************************************************************************
* FUNCTION
*  UpdateDeleteExtMldToneSetup
* DESCRIPTION
*  set default tone when selected extented Melody Ring tone is deleted.
* PARAMETERS
*  ToneId      [IN]
* RETURNS
*  void
*****************************************************************************/
void UpdateDeleteExtMldToneSetup(U16 ToneId)
{
/*----------------------------------------------------------------*/
/* Local Variables                                                */
/*----------------------------------------------------------------*/
U8 i, dirtyFlag = 0;
/*----------------------------------------------------------------*/
/* Code Body                                                      */
/*----------------------------------------------------------------*/
/* Update alarm ring tone list */
#if defined(__MMI_ALM_AUDIO_OPTIONS__) && defined(__MMI_ALM_CUSTOMIZE_TONE__)
mmi_alm_tone_setup_delete_ext_melody(ToneId);
#endif
for (i = 0; i < MAX_ELEMENTS; i++)
{
if (gprofiles[i].toneSetup.ringTone == ToneId)
{
gprofiles[i].toneSetup.ringTone = gstartRingId;
dirtyFlag = 1;
}
if (gprofiles[i].toneSetup.messageTone == ToneId)
{
gprofiles[i].toneSetup.messageTone = gstartRingId+10;
dirtyFlag = 1;
}
#ifdef __MMI_VIDEO_TELEPHONY__
if(gprofiles[i].toneSetup.videoCallTone== ToneId)
{
gprofiles[i].toneSetup.ringTone = gstartRingId;
dirtyFlag = 1;
}
#endif /*__MMI_VIDEO_TELEPHONY__*/
if (gprofiles[i].toneSetup.alarmTone == ToneId)
{
gprofiles[i].toneSetup.alarmTone = gstartRingId + 1;
dirtyFlag = 1;
}
#ifdef __MMI_DUAL_PROFILE_SUPPORT__
if(gprofiles[i].toneSetup.card2_ringTone==ToneId)
{
gprofiles[i].toneSetup.card2_ringTone = gstartRingId;
dirtyFlag = 1;
}
#endif	/*__MMI_DUAL_PROFILE_SUPPORT__*/
}
if (gactivatedprofile == gprofileId)
{
memcpy(&gcurrentprofile, &gprofiles[gprofileId], sizeof(mmi_profiles_cntx_struct));
}
mmi_profiles_Ext_melody_delete_menu_screen(ToneId);
if (dirtyFlag == 1)
{
if(!mmi_profiles_write_cntx_to_nvram())
{
MMI_TRACE(MMI_MEDIA_TRC_G3_APP_DETAIL,MMI_USER_PROF_ERR_UPDTAE_DELETE_EXTMLD);
return;
}
}
}
这段代码是声音设置中,设置了的铃声无法找到的情况下执行的。大意无法就是说如果设置的铃声找不到就还原成默认值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: