详细设计说明书(情景模式)_第1页
详细设计说明书(情景模式)_第2页
详细设计说明书(情景模式)_第3页
详细设计说明书(情景模式)_第4页
详细设计说明书(情景模式)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、情景模式详细设计说明书MTK-M3项目组康佳通信科技开发中心软件所2005年4月25日目录 TOC o 1-5 h z 修改历史3 HYPERLINK l bookmark7 o Current Document 1整体结构及功能描述4 HYPERLINK l bookmark10 o Current Document 2关键数据结构说明4 HYPERLINK l bookmark13 o Current Document 3主要存储分配6 HYPERLINK l bookmark16 o Current Document 4各子模块实现及主要算法说明64.1初始化6 HYPERLINK l

2、bookmark22 o Current Document 4.2开启7 HYPERLINK l bookmark25 o Current Document 4.3个人设置74.3.2音量设置74.3.3其余设置7 HYPERLINK l bookmark28 o Current Document 5内部调用的主要函数说明8 HYPERLINK l bookmark31 o Current Document 5.1入口函数8 HYPERLINK l bookmark48 o Current Document 5.2内部函数86模块提供的外部接口函数说明9 HYPERLINK l bookmar

3、k111 o Current Document 7主要信号说明11 HYPERLINK l bookmark120 o Current Document 8相关文档文件11修改历史时间修改人版本修改内容2005-4-25朱丹丹1.0创建初始版本1整体结构及功能描述功能描述:此部分功能,简而言之,就是按照用户特定的需求,设置环境参数,包括了开关机 铃声、来电铃声、音量、按键音等参数设置。这些环境参数可以分别设置,也可以集体启动, 如下图所示。情景模式般模式 会议模式 室外模式 室内模式 耳机模式启动个性化设置铃声设置音量设置报警音类型响铃方式意外提示音应答模式背光具体实现:情景模式模块的设计,实

4、际上就是有条件的对NVRAM的读写,从而改变一些参数的设置。此套代码程序可以在模拟器上运行,可以在硬件平台上运行,情景模式模块两种条件下的架构 基本相同,所以这里主要介绍在硬件上的实现。该模块的设计主要分为两部分,MMI层,和L4层。MMI层:系统启动时对该模块进行初始化,注册此模块中菜单高亮信息,NVRAM中读取相关记录。在具体的设置之中,可以对各种参数分别设置,也可以整体启动某个情景模式。底层:接收MMI层发送过来的消息,执行相应操作,主要为保存已经确认的设置,另外, 在进行铃声选择的时候,同时播放示范音。2关键数据结构说明typedef structMMI_VOLUME_LEVEL_EN

5、UMMMI_VOLUME_LEVEL_ENUMMMI_VOLUME_LEVEL_ENUMringVolumeLevel;/铃声音量keypadVolumeLevel;/按键音量loudSpeakerVolumeLevel; /免提音量MMI_ALERT_TYPE mtCallAlertTypeEnum;来电提示方式包括响铃、振 动、LEDLIGHT light;MMI_RING_TYPE_ENUM ringTypeEnum;TONE_SETUP toneSetup;MMI_ANSWERING_MODE answeringMode;MMI_FONT_SIZE_ENUM fontSizeEnum;

6、/LCD、LED背光响铃方式分单次、连续、渐进/各种铃声选择/应答模式/字体选择MMI_INTELLIGENT_CALL_ALERT_TYPE intelligentCallAlert; /不确定EXTRA_TONE extraTone;/各种提示音 PROFILE;PROFILE gcurrentprofile;/当前设置的情景模式变量PROFILE gprofilesMAX_ELEMENTS; /存放N种情景模式变量U8 gprofileId = 0, /当前操作的情景模式IDU8 gactivatedprofile = 0;/当前处于激活状态的情景模式ID以上为此部分比较关键的全局变量,

7、基本上就是围绕这几个变量在进行判断和设置typedef struct kal_uint16 ringTone; kal_int16 powerOffTone; kal_int16 powerOnTone;/Changed By Alok */#if !defined(MMI_LOW_MEMORY kal_int16 coverOpenTone; kal_int16 coverCloseTone;#endifkal_int16 messageTone; kal_uint8 keypadTone;kal_uint16 alarmTone; TONE_SETUP;typedef enum MMI_A

