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

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.  * UnifiedComposerGProt.h
  39.  *
  40.  * Project:
  41.  * --------
  42.  * MAUI
  43.  *
  44.  * Description:
  45.  * ------------
  46.  * This file defines global enum, constant and prototypes for Unified Composer
  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.  *------------------------------------------------------------------------------
  67.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  68.  *==============================================================================
  69.  *******************************************************************************/
  70. #ifndef _MMI_UNIFIED_COMPOSER_GPROT_H
  71. #define _MMI_UNIFIED_COMPOSER_GPROT_H
  72. #ifdef __MMI_UNIFIED_COMPOSER__
  73. #ifdef __MMI_UNIFIED_MESSAGE__
  74. #ifndef _MMI_UNIFIED_MESSAGE_GPROT_H
  75. #error "Please include UnifiedMessageGProt.h first"
  76. #endif 
  77. #endif /* __MMI_UNIFIED_MESSAGE__ */
  78. #ifdef __MMI_UNIFIED_MESSAGE__
  79. #define MMI_UC_MAX_ADDR_LEN MMI_UM_MAX_ADDR_LEN
  80. #define MMI_UC_MAX_SUBJECT_LEN MMI_UM_MAX_SUBJECT_LEN
  81. #else /* __MMI_UNIFIED_MESSAGE__ */
  82. #define MMI_UC_MAX_ADDR_LEN (60)
  83. #define MMI_UC_MAX_SUBJECT_LEN (40)
  84. #endif /* __MMI_UNIFIED_MESSAGE__ */
  85. #define MMI_UC_MAX_CHAR_NUM_IN_ONE_SLIDE (2048)
  86. #define MMI_UC_TEXT_BUFFER_SIZE (MMI_UC_MAX_CHAR_NUM_IN_ONE_SLIDE * ENCODING_LENGTH + ENCODING_LENGTH)
  87. #define MMI_UC_UTF8_TEXT_BUFFER_SIZE (MMI_UC_TEXT_BUFFER_SIZE * ENCODING_LENGTH + ENCODING_LENGTH)
  88. typedef void (*uc_func_ptr) (void *);
  89. typedef enum
  90. {
  91.     MMI_UC_MSG_TYPE_DEFAULT,
  92.     MMI_UC_MSG_TYPE_SMS_PREFER,
  93.     MMI_UC_MSG_TYPE_MMS_PREFER,
  94.     MMI_UC_MSG_TYPE_SMS_ONLY,
  95.     MMI_UC_MSG_TYPE_MMS_ONLY,
  96.     MMI_UC_MSG_TYPE_TOTAL_NUM
  97. } mmi_uc_msg_type_enum;
  98. typedef enum
  99. {
  100.     MMI_UC_INFO_TYPE_SMS,
  101.     MMI_UC_INFO_TYPE_MMS,
  102.     MMI_UC_INFO_TYPE_TOTAL_NUM
  103. } mmi_uc_info_type_enum;
  104. /*
  105. typedef enum
  106. {
  107.     MMI_UC_DONE_TYPE_FORWARD,
  108.     MMI_UC_DONE_TYPE_SEND,
  109.     MMI_UC_DONE_TYPE_TOTAL_NUM
  110. } mmi_uc_done_type_enum;*/
  111. typedef enum
  112. {
  113.     MMI_UC_STATE_WRITE_NEW_MSG,
  114.     MMI_UC_STATE_EDIT_EXISTED_MSG,        
  115.     MMI_UC_STATE_FORWARD, /* Only for inbox and sent box msgs*/
  116.     MMI_UC_STATE_SEND, /* Only for outbox and draft box msgs*/
  117.     MMI_UC_STATE_REPLY,
  118.     MMI_UC_STATE_REPLY_ALL,
  119.     
  120.     MMI_UC_STATE_TOTAL_NUM
  121. } mmi_uc_state_enum;
  122.     
  123. typedef mmi_uc_state_enum mmi_uc_done_type_enum;
  124. typedef enum
  125. {
  126.     MMI_UC_ADDRESS_TYPE_PHONE_NUMBER,
  127.     MMI_UC_ADDRESS_TYPE_EMAIL,
  128.     MMI_UC_ADDRESS_TYPE_TOTAL_NUM
  129. } mmi_uc_address_type_enum;
  130. typedef enum
  131. {
  132.     MMI_UC_ADDRESS_GROUP_TYPE_TO,
  133.     MMI_UC_ADDRESS_GROUP_TYPE_CC,
  134.     MMI_UC_ADDRESS_GROUP_TYPE_BCC,
  135.     MMI_UC_ADDRESS_GROUP_TYPE_FROM,
  136.     MMI_UC_ADDRESS_GROUP_TYPE_TOTAL_NUM
  137. } mmi_uc_address_group_type_enum;
  138. typedef enum
  139. {
  140.     MMI_UC_OBJECT_TYPE_IMAGE,
  141.     MMI_UC_OBJECT_TYPE_AUDIO,
  142.     MMI_UC_OBJECT_TYPE_VIDEO,
  143.     MMI_UC_OBJECT_TYPE_TEXT,
  144.     MMI_UC_OBJECT_TYPE_ATTACHMENT,
  145.     MMI_UC_OBJECT_TYPE_UNKNOWN,
  146.     
  147.     MMI_UC_DONE_TYPE_TOTAL_NUM
  148. } mmi_uc_object_type;
  149. typedef enum
  150. {
  151.     MMI_UC_LAYOUT_DEFAULT,
  152.     MMI_UC_LAYOUT_THUMBNAIL_AT_TOP,
  153.     MMI_UC_LAYOUT_THUMBNAIL_AT_BOTTOM,    
  154.     
  155.     MMI_UC_LAYOUT_TOTAL_NUM
  156. } mmi_uc_layout_enum;
  157. typedef struct mmi_uc_addr_struct_t
  158. {    
  159.     struct mmi_uc_addr_struct_t* next;
  160.     struct mmi_uc_addr_struct_t* previous;
  161.     
  162.     kal_uint8* addr; /* ascii for phone number while ucs2 for email address. NULL terminator is needed */
  163.     mmi_uc_address_type_enum type;
  164.     mmi_uc_address_group_type_enum group;    
  165. } mmi_uc_addr_struct;
  166. typedef struct
  167. {
  168.     kal_uint8 addr_num;
  169.     mmi_uc_addr_struct* addr;
  170.     mmi_uc_msg_type_enum msg_type;
  171.     kal_uint8* file_path;
  172.     kal_uint8* text_buffer;
  173.     kal_uint16 text_num;
  174.     kal_uint8* subject;
  175.     mmi_uc_info_type_enum info_type;
  176.     void* info;
  177.     uc_func_ptr callback;
  178.     void* callback_para;
  179.     
  180. } mmi_uc_entry_write_struct;
  181. typedef struct mmi_uc_object_struct_t
  182. {
  183.     struct mmi_uc_object_struct_t* next;
  184.     struct mmi_uc_object_struct_t* previous;
  185.     U32 offset;
  186.     U32 size; /* file size for non-text object. UTF8 size for text object */
  187.     U16* file_path; /* NULL terminator is needed. */
  188.     U16* file_name;
  189.     U32 id;
  190.     U16 reference_count;
  191.     mmi_uc_object_type type;
  192.     U8 drm_type; /* mma_drm_type_enum */    
  193.     BOOL is_virtual_file;
  194. } mmi_uc_object_struct;
  195. typedef struct mmi_uc_attachment_info_struct_t
  196. {
  197.     struct mmi_uc_attachment_info_struct_t* next;
  198.     struct mmi_uc_attachment_info_struct_t* previous;
  199.     mmi_uc_object_struct* object;
  200. } mmi_uc_attachment_info_struct;
  201. typedef struct
  202. {
  203.     mmi_uc_object_struct* object;
  204.     U32 id;
  205.     U8 begin;
  206.     U8 end;    
  207. } mmi_uc_object_info_struct;
  208. typedef struct
  209. {
  210.     mmi_uc_object_struct* object;
  211.     U32 id;
  212.     U32 background_color;
  213.     U32 foreground_color;
  214.     U16 char_count;     /*Total Character Count*/
  215.     U16 utf8_msg_len;       /*Msg Len in UTF8*/
  216.     U16 extension_char_count;       /*EXT CHAR Count*/
  217.     U16 UCS2_count;    /*UCS2 Count except any extension char*/
  218.     U8 begin;
  219.     U8 end;
  220. } mmi_uc_text_object_info_struct;
  221. typedef struct mmi_uc_slide_struct_t
  222. {
  223.     struct mmi_uc_slide_struct_t* next;
  224.     struct mmi_uc_slide_struct_t* previous;
  225.     mmi_uc_text_object_info_struct text;
  226.     mmi_uc_object_info_struct image;
  227.     mmi_uc_object_info_struct audio;
  228.     mmi_uc_object_info_struct video;
  229.     U8 duration;
  230.     U8 slide_num;
  231. } mmi_uc_slide_struct;
  232. typedef struct
  233. {
  234.     U32 msg_size;   /* total = header + body */
  235.     U32 msg_size_without_text_buffer;
  236.     U32 msg_body_size; /* total = header + body */
  237.     
  238.     U32 background_color;
  239.     U32 foreground_color;
  240.         
  241.     mmi_uc_addr_struct* to_head;
  242.     mmi_uc_addr_struct* cc_head;
  243.     mmi_uc_addr_struct* bcc_head;
  244.     mmi_uc_addr_struct* from;
  245.     U16 subject[MMI_UC_MAX_SUBJECT_LEN + 1];
  246.     U8 to_num;
  247.     U8 cc_num;
  248.     U8 bcc_num;
  249.     
  250.     BOOL read_report;
  251.     BOOL delivery_report;
  252.     U8 priority; /* mma_priority_enum */
  253.     U8 expiry_time; /* mma_expiry_time_enum */
  254.     BOOL sender_visibility;
  255.     U8 delivery_time; /* mma_delivery_time_enum */
  256.     
  257.     mmi_uc_slide_struct* slide_head;
  258.     mmi_uc_slide_struct* current_slide;
  259.     mmi_uc_object_struct* object_head;
  260.     mmi_uc_attachment_info_struct* attachment_head;
  261.     U16 slide_timing;
  262.     BOOL signature_inserted;
  263.     BOOL fail_to_insert_signature;
  264.     
  265.     U8 total_slide_num;
  266.     U8 current_slide_num;
  267.     U8 total_object_num;
  268.     U8 total_attachment_num;
  269.     mmi_uc_layout_enum layout;    
  270. } mmi_uc_msg_struct;
  271. extern void mmi_uc_init(void);
  272. extern void mmi_uc_pre_entry_write_msg(void);
  273. extern void mmi_uc_get_address_from_phb(S8 *name, S8 *addr);
  274. extern void mmi_uc_entry_write_msg_with_content(mmi_uc_done_type_enum type, mmi_uc_entry_write_struct* data);
  275. extern void mmi_uc_entry_done_option_with_content (mmi_uc_done_type_enum type, mmi_uc_entry_write_struct* data);
  276. extern void mmi_uc_sd_plug_out_hdlr(void);
  277. extern void mmi_uc_insert_text_template(void);
  278. extern kal_bool mmi_uc_is_uc_screen_in_history(void);
  279. #endif /* __MMI_UNIFIED_COMPOSER__ */ 
  280. #endif /* _MMI_UNIFIED_COMPOSER_GPROT_H */