MmsSrvSendRcv.h
13.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2005
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/*****************************************************************************
*
* Filename:
* ---------
* MMSSrvSendRcv.h
*
* Project:
* --------
* MAUI
*
* Description:
* ------------
* This file contains declaration of APIs defined in MMSSendRcvSrv.c and definitions of
* structures and unions used in MMSSendRcvSrv.c
*
* Author:
* -------
* -------
*
*============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*============================================================================
****************************************************************************/
#ifndef MMSSRVSENDRECV_H
#define MMSSRVSENDRECV_H
#include "MMI_features.h"
#ifdef __MMI_MMS_2__
#include "kal_general_types.h"
// #include "MmsSrvGprot.h"
#include "FileMgrSrvGProt.h"
#include "MMIDataType.h"
#ifdef __MMI_MMS_MMA_MMS_OBJECT_IND__
#define SRV_MMS_DEFAULT_FOLDER_NAME_SIM1 L"@mmsobject1" /* should be consistent with the path defined in fs_quota.c file */
#define SRV_MMS_DEFAULT_FOLDER_NAME_SIM2 L"@mmsobject2" /* should be consistent with the path defined in fs_quota.c file */
#define SRV_MMS_DEFAULT_OBJ_IND_FOLDER L"@mmsobject" /* should be consistent with the path defined in fs_quota.c file */
#define SRV_MMS_FILE_EXT L".mms"
#define SRV_MMS_SEARCH_FILE_EXT L"*.mms"
#define MMI_UMMS_TIMER_VALUE (30000)
#define SRV_MMS_DRIVE_NAME_LENGTH 5
#define SRV_MMS_DEFAULT_SYS_DRIVE SRV_FMGR_SYSTEM_DRV
#define SRV_MMS_DEFAULT_PUBLIC_DRIVE SRV_FMGR_PUBLIC_DRV
#define UMMS_CONVERT_INDEX 10
#define SRV_MMS_SHOW_FULL_POPUP_COUNT 60
#define SRV_MMS_MAX_NUM_FULL_POPUP 48
#define SRV_MMS_OBJ_FILE_PATH_LEN 35 /* Do not define this length more than 35 */
#define SRV_MMS_OBJ_FILE_NAME_LEN 15 /* Do not define this length more than 15 */
#define SRV_MMS_PREFIX_SIM1 L"1"
#define SRV_MMS_PREFIX_SIM2 L"2"
#define SRV_MMS_PREFIX_SIM3 L"3"
#define SRV_MMS_PREFIX_SIM4 L"4"
typedef enum
{
SRV_MMS_OBJ_STATE_NORMAL,
SRV_MMS_OBJ_STATE_BUSY,
SRV_MMS_OBJ_STATE_MAX
} srv_mms_obj_state;
typedef enum
{
SRV_MMS_DRV_SYS,
SRV_MMS_DRV_PUBLIC,
SRV_MMS_DRV_MAX
} srv_mms_drv_type;
typedef enum
{
SRV_MMS_FILE_TYPE_NOTIFICATION,
SRV_MMS_FILE_TYPE_DELIVERY_REPORT,
SRV_MMS_FILE_TYPE_READ_REPORT,
SRV_MMS_FILE_TYPE_NORMAL_MMS,
SRV_MMS_FILE_TYPE_MAX
} srv_mms_file_type;
typedef struct _srv_mms_notification_list
{
U8 file_name[(UMMS_CONVERT_INDEX *ENCODING_LENGTH + 1) *ENCODING_LENGTH];
srv_mms_file_type file_type;
U8 sim_id;
struct _srv_mms_notification_list *next;
U16 filename_int;
} srv_mms_notification_list;
typedef struct
{
U16 next_push;
U8 count;
} srv_mms_push_struct;
typedef struct _srv_mms_notification_struct
{
//U32 sys_file_count; /* For File Name generation in System Drive */
//U32 public_file_count; /* For File Name generation in Public Drive */
U8 sim_id;
U8 in_process_sim_id;
srv_mms_file_type file_type;
srv_mms_obj_state state;
U16 filename_int;
U16 in_process_filename_int;
srv_mms_push_struct sim_push;
U8 default_sys_folder_path[(SRV_MMS_OBJ_FILE_PATH_LEN + 1) *ENCODING_LENGTH];
U8 default_public_folder_path[(SRV_MMS_OBJ_FILE_PATH_LEN + 1) *ENCODING_LENGTH];
/* U8 current_file_path[((SRV_FMGR_PATH_MAX_LEN+1) + 1) *ENCODING_LENGTH]; */
U8 unique_file_name[(SRV_MMS_OBJ_FILE_NAME_LEN + 1) *ENCODING_LENGTH];
} srv_mms_notification_struct;
#endif /* __MMI_MMS_MMA_MMS_OBJECT_IND__ */
#ifdef __MMI_MMS_MMA_MMS_OBJECT_IND__
/* extern void srv_mms_object_indication_rsp_callback(srv_mms_result_enum srv_result, void *rsp_data, S32 user_data); */
extern void srv_mms_handle_mms_file(
S32 session_id,
S32 mime_type,
S32 mime_subtype,
S32 action_type,
PU16 filename,
PS8 download_url,
PS8 mime_type_str_string);
extern void srv_mms_save_mms_to_drv(PU16 filename, int drv_type);
extern void srv_mms_generate_file_path(int drv_type, U8 sim_id);
extern void srv_mms_generate_unique_file_name(int drv_type);
extern void srv_mms_save_object_rsp(void *info);
extern void srv_mms_enqueue_in_object_list(void);
extern void srv_mms_free_object_handler_node(void);
extern void srv_mms_handle_obj_timer_expiry(void);
extern void srv_mms_read_noti_file_frm_sys_drv(U8 sim_id);
extern void srv_mms_get_file_name_and_add_to_list(U8 filename[], U8 sim_id);
extern U8 srv_mms_get_int_file_name(U8 filename[]);
extern srv_mms_file_type srv_mms_get_file_type(U8 filename[]);
extern void mmi_update_sim_push_info(U8 sim_id);
#endif /* __MMI_MMS_MMA_MMS_OBJECT_IND__ */
#ifndef __MMI_MMS_BGSR_SUPPORT__
extern umms_state_enum srv_mms_get_intermediate_state_by_old_msg_id(U32 msg_id);
extern void srv_mms_check_sending_state_of_all_and_update_state(void);
extern kal_bool srv_mms_check_if_more_mms_is_in_send_state(void);
extern void srv_mms_free_download_list_msg_id(U32 msg_id);
extern void umms_add_to_download_msg_hndlr_list(
const U32 msg_id,
const U32 req_id,
const umms_state_enum current_state,
const umms_state_enum intermediate_state);
extern void srv_mms_add_to_new_msg_list(U32 msg_id);
extern void srv_mms_free_new_msg_handler_list(U32 msg_id);
extern MMI_BOOL srv_mms_is_in_download_list(U32 msg_id);
extern void umms_add_to_send_msg_hndlr_list(
const U32 msg_id,
const U32 req_id,
const umms_state_enum current_state,
const umms_state_enum intermediate_state,
const mma_folder_enum folder_id);
extern void srv_mms_update_intermediate_send_cancel_req(const U32 msg_id, const U32 req_id);
extern void srv_mms_update_intermediate_send_req(
const U32 msg_id,
const U32 req_id,
const umms_state_enum intermediate_state);
extern void srv_mms_update_send_hdnlr_with_new_msg_id(
const U32 msg_id,
const U32 req_id,
const umms_state_enum intermediate_state);
extern U32 srv_mms_get_old_msg_id_from_send_handler(U32 req_id);
extern void srv_mms_update_retry_send_req(
const U32 msg_id,
const U32 req_id,
const U32 new_req_id,
const umms_state_enum intermediate_state);
extern umms_state_enum srv_mms_get_intermediate_state_of_msg_from_send_list(const U32 msg_id);
extern umms_state_enum srv_mms_get_state_of_msg_from_send_list(const U32 msg_id);
extern umms_state_enum srv_mms_get_state_of_msg_from_download_list(const U32 msg_id, const U32 req_id);
extern umms_state_enum srv_mms_get_intermediate_state_from_downl_list(const U32 msg_id);
extern void srv_mms_update_send_msg_handler(
const umms_state_enum updated_state,
const U32 msg_id,
const mmi_enum_retry_send_verion_enum retry_send_version,
const U32 retry_version_count);
extern mmi_enum_retry_send_verion_enum srv_mms_get_send_version_number(const U32 msg_id);
extern U32 srv_mms_get_send_version_count(U32 msg_id);
extern void srv_mms_update_download_msg_hndlr(const U32 msg_id, const U32 req_id, const umms_state_enum updated_state);
extern umms_state_enum srv_mms_get_current_state_of_download(U32 msg_id);
extern void srv_mms_update_download_msg_hndlr_with_percent_val(
const U32 msg_id,
const U32 req_id,
const U32 percent_val);
extern U32 srv_mms_get_percent_val_from_download_list(U32 msg_id);
extern void srv_mms_free_req_node(const U32 msg_id, const U32 req_id);
extern void mmi_uc_cancel_download_mms_by_end_key(void);
extern kal_bool srv_mms_get_send_and_save_state(const U32 msg_id);
extern mma_folder_enum srv_mms_get_folder_id_from_send_list(const U32 msg_id);
extern kal_bool srv_mms_change_version_number_of_mms(const U8 *xml_file_path);
extern void srv_mms_free_send_handler_node(const U32 msg_id, const U32 req_id);
extern void srv_mms_free_send_node_with_msg_id(U32 msg_id);
extern void srv_mms_free_download_handler_node(const U32 msg_id, const U32 req_id);
extern void srv_mms_update_more_flag_for_send(const U32 req_id, const kal_bool is_more);
extern U32 srv_mms_get_highlight_index_from_send_hndlr_node(const U32 msg_id);
extern kal_bool srv_mms_get_more_flag_from_send_list(const U32 req_id);
extern void srv_mms_update_xml_file_path_in_send_msg_hndlr(const U32 req_id, const U8 *xml_file_path);
extern U8 *srv_mms_get_xml_file_path_from_send_msg_hndlr(const U32 msg_id);
extern void srv_mms_de_init_send_handler_list(void);
extern void srv_mms_de_init_dwnld_handler_list(void);
extern void srv_mms_de_init_new_msg_handler_list(void);
extern void srv_mms_reset_all_except_new_msg_node_frm_req_hndlr(void);
extern void srv_mms_check_new_mms_list_and_show_new_mms_pop_up(void);
extern void srv_mms_entry_send_rr_confirmation(void);
extern void srv_mms_send_read_report_for_delete_mms(void);
extern void srv_mms_check_sending_state(const U32 msg_id, const mma_folder_enum folder_id);
#endif /* __MMI_MMS_BGSR_SUPPORT__ */
extern void srv_mms_inform_um_about_new_msg_ind(U32 msg_id, U32 received_date, U32 Date, U8 sim_id);
#ifdef __MMI_MMS_MMA_MMS_OBJECT_IND__
extern void srv_mms_init_object_ind_data(void);
extern void srv_mms_send_object_indication(void);
extern srv_mms_notification_list *srv_mms_obj_ind_get_node_to_process(void);
extern void srv_mms_obj_ind_set_in_process_sim_id(U8 sim_id);
extern U8 srv_mms_obj_ind_get_in_process_filename_int(void);
extern void srv_mms_obj_ind_set_in_process_filename_int(U16 in_process_filename_int);
extern MMI_BOOL srv_mms_obj_ind_delete_node_and_file(U16 filename_int, U8 sim_id);
extern U8 srv_mms_obj_ind_get_in_process_sim_id(void);
extern void srv_mms_init_object_ind_sim_data(U8 sim_id);
extern void srv_mms_init_push_info(U8 sim_id);
extern void srv_mms_set_object_indication_state_as_busy(void);
extern void srv_mms_unset_object_indication_state(void);
extern void srv_mms_get_obj_file_path(U8 *complete_file_path, srv_mms_notification_list *node);
extern void srv_mms_check_and_send_object_req(void);
extern void srv_mms_start_object_indication_timer(void);
extern void srv_mms_stop_object_indication_timer(void);
extern U16 srv_mms_get_full_ind_counter(void);
extern MMI_BOOL srv_mms_get_obj_ind_flag(void);
extern void srv_mms_set_obj_ind_flag(MMI_BOOL flag);
#endif /* __MMI_MMS_MMA_MMS_OBJECT_IND__ */
#endif /* __MMI_MMS_2__ */
#endif /* MMSSRVSENDRECV_H */ /* UMMSAPPSENDRECV_H */