8、LERT_NONE,MMI_RING, MMI_VIBRATION_ONLY, MMI_VIBRATION_AND_RING, MMI_VIBRATION_THEN_RING, MMI_SILENT MMI_ALERT_TYPEtypedef struct MMI_LEDLIGHT_STATUS_ENUM status;pBOOL lcdBacklight;SET_TIMER timer;LIGHT;/来电铃声/关机铃声开机铃声PHONE) | defined(_MMI_CLAMSHELL_)/翻盖铃声/合盖铃声/短消息铃声/按键音/闹铃音/无提示/响铃/振动/振动+响铃振动后响铃静音/LED

9、指示灯状态(七彩、三色,单色等)/LCD背光时间typedef struct pBOOL coverAnswer;pBOOL anyKey;pBOOL automatic;MMI_ANSWERING_MODE;/翻盖接听/任意键接听/自动应答,用于耳机模式应答模式 typedef structpBOOL errorTone; /错误音pBOOL connectTone; /连接提示pBOOL campOnTone; /pBOOL warningTone; /警告音 EXTRA_TONE;3主要存储分配NVRAM file Id : NVRAM_PROFILES_LIDStructure use

10、d for default values : NVRAM_PROFILES_DEFAULTNumber of records : 2Record Size : 308 bytes.NVRAM中有两个相关的记录,其中一个用户任意可以改变,再开机时自动读取这些记 录值来进行设置,还有一个记录是始终不变的,用以再恢复工厂模式的时候,读取相 关数据。4各子模块实现及主要算法说明4.1初始化初始化过程,在手机启动时,初始化应用情景模式应用程序(InitProfileApp),如果 gprofilenvram值为0,则各种模式的初始值不从nvram中读取,程序中直接赋值。Gcurrntprofile 赋值

11、。注册整个过程中会用到的各级高亮函数。初始化nvram,,读取当前激活的模式编号,和上一次激活的模式编号,分别记录在变量 gactivatedprofile,和glastactivatedprofile中。判断gactivatedprofile (当前情景模式)的值,若为0 xff,则设置为0, gcurrentproflie赋值,紧接着按照gcurrentproflie中各参数得值设置当前各种铃 声音量,并发消息到底层。最后设置显示的ICON和字体。4.2开启初始化过程中注册启动高亮函数HighlightProfileActivateOptions,当用户选择开启当前情景模式 时,回调此高亮

12、函数,读出profile的id号码gprofileId (此变量在退出profile主菜单进入下级 菜单时由退出函数赋值),设置为当前激活的情景模式gactivatedprofile,将此值写入nvram相 应的 id NVRAM_PROFILES_ACTIVATED 中,最后调用函数 ActivateProfile,设置 gcurrentprofile 得值,同时读取按键音等数值,新的设置生效。4.3个人设置4.3.1铃声设置铃声设置里最主要需要实现的就是获取光标高亮显示的铃声ID,获取了当前高亮菜单的铃声ID (通过判断是否支持自编铃声、wap、EMS等来获得最终的ID号),然后调用声音播

13、放函数来 播放相应的示范音,若有确认按键按下,则将此铃声id记为当前激活的铃声id。在GUI方面,同样需要实现的也是获取高亮显示的铃声ID,同时获取铃声总数目(算法同以上 设置里所描述),得到id后,将子菜单串装入数组subMenuDataPtrs中,将提示(hint)字串装 入 hintDataPtrs 数组中。4.3.2音量设置 首先,判断是铃声音量还是按键音量,然后注册一系列的回调函数,当监测到按键改变音量大 小时,显示和示范音同时发生改变,左软键确认,将音量值写入变量gprofilesgactivatedprofile 的对应记录中。4.3.3其余设置其余的设置在实现上大体相同,先获取

14、当前高亮的菜单id,若检测到确定键,则将当前高亮的菜 单id,写入gprofilesgprofileId的对应记录中去,若设置的为目前正激活的模式,则将gprofilesgprofileId的值再赋给 gcurrentprofile。注:情景模式的许多设置,在确定成功后都会弹出时钟控制的对话框自动返回上一级,所以在 这种情况下,随后都要执行DeleteScreenIfPresent函数,修改历史纪录。5内部调用的主要函数说明5.1入口函数本节中提到的均为情景模式中各级菜单的函数,在初始化的时候,会注册一系列的高亮函数, 高亮函数里注册响应的GUI函数作为按键响应函数。由全局变量传入参数。Ent

