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

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.  *  SMSApi.h
  39.  *
  40.  * Project:
  41.  * --------
  42.  *  MAUI
  43.  *
  44.  * Description:
  45.  * ------------
  46.  *  
  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.  *------------------------------------------------------------------------------
  103.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  104.  *==============================================================================
  105.  *******************************************************************************/
  106. #ifndef _MMI_SMSAPI_H
  107. #define _MMI_SMSAPI_H
  108. typedef enum
  109. {
  110.     MMI_FRM_SMS_APP_NOBOX = 0x00,
  111.     MMI_FRM_SMS_APP_UNREAD = 0x01,
  112.     MMI_FRM_SMS_APP_INBOX = 0x02,
  113.     MMI_FRM_SMS_APP_OUTBOX = 0x04,
  114.     MMI_FRM_SMS_APP_DRAFTS = 0x08,
  115.     MMI_FRM_SMS_APP_AWAITS = 0x10,
  116.     MMI_FRM_SMS_APP_DATA = 0x20,
  117. #ifdef __MMI_UNIFIED_MESSAGE__
  118.     MMI_FRM_SMS_APP_UNSENT = 0x40,
  119. #endif 
  120.     MMI_FRM_SMS_APP_MSGBOX_END
  121. } mmi_frm_sms_app_msgbox_enum;
  122. typedef enum
  123. {
  124.     MMI_FRM_SMS_OK,
  125.     MMI_FRM_SMS_ERROR,
  126.     MMI_FRM_SMS_RETURN,
  127.     MMI_FRM_SMS_END,
  128.     MMI_FRM_SMS_ABORT,
  129.     MMI_FRM_SMS_FDLFAIL,
  130.     MMI_FRM_SMS_NUMEMPTY,
  131.     MMI_FRM_SMS_NUMINVALID,
  132.     MMI_FRM_SMS_DATAEMPTY,
  133.     MMI_FRM_SMS_DATAINVALID,
  134.     MMI_FRM_SMS_DATAEXCEED,
  135.     MMI_FRM_SMS_MEMFULL,
  136.     MMI_FRM_SMS_NOTREADY,
  137.     MMI_FRM_SMS_SC_EMPTY,
  138.     MMI_FRM_SMS_MEMINSUFFICIENT,
  139.     MMI_FRM_SMS_END_FROM_SENDING
  140. } mmi_frm_sms_result;
  141. typedef enum
  142. {
  143.     MMI_FRM_SMS_SC = 0x01,
  144.     MMI_FRM_SMS_DA = 0x02,
  145.     MMI_FRM_SMS_FDL = 0x04,
  146.     MMI_FRM_SMS_SCR = 0x08,
  147.     MMI_FRM_SMS_NOT_ALLOW_EMPTY_SC = 0x10
  148. } mmi_frm_sms_action_enum;
  149. typedef enum
  150. {
  151.     MMI_FRM_SMS_PORT = 0x0001,
  152.     MMI_FRM_SMS_CLASS = 0x0002,
  153.     MMI_FRM_SMS_REPLY = 0x0004,
  154.     MMI_FRM_SMS_SAVE = 0x0008,
  155.     MMI_FRM_SMS_SAVE_AFTER_FAIL = 0x0010,
  156.     MMI_FRM_SMS_RETURN_STRING = 0x0020,
  157.     MMI_FRM_SMS_MORE = 0x0040,
  158.     MMI_FRM_SMS_NUM_SCR = 0x0080
  159. } mmi_frm_sms_send_enum;
  160. typedef enum
  161. {
  162. #ifdef __MMI_UNIFIED_MESSAGE__
  163.     MMI_FRM_SMS_SAVE_HIGHLIGHT_NEW_MSG_IND = 0x0001,        /* indicate UM on which message the highlight should be */
  164.     MMI_FRM_SMS_SAVE_HIGHLIGHT_ORIGINAL_MSG_IND = 0x0002,   /* indicate UM on which message the highlight should be */
  165.     MMI_FRM_SMS_SAVE_MODIFY_HIGHLIGHT = 0x0004,             /* modify g_msg_cntx.currBoxIndex if needed after saving message */
  166. #endif /* __MMI_UNIFIED_MESSAGE__ */ 
  167.     MMI_FRM_SMS_SAVE_DISPLAY_SAVING_SCREEN = 0x0008,    /* Set means displaying saving screen by SMS framework */
  168.     MMI_FRM_SMS_SAVE_PORT = 0x0010,
  169.     MMI_FRM_SMS_SAVE_CLASS = 0x0020,
  170.     MMI_FRM_SMS_SAVE_ENUM_TOTAL
  171. } mmi_frm_sms_save_enum;
  172. typedef enum
  173. {
  174.     MMI_FRM_SMS_REQ_SEND,
  175.     MMI_FRM_SMS_REQ_SAVE,
  176.     MMI_FRM_SMS_REQ_TOTAL
  177. } mmi_frm_sms_request_type_enum;
  178. typedef enum
  179. {
  180.     MMI_FRM_SMS_ENTRY_WRITE_PORT = 0x0001,
  181.     MMI_FRM_SMS_ENTRY_WRITE_CLASS = 0x0002,
  182.     MMI_FRM_SMS_ENTRY_WRITE_REPLY = 0x0004,
  183.     MMI_FRM_SMS_ENTRY_WRITE_END
  184. } mmi_frm_sms_entry_write_enum;
  185. typedef enum
  186. {
  187.     MMI_FRM_SMS_ABORT_WITH_FINISH_IND,
  188.     MMI_FRM_SMS_ABORT_WITHOUT_FINISH_IND,
  189.     
  190.     MMI_FRM_SMS_ABORT_TOTAL
  191. } mmi_frm_sms_abort_enum;
  192. typedef struct
  193. {
  194.     U16 srcport;
  195.     U16 desport;
  196.     U16 replyindex;
  197.     U16 stringlength;
  198.     U8 dcs;
  199.     U8 dcs_class;
  200.     U8 profile;
  201.     U8 status;
  202.     mmi_frm_sms_action_enum sendcheck;
  203.     mmi_frm_sms_send_enum sendrequire;
  204.     U8 number[21];
  205.     S8 *filename;
  206.     S8 *string;
  207. } mmi_frm_sms_send_struct;
  208. typedef struct
  209. {
  210.     U16 result;             /* mmi_frm_sms_app_msgbox_enum */
  211.     U16 request_type;       /* mmi_frm_sms_request_type_enum */
  212.     U8 number[21];          /* Optional. Destination phone number. Needed in send case. Must contain NULL terminator */
  213.     BOOL display_popup;     /* TRUE to display popup. Please set TRUE in general cases */
  214.     BOOL delete_sms_screen; /* TRUE to delete SMS framework screens in history.  Please set TRUE in general cases */
  215.     /* Note: if is_display_pupup is FALSE, then current screen would not be deleted even if it belongs to SMS framwork screens because it is not in history.  */
  216. } mmi_frm_sms_api_result_handler_struct;
  217. typedef struct
  218. {
  219.     U16 srcport;
  220.     U16 desport;
  221.     mmi_frm_sms_entry_write_enum flag;
  222.     U16 stringlength;
  223.     S8 *string;
  224.     S8 *filename;
  225.     U8 dcs;
  226.     U8 dcs_class;
  227.     U8* ascii_addr; /* max number of digit is (MAX_DIGITS_SMS - 1). Must contain NULL terminator. */
  228. } mmi_frm_sms_api_entry_write_struct;
  229. typedef void (*PsFuncPtrU16) (void *, module_type, U16);
  230. typedef U8(*PsFuncPtrFuncPtr) (void *, void *);
  231. #define MMI_FRM_SMS_INVALID_INDEX   0xffff
  232. #define MMI_FRM_SMS_INVALID_NUM     0xff
  233. #define MMI_FRM_SMS_LMS_TIME_OUT    1000*10
  234. #define MMI_FRM_SMS_MSG_LEN         160
  235. #define MMI_FRM_SMS_MAX_CONTROL_BUFFER_SIZE  2048
  236. #ifdef __MMI_MESSAGES_COPY__
  237. /* if segments of one concatenated message have different storage, 
  238.    the storage of this message is determined by this value */
  239. #define MMI_FRM_SMS_PREFER_STORAGE  SMSAL_SM
  240. #endif /* __MMI_MESSAGES_COPY__ */ 
  241. extern void mmi_frm_sms_get_phb_number(U8 name[], U8 number[]);
  242. extern void mmi_frm_sms_reg_interrupt_check(module_type mod, U16 msgid, PsFuncPtrU16 callback);
  243. extern void mmi_frm_sms_reg_msg_check(PsExtPeerIntFuncPtr action, PsFuncPtrFuncPtr callback);
  244. extern void mmi_frm_sms_read_sms(PsFuncPtrU16 callback, module_type mod_src, U8 type, U16 index, MMI_BOOL change_status);
  245. extern void mmi_frm_sms_send_sms(PsFuncPtrU16 callback, module_type mod_src, mmi_frm_sms_send_struct *sendData);
  246. extern void mmi_frm_sms_get_sms(PsFuncPtrU16 callback, module_type mod_src, U16 index);
  247. extern void mmi_frm_sms_save_sms(PsFuncPtrU16 callback, module_type mod_src, mmi_frm_sms_send_struct *sendData);
  248. extern void mmi_frm_sms_delete_sms(PsFuncPtrU16 callback, module_type mod_src, U8 type, U16 index);
  249. extern void mmi_frm_sms_delete_sms_by_bitmap(PsFuncPtrU16 callback, module_type mod_src, U8 *bitmap);
  250. extern void mmi_frm_sms_reg_port(
  251.                 PsFuncPtrU16 callback,
  252.                 module_type mod_src,
  253.                 U16 port_num,
  254.                 BOOL enable,
  255.                 BOOL withdata,
  256.                 PsFuncPtrU16 regcallback);
  257. extern U8 mmi_frm_sms_check_action_pending(void);
  258. extern void mmi_frm_sms_delete_action_pending(void);
  259. extern void mmi_frm_sms_delete_screen_history(void);
  260. extern U8 mmi_frm_sms_check_complete(U8 type, U16 index);
  261. extern U8 mmi_frm_sms_get_status(U8 type, U16 index);
  262. extern U8 mmi_frm_sms_get_dcs(U8 type, U16 index);
  263. extern U8 *mmi_frm_sms_get_address(U8 type, U16 index);
  264. extern U8 *mmi_frm_sms_get_timestamp(U8 type, U16 index);
  265. extern void mmi_frm_sms_get_list_index(U8 *type, U16 *index, U16 msgbox_index);
  266. extern U8 mmi_frm_sms_get_sms_size(U8 type, U16 index);
  267. extern U8 mmi_frm_sms_get_sms_received_size(U8 type, U16 index);
  268. extern U16 mmi_frm_sms_get_sms_list_size(U8 type);
  269. extern U8 mmi_frm_sms_get_data_check(U8 index);
  270. extern void mmi_frm_sms_set_data_check(U8 index, U8 set);
  271. extern void mmi_frm_sms_swap_list_index(U8 type, U16 index1, U16 index2);
  272. #ifdef __MMI_MESSAGES_COPY__
  273. extern U8 mmi_frm_sms_get_storage(U8 type, U16 index);
  274. extern void mmi_frm_sms_copy_abort(void);
  275. #endif /* __MMI_MESSAGES_COPY__ */ 
  276. extern U8 mmi_frm_sms_check_awaited_complete_msg(U8 index);
  277. extern void mmi_frm_sms_init_msgbox(void);
  278. extern void mmi_frm_sms_set_profile_active(PsFuncPtrU16 callback, module_type mod_src, U8 *index);
  279. extern void mmi_frm_sms_get_profile_list(PsFuncPtrU16 callback, module_type mod_src);
  280. extern void mmi_frm_sms_get_sc_addr(PsFuncPtrU16 callback, module_type mod_src, U8 index);
  281. extern void mmi_frm_sms_set_sc_addr(PsFuncPtrU16 callback, module_type mod_src, U8 index, S8 scAddr[]);
  282. extern void mmi_frm_sms_get_profile_detail(PsFuncPtrU16 callback, module_type mod_src, U8 index);
  283. extern void mmi_frm_sms_set_profile_detail(PsFuncPtrU16 callback, module_type mod_src, void *profile);
  284. extern void mmi_frm_sms_get_common_settings(PsFuncPtrU16 callback, module_type mod_src);
  285. extern void mmi_frm_sms_set_common_settings(PsFuncPtrU16 callback, module_type mod_src, U8 *setting);
  286. #ifdef __MMI_MESSAGES_PREFER_STORAGE_MEMORY_STATUS__
  287. extern void mmi_frm_sms_get_memory_status(PsFuncPtrU16 callback, module_type mod_src);
  288. extern void mmi_frm_sms_get_preferred_storage(PsFuncPtrU16 callback, module_type mod_src);
  289. extern void mmi_frm_sms_set_preferred_storage(PsFuncPtrU16 callback, module_type mod_src, U8 storage);
  290. #endif /* __MMI_MESSAGES_PREFER_STORAGE_MEMORY_STATUS__ */ 
  291. #ifdef __MMI_GPRS_FEATURES__
  292. extern void mmi_frm_sms_get_preferred_bearer(PsFuncPtrU16 callback, module_type mod_src);
  293. extern void mmi_frm_sms_set_preferred_bearer(PsFuncPtrU16 callback, module_type mod_src, U8 bearer);
  294. #endif /* __MMI_GPRS_FEATURES__ */ 
  295. extern void mmi_frm_sms_get_mailbox_info(PsFuncPtrU16 callback, module_type mod_src);
  296. extern void mmi_frm_sms_set_mailbox_info(PsFuncPtrU16 callback, module_type mod_src, void *mailbox);
  297. #ifdef __MMI_MESSAGES_COPY__
  298. extern void mmi_frm_sms_copy_sms(
  299.                 PsFuncPtrU16 callback,
  300.                 module_type mod_src,
  301.                 U8 type,
  302.                 U16 index,
  303.                 U8 action,
  304.                 U8 dst_storage);
  305. #endif /* __MMI_MESSAGES_COPY__ */ 
  306. #ifdef __MMI_UNIFIED_MESSAGE__
  307. extern void mmi_frm_sms_get_unsent_msg_num(kal_uint16 *unsent_msg_number);
  308. extern void mmi_frm_sms_get_draft_msg_num(kal_uint16 *draft_msg_number);
  309. extern kal_bool mmi_frm_sms_get_next_unsent_msg(kal_uint16 *current_msg_index);
  310. extern kal_bool mmi_frm_sms_get_next_draft_msg(kal_uint16 *current_msg_index);
  311. extern kal_bool mmi_frm_sms_get_content(
  312.                     kal_uint8 msg_box_type,
  313.                     kal_uint16 msg_list_index,
  314.                     kal_wchar *content,
  315.                     kal_uint8 max_subject_len);
  316. #endif /* __MMI_UNIFIED_MESSAGE__ */ 
  317. extern BOOL mmi_frm_sms_check_dst_number(U8 *num, U8 numLen);
  318. extern BOOL mmi_frm_sms_is_in_sim_refresh(void);
  319. extern void mmi_frm_sms_api_result_handler(mmi_frm_sms_api_result_handler_struct *result);
  320. extern void mmi_frm_sms_api_entry_write_msg(mmi_frm_sms_api_entry_write_struct *data);
  321. extern void mmi_frm_sms_handle_extension_char(U16 *dstBuffer, U16 *srcBuffer, U16 charNum);
  322. extern BOOL mmi_frm_sms_check_UCS2(U16 *buffer, U16 charNum);
  323. extern U32 mmi_frm_sms_count_extension_char(U16 *buff, U32 char_num);
  324. extern void mmi_frm_sms_init(void);
  325. extern void InitEMSDataStruct(void);
  326. extern void DeInitEMSDataStruct(void);
  327. extern void ReleaseEMSViewBuffer(void);
  328. extern void ReleaseEMSEditBuffer(void);
  329. extern U8 CopyEMSViewToEditBuffer(void);
  330. extern void mmi_frm_sms_remove_escape_symbol_for_extension_char(U16 *dstBuf, U16 *srcBuf, U16 charNum);
  331. extern void mmi_frm_sms_add_escape_symbol_for_extension_char(U16 *dstBuf, U16 *srcBuf, U16 charNum);
  332. extern void mmi_frm_sms_abort_sending_sms(mmi_frm_sms_abort_enum type);
  333. extern BOOL mmi_frm_sms_fill_in_edit_buffer(U8* buffer, U16 char_num, U8 dcs, BOOL is_reset);
  334. #endif /* _MMI_SMSAPI_H */