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

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.  * PhoneBookTypes.h
  39.  *
  40.  * Project:
  41.  * --------
  42.  *   MAUI
  43.  *
  44.  * Description:
  45.  * ------------
  46.  *   phone book application 
  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.  *
  94.  * removed!
  95.  * removed!
  96.  * removed!
  97.  *
  98.  * removed!
  99.  * removed!
  100.  * removed!
  101.  *
  102.  * removed!
  103.  * removed!
  104.  * removed!
  105.  *
  106.  * removed!
  107.  * removed!
  108.  * removed!
  109.  *
  110.  * removed!
  111.  * removed!
  112.  * removed!
  113.  *
  114.  * removed!
  115.  * removed!
  116.  * removed!
  117.  *
  118.  * removed!
  119.  * removed!
  120.  * removed!
  121.  *
  122.  * removed!
  123.  * removed!
  124.  * removed!
  125.  *
  126.  * removed!
  127.  * removed!
  128.  * removed!
  129.  *
  130.  * removed!
  131.  * removed!
  132.  * removed!
  133.  *
  134.  * removed!
  135.  * removed!
  136.  * removed!
  137.  *
  138.  * removed!
  139.  * removed!
  140.  * removed!
  141.  *
  142.  * removed!
  143.  * removed!
  144.  * removed!
  145.  *
  146.  * removed!
  147.  * removed!
  148.  * removed!
  149.  *
  150.  * removed!
  151.  * removed!
  152.  * removed!
  153.  *
  154.  * removed!
  155.  * removed!
  156.  * removed!
  157.  *
  158.  * removed!
  159.  * removed!
  160.  * removed!
  161.  *
  162.  * removed!
  163.  * removed!
  164.  * removed!
  165.  *
  166.  * removed!
  167.  * removed!
  168.  * removed!
  169.  *
  170.  * removed!
  171.  * removed!
  172.  * removed!
  173.  *
  174.  * removed!
  175.  * removed!
  176.  * removed!
  177.  *
  178.  * removed!
  179.  * removed!
  180.  * removed!
  181.  *
  182.  *------------------------------------------------------------------------------
  183.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  184.  *==============================================================================
  185.  *******************************************************************************/
  186. #ifndef _PHONEBOOKTYPES_H
  187. #define _PHONEBOOKTYPES_H
  188. #include "PixtelDataTypes.h"
  189. #include "audioinc.h"
  190. #include "SettingProfile.h"
  191. /* NVRAM_REVISE */
  192. #include "custom_mmi_default_value.h"
  193. #include "nvram_common_defs.h"
  194. /* The enum decide the order of usim phonebook fields */
  195. typedef enum
  196. {
  197.     MMI_PHB_USIM_FIELD_ANRA,
  198.     MMI_PHB_USIM_FIELD_EMAIL,
  199.     MMI_PHB_USIM_FIELD_ANRB,
  200.     MMI_PHB_USIM_FIELD_ANRC,
  201.     MMI_PHB_USIM_FIELD_GROUP,
  202.     MMI_PHB_USIM_FIELD_SNE,
  203.     MMI_PHB_USIM_FIELD_TOTAL
  204. } MMI_PHB_USIM_FIELD_ORDER_ENUM;
  205. #ifdef __MMI_PHB_TWO_LINE_MENUITEM_DISPLAY__
  206. typedef enum
  207. {
  208.     MMI_PHB_MOBILE_NUMBER,
  209.     MMI_PHB_HOME_NUMBER,
  210.     MMI_PHB_OFFICE_NUMBER,
  211.     MMI_PHB_FAX_NUMBER,
  212.     MMI_PHB_MAX_NUMBER_COUNT
  213. } MMI_PHB_NUMBERS;
  214. #endif /* __MMI_PHB_TWO_LINE_MENUITEM_DISPLAY__ */ 
  215. /* 
  216.  * Define
  217.  */
  218. #if defined(__MMI_PHB_MAX_NAME_60__)
  219. #define MAX_PS_NAME_LENGTH    62
  220. #else 
  221. #define MAX_PS_NAME_LENGTH    32
  222. #endif 
  223. #define MAX_ENTRIES_IN_LIST      15
  224. #define MAX_PB_SIM_ENTRIES       MAX_PHB_SIM_ENTRY      /* value defined in option.mak */
  225. #define MAX_PB_PHONE_ENTRIES     MAX_PHB_PHONE_ENTRY    /* value defined in option.mak */
  226. #define MAX_PB_ENTRIES           (MAX_PB_SIM_ENTRIES + MAX_PB_PHONE_ENTRIES)    /* Maximum number of entries in Phonebook */
  227. #ifdef __MMI_VOIP__
  228. #define MAX_PB_FIELDS            (MMI_PHB_FIELD_TOTAL + MMI_PHB_EXTRA_FIELD_TOTAL + 1) /* 1 for VOIP */
  229. #else
  230. #define MAX_PB_FIELDS            (MMI_PHB_FIELD_TOTAL + MMI_PHB_EXTRA_FIELD_TOTAL)
  231. #endif
  232. #if defined(__MMI_INCOMING_CALL_VIDEO__)
  233. #define MAX_PB_VIDEO_TAGS     30        /* Max Video tags allowed */
  234. #define MAX_CALLER_GRP_ITEMS  7
  235. #else /* defined(__MMI_INCOMING_CALL_VIDEO__) */ 
  236. #define MAX_CALLER_GRP_ITEMS  6
  237. #endif /* defined(__MMI_INCOMING_CALL_VIDEO__) */ 
  238. #define MAX_PB_PICTURES_TAGS  30        /* Max Pictures tags allowed */
  239. #define MAX_PB_OWNER_NUMBERS   4
  240. #define MAX_SEARCH_NAME_LENGTH   10
  241. #ifdef __MMI_PHB_USIM_FIELD__
  242. #define MAX_PB_USIM_GROUPS  5
  243. #else
  244. #define MAX_PB_USIM_GROUPS  0
  245. #endif
  246. #if defined(MMI_ON_HARDWARE_P)
  247. #define CALLER_GROUPS_RECORD_SIZE   260
  248. #else 
  249. #define CALLER_GROUPS_RECORD_SIZE   270
  250. #endif 
  251. #define OPTIONAL_IDS_RECORD_TOTAL 85
  252. #if defined(MMI_ON_HARDWARE_P)
  253. #define OPTIONAL_IDS_RECORD_SIZE 510    /* Store 85 entries in one NVRAM record, so total is 85 x 6 (6 bytes each) */
  254. #else 
  255. #define OPTIONAL_IDS_RECORD_SIZE 425
  256. #endif 
  257. #define OPTIONAL_FIELDS_RECORD_SIZE 229
  258. #define MMI_PHB_VCARD_RECORD_SIZE   338
  259. #define MMI_PHB_INFO_RECORD_SIZE 335
  260. #define INVALID_NUMBER        1000000000
  261. #define ALPHA_LIST_LENGTH         26
  262. #define MAX_PB_RING_TONES         60
  263. #if defined(__MMI_STATUS_LED__)
  264. #define MAX_PB_ALERT_TYPES         5
  265. #else 
  266. #define MAX_PB_ALERT_TYPES         4
  267. #endif 
  268. #define MAX_PB_LED_PATTERNS           6
  269. #define  PHB_NOTIFY_TIMEOUT         UI_POPUP_NOTIFYDURATION_TIME_2000
  270. /* For FDl & BDL */
  271. #define MAX_SIM_ENTRIES       20
  272. #define MAX_NAME_LEN_FSB_LIST MAX_PB_NAME_LENGTH
  273. #define MAX_NUMBER_LEN_FSB_LIST  MAX_PB_NUMBER_LENGTH
  274. #define MAX_SIM_SOS_ENTRIES          5
  275. #define MAX_NVRAM_SOS_ENTRIES     5
  276. #define NVRAM_SOS_RECORD_SIZE    86
  277. /* For File System and File Manager */
  278. #define MMI_PHB_MAX_PATH_LENGTH        64*ENCODING_LENGTH       /* Not max length support by file manager, use carefully */
  279. #define MMI_PHB_DRV                       MMI_PUBLIC_DRV
  280. #define MMI_PHB_IMAGE_FOLDER           FMGR_DEFAULT_FOLDER_PHBIMAGES
  281. #define MMI_PHB_VIDEO_DATA_FILE        FMGR_DEFAULT_FILE_PHBVIDEO
  282. /* For field filter */
  283. #define  MMI_PHB_ENTRY_FIELD_NAME      0x01
  284. #define  MMI_PHB_ENTRY_FIELD_NUMBER    0x02 /* use MMI_PHB_ENTRY_FIELD_ALL_NUMBER for 4 type numbers */
  285. #define  MMI_PHB_ENTRY_FIELD_HOME      0x04
  286. #define  MMI_PHB_ENTRY_FIELD_OFFICE    0x08
  287. #define  MMI_PHB_ENTRY_FIELD_FAX       0x10
  288. #define MMI_PHB_ENTRY_FIELD_ALL_NUMBER 0x1E 
  289. #define  MMI_PHB_ENTRY_FIELD_EMAIL     0x20     /* for nvram and USIM */
  290. #define  MMI_PHB_ENTRY_FIELD_COMPANY   0x40
  291. #define  MMI_PHB_ENTRY_FIELD_ANRA      0x04     /* for USIM, same as home number */
  292. #define  MMI_PHB_ENTRY_FIELD_ANRB      0x08     /* for USIM, same as office number */
  293. #define  MMI_PHB_ENTRY_FIELD_ANRC      0x10     /* for USIM, same as fax */
  294. #if defined(__MMI_PHB_NO_OPTIONAL_FIELD__)
  295. #if defined(__MMI_PHB_USIM_FIELD__)
  296. #define MAX_LOOKUP_TABLE_COUNT (3*MAX_PB_SIM_ENTRIES+MAX_PB_PHONE_ENTRIES+1)
  297. #else 
  298. #define MAX_LOOKUP_TABLE_COUNT (MAX_PB_SIM_ENTRIES+MAX_PB_PHONE_ENTRIES+1)
  299. #endif 
  300. #else /* defined(__MMI_PHB_NO_OPTIONAL_FIELD__) */ 
  301. #if defined(__MMI_PHB_USIM_FIELD__)
  302. #define MAX_LOOKUP_TABLE_COUNT (3*MAX_PB_SIM_ENTRIES+4*MAX_PB_PHONE_ENTRIES+1)
  303. #else 
  304. #define MAX_LOOKUP_TABLE_COUNT (MAX_PB_SIM_ENTRIES+4*MAX_PB_PHONE_ENTRIES+1)
  305. #endif 
  306. #endif /* defined(__MMI_PHB_NO_OPTIONAL_FIELD__) */ 
  307. /* Birthday Field */
  308. #define MMI_PHB_BDAY_MIN_YEAR_INT   1900        /* Min Year */
  309. #define MMI_PHB_BDAY_MAX_YEAR_INT   2030        /* Max Year */
  310. #define MMI_PHB_BDAY_YEAR_STR L"0000"   /* Empty Birthday */
  311. #define MMI_PHB_BDAY_MON_STR  L"00"
  312. #define MMI_PHB_BDAY_DAY_STR  L"00"
  313. /* 
  314.  * Extern Global Function
  315.  */
  316. extern void playRequestedTone(ALL_TONE_ENUM);
  317. /* 
  318.  * Typedef 
  319.  */
  320. typedef enum
  321. {
  322.     MMI_PHB_LIST_FOR_NONE,
  323.     MMI_PHB_LIST_FOR_PHB,
  324.     MMI_PHB_LIST_FOR_FRM,
  325.     MMI_PHB_LIST_FOR_SMS,
  326.     MMI_PHB_LIST_FOR_SMS_SEARCH_NAME,
  327.     MMI_PHB_LIST_FOR_CHAT,
  328.     MMI_PHB_LIST_FOR_CHAT_NO_CHECK,
  329.     MMI_PHB_LIST_FOR_SETTINGS,
  330.     MMI_PHB_LIST_FOR_SPEED_DIAL,
  331.     MMI_PHB_LIST_FOR_CM,
  332.     MMI_PHB_LIST_FOR_MMS_ALL,           /* MMS */
  333.     MMI_PHB_LIST_FOR_VIEW_MEMBER_LIST,  /* Caller Group Member List */
  334.     MMI_PHB_LIST_FOR_ADD_MEMBER_LIST,   /* Caller Group Member List */
  335.     MMI_PHB_LIST_FOR_SAVE_FROM_FILE_MGR,
  336.     MMI_PHB_LIST_FOR_DELETE_ONE_BY_ONE,
  337.     MMI_PHB_LIST_FOR_EMAIL_APP,
  338.     MMI_PHB_LIST_FOR_VR,
  339.     MMI_PHB_LIST_FOR_GET_ADDRESS_FROM_GROUP,
  340.     MMI_PHB_LIST_FOR_ALL_SHARED,
  341.     MMI_PHB_LIST_FOR_OTHER_APP
  342. } MMI_PHB_LIST_VIEW;
  343. typedef enum
  344. {
  345.     MMI_PHB_IMAGE_NO_SELECT,    /* No picture, use default. */
  346.     MMI_PHB_IMAGE_FOR_ENTRY,    /* picture for phonebook entry.. */
  347.     MMI_PHB_IMAGE_SELECT_PATH,  /* picture from select path for phb entry. */
  348.     MMI_PHB_IMAGE_CALLER_GROUP,  /* picture for caller group. */
  349.     MMI_PHB_SWFLASH_SELECT_PATH
  350. } mmi_phb_image_location_enum;
  351. typedef enum
  352. {
  353.     MMI_PHB_RECV_RES_IMAGE,
  354.     MMI_PHB_RECV_RES_AUDIO,
  355.     MMI_PHB_RECV_RES_VIDEO,
  356.     MMI_PHB_RECV_RES_SWFLASH
  357. } mmi_phb_receive_resource_enum;
  358. typedef struct
  359. {
  360.     U8 name[(MAX_PB_NAME_LENGTH + 1) *ENCODING_LENGTH];
  361.     U8 number[(MAX_PB_NUMBER_LENGTH + 1 + 1) *ENCODING_LENGTH];
  362.     U8 name_dcs;
  363.     U8 alertType;       /* MMI_ALERT_TYPE */
  364.     U16 pictureId;
  365.     U16 ringtoneId;
  366.     U16 backlightId;
  367.     U16 record_index;   /* For Query Image Path */
  368.     U16 videoId;
  369.     U16 video_record_index;
  370.     U8 dialInList;
  371. } PHB_CM_INTERFACE;
  372. #ifdef __VOIP__
  373. typedef struct
  374. {
  375.     U8 name[(MAX_PB_NAME_LENGTH + 1) *ENCODING_LENGTH];
  376.     U8 uri[(VOIP_URI_LEN) *ENCODING_LENGTH];
  377.     U8 name_dcs;
  378.     U8 alertType;       /* MMI_ALERT_TYPE */
  379.     U16 pictureId;
  380.     U16 ringtoneId;
  381.     U16 backlightId;
  382.     U16 record_index;   /* For Query Image Path */
  383.     U16 videoId;
  384.     U16 video_record_index;
  385.     U8 dialInList;
  386. } PHB_VOIP_INTERFACE;
  387. #endif /* __VOIP__ */
  388. /* Optional field in a phonebook entry */
  389. typedef struct
  390. {
  391.     U8 homeNumber[MAX_PB_NUMBER_LENGTH + 1 + 1];
  392.     U8 companyName[(MAX_PB_COMPANY_LENGTH + 1) *ENCODING_LENGTH];
  393.     U8 emailAddress[MAX_PB_EMAIL_LENGTH + 1];
  394.     U8 officeNumber[MAX_PB_NUMBER_LENGTH + 1 + 1];
  395.     U8 faxNumber[MAX_PB_NUMBER_LENGTH + 1 + 1];
  396. } PHB_OPTIONAL_FIELDS_STRUCT;
  397. typedef struct
  398. {
  399.     U8 name_length; /* Name Length */
  400.     U8 name_dcs;    /* Name Data Coding Scheme */
  401.     U8 name[(MAX_PB_NAME_LENGTH + 1) *ENCODING_LENGTH];
  402. } MMI_PHB_NAME_STRUCT;
  403. typedef struct
  404. {
  405.     U8 type;    /* 129-default, 145-international */
  406.     U8 length;
  407.     U8 number[(MAX_PB_NUMBER_LENGTH + 1 + 1) *ENCODING_LENGTH];        /* 1 for + Sign and 1 for Null Termination. */
  408. } MMI_PHB_NUMBER_STRUCT;
  409. typedef struct
  410. {
  411.     U8 storage; /* 0-none, 1-SIM, 2-ME */
  412.     U8 type;
  413.     U16 index;
  414.     U16 record_index;
  415.     MMI_PHB_NUMBER_STRUCT tel;
  416.     MMI_PHB_NAME_STRUCT alpha_id;
  417. } MMI_PHB_ENTRY_STRUCT;
  418. /* Use BCD format to store number to save memory. */
  419. typedef struct
  420. {
  421.     U8 type;                                    /* 129-default; 145-international, begin with '+' */
  422.     U8 length;
  423.     U8 number[(MAX_PB_NUMBER_LENGTH + 1) / 2];  /* half space to store BCD format. */
  424. } MMI_PHB_NUMBER_BCD_STRUCT;
  425. /* Use array index to decide storage and record_index. */
  426. typedef struct
  427. {
  428.     //U8         storage;
  429.     //U8         type;
  430.     //U16                index;
  431.     //U16                record_index;
  432.     MMI_PHB_NUMBER_BCD_STRUCT tel;
  433.     MMI_PHB_NAME_STRUCT alpha_id;
  434.     U8 field;   /* Indicate if an entry has the field */
  435.     U8 dummy;   /* Make sure each phb structure is two-bytes aligned. */
  436. } MMI_PHB_ENTRY_BCD_STRUCT;
  437. /* Owner number associate with Line ID */
  438. typedef struct
  439. {
  440.     U8 name[(MAX_PB_NAME_LENGTH + 1) *ENCODING_LENGTH];
  441.     U8 number[(MAX_PB_NUMBER_LENGTH + 1 + 1) *ENCODING_LENGTH];
  442. } MMI_OWNER_NUMBER_STRUCT;
  443. typedef struct
  444. {
  445.     U16 store_index;    /* Store Index of Phonebook, Begin from 0 */
  446.     U32 number;
  447. } MMI_PHB_LOOKUP_NODE_STRUCT;
  448. typedef struct
  449. {
  450.     U8 type;    /* 129-default, 145-international */
  451.     U8 length;
  452.     U8 number[(MAX_PB_NUMBER_LENGTH + 1 + 1) *ENCODING_LENGTH];
  453. } MMI_SOS_NUMBER_STRUCT;
  454. typedef struct
  455. {
  456.     S8 name[(MAX_PB_NAME_LENGTH + 1) *ENCODING_LENGTH];
  457.     S8 number[MAX_PB_NUMBER_LENGTH + 1 + 1];    /* 1 for + Sign and 1 for Null Termination. */
  458.     S8 homeNumber[MAX_PB_NUMBER_LENGTH + 1 + 1];
  459.     S8 companyName[(MAX_PB_COMPANY_LENGTH + 1) *ENCODING_LENGTH];
  460.     S8 emailAddress[MAX_PB_EMAIL_LENGTH + 1];
  461.     S8 officeNumber[MAX_PB_NUMBER_LENGTH + 1 + 1];
  462.     S8 faxNumber[MAX_PB_NUMBER_LENGTH + 1 + 1];
  463.     U16 pictureTagID;
  464.     U16 ringToneID;
  465. } MMI_PHB_VCARD_STRUCT;
  466. typedef struct
  467. {
  468.     U16 bYear;
  469.     U8 bMonth;
  470.     U8 bDay;
  471. } MMI_PHB_BDAY_STRUCT;
  472. typedef struct
  473. {
  474.     U8 title[(MAX_PB_TITLE_LENGTH + 1) *ENCODING_LENGTH];
  475.     U8 url[MAX_PB_URL_LENGTH + 1];
  476.     U8 address[(MAX_PB_ADDRESS_LENGTH + 1) *ENCODING_LENGTH];
  477.     U8 note[(MAX_PB_NOTE_LENGTH + 1) *ENCODING_LENGTH];
  478. } PHB_INFO_FIELDS_STRUCT;
  479. typedef struct
  480. {
  481.     U8 email_length;
  482.     U8 email_address[MAX_PB_EMAIL_LENGTH + 1];
  483. } MMI_PHB_EMAIL_STRUCT;
  484. typedef enum
  485. {
  486.     MMI_PHB_BCD = 0x01,
  487.     MMI_PHB_ASCII = 0x00,
  488.     MMI_PHB_UCS2 = 0x08
  489. #if defined(__PHB_0x81_SUPPORT__)       /* Support maximum length of 0x81 UCS2 */
  490.         ,
  491.     MMI_PHB_UCS2_81 = 0x09,
  492.     MMI_PHB_UCS2_82 = 0x10
  493. #endif /* defined(__PHB_0x81_SUPPORT__) */ 
  494. } MMI_PHB_CHARSET_ENUM;
  495. typedef enum
  496. {
  497.     MMI_STORAGE_NONE,
  498.     MMI_SIM,
  499.     MMI_NVRAM,
  500.     MMI_STORAGE_BOTH
  501. } MMI_PHB_STORAGE_LOCATION;
  502. typedef enum
  503. {
  504.     MMI_CSMCC_DEFAULT_ADDR_TYPE = 129,
  505.     MMI_CSMCC_INTERNATIONAL_ADDR = 145
  506. } MMI_CSMCC_ADDR_TYPE;
  507. typedef enum
  508. {
  509.     MMI_PHB_NONE,
  510.     MMI_PHB_ECC,
  511.     MMI_PHB_FDN,
  512.     MMI_PHB_BDN,
  513.     MMI_PHB_MSISDN,
  514.     MMI_PHB_SDN,
  515.     MMI_PHB_PHONEBOOK,
  516.     MMI_PHB_GAS,
  517.     MMI_PHB_GRP,
  518.     MMI_PHB_ANR,
  519.     MMI_PHB_SNE
  520. } MMI_PHB_TYPE;
  521. typedef enum
  522. {
  523.     MMI_PHB_NO_CAUSE,
  524.     MMI_PHB_CAUSE_STORAGE_FULL,
  525.     MMI_PHB_CAUSE_CAPACITY_EXCEEDED
  526. } MMI_PHB_CAUSE_ENUM;
  527. typedef enum
  528. {
  529.     MMI_PHB_UPDATE,
  530.     MMI_PHB_DELETE,
  531.     MMI_PHB_DELETE_ALL,
  532.     MMI_WRITE_LND,
  533.     MMI_WRITE_LNM,
  534.     MMI_WRITE_LNR,
  535.     MMI_DELETE_LND,
  536.     MMI_DELETE_LNM,
  537.     MMI_DELETE_LNR
  538. } MMI_PHB_UPDATE_ENUM; /* For AT */
  539. typedef enum
  540. {
  541.     MMI_PHB_VCARD_READ,
  542.     MMI_PHB_VCARD_ADD,
  543.     MMI_PHB_VCARD_UPDATE,
  544.     MMI_PHB_VCARD_DELETE
  545. } mmi_phb_sync_vcard_enum; /* For SyncML */
  546. typedef enum
  547. {
  548.     MMI_PHB_SYNC_SUCCESS,
  549.     MMI_PHB_SYNC_ERROR,
  550.     MMI_PHB_SYNC_NOT_READY,
  551.     MMI_PHB_SYNC_OPEN_FILE_ERROR,
  552.     MMI_PHB_SYNC_NOT_SUPPORT,
  553.     MMI_PHB_SYNC_NOT_FOUND,
  554.     MMI_PHB_SYNC_STORAGE_FULL,
  555.     MMI_PHB_SYNC_OUT_OF_INDEX
  556. } mmi_phb_sync_error_enum; /* For SyncML */
  557. typedef enum
  558. {
  559.     MMI_PHB_ENTER_NONE,
  560.     MMI_PHB_ENTER_FROM_IDLE_SCREEN,
  561.     MMI_PHB_ENTER_FROM_CALL_LOG,
  562.     MMI_PHB_ENTER_FROM_CALL_MGNT,
  563.     MMI_PHB_ENTER_FROM_SMS,
  564. #if defined (__MMI_BARCODEREADER__)
  565.     MMI_PHB_ENTER_FROM_BARCODE,
  566. #endif
  567. #if defined (__MMI_VOIP__)
  568.     MMI_PHB_ENTER_FROM_VOIP,
  569. #endif
  570.     MMI_PHB_ENTER_FROM_JAVA,
  571.     MMI_PHB_ENTER_FROM_SYNCML,
  572.     MMI_PHB_ENTER_FROM_WAP
  573. } MMI_PHB_ENTER_LOCATION_ENUM;
  574. /* See if the phonebook list screen data need reload. */
  575. typedef enum
  576. {
  577.     MMI_PHB_ENTRY_NO_CHANGE,
  578.     MMI_PHB_ENTRY_REFRESH,
  579.     MMI_PHB_ENTRY_QSEARCH
  580. } MMI_PHB_ENTRY_UPDATE_ENUM;
  581. typedef enum
  582. {
  583.     MMI_PHB_SORT_STORAGE,
  584.     MMI_PHB_SORT_ENCODING,
  585.     MMI_PHB_SORT_PINYIN
  586. } MMI_PHB_SORT_METHOD_ENUM;
  587. typedef enum
  588. {
  589.     MMI_PHB_OP_NONE,
  590.     MMI_PHB_OP_ADD,
  591.     MMI_PHB_OP_EDIT
  592. } MMI_PHB_OP_ENUM;
  593. /* __MMI_PHB_USIM_FIELD__ */
  594. typedef enum
  595. {
  596.     MMI_PHB_USIM_NOT_READY,
  597.     MMI_PHB_USIM_READY_PHASE1,
  598.     MMI_PHB_USIM_READY_ANR,
  599.     MMI_PHB_USIM_READY_EMAIL,
  600.     MMI_PHB_USIM_READY_GAS,
  601.     MMI_PHB_USIM_READY_GRP,
  602.     MMI_PHB_USIM_READY_SNE,
  603.     MMI_PHB_USIM_READY
  604. } MMI_PHB_USIM_READY_STAGE_ENUM;
  605. typedef enum
  606. {
  607.     MMI_PHB_USIM_ANR_FULL = 8,
  608.     MMI_PHB_USIM_EMAIL_FULL,
  609.     MMI_PHB_USIM_SNE_FULL
  610. } MMI_PHB_USIM_WRITE_ERROR_ENUM;
  611. /* 
  612.  * Define for Messages
  613.  */
  614. #define PHB_NAME_STRUCT                      l4_name_struct
  615. #define PHB_NUMBER_STRUCT                    l4c_number_struct
  616. #define PHB_ENTRY_STRUCT                     l4c_phb_entry_struct
  617. #define PHB_RESULT_STRUCT                    l4c_result_struct
  618. #define MSG_PHB_GET_ENTRY_BY_NAME_REQ_STRUCT    mmi_phb_get_entry_by_name_req_struct
  619. #define MSG_PHB_GET_ENTRY_BY_NAME_RSP_STRUCT    mmi_phb_get_entry_by_name_rsp_struct
  620. #define MSG_PHB_GET_ENTRY_BY_INDEX_REQ_STRUCT      mmi_phb_get_entry_by_index_req_struct
  621. #define MSG_PHB_GET_ENTRY_BY_INDEX_RSP_STRUCT      mmi_phb_get_entry_by_index_rsp_struct
  622. #define MSG_PHB_SET_ENRTY_REQ_STRUCT            mmi_phb_set_entry_req_struct
  623. #define MSG_PHB_SET_ENRTY_RSP_STRUCT            mmi_phb_set_entry_rsp_struct
  624. #define MSG_PHB_DELETE_ENTRY_REQ_STRUCT            mmi_phb_del_entry_req_struct
  625. #define MSG_PHB_DELETE_ENTRY_RSP_STRUCT            mmi_phb_del_entry_rsp_struct
  626. #define MSG_PHB_GET_PREFERRED_STORAGE_RSP_STRUCT   mmi_phb_get_preferred_storage_rsp_struct
  627. #define MSG_PHB_SET_PREFERRED_STORAGE_REQ_STRUCT   mmi_phb_set_preferred_storage_req_struct
  628. #define MSG_PHB_SET_PREFERRED_STORAGE_RSP_STRUCT   mmi_phb_set_preferred_storage_rsp_struct
  629. #define  MSG_PHB_GET_ALPHA_LIST_REQ_STRUCT         mmi_phb_get_alpha_list_req_struct
  630. #define MSG_PHB_GET_ALPHA_LIST_RSP_STRUCT       mmi_phb_get_alpha_list_rsp_struct
  631. #define  MSG_PHB_STARTUP_FINISH_IND_STRUCT         mmi_phb_startup_finish_ind_struct
  632. #define  MSG_PHB_STARTUP_READ_IND_STRUCT     mmi_phb_startup_read_ind_struct
  633. #define MSG_PHB_STARTUP_READ_NEXT_REQ_STRUCT mmi_phb_startup_read_next_req_struct
  634. #define  MSG_PHB_UPDATE_IND_STRUCT              mmi_phb_update_ind_struct
  635. #define MSG_PHB_STARTUP_FINISH_PHASE1_IND_STRUCT         mmi_phb_startup_phase1_ind_struct
  636. #define MSG_PHB_STARTUP_READ_NEXT_USIM_FIELD_REQ_STRUCT mmi_phb_startup_read_next_usim_field_req_struct
  637. #define MSG_PHB_STARTUP_READ_ANR_IND_STRUCT mmi_phb_startup_read_anr_ind_struct
  638. #define MSG_PHB_STARTUP_READ_EMAIL_IND_STRUCT mmi_phb_startup_read_email_ind_struct
  639. #define MSG_PHB_STARTUP_READ_GAS_IND_STRUCT mmi_phb_startup_read_gas_ind_struct
  640. #define MSG_PHB_STARTUP_READ_GRP_IND_STRUCT mmi_phb_startup_read_grp_ind_struct
  641. #define MSG_PHB_READ_EMAIL_REQ_STRUCT     mmi_phb_read_email_req_struct
  642. #define MSG_PHB_READ_EMAIL_RSP_STRUCT     mmi_phb_read_email_rsp_struct
  643. #define MSG_PHB_SET_EMAIL_REQ_STRUCT      mmi_phb_set_email_req_struct
  644. #define MSG_PHB_SET_EMAIL_RSP_STRUCT      mmi_phb_set_email_rsp_struct
  645. #define MSG_PHB_SET_USIM_ENRTY_REQ_STRUCT          mmi_phb_write_usim_req_struct
  646. #define MSG_PHB_SET_USIM_ENRTY_RSP_STRUCT          mmi_phb_write_usim_rsp_struct
  647. #define MSG_PHB_SET_GRP_REQ_STRUCT        mmi_phb_set_grp_req_struct
  648. #define MSG_PHB_SET_GRP_RSP_STRUCT        mmi_phb_set_grp_rsp_struct
  649. #if defined(OBIGO_SUPPORT) && defined(MMS_SUPPORT)
  650. #define MSG_PHB_MEA_ADDR_INPUT_STRUCT  mea_addr_input_struct    /* For MMS */
  651. #endif 
  652. /* Global context */
  653. typedef struct
  654. {
  655.     /* Global variables - Keep phonebook state flag. */
  656.     BOOL phb_ready;
  657.     BOOL processing;
  658.     BOOL copy_all;
  659.     BOOL nvram_data_init;
  660.     U8 refresh_list;
  661.     U16 start_scr_id;
  662.     U16 end_scr_id;
  663.     U8 sim_name_len;
  664.     U8 fdn_name_len;
  665.     U8 bdn_name_len;
  666.     U8 owner_name_len;
  667.     U16 sim_total;
  668.     U16 sim_used;
  669.     U16 phone_total;
  670.     U16 phone_used;
  671.     U16 populate_count; /* physical index for populating option field. 0xffff if sort complete */
  672.     U16 lookup_table_count;
  673.     /* Pointer to global array */
  674.     void *optional_ids;
  675.     void *caller_group;
  676.     U16 *list_filter;
  677.     /* Index for list screen. */
  678.     U16 active_index;
  679.     U16 active_index_second;
  680.     U16 active_index_third;
  681. #if defined(__MMI_PHB_QUICK_SEARCH__)
  682.     U16 active_index_fourth;
  683. #endif
  684.     /* for JSR PIM */
  685.     U16 java_store_index;
  686.     /* for sim refresh */
  687.     U16 current_op;
  688.     /* Global variables - passing parameter between functions. */
  689.     U8 *number_to_dial[5];
  690.     U16 highlight_entry;
  691.     U16 new_highlight_entry;
  692.     U8 selected_storage;
  693.     U8 image_location;
  694.     S32 selected_pic_index;
  695.     S32 selected_ring_index;
  696.     S32 selected_grp_index;
  697.     S32 selected_pattern_index;
  698.     S32 selected_alert_index;
  699.     S32 selected_pic_in_view;
  700.     U8 dial_from_list;
  701.     U8 searched_number_type;    /* for mmi_phb_call_get_data_for_call_mgnt */
  702.     U8 sort_type;
  703. #ifdef __MMI_PHB_USIM_FIELD__
  704.     BOOL is_usim;
  705.     U8 usim_ready_stage;
  706.     void *usim_group;
  707.     U8 group_name_len;
  708.     U8 group_type[MAX_PB_SIM_ENTRIES];
  709.     U16 gas_total;
  710.     U16 anra_total;
  711.     U16 anra_used;
  712.     U16 anrb_total;
  713.     U16 anrb_used;
  714.     U16 anrc_total;
  715.     U16 anrc_used;
  716.     U16 sne_total;
  717.     U16 sne_used;
  718.     U16 sne_name_len;
  719.     U16 email_total;
  720.     U16 email_used;
  721.     U16 email_length;
  722.     U16 usim_field_read_count;
  723.     U8 support_field[MMI_PHB_USIM_FIELD_TOTAL];
  724. #endif /* __MMI_PHB_USIM_FIELD__ */ 
  725.     /* Inline Selection List */
  726.     U16 ring_tone_list[MAX_PB_RING_TONES];
  727.     U16 image_id_list[MAX_PB_PICTURES_TAGS];
  728.     U8 *image_name_list[MAX_PB_PICTURES_TAGS];
  729.     U8 *ring_tone_name_list[MAX_PB_RING_TONES];
  730.     U8 *alert_name_list[MAX_PB_ALERT_TYPES + 1];
  731.     U8 *led_name_list[MAX_PB_LED_PATTERNS + 1];
  732. #if defined(__MMI_INCOMING_CALL_VIDEO__)
  733.     S32 selected_video_index;
  734.     U16 video_id_list[MAX_PB_VIDEO_TAGS];
  735.     U16 selected_video_id;
  736.     U8 *video_name_list[MAX_PB_VIDEO_TAGS];
  737.     U8 total_video_id;
  738.     U8 init_video;
  739.     U8 video_location;
  740.     U8 video_audio;
  741. #endif /* defined(__MMI_INCOMING_CALL_VIDEO__) */ 
  742.     U16 recv_res_id;    /* receive resource and associate to phb entry */
  743.     U8 recv_res_from;   /* receive resource and associate to phb entry */
  744.     U8 set_done_flag;
  745.     U8 total_ring_tone;
  746.     U8 total_image_id;
  747.     U8 speak_name;
  748.     /* System setting */
  749.     U8 prefer_storage;
  750.     U8 view_field[MAX_PB_VIEW_FIELDS];
  751.     U8 name_list_filter;
  752. } mmi_phb_context_struct;
  753. extern mmi_phb_context_struct g_phb_cntx;
  754. #if (MAX_PB_ENTRIES >= 1000)
  755. extern U16 g_phb_list_filter[MAX_PB_ENTRIES];
  756. #endif /* MAX_PB_ENTRIES >= 1000 */
  757. #endif /* _PHONEBOOKTYPES_H */