詳細(xì)設(shè)計(jì)說明書情景模式_第1頁(yè)
詳細(xì)設(shè)計(jì)說明書情景模式_第2頁(yè)
詳細(xì)設(shè)計(jì)說明書情景模式_第3頁(yè)
詳細(xì)設(shè)計(jì)說明書情景模式_第4頁(yè)
詳細(xì)設(shè)計(jì)說明書情景模式_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、情景模式詳細(xì)設(shè)計(jì)說明書MTK-M3項(xiàng)目組康佳通信科技開發(fā)中心軟件所2005年4月25日目錄修改歷史31整體結(jié)構(gòu)及功能描述42關(guān)鍵數(shù)據(jù)結(jié)構(gòu)說明43主要存儲(chǔ)分配64各子模塊實(shí)現(xiàn)及主要算法說明64.1 初始化64.2 開啟74.3 個(gè)人設(shè)置74.3.2 音量設(shè)置74.3.3 其余設(shè)置75內(nèi)部調(diào)用的主要函數(shù)說明81 入口函數(shù)81 內(nèi)部函數(shù)86模塊提供的外部接口函數(shù)說明97主要信號(hào)說明118相關(guān)文檔文件11修改歷史時(shí)間修改人版本修改內(nèi)容2005-4-251.0創(chuàng)建初始版本1整體結(jié)構(gòu)及功能描述功能描述:此部分功能,簡(jiǎn)而言之,就是按照用戶特定的需求,設(shè)置環(huán)境參數(shù),包括了開關(guān)機(jī)鈴聲、來電鈴聲、音量、按鍵音等參

2、數(shù)設(shè)置。這些環(huán)境參數(shù)可以分別設(shè)置,也可以集體啟動(dòng),如下圖所示。具體實(shí)現(xiàn):情景模式模塊的設(shè)計(jì),實(shí)際上就是有條件的對(duì)NVRAM讀寫,從而改變一些參數(shù)的設(shè)置。此套代碼程序可以在模擬器上運(yùn)行,可以在硬件平臺(tái)上運(yùn)行,情景模式模塊兩種條件下的架構(gòu)基本相同,所以這里主要介紹在硬件上的實(shí)現(xiàn)。該模塊的設(shè)計(jì)主要分為兩部分,MM層,和L4層。MM層:系統(tǒng)啟動(dòng)時(shí)對(duì)該模塊進(jìn)行初始化,注冊(cè)此模塊中菜單高亮信息,NVRAMP讀取相關(guān)記錄。在具體的設(shè)置之中,可以對(duì)各種參數(shù)分別設(shè)置,也可以整體啟動(dòng)某個(gè)情景模式。底層:接收MM層發(fā)送過來的消息,執(zhí)行相應(yīng)操作,主要為保存已經(jīng)確認(rèn)的設(shè)置,另外,在進(jìn)行鈴聲選擇的時(shí)候,同時(shí)播放示范音。2

3、關(guān)鍵數(shù)據(jù)結(jié)構(gòu)說明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;/來電提示方式包括響鈴、振動(dòng)、LED/LCD、LE咕光/響鈴方式分單次、連續(xù)、漸進(jìn)/各種鈴聲選擇/應(yīng)答模式/字體選擇MMI_INTELLIGENT_CALL_ALERT_TYPEintelligentCallAlert;不確定/各種提不'首EXTRA_TONEextraTone;PROFILE;PROFILEgcurrentprofile;/當(dāng)前設(shè)置的情景模式變量PROFILEgprofilesMAX_ELEMENTS;/存放N中情景模式變量U8gprofileId=0,/當(dāng)前操作的情景模式IDU8gactivatedprofile=0;/當(dāng)前處于激活狀

5、態(tài)的情景模式ID以上為此部分比較關(guān)鍵的全局變量,基本上就是圍繞這幾個(gè)變量在進(jìn)行判斷和設(shè)置typedefstructkal_uint16ringTone;來電鈴聲kal_int16powerOffTone;/關(guān)機(jī)鈴聲kal_int16powerOnTone;/開機(jī)鈴聲/*ChangedByAlok*/#if!defined(MMI_LOW_MEMORY_PHONE)|defined(_MMI_CLAMSHELL_)kal_int16coverOpenTone;/翻蓋鈴聲kal_int16coverCloseTone;/合蓋鈴聲/短消息鈴聲按鍵音/鬧鈴音/無(wú)提示/響鈴/振動(dòng)/振動(dòng)+響鈴#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,/振動(dòng)后響鈴MMI_SILENT/靜音MMI_ALERT_TYPEtypedefstructMMI_LEDLIGHT_STATUS_ENUMstatus;/LED指示燈狀態(tài)(七彩、三色,單色等)pBOOLlcdBacklight;SET_TIMERti

