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

下載本文檔

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

文檔簡介

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

2、數(shù)設(shè)置。這些環(huán)境參數(shù)可以分別設(shè)置,也可以集體啟動,如下圖所示。具體實現(xiàn):情景模式模塊的設(shè)計,實際上就是有條件的對NVRAM讀寫,從而改變一些參數(shù)的設(shè)置。此套代碼程序可以在模擬器上運行,可以在硬件平臺上運行,情景模式模塊兩種條件下的架構(gòu)基本相同,所以這里主要介紹在硬件上的實現(xiàn)。該模塊的設(shè)計主要分為兩部分,MM層,和L4層。MM層:系統(tǒng)啟動時對該模塊進行初始化,注冊此模塊中菜單高亮信息,NVRAMP讀取相關(guān)記錄。在具體的設(shè)置之中,可以對各種參數(shù)分別設(shè)置,也可以整體啟動某個情景模式。底層:接收MM層發(fā)送過來的消息,執(zhí)行相應(yīng)操作,主要為保存已經(jīng)確認的設(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;/來電提示方式包括響鈴、振動、LED/LCD、LE咕光/響鈴方式分單次、連續(xù)、漸進/各種鈴聲選擇/應(yīng)答模式/字體選擇MMI_INTELLIGENT_CALL_ALERT_TYPEintelligentCallAlert;不確定/各種提不'首EXTRA_TONEextraTone;PROFILE;PROFILEgcurrentprofile;/當前設(shè)置的情景模式變量PROFILEgprofilesMAX_ELEMENTS;/存放N中情景模式變量U8gprofileId=0,/當前操作的情景模式IDU8gactivatedprofile=0;/當前處于激活狀

5、態(tài)的情景模式ID以上為此部分比較關(guān)鍵的全局變量,基本上就是圍繞這幾個變量在進行判斷和設(shè)置typedefstructkal_uint16ringTone;來電鈴聲kal_int16powerOffTone;/關(guān)機鈴聲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指示燈狀態(tài)(七彩、三色,單色等)pBOOLlcdBacklight;SET_TIMERti

7、mer;/LCD背光時間LIGHT;/翻蓋接聽/任意鍵接聽/自動應(yīng)答,用于耳機模式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中有兩個相關(guān)的記錄,其中一個用戶任意可以改變,再開機時自動讀取這些記錄值來進行設(shè)置,還有一個記錄是始終不變的,用以再恢復(fù)工廠模式的時候,讀取相關(guān)數(shù)據(jù)。4各子模塊實現(xiàn)及主要算法說明初始化初始化過程,在手機啟動時,初始化應(yīng)用情景模式應(yīng)用程序(InitProfileApp),如果gprofilenvram值為0,則各種模式的初始值不從nvram中讀取,程序中直接賦值。Gcurrntprofile賦值。注冊整個過程中會用到的各級高亮函數(shù)。初始化nvram,讀取當前激活的模式編號,和上一次激活的

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

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

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

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

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

14、d)值。中調(diào)用該函數(shù),設(shè)置各模式的初voidActivateProfile(void)/激活當前的情景模式,開機nvram初始化時調(diào)用此部分函數(shù),在進行模式設(shè)置時,按鍵觸發(fā)該函數(shù)執(zhí)行。此函數(shù)主要是對nvram得讀寫,和設(shè)置相關(guān)參數(shù)voidActivatefirstProfile(void);/首次進入情景模式,調(diào)用此函數(shù),取gprofiles0為默認S16SetRingVolumeLevel(MMI_VOLUME_LEVEL_ENUMvolumelevel)volumelevel,同時發(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ù)、一聲、漸進)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背光開啟時間,按鍵觸發(fā),全局變量gSec將需要設(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ù)提供當前的鈴聲音量MMI_VOLUME_LEVEL_ENUMGetKeypadVolumeLevel(void)同6MMI_ALERT_TYPEGetMtCallAlertTypeEnum(void)/返回值為MMI_ALERT_TYPEg回來電提示方式,為來電鈴聲,短消息提示等提供接口函數(shù)MMI_LEDLIGHT_STATUS_ENUMGetLightStatus(void)/為來電提示提供接口函數(shù),返回值為MMI_LEDLIGHT_STATUS_ENUM,返回當前設(shè)置的來電燈狀態(tài)MMI_RING_TYPE_ENUMGet

溫馨提示

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

評論

0/150

提交評論