详细设计说明书情景模式_第1页
详细设计说明书情景模式_第2页
详细设计说明书情景模式_第3页
详细设计说明书情景模式_第4页
详细设计说明书情景模式_第5页
免费预览已结束,剩余7页可下载查看

下载本文档

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

文档简介

1、情景模式详细设计说明书MTK-M3项目组康佳通信科技开发中心软件所2005年4月25日目录修改历史31整体结构及功能描述42关键数据结构说明43主要存储分配64各子模块实现及主要算法说明64.1 初始化64.2 开启74.3 个人设置74.3.2 音量设置74.3.3 其余设置75内部调用的主要函数说明81 入口函数81 内部函数86模块提供的外部接口函数说明97主要信号说明118相关文档文件11修改历史时间修改人版本修改内容2005-4-251.0创建初始版本1整体结构及功能描述功能描述:此部分功能,简而言之,就是按照用户特定的需求,设置环境参数,包括了开关机铃声、来电铃声、音量、按键音等参

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

3、关键数据结构说明typedefstruct(MMI_VOLUME_LEVEL_ENUMMMI_VOLUME_LEVEL_ENUMMMI_VOLUME_LEVEL_ENUMringVolumeLevel;/铃声音量keypadVolumeLevel;/按键音量loudSpeakerVolumeLevel;/免提音量MMI_ALERT_TYPEmtCallAlertTypeEnum;LIGHTlight;MMI_RING_TYPE_ENUMringTypeEnum;TONE_SETUPtoneSetup;MMI_ANSWERING_MODEansweringMode;MMI_FONT_SIZE_E

4、NUMfontSizeEnum;/来电提示方式包括响铃、振动、LED/LCD、LE咕光/响铃方式分单次、连续、渐进/各种铃声选择/应答模式/字体选择MMI_INTELLIGENT_CALL_ALERT_TYPEintelligentCallAlert;不确定/各种提不'首EXTRA_TONEextraTone;PROFILE;PROFILEgcurrentprofile;/当前设置的情景模式变量PROFILEgprofilesMAX_ELEMENTS;/存放N中情景模式变量U8gprofileId=0,/当前操作的情景模式IDU8gactivatedprofile=0;/当前处于激活状

5、态的情景模式ID以上为此部分比较关键的全局变量,基本上就是围绕这几个变量在进行判断和设置typedefstructkal_uint16ringTone;来电铃声kal_int16powerOffTone;/关机铃声kal_int16powerOnTone;/开机铃声/*ChangedByAlok*/#if!defined(MMI_LOW_MEMORY_PHONE)|defined(_MMI_CLAMSHELL_)kal_int16coverOpenTone;/翻盖铃声kal_int16coverCloseTone;/合盖铃声/短消息铃声按键音/闹铃音/无提示/响铃/振动/振动+响铃#endif

6、kal_int16messageTone;kal_uint8keypadTone;/kal_uint16alarmTone;TONE_SETUP;typedefenumMMI_ALERT_NONE,MMI_RING,MMI_VIBRATION_ONLY,MMI_VIBRATION_AND_RING,MMI_VIBRATION_THEN_RING,/振动后响铃MMI_SILENT/静音MMI_ALERT_TYPEtypedefstructMMI_LEDLIGHT_STATUS_ENUMstatus;/LED指示灯状态(七彩、三色,单色等)pBOOLlcdBacklight;SET_TIMERti

7、mer;/LCD背光时间LIGHT;/翻盖接听/任意键接听/自动应答,用于耳机模式typedefstructpBOOLcoverAnswer;pBOOLanyKey;pBOOLautomatic;MMI_ANSWERING_MODE;庖答模式typedefstructpBOOLerrorTone;/错误音pBOOLconnectTone;/连接提示pBOOLcampOnTone;/pBOOLwarningTone;/警告音EXTRA_TONE;3主要存储分配NVRAMfileId:NVRAM_PROFILES_LIDStructureusedfordefaultvalues:NVRAM_PRO

8、FILES_DEFAULTNumberofrecords:2RecordSize:308bytes.NVRAM中有两个相关的记录,其中一个用户任意可以改变,再开机时自动读取这些记录值来进行设置,还有一个记录是始终不变的,用以再恢复工厂模式的时候,读取相关数据。4各子模块实现及主要算法说明初始化初始化过程,在手机启动时,初始化应用情景模式应用程序(InitProfileApp),如果gprofilenvram值为0,则各种模式的初始值不从nvram中读取,程序中直接赋值。Gcurrntprofile赋值。注册整个过程中会用到的各级高亮函数。初始化nvram,读取当前激活的模式编号,和上一次激活的

9、模式编号,分别记录在变量gactivatedprofile,和glastactivatedprofile中。判断gactivatedprofile(当前情景模式)的值,若为0xff,则设置为0,gcurrentproflie赋值,紧接着按照gcurrentproflie中各参数得值设置当前各种铃声音量,并发消息到底层。最后设置显示的ICON和字体。开启初始化过程中注册启动高亮函数HighlightProfileActivateOptions,当用户选择开启当前情景模式时,回调此高亮函数,读出profile的id号码gprofileId(此变量在退出profile主菜单进入下级菜单时由退出函数赋

10、值),设置为当前激活的情景模式gactivatedprofile,将此值写入nvram相应的idNVRAM_PROFILES_ACTIVATED中,最后调用函数ActivateProfile,设置gcurrentprofile得值,同时读取按键音等数而新的设置生效。个人设置铃声设置铃声设置里最主要需要实现的就是获取光标高亮显示的铃声ID,获取了当前高亮菜单的铃声ID(通过判断是否支持自编铃声、wap、EMS等来获得最终的ID号),然后调用声音播放函数来播放相应的示范音,若有确认按键按下,则将此铃声id记为当前激活的铃声id。在GUI方面,同样需要实现的也是获取高亮显示的铃声ID,同时获取铃声总

11、数目(算法同以上设置里所描述),得到id后,将子菜单串装入数组subMenuDataPtrs中,将提示(hint)字串装入hintDataPtrs数组中。音量设置首先,判断是铃声音量还是按键音量,然后注册一系列的回调函数,当监测到按键改变音量大小时,显示和示范音同时发生改变,左软键确认,将音量值写入变量gprofilesgactivatedprofile的对应记录中。其余设置id,若检测到确定键,则将当前高亮的菜若设置的为目前正激活的模式,则将其余的设置在实现上大体相同,先获取当前高亮的菜单单id,写入gprofilesgprofileId的对应记录中去,gprofilesgprofileId

12、的值再赋给gcurrentprofile。注:情景模式的许多设置,在确定成功后都会弹出时钟控制的对话框自动返回上一级,所以在这种情况下,随后都要执行DeleteScreenIfPresent函数,修改历史纪录。5内部调用的主要函数说明5.1入口函数本节中提到的均为情景模式中各级菜单的函数,在初始化的时候,会注册一系列的高亮函数,高亮函数里注册响应的GUI函数作为按键响应函数。由全局变量传入参数。EntryScrProfiles()ExitScrProfiles()/显示所有的情景模式菜单EntryScrProfilesOptions()ExitScrProfilesOptions()/显示每个

13、情景模式下开启、个人设置EntryScrProfilesActivate开启界面O因为此类函数函数名比较清晰,所以这里不再一一列举。5.2内部函数InitProfileApp(void)/MMI_TASK中调用,在开机的时候,注册所有的菜单高亮回调函数。initnvramprofapp(void)初始化profile相关的nvram,读出nvram中NVRAM_PROFILES_ACTIVATED所对应的记录值,写入gactivatedprofile中,得到当前激活的模式id,同时激活相关设置。initializeProfiles(void)/首次启动时,在InitProfileApp(voi

14、d)值。中调用该函数,设置各模式的初voidActivateProfile(void)/激活当前的情景模式,开机nvram初始化时调用此部分函数,在进行模式设置时,按键触发该函数执行。此函数主要是对nvram得读写,和设置相关参数voidActivatefirstProfile(void);/首次进入情景模式,调用此函数,取gprofiles0为默认S16SetRingVolumeLevel(MMI_VOLUME_LEVEL_ENUMvolumelevel)volumelevel,同时发/参数为需要改变的音量,按键触发此函数,函数中将铃声音量设置为消息到底层,按给定的type和volumele

15、vel设置铃声。S16SetKeypadVolumeLevel(MMI_VOLUME_LEVEL_ENUMvolumelevel)同6S16SetMtCallAlertTypeEnum(MMI_ALERT_TYPEcallalerttype)/设置来电提示方式,按键触发,入口参数为需要设定的提示方式S16SetRingToneID(U16ringtoneid)/设置铃声,按键触发,入口参数为需要选定的铃声idS16SetLightStatus(MMI_LEDLIGHT_STATUS_ENUMbacklightstatus)/设置来电灯状态,按键触入口参数兀待设定向来电灯状态S16SetRing

16、TypeEnum(MMI_RING_TYPE_ENUMringtype)/设置响铃类型,按键触发,入口参数为需要设定的响铃类型(持续、一声、渐进)S16SetAnsweringMode(MMI_ANSWERING_MODEansweringmode)/设置应答模式,按键触发,入口参数为要设定而应答模式S16SetFontSizeEnum(MMI_FONT_SIZE_ENUMfontsize)/字体设定,按键触发,入口参数为要设定的字体S16SetPowerOnToneType(TONE_SETUPtone)S16SetPowerOffToneType(TONE_SETUPtone)S16Set

17、CoverOpenToneType(TONE_SETUPtone)S16SetCoverCloseToneType(TONE_SETUPtone)S16SetKeypadToneType(KEYPAD_TONE_ENUMkeypadtone)S16SetMessageToneType(TONE_SETUPtone)S16SetAlarmToneID(U16id)/以上均同921U8set_lcdbacklighttimer(void)/设定lcd背光开启时间,按键触发,全局变量gSec将需要设定的时间传入。6模块提供的外部接口函数说明1S16SetActivatedRingVolumeLeve

18、l(MMI_VOLUME_LEVEL_ENUMvolumelevel)/atcommand设置情景模式(不确定)S16SetActivatedKeypadVolumeLevel(MMI_VOLUME_LEVEL_ENUMvolumelevel)/atcommand设置情景模式(不确定)pBOOLSetProfileDefault(void)/为恢复出厂模式提供接口函数,返回值表示nvram是否写成功voidplayRequestedTone(ALL_TONE_ENUMplaytone)/所有应用程序,短信,camera等版程序接口,播放铃声voidstopRequestedTone(ALL_T

19、ONE_ENUMplaytone)/所有应用程序,停止相应的铃声播放MMI_VOLUME_LEVEL_ENUMGetRingVolumeLevel(void)/返回值为MMI_VOLUME_LEVEL_ENUM量,为其他函数提供当前的铃声音量MMI_VOLUME_LEVEL_ENUMGetKeypadVolumeLevel(void)同6MMI_ALERT_TYPEGetMtCallAlertTypeEnum(void)/返回值为MMI_ALERT_TYPEg回来电提示方式,为来电铃声,短消息提示等提供接口函数MMI_LEDLIGHT_STATUS_ENUMGetLightStatus(void)/为来电提示提供接口函数,返回值为MMI_LEDLIGHT_STATUS_ENUM,返回当前设置的来电灯状态MMI_RING_TYPE_ENUMGet

温馨提示

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

评论

0/150

提交评论