7、mer;/LCD背光時(shí)間LIGHT;/翻蓋接聽/任意鍵接聽/自動(dòng)應(yīng)答,用于耳機(jī)模式typedefstructpBOOLcoverAnswer;pBOOLanyKey;pBOOLautomatic;MMI_ANSWERING_MODE;庖答模式typedefstructpBOOLerrorTone;/錯(cuò)誤音pBOOLconnectTone;/連接提示pBOOLcampOnTone;/pBOOLwarningTone;/警告音EXTRA_TONE;3主要存儲(chǔ)分配NVRAMfileId:NVRAM_PROFILES_LIDStructureusedfordefaultvalues:NVRAM_PRO

8、FILES_DEFAULTNumberofrecords:2RecordSize:308bytes.NVRAM中有兩個(gè)相關(guān)的記錄,其中一個(gè)用戶任意可以改變,再開機(jī)時(shí)自動(dòng)讀取這些記錄值來進(jìn)行設(shè)置,還有一個(gè)記錄是始終不變的,用以再恢復(fù)工廠模式的時(shí)候,讀取相關(guān)數(shù)據(jù)。4各子模塊實(shí)現(xiàn)及主要算法說明初始化初始化過程,在手機(jī)啟動(dòng)時(shí),初始化應(yīng)用情景模式應(yīng)用程序(InitProfileApp),如果gprofilenvram值為0,則各種模式的初始值不從nvram中讀取,程序中直接賦值。Gcurrntprofile賦值。注冊(cè)整個(gè)過程中會(huì)用到的各級(jí)高亮函數(shù)。初始化nvram,讀取當(dāng)前激活的模式編號(hào),和上一次激活的

9、模式編號(hào),分別記錄在變量gactivatedprofile,和glastactivatedprofile中。判斷gactivatedprofile(當(dāng)前情景模式)的值,若為0xff,則設(shè)置為0,gcurrentproflie賦值,緊接著按照gcurrentproflie中各參數(shù)得值設(shè)置當(dāng)前各種鈴聲音量,并發(fā)消息到底層。最后設(shè)置顯示的ICON和字體。開啟初始化過程中注冊(cè)啟動(dòng)高亮函數(shù)HighlightProfileActivateOptions,當(dāng)用戶選擇開啟當(dāng)前情景模式時(shí),回調(diào)此高亮函數(shù),讀出profile的id號(hào)碼gprofileId(此變量在退出profile主菜單進(jìn)入下級(jí)菜單時(shí)由退出函數(shù)賦

10、值),設(shè)置為當(dāng)前激活的情景模式gactivatedprofile,將此值寫入nvram相應(yīng)的idNVRAM_PROFILES_ACTIVATED中,最后調(diào)用函數(shù)ActivateProfile,設(shè)置gcurrentprofile得值,同時(shí)讀取按鍵音等數(shù)而新的設(shè)置生效。個(gè)人設(shè)置鈴聲設(shè)置鈴聲設(shè)置里最主要需要實(shí)現(xiàn)的就是獲取光標(biāo)高亮顯示的鈴聲ID,獲取了當(dāng)前高亮菜單的鈴聲ID(通過判斷是否支持自編鈴聲、wap、EMS等來獲得最終的ID號(hào)),然后調(diào)用聲音播放函數(shù)來播放相應(yīng)的示范音,若有確認(rèn)按鍵按下,則將此鈴聲id記為當(dāng)前激活的鈴聲id。在GUI方面,同樣需要實(shí)現(xiàn)的也是獲取高亮顯示的鈴聲ID,同時(shí)獲取鈴聲總

11、數(shù)目(算法同以上設(shè)置里所描述),得到id后,將子菜單串裝入數(shù)組subMenuDataPtrs中,將提示(hint)字串裝入hintDataPtrs數(shù)組中。音量設(shè)置首先,判斷是鈴聲音量還是按鍵音量,然后注冊(cè)一系列的回調(diào)函數(shù),當(dāng)監(jiān)測(cè)到按鍵改變音量大小時(shí),顯示和示范音同時(shí)發(fā)生改變,左軟鍵確認(rèn),將音量值寫入變量gprofilesgactivatedprofile的對(duì)應(yīng)記錄中。其余設(shè)置id,若檢測(cè)到確定鍵,則將當(dāng)前高亮的菜若設(shè)置的為目前正激活的模式,則將其余的設(shè)置在實(shí)現(xiàn)上大體相同,先獲取當(dāng)前高亮的菜單單id,寫入gprofilesgprofileId的對(duì)應(yīng)記錄中去,gprofilesgprofileId

12、的值再賦給gcurrentprofile。注:情景模式的許多設(shè)置,在確定成功后都會(huì)彈出時(shí)鐘控制的對(duì)話框自動(dòng)返回上一級(jí),所以在這種情況下,隨后都要執(zhí)行DeleteScreenIfPresent函數(shù),修改歷史紀(jì)錄。5內(nèi)部調(diào)用的主要函數(shù)說明5.1入口函數(shù)本節(jié)中提到的均為情景模式中各級(jí)菜單的函數(shù),在初始化的時(shí)候,會(huì)注冊(cè)一系列的高亮函數(shù),高亮函數(shù)里注冊(cè)響應(yīng)的GUI函數(shù)作為按鍵響應(yīng)函數(shù)。由全局變量傳入?yún)?shù)。EntryScrProfiles()ExitScrProfiles()/顯示所有的情景模式菜單EntryScrProfilesOptions()ExitScrProfilesOptions()/顯示每個(gè)

