




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年干事個人工作總結(15篇)
- 學校行政人事工作總結(4篇)
- 幼兒園心理健康輔導培訓心得體會(3篇)
- 保安個人年終工作總結(5篇)
- 小學語文人教部編版三年級上冊語文園地教學設計及反思
- 四川省宜賓市南溪二中高二體育《排球》教學設計 新人教版
- 中專自我鑒定300字(18篇)
- 元旦安全教育主題班會心得體會(14篇)
- 2025安全出行演講稿范文(19篇)
- 上海時尚高端大氣住宅景觀設計方案
- DB11∕T 1832.17-2021 建筑工程施工工藝規程 第17部分:電氣動力安裝工程
- 出租屋轉租補充協議書范文范本
- 2024年海南省高考地理試卷(含答案)
- 2024年2個居間人內部合作協議書模板
- 【企業盈利能力探析的國內外文獻綜述2400字】
- 兩位數加一位數和整十數(不進位) 1000題
- 《2008遼寧省建設工程計價依據執行標準》大建委發200875號
- TSDLPA 0001-2024 研究型病房建設和配置標準
- 2023年宿遷市洋河新區“返鄉興村”新村干招聘考試真題
- 機器人自主導航與定位技術測試考核試卷
- 山東省建設施工企業安全生產許可證變更審核表
評論
0/150
提交評論