15、ryScrProfiles ()ExitScrProfiles ()显示所有的情景模式菜单EntryScrProfilesOptions ()ExitScrProfilesOptions ()显示每个情景模式下开启、个人设置EntryScrProfilesActivate开启界面。因为此类函数函数名比较清晰,所以这里不再一一列举。5.2内部函数InitProfileApp(void)/MMI_TASK中调用,在开机的时候,注册所有的菜单高亮回调函数。initnvramprofapp(void)/初始化profile相关的nvram,读出nvram中NVRAM_PROFILES_ACTIVATE

16、D所对应的记录值, 写入gactivatedprofile中,得到当前激活的模式id,同时激活相关设置。initializeProfiles (void)/首次启动时,在InitProfileApp(void)中调用该函数,设置各模式的初 值。void ActivateProfile(void)/激活当前的情景模式,开机nvram初始化时调用此部分函数,在进行模式设置时,按键触发 该函数执行。此函数主要是对nvram得读写,和设置相关参数void ActivatefirstProfile(void);首次进入情景模式,调用此函数,取gprofiles0为默认S16 SetRingVolumeL

17、evel(MMI_VOLUME_LEVEL_ENUM volumelevel )参数为需要改变的音量,按键触发此函数,函数中将铃声音量设置为volumelevel,同时发 消息到底层,按给定的type和volumelevel设置铃声。S16 SetKeypadVolumeLevel(MMI_VOLUME_LEVEL_ENUM volumelevel)同6S16 SetMtCallAlertTypeEnum( MMI_ALERT_TYPE callalerttype)设置来电提示方式,按键触发,入口参数为需要设定的提示方式S16 SetRingToneID(U16 ringtoneid)设置铃声

18、,按键触发,入口参数为需要选定的铃声idS16 SetLightStatus(MMI_LEDLIGHT_STATUS_ENUM backlightstatus)设置来电灯状态,按键触发,入口参数为待设定的来电灯状态S16 SetRingTypeEnum(MMI_RING_TYPE_ENUM ringtype)/设置响铃类型,按键触发,入口参数为需要设定的响铃类型(持续、一声、渐进)S16 SetAnsweringMode(MMI_ANSWERING_MODE answeringmode)/设置应答模式,按键触发,入口参数为要设定的应答模式S16 SetFontSizeEnum(MMI_FONT

19、_SIZE_ENUM fontsize)字体设定,按键触发,入口参数为要设定的字体S16 SetPowerOnToneType(TONE_SETUP tone)S16 SetPowerOffToneType(TONE_SETUP tone)S16 SetCoverOpenToneType(TONE_SETUP tone)S16 SetCoverCloseToneType(TONE_SETUP tone)S16 SetKeypadToneType(KEYPAD_TONE_ENUM keypadtone)S16 SetMessageToneType(TONE_SETUP tone)S16 SetA

20、larmToneID(U16 id)以上均同9U8 set_lcdbacklighttimer(void)设定lcd背光开启时间,按键触发,全局变量gSec将需要设定的时间传入。6模块提供的外部接口函数说明S16 SetActivatedRingVolumeLevel(MMI_VOLUME_LEVEL_ENUM volumelevel )/at command设置情景模式(不确定)S16 SetActivatedKeypadVolumeLevel(MMI_VOLUME_LEVEL_ENUM volumelevel)/at command设置情景模式(不确定)pBOOL SetProfileDe

21、fault(void)为恢复出厂模式提供接口函数,返回值表示nvram是否写成功void playRequestedTone(ALL_TONE_ENUM playtone)/所有应用程序,短信,camera等做程序接口,播放铃声void stopRequestedTone(ALL_TONE_ENUM playtone)/所有应用程序,停止相应的铃声播放MMI_VOLUME_LEVEL_ENUM GetRingVolumeLevel(void)/返回值为MMI_VOLUME_LEVEL_ENUM型变量,为其他函数提供当前的铃声音量MMI_VOLUME_LEVEL_ENUM GetKeypadVolumeLevel(void)同6MMI_ALERT_TYPE GetMtCallAlertTypeEnum(void)/返回值为MMI_ALERT_TYPE,返回来电提示方式,为来电铃声,短消息提示等提供接口函数MMI_LEDLIGHT_STATUS_ENUM GetLightStatus(void)/为来电提示提供接口函数,返

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论