13、情景模式下開啟、個(gè)人設(shè)置EntryScrProfilesActivate開啟界面O因?yàn)榇祟惡瘮?shù)函數(shù)名比較清晰,所以這里不再一一列舉。5.2內(nèi)部函數(shù)InitProfileApp(void)/MMI_TASK中調(diào)用,在開機(jī)的時(shí)候,注冊(cè)所有的菜單高亮回調(diào)函數(shù)。initnvramprofapp(void)初始化profile相關(guān)的nvram,讀出nvram中NVRAM_PROFILES_ACTIVATED所對(duì)應(yīng)的記錄值,寫入gactivatedprofile中,得到當(dāng)前激活的模式id,同時(shí)激活相關(guān)設(shè)置。initializeProfiles(void)/首次啟動(dòng)時(shí),在InitProfileApp(voi

14、d)值。中調(diào)用該函數(shù),設(shè)置各模式的初voidActivateProfile(void)/激活當(dāng)前的情景模式,開機(jī)nvram初始化時(shí)調(diào)用此部分函數(shù),在進(jìn)行模式設(shè)置時(shí),按鍵觸發(fā)該函數(shù)執(zhí)行。此函數(shù)主要是對(duì)nvram得讀寫,和設(shè)置相關(guān)參數(shù)voidActivatefirstProfile(void);/首次進(jìn)入情景模式,調(diào)用此函數(shù),取gprofiles0為默認(rèn)S16SetRingVolumeLevel(MMI_VOLUME_LEVEL_ENUMvolumelevel)volumelevel,同時(shí)發(fā)/參數(shù)為需要改變的音量,按鍵觸發(fā)此函數(shù),函數(shù)中將鈴聲音量設(shè)置為消息到底層,按給定的type和volumele

15、vel設(shè)置鈴聲。S16SetKeypadVolumeLevel(MMI_VOLUME_LEVEL_ENUMvolumelevel)同6S16SetMtCallAlertTypeEnum(MMI_ALERT_TYPEcallalerttype)/設(shè)置來電提示方式,按鍵觸發(fā),入口參數(shù)為需要設(shè)定的提示方式S16SetRingToneID(U16ringtoneid)/設(shè)置鈴聲,按鍵觸發(fā),入口參數(shù)為需要選定的鈴聲idS16SetLightStatus(MMI_LEDLIGHT_STATUS_ENUMbacklightstatus)/設(shè)置來電燈狀態(tài),按鍵觸入口參數(shù)兀待設(shè)定向來電燈狀態(tài)S16SetRing

16、TypeEnum(MMI_RING_TYPE_ENUMringtype)/設(shè)置響鈴類型,按鍵觸發(fā),入口參數(shù)為需要設(shè)定的響鈴類型(持續(xù)、一聲、漸進(jìn))S16SetAnsweringMode(MMI_ANSWERING_MODEansweringmode)/設(shè)置應(yīng)答模式,按鍵觸發(fā),入口參數(shù)為要設(shè)定而應(yīng)答模式S16SetFontSizeEnum(MMI_FONT_SIZE_ENUMfontsize)/字體設(shè)定,按鍵觸發(fā),入口參數(shù)為要設(shè)定的字體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)/設(shè)定lcd背光開啟時(shí)間,按鍵觸發(fā),全局變量gSec將需要設(shè)定的時(shí)間傳入。6模塊提供的外部接口函數(shù)說明1S16SetActivatedRingVolumeLeve

18、l(MMI_VOLUME_LEVEL_ENUMvolumelevel)/atcommand設(shè)置情景模式(不確定)S16SetActivatedKeypadVolumeLevel(MMI_VOLUME_LEVEL_ENUMvolumelevel)/atcommand設(shè)置情景模式(不確定)pBOOLSetProfileDefault(void)/為恢復(fù)出廠模式提供接口函數(shù),返回值表示nvram是否寫成功voidplayRequestedTone(ALL_TONE_ENUMplaytone)/所有應(yīng)用程序,短信,camera等版程序接口,播放鈴聲voidstopRequestedTone(ALL_T

19、ONE_ENUMplaytone)/所有應(yīng)用程序,停止相應(yīng)的鈴聲播放MMI_VOLUME_LEVEL_ENUMGetRingVolumeLevel(void)/返回值為MMI_VOLUME_LEVEL_ENUM量,為其他函數(shù)提供當(dāng)前的鈴聲音量MMI_VOLUME_LEVEL_ENUMGetKeypadVolumeLevel(void)同6MMI_ALERT_TYPEGetMtCallAlertTypeEnum(void)/返回值為MMI_ALERT_TYPEg回來電提示方式,為來電鈴聲,短消息提示等提供接口函數(shù)MMI_LEDLIGHT_STATUS_ENUMGetLightStatus(void)/為來電提示提供接口函數(shù),返回值為MMI_LEDLIGHT_STATUS_ENUM,返回當(dāng)前設(shè)置的來電燈狀態(tài)MMI_RING_TYPE_ENUMGet

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論