FrameworkStruct.h
上传用户:lqx1163
上传日期:2014-08-13
资源大小:9183k
文件大小:11k
源码类别:

MTK

开发平台:

C/C++

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*******************************************************************************
  36.  * Filename:
  37.  * ---------
  38.  * FrameworkStruct.h
  39.  *
  40.  * Project:
  41.  * --------
  42.  *   MAUI
  43.  *
  44.  * Description:
  45.  * ------------
  46.  *   This file is defines prototypes, struct, defined marco for general MMI framework usage.
  47.  *
  48.  * Author:
  49.  * -------
  50.  * -------
  51.  *
  52.  *==============================================================================
  53.  *             HISTORY
  54.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  55.  *------------------------------------------------------------------------------
  56.  * removed!
  57.  *
  58.  * removed!
  59.  * removed!
  60.  * removed!
  61.  *
  62.  * removed!
  63.  * removed!
  64.  * removed!
  65.  *
  66.  * removed!
  67.  * removed!
  68.  * removed!
  69.  *
  70.  * removed!
  71.  * removed!
  72.  * removed!
  73.  *
  74.  * removed!
  75.  * removed!
  76.  * removed!
  77.  *
  78.  * removed!
  79.  * removed!
  80.  * removed!
  81.  *
  82.  * removed!
  83.  * removed!
  84.  * removed!
  85.  *
  86.  * removed!
  87.  * removed!
  88.  * removed!
  89.  *
  90.  * removed!
  91.  * removed!
  92.  * removed!
  93.  * removed!
  94.  *
  95.  * removed!
  96.  * removed!
  97.  * removed!
  98.  *
  99.  * removed!
  100.  * removed!
  101.  * removed!
  102.  *
  103.  * removed!
  104.  * removed!
  105.  * removed!
  106.  *
  107.  *------------------------------------------------------------------------------
  108.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  109.  *==============================================================================
  110.  *******************************************************************************/
  111. #ifndef _FRAMEWORKSTRUCT_H
  112. #define _FRAMEWORKSTRUCT_H
  113. #include "PixtelDataTypes.h"
  114. #include "QueueGprot.h"
  115. /***************************************************************************** 
  116. * Define
  117. *****************************************************************************/
  118. /* maximum history data */
  119. #if defined(JATAAYU_SUPPORT)
  120.     #define MAX_INPUT_BUFFER         1500
  121. #else    
  122.     #define MAX_INPUT_BUFFER         1000
  123. #endif
  124. #define MAX_GUI_BUFFER           128
  125. /* MMI supports dump screen string automatically */
  126. #ifdef __MMI_SUPPORT_DUMP_SCREEN_STRING__
  127.   #define __COMBINE_CHAR_IN_DUMP_SCREEN_STRING__
  128. #endif
  129. #define MMI_STR_DUMP_TIMEOUT                    (1500)  /* ms */
  130. #define MMI_SCREEN_NO_STR                       (0)
  131. #define MMI_SCREEN_NORMAL_STR                   (1)
  132. #define MMI_SCREEN_HIGHLIGHT_STR                (2)
  133. #define MMI_SCREEN_HIGHLIGHT_NONE                       (0)
  134. #define MMI_SCREEN_HIGHLIGHT_TEXT_ITEM                  (21)
  135. #define MMI_SCREEN_FOCUSED_ICONTEXT_ITEM                (22)
  136. #define MMI_SCREEN_HIGHLIGHT_ICONTEXT_ITEM              (23)
  137. #define MMI_SCREEN_HIGHLIGHT_ICONTEXT_MARQUEE_SCROLL    (24)
  138. #define MMI_SCREEN_FOCUSED_TWO_LINE_ICONTEXT            (25)
  139. #define MMI_SCREEN_HIGHLIGHT_TWO_LINE_HINTS             (26)
  140. #define MMI_SCREEN_HIGHLIGHT_ICONTEXT_LIST              (27)
  141. #define MMI_SCREEN_HIGHLIGHT_TWOSTATE_ITEM              (28)
  142. #define MMI_SCREEN_HIGHLIGHT_FOR_HOR_SELECT             (29)
  143. #define MMI_SCREEN_HIGHLIGHT_FOR_CAR213_DYNAMIC_LIST    (30)
  144. /* We want combined separated chars to the string */
  145. #define MMI_SCREEN_COMBINED_CHAR_MAX_LENGTH     (100)
  146. /*
  147.  * MMI_SCREEN_STR_MAX_LENGTH should be the same with
  148.  * "data_string" in mmi_eq_str_res_req_struct/mmi_eq_str_req_ind_struct
  149.  */
  150. #define MMI_SCREEN_STR_MAX_LENGTH               (250)
  151. /***************************************************************************** 
  152. * Typedef 
  153. *****************************************************************************/
  154. /* enum type for framework */
  155. typedef enum
  156. {
  157.     MMI_KEY_TONE_ENABLED = 0,
  158.     MMI_KEY_VOL_TONE_DISABLED,
  159.     MMI_KEY_VOL_UP_DOWN_TONE_DISABLED,
  160.     MMI_KEY_RIGHT_LEFT_ARROW_TONE_DISABLED,
  161.     MMI_KEY_TONE_DISABLED
  162. } mmi_frm_kbd_tone_state_enum;
  163. typedef struct KEYBRD_MESSAGE
  164. {
  165. #ifndef MMI_ON_WIN32
  166.     LOCAL_PARA_HDR
  167. #else /* MMI_ON_WIN32 */ 
  168.     U8 ref_count;
  169.     U16 msg_len;
  170. #endif /* MMI_ON_WIN32 */ 
  171.     S16 nMsgType;
  172.     S16 nKeyCode;
  173. } KEYBRD_MESSAGE;
  174. #if defined(MMI_ON_WIN32)
  175. typedef struct
  176. {
  177. U8 ref_count;
  178. U16 msg_len;
  179. U32 id;
  180. } TIMER_MESSAGE;
  181. #endif /* MMI_ON_WIN32 */
  182. /* FuncPtr is a pointer to a func returns void */
  183. typedef void (*FuncPtr) (void);
  184. typedef void (*FuncPtrShort) (U16);
  185. /* FuncPtr is a pointer to a func that takes void* has a parameter &  returns void */
  186. typedef void (*PsFuncPtr) (void *);
  187. typedef U8(*PsIntFuncPtr) (void *);
  188. /* JL added for new history callback */
  189. typedef U8(*HistoryDelCBPtr) (void *);
  190. typedef U8(*SubLcdHistoryCBPtr) (void *);
  191. typedef U8(*MainLcdHistoryCBPtr) (void *);
  192. typedef void (*PsFuncPtrU32) (void *, U32);
  193. typedef void (*PsExtFuncPtr) (void *, int); /* add by hjf, to pass the mod_src */
  194. typedef U8(*PsExtIntFuncPtr) (void *, int); /* add by hjf, to pass the mod_src */
  195. typedef void (*PsExtPeerFuncPtr) (void *, int, void *);
  196. typedef U8(*PsExtPeerIntFuncPtr) (void *, int, void *);
  197. typedef U8* (*HistoryGetData) (U8*);    /* Get GUI-buffer/input-buffer to history */
  198. typedef S32 (*HistoryGetSize) (void);   /* Get input buffer size */
  199. typedef void *(*MemAlloc) (U32);
  200. typedef void (*MemFree) (void *);
  201. typedef U8(*PsKeyProcessCBPtr) (KEYBRD_MESSAGE *);
  202. /* event information stuct */
  203. typedef struct _eventInfo
  204. {
  205.     U16 eventID;    /* for timer & hardware events      */
  206.     FuncPtr entryFuncPtr;
  207. } eventInfo;
  208. /* Async PRT event information struct */
  209. typedef struct _PseventInfo
  210. {
  211.     U16 eventID;    /* for timer & hardware events      */
  212.     PsFuncPtr entryFuncPtr;
  213. } PseventInfo;
  214. typedef struct _PIntseventInfo
  215. {
  216.     U16 eventID;    /* for timer & hardware events      */
  217.     PsIntFuncPtr entryIntFuncPtr;
  218.     PsIntFuncPtr postIntFuncPtr;
  219. } PsInteventInfo;
  220. /* history information stuct */
  221. typedef struct _history
  222. {
  223.     U16 scrnID;
  224.     FuncPtr entryFuncPtr;
  225.     U8 inputBuffer[MAX_INPUT_BUFFER];   /* running text data                   */
  226.     U8 guiBuffer[MAX_GUI_BUFFER];       /* this includes hilite item, input mode & etc.. */
  227. } history;
  228. /* history information stuct */
  229. typedef struct _historyNode
  230. {
  231.     U16 scrnID;
  232. #ifdef __MMI_UI_SMALL_SCREEN_SUPPORT__
  233.     U16 isSmallScreen;
  234. #endif 
  235.     FuncPtr entryFuncPtr;
  236.     U8 *inputBuffer;    /* running text data                   */
  237.     U8 *guiBuffer;      /* this includes hilite item, input mode & etc.. */
  238.     
  239.     MemAlloc mallcFuncPtr; /* keep the memory allocated function */
  240.     MemFree  mfreeFuncPtr; /* keep the memory freed function */
  241. } historyNode;
  242. /* history information stuct */
  243. typedef struct _historyCallback
  244. {
  245.     U16 scrnID;
  246.     HistoryDelCBPtr historydelCBPtr;
  247. } historyCallback;
  248. /* hilite information stuct   */
  249. typedef struct _hiliteInfo
  250. {
  251.     FuncPtrShort hintFuncPtr;
  252.     FuncPtr entryFuncPtr;
  253. } hiliteInfo;
  254. typedef struct _SubLCDhistoryNode
  255. {
  256.     U16 scrnID;
  257.     FuncPtr entryFuncPtr;
  258. } SubLCDHistoryNode;
  259. typedef struct
  260. {
  261.     U16 scrnID;
  262.     FuncPtr entryFuncPtr;
  263.     U8 guiBuffer[MAX_GUI_BUFFER];   /* this includes hilite item, input mode & etc.. */
  264. } SubLCDHistoryNodeEx;
  265. typedef struct
  266. {
  267.     FuncPtr entryFuncPtr;
  268.     U16 scrnID;
  269.     U16 guiLen;
  270.     U8 *guiBuffer;  /* this includes hilite item, input mode & etc.. */
  271. } SubLCDHistoryInternalNode;
  272. /* MMI supports dump screen string automatically */
  273. typedef struct
  274. {
  275.     MMI_BOOL    is_enable;
  276.     MMI_BOOL    allow_dump_screen_str;
  277.     MMI_BOOL    allow_dump_dm_screen;
  278.     U16         hightlight_type;
  279.     U16         backup_hightlight_type;
  280.     S16         y;
  281.     S16         backup_y;
  282.     S16         combined_chars_x;
  283.     S16         combined_chars_y;
  284. #ifdef __COMBINE_CHAR_IN_DUMP_SCREEN_STRING__
  285.     S8          combined_chars[MMI_SCREEN_COMBINED_CHAR_MAX_LENGTH];
  286. #endif
  287.     /* the backup string size should be the same with mmi_eq_str_res_req_struct*/
  288.     S8          backup_string[MMI_SCREEN_STR_MAX_LENGTH];
  289. }DumpScreenStr;
  290. /* mmi framework contact struct */
  291. typedef struct
  292. {
  293.     mmi_frm_kbd_tone_state_enum key_tone_state; /* state of keypad tone */
  294.     PsKeyProcessCBPtr kbd_pre_func;             /* function to be executed before general keypad handler */
  295.     PsKeyProcessCBPtr kbd_post_func;            /* function to be executed after general keypad handler */
  296. #ifdef __MMI_SUPPORT_DUMP_SCREEN_STRING__
  297.     DumpScreenStr                   dump_screen_info;
  298. #endif
  299.     U16 key_tone_id;
  300.     U8 key_tone_duration;
  301. } mmi_frm_context_struct;
  302. /***************************************************************************** 
  303. * Extern Global Variable
  304. *****************************************************************************/
  305. extern mmi_frm_context_struct g_mmi_frm_cntx;
  306. /***************************************************************************** 
  307. * Extern Global Function
  308. *****************************************************************************/
  309. /* MMI supports dump screen string automatically */
  310. extern MMI_BOOL mmi_trace_screen_string(S32 x, S32 y, U8 *str, S32 len, S32 Bordered);
  311. extern MMI_BOOL mmi_trace_screen_char(S32 x, S32 y, U16 wch, S32 len, S32 Bordered);
  312. #endif /* _FRAMEWORKSTRUCT_H */